RU2803564C2 - Method and device for mutual prediction based on details of motion vectors on the side of the decoder (dmvr) and bidirectional optical flow (bdof) - Google Patents

Method and device for mutual prediction based on details of motion vectors on the side of the decoder (dmvr) and bidirectional optical flow (bdof) Download PDF

Info

Publication number
RU2803564C2
RU2803564C2 RU2022121502A RU2022121502A RU2803564C2 RU 2803564 C2 RU2803564 C2 RU 2803564C2 RU 2022121502 A RU2022121502 A RU 2022121502A RU 2022121502 A RU2022121502 A RU 2022121502A RU 2803564 C2 RU2803564 C2 RU 2803564C2
Authority
RU
Russia
Prior art keywords
prediction
bdof
motion vector
current block
dmvr
Prior art date
Application number
RU2022121502A
Other languages
Russian (ru)
Other versions
RU2022121502A (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 RU2022121502A publication Critical patent/RU2022121502A/en
Application granted granted Critical
Publication of RU2803564C2 publication Critical patent/RU2803564C2/en

Links

Images

Abstract

FIELD: image encoding.
SUBSTANCE: invention is related to image encoding, and more particularly to a method and equipment for performing mutual prediction based on decoder-side motion vector refinement (DMVR) and bi-directional optical flow (BDOF). An image decoding method is provided in which DMVR is applied to extract detailed L0 and L1 motion vectors based on the L0 and L1 motion vectors of the current block; prediction samples of the current block are derived based on L0 prediction samples derived based on the detailed L0 motion vector and L1 prediction samples derived based on the detailed L1 motion vector; and reconstruction samples of the current block are generated based on the prediction samples, wherein the L0 prediction samples are derived based on the L0 reference frame and the detailed L0 motion vector, the L1 prediction samples are derived based on the L1 reference frame and the detailed L1 motion vector, and in the step for extracting predictive samples, whether or not to apply the BDOF extraction process is determined based on whether or not the first POC difference between the current frame and the L0 reference frame and the second POC difference between the current frame and the L1 reference frame are identical, wherein the prediction samples for the current block are derived by applying BDOF to the current block based on BDOF flag information indicating whether or not to apply BDOF to the current block.
EFFECT: increasing the efficiency of image encoding/decoding.
3 cl, 12 dwg, 30 tbl

Description

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

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

[1] Этот документ относится к технологии кодирования изображений, а более конкретно, к способу и оборудованию для выполнения взаимного прогнозирования на основе детализации векторов движения на стороне декодера (DMVR) и двунаправленного оптического потока (BDOF).[1] This document relates to image coding technology, and more specifically to a method and equipment for performing inter-prediction based on decoder-side motion vector granularity (DMVR) and bidirectional optical flow (BDOF).

Описание предшествующего уровня техникиDescription of the Prior Art

[2] Потребности в высококачественных изображениях и видео высокого разрешения, таких как изображение сверхвысокой четкости (UHD) и видео в формате 4K или 8K или выше, в последнее время растут в различных областях техники. По мере того, как данные изображений и видеоданных обладают высоким разрешением и высоким качеством, объем информации или число битов, которые относительно передаются, увеличивается по сравнению с существующими данными изображений и видеоданными. Соответственно, если данные изображений передаются с использованием такой среды, как существующая проводная или беспроводная широкополосная линия, либо данные изображений и видеоданные сохраняются с использованием существующего носителя хранения данных, затраты на передачу и затраты на хранение увеличиваются.[2] Demands for high-quality images and high-definition video, such as ultra-high-definition (UHD) images and 4K or 8K or higher video, have recently been growing in various technology fields. As image data and video data have high resolution and high quality, the amount of information or the number of bits that are relatively transmitted increases compared to existing image data and video data. Accordingly, if image data is transmitted using a medium such as an existing wired or wireless broadband line, or image data and video data are stored using an existing storage medium, transmission costs and storage costs increase.

[3] Кроме того, интересы и потребности в иммерсивном мультимедиа, таком как контент виртуальной реальности (VR), искусственной реальности (AR) или голограмма, в последнее время растут. Широковещательная передача изображения и видео, имеющих характеристики изображений, отличающиеся от характеристик реальных изображений, таких как игровые изображения, возрастает.[3] Additionally, interests and demands for immersive media such as virtual reality (VR), artificial reality (AR) or hologram content have been growing recently. Broadcasting of images and videos having image characteristics different from those of real images, such as game images, is increasing.

[4] Соответственно, имеется потребность в высокоэффективной технологии сжатия изображений и видео, чтобы эффективно сжимать и передавать или сохранять и воспроизводить информацию высококачественных изображений и видео высокого разрешения, имеющих такие различные характеристики.[4] Accordingly, there is a need for high-performance image and video compression technology to efficiently compress and transmit or store and reproduce high-quality image and high-resolution video information having such various characteristics.

Сущность изобретенияThe essence of the invention

[5] Этот документ предоставляет способ и оборудование для повышения эффективности кодирования изображений.[5] This document provides a method and equipment for improving the efficiency of image encoding.

[6] Этот документ также предоставляет способ и оборудование эффективного взаимного прогнозирования.[6] This document also provides a method and equipment for efficient cross-forecasting.

[7] Этот документ также предоставляет способ и оборудование для выполнения взаимного прогнозирования на основе детализации векторов движения (DMVR) на стороне декодера.[7] This document also provides a method and hardware for performing inter-prediction based on motion vector detail (DMVR) at the decoder side.

[8] Этот документ также предоставляет способ и оборудование для выполнения взаимного прогнозирования на основе двунаправленного оптического потока (BDOF).[8] This document also provides a method and hardware for performing inter-prediction based on bidirectional optical flow (BDOF).

[9] Этот документ также предоставляет способ и оборудование для повышения производительности прогнозирования посредством предоставления условия для определения того, следует или нет применять DMVR, для повышения эффективности кодирования изображений и/или условия для определения того, следует или нет применять BDOF.[9] This document also provides a method and equipment for improving prediction performance by providing a condition for determining whether or not to apply DMVR to improve image coding efficiency and/or a condition for determining whether or not to apply BDOF.

[10] Согласно одному примерному варианту осуществления этого документа, предоставляется способ декодирования изображений, осуществляемый посредством оборудования декодирования. Способ включает в себя: извлечение детализированного L0-вектора движения и детализированного L1-вектора движения посредством применения детализации векторов движения на стороне декодера (DMVR) на основе L0-вектора движения и L1-вектора движения текущего блока; извлечение прогнозных выборок для текущего блока на основе прогнозных L0-выборок, извлекаемых на основе детализированного L0-вектора движения, и прогнозных L1-выборок, извлекаемых на основе детализированного L1-вектора движения; и формирование восстановленных выборок для текущего блока на основе прогнозных выборок, при этом прогнозные L0-выборки извлекаются на основе опорного L0-кадра и детализированного L0-вектора движения, и прогнозные L1-выборки извлекаются на основе опорного L1-кадра и детализированного L1-вектора движения, при этом извлечение прогнозных выборок содержит определение того, следует или нет применять процесс извлечения двунаправленных оптических потоков (BDOF), на основе того, являются или нет идентичными первая POC-разность между текущим кадром и опорным L0-кадром и вторая POC-разность между текущим кадром и опорным L1-кадром.[10] According to one exemplary embodiment of this document, a method for decoding images performed by decoding equipment is provided. The method includes: extracting a detailed L0 motion vector and a detailed L1 motion vector by applying decoder-side motion vector granularity (DMVR) based on the L0 motion vector and L1 motion vector of the current block; extracting predictive samples for the current block based on the predictive L0 samples extracted based on the detailed L0 motion vector and the predictive L1 samples extracted based on the detailed L1 motion vector; and generating reconstructed samples for the current block based on the predicted samples, wherein the predicted L0 samples are extracted based on the L0 reference frame and the detailed L0 motion vector, and the predicted L1 samples are extracted based on the L1 reference frame and the detailed L1 motion vector. wherein the extraction of the prediction samples comprises determining whether or not to apply a bidirectional optical flow (BDOF) extraction process based on whether or not the first POC difference between the current frame and the reference L0 frame and the second POC difference between the current frame and reference L1 frame.

[11] Согласно другому примерному варианту осуществления этого документа, предоставляется способ кодирования изображений, осуществляемый посредством оборудования кодирования. Способ включает в себя: извлечение детализированного L0-вектора движения и детализированного L1-вектора движения посредством применения детализации векторов движения на стороне декодера (DMVR) на основе L0-вектора движения и L1-вектора движения текущего блока; извлечение прогнозных выборок для текущего блока на основе прогнозных L0-выборок, извлекаемых на основе детализированного L0-вектора движения, и прогнозных L1-выборок, извлекаемых на основе детализированного L1-вектора движения; и извлечение остаточных выборок на основе прогнозных выборок; и кодирование информации изображений, включающей в себя информацию относительно остаточных выборок; при этом прогнозные L0-выборки извлекаются на основе опорного L0-кадра и детализированного L0-вектора движения, и прогнозные L1-выборки извлекаются на основе опорного L1-кадра и детализированного L1-вектора движения, при этом извлечение прогнозных выборок содержит определение того, следует или нет применять процесс извлечения двунаправленных оптических потоков (BDOF), на основе того, являются или нет идентичными первая POC-разность между текущим кадром и опорным L0-кадром и вторая POC-разность между текущим кадром и опорным L1-кадром.[11] According to another exemplary embodiment of this document, an image encoding method carried out by encoding equipment is provided. The method includes: extracting a detailed L0 motion vector and a detailed L1 motion vector by applying decoder-side motion vector granularity (DMVR) based on the L0 motion vector and L1 motion vector of the current block; extracting predictive samples for the current block based on the predictive L0 samples extracted based on the detailed L0 motion vector and the predictive L1 samples extracted based on the detailed L1 motion vector; and extracting residual samples based on predictive samples; and encoding image information including information regarding residual samples; wherein the L0 prediction samples are extracted based on the L0 reference frame and the detailed L0 motion vector, and the L1 prediction samples are extracted based on the L1 reference frame and the detailed L1 motion vector, wherein extracting the prediction samples comprises determining whether or not do not apply a bidirectional optical flow (BDOF) extraction process based on whether the first POC difference between the current frame and the L0 reference frame and the second POC difference between the current frame and the L1 reference frame are identical.

[12] Согласно этому документу, общая эффективность сжатия изображений/видео может увеличиваться.[12] According to this document, the overall efficiency of image/video compression can be increased.

[13] Согласно этому документу, вычислительная сложность может уменьшаться, и общая эффективность кодирования может повышаться через эффективное взаимное прогнозирование.[13] According to this document, computational complexity can be reduced and overall coding efficiency can be improved through efficient inter-prediction.

[14] Согласно этому документу, различные условия применения предлагаются при применении DMVR и/или BDOF для детализации информации движения во время процесса компенсации движения, чтобы повышать эффективность с точки зрения сложности и производительности.[14] According to this document, various application conditions are proposed when applying DMVR and/or BDOF to detail motion information during the motion compensation process to improve efficiency in terms of complexity and performance.

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

[15] Фиг. 1 схематично иллюстрирует пример системы кодирования видео/изображений, которая является применимой к вариантам осуществления этого документа.[15] FIG. 1 schematically illustrates an example of a video/image coding system that is applicable to embodiments of this document.

[16] Фиг. 2 является схематичным пояснением конфигурации схемы оборудования кодирования видео/изображений, которое является применимым к вариантам осуществления этого документа.[16] FIG. 2 is a schematic explanation of a video/image encoding equipment circuit configuration that is applicable to embodiments of this document.

[17] Фиг. 3 является схематичным пояснением конфигурации схемы оборудования декодирования видео/изображений, которое является применимым к вариантам осуществления этого документа.[17] FIG. 3 is a schematic explanation of a video/image decoding equipment circuit configuration that is applicable to embodiments of this document.

[18] Фиг. 4 является схемой, поясняющей вариант осуществления процесса выполнения детализации векторов движения на стороне декодера (DMVR) в истинном бипрогнозировании.[18] FIG. 4 is a diagram for explaining an embodiment of a process for performing decoder-side motion vector refinement (DMVR) in true bi-prediction.

[19] Фиг. 5 является схемой, поясняющей вариант осуществления процесса выполнения детализации векторов движения на стороне декодера (DMVR) с использованием суммы абсолютных разностей (SAD).[19] FIG. 5 is a diagram for explaining an embodiment of a process for performing decoder-side motion vector refinement (DMVR) using sum of absolute differences (SAD).

[20] Фиг. 6 иллюстрирует пример, представляющий способ для выполнения процесса декодирования посредством проверки условий применения DMVR и BDOF.[20] FIG. 6 illustrates an example showing a method for performing a decoding process by checking application conditions of DMVR and BDOF.

[21] Фиг. 7 и 8 иллюстрируют другой пример, представляющий способ для выполнения процесса декодирования посредством проверки условий применения DMVR и BDOF.[21] FIG. 7 and 8 illustrate another example showing a method for performing a decoding process by checking application conditions of DMVR and BDOF.

[22] Фиг. 9 является схемой, проиллюстрированной для того, чтобы пояснять понятие BDOF.[22] FIG. 9 is a diagram illustrated to explain the concept of BDOF.

[23] Фиг. 10 является блок-схемой последовательности операций способа, схематично иллюстрирующей способ кодирования, который может осуществляться посредством оборудования кодирования согласно варианту осуществления этого документа.[23] FIG. 10 is a flowchart schematically illustrating an encoding method that can be performed by encoding equipment according to an embodiment of this document.

[24] Фиг. 11 является блок-схемой последовательности операций способа, схематично иллюстрирующей способ декодирования, который может осуществляться посредством оборудования декодирования согласно варианту осуществления этого документа.[24] FIG. 11 is a flowchart schematically illustrating a decoding method that can be performed by decoding equipment according to an embodiment of this document.

[25] Фиг. 12 иллюстрирует пример системы потоковой передачи контента, к которой являются применимыми варианты осуществления, раскрытые в этом документе.[25] FIG. 12 illustrates an example of a content streaming system to which the embodiments disclosed herein are applicable.

Подробное описание вариантов осуществленияDetailed Description of Embodiments

[26] Этот документ может модифицироваться различными способами и может иметь различные варианты осуществления, и в дальнейшем конкретные варианты осуществления иллюстрируются на чертежах и подробно описываются. Тем не менее, отсутствует намерение ограничивать этот документ конкретными вариантами осуществления. Термины, широко используемые в этом подробном описании, используются для того, чтобы описывать конкретный вариант осуществления, и не используются для того, чтобы ограничивать техническую сущность этого документа. Выражение в единственном числе включает в себя выражения во множественном числе, если иное не является очевидным из контекста. Следует понимать, что такой термин, как "включать в себя" или "иметь" в этом подробном описании указывает существование характеристики, числа, этапа, операции, элемента, части либо их комбинации, приведенной в описании изобретения, а не исключает существование или возможность добавления одной или более других характеристик, чисел, этапов, операций, элементов, частей либо их комбинации.[26] This document may be modified in various ways and may have various embodiments, and in the following, specific embodiments are illustrated in the drawings and described in detail. However, it is not the intention to limit this document to specific embodiments. Terms broadly used in this detailed description are used to describe a particular embodiment and are not used to limit the technical substance of this document. Expressions in the singular include expressions in the plural unless otherwise obvious from the context. It should be understood that a term such as "include" or "have" in this detailed description indicates the existence of a feature, number, step, operation, element, part, or combination thereof set forth in the specification and does not exclude the existence or possibility of adding one or more other characteristics, numbers, steps, operations, elements, parts, or combinations thereof.

[27] Между тем, элементы, на чертежах описанные в этом документе, независимо иллюстрируются для удобства описания с связи с различными характеристическими функциями. Это не означает то, что каждый из элементов реализуется как отдельные аппаратные средства либо как отдельное программное обеспечение. Например, по меньшей мере, два элемента могут комбинироваться, чтобы формировать один элемент, либо один элемент может разделяться на множество элементов. Вариант осуществления, в котором элементы комбинируются и/или разделяются, также включается в объем прав этого документа, если он не отступает от сущности этого документа.[27] Meanwhile, the elements described in the drawings herein are independently illustrated for convenience of description in connection with various characteristic functions. This does not mean that each of the elements is implemented as separate hardware or as separate software. For example, at least two elements may be combined to form one element, or one element may be divided into multiple elements. An embodiment in which elements are combined and/or separated is also included within the scope of this document if it does not depart from the spirit of this document.

[28] В дальнейшем в этом документе, подробнее описываются предпочтительные варианты осуществления этого документа со ссылкой на прилагаемые чертежи. В дальнейшем в этом документе, на чертежах, идентичная ссылка с номером используется в идентичном элементе, и избыточное описание идентичного элемента может опускаться.[28] Hereinafter, preferred embodiments of this document are described in more detail with reference to the accompanying drawings. Hereinafter in this document, in the drawings, an identical reference number is used in the identical element, and redundant description of the identical element may be omitted.

[29] Фиг. 1 схематично иллюстрирует пример системы кодирования видео/изображений, к которой могут применяться варианты осуществления этого документа.[29] FIG. 1 schematically illustrates an example of a video/image coding system to which embodiments of this document may be applied.

[30] Ссылаясь на фиг. 1, система кодирования видео/изображений может включать в себя первое устройство (исходное устройство) и второе устройство (приемное устройство). Исходное устройство может доставлять кодированную информацию или данные видео/изображений в форме файла или потоковой передачи в приемное устройство через цифровой носитель хранения данных или сеть.[30] Referring to FIG. 1, a video/image encoding system may include a first device (source device) and a second device (receiver device). A source device may deliver encoded information or video/image data in file or streaming form to a receiving device via a digital storage medium or a network.

[31] Исходное устройство может включать в себя видеоисточник, оборудование кодирования и передатчик. Приемное устройство может включать в себя приемник, оборудование декодирования и модуль рендеринга. Оборудование кодирования может называться "оборудованием кодирования видео/изображений", и оборудование декодирования может называться "оборудованием декодирования видео/изображений". Передатчик может включаться в оборудование кодирования. Приемник может включаться в оборудование декодирования. Модуль рендеринга может включать в себя дисплей, и дисплей может быть сконфигурирован как отдельное устройство или внешний компонент.[31] The source device may include a video source, encoding equipment, and a transmitter. The receiving device may include a receiver, decoding equipment, and a rendering module. The encoding equipment may be referred to as "video/image encoding equipment" and the decoding equipment may be referred to as "video/image decoding equipment". The transmitter may be included in the encoding equipment. The receiver may be included in the decoding equipment. The rendering module may include a display, and the display may be configured as a separate device or an external component.

[32] Видеоисточник может получать видео/изображение посредством процесса захвата, синтезирования или формирования видео/изображения. Видеоисточник может включать в себя устройство захвата видео/изображений и/или устройство формирования видео/изображений. Устройство захвата видео/изображений может включать в себя, например, одну или более камер, архивы видео/изображений, включающие в себя ранее захваченные видео/изображения, и т.п. Устройство формирования видео/изображений может включать в себя, например, компьютеры, планшетные компьютеры и смартфоны и может (электронно) формировать видео/изображения. Например, виртуальное видео/изображение может формироваться через компьютер и т.п. В этом случае, процесс захвата видео/изображений может заменяться посредством процесса формирования связанных данных.[32] A video source may obtain video/image through a video/image capture, synthesis, or shaping process. The video source may include a video/image capture device and/or a video/image generation device. The video/image capturing device may include, for example, one or more cameras, video/image archives including previously captured video/images, and the like. The video/image generating apparatus may include, for example, computers, tablet computers and smartphones and may (electronically) generate video/images. For example, a virtual video/image may be generated via a computer or the like. In this case, the video/image capturing process can be replaced by the associated data generation process.

[33] Оборудование кодирования может кодировать входное видео/изображение. Оборудование кодирования может выполнять последовательность процедур, таких как прогнозирование, преобразование и квантование, для эффективности сжатия и кодирования. Кодированные данные (кодированная информация видео/изображений) могут выводиться в форме потока битов.[33] Encoding equipment can encode the input video/image. Encoding hardware may perform a sequence of procedures such as prediction, transform, and quantization to achieve compression and encoding efficiency. Encoded data (encoded video/image information) may be output in the form of a bitstream.

[34] Передатчик может передавать информацию или данные кодированных изображений/изображений, выводимую в форме потока битов, в приемник приемного устройства через цифровой носитель хранения данных или сеть в форме файла или потоковой передачи. Цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как USB, SD, CD, DVD, Blu-Ray, HDD, SSD и т.п. Передатчик может включать в себя элемент для формирования мультимедийного файла через предварительно определенный формат файлов и может включать в себя элемент для передачи через широковещательную передачу/сеть связи. Приемник может принимать/извлекать поток битов и передавать принимаемый поток битов в оборудование декодирования.[34] A transmitter may transmit information or encoded image/image data output in the form of a bitstream to a receiver of a receiving device via a digital storage medium or network in the form of a file or streaming. The digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-Ray, HDD, SSD, and the like. The transmitter may include an element for generating a multimedia file through a predefined file format and may include an element for transmission through a broadcast/communication network. The receiver may receive/extract the bit stream and transmit the received bit stream to decoding equipment.

[35] Оборудование декодирования может декодировать видео/изображение посредством выполнения последовательности процедур, таких как деквантование, обратное преобразование и прогнозирование, соответствующих работе оборудования кодирования.[35] The decoding equipment can decode a video/image by performing a sequence of procedures such as dequantization, deconversion and prediction corresponding to the operation of the encoding equipment.

[36] Модуль рендеринга может подготавливать посредством рендеринга декодированное видео/изображение. Подготовленное посредством рендеринга видео/изображение может отображаться через дисплей.[36] The rendering module may prepare a decoded video/image by rendering. The video/image prepared by rendering can be displayed through the display.

[37] Этот документ относится к кодированию видео/изображений. Например, способы/варианты осуществления, раскрытые в этом документе, могут применяться к способу, раскрытому в стандарте универсального кодирования видео (VVC), стандарте EVC (фундаментального кодирования видео), стандарте AOMedia Video 1 (AV1), стандарте второго поколения кодирования аудио/видео (AVS2) или стандарте кодирования видео/изображений следующего поколения (например, H.267 или H.268 и т.д.).[37] This document relates to video/image coding. For example, the methods/embodiments disclosed in this document may be applied to the method disclosed in the Versatile Video Coding (VVC) standard, the EVC (Fundamental Video Coding) standard, the AOMedia Video 1 (AV1) standard, the second generation audio/video coding standard (AVS2) or next generation video/image coding standard (eg H.267 or H.268, etc.).

[38] Этот документ представляет различные варианты осуществления кодирования видео/изображений, и варианты осуществления могут выполняться в комбинации между собой, если не указано иное.[38] This document presents various video/image encoding embodiments, and the embodiments may be performed in combination with each other unless otherwise noted.

[39] В этом документе, видео может означать последовательность изображений во времени. Кадр, в общем, означает единицу, представляющую одно изображение в конкретной временной зоне, и срез/плитка представляет собой единицу, составляющую часть кадра при кодировании. Срез/плитка может включать в себя одну или более единиц дерева кодирования (CTU). Один кадр может состоять из одного или более срезов/плиток. Один кадр может состоять из одной или более групп плиток. Одна группа плиток может включать в себя одну или более плиток. Кирпич может представлять прямоугольную область CTU-строк в плитке в кадре. Плитка может сегментироваться на несколько кирпичей, каждый из которых состоит из одной или более CTU-строк в плитке. Плитка, которая не сегментируется на несколько кирпичей, также может называться "кирпичом". Кирпичное сканирование представляет собой конкретное последовательное упорядочение CTU, сегментирующих кадр, при котором CTU упорядочиваются последовательно в растровом CTU-сканировании в кирпиче, кирпичи внутри плитки упорядочиваются последовательно в растровом сканировании кирпичей плитки, и плитки в кадре упорядочиваются последовательно в растровом сканировании плиток кадра. Плитка представляет собой прямоугольную область CTU в конкретном столбце плиток и конкретной строке плиток в кадре. Столбец плиток представляет собой прямоугольную область CTU, имеющих высоту, равную высоте кадра, и ширину, указываемую посредством синтаксических элементов в наборе параметров кадра. Строка плиток представляет собой прямоугольную область CTU, имеющих высоту, указываемую посредством синтаксических элементов в наборе параметров кадра, и ширину, равную ширине кадра. Сканирование плиток представляет собой конкретное последовательное упорядочение CTU, сегментирующих кадр, при котором CTU упорядочиваются последовательно при растровом сканировании CTU в плитке, тогда как плитки в кадре упорядочиваются последовательно при растровом сканировании плиток кадра. Срез включает в себя собой целое число кирпичей кадра, которые могут содержаться исключительно в одной NAL-единице. Срез может состоять либо из определенного числа полных плиток, либо только из жесткой последовательности полных кирпичей одной плитки. Группы плиток и срезы могут использоваться взаимозаменяемо в этом документе. Например, в этом документе, группа плиток/заголовок группы плиток может называться "срезом/заголовком среза".[39] In this document, video may refer to a sequence of images over time. A frame generally means a unit representing one image in a particular time zone, and a slice/tile is a unit that constitutes part of a frame when encoded. A slice/tile may include one or more coding tree units (CTUs). One frame can consist of one or more slices/tiles. One frame can consist of one or more groups of tiles. One tile group may include one or more tiles. A brick can represent a rectangular area of CTU rows in a tile in a frame. A tile can be segmented into multiple bricks, each of which consists of one or more CTU rows in the tile. A tile that is not segmented into multiple bricks may also be called a "brick". A brick scan is a specific sequential ordering of CTUs segmenting a frame, where CTUs are ordered sequentially in a raster CTU scan within a brick, bricks within a tile are ordered sequentially in a raster scan of tile bricks, and tiles within a frame are ordered sequentially in a raster scan of frame tiles. A tile is a rectangular CTU area in a particular column of tiles and a particular row of tiles in a frame. A column of tiles is a rectangular area of CTUs having a height equal to the height of the frame and a width specified by syntax elements in the frame parameter set. A row of tiles is a rectangular area of CTUs having a height specified by syntax elements in the frame parameter set and a width equal to the width of the frame. A tile scan is a specific sequential ordering of the CTUs segmenting a frame, in which CTUs are ordered sequentially in a raster scan of the CTUs in a tile, whereas tiles in a frame are ordered sequentially in a raster scan of the frame's tiles. A slice includes an integer number of frame bricks that can be contained exclusively in a single NAL unit. A slice can consist of either a specific number of full tiles, or only a rigid sequence of full bricks of a single tile. Tile groups and slices can be used interchangeably in this document. For example, in this document, a group of tiles/header of a group of tiles may be referred to as a "slice/slice header".

[40] Пиксел или пел может означать наименьшую единицу, составляющую один кадр (или изображение). Кроме того, "выборка" может использоваться в качестве термина, соответствующего пикселу. Выборка, в общем, может представлять пиксел или значение пиксела и может представлять только пиксел/пиксельное значение компонента сигнала яркости либо только пиксел/пиксельное значение компонента сигнала цветности.[40] Pixel or pel can mean the smallest unit that makes up one frame (or image). Additionally, "sample" can be used as a term corresponding to a pixel. A sample may generally represent a pixel or a pixel value, and may represent only a pixel/pixel value of a luma component or only a pixel/pixel value of a chroma component.

[41] Единица может представлять базовую единицу обработки изображений. Единица может включать в себя, по меньшей мере, одно из конкретной области кадра и информации, связанной с областью. Одна единица может включать в себя один блок сигналов яркости и два блока сигналов цветности (например, Cb, Cr). Единица может использоваться взаимозаменяемо с такими терминами, как блок или зона в некоторых случаях. В общем случае, блок MxN может включать в себя выборки (или массивы выборок) либо набор (или массив) коэффициентов преобразования из M столбцов и N строк.[41] The unit may represent a basic image processing unit. The unit may include at least one of a specific frame area and information associated with the area. One unit may include one block of luma signals and two blocks of chrominance signals (eg, Cb, Cr). Unit may be used interchangeably with terms such as block or zone in some cases. In general, an MxN block may include samples (or arrays of samples) or a set (or array) of transform coefficients of M columns and N rows.

[42] В этом документе, знак "/" и "," должен интерпретироваться как указывающий "и/или". Например, выражение "A/B" может означать "A и/или B". Дополнительно, "A, B" может означать "A и/или B". Дополнительно, "A/B/C" может означать "по меньшей мере, одно из A, B и/или C". Кроме того, "A, B, C" может означать "по меньшей мере, одно из A, B и/или C".[42] In this document, the sign "/" and "," shall be interpreted to indicate "and/or". For example, the expression "A/B" could mean "A and/or B". Additionally, "A, B" may mean "A and/or B". Additionally, "A/B/C" may mean "at least one of A, B and/or C". In addition, "A, B, C" may mean "at least one of A, B and/or C".

[43] Дополнительно, в документе, термин "или" должен интерпретироваться как указывающий "и/или". Например, выражение "A или B" может содержать 1) только A, 2) только B и/или 3) как A, так и B. Другими словами, термин "или" в этом документе должен интерпретироваться как указывающий "дополнительно или альтернативно".[43] Additionally, as used herein, the term “or” should be interpreted to indicate “and/or.” For example, the expression "A or B" may contain 1) only A, 2) only B, and/or 3) both A and B. In other words, the term "or" in this document should be interpreted to indicate "in addition or alternatively" .

[44] Фиг. 2 является принципиальной схемой, иллюстрирующей конфигурацию оборудования кодирования видео/изображений, к которому может применяться вариант(ы) осуществления настоящего документа. В дальнейшем в этом документе, оборудование кодирования видео может включать в себя оборудование кодирования изображений.[44] FIG. 2 is a circuit diagram illustrating the configuration of video/image encoding equipment to which the embodiment(s) of the present document may be applied. Hereinafter herein, video encoding equipment may include image encoding equipment.

[45] Ссылаясь на фиг. 2, оборудование 200 кодирования включает в себя модуль 210 сегментации изображений, модуль 220 прогнозирования, остаточный процессор 230 и энтропийный кодер 240, сумматор 250, фильтр 260 и запоминающее устройство 270. Модуль 220 прогнозирования может включать в себя модуль 221 взаимного прогнозирования и модуль 222 внутреннего прогнозирования. Остаточный процессор 230 может включать в себя преобразователь 232, квантователь 233, деквантователь 234 и обратный преобразователь 235. Остаточный процессор 230 дополнительно может включать в себя вычитатель 231. Сумматор 250 может называться "модулем восстановления" или "формирователем восстановленных блоков". Модуль 210 сегментации изображений, модуль 220 прогнозирования, остаточный процессор 230, энтропийный кодер 240, сумматор 250 и фильтр 260 могут быть сконфигурированы, по меньшей мере, посредством одного аппаратного компонента (например, набора микросхем или процессора кодера) согласно варианту осуществления. Помимо этого, запоминающее устройство 270 может включать в себя буфер декодированных кадров (DPB) или может быть сконфигурировано посредством цифрового носителя хранения данных. Аппаратный компонент дополнительно может включать в себя запоминающее устройство 270 в качестве внутреннего/внешнего компонента.[45] Referring to FIG. 2, the encoding equipment 200 includes an image segmentation module 210, a prediction module 220, a residual processor 230 and an entropy encoder 240, an adder 250, a filter 260, and a memory 270. The prediction module 220 may include an inter-prediction module 221 and an internal prediction module 222. forecasting. Residual processor 230 may include a transformer 232, a quantizer 233, a dequantizer 234, and an inverse transformer 235. Residual processor 230 may further include a subtractor 231. The adder 250 may be referred to as a “recovery module” or a “recovery block generator.” The image segmentation module 210, prediction module 220, residual processor 230, entropy encoder 240, adder 250, and filter 260 may be configured by at least one hardware component (eg, a chipset or encoder processor) according to an embodiment. In addition, storage device 270 may include a decoded frame buffer (DPB) or may be configured with a digital storage medium. The hardware component may further include a storage device 270 as an internal/external component.

[46] Модуль 210 сегментации изображений может сегментировать входное изображение (либо кадр или кинокадр), вводимое в оборудование 200 кодирования, на один более блоков обработки. Например, блок обработки может называться "единицей кодирования (CU)". В этом случае, единица кодирования может рекурсивно сегментироваться согласно структуре в виде дерева квадрантов, двоичного дерева и троичного дерева (QTBTTT) из единицы дерева кодирования (CTU) или наибольшей единицы кодирования (LCU). Например, одна единица кодирования может сегментироваться на множество единиц кодирования большей глубины на основе структуры в виде дерева квадрантов, структуры в виде двоичного дерева и/или троичной структуры. В этом случае, например, сначала может применяться структура в виде дерева квадрантов, и впоследствии может применяться структура в виде двоичного дерева и троичная структура. Альтернативно, сначала может применяться структура в виде двоичного дерева. Процедура кодирования согласно этому документу может выполняться на основе конечной единицы кодирования, которая более не сегментируется. В этом случае, наибольшая единица кодирования может использоваться в качестве конечной единицы кодирования на основе эффективности кодирования согласно характеристикам изображений, или при необходимости, единица кодирования может рекурсивно сегментироваться на единицы кодирования большей глубины, и единица кодирования, имеющая оптимальный размер, может использоваться в качестве конечной единицы кодирования. Здесь, процедура кодирования может включать в себя процедуру прогнозирования, преобразования и восстановления, которая описывается ниже. В качестве другого примера, блок обработки дополнительно может включать в себя единицу прогнозирования (PU) или единицу преобразования (TU). В этом случае, единица прогнозирования и единица преобразования могут разбиваться или сегментироваться из вышеуказанной конечной единицы кодирования. Единица прогнозирования может представлять собой единицу выборочного прогнозирования, и единица преобразования может представлять собой единицу для извлечения коэффициента преобразования и/или единицу для извлечения остаточного сигнала из коэффициента преобразования.[46] The image segmentation module 210 may segment an input image (either a frame or a movie frame) input to the encoding equipment 200 into one more processing units. For example, a processing unit may be called a "coding unit (CU)". In this case, the coding unit may be recursively segmented according to a quadtree, binary tree, and ternary tree (QTBTTT) structure from a coding tree unit (CTU) or largest coding unit (LCU). For example, one coding unit may be segmented into multiple coding units of greater depth based on a quadtree structure, a binary tree structure, and/or a ternary structure. In this case, for example, a quadtree structure may be applied first, and a binary tree structure and a ternary structure may be subsequently applied. Alternatively, a binary tree structure may be used first. The encoding procedure according to this document may be performed based on a final encoding unit that is no longer segmented. In this case, the largest coding unit can be used as the final coding unit based on the coding efficiency according to the characteristics of the images, or if necessary, the coding unit can be recursively segmented into coding units of greater depth, and the coding unit having the optimal size can be used as the final coding units. Here, the encoding procedure may include a prediction, transformation and reconstruction procedure, which is described below. As another example, the processing unit may further include a prediction unit (PU) or a transformation unit (TU). In this case, the prediction unit and the transformation unit may be split or segmented from the above final encoding unit. The prediction unit may be a sample prediction unit, and the transformation unit may be a unit for extracting a transformation coefficient and/or a unit for extracting a residual signal from the transformation coefficient.

[47] Единица может использоваться взаимозаменяемо с такими терминами, как блок или зона в некоторых случаях. В общем случае, блок MxN может представлять набор выборок или коэффициентов преобразования, состоящих из M столбцов и N строк. Выборка, в общем, может представлять пиксел или значение пиксела, может представлять только пиксел/пиксельное значение компонента сигнала яркости либо представлять только пиксел/пиксельное значение компонента сигнала цветности. Выборка может использоваться в качестве термина, соответствующего одному кадру (или изображению) для пиксела или пела.[47] Unit may be used interchangeably with terms such as block or zone in some cases. In general, an MxN block can represent a set of samples or transform coefficients consisting of M columns and N rows. A sample may generally represent a pixel or a pixel value, may represent only a pixel/pixel value of a luma component, or may represent only a pixel/pixel value of a chrominance signal component. Sampling can be used as a term corresponding to one frame (or image) for a pixel or pel.

[48] В оборудовании 200 кодирования, прогнозный сигнал (прогнозированный блок, массив прогнозных выборок), выводимый из модуля 221 взаимного прогнозирования или модуля 222 внутреннего прогнозирования, вычитается из сигнала входного изображения (исходного блока, массива исходных выборок), чтобы формировать остаточный сигнал (остаточный блок, массив остаточных выборок), и сформированный остаточный сигнал передается в преобразователь 232. В этом случае, как показано, модуль для вычитания прогнозного сигнала (прогнозированного блока, массива прогнозных выборок) из сигнала входного изображения (исходного блока, массива исходных выборок) в кодере 200 может называться "вычитателем 231". Модуль прогнозирования может выполнять прогнозирование для блока, который должен обрабатываться (в дальнейшем в этом документе, называемого "текущим блоком"), и формировать прогнозированный блок, включающий в себя прогнозные выборки для текущего блока. Модуль прогнозирования может определять то, применяется внутреннее прогнозирование или взаимное прогнозирование, на основе текущего блока или CU. Как описано ниже в описании каждого режима прогнозирования, модуль прогнозирования может формировать различную информацию, связанную с прогнозированием, к примеру, информацию режима прогнозирования, и передавать сформированную информацию в энтропийный кодер 240. Информация относительно прогнозирования может кодироваться в энтропийном кодере 240 и выводиться в форме потока битов.[48] In the encoding equipment 200, the prediction signal (predicted block, prediction sample array) output from the inter prediction unit 221 or intra prediction unit 222 is subtracted from the input image signal (original block, original sample array) to generate a residual signal ( residual block, residual sample array), and the generated residual signal is transmitted to converter 232. In this case, as shown, a module for subtracting the prediction signal (predicted block, prediction sample array) from the input image signal (source block, source sample array) into encoder 200 may be referred to as "subtractor 231". The prediction module may perform prediction on a block to be processed (hereinafter referred to as a "current block") and generate a prediction block including prediction samples for the current block. The prediction module may determine whether intra prediction or inter prediction is applied based on the current block or CU. As described below in the description of each prediction mode, the prediction module may generate various prediction-related information, such as prediction mode information, and transmit the generated information to the entropy encoder 240. Information regarding the prediction may be encoded in the entropy encoder 240 and output in the form of a stream bits

[49] Модуль 222 внутреннего прогнозирования может прогнозировать текущий блок посредством ссылки на выборки в текущем кадре. Выборки для ссылки могут быть расположены в окружении текущего блока или могут быть расположены с разнесением согласно режиму прогнозирования. При внутреннем прогнозировании, режимы прогнозирования могут включать в себя множество ненаправленных режимов и множество направленных режимов. Ненаправленный режим может включать в себя, например, DC-режим и планарный режим. Направленный режим может включать в себя, например, 33 режима направленного прогнозирования или 65 режимов направленного прогнозирования согласно степени детальности направления прогнозирования. Тем не менее, это представляет собой просто пример, большее или меньшее число режимов направленного прогнозирования может использоваться в зависимости от настройки. Модуль 222 внутреннего прогнозирования может определять режим прогнозирования, применяемый к текущему блоку, посредством использования режима прогнозирования, применяемого к соседнему блоку.[49] The intra prediction module 222 may predict the current block by reference to the samples in the current frame. Samples for reference may be located in the surroundings of the current block or may be spaced according to the prediction mode. In intraprediction, prediction modes may include a plurality of non-directional modes and a plurality of directed modes. The omnidirectional mode may include, for example, DC mode and planar mode. The directional mode may include, for example, 33 directional prediction modes or 65 directional prediction modes according to the granularity of the prediction direction. However, this is merely an example; more or less directional prediction modes may be used depending on the setting. The intra prediction module 222 may determine the prediction mode applied to the current block by using the prediction mode applied to the adjacent block.

[50] Модуль 221 взаимного прогнозирования может извлекать прогнозированный блок для текущего блока на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра. Здесь, чтобы уменьшать объем информации движения, передаваемой в режиме взаимного прогнозирования, информация движения может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию направления взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). В случае взаимного прогнозирования, соседний блок может включать в себя пространственный соседний блок, присутствующий в текущем кадре, и временной соседний блок, присутствующий в опорном кадре. Опорный кадр, включающий в себя опорный блок, и опорный кадр, включающий в себя временной соседний блок, могут быть идентичными или отличающимися. Временной соседний блок может называться "совместно размещенным опорным блоком", "совместно размещенной CU (colCU)" и т.п., и опорный кадр, включающий в себя временной соседний блок, может называться "совместно размещенным кадром (colPic)". Например, модуль 221 взаимного прогнозирования может конфигурировать список возможных вариантов информации движения на основе соседних блоков и формировать информацию, указывающую то, какой возможный вариант используется для того, чтобы извлекать вектор движения и/или индекс опорного кадра текущего блока. Взаимное прогнозирование может выполняться на основе различных режимов прогнозирования. Например, в случае режима пропуска и режима объединения, модуль 221 взаимного прогнозирования может использовать информацию движения соседнего блока в качестве информации движения текущего блока. В режиме пропуска, в отличие от режима объединения, остаточный сигнал может не передаваться. В случае режима прогнозирования векторов движения (MVP), вектор движения соседнего блока может использоваться в качестве предиктора вектора движения, и вектор движения текущего блока может указываться посредством передачи в служебных сигналах разности векторов движения.[50] The inter-prediction unit 221 can extract a predicted block for the current block based on a reference block (an array of reference samples) indicated by a motion vector for the reference frame. Here, in order to reduce the amount of motion information transmitted in the inter-prediction mode, motion information may be predicted in units of blocks, sub-blocks, or samples based on the correlation of motion information between a neighboring block and the current block. The motion information may include a motion vector and a reference frame index. The motion information may further include inter-prediction direction information (L0-prediction, L1-prediction, bi-prediction, etc.). In the case of inter-prediction, the neighbor block may include a spatial neighbor block present in the current frame and a temporal neighbor block present in the reference frame. The reference frame including the reference block and the reference frame including the temporary adjacent block may be identical or different. A temporary neighbor block may be called a “co-located reference block”, a “col-located CU (colCU)”, etc., and a reference frame including a temporary neighboring block may be called a “col-located frame (colPic)”. For example, the inter-prediction module 221 may configure a list of motion information candidates based on neighboring blocks and generate information indicating which candidate is used to retrieve the motion vector and/or reference frame index of the current block. Mutual prediction can be performed based on different prediction modes. For example, in the case of the skip mode and the merge mode, the inter-prediction unit 221 may use the motion information of the adjacent block as the motion information of the current block. In the skip mode, unlike the combine mode, the residual signal may not be transmitted. In the case of the motion vector prediction (MVP) mode, the motion vector of an adjacent block may be used as a motion vector predictor, and the motion vector of the current block may be indicated by signaling a motion vector difference.

[51] Модуль 220 прогнозирования может формировать прогнозный сигнал на основе различных способов прогнозирования, описанных ниже. Например, модуль прогнозирования может не только применять внутреннее прогнозирование или взаимное прогнозирование для того, чтобы прогнозировать один блок, но также и одновременно применять как внутренние прогнозирование, так и взаимное прогнозирование. Это может называться "комбинированным взаимным и внутренним прогнозированием (CIIP)". Помимо этого, модуль прогнозирования может быть основан на режиме прогнозирования на основе внутриблочного копирования (IBC) либо на палитровом режиме для прогнозирования блока. Режим IBC-прогнозирования или палитровый режим может использоваться для кодирования изображений/видео контента игры и т.п., например, для кодирования экранного контента (SCC). IBC по существу выполняет прогнозирование в текущем кадре, но может выполняться аналогично взаимному прогнозированию, в котором опорный блок извлекается в текущем кадре. Таким образом, IBC может использовать, по меньшей мере, одну из технологий взаимного прогнозирования, описанных в этом документе. Палитровый режим может рассматриваться как пример внутреннего кодирования или внутреннего прогнозирования. Когда палитровый режим применяется, выборочное значение в кадре может передаваться в служебных сигналах на основе информации относительно таблицы палитр и индекса палитры.[51] The prediction module 220 may generate a prediction signal based on various prediction methods described below. For example, the prediction module may not only apply intra-prediction or inter-prediction to predict one block, but also simultaneously apply both intra-prediction and inter-prediction. This may be referred to as "combined inter-intraprediction (CIIP)". In addition, the prediction module can be based on intra-block copy (IBC) prediction mode or palette mode for block prediction. The IBC prediction mode or palette mode can be used for encoding image/video content of a game and the like, for example, screen content encoding (SCC). IBC essentially performs prediction in the current frame, but can be performed similarly to inter-prediction in which the reference block is retrieved in the current frame. Thus, the IBC may use at least one of the inter-prediction technologies described in this document. Palette mode can be considered an example of intra-coding or intra-prediction. When palette mode is applied, a sampled value in a frame may be signaled based on information regarding the palette table and palette index.

[52] Прогнозный сигнал, сформированный посредством модуля прогнозирования (включающего в себя модуль 221 взаимного прогнозирования и/или модуль 222 внутреннего прогнозирования), может использоваться для того, чтобы формировать восстановленный сигнал или формировать остаточный сигнал. Преобразователь 232 может формировать коэффициенты преобразования посредством применения технологии преобразования к остаточному сигналу. Например, технология преобразования может включать в себя, по меньшей мере, одно из дискретного косинусного преобразования (DCT), дискретного синусного преобразования (DST), преобразования Карунена-Лоэва (KLT), преобразования на основе графа (GBT) или условно нелинейного преобразования (CNT). Здесь, GBT означает преобразование, полученное из графа, когда информация взаимосвязи между пикселами представляется посредством графа. CNT означает преобразование, сформированное на основе прогнозного сигнала, сформированного с использованием всех ранее восстановленных пикселов. Помимо этого, процесс преобразования может применяться к квадратным пиксельным блокам, имеющим идентичный размер, или может применяться к блокам, имеющим переменный размер, а не квадратный.[52] The prediction signal generated by the prediction module (including inter prediction module 221 and/or intra prediction module 222) can be used to generate a reconstructed signal or generate a residual signal. Converter 232 may generate conversion coefficients by applying conversion technology to the residual signal. For example, the transform technology may include at least one of a discrete cosine transform (DCT), a discrete sine transform (DST), a Karhunen-Loeve transform (KLT), a graph-based transform (GBT), or a conditionally nonlinear transform (CNT). ). Here, GBT means a graph-derived transformation when the relationship information between pixels is represented by the graph. CNT means a transform generated based on a prediction signal generated using all previously reconstructed pixels. In addition, the conversion process can be applied to square pixel blocks that are identical in size, or can be applied to blocks that are variable in size rather than square.

[53] Квантователь 233 может квантовать коэффициенты преобразования и передавать их в энтропийный кодер 240, и энтропийный кодер 240 может кодировать квантованный сигнал (информацию относительно квантованных коэффициентов преобразования) и выводить поток битов. Информация относительно квантованных коэффициентов преобразования может называться "остаточной информацией". Квантователь 233 может перекомпоновывать блочные квантованные коэффициенты преобразования в одномерную векторную форму на основе порядка сканирования коэффициентов и формировать информацию относительно квантованных коэффициентов преобразования на основе квантованных коэффициентов преобразования в одномерной векторной форме. Информация относительно коэффициентов преобразования может формироваться. Энтропийный кодер 240 может осуществлять различные способы кодирования, такие как, например, кодирование экспоненциальным кодом Голомба, контекстно-адаптивное кодирование переменной длины (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC) и т.п. Энтропийный кодер 240 может кодировать информацию, необходимую для видео/восстановления изображений, отличную от квантованных коэффициентов преобразования (например, значений синтаксических элементов и т.д.), вместе или отдельно. Кодированная информация (например, кодированная информация видео/изображений) может передаваться или сохраняться в единицах NAL (слоя абстрагирования от сети) в форме потока битов. Информация видео/изображений дополнительно может включать в себя информацию относительно различных наборов параметров, таких как набор параметров адаптации (APS), набор параметров кадра (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). Помимо этого, информация видео/изображений дополнительно может включать в себя общую информацию ограничений. В этом документе, информация и/или синтаксические элементы, передаваемые/передаваемые в служебных сигналах из оборудования кодирования в оборудование декодирования, могут включаться в информацию видео/кадров. Информация видео/изображений может кодироваться через вышеописанную процедуру кодирования и включаться в поток битов. Поток битов может передаваться по сети или может сохраняться на цифровом носителе хранения данных. Сеть может включать в себя широковещательную сеть и/или сеть связи, и цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как, USB, SD, CD, DVD, Blu-Ray, HDD, SSD и т.п. Передатчик (не показан), передающий сигнал, выводимый из энтропийного кодера 240, и/или модуль хранения (не показан), сохраняющий сигнал, могут включаться в качестве внутреннего/внешнего элемента оборудования 200 кодирования, и альтернативно, передатчик может включаться в энтропийный кодер 240.[53] The quantizer 233 may quantize the transform coefficients and transmit them to the entropy encoder 240, and the entropy encoder 240 may encode the quantized signal (information regarding the quantized transform coefficients) and output a bit stream. Information regarding the quantized transform coefficients may be referred to as "residual information". Quantizer 233 may re-arrange the block quantized transform coefficients into one-dimensional vector form based on the scanning order of the coefficients, and generate information regarding the quantized transform coefficients based on the quantized transform coefficients in one-dimensional vector form. Information regarding conversion coefficients can be generated. The entropy encoder 240 may implement various encoding techniques, such as, for example, exponential Golomb coding, context adaptive variable length coding (CAVLC), context adaptive binary arithmetic coding (CABAC), and the like. Entropy encoder 240 may encode information needed for video/image reconstruction other than quantized transform coefficients (eg, syntax element values, etc.) together or separately. Encoded information (eg, encoded video/image information) may be transmitted or stored in NAL (Network Abstraction Layer) units in the form of a bitstream. The video/image information may further include information regarding various parameter sets, such as an adaptation parameter set (APS), a frame parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, the video/image information may further include general restriction information. In this document, information and/or syntax elements transmitted/signaled from encoding equipment to decoding equipment may be included in video/frame information. The video/image information may be encoded through the encoding procedure described above and included in the bit stream. The bit stream may be transmitted over a network or may be stored on a digital storage medium. The network may include a broadcast network and/or a communications network, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-Ray, HDD, SSD, and the like. A transmitter (not shown) transmitting the signal output from the entropy encoder 240 and/or a storage module (not shown) storing the signal may be included as an internal/external element of the encoding equipment 200, and alternatively, the transmitter may be included in the entropy encoder 240 .

[54] Квантованные коэффициенты преобразования, выводимые из квантователя 233, могут использоваться для того, чтобы формировать прогнозный сигнал. Например, остаточный сигнал (остаточный блок или остаточные выборки) может восстанавливаться посредством применения деквантования и обратного преобразования к квантованным коэффициентам преобразования через деквантователь 234 и обратный преобразователь 235. Сумматор 250 суммирует восстановленный остаточный сигнал с прогнозным сигналом, выводимым из модуля 221 взаимного прогнозирования или модуля 222 внутреннего прогнозирования, чтобы формировать восстановленный сигнал (восстановленный кадр, восстановленный блок, массив восстановленных выборок). Если отсутствует остаток для блока, который должен обрабатываться, к примеру, в случае, в котором режим пропуска применяется, прогнозированный блок может использоваться в качестве восстановленного блока. Сумматор 250 может называться "модулем восстановления" или "формирователем восстановленных блоков". Сформированный восстановленный сигнал может использоваться для внутреннего прогнозирования следующего блока, который должен обрабатываться в текущем кадре, и может использоваться для взаимного прогнозирования следующего кадра посредством фильтрации, как описано ниже.[54] The quantized transform coefficients output from quantizer 233 can be used to generate a predictive signal. For example, the residual signal (residual block or residual samples) may be recovered by applying dequantization and inverse transform to the quantized transform coefficients through dequantizer 234 and inverse transformer 235. Adder 250 adds the reconstructed residual signal with the prediction signal output from interprediction module 221 or module 222 internal prediction to generate a reconstructed signal (reconstructed frame, reconstructed block, array of reconstructed samples). If there is no remainder for a block to be processed, for example in a case in which the skip mode is applied, the predicted block can be used as a reconstructed block. The adder 250 may be referred to as a "recovery module" or a "recovered block generator." The generated reconstructed signal can be used to internally predict the next block to be processed in the current frame, and can be used to inter-predict the next frame through filtering, as described below.

[55] Между тем, преобразование сигнала яркости с масштабированием сигнала цветности (LMCS) может применяться во время кодирования и/или восстановления кадров.[55] Meanwhile, luma conversion with chrominance scaling (LMCS) can be applied during encoding and/or reconstruction of frames.

[56] Фильтр 260 может повышать субъективное/объективное качество изображений посредством применения фильтрации к восстановленному сигналу. Например, фильтр 260 может формировать модифицированный восстановленный кадр посредством применения различных способов фильтрации к восстановленному кадру и сохранять модифицированный восстановленный кадр в запоминающем устройстве 270, а именно, в DPB запоминающего устройства 270. Различные способы фильтрации могут включать в себя, например, фильтрацию для удаления блочности, дискретизированное адаптивное смещение, адаптивный контурный фильтр, билатеральный фильтр и т.п. Фильтр 260 может формировать различную информацию, связанную с фильтрацией, и передавать сформированную информацию в энтропийный кодер 240, как описано ниже в описании каждого способа фильтрации. Информация, связанная с фильтрацией, может кодироваться посредством энтропийного кодера 240 и выводиться в форме потока битов.[56] Filter 260 may enhance the subjective/objective quality of images by applying filtering to the reconstructed signal. For example, filter 260 may generate a modified reconstructed frame by applying various filtering techniques to the reconstructed frame and storing the modified reconstructed frame in storage device 270, namely, a DPB of storage device 270. Various filtering techniques may include, for example, deblocking filtering. , sampled adaptive bias, adaptive contour filter, bilateral filter, etc. The filter 260 may generate various filtering-related information and transmit the generated information to the entropy encoder 240, as described below in the description of each filtering method. Information associated with filtering may be encoded by entropy encoder 240 and output in the form of a bitstream.

[57] Модифицированный восстановленный кадр, передаваемый в запоминающее устройство 270, может использоваться в качестве опорного кадра в модуле 221 взаимного прогнозирования. Когда взаимное прогнозирование применяется посредством оборудования кодирования, рассогласование прогнозирования между оборудованием 200 кодирования и оборудованием декодирования может исключаться, и эффективность кодирования может повышаться.[57] The modified reconstructed frame transferred to the storage device 270 can be used as a reference frame in the inter-prediction unit 221. When inter prediction is applied by the encoding equipment, prediction mismatch between the encoding equipment 200 and the decoding equipment can be eliminated, and encoding efficiency can be improved.

[58] DPB запоминающего устройства 270 может сохранять модифицированный восстановленный кадр для использования в качестве опорного кадра в модуле 221 взаимного прогнозирования. Запоминающее устройство 270 может сохранять информацию движения блока, из которой информация движения в текущем кадре извлекается (или кодируется), и/или информацию движения блоков в кадре, которые уже восстановлены. Сохраненная информация движения может передаваться в модуль 221 взаимного прогнозирования и использоваться в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Запоминающее устройство 270 может сохранять восстановленные выборки восстановленных блоков в текущем кадре и может передавать восстановленные выборки в модуль 222 внутреннего прогнозирования.[58] The DPB of the storage device 270 may store the modified reconstructed frame for use as a reference frame in the inter-prediction module 221. Memory 270 may store block motion information from which motion information in the current frame is retrieved (or encoded) and/or motion information of blocks in a frame that have already been reconstructed. The stored motion information may be transmitted to the inter-prediction unit 221 and used as spatial neighbor block motion information or temporal neighbor block motion information. Memory 270 may store reconstructed samples of reconstructed blocks in the current frame and may transmit reconstructed samples to intra prediction module 222.

[59] Фиг. 3 является принципиальной схемой, иллюстрирующей конфигурацию оборудования декодирования видео/изображений, которое является применимым к вариантам осуществления этого документа.[59] FIG. 3 is a circuit diagram illustrating the configuration of video/image decoding equipment that is applicable to embodiments of this document.

[60] Ссылаясь на фиг. 3, оборудование 300 декодирования может включать в себя энтропийный декодер 310, остаточный процессор 320, модуль 330 прогнозирования, сумматор 340, фильтр 350, запоминающее устройство 360. Модуль 330 прогнозирования может включать в себя модуль 331 взаимного прогнозирования и модуль 332 внутреннего прогнозирования. Остаточный процессор 320 может включать в себя деквантователь 321 и обратный преобразователь 321. Энтропийный декодер 310, остаточный процессор 320, модуль 330 прогнозирования, сумматор 340 и фильтр 350 могут быть сконфигурированы посредством аппаратного компонента (например, набора микросхем или процессора декодера) согласно варианту осуществления. Помимо этого, запоминающее устройство 360 может включать в себя буфер декодированных кадров (DPB) или может быть сконфигурировано посредством цифрового носителя хранения данных. Аппаратный компонент дополнительно может включать в себя запоминающее устройство 360 в качестве внутреннего/внешнего компонента.[60] Referring to FIG. 3, the decoding equipment 300 may include an entropy decoder 310, a residual processor 320, a prediction module 330, an adder 340, a filter 350, a memory 360. The prediction module 330 may include an inter-prediction module 331 and an intra-prediction module 332. Residual processor 320 may include a dequantizer 321 and an inverse converter 321. Entropy decoder 310, residual processor 320, predictor 330, adder 340, and filter 350 may be configured by a hardware component (eg, a chipset or decoder processor) according to an embodiment. In addition, storage device 360 may include a decoded frame buffer (DPB) or may be configured with a digital storage medium. The hardware component may further include storage device 360 as an internal/external component.

[61] Когда поток битов, включающий в себя информацию видео/изображений, вводится, оборудование 300 декодирования может восстанавливать изображение, соответствующее процессу, в котором информация видео/изображений обрабатывается в оборудовании кодирования по фиг. 2. Например, оборудование 300 декодирования может извлекать единицы/блоки на основе связанной с сегментацией на блоки информации, полученной из потока битов. Оборудование 300 декодирования может выполнять декодирование с использованием блока обработки, применяемого в оборудовании кодирования. Таким образом, блок обработки декодирования, например, может представлять собой единицу кодирования, и единица кодирования может сегментироваться согласно структуре в виде дерева квадрантов, структуре в виде двоичного дерева и/или структуре в виде троичного дерева из единицы дерева кодирования или наибольшей единицы кодирования. Одна или более единиц преобразования могут извлекаться из единицы кодирования. Восстановленный сигнал изображения, декодированный и выводимый посредством оборудования 300 декодирования, может воспроизводиться посредством оборудования воспроизведения.[61] When a bitstream including video/image information is input, the decoding equipment 300 can reconstruct an image corresponding to the process in which the video/image information is processed in the encoding equipment of FIG. 2. For example, decoding equipment 300 may extract units/blocks based on block segmentation-related information obtained from the bitstream. The decoding equipment 300 may perform decoding using a processing unit used in the encoding equipment. That is, the decoding processing unit, for example, may be an encoding unit, and the encoding unit may be segmented according to a quadtree structure, a binary tree structure, and/or a ternary tree structure from an encoding tree unit or a largest encoding unit. One or more transformation units may be derived from a coding unit. The reconstructed image signal decoded and output by the decoding equipment 300 can be reproduced by the playback equipment.

[62] Оборудование 300 декодирования может принимать сигнал, выводимый из оборудования кодирования по фиг. 2 в форме потока битов, и принимаемый сигнал может декодироваться через энтропийный декодер 310. Например, энтропийный декодер 310 может синтаксически анализировать поток битов, чтобы извлекать информацию (например, информацию видео/изображений), необходимую для восстановления изображений (или восстановления кадров). Информация видео/изображений дополнительно может включать в себя информацию относительно различных наборов параметров, таких как набор параметров адаптации (APS), набор параметров кадра (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). Помимо этого, информация видео/изображений дополнительно может включать в себя общую информацию ограничений. Оборудование декодирования дополнительно может декодировать кадр на основе информации относительно набора параметров и/или общей информации ограничений. Передаваемая в служебных сигналах/принимаемая информация и/или синтаксические элементы, описанные далее в этом документе, могут декодироваться, может декодировать процедуру декодирования и получаться из потока битов. Например, энтропийный декодер 310 декодирует информацию в потоке битов на основе способа кодирования, такого как кодирование экспоненциальным кодом Голомба, CAVLC или CABAC, и выходных синтаксических элементов, требуемых для восстановления изображений, и квантованных значений коэффициентов преобразования для остатка. Более конкретно, способ энтропийного CABAC-декодирования может принимать элемент разрешения, соответствующий каждому синтаксическому элементу в потоке битов, определять контекстную модель с использованием информации целевого синтаксического элемента декодирования, информации декодирования целевого блока декодирования или информации символа/элемента разрешения, декодированного на предыдущей стадии, и выполнять арифметическое декодирование для элемента разрешения посредством прогнозирования вероятности появления элемента разрешения согласно определенной контекстной модели и формировать символ, соответствующий значению каждого синтаксического элемента. В этом случае, способ энтропийного CABAC-декодирования может обновлять контекстную модель посредством использования информации декодированного символа/элемента разрешения для контекстной модели следующего символа/элемента разрешения после определения контекстной модели. Информация, связанная с прогнозированием, из информации, декодированной посредством энтропийного декодера 310, может предоставляться в модуль прогнозирования (модуль 332 взаимного прогнозирования и модуль 331 внутреннего прогнозирования), и остаточное значение, для которого энтропийное декодирование выполнено в энтропийном декодере 310, т.е. квантованные коэффициенты преобразования и связанная информация параметров, может вводиться в остаточный процессор 320. Остаточный процессор 320 может извлекать остаточный сигнал (остаточный блок, остаточные выборки, массив остаточных выборок). Помимо этого, информация относительно фильтрации из информации, декодированной посредством энтропийного декодера 310, может предоставляться в фильтр 350. Между тем, приемник (не показан) для приема сигнала, выводимого из оборудования кодирования, может быть дополнительно сконфигурирован в качестве внутреннего/внешнего элемента оборудования 300 декодирования, либо приемник может представлять собой компонент энтропийного декодера 310. Между тем, оборудование декодирования согласно этому документу может называться "оборудованием декодирования видео/изображений/кадров", и оборудование декодирования может классифицироваться на информационный декодер (декодер информации видео/изображений/кадров) и выборочный декодер (декодер выборок видео/изображений/кадров). Информационный декодер может включать в себя энтропийный декодер 310, и выборочный декодер может включать в себя, по меньшей мере, одно из деквантователя 321, обратного преобразователя 322, сумматора 340, фильтра 350, запоминающего устройства 360, модуля 332 взаимного прогнозирования и модуля 331 внутреннего прогнозирования.[62] The decoding equipment 300 may receive a signal output from the encoding equipment of FIG. 2 in the form of a bit stream, and the received signal may be decoded through entropy decoder 310. For example, entropy decoder 310 may parse the bit stream to extract information (eg, video/image information) needed for image reconstruction (or frame reconstruction). The video/image information may further include information regarding various parameter sets, such as an adaptation parameter set (APS), a frame parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, the video/image information may further include general restriction information. The decoding equipment may further decode the frame based on information regarding the parameter set and/or general constraint information. The signaling/receiving information and/or syntax elements described later in this document may be decoded, may be decoded by a decoding procedure, and obtained from the bitstream. For example, entropy decoder 310 decodes information in a bitstream based on an encoding method, such as exponential Golomb, CAVLC, or CABAC encoding, and the output syntax elements required for image reconstruction and the quantized values of the transform coefficients for the remainder. More specifically, the entropy CABAC decoding method may receive a resolution element corresponding to each syntax element in the bitstream, determine a context model using information of a target decoding syntax element, decoding information of a target decoding block, or information of a symbol/resolution element decoded in a previous stage, and perform arithmetic decoding for the permission element by predicting the probability of occurrence of the permission element according to the determined context model and generating a symbol corresponding to the meaning of each syntactic element. In this case, the entropy CABAC decoding method can update the context model by using the decoded symbol/grant element information for the context model of the next symbol/grant element after determining the context model. The prediction-related information from the information decoded by the entropy decoder 310 may be provided to the prediction module (inter-prediction module 332 and intra-prediction module 331), and the residual value for which entropy decoding is performed in the entropy decoder 310, i.e. the quantized transform coefficients and associated parameter information may be input to residual processor 320. Residual processor 320 may extract a residual signal (residual block, residual samples, array of residual samples). In addition, information regarding filtering from information decoded by the entropy decoder 310 may be provided to the filter 350. Meanwhile, a receiver (not shown) for receiving a signal output from the encoding equipment may be further configured as an internal/external element of the equipment 300 decoding, or the receiver may be a component of the entropy decoder 310. Meanwhile, the decoding equipment according to this document may be called "video/image/frame decoding equipment", and the decoding equipment may be classified into information decoder (video/image/frame information decoder) and selective decoder (video/image/frame sampling decoder). The information decoder may include an entropy decoder 310, and the sample decoder may include at least one of a dequantizer 321, an inverter 322, an adder 340, a filter 350, a memory 360, an inter-prediction module 332, and an intra-prediction module 331 .

[63] Деквантователь 321 может деквантовать квантованные коэффициенты преобразования и выводить коэффициенты преобразования. Деквантователь 321 может перекомпоновывать квантованные коэффициенты преобразования в форме двумерной блочной формы. В этом случае, перекомпоновка может выполняться на основе порядка сканирования коэффициентов, выполняемого в оборудовании кодирования. Деквантователь 321 может выполнять деквантование для квантованных коэффициентов преобразования посредством использования параметра квантования (например, информации размера шага квантования) и получать коэффициенты преобразования.[63] The dequantizer 321 may dequantize the quantized transform coefficients and output the transform coefficients. The dequantizer 321 may re-arrange the quantized transform coefficients into a two-dimensional block form. In this case, re-arrangement may be performed based on the order of coefficient scanning performed in the encoding equipment. The dequantizer 321 may perform dequantization on the quantized transform coefficients by using a quantization parameter (eg, quantization step size information) and obtain the transform coefficients.

[64] Обратный преобразователь 322 обратно преобразует коэффициенты преобразования, чтобы получать остаточный сигнал (остаточный блок, массив остаточных выборок).[64] The inverse converter 322 inversely converts the transform coefficients to obtain a residual signal (residual block, residual sample array).

[65] Модуль прогнозирования может выполнять прогнозирование для текущего блока и может формировать прогнозированный блок, включающий в себя прогнозные выборки для текущего блока. Модуль прогнозирования может определять то, применяется внутреннее прогнозирование или взаимное прогнозирование к текущему блоку, на основе информации относительно прогнозирования, выводимой из энтропийного декодера 310, и может определять конкретный режим внутреннего/взаимного прогнозирования.[65] The prediction module may perform prediction for the current block and may generate a predicted block including prediction samples for the current block. The prediction module may determine whether intra prediction or inter prediction is applied to the current block based on the prediction information output from the entropy decoder 310, and may determine a particular intra/inter prediction mode.

[66] Модуль 320 прогнозирования может формировать прогнозный сигнал на основе различных способов прогнозирования, описанных ниже. Например, модуль прогнозирования может не только применять внутреннее прогнозирование или взаимное прогнозирование для того, чтобы прогнозировать один блок, но также и одновременно применять внутреннее прогнозирование и взаимное прогнозирование. Это может называться "комбинированным взаимным и внутренним прогнозированием (CIIP)". Помимо этого, модуль прогнозирования может быть основан на режиме прогнозирования на основе внутриблочного копирования (IBC) либо на палитровом режиме для прогнозирования блока. Режим IBC-прогнозирования или палитровый режим может использоваться для кодирования изображений/видео контента игры и т.п., например, для кодирования экранного контента (SCC). IBC по существу выполняет прогнозирование в текущем кадре, но может выполняться аналогично взаимному прогнозированию, в котором опорный блок извлекается в текущем кадре. Таким образом, IBC может использовать, по меньшей мере, одну из технологий взаимного прогнозирования, описанных в этом документе. Палитровый режим может рассматриваться как пример внутреннего кодирования или внутреннего прогнозирования. Когда палитровый режим применяется, выборочное значение в кадре может передаваться в служебных сигналах на основе информации относительно таблицы палитр и индекса палитры.[66] The prediction module 320 may generate a prediction signal based on various prediction methods described below. For example, the prediction module may not only apply intra-prediction or inter-prediction to predict one block, but also simultaneously apply intra-prediction and inter-prediction. This may be referred to as "combined inter-intraprediction (CIIP)". In addition, the prediction module can be based on intra-block copy (IBC) prediction mode or palette mode for block prediction. The IBC prediction mode or palette mode can be used for encoding image/video content of a game and the like, for example, screen content encoding (SCC). IBC essentially performs prediction in the current frame, but can be performed similarly to inter-prediction in which the reference block is retrieved in the current frame. Thus, the IBC may use at least one of the inter-prediction technologies described in this document. Palette mode can be considered an example of intra-coding or intra-prediction. When palette mode is applied, a sampled value in a frame may be signaled based on information regarding the palette table and palette index.

[67] Модуль 331 внутреннего прогнозирования может прогнозировать текущий блок посредством ссылки на выборки в текущем кадре. Выборки для ссылки могут быть расположены в окружении текущего блока или могут быть расположены с разнесением согласно режиму прогнозирования. При внутреннем прогнозировании, режимы прогнозирования могут включать в себя множество ненаправленных режимов и множество направленных режимов. Модуль 331 внутреннего прогнозирования может определять режим прогнозирования, применяемый к текущему блоку, посредством использования режима прогнозирования, применяемого к соседнему блоку.[67] The intra prediction module 331 may predict the current block by reference to the samples in the current frame. Samples for reference may be located in the surroundings of the current block or may be spaced according to the prediction mode. In intraprediction, prediction modes may include a plurality of non-directional modes and a plurality of directed modes. The intra prediction unit 331 may determine the prediction mode applied to the current block by using the prediction mode applied to the adjacent block.

[68] Модуль 332 взаимного прогнозирования может извлекать прогнозированный блок для текущего блока на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра. В этом случае, чтобы уменьшать объем информации движения, передаваемой в режиме взаимного прогнозирования, информация движения может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию направления взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). В случае взаимного прогнозирования, соседний блок может включать в себя пространственный соседний блок, присутствующий в текущем кадре, и временной соседний блок, присутствующий в опорном кадре. Например, модуль 332 взаимного прогнозирования может конфигурировать список возможных вариантов информации движения на основе соседних блоков и извлекать вектор движения текущего блока и/или индекс опорного кадра на основе принимаемой информации выбора возможных вариантов. Взаимное прогнозирование может выполняться на основе различных режимов прогнозирования, и информация относительно прогнозирования может включать в себя информацию, указывающую режим взаимного прогнозирования для текущего блока.[68] The inter-prediction unit 332 may extract a predicted block for the current block based on a reference block (an array of reference samples) indicated by a motion vector for the reference frame. In this case, in order to reduce the amount of motion information transmitted in the inter-prediction mode, the motion information may be predicted in units of blocks, sub-blocks, or samples based on the correlation of the motion information between a neighboring block and the current block. The motion information may include a motion vector and a reference frame index. The motion information may further include inter-prediction direction information (L0-prediction, L1-prediction, bi-prediction, etc.). In the case of inter-prediction, the neighbor block may include a spatial neighbor block present in the current frame and a temporal neighbor block present in the reference frame. For example, the inter-prediction module 332 may configure a motion information candidate list based on neighboring blocks and extract the current block's motion vector and/or reference frame index based on the received candidate selection information. The inter-prediction may be performed based on various prediction modes, and the information regarding the prediction may include information indicating the inter-prediction mode for the current block.

[69] Сумматор 340 может формировать восстановленный сигнал (восстановленный кадр, восстановленный блок, массив восстановленных выборок) посредством суммирования полученного остаточного сигнала с прогнозным сигналом (прогнозированным блоком, массивом прогнозированных выборок), выводимым из модуля прогнозирования (включающего в себя модуль 332 взаимного прогнозирования и/или модуль 331 внутреннего прогнозирования). Если отсутствует остаток для блока, который должен обрабатываться, к примеру, когда режим пропуска применяется, прогнозированный блок может использоваться в качестве восстановленного блока.[69] The adder 340 may generate a reconstructed signal (recovered frame, reconstructed block, reconstructed sample array) by adding the resulting residual signal with a prediction signal (predicted block, predicted sample array) output from a prediction module (including inter-prediction module 332 and /or internal prediction module 331). If there is no remainder for a block to be processed, for example when a skip mode is applied, the predicted block can be used as the reconstructed block.

[70] Сумматор 340 может называться "модулем восстановления" или "формирователем восстановленных блоков". Сформированный восстановленный сигнал может использоваться для внутреннего прогнозирования следующего блока, который должен обрабатываться в текущем кадре, может выводиться посредством фильтрации, как описано ниже, или может использоваться для взаимного прогнозирования следующего кадра.[70] The adder 340 may be referred to as a “recovery module” or a “recovered block generator.” The generated reconstructed signal may be used to internally predict the next block to be processed in the current frame, may be output by filtering as described below, or may be used to inter-predict the next frame.

[71] Между тем, преобразование сигнала яркости с масштабированием сигнала цветности (LMCS) может применяться в процессе декодирования кадров.[71] Meanwhile, luma conversion with chrominance scaling (LMCS) can be applied in the frame decoding process.

[72] Фильтр 350 может повышать субъективное/объективное качество изображений посредством применения фильтрации к восстановленному сигналу. Например, фильтр 350 может формировать модифицированный восстановленный кадр посредством применения различных способов фильтрации к восстановленному кадру и сохранять модифицированный восстановленный кадр в запоминающем устройстве 360, а именно, в DPB запоминающего устройства 360. Различные способы фильтрации могут включать в себя, например, фильтрацию для удаления блочности, дискретизированное адаптивное смещение, адаптивный контурный фильтр, билатеральный фильтр и т.п.[72] Filter 350 may enhance the subjective/objective quality of images by applying filtering to the reconstructed signal. For example, filter 350 may generate a modified reconstructed frame by applying various filtering techniques to the reconstructed frame and store the modified reconstructed frame in storage device 360, namely, a DPB of storage device 360. Various filtering techniques may include, for example, deblocking filtering. , sampled adaptive bias, adaptive contour filter, bilateral filter, etc.

[73] (Модифицированный) восстановленный кадр, сохраненный в DPB запоминающего устройства 360, может использоваться в качестве опорного кадра в модуле 332 взаимного прогнозирования. Запоминающее устройство 360 может сохранять информацию движения блока, из которой информация движения в текущем кадре извлекается (или декодируется), и/или информацию движения блоков в кадре, которые уже восстановлены. Сохраненная информация движения может передаваться в модуль 260 взаимного прогнозирования, так что она используется в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Запоминающее устройство 360 может сохранять восстановленные выборки восстановленных блоков в текущем кадре и передавать восстановленные выборки в модуль 331 внутреннего прогнозирования.[73] The (modified) reconstructed frame stored in the DPB of the storage device 360 can be used as a reference frame in the inter-prediction unit 332. Memory 360 may store block motion information from which motion information in the current frame is retrieved (or decoded) and/or motion information of blocks in a frame that have already been reconstructed. The stored motion information may be transmitted to the inter-prediction unit 260 so that it is used as spatial neighbor block motion information or temporal neighbor block motion information. Storage device 360 may store reconstructed samples of reconstructed blocks in the current frame and transmit the reconstructed samples to intra prediction module 331.

[74] В этом документе, варианты осуществления, описанные в фильтре 260, модуле 221 взаимного прогнозирования и модуле 222 внутреннего прогнозирования оборудования 200 кодирования, могут быть идентичными или надлежащим образом применяться, так что они соответствуют фильтру 350, модулю 332 взаимного прогнозирования и модулю 331 внутреннего прогнозирования оборудования 300 декодирования. То же также может применяться к модулю 332 и модулю 331 внутреннего прогнозирования.[74] In this document, the embodiments described in the filter 260, the inter-prediction module 221 and the intra-prediction module 222 of the encoding equipment 200 may be identical or appropriately applied so that they correspond to the filter 350, the inter-prediction module 332 and the module 331 internal prediction of the decoding equipment 300. The same may also apply to module 332 and internal prediction module 331.

[75] Как описано выше, при выполнении кодирования видео, прогнозирование выполняется для того, чтобы повышать эффективность сжатия. Прогнозированный блок, включающий в себя прогнозные выборки для текущего блока, т.е. целевого блока кодирования, может формироваться через прогнозирование. В этом случае, прогнозированный блок включает в себя прогнозные выборки в пространственную область (или пиксельную область). Прогнозированный блок идентично извлекается в оборудовании кодирования и оборудовании декодирования. Оборудование кодирования может повышать эффективность кодирования изображений посредством передачи в служебных сигналах, в оборудование декодирования, информации относительно остатка (остаточной информации) между исходным блоком, а не непосредственно исходным выборочным значением исходного блока, и прогнозированным блоком. Оборудование декодирования может извлекать остаточный блок, включающий в себя остаточные выборки на основе остаточной информации, может формировать восстановленный блок, включающий в себя восстановленные выборки, посредством суммирования остаточного блока с прогнозированным блоком и может формировать восстановленный кадр, включающий в себя восстановленные блоки.[75] As described above, when performing video encoding, prediction is performed in order to improve compression efficiency. A predicted block including predicted samples for the current block, i.e. target encoding block, can be generated through prediction. In this case, the predicted block includes predicted samples into a spatial domain (or pixel domain). The predicted block is identically retrieved in the encoding equipment and decoding equipment. The encoding equipment can improve the efficiency of image encoding by signaling, to the decoding equipment, information regarding the remainder (residual information) between the original block, rather than the original sample value of the original block itself, and the predicted block. The decoding equipment can extract a residual block including residual samples based on the residual information, can generate a reconstructed block including the reconstructed samples by adding the residual block with a predicted block, and can generate a reconstructed frame including the reconstructed blocks.

[76] Остаточная информация может формироваться через процедуру преобразования и квантования. Например, оборудование кодирования может извлекать остаточный блок между исходным блоком и прогнозированным блоком, может извлекать коэффициенты преобразования посредством выполнения процедуры преобразования для остаточных выборок (массива остаточных выборок), включенных в остаточный блок, может извлекать квантованные коэффициенты преобразования посредством выполнения процедуры квантования для коэффициентов преобразования, и может передавать в служебных сигналах ассоциированную остаточную информацию в оборудование декодирования (через поток битов). В этом случае, остаточная информация может включать в себя такую информацию, как информация значений, информация местоположения, схема преобразования, ядро преобразования и параметр квантования для квантованных коэффициентов преобразования. Оборудование декодирования может выполнять процедуру деквантования/обратного преобразования на основе остаточной информации и может извлекать остаточные выборки (или остаточный блок). Оборудование декодирования может формировать восстановленное изображение на основе прогнозированного блока и остаточного блока. Кроме того, оборудование кодирования может извлекать остаточный блок посредством деквантования/обратного преобразования квантованных коэффициентов преобразования для ссылки на взаимное прогнозирование последующего кадра и может формировать восстановленный кадр.[76] Residual information can be generated through a transformation and quantization procedure. For example, the encoding equipment may extract a residual block between an original block and a predicted block, may extract transform coefficients by performing a transform procedure on residual samples (an array of residual samples) included in the residual block, may extract quantized transform coefficients by performing a quantization procedure on the transform coefficients, and may signal associated residual information to decoding equipment (via a bit stream). In this case, the residual information may include information such as value information, location information, a transform circuit, a transform kernel, and a quantization parameter for the quantized transform coefficients. The decoding equipment may perform a dequantization/deconversion procedure based on the residual information and may extract the residual samples (or residual block). The decoding equipment can generate a reconstructed image based on the predicted block and the residual block. In addition, the encoding equipment may extract a residual block by dequantizing/de-converting the quantized transform coefficients to reference the inter-prediction of a subsequent frame, and may generate a reconstructed frame.

[77] Между тем, как описано выше, внутреннее прогнозирование или взаимное прогнозирование может применяться при выполнении прогнозирования для текущего блока. В дальнейшем в этом документе, описывается случай применения взаимного прогнозирования к текущему блоку. Между тем, как описано выше, внутреннее прогнозирование или взаимное прогнозирование может применяться при выполнении прогнозирования для текущего блока. В дальнейшем в этом документе, описывается случай применения взаимного прогнозирования к текущему блоку.[77] Meanwhile, as described above, intra prediction or inter prediction may be applied when performing prediction for the current block. Later in this document, the case of applying mutual prediction to the current block is described. Meanwhile, as described above, intra prediction or inter prediction may be applied when performing prediction for the current block. Later in this document, the case of applying mutual prediction to the current block is described.

[78] Модуль прогнозирования (более конкретно, модуль взаимного прогнозирования) оборудования кодирования/декодирования может извлекать прогнозные выборки посредством выполнения взаимного прогнозирования в единицах блоков. Взаимное прогнозирование может представлять прогнозирование, извлекаемое посредством способа, зависимого от элементов данных (например, выборочных значений или информации движения) кадра(ов), отличного от текущего кадра. Когда взаимное прогнозирование применяется к текущему блоку, прогнозированный блок (массив прогнозных выборок) для текущего блока может извлекаться на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения в опорном кадре в опорном кадре, указываемом посредством индекса опорного кадра. В этом случае, чтобы уменьшать объем информации движения, передаваемой в режиме взаимного прогнозирования, информация движения текущего блока может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию типа взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). В случае применения взаимного прогнозирования соседний блок может включать в себя пространственный соседний блок, который присутствует в текущем кадре и временном соседнем блоке, который присутствует в опорном кадре. Опорный кадр, включающий в себя опорный блок, и опорный кадр, включающий в себя временной соседний блок могут быть идентичными друг другу или отличающимися друг от друга. Временной соседний блок может упоминаться под таким названием, как "совместно размещенный опорный блок", "совместно размещенная CU (colCU)", и т.д., и опорный кадр, включающий в себя временной соседний блок, может называться "совместно размещенным кадром (colPic)". Например, список возможных вариантов информации движения может быть сконфигурирован на основе соседних блоков относительно текущего блока, и информация флага или индекса, указывающая то, какой возможный вариант выбирается (используется), может передаваться в служебных сигналах, с тем чтобы извлекать вектор движения и/или индекс опорного кадра текущего блока. Взаимное прогнозирование может выполняться на основе различных режимов прогнозирования и, например, в случае режима пропуска и режима объединения, информация движения текущего блока может быть идентичной информации движения выбранного соседнего блока. В случае режима пропуска, остаточный сигнал может не передаваться, в отличие от режима объединения. В случае режима прогнозирования векторов движения (MVP), вектор движения выбранного соседнего блока может использоваться в качестве предиктора вектора движения, и разность векторов движения может передаваться в служебных сигналах. В этом случае, вектор движения текущего блока может извлекаться посредством использования суммы предиктора вектора движения и разности векторов движения.[78] A prediction module (more specifically, an inter-prediction module) of the encoding/decoding equipment can extract prediction samples by performing inter-prediction in units of blocks. The inter-prediction may represent a prediction extracted in a manner dependent on data elements (eg, sample values or motion information) of frame(s) other than the current frame. When inter-prediction is applied to the current block, a predicted block (prediction sample array) for the current block can be retrieved based on a reference block (reference sample array) indicated by a motion vector in a reference frame in a reference frame indicated by a reference frame index. In this case, in order to reduce the amount of motion information transmitted in the inter-prediction mode, the motion information of the current block may be predicted in units of blocks, sub-blocks or samples based on the correlation of the motion information between a neighboring block and the current block. The motion information may include a motion vector and a reference frame index. The motion information may further include inter-prediction type information (L0 prediction, L1 prediction, bi-prediction, etc.). When inter-prediction is applied, the neighbor block may include a spatial neighbor block that is present in the current frame and a temporal neighbor block that is present in the reference frame. The reference frame including the reference block and the reference frame including the temporary adjacent block may be identical to each other or different from each other. A temporary neighbor block may be referred to by a name such as a "co-located reference block", a "co-located CU (colCU)", etc., and a reference frame including a temporary neighboring block may be called a "co-located frame ( colPic)". For example, a list of motion information candidates may be configured based on neighboring blocks relative to the current block, and flag or index information indicating which candidate is selected (used) may be signaled so as to extract a motion vector and/or index of the current block's reference frame. Mutual prediction may be performed based on different prediction modes, and, for example, in the case of a skip mode and a merge mode, the motion information of the current block may be identical to the motion information of the selected neighboring block. In the case of the skip mode, the residual signal may not be transmitted, unlike the combine mode. In the case of a motion vector prediction (MVP) mode, the motion vector of a selected neighboring block can be used as a motion vector predictor, and the motion vector difference can be signaled. In this case, the motion vector of the current block can be extracted by using the sum of the motion vector predictor and the motion vector difference.

[79] Информация движения дополнительно может включать в себя L0-информацию движения и/или L1-информацию движения согласно типу взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). Вектор движения для L0-направления может называться "L0-вектором движения" или "MVL0", и вектор движения для L1-направления может называться "L1-вектором движения" или "MVL1". Прогнозирование на основе L0-вектора движения может называться "L0-прогнозированием", прогнозирование на основе L1-вектора движения может называться "L1-прогнозированием", и прогнозирование на основе как L0-вектора движения, так и L1-вектора движения может называться "бипрогнозированием". Здесь, L0-вектор движения может указывать вектор движения, ассоциированный со списком L0 опорных кадров, и L1-вектор движения может указывать вектор движения, ассоциированный со списком L1 опорных кадров. Список L0 опорных кадров может включать в себя кадры до текущего кадра в порядке вывода, и список L1 опорных кадров может включать в себя кадры, последующие за текущим кадром в порядке вывода, в качестве опорных кадров. Предшествующие кадры могут называться "прямым (опорным) кадром", и последующие кадры могут называться "обратным (опорным) кадром". Список L0 опорных кадров дополнительно может включать в себя кадры, последующие за текущим кадром в порядке вывода в качестве опорных кадров. В этом случае, предшествующие кадры могут сначала индексироваться в списке L0 опорных кадров, и последующие кадры затем могут индексироваться. Список L1 опорных кадров дополнительно может включать в себя кадры до текущего кадра в порядке вывода в качестве опорных кадров. В этом случае, последующие кадры могут сначала индексироваться в списке L1 опорных кадров, и предшествующие кадры затем могут индексироваться. Здесь, порядок вывода может соответствовать порядку номеров в последовательности кадров (POC).[79] The motion information may further include L0 motion information and/or L1 motion information according to a type of inter-prediction (L0 prediction, L1 prediction, bi-prediction, etc.). The motion vector for the L0 direction may be referred to as the "L0 motion vector" or "MVL0", and the motion vector for the L1 direction may be referred to as the "L1 motion vector" or "MVL1". Prediction based on L0 motion vector may be referred to as “L0 prediction,” prediction based on L1 motion vector may be referred to as “L1 prediction,” and prediction based on both L0 motion vector and L1 motion vector may be referred to as “biprediction.” ". Here, the L0 motion vector may indicate a motion vector associated with the reference frame list L0, and the L1 motion vector may indicate a motion vector associated with the reference frame list L1. The reference frame list L0 may include frames before the current frame in output order, and the reference frame list L1 may include frames subsequent to the current frame in output order as reference frames. Preceding frames may be referred to as a "forward (reference) frame" and subsequent frames may be referred to as a "reverse (reference) frame." The reference frame list L0 may further include frames subsequent to the current frame in the order of output as reference frames. In this case, previous frames may first be indexed in the reference frame list L0, and subsequent frames may then be indexed. The reference frame list L1 may further include frames up to the current frame in the order of output as reference frames. In this case, subsequent frames may first be indexed in the reference frame list L1, and previous frames may then be indexed. Here, the order of output may correspond to the order of numbers in the sequence of frames (POC).

[80] Дополнительно, различные режимы взаимного прогнозирования могут использоваться при применении взаимного прогнозирования к текущему блоку. Например, могут использоваться различные режимы, включающие в себя режим объединения, режим пропуска, режим прогнозирования векторов движения (MVP), аффинный режим, режим статистического прогнозирования векторов движения (HMVP) и т.п. Режим детализации векторов движения на стороне декодера (DMVR), режим адаптивного разрешения векторов движения (AMVR), двунаправленный оптический поток (BDOF) и т.д. дополнительно могут использоваться в качестве вспомогательного режима. Аффинный режим может называться "режимом аффинного прогнозирования движения". MVP-режим может называться "режимом усовершенствованного прогнозирования векторов движения (AMVP)". В этом документе, некоторые режимы и/или возможные варианты информации движения, извлекаемые посредством некоторых режимов, могут включаться в один из связанных с информацией движения возможных вариантов других режимов.[80] Additionally, various inter-prediction modes can be used when applying inter-prediction to the current block. For example, various modes may be used, including a merge mode, a skip mode, a motion vector prediction (MVP) mode, an affine mode, a statistical motion vector prediction (HMVP) mode, and the like. Decoder Motion Vector Resolution (DMVR), Adaptive Motion Vector Resolution (AMVR), Bidirectional Optical Flow (BDOF), etc. can additionally be used as an auxiliary mode. The affine mode may be called "affine motion prediction mode". The MVP mode may be referred to as "Advanced Motion Vector Prediction (AMVP) mode". Herein, some modes and/or motion information options extracted by some modes may be included in one of the motion information-related options of other modes.

[81] Информация режима прогнозирования, указывающая режим взаимного прогнозирования текущего блока, может передаваться в служебных сигналах из оборудования кодирования в оборудование декодирования. В этом случае, информация режима прогнозирования может включаться в поток битов и приниматься посредством оборудования декодирования. Информация режима прогнозирования может включать в себя информацию индекса, указывающую один из нескольких возможных вариантов режимов. Альтернативно, режим взаимного прогнозирования может указываться через иерархическую передачу в служебных сигналах информации флага. В этом случае, информация режима прогнозирования может включать в себя один или более флагов. Например, то, следует или нет применять режим пропуска, может указываться посредством передачи в служебных сигналах флага пропуска, то, следует или нет применять режим объединения, может указываться посредством передачи в служебных сигналах флага объединения, когда режим пропуска не применяется, и указывается то, что MVP-режим применяется, или флаг для дополнительного различения дополнительно может передаваться в служебных сигналах, когда режим объединения не применяется. Аффинный режим может передаваться в служебных сигналах в качестве независимого режима или передаваться в служебных сигналах в качестве зависимого режима на режиме объединения или MVP-режиме. Например, аффинный режим может включать в себя аффинный режим объединения и аффинный MVP-режим.[81] Prediction mode information indicating the inter-prediction mode of the current block may be signaled from the encoding equipment to the decoding equipment. In this case, prediction mode information may be included in the bitstream and received by the decoding equipment. The prediction mode information may include index information indicating one of several possible mode options. Alternatively, the inter-prediction mode may be indicated via hierarchical signaling of flag information. In this case, the prediction mode information may include one or more flags. For example, whether or not to apply the skip mode may be indicated by signaling a skip flag, whether or not to apply the combining mode may be indicated by signaling a combining flag when the skip mode is not applied, and indicating whether that the MVP mode is applied, or a flag for additional discrimination may optionally be signaled when the combining mode is not applied. The affine mode may be signaled as an independent mode or signaled as a dependent mode in a pooling mode or MVP mode. For example, an affine mode may include an affine union mode and an affine MVP mode.

[82] Дополнительно, информация движения текущего блока может использоваться при применении взаимного прогнозирования к текущему блоку. Устройство кодирования может извлекать оптимальную информацию движения для текущего блока через процедуру оценки движения. Например, устройство кодирования может выполнять поиск в аналогичном опорном блоке, имеющем высокую корреляцию в единицах дробного пиксела, в предварительно определенном диапазоне поиска в опорном кадре посредством использования исходного блока в исходном кадре для текущего блока, и извлекать информацию движения через искомый опорный блок. Подобие блока может извлекаться на основе разности выборочных значений на основе фазы. Например, подобие блока может вычисляться на основе суммы абсолютных разностей (SAD) между текущим блоком (или эталоном текущего блока) и опорным блоком (или эталоном опорного блока). В этом случае, информация движения может извлекаться на основе опорного блока, имеющего наименьшую SAD в зоне поиска. Извлеченная информация движения может передаваться в служебных сигналах в устройство декодирования согласно различным способам на основе режима взаимного прогнозирования.[82] Additionally, the motion information of the current block can be used when applying inter-prediction to the current block. The encoder can extract optimal motion information for the current block through a motion estimation procedure. For example, the encoding apparatus may search a similar reference block having high correlation in fractional pixel units in a predetermined search range in a reference frame by using the source block in the source frame for the current block, and extract motion information through the searched reference block. The block similarity can be extracted based on the difference of the phase-based sample values. For example, block similarity may be calculated based on the sum of absolute differences (SAD) between the current block (or the current block's reference) and the reference block (or the reference block's reference). In this case, motion information can be extracted based on the reference block having the smallest SAD in the search area. The extracted motion information may be signaled to a decoding device according to various methods based on an inter-prediction mode.

[83] Прогнозированный блок для текущего блока может извлекаться на основе информации движения, извлекаемой согласно режиму прогнозирования. Прогнозированный блок может включать в себя прогнозные выборки (массив прогнозных выборок) текущего блока. Когда вектор движения (MV) текущего блока указывает дробную единицу выборок, процедура интерполяции может выполняться, и прогнозные выборки текущего блока могут извлекаться на основе опорных выборок с дробной единицей выборок в опорном кадре через процедуру интерполяции. Когда аффинное взаимное прогнозирование применяется к текущему блоку, прогнозные выборки могут формироваться на основе MV в единицах выборок/субблоков. Когда бипрогнозирование применяется, прогнозные выборки, извлекаемые через взвешенную сумму или среднее взвешенное прогнозных выборок, извлекаемых на основе L0-прогнозирования (т.е. прогнозирование с использованием опорного кадра в списке L0 опорных кадров и MVL0), и прогнозные выборки (согласно фазе), извлекаемые на основе L1-прогнозирования (т.е. прогнозирование с использованием опорного кадра в списке L1 опорных кадров и MVL1), могут использоваться в качестве прогнозных выборок текущего блока. Когда бипрогнозирование применяется, если опорный кадр, используемый для L0-прогнозирования, и опорный кадр, используемый для L1-прогнозирования, расположены в различных временных направлениях на основе текущего кадра (т.е. если прогнозирование соответствует бипрогнозированию и двунаправленному прогнозированию), оно может называться "истинным бипрогнозированием".[83] A predicted block for a current block may be extracted based on motion information extracted according to the prediction mode. The predicted block may include the predicted samples (an array of predicted samples) of the current block. When the motion vector (MV) of the current block indicates a fractional unit of samples, an interpolation procedure can be performed, and the prediction samples of the current block can be extracted based on reference samples with a fractional unit of samples in the reference frame through the interpolation procedure. When affine cross-prediction is applied to the current block, prediction samples can be generated based on MVs in sample/sub-block units. When bi-prediction is applied, prediction samples extracted through the weighted sum or weighted average of prediction samples retrieved based on L0 prediction (i.e. prediction using a reference frame in a list of L0 reference frames and MVL0), and prediction samples (according to phase), extracted based on L1 prediction (ie, prediction using a reference frame in the L1 reference frame list and MVL1) can be used as prediction samples of the current block. When bi-prediction is applied, if the reference frame used for L0 prediction and the reference frame used for L1 prediction are located in different temporal directions based on the current frame (i.e., if the prediction corresponds to bi-prediction and bidirectional prediction), it may be called "true biforecasting".

[84] Восстановленные выборки и восстановленные кадры могут формироваться на основе извлеченных прогнозных выборок, и после этого может выполняться такая процедура, как внутриконтурная фильтрация и т.д., как описано выше.[84] Reconstructed samples and reconstructed frames can be generated based on the extracted predictive samples, and a procedure such as in-loop filtering, etc., can then be performed as described above.

[85] Между тем, поскольку движение текущего блока прогнозируется на основе вектора движения соседнего блока без разности векторов движения (MVD) в режиме пропуска и/или режиме объединения, режим пропуска и/или режим объединения показывают ограничение в прогнозировании движения. Чтобы улучшать ограничение режима пропуска и/или режима объединения, вектор движения может детализироваться посредством применения режима детализации векторов движения на стороне декодера (DMVR), режима извлечения двунаправленных оптических потоков (BDOF) и т.д. DMVR- и BDOF-режимы могут использоваться, когда истинное бипрогнозирование применяется к текущему блоку.[85] Meanwhile, since the motion of the current block is predicted based on the motion vector of the adjacent block without motion vector difference (MVD) in the skip mode and/or merge mode, the skip mode and/or merge mode shows a limitation in motion prediction. To improve the limitation of the skip mode and/or the combining mode, the motion vector can be refined by applying a decoder-side motion vector detail (DMVR) mode, a bidirectional optical flow (BDOF) extraction mode, etc. DMVR and BDOF modes can be used when true biprediction is applied to the current block.

[86] Фиг. 4 является схемой для описания варианта осуществления процесса выполнения детализации векторов движения на стороне декодера (DMVR) в истинном парном прогнозировании.[86] FIG. 4 is a diagram for describing an embodiment of a process for performing decoder-side motion vector refinement (DMVR) in true pairwise prediction.

[87] DMVR представляет собой способ, в котором декодер выполняет прогнозирование движения посредством детализации информации движения соседнего блока. Когда DMVR применяется, декодер может извлекать детализированную информацию движения через сравнение затрат на основе эталона, сформированного посредством использования информации движения соседнего блока в режиме объединения/пропуска. В этом случае, точность прогнозирования движения может увеличиваться, и производительность сжатия может повышаться без дополнительной служебной информации.[87] DMVR is a method in which a decoder performs motion prediction by refining motion information of an adjacent block. When DMVR is applied, the decoder can extract detailed motion information through cost comparison based on a reference generated by using motion information of an adjacent block in a merge/skip mode. In this case, the motion prediction accuracy can be increased, and the compression performance can be improved without additional overhead information.

[88] В этом документе, для удобства описания, главным образом описывается оборудование декодирования, но DMVR согласно варианту осуществления этого документа может выполняться идентичным способом даже в оборудовании кодирования.[88] This document mainly describes decoding equipment for convenience of description, but DMVR according to an embodiment of this document can be performed in an identical manner even in encoding equipment.

[89] Ссылаясь на фиг. 4, оборудование декодирования может извлекать блоки прогнозирования (т.е. опорные блоки), идентифицированные посредством начальных векторов движения для направления списка 0 и списка 1 (или информации движения) (например, MV0 и MV1), и формировать эталон (или билатеральный шаблон) посредством взвешенной суммы (например, усреднения) извлеченных прогнозных выборок (этап 1). Здесь, начальные векторы движения (MV0 и MV1) могут представлять векторы движения, извлекаемые посредством использования информации движения соседнего блока в режиме объединения/пропуска.[89] Referring to FIG. 4, the decoding equipment can extract prediction blocks (i.e., reference blocks) identified by initial motion vectors for list 0 and list 1 direction (or motion information) (for example, MV0 and MV1), and generate a template (or bilateral template) through a weighted sum (e.g., averaging) of the extracted predictive samples (step 1). Here, the initial motion vectors (MV0 and MV1) may represent motion vectors extracted by using motion information of a neighboring block in a merge/skip mode.

[90] Помимо этого, оборудование декодирования может извлекать векторы движения (например, MV0' и MV1') для минимизации разности между эталоном и выборочной зоной опорного кадра через операцию сопоставления с шаблонами (этап 2). Здесь, выборочная зона может указывать соседнюю зону начального блока прогнозирования в опорном кадре, и выборочная зона может называться "соседней зоной", "опорной зоной", "зоной поиска", "диапазоном поиска", "пространством поиска" и т.д. Операция сопоставления с шаблонами может включать в себя операцию вычисления значения измерения затрат между эталоном и выборочной зоной опорного кадра. Например, сумма абсолютных разностей (SAD) может использоваться для измерения затрат. В качестве одного примера, в качестве функции затрат, может использоваться нормализованная SAD. В этом случае, затраты на сопоставление могут задаваться как SAD (T-mean(T), 2*P[x]-2*mean(P[x])). Здесь, T представляет эталон, и P[x] представляет блок в зоне поиска. Помимо этого, вектор движения для вычисления минимальных затрат на эталон для каждого из двух опорных кадров может рассматриваться как обновленный вектор движения (заменяющий начальный вектор движения). Как проиллюстрировано на фиг. 8, оборудование декодирования может формировать конечный результат билатерального прогнозирования (т.е. конечный блок билатерального прогнозирования) посредством использования обновленных векторов MV0' и MV1' движения. В качестве варианта осуществления, мультиитерация для извлечения обновленного (или нового) вектора движения может использоваться для получения конечного результата билатерального прогнозирования.[90] In addition, the decoding equipment may extract motion vectors (eg, MV0' and MV1') to minimize the difference between the template and the sample area of the reference frame through a template matching operation (step 2). Here, the sample zone may indicate a neighboring zone of the initial prediction block in the reference frame, and the sample zone may be called a “neighbor zone”, “reference zone”, “search zone”, “search range”, “search space”, etc. The pattern matching operation may include the operation of calculating a cost measurement value between the template and the sample area of the reference frame. For example, sum of absolute differences (SAD) can be used to measure costs. As one example, normalized SAD can be used as a cost function. In this case, the matching cost can be specified as SAD (T-mean(T), 2*P[x]-2*mean(P[x])). Here, T represents the template, and P[x] represents the block in the search area. In addition, the motion vector for calculating the minimum reference cost for each of the two reference frames can be considered as an updated motion vector (replacing the initial motion vector). As illustrated in FIG. 8, the decoding equipment can generate the final result of the bilateral prediction (ie, the final block of the bilateral prediction) by using the updated motion vectors MV0' and MV1'. As an embodiment, multi-iteration to extract the updated (or new) motion vector can be used to obtain the final bilateral prediction result.

[91] В варианте осуществления, оборудование декодирования может вызывать DMVR-процесс, чтобы повышать точность начального прогнозирования с компенсацией движения (т.е. прогнозирования с компенсацией движения через традиционный режим объединения/пропуска). Например, оборудование декодирования может выполнять DMVR-процесс, когда режим прогнозирования текущего блока представляет собой режим объединения или режим пропуска, и билатеральное бипрогнозирование, при котором билатеральные опорные кадры расположены в противоположных направлениях на основе текущего кадра в порядке отображения, применяется к текущему блоку.[91] In an embodiment, the decoding equipment may invoke the DMVR process to improve the accuracy of the initial motion-compensated prediction (ie, motion-compensated prediction via a conventional combine/skip mode). For example, the decoding equipment may perform a DMVR process where the prediction mode of the current block is a merge mode or a skip mode, and bilateral biprediction, in which bilateral reference frames are arranged in opposite directions based on the current frame in display order, is applied to the current block.

[92] Фиг. 5 является схемой, поясняющей вариант осуществления процесса выполнения детализации векторов движения на стороне декодера (DMVR) посредством использования суммы абсолютных разностей (SAD).[92] FIG. 5 is a diagram for explaining an embodiment of a process for performing decoder-side motion vector refinement (DMVR) by using sum of absolute differences (SAD).

[93] Как описано выше, оборудование декодирования может измерять затраты на сопоставление посредством использования SAD в выполнении DMVR. В качестве варианта осуществления, на фиг. 5, в дальнейшем описывается способ для детализации вектора движения посредством вычисления средней суммы абсолютных разностей (MRSAD) между прогнозными выборками в двух опорных кадрах без формирования эталона. Другими словами, способ по фиг. 5 показывает вариант осуществления билатерального сопоставления с использованием MRSAD.[93] As described above, decoding equipment can measure mapping costs through the use of SAD in executing DMVR. As an embodiment, FIG. 5, a method for refining a motion vector by calculating the mean sum of absolute differences (MRSAD) between prediction samples in two reference frames without generating a template is further described. In other words, the method of FIG. 5 shows an embodiment of bilateral matching using MRSAD.

[94] Ссылаясь на фиг. 5, оборудование декодирования может извлекать смежный пиксел относительно пиксела (выборки), указываемого посредством вектора MV0 движения для направления списка 1 (L0) в опорном L0-кадре, и извлекать смежный пиксел относительно пиксела (выборки), указываемого посредством вектора MV1 движения для направления списка 1 (L1) в опорном L1-кадре. Помимо этого, оборудование декодирования может измерять затраты на сопоставление посредством вычисления MRSAD между L0-блоком прогнозирования (т.е. опорным L0-блоком), идентифицированным посредством вектора движения, указывающего смежный пиксел, извлекаемый в опорном L0-кадре, и L1-блоком прогнозирования (т.е. опорным L1-блоком), идентифицированным посредством вектора движения, указывающего смежный пиксел, извлекаемый в опорном L1-кадре. В этом случае, оборудование декодирования может выбирать точку поиска (т.е. зону поиска, имеющую минимальную SAD между L0-блоком прогнозирования и L1-блоком прогнозирования), имеющую минимальные затраты, в качестве пары детализированных векторов движения. Другими словами, пара детализированных векторов движения может включать в себя детализированный L0-вектор движения, указывающий пиксельную позицию (L0-блок прогнозирования), имеющую минимальные затраты в опорном L0-кадре, и детализированный L1-вектор движения, указывающий пиксельную позицию (L1-блок прогнозирования), имеющую минимальные затраты в опорном L1-кадре.[94] Referring to FIG. 5, the decoding equipment may extract an adjacent pixel relative to a pixel (sample) indicated by motion vector MV0 for list direction 1 (L0) in the reference L0 frame, and extract an adjacent pixel relative to a pixel (sample) indicated by motion vector MV1 for list direction 1 (L1) in the L1 reference frame. In addition, the decoding equipment may measure the matching cost by calculating the MRSAD between the L0 prediction block (i.e., the L0 reference block) identified by a motion vector indicating an adjacent pixel extracted in the L0 reference frame and the L1 prediction block (ie, an L1 reference block) identified by a motion vector indicating an adjacent pixel extracted in the L1 reference frame. In this case, the decoding equipment may select a search point (ie, a search area having a minimum SAD between an L0 prediction block and an L1 prediction block) having a minimum cost as a pair of detailed motion vectors. In other words, a pair of detailed motion vectors may include a detailed L0 motion vector indicating a pixel position (L0 prediction block) having a minimum cost in the L0 reference frame, and a detailed L1 motion vector indicating a pixel position (L1 block prediction) that has minimal costs in the reference L1 frame.

[95] В качестве варианта осуществления, при вычислении затрат на сопоставление, после того, как зона поиска опорного кадра задается, одностороннее прогнозирование может выполняться посредством использования регулярного 8-отводного интерполяционного DCTIF-фильтра. Дополнительно, в качестве одного примера, 16-битовая точность может использоваться для вычисления MRSAD, и операции отсечения и/или округления могут не применяться перед вычислением MRSAD с учетом внутреннего буфера.[95] As an embodiment, when calculating the matching cost, after the reference frame search area is set, one-way prediction can be performed by using a regular 8-tap DCTIF interpolation filter. Additionally, as one example, 16-bit precision may be used to calculate the MRSAD, and trimming and/or rounding operations may not be applied before calculating the MRSAD given the internal buffer.

[96] Когда истинное бипрогнозирование применяется к текущему блоку, как описано выше, BDOF может использоваться для того, чтобы детализировать бипрогнозный сигнал. Когда бипрогнозирование применяется к текущему блоку, двунаправленный оптический поток (BDOF) может использоваться для того, чтобы вычислять улучшенную информацию движения и формировать прогнозные выборки на основе вычисленной информации движения. Например, BDOF может применяться на уровне субблока 4×4. Другими словами, BDOF может выполняться в единицах субблоков 4×4 в текущем блоке. Альтернативно, BDOF может применяться только к компоненту сигнала яркости. Альтернативно, BDOF может применяться только к компоненту сигнала цветности и применяться к компоненту сигнала яркости и компоненту сигнала цветности.[96] When true biprediction is applied to the current block, as described above, BDOF can be used to refine the biprediction signal. When bi-prediction is applied to the current block, bidirectional optical flow (BDOF) can be used to calculate improved motion information and generate prediction samples based on the calculated motion information. For example, BDOF can be applied at the 4x4 subblock level. In other words, BDOF can be performed in units of 4x4 subblocks in the current block. Alternatively, BDOF may be applied to only the luminance signal component. Alternatively, BDOF may be applied to only the chrominance signal component and applied to the luma signal component and the chrominance signal component.

[97] BDOF-режим основан на понятии оптического потока при условии, что движение объекта является плавным, как указано в силу названия "BDOF-режима". Детализация (vx, vy) движения может вычисляться посредством минимизации разностного значения между прогнозными L0- и L1-выборками для каждого из субблоков 4×4. Помимо этого, детализация движения может использоваться для регулирования выборочных значений бипрогнозирования в субблоках 4×4.[97] BDOF mode is based on the concept of optical flow, provided that the motion of the object is smooth, as indicated by the name "BDOF mode". The motion granularity (vx, vy) can be calculated by minimizing the difference between the predicted L0 and L1 samples for each of the 4x4 sub-blocks. In addition, motion detail can be used to adjust sample biprediction values in 4x4 sub-blocks.

[98] Между тем, можно видеть, что DMVR и BDOF в качестве технологий, которые выполняют прогнозирование посредством детализации информации движения (в этом случае, истинное бипрогнозирование представляет случай выполнения прогнозирования/компенсации движения в опорном кадре другого направления на основе кадра текущего блока) во время применения истинного бипрогнозирования представляет собой технологию детализации, имеющую аналогичное понятие в том, что предполагается то, что движение объекта в кадре выполняется с предварительно определенной скоростью и в предварительно определенном направлении. Тем не менее, когда истинное бипрогнозирование выполняется, поскольку условие для применения DMVR и условие для применения BDOF отличаются друг от друга, процесс проверки условий многократно несколько раз для каждой технологии должен выполняться. Следовательно, этот документ предлагает способ, который может повышать эффективность с точки зрения сложности декодера и производительность за счет улучшения процесса проверки условия при определении режима прогнозирования, применяемого к текущему блоку.[98] Meanwhile, it can be seen that DMVR and BDOF as technologies that perform prediction by refining motion information (in this case, true bi-prediction represents the case of performing motion prediction/compensation in a reference frame of another direction based on the frame of the current block) in time of application of true biprediction is a granularity technology that has a similar concept in that it assumes that the movement of an object in a frame is performed at a predetermined speed and in a predetermined direction. However, when true bi-forecasting is performed, since the condition for applying DMVR and the condition for applying BDOF are different from each other, the process of checking the conditions multiple times for each technology must be performed. Therefore, this document proposes a method that can improve efficiency in terms of decoder complexity and performance by improving the condition checking process when determining the prediction mode to apply to the current block.

[99] Нижеприведенная таблица 1 показывает условие для применения DMVR во время традиционного истинного бипрогнозирования. Когда все перечисленные ниже условия удовлетворяются, DMVR может применяться.[99] Table 1 below shows the condition for applying DMVR during traditional true biforecasting. When all of the following conditions are met, DMVR can be applied.

[100] Табл. 1[100] Tab. 1

- sps_dmvr_enabled_flag задается равным 1: Передача служебных сигналов в SPS
- merge_flag[xCb][yCb] равен 1: Применяется в случае объединения/пропуска
- mmvd_flag[xCb][yCb] равен 0: Применяется в случае не MMVD
- predFlagL0[0][0]=1 и predFlagL0[1][1]=1: Двунаправленное прогнозирование
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0: TrueBi и расстояния от текущего кадра и двунаправленного опорного кадра равны друг другу (в дальнейшем в этом документе, "расстояние до опорного кадра" может представлять вышеописанный смысл).
- CbHeight превышает или равен 8: В случае если длина (или размер) блока больше порогового значения (например, 8) (здесь, пороговое значение может примерно иллюстрироваться различными способами),
- CbHeight*CbWidth превышает или равен 64: В случае если размер блока (или абсолютная величина) больше порогового значения (например, 64) (здесь, пороговое значение может примерно иллюстрироваться различными способами)
- sps_dmvr_enabled_flag is set to 1: Signaling to SPS
- merge_flag[xCb][yCb] is equal to 1: Applies in case of merge/skip
- mmvd_flag[xCb][yCb] is equal to 0: Applies in case of non-MMVD
- predFlagL0[0][0]=1 and predFlagL0[1][1]=1: Bidirectional prediction
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) is equal to 0: TrueBi and the distances from the current frame and the bidirectional reference frame are equal to each other (hereinafter in this document, "distance to reference frame" can represent the above meaning).
- CbHeight is greater than or equal to 8: In case the length (or size) of the block is greater than a threshold value (for example, 8) (here, the threshold value can be roughly illustrated in various ways),
- CbHeight*CbWidth is greater than or equal to 64: In case the block size (or absolute value) is greater than a threshold value (for example, 64) (here, the threshold value can be roughly illustrated in various ways)

[101] Ссылаясь на таблицу 1, 1) то, следует или нет применять DMVR, может определяться на основе информации флага (например, sps_dmvr_enabled_flag), передаваемой в служебных сигналах в синтаксисе наборов параметров последовательности (SPS). Здесь, информация флага (например, sps_dmvr_enabled_flag) может представлять то, активируется или нет DMVR на основе истинного бипрогнозирования. Например, когда sps_dmvr_enabled_flag равен 1 (т.е. когда DMVR на основе истинного бипрогнозирования активируется), может определяться то, что условие для того, активируется или нет DMVR, удовлетворяется.[101] Referring to Table 1, 1) whether or not to apply DMVR can be determined based on flag information (eg, sps_dmvr_enabled_flag) signaled in Sequence Parameter Set (SPS) syntax. Here, the flag information (eg, sps_dmvr_enabled_flag) may represent whether or not the DMVR is enabled based on the true bi-prediction. For example, when sps_dmvr_enabled_flag is equal to 1 (ie, when the true biprediction-based DMVR is enabled), it may be determined that a condition for whether or not the DMVR is enabled is satisfied.

[102] 2) То, следует или нет применять DMVR, может определяться на основе информации флага (например, merge_flag), представляющей то, выполняется или нет взаимное прогнозирование посредством использования режима объединения/режима пропуска. Например, когда merge_flag равен 1 (т.е. когда взаимное прогнозирование выполняется посредством использования режима объединения/режима пропуска), может определяться то, что условие для того, следует или нет применять режим объединения/режим пропуска, удовлетворяется.[102] 2) Whether or not to apply DMVR may be determined based on flag information (eg, merge_flag) representing whether or not mutual prediction is performed by using the merge mode/skip mode. For example, when merge_flag is 1 (ie, when mutual prediction is performed by using the merge mode/skip mode), it may be determined that a condition for whether or not to apply the merge mode/skip mode is satisfied.

[103] 3) То, следует или нет применять DMVR, может определяться на основе информации флага (например, mmvd_flag), представляющей то, выполняется или нет взаимное прогнозирование посредством использования режима объединения с разностью векторов движения (MMVD). Например, когда mmvd_flag равен 0 (т.е. когда MMVD-режим не используется), может определяться то, что условие для того, следует или нет применять MMVD-режим, удовлетворяется.[103] 3) Whether or not to apply DMVR can be determined based on flag information (eg, mmvd_flag) representing whether or not inter-prediction is performed by using a motion vector difference (MMVD) combining mode. For example, when mmvd_flag is 0 (ie, when the MMVD mode is not used), it may be determined that the condition for whether or not to use the MMVD mode is satisfied.

[104] 4) То, следует или нет применять DMVR, может определяться на основе того, используется или нет билатеральное прогнозирование (бипрогнозирование). Здесь, билатеральное прогнозирование может представлять взаимное прогнозирование, выполняемое на основе опорных кадров, которые существуют в различных направлениях на основе текущего кадра. Например, когда predFlagL0[0][0]=1 и predFlagL0[1][1]=1, может определяться то, что билатеральное прогнозирование применяется, и может определяться то, что условие для того, следует или нет выполнять билатеральное прогнозирование, удовлетворяется.[104] 4) Whether or not DMVR should be used can be determined based on whether bilateral prediction (biprediction) is used or not. Here, bilateral prediction may represent mutual prediction performed based on reference frames that exist in different directions based on the current frame. For example, when predFlagL0[0][0]=1 and predFlagL0[1][1]=1, it can be determined that bilateral prediction is applied, and it can be determined that a condition for whether or not to perform bilateral prediction is satisfied .

[105] 5) То, следует или нет применять DMVR, может определяться на основе того, выполняется или нет истинное бипрогнозирование, и расстояние между текущим кадром и билатеральными опорными кадрами являются идентичными друг другу. Другими словами, может определяться то, являются или нет расстояние между текущим кадром и опорным L0-кадром (т.е. опорным кадром в списке L0 опорных кадров) и расстояние между текущим кадром и опорным L1-кадром (т.е. опорным кадром в списке L1 опорных кадров) идентичными друг другу. Например, когда DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1])=0, определяется то, что истинное бипрогнозирование выполняется, и расстояния между текущим кадром и билатеральными опорными кадрами являются идентичными друг другу, чтобы определять то, что удовлетворяется условие для того, являются или нет расстояния билатеральных опорных кадров идентичными друг другу.[105] 5) Whether or not to apply DMVR can be determined based on whether true bi-prediction is performed or not, and the distance between the current frame and bilateral reference frames are identical to each other. In other words, it can be determined whether or not the distance between the current frame and the L0 reference frame (i.e., the reference frame in the L0 reference frame list) and the distance between the current frame and the L1 reference frame (i.e., the reference frame in list L1 of reference frames) identical to each other. For example, when DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1])=0, it is determined that true bi-prediction is performed and the distances between the current frame and bilateral reference frames are identical to each other to determine that that the condition for whether or not the distances of the bilateral reference frames are identical to each other is satisfied.

[106] 6) То, следует или нет применять DMVR, может определяться на основе того, больше или нет высота текущего блока порогового значения. Например, когда высота текущего блока равна или выше 8, может определяться то, что условие по размеру (высоте) текущего блока удовлетворяется.[106] 6) Whether or not to apply DMVR can be determined based on whether the height of the current block is greater than a threshold value. For example, when the height of the current block is equal to or greater than 8, it may be determined that the size (height) condition of the current block is satisfied.

[107] 7) То, следует или нет применять DMVR, может определяться на основе того, больше или нет размер текущего блока порогового значения. Например, когда размер текущего блока, высота*ширина равна или выше 64, может определяться то, что условие по размеру текущего блока (высота*ширина) удовлетворяется.[107] 7) Whether or not to apply DMVR may be determined based on whether or not the current block size is larger than a threshold value. For example, when the current block size, height*width, is equal to or greater than 64, it may be determined that the current block size (height*width) condition is satisfied.

[108] Оборудование декодирования может определять то, следует или нет применять DMVR, согласно тому, удовлетворяются или нет условия 1)-7) вышеприведенной таблицы 1. Другими словами, когда условия 1)-7) вышеприведенной таблицы 1 удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR, и когда даже любое из условий вышеприведенной таблицы 1 не удовлетворяется, оборудование декодирования не применяет DMVR.[108] The decoding equipment can determine whether or not to apply the DMVR according to whether conditions 1) to 7) of Table 1 above are satisfied or not. In other words, when conditions 1) to 7) of Table 1 above are satisfied, the decoding equipment can perform true bi-prediction by applying DMVR, and when even any of the conditions in Table 1 above are not satisfied, the decoding equipment does not apply DMVR.

[109] Нижеприведенная таблица 2 показывает условие для применения BDOF во время традиционного истинного бипрогнозирования. Когда все перечисленные ниже условия удовлетворяются, BDOF может применяться.[109] Table 2 below shows the condition for applying BDOF during traditional true biforecasting. When all of the following conditions are met, BDOF can be applied.

[110] Табл. 2[110] Tab. 2

- sps_bdof_enabled_flag равен 1: Передача служебных сигналов через SPS
- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1: Двунаправленное прогнозирование
- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) меньше 0: TrueBi
- MotionModelIdc[xCb][yCb] равен 0: В случае не аффинного режима
- merge_subblock_flag[xCb][yCb] равен 0: субблок andand w>=8 andand h>=8
- GbiIdx[xCb][yCb] равен 0: В случае если GBi-индекс составляет значение по умолчанию
- cIdx равен 0: Применяется только к сигналу яркости
- sps_bdof_enabled_flag is equal to 1: Signaling via SPS
- predFlagL0[xSbIdx][ySbIdx] and predFlagL1[xSbIdx][ySbIdx] are equal to 1: Bidirectional prediction
- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) less than 0: TrueBi
- MotionModelIdc[xCb][yCb] is equal to 0: In case of non-affine mode
- merge_subblock_flag[xCb][yCb] is equal to 0: subblock andand w>=8 andand h>=8
- GbiIdx[xCb][yCb] is equal to 0: In case the GBi index is the default value
- cIdx is 0: Applies only to the luminance signal

[111] Ссылаясь на вышеприведенную таблицу 2, 1) то, следует или нет применять BDOF, может определяться на основе информации флага (например, sps_bdof_enabled_flag), передаваемой в служебных сигналах в синтаксисе наборов параметров последовательности (SPS). Здесь, информация флага (например, sps_dmvr_enabled_flag) может представлять тор, активируется или нет BDOF на основе истинного бипрогнозирования. Например, когда sps_bdof_enabled_flag равен 1 (т.е. когда BDOF на основе истинного бипрогнозирования активируется), может определяться то, что условие для того, активируется или нет BDOF, удовлетворяется. [111] Referring to Table 2 above, 1) whether or not BDOF should be applied can be determined based on flag information (eg, sps_bdof_enabled_flag) signaled in Sequence Parameter Set (SPS) syntax. Here, the flag information (eg, sps_dmvr_enabled_flag) may represent whether the BDOF is enabled or not based on the true biprediction. For example, when sps_bdof_enabled_flag is equal to 1 (ie, when the true biprediction-based BDOF is enabled), it may be determined that the condition for whether or not the BDOF is enabled is satisfied.

[112] 2) То, следует или нет применять BDOF, может определяться на основе того, используется или нет билатеральное прогнозирование. Здесь, билатеральное прогнозирование может представлять взаимное прогнозирование, выполняемое на основе опорных кадров, которые существуют в различных направлениях на основе текущего кадра. Например, когда predFlagL0] и predFlagL1 равны 1, может определяться то, что билатеральное прогнозирование применяется, и может определяться то, что условие для того, следует или нет выполнять билатеральное прогнозирование, удовлетворяется.[112] 2) Whether or not BDOF should be used can be determined based on whether bilateral prediction is used or not. Here, bilateral prediction may represent mutual prediction performed based on reference frames that exist in different directions based on the current frame. For example, when predFlagL0] and predFlagL1 are 1, it can be determined that bilateral prediction is applied, and it can be determined that a condition for whether or not to perform bilateral prediction is satisfied.

[113] 3) То, следует или нет применять BDOF, может определяться на основе того, выполняется или нет истинное бипрогнозирование. Другими словами, может определяться то, расположены или нет опорный L0-кадр (т.е. опорный кадр в списке L0 опорных кадров) и опорный L1-кадр (т.е. опорный кадр в списке L1 опорных кадров) во временно различных направлениях на основе текущего кадра. Например, когда DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) меньше 0, определяется то, что билатеральные опорные кадры расположены в различных направлениях на основе текущего кадра, чтобы определять то, что удовлетворяется условие для того, выполняется или нет истинное vi-прогнозирование.[113] 3) Whether or not BDOF should be applied can be determined based on whether true biprediction is performed or not. In other words, it can be determined whether or not the L0 reference frame (i.e., the reference frame in the reference frame list L0) and the L1 reference frame (i.e., the reference frame in the reference frame list L1) are located in temporarily different directions on based on the current frame. For example, when DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) is less than 0, it is determined that the bilateral reference frames are located in different directions based on the current frame to determine that the condition for , whether true vi-prediction holds or fails.

[114] 4) То, следует или нет применять BDOF, может определяться на основе того, используется или нет аффинный режим. Здесь, то, используется или нет аффинный режим, может определяться посредством извлечения MotionModelIdc. Например, когда извлеченный MotionModelIdc равен 0, может определяться то, что аффинный режим не используется, и в этом случае, может определяться то, что условие для того, следует или нет применять аффинный режим, удовлетворяется.[114] 4) Whether or not BDOF should be used can be determined based on whether the affine mode is used or not. Here, whether or not the affine mode is used can be determined by retrieving the MotionModelIdc. For example, when the retrieved MotionModelIdc is 0, it may be determined that the affine mode is not used, in which case, it may be determined that the condition for whether or not to use the affine mode is satisfied.

[115] 5) То, следует или нет применять BDOF, может определяться на основе информации флага (например, merge_subblock_flag), представляющей то, выполняется или нет взаимное прогнозирование в единицах субблоков. Например, когда merge_subblock_flag равен 0 (т.е. когда режим объединения не применяется в единицах субблоков), может определяться то, что условие для того, следует или нет применять режим объединения в единицах субблоков, удовлетворяется.[115] 5) Whether or not BDOF should be applied may be determined based on flag information (eg, merge_subblock_flag) representing whether or not inter-prediction is performed in subblock units. For example, when merge_subblock_flag is 0 (ie, when the merge mode is not applied in the subblock units), it may be determined that the condition for whether or not to apply the merge mode in the subblock units is satisfied.

[116] 6) То, следует или нет применять BDOF, может определяться на основе того, существует или нет GBi. Здесь, то, существует или нет GBi, может определяться на основе информации GBi-индекса (например, GbiIdx). Например, когда GbiIdx равен 0 (т.е. когда GbiIdx составляет значение по умолчанию), может определяться то, что условие для того, существует или нет GBi, удовлетворяется.[116] 6) Whether or not BDOF should be applied can be determined based on whether GBi exists or not. Here, whether or not a GBi exists can be determined based on the GBi index information (eg, GbiIdx). For example, when GbiIdx is 0 (ie, when GbiIdx is the default value), it may be determined that the condition for whether or not GBi exists is satisfied.

[117] 7) То, следует или нет применять BDOF, может определяться на основе того, представляет или нет текущий блок собой блок сигналов яркости, включающий в себя компонент сигнала яркости. Например, когда индекс (например, cIdx), указывающий то, представляет текущий блок собой или нет блок сигналов яркости (т.е. когда текущий блок представляет собой блок сигналов яркости), может определяться то, что условие для того, представляет текущий блок собой или нет блок сигналов яркости, удовлетворяется.[117] 7) Whether or not BDOF should be applied may be determined based on whether or not the current block is a luma signal block including a luma signal component. For example, when an index (eg, cIdx) indicating whether or not the current block is a luma block (i.e., when the current block is a luma block), it may be determined that a condition for whether the current block is or not the brightness signal block is satisfied.

[118] Оборудование декодирования может определять то, следует или нет применять DMVR, согласно тому, удовлетворяются или нет условия 1)-7) вышеприведенной таблицы 2. Другими словами, когда условия 1)-7) вышеприведенной таблицы 2 удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF и когда даже любое из условий вышеприведенной таблицы 2 не удовлетворяется, оборудование декодирования не применяет BDOF.[118] The decoding equipment can determine whether or not to apply the DMVR according to whether conditions 1) to 7) of Table 2 above are satisfied or not. In other words, when conditions 1) to 7) of Table 2 above are satisfied, the decoding equipment can perform true bi-prediction by applying BDOF and when even any of the conditions in Table 2 above are not satisfied, the decoding equipment does not apply BDOF.

[119] Как описано выше, некоторые условия применения DMVR и BDOF являются идентичными, и некоторые являются аналогичными или отличаются. В традиционной схеме, поскольку проверка состояния выполняется для каждой технологии, даже когда условие является идентичным, сложность для выполнения бипрогнозирования увеличивается. Следовательно, настоящее раскрытие сущности предлагает эффективное условие для применения DMVR и BDOF во время бипрогнозирования.[119] As described above, some conditions for use of DMVR and BDOF are identical, and some are similar or different. In the traditional scheme, since condition checking is performed for each technology, even when the condition is identical, the complexity to perform bi-prediction increases. Therefore, the present disclosure provides an effective condition for applying DMVR and BDOF during bi-forecasting.

[120] Когда режим объединения/пропуска сравнивается с AMVP-режимом, режим объединения/пропуска имеет относительно меньшую точность, чем AMVP-режим, и как результат, детализация информации движения посредством использования способа DMVR является эффективной с точки зрения производительности. Тем не менее, BDOF-режим может применяться даже в AMVP-режиме в дополнение к режиму объединения/пропуска в отличие от DMVR, и по сути, сложность для выполнения BDOF по сравнению с производительностью может увеличиваться при применении BDOF в AMVP-режиме. Соответственно, вариант осуществления предлагает способ для применения даже BDOF в режиме объединения/пропуска аналогично в DMVR.[120] When the combine/skip mode is compared with the AMVP mode, the combine/skip mode has relatively lower accuracy than the AMVP mode, and as a result, the motion information granularity by using the DMVR method is efficient in terms of performance. However, BDOF mode can be applied even in AMVP mode in addition to the merge/skip mode as opposed to DMVR, and as such, the complexity to perform BDOF relative to performance may increase when BDOF is applied in AMVP mode. Accordingly, the embodiment proposes a method for applying even BDOF in a merge/skip mode similarly to DMVR.

[121] В этом случае, в качестве варианта осуществления, предложенного в настоящем раскрытии сущности, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 3.[121] In this case, as an embodiment proposed in the present disclosure, the BDOF application condition may include the conditions presented in Table 3 below.

[122] Табл. 3[122] Tab. 3

- sps_bdof_enabled_flag равен 1.
- merge_flag[xCb][yCb] равен 1.
- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.
- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) меньше 0.
- MotionModelIdc[xCb][yCb] равен 0.
- merge_subblock_flag[xCb][yCb] равен 0.
- GbiIdx[xCb][yCb] равен 0.
- cIdx равен 0.
- sps_bdof_enabled_flag is equal to 1.
- merge_flag[xCb][yCb] is equal to 1.
- predFlagL0[xSbIdx][ySbIdx] and predFlagL1[xSbIdx][ySbIdx] are equal to 1.
- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) is less than 0.
- MotionModelIdc[xCb][yCb] is equal to 0.
- merge_subblock_flag[xCb][yCb] is equal to 0.
- GbiIdx[xCb][yCb] is equal to 0.
- cIdx is 0.

[123] Ссылаясь на вышеприведенную таблицу 3, то, следует или нет применять BDOF, может определяться на основе информации флага (например, merge_flag), представляющей то, выполняется или нет взаимное прогнозирование посредством использования режима объединения/режима пропуска. Например, когда merge_flag равен 1 (т.е. когда взаимное прогнозирование выполняется посредством использования режима объединения/режима пропуска), может определяться то, что условие для того, следует или нет применять режим объединения/режим пропуска, удовлетворяется. Соответственно, BDOF также может применяться в режиме объединения/пропуска, аналогично DMVR.[123] Referring to the above Table 3, whether or not to apply BDOF can be determined based on flag information (eg, merge_flag) representing whether or not mutual prediction is performed by using the merge mode/skip mode. For example, when merge_flag is 1 (ie, when mutual prediction is performed by using the merge mode/skip mode), it may be determined that a condition for whether or not to apply the merge mode/skip mode is satisfied. Accordingly, BDOF can also be used in a merge/skip mode, similar to DMVR.

[124] Другими словами, в варианте осуществления, вместе с условием, применяемым в случае режима объединения/пропуска, то, следует или нет применять BDOF, может определяться на основе условия, применяемого, когда BDOF активируется, условия, применяемого в случае билатерального прогнозирования, условия, применяемого, когда истинное бипрогнозирование выполняется, условия, применяемого, когда аффинное прогнозирование используется, условия, применяемого, когда режим объединения на основе субблоков не применяется, условия, применяемого, когда GBi-индекс составляет значение по умолчанию, и условия, применяемого, когда текущий блок представляет собой блок сигналов яркости.[124] In other words, in the embodiment, together with the condition applied in the case of the combine/skip mode, whether or not BDOF should be applied can be determined based on the condition applied when the BDOF is activated, the condition applied in the case of bilateral prediction, a condition applied when true biprediction is performed, a condition applied when affine prediction is used, a condition applied when subblock-based aggregation mode is not applied, a condition applied when the GBi index is the default, and a condition applied when the current block is a luma block.

[125] Соответственно, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 3, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 3, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 3, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.[125] Accordingly, the decoding equipment can determine whether all the conditions listed in Table 3 above are satisfied or not, and when all the conditions are satisfied, the decoding equipment can perform true bi-prediction by applying BDOF. When even any of the conditions listed in Table 3 above are not satisfied, the decoding equipment may not apply BDOF. The encoding equipment can also apply the conditions of the above Table 3, and the encoding equipment can perform true bi-prediction through a corresponding method in the decoding equipment.

[126] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 3, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.[126] The method for performing true bi-prediction based on the conditions listed in Table 3 above can be independently applied to DMVR and BDOF, or can be applied under identical conditions for DMVR and BDOF.

[127] Между тем, когда условия, перечисленные в варианте осуществления, являются идентичными условиям, описанным в вышеприведенных таблицах 1 и 2, подробная работа или смысл аналогично применяются, и как результат, подробное описание для каждого условия опускается. Дополнительно, дублированное содержимое даже в вариантах осуществления, которые описываются ниже, опускается.[127] Meanwhile, when the conditions listed in the embodiment are identical to the conditions described in the above Tables 1 and 2, the detailed operation or meaning is similarly applied, and as a result, the detailed description for each condition is omitted. Additionally, duplicate content is omitted even in the embodiments that are described below.

[128] Оборудование кодирования/декодирования может быть сконфигурировано посредством различных аппаратных средств, и предпочтение по отношению сложности к производительности может отличаться. Следовательно, вариант осуществления предлагает способ, который может детализировать информацию движения посредством применения DMVR даже в AMVP-режиме в дополнение к режиму объединения/пропуска.[128] The encoding/decoding equipment may be configured with different hardware, and the preference for complexity versus performance may differ. Therefore, the embodiment provides a method that can refine motion information by applying DMVR even in AMVP mode in addition to the combine/skip mode.

[129] В этом случае, в качестве варианта осуществления, предложенного в настоящем раскрытии сущности, условие применения DMVR может включать в себя условия, представленные в нижеприведенной таблице 4.[129] In this case, as an embodiment proposed in the present disclosure, the application condition of the DMVR may include the conditions presented in Table 4 below.

[130] Табл. 4[130] Tab. 4

- sps_dmvr_enabled_flag задается равным 1.
- merge_flag[xCb][yCb] равен 1. (Удаление условий, ограниченных режимом объединения/пропуска)),
- mmvd_flag[xCb][yCb] равен 0.
- predFlagL0[0][0]=1 и predFlagL0[1][1]=1.
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0.
- CbHeight превышает или равен 8.
- CbHeight*CbWidth превышает или равен 64.
- sps_dmvr_enabled_flag is set to 1.
- merge_flag[xCb][yCb] is equal to 1. (Removing conditions limited by merge/skip mode)),
- mmvd_flag[xCb][yCb] is equal to 0.
- predFlagL0[0][0]=1 and predFlagL0[1][1]=1.
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) is 0.
- CbHeight is greater than or equal to 8.
- CbHeight*CbWidth is greater than or equal to 64.

[131] Ссылаясь на вышеприведенную таблицу 4, процесс определения того, следует или нет применять DMVR, может опускаться на основе информации флага (например, merge_flag), представляющей то, выполняется или нет взаимное прогнозирование посредством использования режима объединения/режима пропуска. В связи с этим, посредством опускания условия для того, следует или нет применять режим объединения/режим пропуска, DMVR может применяться даже в AMVP-режиме в дополнение к режиму объединения/режиму пропуска.[131] Referring to the above Table 4, the process of determining whether or not to apply the DMVR may be omitted based on flag information (eg, merge_flag) representing whether or not mutual prediction is performed by using the merge mode/skip mode. In this regard, by omitting the condition of whether or not to apply the combining mode/skip mode, DMVR can be applied even in the AMVP mode in addition to the combining mode/skip mode.

[132] Согласно вышеприведенной таблице 4, то, следует или нет применять DMVR, может определяться на основе условия, применяемого, когда DMVR активируется, условия, применяемого, когда MMVD-режим не используется, условия, применяемого в случае билатерального прогнозирования, условия, применяемого в случае истинного бипрогнозирования, в котором расстояния между текущим кадром и билатеральными опорными кадрами являются идентичными друг другу, условия, применяемого, когда высота текущего блока равна или выше 8, и условия, применяемого, когда размер (высота*ширина) текущего блока равен или выше 64.[132] According to the above Table 4, whether or not to apply the DMVR can be determined based on the condition applied when the DMVR is activated, the condition applied when the MMVD mode is not used, the condition applied in the case of bilateral prediction, the condition applied in the case of true biprediction, in which the distances between the current frame and bilateral reference frames are identical to each other, a condition applied when the height of the current block is equal to or greater than 8, and a condition applied when the size (height*width) of the current block is equal to or greater 64.

[133] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 4, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 4, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 4, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.[133] In other words, the decoding equipment can determine whether all the conditions listed in Table 4 above are satisfied or not, and when all the conditions are satisfied, the decoding equipment can perform true bi-prediction by applying DMVR. When even any of the conditions listed in Table 4 above are not satisfied, the decoding equipment may not apply the DMVR. The encoding equipment can also apply the conditions of the above Table 4, and the encoding equipment can perform true bi-prediction through a corresponding method in the decoding equipment.

[134] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 4, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.[134] The method for performing true bi-prediction based on the conditions listed in Table 4 above can be independently applied to DMVR and BDOF, or can be applied under identical conditions for DMVR and BDOF.

[135] Между тем, в качестве варианта осуществления настоящего раскрытия сущности, как DMVR, так и BDOF могут применяться к режиму нормального объединения. Другими словами, DMVR и BDOF могут применяться, когда режим усовершенствованного временного прогнозирования векторов движения (ATMVP) не используется, аффинный режим не используется, и CPR не используется. В этом случае, условие применения DMVR может включать в себя условия, представленные в нижеприведенной таблице 5.[135] Meanwhile, as an embodiment of the present disclosure, both DMVR and BDOF can be applied to the normal combining mode. In other words, DMVR and BDOF can be used when the Advanced Temporal Motion Vector Prediction (ATMVP) mode is not used, the affine mode is not used, and CPR is not used. In this case, the condition for applying the DMVR may include the conditions presented in Table 5 below.

[136] Табл. 5[136] Tab. 5

- sps_dmvr_enabled_flag задается равным 1.
- merge_flag[xCb][yCb] равен 1.
- mmvd_flag[xCb][yCb] равен 0.
- predFlagL0[0][0]=1 и predFlagL0[1][1]=1.
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0.
- CbHeight превышает или равен 8.
- CbHeight*CbWidth превышает или равен 64.
- MotionModelIdc[xCb][yCb] равен 0: ! Аффинный
- merge_subblock_flag[xCb][yCb] равен 0: субблок andand w>=8 andand h>=8
- sps_dmvr_enabled_flag is set to 1.
- merge_flag[xCb][yCb] is equal to 1.
- mmvd_flag[xCb][yCb] is equal to 0.
- predFlagL0[0][0]=1 and predFlagL0[1][1]=1.
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) is 0.
- CbHeight is greater than or equal to 8.
- CbHeight*CbWidth is greater than or equal to 64.
- MotionModelIdc[xCb][yCb] is equal to 0: ! Affine
- merge_subblock_flag[xCb][yCb] is equal to 0: subblock andand w>=8 andand h>=8

[137] Ссылаясь на вышеприведенную таблицу 5, то, удовлетворяются или нет условие, применяемое, когда аффинный режим не используется (например, когда MotionModelIdc равен 0), и условие, применяемое, когда режим объединения на основе субблоков не используется (например, когда merge_subblock_flag равен 0), определяется, чтобы применять DMVR только в режиме нормального объединения.[137] Referring to the above Table 5, whether or not the condition applied when the affine mode is not used (for example, when MotionModelIdc is 0) and the condition applied when the subblock-based merge mode is not used (for example, when merge_subblock_flag is 0) is defined to apply DMVR only in normal aggregation mode.

[138] Дополнительно, в варианте осуществления, вместе с условием для того, используется или нет аффинный режим, и условием для того, используется или нет режим объединения на основе субблоков, то, следует или нет применять DMVR, может определяться на основе условия, применяемого, когда DMVR активируется, условия, применяемого, когда режим объединения/режим пропуска используется, условия, применяемого, когда MMVD-режим не используется, условия, применяемого в случае билатерального прогнозирования, условия, применяемого в случае истинного бипрогнозирования, в котором расстояния между текущим кадром и билатеральными опорными кадрами являются идентичными друг другу, условия, применяемого, когда высота текущего блока равна или выше 8, и условия, применяемого, когда размер (высота*ширина) текущего блока равен или выше 64.[138] Additionally, in an embodiment, together with the condition for whether or not the affine mode is used, and the condition for whether or not the subblock-based aggregation mode is used, whether or not the DMVR should be applied can be determined based on the condition applied when DMVR is activated, the condition applied when the merge mode/skip mode is used, the condition applied when the MMVD mode is not used, the condition applied in the case of bilateral prediction, the condition applied in the case of true biprediction in which the distances between the current frame and bilateral reference frames are identical to each other, the condition applied when the height of the current block is equal to or greater than 8, and the condition applied when the size (height*width) of the current block is equal to or greater than 64.

[139] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 5, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 5, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 5, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.[139] In other words, the decoding equipment can determine whether or not all the conditions listed in Table 5 above are satisfied, and when all the conditions are satisfied, the decoding equipment can perform true bi-prediction by applying DMVR. When even any of the conditions listed in Table 5 above are not satisfied, the decoding equipment may not apply the DMVR. The encoding equipment can also apply the conditions of the above Table 5, and the encoding equipment can perform true bi-prediction through a corresponding method in the decoding equipment.

[140] Условие для того, следует или нет применять режим объединения на основе субблоков (например, merge_subblock_flag), из условий применения вышеприведенной таблицы 5, включает в себя дублированное условие из числа традиционных условий применения DMVR. Соответственно, в качестве варианта осуществления настоящего раскрытия сущности, условие, дублированное с условием (например, merge_subblock_flag) для того, следует или нет применять режим объединения на основе субблоков, может удаляться. В этом случае, соответствующее условие может удаляться, как предложено в нижеприведенной таблице 6.[140] The condition for whether or not to apply the subblock-based merge mode (eg, merge_subblock_flag) from the application conditions of Table 5 above includes a duplicate condition from among the traditional DMVR application conditions. Accordingly, as an embodiment of the present disclosure, a condition duplicated with a condition (eg, merge_subblock_flag) for whether or not to apply the subblock-based merging mode may be removed. In this case, the corresponding condition may be deleted as suggested in Table 6 below.

[141] Табл. 6[141] Tab. 6

- sps_dmvr_enabled_flag задается равным 1.
- merge_flag[xCb][yCb] равен 1.
- mmvd_flag[xCb][yCb] равен 0.
- predFlagL0[0][0]=1 и predFlagL0[1][1]=1.
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0.
- CbHeight превышает или равен 8.
- CbHeight*CbWidth превышает или равен 64.
- MotionModelIdc[xCb][yCb] равен 0: ! Аффинный
- merge_subblock_flag[xCb][yCb] равен 0: субблок andand w>=8 andand h>=8
- sps_dmvr_enabled_flag is set to 1.
- merge_flag[xCb][yCb] is equal to 1.
- mmvd_flag[xCb][yCb] is equal to 0.
- predFlagL0[0][0]=1 and predFlagL0[1][1]=1.
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) is 0.
- CbHeight is greater than or equal to 8.
- CbHeight*CbWidth is greater than or equal to 64.
- MotionModelIdc[xCb][yCb] is equal to 0: ! Affine
- merge_subblock_flag[xCb][yCb] is equal to 0: subblock andand w>=8 andand h>=8

[142] Ссылаясь на вышеприведенную таблицу 6, режим объединения на основе субблоков может применяться, когда размер текущего блока равен или выше 8×8. Соответственно, поскольку условие (например, merge_subblock_flag=0) для того, следует или нет применять режим объединения на основе субблоков, включает в себя условие, связанное с размером текущего блока, условия (например, CbHeight и CbHeight*CbWidth), связанные с размером текущего блока, из условий применения традиционной DMVR могут исключаться. Например, условие для того, равна или выше либо нет высота текущего блока 8, и условие для того, равна или выше либо нет высота*ширина текущего блока 64, может опускаться, и то, следует или нет применять DMVR, может определяться посредством использования оставшихся условий, перечисленных в вышеприведенной таблице 6. [142] Referring to the above Table 6, the subblock-based aggregation mode can be applied when the current block size is equal to or greater than 8×8. Accordingly, since the condition (for example, merge_subblock_flag=0) for whether or not to apply the subblock-based merging mode includes a condition related to the size of the current block, conditions (for example, CbHeight and CbHeight*CbWidth) related to the size of the current block, may be excluded from the conditions of use of traditional DMVR. For example, the condition for whether the height of the current block 8 is equal to or greater than or not, and the condition for whether the height*width of the current block 64 is equal to or greater than or not may be omitted, and whether or not the DMVR should be applied may be determined by using the remaining conditions listed in Table 6 above.

[143] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 6, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 6, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 6, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.[143] In other words, the decoding equipment can determine whether all the conditions listed in Table 6 above are satisfied or not, and when all the conditions are satisfied, the decoding equipment can perform true bi-prediction by applying DMVR. When even any of the conditions listed in Table 6 above are not satisfied, the decoding equipment may not apply the DMVR. The encoding equipment can also apply the conditions of the above Table 6, and the encoding equipment can perform true bi-prediction through a corresponding method in the decoding equipment.

[144] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 5 или 6, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.[144] The method for performing true bi-prediction based on the conditions listed in Table 5 or 6 above can be independently applied to DMVR and BDOF, or can be applied under identical conditions for DMVR and BDOF.

[145] В качестве варианта осуществления настоящего раскрытия сущности, чтобы увеличивать точность вектора движения при низкой сложности, когда размер блока является небольшим, технологии детализации, такие как DMVR и BDOF, могут не применяться. В традиционной схеме, технология детализации может применяться, когда текущий блок представляет собой блок, который равен или выше 8×8, и в случае DMVR технологий детализации, когда размер текущего блока является большим, детализация применяется посредством разделения текущего блока на единицы 16×16, и как результат, DMVR может не применяться к блоку, который меньше 16×16. В этом случае, условие применения DMVR может включать в себя условия, представленные в нижеприведенной таблице 7.[145] As an embodiment of the present disclosure, in order to increase motion vector accuracy at low complexity, when the block size is small, granularity technologies such as DMVR and BDOF may not be applied. In the traditional scheme, granularity technology can be applied when the current block is a block that is equal to or higher than 8x8, and in the case of DMVR granularity technologies, when the size of the current block is large, granularity is applied by dividing the current block into 16x16 units. and as a result, DMVR may not apply to a block that is smaller than 16x16. In this case, the condition for applying the DMVR may include the conditions presented in Table 7 below.

[146] Табл. 7[146] Tab. 7

- sps_dmvr_enabled_flag задается равным 1.
- merge_flag[xCb][yCb] равен 1.
- mmvd_flag[xCb][yCb] равен 0.
- predFlagL0[0][0]=1 и predFlagL0[1][1]=1.
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0.
- IntraPredMode превышает или равен 16
- CbWidth превышает или равен 16.
- sps_dmvr_enabled_flag is set to 1.
- merge_flag[xCb][yCb] is equal to 1.
- mmvd_flag[xCb][yCb] is equal to 0.
- predFlagL0[0][0]=1 and predFlagL0[1][1]=1.
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) is 0.
- IntraPredMode is greater than or equal to 16
- CbWidth is greater than or equal to 16.

[147] Ссылаясь на вышеприведенную таблицу 7, DMVR может не применяться к блоку, который меньше 16×16, посредством изменения условий (например, CbHeight и CbWidth), связанных с размером текущего блока. Например, могут использоваться условие, применяемое, когда высота текущего блока (например, CbHeight) равна или выше 16, и условие, применяемое, когда ширина текущего блока (например, CbWidth) равна или выше 16. Когда условия применения, связанные с размером текущего блока, удовлетворяются (т.е. когда размер текущего блока равен или выше 16×16, DMVR может применяться, и когда условия применения, связанные с размером текущего блока, не удовлетворяются (т.е. когда размер текущего блока меньше 16×16), DMVR может не применяться. [147] Referring to Table 7 above, DMVR may not apply to a block that is smaller than 16×16 by changing conditions (eg, CbHeight and CbWidth) associated with the size of the current block. For example, a condition applied when the height of the current block (for example, CbHeight) is equal to or greater than 16, and a condition applied when the width of the current block (for example, CbWidth) is equal to or greater than 16 can be used. When application conditions related to the size of the current block , are satisfied (i.e., when the current block size is equal to or greater than 16x16, DMVR can be applied, and when the application conditions related to the current block size are not satisfied (i.e., when the current block size is less than 16x16), DMVR may not apply.

[148] Дополнительно, в варианте осуществления, вместе с условиями (например, CbHeight и CbWidth), связанными с размером текущего блока, то, следует или нет применять DMVR, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 7.[148] Additionally, in an embodiment, together with conditions (e.g., CbHeight and CbWidth) associated with the size of the current block, whether or not to apply DMVR can be determined based on the remaining application conditions listed in Table 7 above.

[149] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 7, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 7, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 7, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.[149] In other words, the decoding equipment can determine whether all the conditions listed in Table 7 above are satisfied or not, and when all the conditions are satisfied, the decoding equipment can perform true bi-prediction by applying DMVR. When even any of the conditions listed in Table 7 above are not satisfied, the decoding equipment may not apply the DMVR. The encoding equipment can also apply the conditions of the above Table 7, and the encoding equipment can perform true bi-prediction through a corresponding method in the decoding equipment.

[150] В качестве варианта осуществления настоящего раскрытия сущности, когда текущий блок представляет собой блок, который меньше 16×16, BDOF может не применяться в дополнение к DMVR. В этом случае, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 8.[150] As an embodiment of the present disclosure, when the current block is a block that is smaller than 16x16, BDOF may not be applied in addition to DMVR. In this case, the condition for applying the BDOF may include the conditions presented in Table 8 below.

[151] Табл. 8[151] Tab. 8

- sps_bdof_enabled_flag равен 1.
- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.
- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) меньше 0.
- MotionModelIdc[xCb][yCb] равен 0.
- merge_subblock_flag[xCb][yCb] равен 0.
- IntraPredMode превышает или равен 16
- CbWidth превышает или равен 16
- GbiIdx[xCb][yCb] равен 0.
- cIdx равен 0.
- sps_bdof_enabled_flag is equal to 1.
- predFlagL0[xSbIdx][ySbIdx] and predFlagL1[xSbIdx][ySbIdx] are equal to 1.
- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) is less than 0.
- MotionModelIdc[xCb][yCb] is equal to 0.
- merge_subblock_flag[xCb][yCb] is equal to 0.
- IntraPredMode is greater than or equal to 16
- CbWidth greater than or equal to 16
- GbiIdx[xCb][yCb] is equal to 0.
- cIdx is 0.

[152] Ссылаясь на вышеприведенную таблицу 8, BDOF может не применяться к блоку, который меньше 16×16, посредством изменения условий (например, CbHeight и CbWidth), связанных с размером текущего блока. Например, могут использоваться условие, применяемое, когда высота текущего блока (например, CbHeight) равна или выше 16, и условие, применяемое, когда ширина текущего блока (например, CbWidth) равна или выше 16. Когда условия применения, связанные с размером текущего блока, удовлетворяются (т.е. когда размер текущего блока равен или выше 16×16), BDOF может применяться, и когда условия применения, связанные с размером текущего блока, не удовлетворяются (т.е. когда размер текущего блока меньше 16×16), BDOF может не применяться. [152] Referring to Table 8 above, BDOF may not apply to a block that is smaller than 16×16 by changing conditions (eg, CbHeight and CbWidth) associated with the size of the current block. For example, a condition applied when the height of the current block (for example, CbHeight) is equal to or greater than 16, and a condition applied when the width of the current block (for example, CbWidth) is equal to or greater than 16 can be used. When application conditions related to the size of the current block , are satisfied (i.e. when the current block size is equal to or greater than 16x16), BDOF can be applied, and when the application conditions related to the current block size are not satisfied (i.e. when the current block size is less than 16x16) , BDOF may not apply.

[153] Дополнительно, в варианте осуществления, вместе с условиями (например, CbHeight и CbWidth), связанными с размером текущего блока, то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 8.[153] Additionally, in an embodiment, together with conditions (e.g., CbHeight and CbWidth) associated with the size of the current block, whether or not BDOF should be applied can be determined based on the remaining application conditions listed in Table 8 above.

[154] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 8, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 8, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 8, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.[154] In other words, the decoding equipment can determine whether or not all the conditions listed in Table 8 above are satisfied, and when all the conditions are satisfied, the decoding equipment can perform true bi-prediction by applying BDOF. When even any of the conditions listed in Table 8 above are not satisfied, the decoding equipment may not apply BDOF. The encoding equipment can also apply the conditions of the above Table 8, and the encoding equipment can perform true bi-prediction through a corresponding method in the decoding equipment.

[155] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 7 или 8, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.[155] The method for performing true bi-prediction based on the conditions listed in Table 7 or 8 above can be independently applied to DMVR and BDOF, or can be applied under identical conditions for DMVR and BDOF.

[156] Как описано выше, DMVR применяется, когда расстояния между текущим кадром и билатеральными опорными кадрами являются идентичными друг другу, в то время как BDOF непрерывно применяется в случае истинного бипрогнозирования, даже если расстояния между текущим кадром и билатеральными опорными кадрами отличаются друг от друга. Соответственно, настоящее раскрытие сущности предлагает способ, который может интегрально применять условие, связанное с расстоянием между билатеральными опорными кадрами в DMVR и BDOF, чтобы повышать эффективность кодирования.[156] As described above, DMVR is applied when the distances between the current frame and the bilateral reference frames are identical to each other, while BDOF is continuously applied in the case of true biprediction, even if the distances between the current frame and the bilateral reference frames are different from each other . Accordingly, the present disclosure proposes a method that can integrally apply a condition related to the distance between bilateral reference frames in DMVR and BDOF to improve coding efficiency.

[157] В качестве варианта осуществления, предложенного в настоящем раскрытии сущности, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 9.[157] As an embodiment proposed in the present disclosure, the BDOF application condition may include the conditions presented in Table 9 below.

[158] Табл. 9[158] Tab. 9

- sps_bdof_enabled_flag равен 1.
- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0: TrueBi и расстояния до двунаправленного опорного кадра равны друг другу
- MotionModelIdc[xCb][yCb] равен 0.
- merge_subblock_flag[xCb][yCb] равен 0.
- GbiIdx[xCb][yCb] равен 0.
- cIdx равен 0.
- sps_bdof_enabled_flag is equal to 1.
- predFlagL0[xSbIdx][ySbIdx] and predFlagL1[xSbIdx][ySbIdx] are equal to 1.
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) is equal to 0: TrueBi and distances to bidirectional reference frame are equal to each other
- MotionModelIdc[xCb][yCb] is equal to 0.
- merge_subblock_flag[xCb][yCb] is equal to 0.
- GbiIdx[xCb][yCb] is equal to 0.
- cIdx is 0.

[159] Ссылаясь на вышеприведенную таблицу 9, условие, связанное с расстоянием до опорного кадра, из условий применения BDOF (например, DiffPicOrderCnt), изменяется, чтобы аналогично применять соответствующее условие к DMVR и BDOF. Например, равен или нет DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) 0, определяется, чтобы определять то, являются или нет расстояние между текущим кадром и опорным L0-кадром (т.е. опорным кадром в списке L0 опорных кадров) и расстояние между текущим кадром и опорным L1-кадром (т.е. опорным кадром в списке L1 опорных кадров) идентичными друг другу. Другими словами, BDOF может применяться только тогда, когда расстояния между текущим кадром и билатеральными опорными кадрами являются идентичными друг другу. В связи с этим, в качестве условия, при котором истинное бипрогнозирование выполняется, и расстояния между билатеральными опорными кадрами являются идентичными друг другу, добавляется, диапазон BDOF-применения ограничен, за счет этого снижая сложность декодирования. [159] Referring to the above Table 9, the condition associated with the distance to the reference frame from the BDOF application conditions (eg, DiffPicOrderCnt) is changed to similarly apply the corresponding condition to DMVR and BDOF. For example, whether or not DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) is equal to 0 is defined to determine whether or not the distance between the current frame and the reference L0 frame (i.e., the reference frame in the reference frame list L0) and the distance between the current frame and the L1 reference frame (ie, the reference frame in the reference frame list L1) are identical to each other. In other words, BDOF can only be applied when the distances between the current frame and the bilateral reference frames are identical to each other. In this regard, as a condition under which true bi-prediction is performed and the distances between bilateral reference frames are identical to each other, it is added that the range of BDOF application is limited, thereby reducing decoding complexity.

[160] Дополнительно, в варианте осуществления, вместе с условиями (например, DiffPicOrderCnt), связанными с расстоянием до опорного кадра, то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 9.[160] Additionally, in an embodiment, together with conditions (eg, DiffPicOrderCnt) associated with the distance to the reference frame, whether or not BDOF should be applied can be determined based on the remaining application conditions listed in Table 9 above.

[161] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 9, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 9, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 9, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.[161] In other words, the decoding equipment can determine whether all the conditions listed in Table 9 above are satisfied or not, and when all the conditions are satisfied, the decoding equipment can perform true bi-prediction by applying BDOF. When even any of the conditions listed in Table 9 above are not satisfied, the decoding equipment may not apply BDOF. The encoding equipment can also apply the conditions of the above Table 9, and the encoding equipment can perform true bi-prediction through a corresponding method in the decoding equipment.

[162] В качестве варианта осуществления, предложенного в настоящем раскрытии сущности, условие применения DMVR может включать в себя условия, представленные в нижеприведенной таблице 10.[162] As an embodiment proposed in the present disclosure, the DMVR application condition may include the conditions presented in Table 10 below.

[163] Табл. 10[163] Tab. 10

- sps_dmvr_enabled_flag задается равным 1.
- merge_flag[xCb][yCb] равен 1.
- mmvd_flag[xCb][yCb] равен 0.
- predFlagL0[0][0]=1 и predFlagL0[1][1]=1.
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0: TrueBi и расстояния до двунаправленного опорного кадра равны друг другу
- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) меньше 0: TrueBi
- CbHeight превышает или равен 8
- CbHeight*CbWidth превышает или равен 64
- sps_dmvr_enabled_flag is set to 1.
- merge_flag[xCb][yCb] is equal to 1.
- mmvd_flag[xCb][yCb] is equal to 0.
- predFlagL0[0][0]=1 and predFlagL0[1][1]=1.
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) is equal to 0: TrueBi and distances to bidirectional reference frame are equal to each other
- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) less than 0: TrueBi
- CbHeight is greater than or equal to 8
- CbHeight*CbWidth is greater than or equal to 64

[164] Ссылаясь на вышеприведенную таблицу 10, условие, связанное с расстоянием до опорного кадра, из условий применения DMVR (например, DiffPicOrderCnt), изменяется, чтобы аналогично применять соответствующее условие к DMVR и BDOF. Например, определяется меньше или нет DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1])0, чтобы определять то, выполняется или нет истинное бипрогнозирование, при котором билатеральные опорные кадры расположены в различных направлениях на основе текущего кадра. Другими словами, DMVR может непрерывно применяться в случае истинного бипрогнозирования, даже если расстояния между текущим кадром и билатеральными опорными кадрами не являются идентичными между собой. В связи с этим, когда условие для того, выполняется или нет истинное бипрогнозирование, применяется, вектор движения, извлекаемый с учетом сложности декодирования, может использоваться без масштабирования, даже когда расстояния между билатеральными опорными кадрами отличаются. [164] Referring to the above Table 10, the condition associated with the distance to the reference frame from the DMVR application conditions (eg, DiffPicOrderCnt) is changed to similarly apply the corresponding condition to the DMVR and BDOF. For example, whether or not DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1])0 is determined to determine whether or not true biprediction is performed, in which bilateral reference frames are located in different directions based on the current frame . In other words, DMVR can be continuously applied in the case of true biprediction, even if the distances between the current frame and the bilateral reference frames are not identical to each other. In this regard, when a condition for whether true bi-prediction is satisfied or not is applied, the motion vector extracted taking into account the decoding complexity can be used without scaling even when the distances between bilateral reference frames are different.

[165] Дополнительно, в варианте осуществления, вместе с условием (например, DiffPicOrderCnt), связанным с расстоянием до опорного кадра, то, следует или нет применять DMVR, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 10.[165] Additionally, in an embodiment, together with a condition (eg, DiffPicOrderCnt) associated with the distance to the reference frame, whether or not to apply DMVR can be determined based on the remaining application conditions listed in Table 10 above.

[166] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 10, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 10, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 10, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.[166] In other words, the decoding equipment can determine whether all the conditions listed in Table 10 above are satisfied or not, and when all the conditions are satisfied, the decoding equipment can perform true bi-prediction by applying DMVR. When even any of the conditions listed in Table 10 above are not satisfied, the decoding equipment may not apply the DMVR. The encoding equipment can also apply the conditions of the above Table 10, and the encoding equipment can perform true bi-prediction through a corresponding method in the decoding equipment.

[167] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 9 или 10, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.[167] The method for performing true bi-prediction based on the conditions listed in Table 9 or 10 above can be independently applied to DMVR and BDOF, or can be applied under identical conditions for DMVR and BDOF.

[168] Между тем, в каждом опорном блоке, может возникать случай, в котором компенсация движения выполняется посредством взвешенной суммы посредством изменения света. В этом случае, поскольку явление может определяться посредством GBi или компенсации локальной освещенности (LIC), условия применения DMVR и BDOF могут определяться с учетом GBi- или LIC-условия.[168] Meanwhile, in each reference block, a case may arise in which motion compensation is performed by a weighted sum by changing the light. In this case, since the phenomenon can be determined by GBi or local illuminance compensation (LIC), the application conditions of DMVR and BDOF can be determined taking into account the GBi or LIC condition.

[169] В качестве варианта осуществления настоящего раскрытия сущности, предлагается способ для определения того, следует или нет применять DMVR с учетом GBi- и LIC-условий. В этом случае, условие применения DMVR может включать в себя условия, представленные в нижеприведенной таблице 11.[169] As an embodiment of the present disclosure, a method is provided for determining whether or not to apply DMVR taking into account the GBi and LIC conditions. In this case, the condition for applying the DMVR may include the conditions presented in Table 11 below.

[170] Табл. 11[170] Tab. eleven

- sps_dmvr_enabled_flag задается равным 1.
- merge_flag[xCb][yCb] равен 1.
- mmvd_flag[xCb][yCb] равен 0.
- predFlagL0[0][0]=1 и predFlagL0[1][1]=1.
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0.
- CbHeight превышает или равен 8.
- CbHeight*CbWidth превышает или равен 64.
- GbiIdx[xCb][yCb] равен 0.
- LICFlag равен 0.
- sps_dmvr_enabled_flag is set to 1.
- merge_flag[xCb][yCb] is equal to 1.
- mmvd_flag[xCb][yCb] is equal to 0.
- predFlagL0[0][0]=1 and predFlagL0[1][1]=1.
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) is 0.
- CbHeight is greater than or equal to 8.
- CbHeight*CbWidth is greater than or equal to 64.
- GbiIdx[xCb][yCb] is equal to 0.
- LICFlag is 0.

[171] Ссылаясь на таблицу 11, можно определять то, следует или нет применять DMVR, посредством добавления GBi-условия (например, GbiIdx) и LIC-условия (например, LICFlag). Здесь, GBi может представлять обобщенное бипрогнозирование, допускающее применение различных весовых коэффициентов к L0-прогнозированию и L1-прогнозированию, и, например, представлять обобщенное бипрогнозирование с использованием GbiIdx. GbiIdx может существовать в случае бипрогнозирования и представлять весовой индекс бипрогнозирования. Например, GbiIdx может извлекаться из соседнего блока в режиме объединения или передаваться в служебных сигналах из оборудования кодирования в оборудование декодирования через синтаксический элемент GbiIdx (например, gbi_idx) в MVP-режиме. В качестве примера, GbiIdx может указывать весовой коэффициент w, применяемый к L1-прогнозированию, и в этом случае, весовой коэффициент (1-w) может применяться к L0-прогнозированию. В качестве другого примера, GbiIdx может указывать весовой коэффициент w, применяемый к L0-прогнозированию, и в этом случае, весовой коэффициент (1-w) может применяться к L1-прогнозированию.[171] Referring to Table 11, it is possible to determine whether or not to apply DMVR by adding a GBi condition (eg, GbiIdx) and an LIC condition (eg, LICFlag). Here, GBi may represent a generalized biprediction allowing different weights to be applied to the L0 prediction and L1 prediction, and, for example, represent a generalized biprediction using GbiIdx. GbiIdx may exist in the case of biforecasting and represent the biforecasting weight index. For example, GbiIdx may be retrieved from an adjacent block in aggregation mode or signaled from encoding equipment to decoding equipment via a GbiIdx syntax element (eg, gbi_idx) in MVP mode. As an example, GbiIdx may indicate a weight w applied to the L1 prediction, in which case, a weight (1-w) may be applied to the L0 prediction. As another example, GbiIdx may indicate a weight w applied to the L0 prediction, in which case, a weight (1-w) may be applied to the L1 prediction.

[172] Согласно таблице 11, если GbiIdx равен 0 (т.е. если GbiIdx составляет значение по умолчанию), он может определяться как удовлетворяющий GBi-условию, и если LICFlag равен 0 (т.е. если LIC существует), он может определяться как удовлетворяющий LIC-условию.[172] According to Table 11, if GbiIdx is 0 (ie, if GbiIdx is the default value), it may be determined to satisfy the GBi condition, and if LICFlag is 0 (ie, if LIC exists), it may be defined as satisfying the LIC condition.

[173] Дополнительно, в варианте осуществления, вместе с GBi-условием (например, GbiIdx) и LIC-условием (например, LICFlag), то, следует или нет применять DMVR, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 11.[173] Additionally, in an embodiment, together with the GBi condition (eg, GbiIdx) and the LIC condition (eg, LICFlag), whether or not to apply the DMVR can be determined based on the remaining application conditions listed in Table 11 above .

[174] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 11, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 11, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 11, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.[174] In other words, the decoding equipment can determine whether or not all the conditions listed in Table 11 above are satisfied, and when all the conditions are satisfied, the decoding equipment can perform true bi-prediction by applying DMVR. When even any of the conditions listed in Table 11 above are not satisfied, the decoding equipment may not apply the DMVR. The encoding equipment can also apply the conditions of the above Table 11, and the encoding equipment can perform true bi-prediction through a corresponding method in the decoding equipment.

[175] В качестве варианта осуществления настоящего раскрытия сущности, предлагается способ для определения того, следует или нет применять BDOF с учетом GBi- и LIC-условий. В этом случае, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 12.[175] As an embodiment of the present disclosure, a method is provided for determining whether or not BDOF should be applied taking into account the GBi and LIC conditions. In this case, the condition for applying the BDOF may include the conditions presented in Table 12 below.

[176] Табл. 12[176] Tab. 12

- sps_bdof_enabled_flag равен 1.
- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.
- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) меньше 0.
- MotionModelIdc[xCb][yCb] равен 0.
- merge_subblock_flag[xCb][yCb] равен 0.
- GbiIdx[xCb][yCb] равен 0.
- LICFlag равен 0.
- cIdx равен 0.
- sps_bdof_enabled_flag is equal to 1.
- predFlagL0[xSbIdx][ySbIdx] and predFlagL1[xSbIdx][ySbIdx] are equal to 1.
- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) is less than 0.
- MotionModelIdc[xCb][yCb] is equal to 0.
- merge_subblock_flag[xCb][yCb] is equal to 0.
- GbiIdx[xCb][yCb] is equal to 0.
- LICFlag is 0.
- cIdx is 0.

[177] Согласно вышеприведенной таблице 12, то, следует или нет применять BDOF, может определяться посредством добавления LIC-условия (например, LICFlag) вместе с традиционным GBi-условием (например, GbiIdx). Например, когда GbiIdx равен 0 (т.е. когда GbiIdx составляет значение по умолчанию), определяется то, что условие для того, существует или нет GBi, удовлетворяется, и когда LICFlag равен 0 (т.е. когда LIC существует), может определяться то, что условие для того, существует или нет LIC, удовлетворяется.[177] According to the above Table 12, whether or not BDOF should be applied can be determined by adding an LIC condition (eg, LICFlag) together with a traditional GBi condition (eg, GbiIdx). For example, when GbiIdx is 0 (i.e., when GbiIdx is the default value), it is determined that the condition for whether or not a GBi exists is satisfied, and when LICFlag is 0 (i.e., when LIC exists), may determined that the condition for whether or not an LIC exists is satisfied.

[178] Соответственно, в варианте осуществления, вместе с GBi-условием (например, GbiIdx) и LIC-условием (например, LICFlag), то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 12.[178] Accordingly, in an embodiment, together with the GBi condition (eg, GbiIdx) and the LIC condition (eg, LICFlag), whether or not BDOF should be applied can be determined based on the remaining application conditions listed in Table 12 above .

[179] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 12, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 12, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 12, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.[179] In other words, the decoding equipment can determine whether or not all the conditions listed in Table 12 above are satisfied, and when all the conditions are satisfied, the decoding equipment can perform true bi-prediction by applying BDOF. When even any of the conditions listed in Table 12 above are not satisfied, the decoding equipment may not apply BDOF. The encoding equipment can also apply the conditions of the above Table 12, and the encoding equipment can perform true bi-prediction through a corresponding method in the decoding equipment.

[180] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 11 или 12, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.[180] The method for performing true bi-prediction based on the conditions listed in Table 11 or 12 above can be independently applied to DMVR and BDOF, or can be applied under identical conditions for DMVR and BDOF.

[181] Между тем, поскольку DMVR и BDOF извлекают информацию движения посредством процесса детализации в оборудовании декодирования, возникает проблема сложности декодирования. Соответственно, настоящее раскрытие сущности предлагает способ, который может уменьшать сложность декодирования посредством предоставления возможности определения того, следует или нет применять DMVR и BDOF, посредством использования индекса объединения. В этом случае, поскольку как DMVR, так и BDOF выполняют детализацию вектора движения в ограниченном диапазоне, преимущество детализации может уменьшаться, когда вектор движения является неточным. Соответственно, настоящее раскрытие сущности предлагает способ, который может ограниченно применять DMVR и BDOF только тогда, когда значение, указывающее индекс объединения, является небольшим с учетом эффективности детализации.[181] Meanwhile, since DMVR and BDOF extract motion information through a granularity process in decoding equipment, the problem of decoding complexity arises. Accordingly, the present disclosure proposes a method that can reduce decoding complexity by allowing a determination of whether or not to apply DMVR and BDOF through the use of a pooling index. In this case, since both DMVR and BDOF perform motion vector detail within a limited range, the benefit of detail may be reduced when the motion vector is imprecise. Accordingly, the present disclosure proposes a method that can limitedly apply DMVR and BDOF only when the value indicating the join index is small in view of the granularity efficiency.

[182] Здесь, индекс объединения может представлять собой синтаксический элемент, передаваемый в служебных сигналах из оборудования кодирования в оборудование декодирования. Например, оборудование кодирования/декодирования может конфигурировать список возможных вариантов объединения на основе соседних блоков относительно текущего блока, когда режим объединения/режим пропуска применяется к текущему блоку. В этом случае, оборудование кодирования может выбирать оптимальный возможный вариант объединения из возможных вариантов объединения, включенных в список возможных вариантов объединения, на основе функции затрат на искажение в зависимости от скорости передачи (RD), и передавать в служебных сигналах информацию индекса объединения, указывающую выбранный возможный вариант объединения, в оборудование декодирования. Оборудование декодирования может выбирать возможный вариант объединения, применяемый к текущему блоку, на основе списка возможных вариантов объединения и информации индекса объединения.[182] Here, the combining index may be a syntax element signaled from the encoding equipment to the decoding equipment. For example, the encoding/decoding equipment may configure a list of possible combining options based on neighboring blocks relative to the current block when the combining mode/skip mode is applied to the current block. In this case, the encoding equipment may select the optimal combining candidate from the combining candidate candidates included in the combining candidate list based on the rate-distortion (RD) distortion cost function, and signal combining index information indicating the selected one. a possible option for combining into decoding equipment. The decoding equipment may select a combine candidate to apply to the current block based on the list of combine candidates and the combine index information.

[183] В качестве варианта осуществления настоящего раскрытия сущности, способ для определения того, следует или нет применять DMVR посредством использования индекса объединения, может включать в себя условия, представленные в нижеприведенной таблице 13.[183] As an embodiment of the present disclosure, a method for determining whether or not to apply DMVR by using a union index may include the conditions presented in Table 13 below.

[184] Табл. 13[184] Tab. 13

- sps_dmvr_enabled_flag задается равным 1.
- merge_flag[xCb][yCb] равен 1.
- mmvd_flag[xCb][yCb] равен 0.
- merge_idx[xCb][yCb]<2.
- predFlagL0[0][0]=1 и predFlagL0[1][1]=1.
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0.
- CbHeight превышает или равен 8.
- CbHeight*CbWidth превышает или равен 64.
- sps_dmvr_enabled_flag is set to 1.
- merge_flag[xCb][yCb] is equal to 1.
- mmvd_flag[xCb][yCb] is equal to 0.
- merge_idx[xCb][yCb]<2.
- predFlagL0[0][0]=1 and predFlagL0[1][1]=1.
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) is 0.
- CbHeight is greater than or equal to 8.
- CbHeight*CbWidth is greater than or equal to 64.

[185] Ссылаясь на вышеприведенную таблицу 13, то, следует или нет применять DMVR, может определяться посредством добавления условия по индексу объединения (например, merge_idx). Например, когда индекс объединения (например, merge_idx) меньше 2, может определяться то, что условие по индексу объединения удовлетворяется. Здесь, значение (пороговое значение) индекса объединения может задаваться равным 2, но это представляет собой только один пример, и соответствующее значение может изменяться согласно эффективности кодирования.[185] Referring to Table 13 above, whether or not DMVR should be applied can be determined by adding a condition on the merge index (eg, merge_idx). For example, when the merge index (eg, merge_idx) is less than 2, it may be determined that the condition on the merge index is satisfied. Here, the value (threshold value) of the combining index may be set to 2, but this is only one example, and the corresponding value may vary according to the encoding efficiency.

[186] Соответственно, в варианте осуществления, вместе с условием по индексу объединения (например, merge_idx), то, следует или нет применять DMVR, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 13.[186] Accordingly, in an embodiment, together with the condition on the merge index (for example, merge_idx), whether or not to apply the DMVR can be determined based on the remaining application conditions listed in Table 13 above.

[187] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 13, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 13, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 13, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.[187] In other words, the decoding equipment can determine whether or not all the conditions listed in Table 13 above are satisfied, and when all the conditions are satisfied, the decoding equipment can perform true bi-prediction by applying DMVR. When even any of the conditions listed in Table 13 above are not satisfied, the decoding equipment may not apply the DMVR. The encoding equipment can also apply the conditions of the above Table 13, and the encoding equipment can perform true bi-prediction through a corresponding method in the decoding equipment.

[188] В качестве варианта осуществления настоящего раскрытия сущности, способ для определения того, следует или нет применять BDOF посредством использования индекса объединения, может включать в себя условия, представленные в нижеприведенной таблице 14.[188] As an embodiment of the present disclosure, a method for determining whether or not to apply BDOF by using a union index may include the conditions presented in Table 14 below.

[189] Табл. 14[189] Tab. 14

- sps_bdof_enabled_flag равен 1.
- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.
- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) меньше 0.
- MotionModelIdc[xCb][yCb] равен 0.
- merge_subblock_flag[xCb][yCb] равен 0.
- GbiIdx[xCb][yCb] равен 0.
-! (merge_flag[xCb][yCb] равен 1 andand merge_idx[xCb][yCb]>=2)
- cIdx равен 0.
- sps_bdof_enabled_flag is equal to 1.
- predFlagL0[xSbIdx][ySbIdx] and predFlagL1[xSbIdx][ySbIdx] are equal to 1.
- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) is less than 0.
- MotionModelIdc[xCb][yCb] is equal to 0.
- merge_subblock_flag[xCb][yCb] is equal to 0.
- GbiIdx[xCb][yCb] is equal to 0.
-! (merge_flag[xCb][yCb] is equal to 1 andand merge_idx[xCb][yCb]>=2)
- cIdx is 0.

[190] Ссылаясь на вышеприведенную таблицу 14, то, следует или нет применять BDOF, может определяться посредством добавления условия для того, удовлетворяются или нет режим объединения/режим пропуска (например, merge_flag), и условия по индексу объединения (например, merge_idx). Например, когда merge_flag не равен 1 (т.е. когда взаимное прогнозирование выполняется посредством использования режима объединения/режима пропуска), и merge_idex не равен или превышает 2, только если значение индекса объединения является небольшим, может определяться то, что условие для ограниченного применения BDOF удовлетворяется. Другими словами, когда merge_flag равен 1 (т.е. когда взаимное прогнозирование выполняется посредством использования режима объединения/режима пропуска), и merge_idex меньше 2, только если значение индекса объединения является небольшим, может определяться то, что условие по индексу объединения удовлетворяется, и BDOF может применяться. Здесь, значение (пороговое значение) индекса объединения может задаваться равным 2, но это представляет собой только один пример, и соответствующее значение может изменяться согласно эффективности кодирования.[190] Referring to the above Table 14, whether or not BDOF should be applied can be determined by adding a condition on whether the merge mode/skip mode is satisfied or not (eg, merge_flag), and a condition on the merge index (eg, merge_idx). For example, when merge_flag is not equal to 1 (i.e., when mutual prediction is performed by using merge mode/skip mode), and merge_idex is not equal to or greater than 2, only if the merge index value is small, it can be determined that the condition for limited application BDOF is satisfied. In other words, when merge_flag is 1 (that is, when mutual prediction is performed by using merge mode/skip mode), and merge_idex is less than 2, only if the value of the merge index is small, it can be determined that the condition on the merge index is satisfied, and BDOF may apply. Here, the value (threshold value) of the combining index may be set to 2, but this is only one example, and the corresponding value may vary according to the encoding efficiency.

[191] Другими словами, в варианте осуществления, вместе с условием для того, удовлетворяются или нет режим объединения/режим пропуска (например, merge_flag), и условием по индексу объединения (например, merge_idx), то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 14.[191] In other words, in an embodiment, together with a condition on whether or not the merge mode/skip mode is satisfied (eg, merge_flag), and a condition on the merge index (eg, merge_idx), whether or not BDOF should be applied may determined based on the remaining application conditions listed in Table 14 above.

[192] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 14, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 14, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 14, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.[192] In other words, the decoding equipment can determine whether or not all the conditions listed in Table 14 above are satisfied, and when all the conditions are satisfied, the decoding equipment can perform true bi-prediction by applying BDOF. When even any of the conditions listed in Table 14 above are not satisfied, the decoding equipment may not apply BDOF. The encoding equipment can also apply the conditions of the above Table 14, and the encoding equipment can perform true bi-prediction through a corresponding method in the decoding equipment.

[193] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 13 или 14, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.[193] The method for performing true bi-prediction based on the conditions listed in Table 13 or 14 above can be independently applied to DMVR and BDOF, or can be applied under identical conditions for DMVR and BDOF.

[194] Между тем, в режиме объединения/пропуска, информация движения может детализироваться через MMVD, и в этом случае, поскольку сложность декодирования увеличивается, DMVR не выполняется, когда применяется MMVD. Тем не менее, когда DMVR применяется без учета MMVD, DMVR может применяться без MMVD-условия с учетом повышения производительности. В этом случае, согласно варианту осуществления настоящего раскрытия сущности, условие применения DMVR может включать в себя условия, представленные в нижеприведенной таблице 15.[194] Meanwhile, in the merge/skip mode, motion information can be detailed through MMVD, and in this case, since the decoding complexity increases, DMVR is not performed when MMVD is applied. However, when DMVR is applied without considering the MMVD condition, DMVR can be applied without the MMVD condition considering the performance improvement. In this case, according to an embodiment of the present disclosure, the DMVR application condition may include the conditions presented in Table 15 below.

[195] Табл. 15[195] Tab. 15

- sps_dmvr_enabled_flag задается равным 1.
- merge_flag[xCb][yCb] равен 1.
- mmvd_flag[xCb][yCb] равен 0.
- predFlagL0[0][0]=1 и predFlagL0[1][1]=1.
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0.
- CbHeight превышает или равен 8.
- CbHeight*CbWidth превышает или равен 64.
- sps_dmvr_enabled_flag is set to 1.
- merge_flag[xCb][yCb] is equal to 1.
- mmvd_flag[xCb][yCb] is equal to 0.
- predFlagL0[0][0]=1 and predFlagL0[1][1]=1.
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) is 0.
- CbHeight is greater than or equal to 8.
- CbHeight*CbWidth is greater than or equal to 64.

[196] Ссылаясь на вышеприведенную таблицу 15, условие (например, mmvd_flag) для того, следует или нет применять MMVD-режим, из условий применения традиционной DMVR, может исключаться. Другими словами, процесс определения того, равен или нет mmvd_flag 0 (т.е. не используется или используется MMVD-режим), может опускаться, и то, следует или нет применять DMVR, может определяться на основе условий, перечисленных в вышеприведенной таблице 15. [196] Referring to the above Table 15, the condition (eg, mmvd_flag) for whether or not to apply the MMVD mode from the application conditions of the traditional DMVR may be excluded. In other words, the process of determining whether or not mmvd_flag is 0 (i.e., not used or MMVD mode is used) may be omitted, and whether or not DMVR should be applied may be determined based on the conditions listed in Table 15 above.

[197] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 15, (за исключением условия (например, mmvd_flag) для того, следует или нет применять MMVD-режим), и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 15, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 15, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.[197] In other words, the decoding equipment can determine whether or not all the conditions listed in Table 15 above are satisfied (except for the condition (eg, mmvd_flag) for whether or not to apply the MMVD mode), and when all conditions are satisfied ,The decoding equipment can perform true bi-prediction by ,applying DMVR. When even any of the conditions listed in Table 15 above are not satisfied, the decoding equipment may not apply the DMVR. The encoding equipment can also apply the conditions of the above Table 15, and the encoding equipment can perform true bi-prediction through a corresponding method in the decoding equipment.

[198] Дополнительно, в отличие от варианта осуществления таблицы 15, описанной выше, когда информация движения детализируется через MMVD в режиме объединения/пропуска, то, следует или нет выполнять BDOF, может определяться с учетом сложности декодирования. Соответственно, настоящее раскрытие сущности предлагает способ для определения того, следует или нет применять BDOF, с учетом MMVD-условия. В этом случае, согласно варианту осуществления настоящего раскрытия сущности, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 16.[198] Additionally, unlike the embodiment of Table 15 described above, when motion information is detailed through MMVD in the merge/skip mode, whether or not to perform BDOF can be determined taking into account the decoding complexity. Accordingly, the present disclosure provides a method for determining whether or not BDOF should be applied, taking into account the MMVD condition. In this case, according to an embodiment of the present disclosure, the BDOF application condition may include the conditions presented in Table 16 below.

[199] Табл. 16[199] Tab. 16

- sps_bdof_enabled_flag равен 1.
- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.
- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) меньше 0.
- MotionModelIdc[xCb][yCb] равен 0.
- merge_subblock_flag[xCb][yCb] равен 0.
- GbiIdx[xCb][yCb] равен 0.
- mmvd_flag[xCb][yCb] равен 0
- cIdx равен 0.
- sps_bdof_enabled_flag is equal to 1.
- predFlagL0[xSbIdx][ySbIdx] and predFlagL1[xSbIdx][ySbIdx] are equal to 1.
- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) is less than 0.
- MotionModelIdc[xCb][yCb] is equal to 0.
- merge_subblock_flag[xCb][yCb] is equal to 0.
- GbiIdx[xCb][yCb] is equal to 0.
- mmvd_flag[xCb][yCb] is equal to 0
- cIdx is 0.

[200] Ссылаясь на вышеприведенную таблицу 16, BDOF может не применяться, когда информация движения детализируется через MMVD посредством добавления условия (например, mmvd_flag) для того, следует или нет применять MMVD-режим. Например, когда mmvd_flag равен 0 (т.е. когда MMVD-режим не используется), может определяться то, что условие для того, следует или нет применять MMVD-режим, удовлетворяется.[200] Referring to Table 16 above, BDOF may not be applied when motion information is detailed through MMVD by adding a condition (eg, mmvd_flag) for whether or not the MMVD mode should be applied. For example, when mmvd_flag is 0 (ie, when the MMVD mode is not used), it may be determined that the condition for whether or not to use the MMVD mode is satisfied.

[201] Соответственно, в варианте осуществления, вместе с условием (например, mmvd_flag) для того, следует или нет применять MMVD-режим, то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 16.[201] Accordingly, in an embodiment, along with a condition (eg, mmvd_flag) for whether or not to apply the MMVD mode, whether or not to apply BDOF can be determined based on the remaining application conditions listed in Table 16 above.

[202] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 16, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 16, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 16, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.[202] In other words, the decoding equipment can determine whether or not all the conditions listed in Table 16 above are satisfied, and when all the conditions are satisfied, the decoding equipment can perform true bi-prediction by applying BDOF. When even any of the conditions listed in Table 16 above are not satisfied, the decoding equipment may not apply BDOF. The encoding equipment can also apply the conditions of the above Table 16, and the encoding equipment can perform true bi-prediction through a corresponding method in the decoding equipment.

[203] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 15 или 16, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.[203] The method for performing true bi-prediction based on the conditions listed in Table 15 or 16 above can be independently applied to DMVR and BDOF, or can be applied under identical conditions for DMVR and BDOF.

[204] Между тем, в случае AMVP, технология адаптивного разрешения векторов движения (AMVR) может применяться. В этом случае, когда разрешение вектора движения является высоким, т.е. когда целочисленно-точечное округление или 4 целочисленно-точечных округления предоставляются, может не быть уместным применять технологию в случае BDOF выполнения детализации в ограниченной зоне. Соответственно, настоящее раскрытие сущности предлагает способ, который может определять выполнение BDOF согласно AMVR-условию. В этом случае, согласно варианту осуществления настоящего раскрытия сущности, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 17.[204] Meanwhile, in the case of AMVP, adaptive motion vector resolution (AMVR) technology can be applied. In this case, when the resolution of the motion vector is high, i.e. When integer-point rounding or 4 integer-point rounding is provided, it may not be appropriate to apply the technology in the case of BDOF performing drilling in a limited area. Accordingly, the present disclosure provides a method that can determine the execution of a BDOF according to an AMVR condition. In this case, according to an embodiment of the present disclosure, the BDOF application condition may include the conditions presented in Table 17 below.

[205] Табл. 17[205] Tab. 17

- sps_bdof_enabled_flag равен 1.
- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.
- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) меньше 0.
- MotionModelIdc[xCb][yCb] равен 0.
- merge_subblock_flag[xCb][yCb] равен 0.
- amvr_flag!=0
- GbiIdx[xCb][yCb] равен 0.
- cIdx равен 0.
- sps_bdof_enabled_flag is equal to 1.
- predFlagL0[xSbIdx][ySbIdx] and predFlagL1[xSbIdx][ySbIdx] are equal to 1.
- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) is less than 0.
- MotionModelIdc[xCb][yCb] is equal to 0.
- merge_subblock_flag[xCb][yCb] is equal to 0.
- amvr_flag!=0
- GbiIdx[xCb][yCb] is equal to 0.
- cIdx is 0.

[206] Ссылаясь на вышеприведенную таблицу 17, то, следует или нет применять BDOF, может определяться посредством добавления AMVR-условия (например, amvr_flag). Здесь, amvr_flag может представлять собой информацию, представляющую решение для разности векторов движения (MVD). Например, в случае если amvr_flag равен 0, случай может указывать то, что разрешение MVD извлекается в единицах выборки 1/4 (четверть выборки сигнала яркости), и в случае, если amvr_flag не равен 0, случай может указывать то, что разрешение MVD извлекается в единицах целочисленной выборки сигнала яркости или четырех выборок сигнала яркости. Альтернативно, может определяться обратный случай по отношению к означенному. Согласно варианту осуществления, как представлено в вышеприведенной таблице 20, в случае если amvr_flag не равен 0, такое условие, что BDOF применяется, может задаваться. Другими словами, в случае если amvr_flag равен 0, BDOF может быть ограничен таким образом, что он не применяется.[206] Referring to Table 17 above, whether or not BDOF should be applied can be determined by adding an AMVR condition (eg, amvr_flag). Here, amvr_flag may be information representing a motion vector difference (MVD) solution. For example, in case amvr_flag is equal to 0, the case may indicate that the MVD resolution is extracted in 1/4 sampling units (a quarter of the luminance signal sample), and in the case that amvr_flag is not equal to 0, the case may indicate that the MVD resolution is extracted in units of an integer luminance sample or four luminance samples. Alternatively, the opposite case to this may be defined. According to an embodiment, as presented in the above Table 20, in the case where amvr_flag is not 0, a condition that BDOF is applied may be set. In other words, if amvr_flag is 0, BDOF may be limited such that it does not apply.

[207] Соответственно, в варианте осуществления, вместе с AMVR-условием (например, amvr_flag), то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 17.[207] Accordingly, in an embodiment, together with the AMVR condition (e.g., amvr_flag), whether or not BDOF should be applied can be determined based on the remaining application conditions listed in Table 17 above.

[208] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 17, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 17, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 17, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.[208] In other words, the decoding equipment can determine whether or not all the conditions listed in Table 17 above are satisfied, and when all the conditions are satisfied, the decoding equipment can perform true bi-prediction by applying BDOF. When even any of the conditions listed in Table 17 above are not satisfied, the decoding equipment may not apply BDOF. The encoding equipment can also apply the conditions of the above Table 17, and the encoding equipment can perform true bi-prediction through a corresponding method in the decoding equipment.

[209] Между тем, DMVR и BDOF могут передаваться в служебных сигналах в синтаксисе наборов параметров последовательности (SPS). Нижеприведенная таблица 18 показывает один пример синтаксического элемента, указывающего то, активируется или нет DMVR, передаваемая в служебных сигналах через SPS-cинтаксис, и то, активируется или нет BDOF.[209] Meanwhile, DMVR and BDOF may be signaled in Sequence Parameter Set (SPS) syntax. Table 18 below shows one example of a syntax element indicating whether or not the DMVR signaled through the SPS syntax is activated and whether the BDOF is activated or not.

[210] Табл. 18[210] Tab. 18

seq_parameter_set_rbsp(){seq_parameter_set_rbsp(){ ДескрипторDescriptor ............ ............ sps_dmvr_enabled_flag sps_dmvr_enabled_flag u(1)u(1) sps_bdof_enabled_flag sps_bdof_enabled_flag u(1)u(1) ............ ............ }}

[211] Ссылаясь на вышеприведенную таблицу 18, sps_dmvr_enabled_flag может передаваться в служебных сигналах в SPS-cинтаксисе, и то, активируется или нет DMVR на основе истинного бипрогнозирования, может представляться на основе синтаксического элемента. Например, в случае если sps_dmvr_enabled_flag равен 1, случай может указывать то, что DMVR на основе истинного бипрогнозирования активируется, и в случае, если sps_dmvr_enabled_flag равен 0, случай может указывать то, что DMVR на основе истинного бипрогнозирования не активируется.[211] Referring to the above Table 18, the sps_dmvr_enabled_flag may be signaled in the SPS syntax, and whether or not the DMVR is enabled based on the true bi-prediction may be represented based on the syntax element. For example, in the case where sps_dmvr_enabled_flag is equal to 1, the case may indicate that the true bi-prediction-based DMVR is activated, and in the case that sps_dmvr_enabled_flag is equal to 0, the case may indicate that the true bi-prediction-based DMVR is not activated.

[212] Дополнительно, sps_bdof_enabled_flag может передаваться в служебных сигналах в SPS-cинтаксисе, и то, активируется или нет BDOF на основе истинного бипрогнозирования, может представляться на основе синтаксического элемента. Например, в случае если sps_bdof_enabled_flag равен 1, случай может указывать то, что BDOF на основе истинного бипрогнозирования активируется, и в случае, если sps_bdof_enabled_flag равен 0, случай может указывать то, что BDOF на основе истинного бипрогнозирования не активируется.[212] Additionally, sps_bdof_enabled_flag may be signaled in SPS syntax, and whether or not BDOF is enabled based on true biprediction may be represented based on the syntax element. For example, in the case where sps_bdof_enabled_flag is equal to 1, the case may indicate that the true biprediction BDOF is activated, and in the case that sps_bdof_enabled_flag is equal to 0, the case may indicate that the true biprediction BDOF is not activated.

[213] Как показано в таблице 18, условия применения DMVR и BDOF могут проверяться посредством использования синтаксического элемента (например, sps_dmvr_enabled_flag), представляющего то, активируется или нет DMVR, и синтаксического элемента (например, sps_bdof_enabled_flag), представляющего то, активируется или нет BDOF.[213] As shown in Table 18, DMVR and BDOF application conditions can be checked by using a syntax element (eg, sps_dmvr_enabled_flag) representing whether the DMVR is enabled or not, and a syntax element (eg, sps_bdof_enabled_flag) representing whether BDOF is enabled or not. .

[214] Фиг. 6 иллюстрирует один пример, иллюстрирующий способ для выполнения процесса декодирования посредством проверки условий применения DMVR и BDOF.[214] FIG. 6 illustrates one example illustrating a method for performing a decoding process by checking application conditions of DMVR and BDOF.

[215] Как показано в таблице 18, способ по фиг. 6 может применяться при использовании синтаксического элемента (например, sps_dmvr_enabled_flag), представляющего то, активируется или нет DMVR, и синтаксического элемента (например, sps_bdof_enabled_flag), представляющего то, активируется или нет BDOF.[215] As shown in Table 18, the method of FIG. 6 may be used by using a syntax element (eg, sps_dmvr_enabled_flag) representing whether the DMVR is enabled or not, and a syntax element (eg, sps_bdof_enabled_flag) representing whether the BDOF is enabled or not.

[216] Ссылаясь на фиг. 6, оборудование декодирования может извлекать информацию движения (например, вектор движения, индекс опорного кадра и т.д.) для текущего блока (S600).[216] Referring to FIG. 6, the decoding equipment can extract motion information (eg, motion vector, reference frame index, etc.) for the current block (S600).

[217] Оборудование декодирования может проверять применение DMVR (S610). В этом случае, условие применения DMVR может проверяться на основе синтаксического элемента (например, sps_dmvr_enabled_flag), представляющего то, активируется или нет DMVR. Например, когда DMVR активируется (например, когда sps_dmvr_enabled_flag равен 1), условие применения DMVR может проверяться.[217] The decoding equipment may check the application of DMVR (S610). In this case, the DMVR application condition may be checked based on a syntax element (eg, sps_dmvr_enabled_flag) representing whether the DMVR is enabled or not. For example, when DMVR is enabled (eg, when sps_dmvr_enabled_flag is 1), the DMVR application condition may be checked.

[218] Оборудование декодирования может определять то, следует или нет применять DMVR-процесс согласно тому, удовлетворяется или нет условие применения DMVR (S620).[218] The decoding equipment can determine whether or not to apply the DMVR process according to whether the DMVR application condition is satisfied or not (S620).

[219] Когда все условия применения DMVR удовлетворяются, оборудование декодирования может извлекать детализированную информацию движения посредством применения DMVR-процесса (S630). Когда, по меньшей мере, одно из условий применения DMVR не удовлетворяется, оборудование декодирования может не применять DMVR-процесс.[219] When all DMVR application conditions are satisfied, the decoding equipment can extract detailed motion information by applying the DMVR process (S630). When at least one of the DMVR application conditions is not satisfied, the decoding equipment may not apply the DMVR process.

[220] Оборудование декодирования может извлекать прогнозные выборки текущего блока на основе извлекаемой информации движения (не детализированной), когда детализированная информация движения или DMVR, извлекаемая при применении DMVR, не применяется (S640).[220] The decoding equipment can extract predictive samples of the current block based on the extracted motion information (not detailed) when the detailed motion information or DMVR extracted when applying the DMVR is not applied (S640).

[221] Помимо этого, оборудование декодирования может проверять условие применения BDOF (S650). В этом случае, условие применения BDOF DMVR может проверяться на основе синтаксического элемента (например, sps_bdof_enabled_flag), представляющего то, активируется или нет BDOF. Например, когда DMVR активируется (например, когда sps_bdof_enabled_flag равен 1), условие применения DMVR может проверяться.[221] In addition, the decoding equipment may check the BDOF application condition (S650). In this case, the BDOF DMVR application condition may be checked based on a syntax element (eg, sps_bdof_enabled_flag) representing whether the BDOF is enabled or not. For example, when the DMVR is enabled (for example, when sps_bdof_enabled_flag is 1), the DMVR application condition may be checked.

[222] Когда все условия применения BDOF удовлетворяются, оборудование декодирования может детализировать прогнозные выборки посредством применения BDOF-процесса (S670). Когда, по меньшей мере, одно из условий применения BDOF не удовлетворяется, оборудование декодирования может не применять BDOF-процесс.[222] When all BDOF application conditions are satisfied, the decoding equipment can refine the prediction samples by applying the BDOF process (S670). When at least one of the BDOF application conditions is not satisfied, the decoding equipment may not apply the BDOF process.

[223] Оборудование декодирования может извлекать остаточные выборки для текущего блока (S680) и извлекать восстановленные выборки на основе детализированных прогнозных выборок, извлекаемых при применении остаточных выборок и BDOF или прогнозных выборок (не детализированных), извлекаемые при неприменении BDOF (S690).[223] The decoding equipment may extract residual samples for the current block (S680) and extract reconstructed samples based on detailed prediction samples extracted when using residual samples and BDOF or predictive samples (non-detailed) extracted when not using BDOF (S690).

[224] Настоящее раскрытие сущности предлагает различные варианты осуществления, которые могут повышать эффективность кодирования и уменьшать сложность посредством гармонизации взаимных условий применения DMVR и BDOF во время применения DMVR и BDOF, как описано выше. При проверке условий применения DMVR и BDOF согласно вариантам осуществления настоящего раскрытия сущности и применения условий применения в процесс декодирования, соответствующие условия могут отдельно проверяться и применяться, но условия применения могут проверяться сразу, чтобы повышать эффективность кодирования. Другими словами, настоящее раскрытие сущности предлагает способ, который может интегрировать и проверять условия применения DMVR и BDOF сразу.[224] The present disclosure proposes various embodiments that can improve coding efficiency and reduce complexity by harmonizing the mutual application conditions of DMVR and BDOF during application of DMVR and BDOF, as described above. When checking the application conditions of DMVR and BDOF according to embodiments of the present disclosure and applying the application conditions to the decoding process, the corresponding conditions can be separately checked and applied, but the application conditions can be checked immediately to improve encoding efficiency. In other words, the present disclosure provides a method that can integrate and verify the application conditions of DMVR and BDOF at once.

[225] В качестве варианта осуществления настоящего раскрытия сущности, информация (например), указывающая то, следует или нет применять детализацию в оборудовании декодирования в синтаксисе наборов параметров последовательности (SPS), передается в служебных сигналах, чтобы выполнять процесс проверки условия применения DMVR/BDOF. Затем, таблица 19 показывает один пример синтаксического элемента (например, sps_refinement_enabled_flag), представляющего то, следует или нет применять детализацию в оборудовании декодирования, передаваемого в служебных сигналах через SPS-cинтаксис.[225] As an embodiment of the present disclosure, information (for example) indicating whether or not to apply granularity in the decoding equipment in sequence parameter set (SPS) syntax is signaled to perform a DMVR/BDOF application condition checking process. . Next, Table 19 shows one example of a syntax element (eg, sps_refinement_enabled_flag) representing whether or not refinement should be applied to the decoding equipment signaled through the SPS syntax.

[226] Табл. 19[226] Tab. 19

seq_parameter_set_rbsp(){seq_parameter_set_rbsp(){ ДескрипторDescriptor ............ ............ sps_refinement_enabled_flag sps_refinement_enabled_flag u(1)u(1) if(sps_refinement_enabled_flag){ if(sps_refinement_enabled_flag){ sps_dmvr_enabled_flag sps_dmvr_enabled_flag u(1)u(1) sps_bdof_enabled_flag sps_bdof_enabled_flag u(1)u(1) } } ............ ............ }}

[227] Ссылаясь на вышеприведенную таблицу 19, sps_refinement_enabled_flag может передаваться в служебных сигналах в SPS-cинтаксисе и может представлять то, является или нет детализация применимой в оборудовании декодирования, на основе синтаксического элемента. Например, когда sps_refinement_enabled_flag существует (т.е. когда sps_refinement_enabled_flag представляет собой "истина"), может определяться то, что детализация является применимой в оборудовании декодирования. В этом случае, оборудование декодирования получает синтаксический элемент sps_dmvr_enabled_flag, представляющий то, активируется или нет DMVR, и синтаксический элемент sps_bdof_enabled_flag, представляющий то, активируется или нет BDOF, с тем чтобы определять условия применения DMVR и BDOF.[227] Referring to Table 19 above, sps_refinement_enabled_flag may be signaled in SPS syntax and may represent whether or not the granularity is usable in decoding equipment based on the syntax element. For example, when sps_refinement_enabled_flag exists (ie, when sps_refinement_enabled_flag is true), it can be determined that the granularity is usable in the decoding hardware. In this case, the decoding equipment receives an sps_dmvr_enabled_flag syntax element representing whether the DMVR is enabled or not, and an sps_bdof_enabled_flag syntax element representing whether the BDOF is enabled or not, so as to determine application conditions of the DMVR and the BDOF.

[228] Фиг. 7 и 8 иллюстрируют другой пример, иллюстрирующий способ для выполнения процесса декодирования посредством проверки условий применения DMVR и BDOF.[228] FIG. 7 and 8 illustrate another example illustrating a method for performing a decoding process by checking application conditions of DMVR and BDOF.

[229] Способ по фиг. 7 и способ по фиг. 8 могут применяться, когда используется синтаксический элемент (например, sps_refinement_enabled_flag), представляющий то, является или нет детализация применимой в оборудовании декодирования, как показано в вышеприведенной таблице 19. Дополнительно, описание дублированного содержимого по фиг. 7 и 8 с фиг. 6, описанным выше, опускается.[229] The method of FIG. 7 and the method according to FIG. 8 may be applied when a syntax element (eg, sps_refinement_enabled_flag) representing whether or not the granularity is usable in decoding equipment is used, as shown in Table 19 above. Additionally, the description of the duplicated contents of FIG. 7 and 8 from fig. 6 described above is omitted.

[230] Ссылаясь на фиг. 7, можно видеть, что условия применения проверяются сразу на предыдущей стадии без проверки соответствующих условий применения DMVR и BDOF посредством сравнения с вышеприведенным процессом по фиг. 6. В качестве варианта осуществления, на этапе S710 по фиг. 7, оборудование декодирования может проверять условие применения детализации. В этом случае, условие применения детализации может проверяться на основе sps_refinement_enabled_flag, показанного в вышеприведенной таблице 19. Например, оборудование декодирования может получать синтаксический элемент sps_dmvr_enabled_flag, представляющий то, активируется или нет DMVR, и синтаксический элемент sps_bdof_enabled_flag, представляющий то, активируется или нет BDOF тогда, когда sps_refinement_enabled_flag равен 1, и проверять условия применения DMVR и BDOF на основе полученных синтаксических элементов.[230] Referring to FIG. 7, it can be seen that the application conditions are checked directly in the previous step without checking the corresponding application conditions of DMVR and BDOF by comparison with the above process in FIG. 6. As an embodiment, in step S710 of FIG. 7, the decoding equipment can check the granularity application condition. In this case, the granularity application condition may be checked based on the sps_refinement_enabled_flag shown in the above Table 19. For example, the decoding equipment may obtain an sps_dmvr_enabled_flag syntax element representing whether the DMVR is enabled or not, and an sps_bdof_enabled_flag syntax element representing whether the BDOF is enabled or not then when sps_refinement_enabled_flag is 1, and check the DMVR and BDOF application conditions based on the received syntax elements.

[231] Дополнительно, ссылаясь на фиг. 8, условия применения проверяются сразу на предыдущей стадии без проверки соответствующих условий применения DMVR и BDOF посредством сравнения с вышеприведенным процессом по фиг. 6, и простой процесс проверки (условие применения BDOF) может выполняться относительно другого условия. В качестве варианта осуществления, на этапе S810 по фиг. 8, оборудование декодирования может проверять условие применения детализации. После этого, на этапе S850 по фиг. 8, оборудование декодирования дополнительно может просто проверять условие применения BDOF, имеющего условие, отличающееся от условия применения детализации.[231] Additionally, referring to FIG. 8, the application conditions are checked directly in the previous step without checking the corresponding application conditions of DMVR and BDOF by comparison with the above process in FIG. 6, and a simple verification process (BDOF application condition) can be performed with respect to another condition. As an embodiment, in step S810 of FIG. 8, the decoding equipment can check the granularity application condition. Thereafter, in step S850 of FIG. 8, the decoding equipment may further simply check the application condition of a BDOF having a condition different from the granularity application condition.

[232] Между тем, когда высота или размер (высота*ширина) текущего блока меньше конкретной длины или конкретного размера, отношение вычисления умножения/суммирования для компенсации движения увеличивается. Соответственно, в варианте осуществления настоящего раскрытия сущности, применение BDOF в блок, имеющий небольшую высоту или небольшой размер, может быть ограничено в качестве в условии применения DMVR, чтобы уменьшать наихудший случай. В этом случае, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 20.[232] Meanwhile, when the height or size (height*width) of the current block is smaller than a specific length or specific size, the multiplication/addition calculation ratio for motion compensation is increased. Accordingly, in an embodiment of the present disclosure, the application of BDOF to a block having a small height or small size may be limited in quality under the condition of applying the DMVR to reduce the worst case. In this case, the condition for applying the BDOF may include the conditions presented in Table 20 below.

[233] Табл. 20[233] Tab. 20

- sps_bdof_enabled_flag равен 1.
- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.
- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) меньше 0.
- MotionModelIdc[xCb][yCb] равен 0.
- merge_subblock_flag[xCb][yCb] равен 0.
- GbiIdx[xCb][yCb] равен 0.
- CbHeight превышает или равен 8: В случае если длина (или размер) блока больше порогового значения (здесь, пороговое значение может примерно иллюстрироваться различными способами),
- CbHeight*CbWidth превышает или равен 64: В случае если размер блока (или абсолютная величина) больше порогового значения (здесь, пороговое значение может примерно иллюстрироваться различными способами),
- cIdx равен 0.
- sps_bdof_enabled_flag is equal to 1.
- predFlagL0[xSbIdx][ySbIdx] and predFlagL1[xSbIdx][ySbIdx] are equal to 1.
- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) is less than 0.
- MotionModelIdc[xCb][yCb] is equal to 0.
- merge_subblock_flag[xCb][yCb] is equal to 0.
- GbiIdx[xCb][yCb] is equal to 0.
- CbHeight is greater than or equal to 8: In case the length (or size) of the block is greater than the threshold value (here, the threshold value can be roughly illustrated in various ways),
- CbHeight*CbWidth is greater than or equal to 64: In case the block size (or absolute value) is greater than the threshold value (here, the threshold value can be roughly illustrated in various ways),
- cIdx is 0.

[234] Ссылаясь на вышеприведенную таблицу 20, BDOF может не применяться к блоку, который меньше конкретного размера, посредством добавления условий (например, CbHeight и CbWidth), связанных с размером текущего блока. Например, могут использоваться условие, применяемое, когда высота текущего блока (например, CbHeight) равна или выше 8, и условие, применяемое, когда размер текущего блока (например, CbHeight*CbWidth) равен или выше 64. Когда условия применения, связанные с размером текущего блока, удовлетворяются (т.е. когда высота текущего блока равна или выше 8, и высота*ширина текущего блока равна или выше 64), BDOF может применяться, и когда условия применения, связанные с размером текущего блока, не удовлетворяются, BDOF может не применяться. [234] Referring to Table 20 above, BDOF may not apply to a block that is smaller than a specific size by adding conditions (eg, CbHeight and CbWidth) related to the size of the current block. For example, a condition applied when the height of the current block (for example, CbHeight) is equal to or greater than 8, and a condition applied when the size of the current block (for example, CbHeight*CbWidth) is equal to or greater than 64 can be used. When application conditions related to size of the current block are satisfied (i.e., when the height of the current block is equal to or greater than 8, and the height*width of the current block is equal to or greater than 64), BDOF may be applied, and when the application conditions associated with the size of the current block are not satisfied, BDOF may do not apply.

[235] Дополнительно, в варианте осуществления, вместе с условиями (например, CbHeight и CbHeight*CbWidth), связанными с размером текущего блока, то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 20.[235] Additionally, in an embodiment, along with conditions (e.g., CbHeight and CbHeight*CbWidth) associated with the size of the current block, whether or not BDOF should be applied can be determined based on the remaining application conditions listed in Table 20 above.

[236] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 20, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 20, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 20, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.[236] In other words, the decoding equipment can determine whether or not all the conditions listed in Table 20 above are satisfied, and when all the conditions are satisfied, the decoding equipment can perform true bi-prediction by applying BDOF. When even any of the conditions listed in Table 20 above are not satisfied, the decoding equipment may not apply BDOF. The encoding equipment can also apply the conditions of the above Table 20, and the encoding equipment can perform true bi-prediction through a corresponding method in the decoding equipment.

[237] Между тем, когда MMVD применяется к текущему блоку, информация движения может извлекаться на основе информации (например, MMVD-индекса) относительно MMVD. Здесь, информация относительно MMVD может включать в себя индекс базового MV, индекс расстояния, индекс направления и т.п. В частности, индекс расстояния (более конкретно, mmvd_distance_index[xCb][yCb])) может использоваться для представления расстояния от базового MV, и, например, индексы 0-7 расстояния могут представляться как {1/4, 1/2, 1, 2, 4, 8, 16, 32}, соответственно. При определении детализации информации движения в DMVR и BDOF, то, выполняется или нет детализация с учетом смежного пиксела (смежной выборки), и в этом случае, когда расстояние между смежным пикселом и базовым MV является большим, значение индекса расстояния также увеличивается. В таком случае, затруднительно то, что учет смежного пиксела помогает в повышении производительности DMVR и BDOF. Соответственно, настоящее раскрытие сущности предлагает способ, который может определять то, следует или нет применять DMVR и BDOF, согласно индексу расстояния (более конкретно, значению mmvd_distance_index[xCb][yCb]).[237] Meanwhile, when the MMVD is applied to the current block, motion information can be extracted based on information (eg, MMVD index) regarding the MMVD. Here, information regarding the MMVD may include a base MV index, a distance index, a direction index, and the like. In particular, a distance index (more specifically, mmvd_distance_index[xCb][yCb]) can be used to represent the distance from the base MV, and, for example, distance indices 0-7 can be represented as {1/4, 1/2, 1, 2, 4, 8, 16, 32}, respectively. When determining the granularity of motion information in DMVR and BDOF, whether or not the granularity is performed taking into account the adjacent pixel (adjacent sample), and in this case, when the distance between the adjacent pixel and the base MV is large, the distance index value is also increased. What is difficult in such a case is that considering the adjacent pixel helps in improving the performance of DMVR and BDOF. Accordingly, the present disclosure provides a method that can determine whether or not DMVR and BDOF should be applied according to a distance index (more specifically, the mmvd_distance_index[xCb][yCb] value).

[238] В качестве варианта осуществления настоящего раскрытия сущности, то, следует или нет применять DMVR, может определяться с учетом индекса расстояния, и в этом случае, условие применения DMVR может включать в себя условия, представленные в нижеприведенной таблице 21.[238] As an embodiment of the present disclosure, whether or not to apply the DMVR may be determined taking into account the distance index, in which case, the condition for applying the DMVR may include the conditions presented in Table 21 below.

[239] Табл. 21[239] Tab. 21

- sps_dmvr_enabled_flag задается равным 1.
- merge_flag[xCb][yCb] равен 1.
- mmvd_flag[xCb][yCb] равен 0.
- mmvd_flag[xCb][yCb] равен 1 и mmvd_distance_index[xCb][yCb])>4.
- predFlagL0[0][0]=1 и predFlagL0[1][1]=1.
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0.
- CbHeight превышает или равен 8.
- CbHeight*CbWidth превышает или равен 64.
- sps_dmvr_enabled_flag is set to 1.
- merge_flag[xCb][yCb] is equal to 1.
- mmvd_flag[xCb][yCb] is equal to 0.
- mmvd_flag[xCb][yCb] is equal to 1 and mmvd_distance_index[xCb][yCb])>4.
- predFlagL0[0][0]=1 and predFlagL0[1][1]=1.
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) is 0.
- CbHeight is greater than or equal to 8.
- CbHeight*CbWidth is greater than or equal to 64.

[240] Ссылаясь на вышеприведенную таблицу 21, условие (например, mmvd_flag), связанное с MMVD, из условий применения DMVR, изменяется, чтобы ограниченно применять DMVR в MMVD-режиме. Например, когда mmvd_flag равен 1, и mmvd_distance_index больше 4, может определяться то, что условие по индексу расстояния MMVD удовлетворяется. Соответственно, когда MMVD-режим применяется, то, следует или нет применять DMVR, может определяться согласно индексу расстояния (более конкретно, значению mmvd_distance_index[xCb][yCb]). [240] Referring to the above Table 21, the condition (eg, mmvd_flag) associated with MMVD from the DMVR application conditions is changed to restrict the application of DMVR in MMVD mode. For example, when mmvd_flag is 1 and mmvd_distance_index is greater than 4, it may be determined that the distance index condition MMVD is satisfied. Accordingly, when the MMVD mode is applied, whether or not DMVR should be applied can be determined according to the distance index (more specifically, the mmvd_distance_index[xCb][yCb] value).

[241] Здесь, значение (пороговое значение) mmvd_distance_index может задаваться равным 4, но это представляет собой только один пример, и соответствующее значение может изменяться на различные значения согласно производительности и эффективности кодирования.[241] Here, the value (threshold value) mmvd_distance_index may be set to 4, but this is only one example, and the corresponding value may be changed to different values according to performance and encoding efficiency.

[242] Соответственно, в варианте осуществления, вместе с условием (например, mmvd_flag) для того, следует или нет применять MMVD, и условием по индексу расстояния (например, mmvd_distance_index) mMVD, то, следует или нет применять DMVR, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 21.[242] Accordingly, in an embodiment, together with a condition (eg, mmvd_flag) for whether or not MMVD should be applied, and a distance index condition (eg, mmvd_distance_index) mMVD, whether or not DMVR should be applied can be determined based on the remaining conditions of use listed in Table 21 above.

[243] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 21, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 21, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 21, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.[243] In other words, the decoding equipment can determine whether or not all the conditions listed in Table 21 above are satisfied, and when all the conditions are satisfied, the decoding equipment can perform true bi-prediction by applying DMVR. When even any of the conditions listed in Table 21 above are not satisfied, the decoding equipment may not apply the DMVR. The encoding equipment can also apply the conditions of the above Table 21, and the encoding equipment can perform true bi-prediction through a corresponding method in the decoding equipment.

[244] Дополнительно, в качестве варианта осуществления настоящего раскрытия сущности, то, следует или нет применять BDOF, может определяться с учетом индекса расстояния, и в этом случае, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 22.[244] Additionally, as an embodiment of the present disclosure, whether or not BDOF should be applied may be determined taking into account the distance index, in which case, the condition for applying BDOF may include the conditions presented in Table 22 below.

[245] Табл. 22[245] Tab. 22

- sps_bdof_enabled_flag равен 1.
- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.
- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) меньше 0.
- MotionModelIdc[xCb][yCb] равен 0.
- merge_subblock_flag[xCb][yCb] равен 0.
-! merge_flag || (merge_flag andand mmvd_flag[xCb][yCb] равен 1 и mmvd_distance_index[xCb][yCb])>4)
- GbiIdx[xCb][yCb] равен 0.
- cIdx равен 0.
- sps_bdof_enabled_flag is equal to 1.
- predFlagL0[xSbIdx][ySbIdx] and predFlagL1[xSbIdx][ySbIdx] are equal to 1.
- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) is less than 0.
- MotionModelIdc[xCb][yCb] is equal to 0.
- merge_subblock_flag[xCb][yCb] is equal to 0.
-! merge_flag || (merge_flag andand mmvd_flag[xCb][yCb] is 1 and mmvd_distance_index[xCb][yCb])>4)
- GbiIdx[xCb][yCb] is equal to 0.
- cIdx is 0.

[246] Ссылаясь на вышеприведенную таблицу 22, BDOF может ограниченно применяться в MMVD-режиме посредством добавления условия для того, удовлетворяются или нет режим объединения/режим пропуска (например, merge_flag), и условий (например, mmvd_flag и mmvd_distance_index), связанных с MMVD. Например, когда merge_flag не существует (т.е. когда merge_flag не равен 1), или когда merge_flag равен 1, mmvd_flag равен 1, и mmvd_distance_index больше 4, может определяться то, что условие ограниченного применения BDOF в MMVD-режиме удовлетворяется. Соответственно, когда MMVD-режим применяется, то, следует или нет применять BDOF, может определяться согласно индексу расстояния (например, значению mmvd_distance_index[xCb][yCb]).[246] Referring to Table 22 above, BDOF can be applied to a limited extent in MMVD mode by adding a condition for whether merge mode/skip mode is satisfied or not (eg, merge_flag), and conditions (eg, mmvd_flag and mmvd_distance_index) associated with MMVD . For example, when merge_flag does not exist (ie, when merge_flag is not equal to 1), or when merge_flag is equal to 1, mmvd_flag is equal to 1, and mmvd_distance_index is greater than 4, it can be determined that the condition for limited application of BDOF in MMVD mode is satisfied. Accordingly, when the MMVD mode is applied, whether or not BDOF should be applied can be determined according to the distance index (eg, the mmvd_distance_index[xCb][yCb] value).

[247] Здесь, значение (пороговое значение) mmvd_distance_index может задаваться равным 4, но это представляет собой только один пример, и соответствующее значение может изменяться на различные значения согласно производительности и эффективности кодирования.[247] Here, the value (threshold value) of mmvd_distance_index may be set to 4, but this is only one example, and the corresponding value may be changed to different values according to performance and encoding efficiency.

[248] Соответственно, в варианте осуществления, вместе с условием для того, удовлетворяются или нет режим объединения/режим пропуска (например, merge_flag), и условием, связанным с MMVD (например, mmvd_flag, mmvd_distance_index), то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 22.[248] Accordingly, in an embodiment, together with a condition for whether or not the merge mode/skip mode is satisfied (eg, merge_flag), and a condition associated with the MMVD (eg, mmvd_flag, mmvd_distance_index), whether or not BDOF should be applied , may be determined based on the remaining application conditions listed in Table 22 above.

[249] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 22, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 22, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 22, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.[249] In other words, the decoding equipment can determine whether or not all the conditions listed in Table 22 above are satisfied, and when all the conditions are satisfied, the decoding equipment can perform true bi-prediction by applying BDOF. When even any of the conditions listed in Table 22 above are not satisfied, the decoding equipment may not apply BDOF. The encoding equipment can also apply the conditions of the above Table 22, and the encoding equipment can perform true bi-prediction through a corresponding method in the decoding equipment.

[250] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 21 или 22, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.[250] The method for performing true bi-prediction based on the conditions listed in Table 21 or 22 above can be independently applied to DMVR and BDOF, or can be applied under identical conditions for DMVR and BDOF.

[251] Между тем, режим комбинированного внутренне-взаимного прогнозирования (CIIP) для одновременного выполнения внутреннего прогнозирования и взаимного прогнозирования может применяться к текущему блоку, как описано выше. В этом случае, блок прогнозирования (взаимный блок), в котором выполняется взаимное прогнозирование, комбинируется со способом внутреннего прогнозирования, чтобы в итоге формировать прогнозные выборочные значения, за счет этого повышая точность прогнозирования. Тем не менее, поскольку DMVR и BDOF представляют собой технологии детализации взаимного блока, применение CIIP-режима может не требоваться с точки зрения производительности по сравнению со сложностью. Соответственно, настоящее раскрытие сущности предлагает способ, который может определять то, следует или нет применять DMVR и BDOF, с учетом CIIP.[251] Meanwhile, a combined intra-inter prediction (CIIP) mode for simultaneously performing intra prediction and inter prediction can be applied to the current block as described above. In this case, a prediction block (mutual block) in which mutual prediction is performed is combined with an intra-prediction method to ultimately generate predictive sample values, thereby improving the prediction accuracy. However, since DMVR and BDOF are mutual block granularity technologies, the use of CIIP mode may not be necessary in terms of performance versus complexity. Accordingly, the present disclosure provides a method that can determine whether or not DMVR and BDOF should be applied, taking into account the CIIP.

[252] В качестве варианта осуществления настоящего раскрытия сущности, то, следует или нет применять DMVR, может определяться с учетом CIIP, и в этом случае, условие применения DMVR может включать в себя условия, представленные в нижеприведенной таблице 23.[252] As an embodiment of the present disclosure, whether or not to apply the DMVR may be determined taking into account the CIIP, in which case, the condition for applying the DMVR may include the conditions presented in Table 23 below.

[253] Табл. 23[253] Tab. 23

- sps_dmvr_enabled_flag задается равным 1.
- merge_flag[xCb][yCb] равен 1.
- mmvd_flag[xCb][yCb] равен 0.
- predFlagL0[0][0]=1 и predFlagL0[1][1]=1.
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0.
- CbHeight превышает или равен 8.
- CbHeight*CbWidth превышает или равен 64.
- ciip_flag равен 0: Таким образом, когда CIIP не применяется, DMVR может применяться.
- sps_dmvr_enabled_flag is set to 1.
- merge_flag[xCb][yCb] is equal to 1.
- mmvd_flag[xCb][yCb] is equal to 0.
- predFlagL0[0][0]=1 and predFlagL0[1][1]=1.
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) is 0.
- CbHeight is greater than or equal to 8.
- CbHeight*CbWidth is greater than or equal to 64.
- ciip_flag is 0: So when CIIP is not applied, DMVR can be applied.

[254] Ссылаясь на вышеприведенную таблицу 23, DMVR может ограниченно применяться согласно тому, следует или нет применять CIIP, посредством добавления условия для того, следует или не применять CIIP-режим (например, ciip_flag). Например, когда ciip_flag равен 0 (т.е. когда CIIP-режим не применяется), DMVR может применяться посредством определения того, что условие для того, следует или не применять CIIP-режим, удовлетворяется.[254] Referring to the above Table 23, DMVR may be limited in application according to whether CIIP should be applied or not by adding a condition on whether CIIP mode should be applied or not (eg, ciip_flag). For example, when ciip_flag is 0 (ie, when CIIP mode is not applied), DMVR may be applied by determining that a condition for whether or not to apply CIIP mode is satisfied.

[255] Соответственно, в варианте осуществления, вместе с условием (например, ciip_flag) для того, следует или нет применять CIIP-режим, то, следует или нет применять DMVR, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 23.[255] Accordingly, in an embodiment, along with a condition (for example, ciip_flag) for whether or not to apply the CIIP mode, whether or not to apply DMVR can be determined based on the remaining application conditions listed in Table 23 above.

[256] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 23, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения DMVR. Когда даже любое из условий, перечисленных в вышеприведенной таблице 23, не удовлетворяется, оборудование декодирования может не применять DMVR. Оборудование кодирования также может применять условия вышеприведенной таблицы 23, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.[256] In other words, the decoding equipment can determine whether all the conditions listed in Table 23 above are satisfied or not, and when all the conditions are satisfied, the decoding equipment can perform true bi-prediction by applying DMVR. When even any of the conditions listed in Table 23 above are not satisfied, the decoding equipment may not apply the DMVR. The encoding equipment can also apply the conditions of the above Table 23, and the encoding equipment can perform true bi-prediction through a corresponding method in the decoding equipment.

[257] Дополнительно, в качестве варианта осуществления настоящего раскрытия сущности, то, следует или нет применять BDOF, может определяться с учетом CIIP, и в этом случае, условие применения BDOF может включать в себя условия, представленные в нижеприведенной таблице 24.[257] Additionally, as an embodiment of the present disclosure, whether or not BDOF should be applied may be determined taking into account the CIIP, in which case, the condition for applying BDOF may include the conditions presented in Table 24 below.

[258] Табл. 24[258] Tab. 24

- sps_bdof_enabled_flag равен 1.
- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.
- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) меньше 0.
- MotionModelIdc[xCb][yCb] равен 0.
- merge_subblock_flag[xCb][yCb] равен 0.
- GbiIdx[xCb][yCb] равен 0.
- ciip_flag равен 0: Таким образом, когда CIIP не применяется, BDOF может применяться.
- cIdx равен 0.
- sps_bdof_enabled_flag is equal to 1.
- predFlagL0[xSbIdx][ySbIdx] and predFlagL1[xSbIdx][ySbIdx] are equal to 1.
- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) is less than 0.
- MotionModelIdc[xCb][yCb] is equal to 0.
- merge_subblock_flag[xCb][yCb] is equal to 0.
- GbiIdx[xCb][yCb] is equal to 0.
- ciip_flag is 0: So when CIIP is not applied, BDOF can be applied.
- cIdx is 0.

[259] Ссылаясь на вышеприведенную таблицу 24, BDOF может ограниченно применяться согласно тому, следует или нет применять CIIP, посредством добавления условия для того, следует или не применять CIIP-режим (например, ciip_flag). Например, когда ciip_flag равен 0 (т.е. когда CIIP-режим не применяется), BDOF может применяться посредством определения того, что условие для того, следует или не применять CIIP-режим, удовлетворяется.[259] Referring to Table 24 above, BDOF may be limited in application according to whether CIIP should be applied or not by adding a condition on whether CIIP mode should be applied or not (eg, ciip_flag). For example, when ciip_flag is 0 (ie, when CIIP mode is not applied), BDOF may be applied by determining that a condition for whether or not to apply CIIP mode is satisfied.

[260] Соответственно, в варианте осуществления, вместе с условием (например, ciip_flag) для того, следует или нет применять CIIP-режим, то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 24.[260] Accordingly, in an embodiment, along with a condition (for example, ciip_flag) for whether or not to apply the CIIP mode, whether or not to apply BDOF can be determined based on the remaining application conditions listed in Table 24 above.

[261] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 24, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 24, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 24, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.[261] In other words, the decoding equipment can determine whether or not all the conditions listed in Table 24 above are satisfied, and when all the conditions are satisfied, the decoding equipment can perform true bi-prediction by applying BDOF. When even any of the conditions listed in Table 24 above are not satisfied, the decoding equipment may not apply BDOF. The encoding equipment may also apply the conditions of the above Table 24, and the encoding equipment may perform true bi-prediction through a corresponding method in the decoding equipment.

[262] Способ для выполнения истинного бипрогнозирования на основе условий, перечисленных в вышеприведенной таблице 23 или 24, может независимо применяться к DMVR и BDOF или может применяться при идентичных условиях для DMVR и BDOF.[262] The method for performing true bi-prediction based on the conditions listed in Table 23 or 24 above can be independently applied to DMVR and BDOF, or can be applied under identical conditions for DMVR and BDOF.

[263] Способы, перечисленные в таблицах 3 - 24 согласно варианту осуществления настоящего раскрытия сущности, описанному выше, могут применяться в комбинации. Другими словами, то, следует или не применять DMVR и BDOF, может определяться посредством проверки условия применения детализации, и условия, показанные в нижеприведенной таблице 25, могут применяться.[263] The methods listed in Tables 3 - 24 according to the embodiment of the present disclosure described above may be used in combination. In other words, whether DMVR and BDOF should be applied or not can be determined by checking the granularity application condition, and the conditions shown in Table 25 below may be applied.

[264] Табл. 25[264] Tab. 25

DMVRDMVR - sps_dmvr_enabled_flag задается равным 1.
- merge_flag[xCb][yCb] равен 1.
- mmvd_flag[xCb][yCb] равен 0.
- predFlagL0[0][0]=1 и predFlagL0[1][1]=1.
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0.
- CbHeight превышает или равен 8.
- CbHeight*CbWidth превышает или равен 64.
- sps_dmvr_enabled_flag is set to 1.
- merge_flag[xCb][yCb] is equal to 1.
- mmvd_flag[xCb][yCb] is equal to 0.
- predFlagL0[0][0]=1 and predFlagL0[1][1]=1.
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) is 0.
- CbHeight is greater than or equal to 8.
- CbHeight*CbWidth is greater than or equal to 64.
BDOFBDOF - sps_bdof_enabled_flag равен 1.
- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.
- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) меньше 0.
- MotionModelIdc[xCb][yCb] равен 0.
- merge_subblock_flag[xCb][yCb] равен 0.
- GbiIdx[xCb][yCb] равен 0.
- cIdx равен 0.
- sps_bdof_enabled_flag is equal to 1.
- predFlagL0[xSbIdx][ySbIdx] and predFlagL1[xSbIdx][ySbIdx] are equal to 1.
- DiffPicOrderCnt(currPic, refPicList0[refIdxL0])*DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) is less than 0.
- MotionModelIdc[xCb][yCb] is equal to 0.
- merge_subblock_flag[xCb][yCb] is equal to 0.
- GbiIdx[xCb][yCb] is equal to 0.
- cIdx is 0.
DMVR+BDOFDMVR+BDOF - predFlagL0[0][0]=1 и predFlagL0[1][1]=1.
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) равен 0.
- mmvd_flag[xCb][yCb] равен 0.
- MotionModelIdc[xCb][yCb] равен 0.
- merge_subblock_flag[xCb][yCb] равен 0.
- GbiIdx[xCb][yCb] равен 0.
- predFlagL0[0][0]=1 and predFlagL0[1][1]=1.
- DiffPicOrderCnt(currPic, RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]) is 0.
- mmvd_flag[xCb][yCb] is equal to 0.
- MotionModelIdc[xCb][yCb] is equal to 0.
- merge_subblock_flag[xCb][yCb] is equal to 0.
- GbiIdx[xCb][yCb] is equal to 0.

[265] Ссылаясь на вышеприведенную таблицу 25, могут использоваться условие при билатеральном прогнозировании, когда DMVR или BDOF применяются, условие, применяемое в случае истинного бипрогнозирования, в котором расстояния между текущим кадром и билатеральными опорными кадрами являются идентичными друг другу, условие, применяемое, когда MMVD-режим не используется, условие, применяемое, когда аффинное прогнозирование не выполняется, условие, применяемое, когда режим объединения на основе субблоков применяется, и условие, применяемое, когда GBi-индекс составляет значение по умолчанию. Другими словами, то, следует или не применять DMVR или BDOF, может определяться согласно тому, удовлетворяются или нет условия.[265] Referring to the above Table 25, a condition may be used in bilateral prediction when DMVR or BDOF is applied, a condition applied in the case of true bi-prediction in which the distances between the current frame and bilateral reference frames are identical to each other, a condition applied when MMVD mode is not used, a condition applied when affine prediction is not satisfied, a condition applied when subblock-based aggregation mode is applied, and a condition applied when the GBi index is the default value. In other words, whether or not to apply DMVR or BDOF can be determined according to whether the conditions are satisfied or not.

[266] Дополнительно, условие для определения того, удовлетворяются или нет режим объединения для DMVR, или для определения того, представляет или нет текущий блок собой блок сигналов яркости для BDOF, может добавляться.[266] Additionally, a condition for determining whether or not the combining mode for DMVR is satisfied, or for determining whether or not the current block is a luminance block for BDOF may be added.

[267] Условия применения, перечисленные в вышеприведенной таблице 25, представляют собой примеры, и очевидно, что различные условия, перечисленные в вышеуказанных вариантах осуществления (в вариантах осуществления в вышеприведенных таблицах 3-24), могут использоваться в комбинации.[267] The application conditions listed in Table 25 above are examples, and it is obvious that the various conditions listed in the above embodiments (in the embodiments in Tables 3-24 above) can be used in combination.

[268] Между тем, в DMVR, SAD-функция приспосабливается в качестве функции затрат вместо функции SAD с удаленным средним (MRSAD) с учетом сложности декодирования. Тем не менее, когда GBi-индекс не составляет значение по умолчанию (например, когда GbiIdx не равен 0), два опорных блока могут иметь различные весовые коэффициенты, и как результат, DMVR с использованием SAD может не быть предпочтительной. Соответственно, условие DMVR может быть фиксированным с учетом GBi-индекса. Согласно экспериментальному результату, изменение RD-скорости на 0,00% показывается с 100%-м временем выполнения кодирования и декодирования посредством сравнения с тестовой VVC-моделью (VTM) 4.0.[268] Meanwhile, in DMVR, the SAD function is adapted as a cost function instead of the mean removed SAD (MRSAD) function taking into account the decoding complexity. However, when the GBi index is not the default (eg, when GbiIdx is not 0), the two reference blocks may have different weights, and as a result, DMVR using SAD may not be preferred. Accordingly, the DMVR condition can be fixed taking into account the GBi index. According to the experimental result, a 0.00% change in RD rate is shown with 100% encoding and decoding execution time by comparing with the VVC Test Model (VTM) 4.0.

[269] В случае стандарта универсального кодирования видео (VVC), DMVR-процесс может выполняться, когда удовлетворяются все условия, перечисленные в нижеприведенной таблице 26.[269] In the case of the Versatile Video Coding (VVC) standard, the DMVR process may be executed when all the conditions listed in Table 26 below are satisfied.

[270] Табл. 26[270] Tab. 26

- sps_dmvr_enabled_flag равен 1
- merge_flag[xCb][yCb] равен 1
- и predFlagL0[0][0] и predFlagL1[0][0] равны 1
- mmvd_flag[xCb][yCb] равен 0
DiffPicOrderCnt(currPic, RefPicList[0][refIdxL0]) равен DiffPicOrderCnt(RefPicList[1][refIdxL1], currPic)
- cbHeight превышает или равен 8
- cbHeight*cbWidth превышает или равен 64
- sps_dmvr_enabled_flag is equal to 1
- merge_flag[xCb][yCb] is equal to 1
- both predFlagL0[0][0] and predFlagL1[0][0] are equal to 1
- mmvd_flag[xCb][yCb] is equal to 0
DiffPicOrderCnt(currPic, RefPicList[0][refIdxL0]) is equal to DiffPicOrderCnt(RefPicList[1][refIdxL1], currPic)
- cbHeight is greater than or equal to 8
- cbHeight*cbWidth is greater than or equal to 64

[271] В текущей DMVR в блоке, который не совпадает, можно выполнять поиск посредством сравнения с SAD опорных блоков, которые должны взвешиваться и усредняться в дальнейшем. В настоящем раскрытии сущности, поскольку два опорных блока могут иметь различные весовые коэффициенты, условие DMVR может определяться с учетом такого случая. Согласно варианту осуществления настоящего раскрытия сущности, DMVR может не выполняться для блока, в котором GBi-индекс не составляет значение по умолчанию. В этом случае, условие применения DMVR может быть показано в нижеприведенной таблице 27.[271] In the current DMVR, a block that does not match can be searched by comparison with the SAD of reference blocks that must be weighted and averaged further. In the present disclosure, since the two reference blocks may have different weights, the DMVR condition may be determined taking into account such a case. According to an embodiment of the present disclosure, DMVR may not be performed for a block in which the GBi index is not the default value. In this case, the application condition of DMVR can be shown in Table 27 below.

[272] Табл. 27[272] Tab. 27

- sps_dmvr_enabled_flag равен 1
- merge_flag[xCb][yCb] равен 1
- и predFlagL0[0][0] и predFlagL1[0][0] равны 1
- mmvd_flag[xCb][yCb] равен 0
- GbiIdx[xCb][yCb] равен 0.
- DiffPicOrderCnt(currPic, RefPicList[0][refIdxL0]) равен DiffPicOrderCnt(RefPicList[1][refIdxL1], currPic)
- cbHeight превышает или равен 8
- cbHeight*cbWidth превышает или равен 64
- sps_dmvr_enabled_flag is equal to 1
- merge_flag[xCb][yCb] is equal to 1
- both predFlagL0[0][0] and predFlagL1[0][0] are equal to 1
- mmvd_flag[xCb][yCb] is equal to 0
- GbiIdx[xCb][yCb] is equal to 0.
- DiffPicOrderCnt(currPic, RefPicList[0][refIdxL0]) is equal to DiffPicOrderCnt(RefPicList[1][refIdxL1], currPic)
- cbHeight is greater than or equal to 8
- cbHeight*cbWidth is greater than or equal to 64

[273] Как показано в вышеприведенной таблице 27, когда значение GBi-индекса (например, GbiIdx) равно 0, условие выполнения DMVR может добавляться. Другими словами, когда значение GBi-индекса (например, GbiIdx) не равно 0, различные весовые коэффициенты применяются к двум опорным блокам (т.е. к опорному блоку, на который ссылаются для L0-прогнозирования, и к опорному блоку, на который ссылаются для L1-прогнозирования), и как результат, в этом случае, DMVR может быть ограничена таким образом, что она не выполняется.[273] As shown in the above Table 27, when the GBi index value (eg, GbiIdx) is 0, a DMVR execution condition may be added. In other words, when the value of the GBi index (eg, GbiIdx) is not equal to 0, different weights are applied to the two reference blocks (i.e., the reference block referenced for L0 prediction and the reference block referenced for L1 prediction), and as a result, in this case, DMVR may be limited such that it does not hold.

[274] Между тем, BDOF выполняется, когда текущий блок (т.е. текущая единица кодирования; текущая CU), удовлетворяет условию истинного бипрогнозирования. Когда считается, что уравнение оптического потока проектируется с возможностью прогнозировать движение объекта, который перемещается с предварительно определенной скоростью (т.е. импульсе), текущее условие истинного бипрогнозирования не представляет собой оптимальное условие для применения BDOF. Соответственно, условие BDOF может быть фиксированным с учетом расстояния опорного кадра. Согласно экспериментальному результату, изменение RD-скорости на 0,01% показывается с 100%-м временем выполнения кодирования и декодирования посредством сравнения с тестовой VVC-моделью (VTM) 4.0.[274] Meanwhile, BDOF is executed when the current block (ie, the current coding unit; the current CU) satisfies the true biprediction condition. When the optical flow equation is considered to be designed to predict the motion of an object that is moving at a predetermined speed (i.e., momentum), the current true biprediction condition does not represent the optimal condition for applying BDOF. Accordingly, the BDOF condition may be fixed taking into account the distance of the reference frame. According to the experimental result, a 0.01% change in RD rate is shown with 100% encoding and decoding execution time by comparing with the VVC Test Model (VTM) 4.0.

[275] Фиг. 9 является схемой, проиллюстрированной для описания принципа BDOF.[275] FIG. 9 is a diagram illustrated to describe the principle of BDOF.

[276] Как описано выше, BDOF проектируется с возможностью повышать производительность компенсации движения посредством использования понятия оптического потока. Согласно BDOF, как проиллюстрировано на фиг. 9, можно предполагать, что объект перемещается с предварительно определенной скоростью (постоянное движение), и в то время когда объект перемещается, яркость каждого пиксела не изменяется. В случае предположения, уравнение оптического потока может выражаться как нижеприведенное уравнение 1.[276] As described above, BDOF is designed to improve motion compensation performance by using the concept of optical flow. According to the BDOF, as illustrated in FIG. 9, it can be assumed that the object moves at a predetermined speed (constant motion), and while the object moves, the brightness of each pixel does not change. In case of assumption, the optical flow equation can be expressed as Equation 1 below.

[277] уравнение 1[277] equation 1

δ(i, j)=A-Bδ(i, j)=A-B

=I(x+δx, y+δy, t+δt)- I(x-δx, y-δy, t-δt)=I(x+δx, y+δy, t+δt)- I(x-δx, y-δy, t-δt)

[278] Как описано выше, когда текущая CU удовлетворяет условию истинного бипрогнозирования, BDOF выполняется. Тем не менее, условие истинного бипрогнозирования не означает случай, в котором объект перемещается с предварительно определенной скоростью. Соответственно, настоящее раскрытие сущности предлагает способ, который может применять BDOF, когда объект имеет предварительно определенное движение, и может повышать производительность компенсации движения.[278] As described above, when the current CU satisfies the true biprediction condition, BDOF is executed. However, the true biprediction condition does not mean the case in which the object is moving at a predetermined speed. Accordingly, the present disclosure provides a method that can apply BDOF when an object has a predetermined motion, and can improve motion compensation performance.

[279] Согласно варианту осуществления настоящего раскрытия сущности, в вышеприведенном уравнении 1, в качестве δt, BDOF может применяться, когда расстояние от опорного L0-кадра (ссылка 0 по фиг. 9) и расстояние от опорного L1-кадра (ссылка 1 по фиг. 9) на основе текущего кадра являются идентичными друг другу. В этом случае, условие применения BDOF может изменяться, как показано в нижеприведенной таблице 28.[279] According to an embodiment of the present disclosure, in the above equation 1, as δt, BDOF can be applied when the distance from the L0 reference frame (link 0 of FIG. 9) and the distance from the L1 reference frame (link 1 of FIG. 9) based on the current frame are identical to each other. In this case, the application condition of BDOF may change as shown in Table 28 below.

[280] Табл. 28[280] Tab. 28

Переменная currPic указывает текущий кадр, и переменная bdofFlag извлекается следующим образом:
- Если все следующие условия представляют собой "истина", bdofFlag задается равным "истина".
--- sps_bdof_enabled_flag равен 1.
--- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.
--- DiffPicOrderCnt(currPic, RefPicList[0][refIdxL0])*DffPicOrderCnt(currPic, RefPicList[1][refIdxL1]) меньше 0.
--- DiffPicOrderCnt(currPic, RefPicList[0][refIdxL0]) равен DiffPicOrderCnt(RefPicList[1][refIdxL1], currPic)
--- MotionModelIdc[xCb][yCb] равен 0.
--- merge_subblock_flag[xCb][yCb] равен 0.
--- GbiIdx[xCb][yCb] равен 0.
--- cIdx равен 0.
- В противном случае, bdofFlag задается равным "ложь".
The currPic variable indicates the current frame, and the bdofFlag variable is retrieved as follows:
- If all of the following conditions are true, bdofFlag is set to true.
--- sps_bdof_enabled_flag is equal to 1.
--- predFlagL0[xSbIdx][ySbIdx] and predFlagL1[xSbIdx][ySbIdx] are equal to 1.
--- DiffPicOrderCnt(currPic, RefPicList[0][refIdxL0])*DffPicOrderCnt(currPic, RefPicList[1][refIdxL1]) is less than 0.
--- DiffPicOrderCnt(currPic, RefPicList[0][refIdxL0]) is equal to DiffPicOrderCnt(RefPicList[1][refIdxL1], currPic)
--- MotionModelIdc[xCb][yCb] is equal to 0.
--- merge_subblock_flag[xCb][yCb] is equal to 0.
--- GbiIdx[xCb][yCb] is equal to 0.
--- cIdx is 0.
- Otherwise, bdofFlag is set to false.

[281] Ссылаясь на вышеприведенную таблицу 28, условие, связанное с расстоянием до опорного кадра, из условий применения BDOF (например, DiffPicOrderCnt), изменяется, чтобы применять BDOF только тогда, когда объект имеет предварительно определенную скорость движения. Например, то, являются или нет DiffPicOrderCnt(currPic, RefPicList[0][refIdxL0]) и DiffPicOrderCnt(RefPicList[1][refIdxL1], currPic) идентичными друг другу, определяется, чтобы определять то, являются или нет расстояние между текущим кадром и опорным L0-кадром (т.е. опорным кадром в списке L0 опорных кадров) и расстояние между текущим кадром и опорным L1-кадром (т.е. опорным кадром в списке L1 опорных кадров) идентичными друг другу. Другими словами, BDOF может применяться только тогда, когда расстояние от опорного L0-кадра и расстояние от опорного L1-кадра на основе текущего кадра являются идентичными друг другу. В связи с этим, условие, в котором расстояния между билатеральными опорными кадрами являются идентичными на основе текущего кадра, используется для того, чтобы определять то, выполняется или нет истинное бипрогнозирование, и объект, который перемещается в предварительно определенную скорость, включается. BDOF применяется к блоку, удовлетворяющему условию, чтобы получать более усовершенствованный результат детализации информации движения.[281] Referring to Table 28 above, the reference frame distance condition from the BDOF application conditions (eg, DiffPicOrderCnt) is modified to apply BDOF only when the object has a predetermined moving speed. For example, whether or not DiffPicOrderCnt(currPic, RefPicList[0][refIdxL0]) and DiffPicOrderCnt(RefPicList[1][refIdxL1], currPic) are identical to each other is determined to determine whether or not the distance between the current frame and the L0 reference frame (ie, the reference frame in the L0 reference frame list) and the distance between the current frame and the L1 reference frame (ie, the reference frame in the L1 reference frame list) are identical to each other. In other words, BDOF can only be applied when the distance from the L0 reference frame and the distance from the L1 reference frame based on the current frame are identical to each other. In this regard, a condition in which the distances between bilateral reference frames are identical based on the current frame is used to determine whether true bi-prediction is performed or not, and an object that moves at a predetermined speed is included. BDOF is applied to the block satisfying the condition to obtain a more refined motion information detail result.

[282] Дополнительно, в варианте осуществления, вместе с условиями (например, DiffPicOrderCnt), связанными с расстоянием до опорного кадра, то, следует или нет применять BDOF, может определяться на основе оставшихся условий применения, перечисленных в вышеприведенной таблице 28.[282] Additionally, in an embodiment, together with conditions (e.g., DiffPicOrderCnt) associated with the distance to the reference frame, whether or not BDOF should be applied can be determined based on the remaining application conditions listed in Table 28 above.

[283] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 28, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 28, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 28, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.[283] In other words, the decoding equipment can determine whether or not all the conditions listed in Table 28 above are satisfied, and when all the conditions are satisfied, the decoding equipment can perform true bi-prediction by applying BDOF. When even any of the conditions listed in Table 28 above are not satisfied, the decoding equipment may not apply BDOF. The encoding equipment may also apply the conditions of the above Table 28, and the encoding equipment may perform true bi-prediction through a corresponding method in the decoding equipment.

[284] Между тем, настоящее раскрытие сущности предлагает способ для определения того, следует или нет применять BDOF согласно размеру блока. Нижеприведенная таблица 29 показывает случай, когда предел по размеру блока согласно варианту осуществления настоящего раскрытия сущности включается в качестве условия применения.[284] Meanwhile, the present disclosure provides a method for determining whether or not BDOF should be applied according to the block size. Table 29 below shows a case where a block size limit according to an embodiment of the present disclosure is included as an application condition.

[285] Табл. 29[285] Tab. 29

Переменная currPic указывает текущий кадр, и переменная bdofFlag извлекается следующим образом:
- Если все следующие условия представляют собой "истина", bdofFlag задается равным "истина".
--- sps_bdof_enabled_flag равен 1.
--- predFlagL0[xSbIdx][ySbIdx] и predFlagL1[xSbIdx][ySbIdx] равны 1.
--- DiffPicOrderCnt(currPic, RefPicList[0][refIdxL0])*DffPicOrderCnt(currPic, RefPicList[1][refIdxL1]) меньше 0.
--- MotionModelIdc[xCb][yCb] равен 0.
--- merge_subblock_flag[xCb][yCb] равен 0.
--- GbiIdx[xCb][yCb] равен 0.
--- cIdx равен 0.
--- cbHeight превышает или равен 8
--- cbHeight*cbWidth превышает или равен 64
- В противном случае, bdofFlag задается равным "ложь".
The currPic variable indicates the current frame, and the bdofFlag variable is retrieved as follows:
- If all of the following conditions are true, bdofFlag is set to true.
--- sps_bdof_enabled_flag is equal to 1.
--- predFlagL0[xSbIdx][ySbIdx] and predFlagL1[xSbIdx][ySbIdx] are equal to 1.
--- DiffPicOrderCnt(currPic, RefPicList[0][refIdxL0])*DffPicOrderCnt(currPic, RefPicList[1][refIdxL1]) is less than 0.
--- MotionModelIdc[xCb][yCb] is equal to 0.
--- merge_subblock_flag[xCb][yCb] is equal to 0.
--- GbiIdx[xCb][yCb] is equal to 0.
--- cIdx is 0.
--- cbHeight is greater than or equal to 8
--- cbHeight*cbWidth is greater than or equal to 64
- Otherwise, bdofFlag is set to false.

[286] Ссылаясь на вышеприведенную таблицу 29, при применении BDOF, когда высота текущего блока (например, CbHeight) равна или выше 8, случай, в котором размер (например, CbHeight*CbWidth) текущего блока равен или выше 64, может добавляться в качестве условия.[286] Referring to the above table 29, when applying BDOF, when the height of the current block (for example, CbHeight) is equal to or greater than 8, the case in which the size (for example, CbHeight*CbWidth) of the current block is equal to or greater than 64 may be added as conditions.

[287] Соответственно, в варианте осуществления, вместе с условием для того, равна или выше либо нет высота текущего блока 8, и условием для того, равна или выше либо нет высота*ширина текущего блока 64, то, следует или нет применять BDOF, может определяться посредством использования оставшихся условий, перечисленных в вышеприведенной таблице 29.[287] Accordingly, in the embodiment, together with the condition for whether the height of the current block 8 is equal to or greater than or not, and the condition for whether the height*width of the current block 64 is equal to or greater than or not, whether or not BDOF should be applied, may be determined by using the remaining conditions listed in Table 29 above.

[288] Другими словами, оборудование декодирования может определять то, удовлетворяются или нет все условия, перечисленные в вышеприведенной таблице 29, и когда все условия удовлетворяются, оборудование декодирования может выполнять истинное бипрогнозирование посредством применения BDOF. Когда даже любое из условий, перечисленных в вышеприведенной таблице 29, не удовлетворяется, оборудование декодирования может не применять BDOF. Оборудование кодирования также может применять условия вышеприведенной таблицы 29, и оборудование кодирования может выполнять истинное бипрогнозирование посредством соответствующего способа в оборудовании декодирования.[288] In other words, the decoding equipment can determine whether or not all the conditions listed in Table 29 above are satisfied, and when all the conditions are satisfied, the decoding equipment can perform true bi-prediction by applying BDOF. When even any of the conditions listed in Table 29 above are not satisfied, the decoding equipment may not apply BDOF. The encoding equipment can also apply the conditions of the above Table 29, and the encoding equipment can perform true bi-prediction through a corresponding method in the decoding equipment.

[289] DMVR-процесс, описанный в настоящем раскрытии сущности, может реализовываться согласно спецификации, показанной в нижеприведенной таблице 30. Нижеприведенная таблица 30 показывает один пример процесса детализации векторов движения на основе SAD в качестве варианта осуществления настоящего раскрытия сущности.[289] The DMVR process described in the present disclosure may be implemented according to the specification shown in Table 30 below. Table 30 below shows one example of a SAD-based motion vector refinement process as an embodiment of the present disclosure.

[290] Табл. 30[290] Tab. thirty

8.5.3.1. Общие сведения
Вводы в этот процесс представляют собой следующее:
- местоположение (xSb, ySb) сигнала яркости, указывающее левую верхнюю выборку текущего субблока кодирования относительно левой верхней выборки сигнала яркости текущего кадра,
- переменная sbWidth, указывающая ширину текущего субблока кодирования в выборках сигнала яркости,
- переменная sbHeight, указывающая высоту текущего субблока кодирования в выборках сигнала яркости,
- векторы mvL0 и mvL1 движения сигнала яркости с дробновыборочной точностью в 1/16,
- выбранные массивы refPicL0L и refPicL1L выборок опорных кадров сигналов яркости. Выводы этого процесса представляют собой:
- дельта-векторы dMvL0 и dMvL1 движения сигнала яркости. Переменная subPelFlag задается равной 0. и переменные srRange, offsetH0, offsetH1, offsetV0 и offsetV1 задаются равными 2.
Оба компонента дельта-векторов dMvL0 и dMvL1 движения сигнала яркости задаются равными нулю и модифицируются следующим образом:
Для каждого X, равного 0 или 1, массив predSamplesLXL выборочных значений сигнала яркости прогнозирования в (sbWidth+2*srRange)x (sbHeight+2*srRange) извлекается посредством активации дробного примерного процесса билинейной интерполяции, указываемого в 8.5.3.2.1, с местоположением (xSb, ySb) сигнала яркости, шириной блока прогнозирования, равной (sbWidth+2*srRange), высотой блока прогнозирования, равной (sbHeight+2*srRange), массивом refPicLXL выборок опорных кадров, вектором mvLX движения и диапазоном srRange поиска детализации в качестве вводов.
Список sadList[i] с i=0...8 извлекается посредством активации процесса вычисления суммы абсолютных разностей, указываемого в 8.5.3.3, с sbWidth, sbHeight, offsetH0, offsetH1, offsetV0, offsetV1, predSamplesL0L и predSamplesL1L в качестве вводов.
Когда sadList[4] превышает или равен 4*(sbHeight>>1)*sbWidth, применимо следующее:
Переменная bestIdx извлекается посредством активации процесса выбора записей массива, указываемого в разделе 8.5.3.4, со списком sadList[i] с i=0...8 в качестве ввода.
Если bestIdx равен 4, subPelFlag задается равным 1.
Иначе, применимо следующее: dX=bestIdx% 3-1 (8 436)
- dY=bestIdx/3-l (8 437)
- dMvL0[0]+=16*dX (8 438)
- dMvL0[1]+=16*dY (8 439)
- offsetH0+=dX (8 440)
- offsetV0+=dY (8 441)
- offsetH1 -=dX (8 442)
- offsetV1 -=dY (8 443)
Список sadList[i] с i=0...8 модифицируется посредством активации процесса вычисления суммы абсолютных разностей, указываемого в 8.5.3.3, с sbWidth, sbHeight, offsetH0, offsetH1, offsetV0, offsetV1, predSamplesL0L и predSamplesL1L в качестве вводов.
[291] Переменная bestIdx модифицируется посредством активации процесса выбора записей массива, указываемого в разделе 8.5.3.4, со списком sadList[i] с i=0... 8 в качестве ввода.
Если bestIdx равен 4, subPelFlag задается равным 1
Иначе (bestIdx не равно 4), применимо следующее:
- dMvL0[0]+=16*(bestIdx% 3-1) (8 444)
- dMvL0[1]+=16*(bestIdx/3-1) (8 445)
Когда subPelFlag равен 1, параметрический процесс детализации векторов движения, указываемый в разделе 8.5.3.5, активируется, со списком sadList[i] с i=0...8 и дельта-вектор dMvL0 движения в качестве вводов и модифицированным dMvL0 в качестве вывода.
Дельта-вектор dMvL1 движения извлекается следующим образом:
- dMvL1[0]=-dMvL0[0] (8 446)
- dMvL1[1]=-dMvL0[1] (8 447)
8.5.3.1. General information
The inputs to this process are as follows:
- luminance signal location (xSb, ySb) indicating the upper left sample of the current encoding subblock relative to the upper left luminance signal sample of the current frame,
- sbWidth variable indicating the width of the current encoding subblock in luminance signal samples,
- variable sbHeight indicating the height of the current encoding subblock in luminance signal samples,
- vectors mvL0 and mvL1 of the brightness signal motion with fractional sampling accuracy of 1/16,
- selected arrays refPicL0L and refPicL1L of samples of reference frames of brightness signals. The findings from this process are:
- delta vectors dMvL0 and dMvL1 of the brightness signal movement. The variable subPelFlag is set to 0. and the variables srRange, offsetH0, offsetH1, offsetV0 and offsetV1 are set to 2.
Both components of the delta vectors dMvL0 and dMvL1 of the motion of the luminance signal are set equal to zero and are modified as follows:
For each X equal to 0 or 1, a predSamplesLXL array of prediction luminance signal sample values at (sbWidth+2*srRange)x(sbHeight+2*srRange) is retrieved by activating the fractional example bilinear interpolation process specified in 8.5.3.2.1, with location (xSb, ySb) of the luminance signal, prediction block width equal to (sbWidth+2*srRange), prediction block height equal to (sbHeight+2*srRange), refPicLXL array of reference frame samples, motion vector mvLX and detail search range srRange in quality of inputs.
The list sadList[i] with i=0...8 is retrieved by activating the sum of absolute differences process specified in 8.5.3.3 with sbWidth, sbHeight, offsetH0, offsetH1, offsetV0, offsetV1, predSamplesL0L and predSamplesL1L as inputs.
When sadList[4] is greater than or equal to 4*(sbHeight>>1)*sbWidth, the following applies:
The variable bestIdx is retrieved by activating the array entry selection process specified in section 8.5.3.4 with the list sadList[i] with i=0...8 as input.
If bestIdx is 4, subPelFlag is set to 1.
Otherwise, the following applies: dX=bestIdx% 3-1 (8,436)
- dY=bestIdx/3-l (8 437)
- dMvL0[0]+=16*dX (8 438)
- dMvL0[1]+=16*dY (8 439)
- offsetH0+=dX (8 440)
- offsetV0+=dY (8 441)
- offsetH1 -=dX (8 442)
- offsetV1 -=dY (8 443)
The list sadList[i] with i=0...8 is modified by activating the sum of absolute differences process specified in 8.5.3.3 with sbWidth, sbHeight, offsetH0, offsetH1, offsetV0, offsetV1, predSamplesL0L and predSamplesL1L as inputs.
[291] The variable bestIdx is modified by activating the array entry selection process specified in section 8.5.3.4 with the list sadList[i] with i=0... 8 as input.
If bestIdx is 4, subPelFlag is set to 1
Otherwise (bestIdx is not equal to 4), the following applies:
- dMvL0[0]+=16*(bestIdx% 3-1) (8 444)
- dMvL0[1]+=16*(bestIdx/3-1) (8 445)
When subPelFlag is 1, the parametric motion vector refinement process specified in section 8.5.3.5 is activated, with sadList[i] with i=0...8 and delta motion vector dMvL0 as inputs and modified dMvL0 as output.
The motion delta vector dMvL1 is extracted as follows:
- dMvL1[0]=-dMvL0[0] (8 446)
- dMvL1[1]=-dMvL0[1] (8 447)

[292] Фиг. 10 является блок-схемой последовательности операций способа, схематично иллюстрирующей способ кодирования, который может осуществляться посредством оборудования кодирования согласно варианту осуществления этого раскрытия сущности.[292] FIG. 10 is a flowchart schematically illustrating an encoding method that can be performed by encoding equipment according to an embodiment of this disclosure.

[293] Способ, раскрытый на фиг. 10, может осуществляться посредством оборудования 200 кодирования, раскрытого на фиг. 2. В частности, этапы S1000-S1010 по фиг. 10 могут выполняться посредством модуля 220 прогнозирования и модуля 221 взаимного прогнозирования, раскрытых на фиг. 2, и этап S1020 по фиг. 10 может выполняться посредством остаточного процессора 230, раскрытого на фиг. 2, и этап S1030 по фиг. 10 может выполняться посредством энтропийного кодера 240, раскрытого на фиг. 2. Дополнительно, способ, раскрытый на фиг. 10, может включать в себя вышеописанные варианты осуществления в этом раскрытии сущности. Соответственно, подробное пояснение содержимого, дублированного относительно вышеописанных вариантов осуществления на фиг. 10, опускается или упрощается.[293] The method disclosed in FIG. 10 may be performed by the encoding equipment 200 disclosed in FIG. 2. In particular, steps S1000 to S1010 in FIG. 10 may be performed by the prediction module 220 and the inter-prediction module 221 disclosed in FIG. 2, and step S1020 of FIG. 10 may be executed by the residual processor 230 disclosed in FIG. 2, and step S1030 of FIG. 10 may be performed by the entropy encoder 240 disclosed in FIG. 2. Additionally, the method disclosed in FIG. 10 may include the above-described embodiments in this disclosure. Accordingly, a detailed explanation of the contents duplicated with respect to the above-described embodiments in FIGS. 10, omitted or simplified.

[294] Ссылаясь на фиг. 10, оборудование кодирования может извлекать детализированный L0-вектор движения и детализированный L1-вектор движения посредством применения DMVR на основе L0-вектора движения и L1-вектора движения текущего блока (S1000).[294] Referring to FIG. 10, the encoding equipment can extract the L0 detailed motion vector and the L1 detailed motion vector by applying DMVR based on the L0 motion vector and L1 motion vector of the current block (S1000).

[295] В качестве варианта осуществления, когда взаимное прогнозирование выполняется для текущего блока, оборудование кодирования может извлекать информацию движения (вектор движения, индекс опорного кадра и т.д.) текущего блока. Например, оборудование кодирования может выполнять поиск блоков, аналогичных текущему блоку, в предварительно определенной зоне (зоне поиска) опорных кадров через оценку движения, и может извлекать опорный блок, имеющий разность относительно текущего блока, которая является минимальной либо равной или меньшей предварительно определенного уровня. На основе этого, оборудование кодирования может извлекать индекс опорного кадра, указывающий опорный кадр, в котором расположен опорный блок, и может извлекать вектор движения на основе разности в местоположении между опорным блоком и текущим блоком.[295] As an embodiment, when inter-prediction is performed on the current block, the encoding equipment may extract motion information (motion vector, reference frame index, etc.) of the current block. For example, the encoding equipment can search for blocks similar to the current block in a predetermined area (search area) of reference frames through motion estimation, and can extract a reference block having a difference with respect to the current block that is minimal or equal to or less than a predetermined level. Based on this, the encoding equipment can extract a reference frame index indicating the reference frame in which the reference block is located, and can extract a motion vector based on the difference in location between the reference block and the current block.

[296] Дополнительно, оборудование кодирования может определять режим взаимного прогнозирования, применяемый к текущему блоку, из различных режимов прогнозирования. Оборудование кодирования может сравнивать RD-затраты для различных режимов прогнозирования друг с другом и может определять оптимальный режим прогнозирования для текущего блока.[296] Additionally, the encoding equipment may determine the inter-prediction mode applied to the current block from various prediction modes. The encoding equipment may compare the RD costs for different prediction modes with each other and may determine the optimal prediction mode for the current block.

[297] Например, оборудование кодирования может определять то, следует или нет применять режим объединения в качестве оптимального режима прогнозирования для текущего блока. В случае применения режима объединения к текущему блоку, оборудование кодирования может конфигурировать список возможных вариантов объединения на основе соседних блоков относительно текущего блока и может формировать информацию индекса объединения. В частности, оборудование кодирования может извлекать опорный блок, имеющий разность относительно текущего блока, которая является минимальной либо равной или меньшей предварительно определенного уровня, из опорных блоков (т.е. соседних блоков), указываемых посредством возможных вариантов объединения, включенных в список возможных вариантов объединения. В этом случае, возможный вариант объединения, связанный с извлеченным опорным блоком, может выбираться, и информация индекса объединения, указывающая выбранный возможный вариант объединения, может формироваться и передаваться в служебных сигналах в оборудование декодирования. Информация движения текущего блока может извлекаться с использованием информации движения выбранного возможного варианта объединения.[297] For example, the encoding equipment may determine whether or not to apply the combining mode as the optimal prediction mode for the current block. In the case of applying the combining mode to the current block, the encoding equipment can configure a list of possible combining options based on neighboring blocks relative to the current block and can generate combining index information. In particular, the encoding equipment may extract a reference block having a difference with respect to the current block that is minimal or equal to or less than a predetermined level from the reference blocks (i.e., neighboring blocks) indicated by combination candidates included in the candidate list associations. In this case, the combining candidate associated with the extracted reference block can be selected, and combining index information indicating the selected combining candidate can be generated and signaled to the decoding equipment. The motion information of the current block may be extracted using the motion information of the selected combining candidate.

[298] Здесь, информация движения может включать в себя такую информацию, как вектор движения, индекс опорного кадра и т.п. и может включать в себя L0-информацию движения и/или L1-информацию движения в зависимости от типа взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.п.). Когда бипрогнозирование применяется к текущему блоку, информация движения может включать в себя вектор движения (L0-вектор движения) в L0-направлении и вектор движения (L1-вектор движения) в L1-направлении. Дополнительно, информация движения может включать в себя индекс опорного L0-кадра и опорный L0-кадр, указываемый посредством индекса опорного L0-кадра в списке опорных L0-кадров, и индекс опорного L1-кадра и опорный L1-кадр, указываемый посредством индекса опорного L1-кадра в списке опорных L1-кадров.[298] Here, the motion information may include information such as a motion vector, a reference frame index, and the like. and may include L0 motion information and/or L1 motion information depending on the type of inter-prediction (L0 prediction, L1 prediction, bi-prediction, etc.). When bi-prediction is applied to the current block, the motion information may include a motion vector (L0 motion vector) in the L0 direction and a motion vector (L1 motion vector) in the L1 direction. Additionally, the motion information may include an L0 reference frame index and an L0 reference frame indicated by an L0 reference frame index in the L0 reference frame list, and an L1 reference frame index and an L1 reference frame indicated by an L1 reference frame index. -frame in the list of reference L1 frames.

[299] Таким образом, когда режим объединения применяется, оборудование кодирования может извлекать L0-вектор движения и L1-вектор движения соседнего блока, указываемого посредством информации индекса объединения, из соседних блоков относительно текущего блока, и может использовать их в качестве L0- и L1-векторов движения текущего блока.[299] Thus, when the combining mode is applied, the encoding equipment can extract the L0 motion vector and L1 motion vector of the neighboring block indicated by the combining index information from neighboring blocks relative to the current block, and can use them as L0 and L1 -movement vectors of the current block.

[300] Оборудование кодирования может извлекать детализированные L0- и L1-векторы движения посредством применения DMVR к L0- и L1-векторам движения текущего блока, извлекаемого так, как описано выше, с учетом эффективности кодирования, сложности, производительности прогнозирования и т.п. В этом случае, оборудование кодирования может определять то, следует или нет применять DMVR к текущему блоку, с использованием различных условий применения, описанных в вышеприведенных таблицах 1-30.[300] The encoding equipment can extract detailed L0 and L1 motion vectors by applying DMVR to the L0 and L1 motion vectors of the current block extracted as described above, taking into account encoding efficiency, complexity, prediction performance, and the like. In this case, the encoding equipment can determine whether or not to apply DMVR to the current block using various application conditions described in Tables 1-30 above.

[301] В качестве варианта осуществления, оборудование кодирования может извлекать информацию DMVR-флага, связанную с указанием того, применяется DMVR или нет, и может определять то, следует или нет применять DMVR, на основе информации DMVR-флага. Например, когда режим объединения применяется к текущему блоку, оборудование кодирования может задавать значение (например, "истина" или 1) информации DMVR-флага, чтобы указывать то, что DMVR применяется к текущему блоку. Дополнительно, согласно варианту осуществления, оборудование кодирования может извлекать информацию DMVR-флага посредством определения того, удовлетворяются или нет такие условия, как случай, в котором взаимное бипрогнозирование на основе DMVR активируется, случай, в котором бипрогнозирование, выполняемое на основе опорного L0-кадра и опорного L1-кадра, применяется к текущему блоку, случай, в котором режим объединения с разностью векторов движения (MMVD) не применяется к текущему блоку, случай, в котором режим прогнозирования, в котором комбинируются взаимное прогнозирование и внутреннее прогнозирование, не применяется к текущему блоку, случай, в котором первая POC-разность между текущим кадром и опорным L0-кадром и вторая POC-разность между текущим кадром и опорным L1-кадром являются идентичными, случай, в котором значение информации весового индекса бипрогнозирования текущего блока равно 0, случай, в котором высота текущего блока равна или выше 8, случай, в котором ширина текущего блока равна или выше 8, случай, в котором высота x ширина текущего блока больше 8×8. Например, если все вышеуказанные условия удовлетворяются, значение информации DMVR-флага может задаваться как "истина" или 1, и если, по меньшей мере, одно из вышеуказанных условий не удовлетворяется, значение информации DMVR-флага может задаваться как "ложь" или 0.[301] As an embodiment, the encoding equipment may extract DMVR flag information associated with indicating whether the DMVR is applied or not, and may determine whether or not the DMVR should be applied based on the DMVR flag information. For example, when the combining mode is applied to the current block, the encoding equipment may set a value (eg, true or 1) of the DMVR flag information to indicate that the DMVR is applied to the current block. Further, according to an embodiment, the encoding equipment can extract DMVR flag information by determining whether conditions such as the case in which DMVR-based mutual bi-prediction is activated, the case in which bi-prediction performed based on the L0 reference frame, and reference L1 frame is applied to the current block, the case in which the motion vector difference (MMVD) combining mode is not applied to the current block, the case in which the prediction mode in which inter prediction and intra prediction are combined is not applied to the current block , the case in which the first POC difference between the current frame and the L0 reference frame and the second POC difference between the current frame and the L1 reference frame are identical, the case in which the biprediction weight index information value of the current block is 0, the case in in which the height of the current block is equal to or greater than 8, the case in which the width of the current block is equal to or greater than 8, the case in which the height x width of the current block is greater than 8x8. For example, if all of the above conditions are satisfied, the value of the DMVR flag information may be set to true or 1, and if at least one of the above conditions is not satisfied, the value of the DMVR flag information may be set to false or 0.

[302] Здесь, при извлечении информации DMVR-флага, упомянутые выше условия применения DMVR являются просто примерными, и могут использоваться различные комбинации условий таблиц 1-30.[302] Here, when retrieving DMVR flag information, the above-mentioned DMVR application conditions are merely exemplary, and various combinations of the conditions of Tables 1 to 30 may be used.

[303] Когда определяется то, что DMVR применяется, на основе информации DMVR-флага (например, когда значение информации DMVR-флага извлекается ка "истина" или 1), оборудование кодирования может применять DMVR к L0- и L1-векторам движения текущего блока.[303] When it is determined that DMVR is applied based on the DMVR flag information (eg, when the value of the DMVR flag information is retrieved to true or 1), the encoding equipment may apply DMVR to the L0 and L1 motion vectors of the current block .

[304] В варианте осуществления, оборудование кодирования может извлекать минимальную сумму абсолютных разностей (SAD) на основе опорных выборок (т.е. прогнозных L0-выборок) в опорном L0-кадре, извлекаемом на основе L0-вектора движения, и опорных выборок (т.е. прогнозных L1-выборок) в опорном L1-кадре, извлекаемом на основе L1-вектора движения. Так же, оборудование кодирования может извлекать детализированный L0-вектор движения и детализированный L1-вектор движения на основе выборочной позиции, соответствующей минимальной SAD. Таким образом, детализированный L0-вектор движения может представлять собой вектор движения, связанный с указанием выборочного местоположения, соответствующего минимальной SAD в опорном L0-кадре, и детализированный L1-вектор движения может представлять собой вектор движения, связанный с указанием выборочного местоположения, соответствующего минимальной SAD в опорном L1-кадре. Поскольку процесс извлечения детализированного вектора движения посредством применения DMVR описывается подробно со ссылкой на фиг. 4 и 5, его пояснение опускается далее.[304] In an embodiment, the encoding equipment may extract minimum sum of absolute differences (SAD) based on reference samples (i.e., L0 prediction samples) in the L0 reference frame extracted based on the L0 motion vector, and reference samples ( i.e., predictive L1 samples) in a reference L1 frame extracted based on the L1 motion vector. Also, the encoding equipment can extract the detailed L0 motion vector and the detailed L1 motion vector based on the sample position corresponding to the minimum SAD. Thus, the detailed L0 motion vector may be a motion vector associated with indicating a sample location corresponding to a minimum SAD in the L0 reference frame, and the detailed L1 motion vector may be a motion vector associated with indicating a sample location corresponding to the minimum SAD in the reference L1 frame. Since the process of extracting detailed motion vector by applying DMVR is described in detail with reference to FIG. 4 and 5, its explanation is omitted below.

[305] Оборудование кодирования может извлекать прогнозные выборки для текущего блока на основе прогнозных L0-выборок, извлекаемых на основе детализированного L0-вектора движения, и прогнозных L1-выборок, извлекаемых на основе детализированного L1-вектора движения (S1010).[305] The encoding equipment may extract prediction samples for the current block based on L0 prediction samples extracted based on the detailed L0 motion vector and L1 prediction samples extracted based on the detailed L1 motion vector (S1010).

[306] Здесь, прогнозные L0-выборки извлекаются на основе опорных выборок, указываемых посредством детализированного L0-вектора движения в опорном L0-кадре, и прогнозные L1-выборки извлекаются на основе опорных выборок, указываемых посредством детализированного L1-вектора движения в опорном L1-кадре.[306] Here, L0 prediction samples are extracted based on reference samples indicated by the detailed L0 motion vector in the L0 reference frame, and L1 prediction samples are extracted based on reference samples indicated by the detailed L1 motion vector in the L1 reference frame. frame.

[307] При извлечении прогнозных выборок, оборудование кодирования может применять BDOF-процесс к текущему блоку с учетом эффективности кодирования, сложности, производительности прогнозирования и т.п.[307] When retrieving prediction samples, the encoding equipment may apply a BDOF process to the current block taking into account encoding efficiency, complexity, prediction performance, and the like.

[308] Например, оборудование кодирования может определять то, следует или нет применять BDOF-процесс, на основе того, являются или нет идентичными первая POC-разность между текущим кадром и опорным L0-кадром и вторая POC-разность между текущим кадром и опорным L1-кадром. Здесь, номер в последовательности кадров (POC) может представлять порядок, выводимый из DPB. Первый POC может представлять расстояние между текущим кадром и опорным L0-кадром и может вычисляться с использованием, например, функции DiffPicOrderCnt(currPic, RefPicList0[refIdxL0]). Второй POC может представлять расстояние между текущим кадром и опорным L1-кадром и может вычисляться с использованием, например, функции DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]).[308] For example, the encoding equipment may determine whether or not to apply the BDOF process based on whether the first POC difference between the current frame and the L0 reference frame and the second POC difference between the current frame and the L1 reference are identical. -frame. Here, the number in the sequence of frames (POC) may represent the order output from the DPB. The first POC may represent the distance between the current frame and the L0 reference frame and may be calculated using, for example, the function DiffPicOrderCnt(currPic, RefPicList0[refIdxL0]). The second POC may represent the distance between the current frame and the L1 reference frame and may be calculated using, for example, the function DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]).

[309] В этом случае, оборудование кодирования может определять то, следует или нет применять BDOF к текущему блоку, посредством использования различных условий применения, описанных в вышеприведенных таблицах 1-30.[309] In this case, the encoding equipment can determine whether or not to apply BDOF to the current block by using various application conditions described in Tables 1-30 above.

[310] В варианте осуществления, оборудование кодирования может извлекать информацию BDOF-флага, связанную с указанием того, применяется BDOF или нет, и может определять то, следует или нет применять BDOF, на основе информации BDOF-флага. Например, когда первая POC-разность и вторая POC-разность являются идентичными, оборудование кодирования может задавать значение (например, "истина" или 1) информации BDOF-флага, чтобы указывать то, что BDOF применяется к текущему блоку. Дополнительно, согласно варианту осуществления, оборудование кодирования может извлекать информацию BDOF-флага посредством определения того, удовлетворяются или нет такие условия, как случай, в котором взаимное прогнозирование на основе BDOF активируется, случай, в котором бипрогнозирование, выполняемое на основе опорного L0-кадра и опорного L1-кадра, применяется к текущему блоку, случай, в котором аффинный режим не применяется к текущему блоку, случай, в котором режим объединения на основе субблоков не применяется к текущему блоку, случай, в котором режим прогнозирования, в котором комбинируются взаимное прогнозирование и внутреннее прогнозирование, не применяется к текущему блоку, случай, в котором значение информации весового индекса бипрогнозирования текущего блока равно 0, случай, в котором высота текущего блока равна или выше 8, случай, в котором ширина текущего блока равна или выше 8, случай, в котором высота x ширина текущего блока больше 8×8. Например, если все вышеуказанные условия удовлетворяются, значение информации BDOF-флага может задаваться как "истина" или 1, и если, по меньшей мере, одно из вышеуказанных условий не удовлетворяется, значение информации BDOF-флага может задаваться как "ложь" или 0.[310] In an embodiment, the encoding equipment can extract BDOF flag information associated with indicating whether BDOF is applied or not, and can determine whether BDOF should be applied or not based on the BDOF flag information. For example, when the first POC difference and the second POC difference are identical, the encoding equipment may set a value (eg, true or 1) of the BDOF flag information to indicate that BDOF is applied to the current block. Further, according to the embodiment, the encoding equipment can extract BDOF flag information by determining whether conditions such as the case in which BDOF-based inter-prediction is activated, the case in which bi-prediction performed based on the L0 reference frame, and reference L1 frame is applied to the current block, a case in which the affine mode is not applied to the current block, a case in which the sub-block-based aggregation mode is not applied to the current block, a case in which the prediction mode is in which mutual prediction and internal prediction, does not apply to the current block, the case in which the biprediction weight index information value of the current block is 0, the case in which the height of the current block is equal to or greater than 8, the case in which the width of the current block is equal to or greater than 8, the case in where the height x width of the current block is greater than 8x8. For example, if all of the above conditions are satisfied, the value of the BDOF flag information may be set to true or 1, and if at least one of the above conditions is not satisfied, the value of the BDOF flag information may be set to false or 0.

[311] Здесь, при извлечении информации BDOF-флага, упомянутые выше условия BDOF-применения являются просто примерными, и могут использоваться различные комбинации условий таблиц 1-30.[311] Here, when retrieving BDOF flag information, the above-mentioned BDOF application conditions are merely exemplary, and various combinations of the conditions of Tables 1 to 30 may be used.

[312] Когда BDOF-процесс применяется к текущему блоку на основе значения информации BDOF-флага (например, когда значение информации BDOF-флага извлекается ка "истина" или 1), оборудование кодирования может вычислять градиент для прогнозных L0-выборок, извлекаемых на основе детализированного L0-вектора движения, и градиент для прогнозных L1-выборок, извлекаемых на основе детализированного L1-вектора движения. Так же, оборудование кодирования может наконец извлекать (детализированные) прогнозные выборки на основе градиента для прогнозных L0-выборок и градиента для прогнозных L1-выборок.[312] When a BDOF process is applied to the current block based on the value of the BDOF flag information (eg, when the value of the BDOF flag information is retrieved as true or 1), the encoding equipment may calculate a gradient for the predicted L0 samples retrieved based on detailed L0 motion vector, and a gradient for predictive L1 samples extracted based on the detailed L1 motion vector. Also, the encoding equipment can finally extract (fine-grained) prediction samples based on the gradient for L0 prediction samples and the gradient for L1 prediction samples.

[313] Оборудование кодирования может извлекать остаточные выборки на основе прогнозных выборок (S1020) и может кодировать информацию изображений, включающую в себя информацию относительно остаточных выборок (S1030).[313] The encoding equipment can extract residual samples based on the predictive samples (S1020) and can encode image information including information regarding the residual samples (S1030).

[314] Таким образом, оборудование кодирования может извлекать остаточные выборки на основе исходных выборок текущего блока и прогнозных выборок текущего блока. Так же, оборудование кодирования может формировать информацию относительно остаточных выборок. Здесь, информация относительно остаточных выборок может включать в себя информацию значений, информацию местоположения, технологию преобразования, ядро преобразования и информацию параметров квантования для квантованных коэффициентов преобразования, извлекаемых посредством выполнения преобразования и квантования остаточных выборок.[314] Thus, the encoding equipment can extract residual samples based on the original samples of the current block and the predicted samples of the current block. Also, encoding equipment can generate information regarding residual samples. Here, information regarding the residual samples may include value information, location information, transform technology, transform kernel, and quantization parameter information for quantized transform coefficients extracted by performing transform and quantization of the residual samples.

[315] Оборудование кодирования может кодировать информацию относительно остаточных выборок, чтобы выводить кодированную информацию в форме потока битов, и может передавать кодированную информацию в оборудование декодирования через сеть или носитель хранения данных.[315] The encoding equipment may encode information regarding the residual samples to output the encoded information in the form of a bitstream, and may transmit the encoded information to the decoding equipment via a network or storage medium.

[316] Дополнительно, оборудование кодирования может кодировать информацию, извлекаемую на этапах S1000-S1030, описанных выше, и выводить кодированную информацию в качестве потока битов. Например, информация флага объединения, информация индекса объединения, индекс опорного L0-кадра, индекс опорного L1-кадра и т.д. может включаться в информацию изображений, которая должна кодироваться, и кодированная информация изображений может передаваться в служебных сигналах в оборудование декодирования.[316] Additionally, the encoding equipment may encode the information extracted in steps S1000 to S1030 described above, and output the encoded information as a bit stream. For example, association flag information, association index information, L0 reference frame index, L1 reference frame index, etc. may be included in image information to be encoded, and the encoded image information may be signaled to decoding equipment.

[317] Фиг. 11 является блок-схемой последовательности операций способа, схематично иллюстрирующей способ декодирования, который может осуществляться посредством оборудования декодирования согласно варианту осуществления этого документа.[317] FIG. 11 is a flowchart schematically illustrating a decoding method that can be performed by decoding equipment according to an embodiment of this document.

[318] Способ, раскрытый на фиг. 11, может осуществляться посредством оборудования 300 декодирования, раскрытого на фиг. 3. В частности, этапы, S1100-S1110 по фиг. 11 может выполняться посредством модуля 330 прогнозирования и модуля 332 взаимного прогнозирования, раскрытых на фиг. 3, и этап S1120 по фиг. 11 может выполняться посредством сумматора 340, раскрытого на фиг. 3. Дополнительно, способ, раскрытый на фиг. 11, может включать в себя вышеописанные варианты осуществления в этом документе. Соответственно, подробное пояснение содержимого, дублированного относительно вышеописанных вариантов осуществления на фиг. 11, опускается или упрощается.[318] The method disclosed in FIG. 11 may be performed by the decoding equipment 300 disclosed in FIG. 3. In particular, steps S1100-S1110 of FIG. 11 may be performed by the prediction module 330 and the inter-prediction module 332 disclosed in FIG. 3, and step S1120 of FIG. 11 may be performed by the adder 340 disclosed in FIG. 3. Additionally, the method disclosed in FIG. 11 may include the above-described embodiments herein. Accordingly, a detailed explanation of the contents duplicated with respect to the above-described embodiments in FIGS. 11, omitted or simplified.

[319] Ссылаясь на фиг. 11, оборудование декодирования может извлекать детализированный L0-вектор движения и детализированный L1-вектор движения посредством применения DMVR на основе L0-вектора движения и L1-вектора движения текущего блока (S1100).[319] Referring to FIG. 11, the decoding equipment can extract the detailed L0 motion vector and the detailed L1 motion vector by applying DMVR based on the L0 motion vector and L1 motion vector of the current block (S1100).

[320] В варианте осуществления, оборудование декодирования может определять режим прогнозирования для текущего блока на основе информации прогнозирования, передаваемой в служебных сигналах из оборудования кодирования. Так же, оборудование декодирования может извлекать информацию движения (вектор движения, индекс опорного кадра и т.д.) текущего блока на основе режима прогнозирования. Здесь, режим прогнозирования может включать в себя режим пропуска, режим объединения и (A)MVP-режим и т.п.[320] In an embodiment, the decoding equipment may determine a prediction mode for the current block based on prediction information signaled from the encoding equipment. Also, the decoding equipment can extract motion information (motion vector, reference frame index, etc.) of the current block based on the prediction mode. Here, the prediction mode may include a skip mode, an aggregation mode and an (A)MVP mode and the like.

[321] Например, когда режим объединения применяется к текущему блоку, оборудование декодирования может конструировать список возможных вариантов объединения на основе соседних блоков относительно текущего блока и выбирать один возможный вариант объединения из числа возможных вариантов объединения, включенных в список возможных вариантов объединения. В этом случае, один возможный вариант объединения может выбираться из списка возможных вариантов объединения на основе вышеописанной информации индекса объединения. Оборудование декодирования может извлекать информацию движения текущего блока посредством использования информации движения выбранного возможного варианта объединения. Таким образом, информация движения возможного варианта объединения, выбранного посредством индекса объединения, из возможных вариантов объединения, включенных в список возможных вариантов объединения, может использоваться в качестве информации движения текущего блока.[321] For example, when a combining mode is applied to a current block, the decoding equipment may construct a list of combining candidates based on neighboring blocks relative to the current block and select one combining candidate from among the combining candidates included in the list of combining candidates. In this case, one join candidate may be selected from the list of join candidates based on the join index information described above. The decoding equipment can extract the motion information of the current block by using the motion information of the selected combining candidate. That is, motion information of a merge candidate selected by the merge index from the merge candidates included in the list of merge candidates can be used as motion information of the current block.

[322] Здесь, информация движения может включать в себя такую информацию, как вектор движения, индекс опорного кадра и т.п. и может включать в себя L0-информацию движения и/или L1-информацию движения в зависимости от типа взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.п.). Когда бипрогнозирование применяется к текущему блоку, информация движения может включать в себя вектор движения (L0-вектор движения) в L0-направлении и вектор движения (L1-вектор движения) в L1-направлении. Дополнительно, информация движения может включать в себя индекс опорного L0-кадра и опорный L0-кадр, указываемый посредством индекса опорного L0-кадра в списке опорных L0-кадров, и индекс опорного L1-кадра и опорный L1-кадр, указываемый посредством индекса опорного L1-кадра в списке опорных L1-кадров.[322] Here, the motion information may include information such as a motion vector, a reference frame index, and the like. and may include L0 motion information and/or L1 motion information depending on the type of inter-prediction (L0 prediction, L1 prediction, bi-prediction, etc.). When bi-prediction is applied to the current block, the motion information may include a motion vector (L0 motion vector) in the L0 direction and a motion vector (L1 motion vector) in the L1 direction. Additionally, the motion information may include an L0 reference frame index and an L0 reference frame indicated by an L0 reference frame index in the L0 reference frame list, and an L1 reference frame index and an L1 reference frame indicated by an L1 reference frame index. -frame in the list of reference L1 frames.

[323] Таким образом, когда режим объединения применяется, оборудование декодирования может извлекать L0-вектор движения и L1-вектор движения соседнего блока, указываемого посредством информации индекса объединения, из соседних блоков относительно текущего блока, и может использовать их в качестве L0- и L1-векторов движения текущего блока.[323] Thus, when the combining mode is applied, the decoding equipment can extract the L0 motion vector and L1 motion vector of the neighboring block indicated by the combining index information from neighboring blocks relative to the current block, and can use them as L0 and L1 -movement vectors of the current block.

[324] Оборудование декодирования может извлекать детализированные L0- и L1-векторы движения посредством применения DMVR к L0- и L1-векторам движения текущего блока, извлекаемого так, как описано выше. В этом случае, оборудование декодирования может определять то, следует или нет применять DMVR к текущему блоку, с использованием различных условий применения, описанных в вышеприведенных таблицах 1-30.[324] Decoding equipment can extract detailed L0 and L1 motion vectors by applying DMVR to the L0 and L1 motion vectors of the current block extracted as described above. In this case, the decoding equipment can determine whether or not to apply the DMVR to the current block using various application conditions described in Tables 1-30 above.

[325] В варианте осуществления, оборудование декодирования может извлекать информацию DMVR-флага, связанную с указанием того, применяется DMVR или нет, и определять то, следует или нет применять DMVR, на основе информации DMVR-флага. Например, когда режим объединения применяется к текущему блоку, оборудование декодирования может задавать значение (например, "истина" или 1) информации DMVR-флага, чтобы указывать то, что DMVR применяется к текущему блоку. Дополнительно, согласно варианту осуществления, оборудование декодирования может извлекать информацию DMVR-флага посредством определения того, удовлетворяются или нет такие условия, как случай, в котором взаимное бипрогнозирование на основе DMVR активируется, случай, в котором бипрогнозирование, выполняемое на основе опорного L0-кадра и опорного L1-кадра, применяется к текущему блоку, случай, в котором режим объединения с разностью векторов движения (MMVD) не применяется к текущему блоку, случай, в котором режим прогнозирования, в котором комбинируются взаимное прогнозирование и внутреннее прогнозирование, не применяется к текущему блоку, случай, в котором первая POC-разность между текущим кадром и опорным L0-кадром и вторая POC-разность между текущим кадром и опорным L1-кадром являются идентичными, случай, в котором значение информации весового индекса бипрогнозирования текущего блока равно 0, случай, в котором высота текущего блока равна или выше 8, случай, в котором ширина текущего блока равна или выше 8, случай, в котором высота x ширина текущего блока больше 8×8. Например, если все вышеуказанные условия удовлетворяются, значение информации DMVR-флага может задаваться как "истина" или 1, и если, по меньшей мере, одно из вышеуказанных условий не удовлетворяется, значение информации DMVR-флага может задаваться как "ложь" или 0.[325] In an embodiment, the decoding equipment may extract DMVR flag information associated with indicating whether DMVR is applied or not, and determine whether DMVR should be applied or not based on the DMVR flag information. For example, when the combining mode is applied to the current block, the decoding equipment may set a value (eg, true or 1) of the DMVR flag information to indicate that the DMVR is applied to the current block. Further, according to the embodiment, the decoding equipment can extract the DMVR flag information by determining whether conditions such as the case in which DMVR-based mutual bi-prediction is activated, the case in which bi-prediction performed based on the L0 reference frame, and reference L1 frame is applied to the current block, the case in which the motion vector difference (MMVD) combining mode is not applied to the current block, the case in which the prediction mode in which inter prediction and intra prediction are combined is not applied to the current block , the case in which the first POC difference between the current frame and the L0 reference frame and the second POC difference between the current frame and the L1 reference frame are identical, the case in which the biprediction weight index information value of the current block is 0, the case in in which the height of the current block is equal to or greater than 8, the case in which the width of the current block is equal to or greater than 8, the case in which the height x width of the current block is greater than 8x8. For example, if all of the above conditions are satisfied, the value of the DMVR flag information may be set to true or 1, and if at least one of the above conditions is not satisfied, the value of the DMVR flag information may be set to false or 0.

[326] Здесь, при извлечении информации DMVR-флага, упомянутые выше условия применения DMVR являются просто примерными, и могут использоваться различные комбинации условий таблиц 1-30.[326] Here, when retrieving DMVR flag information, the above-mentioned DMVR application conditions are merely exemplary, and various combinations of the conditions of Tables 1 to 30 may be used.

[327] Когда определяется то, что DMVR применяется, на основе информации DMVR-флага (например, когда значение информации DMVR-флага извлекается ка "истина" или 1), оборудование декодирования может применять DMVR к L0- и L1-векторам движения текущего блока.[327] When it is determined that DMVR is applied based on the DMVR flag information (eg, when the value of the DMVR flag information is retrieved as true or 1), the decoding equipment may apply the DMVR to the L0 and L1 motion vectors of the current block .

[328] В варианте осуществления, оборудование декодирования может извлекать минимальную сумму абсолютных разностей (SAD) на основе опорных выборок (т.е. прогнозных L0-выборок) в опорном L0-кадре, извлекаемом на основе L0-вектора движения, и опорных выборок (т.е. прогнозных L1-выборок) в опорном L1-кадре, извлекаемом на основе L1-вектора движения. Так же, оборудование декодирования может извлекать детализированный L0-вектор движения и детализированный L1-вектор движения на основе выборочной позиции, соответствующей минимальной SAD. Таким образом, детализированный L0-вектор движения может представлять собой вектор движения, связанный с указанием выборочного местоположения, соответствующего минимальной SAD в опорном L0-кадре, и детализированный L1-вектор движения может представлять собой вектор движения, связанный с указанием выборочного местоположения, соответствующего минимальной SAD в опорном L1-кадре. Поскольку процесс извлечения детализированного вектора движения посредством применения DMVR описывается подробно со ссылкой на фиг. 4 и 5, его пояснение опускается далее.[328] In an embodiment, the decoding equipment may extract the minimum sum of absolute differences (SAD) based on the reference samples (i.e., L0 prediction samples) in the L0 reference frame extracted based on the L0 motion vector, and the reference samples ( i.e., predictive L1 samples) in a reference L1 frame extracted based on the L1 motion vector. Also, the decoding equipment can extract the detailed L0 motion vector and the detailed L1 motion vector based on the sample position corresponding to the minimum SAD. Thus, the detailed L0 motion vector may be a motion vector associated with indicating a sample location corresponding to a minimum SAD in the L0 reference frame, and the detailed L1 motion vector may be a motion vector associated with indicating a sample location corresponding to the minimum SAD in the reference L1 frame. Since the process of extracting detailed motion vector by applying DMVR is described in detail with reference to FIG. 4 and 5, its explanation is omitted below.

[329] Оборудование декодирования может извлекать прогнозные выборки для текущего блока на основе прогнозных L0-выборок, извлекаемых на основе детализированного L0-вектора движения, и прогнозных L1-выборок, извлекаемых на основе детализированного L1-вектора движения (S1110).[329] The decoding equipment may extract prediction samples for the current block based on L0 prediction samples extracted based on the detailed L0 motion vector and L1 prediction samples extracted based on the detailed L1 motion vector (S1110).

[330] Здесь, прогнозные L0-выборки извлекаются на основе опорных выборок, указываемых посредством детализированного L0-вектора движения в опорном L0-кадре, и прогнозные L1-выборки извлекаются на основе опорных выборок, указываемых посредством детализированного L1-вектора движения в опорном L1-кадре.[330] Here, L0 prediction samples are extracted based on reference samples indicated by the detailed L0 motion vector in the L0 reference frame, and L1 prediction samples are extracted based on reference samples indicated by the detailed L1 motion vector in the L1 reference frame. frame.

[331] При извлечении прогнозных выборок, оборудование декодирования может применять BDOF-процесс к текущему блоку для детализации прогнозных выборок.[331] When retrieving prediction samples, the decoding hardware may apply a BDOF process to the current block to refine the prediction samples.

[332] Например, оборудование декодирования может определять то, следует или нет применять BDOF-процесс, на основе того, являются или нет идентичными первая POC-разность между текущим кадром и опорным L0-кадром и вторая POC-разность между текущим кадром и опорным L1-кадром. Здесь, номер в последовательности кадров (POC) может представлять порядок, выводимый из DPB. Первый POC может представлять расстояние между текущим кадром и опорным L0-кадром и может вычисляться с использованием, например, функции DiffPicOrderCnt(currPic, RefPicList0[refIdxL0]). Второй POC может представлять расстояние между текущим кадром и опорным L1-кадром и может вычисляться с использованием, например, функции DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]).[332] For example, the decoding equipment may determine whether or not to apply the BDOF process based on whether the first POC difference between the current frame and the L0 reference frame and the second POC difference between the current frame and the L1 reference are identical. -frame. Here, the number in the sequence of frames (POC) may represent the order output from the DPB. The first POC may represent the distance between the current frame and the L0 reference frame and may be calculated using, for example, the function DiffPicOrderCnt(currPic, RefPicList0[refIdxL0]). The second POC may represent the distance between the current frame and the L1 reference frame and may be calculated using, for example, the function DiffPicOrderCnt(currPic, RefPicList1[refIdxL1]).

[333] В этом случае, оборудование декодирования может определять то, следует или нет применять BDOF к текущему блоку, посредством использования различных условий применения, описанных в вышеприведенных таблицах 1-30.[333] In this case, the decoding equipment can determine whether or not to apply BDOF to the current block by using various application conditions described in Tables 1-30 above.

[334] В варианте осуществления, оборудование декодирования может извлекать информацию BDOF-флага, связанную с указанием того, применяется BDOF или нет, и может определять то, следует или нет применять BDOF, на основе информации BDOF-флага. Например, когда первая POC-разность и вторая POC-разность являются идентичными, оборудование декодирования может задавать значение (например, "истина" или 1) информации BDOF-флага, чтобы указывать то, что BDOF применяется к текущему блоку. Дополнительно, согласно варианту осуществления, оборудование декодирования может извлекать информацию BDOF-флага посредством определения того, удовлетворяются или нет такие условия, как случай, в котором взаимное прогнозирование на основе BDOF активируется, случай, в котором бипрогнозирование, выполняемое на основе опорного L0-кадра и опорного L1-кадра, применяется к текущему блоку, случай, в котором аффинный режим не применяется к текущему блоку, случай, в котором режим объединения на основе субблоков не применяется к текущему блоку, случай, в котором режим прогнозирования, в котором комбинируются взаимное прогнозирование и внутреннее прогнозирование, не применяется к текущему блоку, случай, в котором значение информации весового индекса бипрогнозирования текущего блока равно 0, случай, в котором высота текущего блока равна или выше 8, случай, в котором ширина текущего блока равна или выше 8, случай, в котором высота x ширина текущего блока больше 8×8. Например, если все вышеуказанные условия удовлетворяются, значение информации BDOF-флага может задаваться как "истина" или 1, и если, по меньшей мере, одно из вышеуказанных условий не удовлетворяется, значение информации BDOF-флага может задаваться как "ложь" или 0.[334] In an embodiment, the decoding equipment can extract BDOF flag information associated with indicating whether BDOF is applied or not, and can determine whether BDOF should be applied or not based on the BDOF flag information. For example, when the first POC difference and the second POC difference are identical, the decoding equipment may set a value (eg, true or 1) of the BDOF flag information to indicate that BDOF is applied to the current block. Further, according to the embodiment, the decoding equipment can extract BDOF flag information by determining whether conditions such as the case in which BDOF-based inter-prediction is activated, the case in which bi-prediction performed based on the L0 reference frame, and reference L1 frame is applied to the current block, a case in which the affine mode is not applied to the current block, a case in which the sub-block-based aggregation mode is not applied to the current block, a case in which the prediction mode is in which mutual prediction and internal prediction, does not apply to the current block, the case in which the biprediction weight index information value of the current block is 0, the case in which the height of the current block is equal to or greater than 8, the case in which the width of the current block is equal to or greater than 8, the case in where the height x width of the current block is greater than 8x8. For example, if all of the above conditions are satisfied, the value of the BDOF flag information may be set to true or 1, and if at least one of the above conditions is not satisfied, the value of the BDOF flag information may be set to false or 0.

[335] Здесь, при извлечении информации BDOF-флага, упомянутые выше условия BDOF-применения являются просто примерными, и могут использоваться различные комбинации условий таблиц 1-30.[335] Here, when retrieving BDOF flag information, the above-mentioned BDOF application conditions are merely exemplary, and various combinations of the conditions of Tables 1 to 30 may be used.

[336] Когда BDOF-процесс применяется к текущему блоку на основе значения информации BDOF-флага (например, когда значение информации BDOF-флага извлекается ка "истина" или 1), оборудование декодирования может вычислять градиент для прогнозных L0-выборок, извлекаемых на основе детализированного L0-вектора движения, и градиент для прогнозных L1-выборок, извлекаемых на основе детализированного L1-вектора движения. Так же, оборудование декодирования может в завершение извлекать (детализированные) прогнозные выборки на основе градиента для прогнозных L0-выборок и градиента для прогнозных L1-выборок.[336] When a BDOF process is applied to the current block based on the value of the BDOF flag information (eg, when the value of the BDOF flag information is extracted to true or 1), the decoding equipment may calculate a gradient for the predicted L0 samples extracted based on detailed L0 motion vector, and a gradient for predictive L1 samples extracted based on the detailed L1 motion vector. Also, the decoding equipment may finally extract (fine-grained) prediction samples based on the gradient for the L0 prediction samples and the gradient for the L1 prediction samples.

[337] Оборудование декодирования может формировать восстановленные выборки для текущего блока на основе прогнозных выборок (S1120).[337] The decoding equipment may generate reconstructed samples for the current block based on the predicted samples (S1120).

[338] В варианте осуществления, оборудование декодирования может непосредственно использовать прогнозные выборки в качестве восстановленных выборок согласно режиму прогнозирования или может формировать восстановленные выборки посредством добавления остаточных выборок в прогнозные выборки.[338] In an embodiment, the decoding equipment may directly use the predicted samples as reconstructed samples according to a prediction mode, or may generate reconstructed samples by adding residual samples to the predicted samples.

[339] Если остаточная выборка для текущего блока существует, оборудование декодирования может принимать информацию относительно остатка для текущего блока. Информация относительно остатка может включать в себя коэффициенты преобразования относительно остаточных выборок. Оборудование декодирования может извлекать остаточные выборки (или массив остаточных выборок) для текущего блока на основе остаточной информации. Оборудование декодирования может формировать восстановленные выборки на основе прогнозных выборок и остаточных выборок и может извлекать восстановленный блок или восстановленный кадр на основе восстановленных выборок.[339] If a residual sample for the current block exists, the decoding equipment may receive information regarding the residual for the current block. The residual information may include conversion factors regarding the residual samples. The decoding equipment may extract residual samples (or an array of residual samples) for the current block based on the residual information. The decoding equipment may generate reconstructed samples based on the prediction samples and residual samples, and may extract a reconstructed block or a reconstructed frame based on the reconstructed samples.

[340] В вышеуказанных вариантах осуществления, хотя способы описываются на основе блок-схем последовательности операций способа в форме последовательности этапов или единиц, варианты осуществления этого документа не ограничены порядком этапов, и некоторые этапы могут выполняться в порядке, отличающемся от порядка других этапов, либо могут выполняться одновременно с другими этапами. Кроме того, специалисты в данной области техники должны понимать, что этапы, показанные на блок-схеме последовательности операций способа, не являются единственно возможными, и этапы могут включать в себя дополнительные этапы, либо что один или более этапов на блок-схеме последовательности операций способа могут удаляться, без влияния на объем прав этого документа.[340] In the above embodiments, although the methods are described based on process flow diagrams in the form of a sequence of steps or units, embodiments of this document are not limited to the order of the steps, and some steps may be performed in an order different from the order of other steps, or can be performed simultaneously with other steps. In addition, those skilled in the art will understand that the steps shown in the flowchart are not the only possible ones, and the steps may include additional steps, or that one or more steps in the flowchart can be deleted without affecting the scope of rights of this document.

[341] Вышеуказанный способ согласно этому документу может реализовываться в программной форме, и оборудование кодирования и/или оборудование декодирования согласно этому документу может включаться в оборудование для выполнения обработки изображений, например, телевизор, компьютер, смартфон, абонентскую приставку или устройство отображения.[341] The above method according to this document may be implemented in software form, and the encoding equipment and/or decoding equipment according to this document may be included in equipment for performing image processing, such as a television, computer, smartphone, set-top box or display device.

[342] В этом документе, когда варианты осуществления реализуются в программной форме, вышеуказанный способ реализовываться как модуль (процесс, функция и т.д.) для выполнения вышеуказанной функции. Модуль может сохраняться в запоминающем устройстве и выполняться посредством процессора. Запоминающее устройство может размещаться внутри или снаружи процессора и соединяться с процессором посредством различных известных средств. Процессор может включать в себя специализированные интегральные схемы (ASIC), другие наборы микросхем, логические схемы и/или устройства обработки данных. Запоминающее устройство может включать в себя постоянное запоминающее устройство (ROM), оперативное запоминающее устройство (RAM), флэш-память, карты памяти, носители хранения данных и/или другие устройства хранения данных. Таким образом, варианты осуществления, описанные в этом документе могут реализовываться и выполняться на/в процессоре, микропроцессоре, контроллере или микросхеме. Например, функциональные модули, проиллюстрированные на чертежах, могут реализовываться и выполняться на/в компьютере, процессоре, микропроцессоре, контроллере или микросхеме. В этом случае, информация относительно инструкций или алгоритма для реализации может сохраняться на цифровом носителе хранения данных.[342] In this document, when embodiments are implemented in software form, the above method is implemented as a module (process, function, etc.) for performing the above function. The module may be stored in a storage device and executed by a processor. The storage device may be located inside or outside the processor and coupled to the processor through various known means. The processor may include application specific integrated circuits (ASICs), other chipsets, logic circuits, and/or data processing devices. The storage device may include read-only memory (ROM), random access memory (RAM), flash memory, memory cards, storage media, and/or other storage devices. Thus, the embodiments described herein may be implemented and executed on/on a processor, microprocessor, controller, or chip. For example, the functional modules illustrated in the drawings may be implemented and executed on a computer, processor, microprocessor, controller, or chip. In this case, information regarding the instructions or algorithm to be implemented may be stored in a digital storage medium.

[343] Кроме того, оборудование декодирования и оборудование кодирования, к которым применяется этот документ, могут включаться в мультимедийное широковещательное приемо-передающее устройство, терминал мобильной связи, видеоустройство системы домашнего кинотеатра, видеоустройство системы цифрового кинотеатра, камеру для мониторинга, диалоговое видеоустройство, устройство связи в реальном времени, к примеру, видеосвязи, мобильное устройство потоковой передачи, носитель хранения данных, записывающую видеокамеру, устройство предоставления услуг на основе технологии "видео по запросу (VoD)", видеоустройство поверх сетей (OTT), устройство предоставления услуг потоковой передачи по Интернету, трехмерное видеоустройство, устройство в стиле виртуальной реальности (VR), устройство в стиле дополненной реальности (AR), устройство системы видеотелефонии, терминал в средстве транспортировки (например, терминал в транспортном средстве (в том числе в автономном транспортном средстве), терминал в воздушном судне и терминал в морском судне) и медицинское видеоустройство и могут использоваться для того, чтобы обрабатывать видеосигнал или сигнал данных. Например, видеоустройство поверх сетей (OTT) может включать в себя игровую консоль, Blu-Ray-проигрыватель, телевизор с доступом в Интернет, систему домашнего кинотеатра, смартфон, планшетный PC и цифровое записывающее видеоустройство (DVR).[343] In addition, the decoding equipment and encoding equipment to which this document applies may be included in a multimedia broadcasting device, a mobile communication terminal, a home theater system video device, a digital cinema system video device, a monitoring camera, an interactive video device, a real-time communications such as video communications, mobile streaming device, storage medium, video recording camera, video-on-demand (VoD) service delivery device, over-the-top (OTT) video device, over-the-top streaming service device Internet, three-dimensional video device, virtual reality (VR) style device, augmented reality (AR) style device, video telephony system device, terminal in a vehicle (for example, a terminal in a vehicle (including an autonomous vehicle), terminal in aircraft and marine terminal) and medical video device and can be used to process a video or data signal. For example, an over-the-top (OTT) video device may include a game console, Blu-ray player, Internet-enabled television, home theater system, smartphone, tablet PC, and digital video recorder (DVR).

[344] Кроме того, способ обработки, к которому применяется этот документ, может создаваться в форме программы, выполняемой посредством компьютера, и может сохраняться на машиночитаемом носителе записи. Мультимедийные данные, имеющие структуру данных согласно этому документу, также могут сохраняться на машиночитаемом носителе записи. Машиночитаемый носитель записи включает в себя все типы устройств хранения данных, на которых сохраняются машиночитаемые данные. Машиночитаемый носитель может включать в себя, например, Blu-Ray-диск (BD), универсальную последовательную шину (USB), ROM, PROM, EEPROM, EEPROM, RAM, CD-ROM, магнитную ленту, гибкий диск и оптическое устройство хранения данных. Кроме того, машиночитаемый носитель записи включает в себя среду, реализованную в форме несущих (например, при передаче через Интернет). Кроме того, поток битов, сформированный с использованием способа кодирования, может сохраняться на машиночитаемом носителе записи или может передаваться по сетям проводной и беспроводной связи.[344] Moreover, the processing method to which this document applies may be created in the form of a program executed by a computer and may be stored on a computer-readable recording medium. Multimedia data having a data structure according to this document can also be stored on a computer-readable recording medium. A computer-readable recording medium includes all types of storage devices on which computer-readable data is stored. The computer-readable medium may include, for example, a Blu-ray disc (BD), a universal serial bus (USB), a ROM, a PROM, an EEPROM, an EEPROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, and an optical storage device. In addition, the computer-readable recording medium includes a medium implemented in the form of carriers (eg, when transmitted over the Internet). In addition, the bit stream generated using the encoding method may be stored in a computer-readable recording medium or may be transmitted over wired and wireless communication networks.

[345] Кроме того, вариант осуществления этого документа может реализовываться как компьютерный программный продукт с помощью программного кода. Программный код может выполняться посредством компьютера согласно варианту осуществления этого документа. Программный код может сохраняться на носителе, считываемом посредством компьютера.[345] Additionally, an embodiment of this document may be implemented as a computer program product using program code. The program code may be executed by a computer according to an embodiment of this document. The program code may be stored on a computer readable medium.

[346] Фиг. 12 иллюстрирует пример системы потоковой передачи контента, к которой могут применяться варианты осуществления, раскрытые в этом документе.[346] FIG. 12 illustrates an example of a content streaming system to which the embodiments disclosed herein may be applied.

[347] Ссылаясь на фиг. 12, система потоковой передачи контента, к которой применяется вариант(ы) осуществления настоящего документа, может включать в себя, главным образом, сервер кодирования, потоковый сервер, веб-сервер, хранилище мультимедиа, пользовательское устройство и устройство ввода мультимедиа.[347] Referring to FIG. 12, the content streaming system to which the embodiment(s) of this document applies may mainly include an encoding server, a streaming server, a web server, a media storage, a user device, and a media input device.

[348] Сервер кодирования сжимает контент, вводимый из устройств ввода мультимедиа, таких как смартфон, камера, записывающая видеокамера и т.д., в цифровые данные для того, чтобы формировать поток битов и передавать поток битов на потоковый сервер. В качестве другого примера, когда устройства ввода мультимедиа, такие как смартфоны, камеры, записывающие видеокамеры и т.д., непосредственно формируют поток битов, сервер кодирования может опускаться.[348] The encoding server compresses content input from media input devices such as a smartphone, camera, video recorder, etc. into digital data to generate a bitstream and transmit the bitstream to the streaming server. As another example, when media input devices such as smartphones, cameras, video recorders, etc. directly generate a bit stream, the encoding server may be omitted.

[349] Поток битов может формироваться посредством способа кодирования или способа формирования потока битов, к которому применяется вариант(ы) осуществления настоящего документа, и потоковый сервер может временно сохранять поток битов в процессе передачи или приема потока битов.[349] The bitstream may be generated by an encoding method or a bitstream generation method to which the embodiment(s) of this document applies, and the streaming server may temporarily store the bitstream while transmitting or receiving the bitstream.

[350] Потоковый сервер передает мультимедийные данные в пользовательское устройство на основе запроса пользователя через веб-сервер, и веб-сервер служит в качестве среды для информирования пользователя в отношении услуги. Когда пользователь запрашивает требуемую услугу из веб-сервера, веб-сервер доставляет ее на потоковый сервер, и потоковый сервер передает мультимедийные данные пользователю. В этом случае, система потоковой передачи контента может включать в себя отдельный сервер управления. В этом случае, сервер управления служит для того, чтобы управлять командой/ответом между устройствами в системе потоковой передачи контента.[350] The streaming server transmits multimedia data to the user device based on the user's request through the web server, and the web server serves as a medium for informing the user regarding the service. When a user requests a required service from a web server, the web server delivers it to the streaming server and the streaming server transmits the media data to the user. In this case, the content streaming system may include a separate control server. In this case, the control server serves to manage the command/response between devices in the content streaming system.

[351] Потоковый сервер может принимать контент из хранилища мультимедиа и/или сервера кодирования. Например, когда контент принимается из сервера кодирования, контент может приниматься в реальном времени. В этом случае, чтобы предоставлять плавную услугу потоковой передачи, потоковый сервер может сохранять поток битов в течение предварительно определенного времени.[351] The streaming server may receive content from a media storage and/or encoding server. For example, when content is received from an encoding server, the content may be received in real time. In this case, in order to provide a smooth streaming service, the streaming server may store the bit stream for a predetermined time.

[352] Примеры пользовательского устройства могут включать в себя мобильный телефон, смартфон, переносной компьютер, цифровой широковещательный терминал, персональное цифровое устройство (PDA), портативный мультимедийный проигрыватель (PMP), навигационное устройство, грифельный планшетный PC, планшетные PC, ультрабуки, носимые устройства (например, интеллектуальные часы, интеллектуальные очки, наголовные дисплеи), цифровые телевизоры, настольные компьютеры, систему цифровых информационных табло и т.п.[352] Examples of a user device may include a mobile phone, a smartphone, a laptop computer, a digital broadcast terminal, a personal digital assistant (PDA), a portable media player (PMP), a navigation device, a tablet PC, tablet PCs, ultrabooks, wearable devices (such as smart watches, smart glasses, head-mounted displays), digital TVs, desktop computers, digital signage system, etc.

[353] Каждый сервер в системе потоковой передачи контента может работать в качестве распределенного сервера, причем в этом случае данные, принимаемые из каждого сервера, могут распределяться.[353] Each server in a content streaming system may operate as a distributed server, in which case data received from each server may be distributed.

Claims (27)

1. Способ декодирования изображений, осуществляемый посредством оборудования декодирования, при этом способ декодирования изображений содержит этапы, на которых:1. A method for decoding images carried out by means of decoding equipment, wherein the method for decoding images comprises the steps of: извлекают L0-вектор движения и L1-вектор движения текущего блока;extracting the L0 motion vector and L1 motion vector of the current block; извлекают детализированный L0-вектор движения и детализированный L1-вектор движения посредством применения детализации векторов движения на стороне декодера (DMVR) на основе L0-вектора движения и L1-вектора движения текущего блока;extracting the detailed L0 motion vector and the detailed L1 motion vector by applying decoder-side motion vector detail (DMVR) based on the L0 motion vector and L1 motion vector of the current block; извлекают прогнозные выборки для текущего блока на основе прогнозных L0-выборок, извлеченных на основе детализированного L0-вектора движения, и прогнозных L1-выборок, извлеченных на основе детализированного L1-вектора движения; иextracting prediction samples for the current block based on L0 prediction samples extracted based on the detailed L0 motion vector and L1 prediction samples extracted based on the detailed L1 motion vector; And формируют восстановленные выборки для текущего блока на основе прогнозных выборок,generate reconstructed samples for the current block based on predicted samples, при этом прогнозные L0-выборки извлекаются на основе опорного L0-кадра и детализированного L0-вектора движения, и прогнозные L1-выборки извлекаются на основе опорного L1-кадра и детализированного L1-вектора движения,wherein the L0 prediction samples are extracted based on the L0 reference frame and the detailed L0 motion vector, and the L1 prediction samples are extracted based on the L1 reference frame and the detailed L1 motion vector, при этом прогнозные выборки для текущего блока извлекают путем применения двунаправленного оптического потока (BDOF) к текущему блоку на основе информации BDOF-флага, указывающей следует ли применять BDOF к текущему блоку,wherein predictive samples for the current block are retrieved by applying bidirectional optical flow (BDOF) to the current block based on BDOF flag information indicating whether BDOF should be applied to the current block, при этом информация BDOF-флага извлекается на основе того, являются или нет первая разность номеров в последовательности кадров (POC) между текущим кадром и опорным L0-кадром и вторая POC-разность между текущим кадром и опорным L1-кадром идентичными, и является или нет значение информации весового индекса бипрогнозирования текущего блока равным 0, иwherein the BDOF flag information is extracted based on whether or not the first POC difference between the current frame and the L0 reference frame and the second POC difference between the current frame and the L1 reference frame are identical, and whether or not the biprediction weight index information value of the current block is 0, and при этом на основе случая, в котором первая POC-разность и вторая POC-разность являются идентичными, и значение информации весового индекса бипрогнозирования текущего блока равно 0, значение информации BDOF-флага задается равным значению, связанному с применением BDOF к текущему блоку.wherein, based on the case in which the first POC difference and the second POC difference are identical and the value of the bi-prediction weight index information of the current block is 0, the value of the BDOF flag information is set to a value associated with applying BDOF to the current block. 2. Способ кодирования изображений, осуществляемый посредством оборудования кодирования, при этом способ кодирования изображений содержит этапы, на которых:2. An image encoding method carried out by means of encoding equipment, wherein the image encoding method comprises the steps of: извлекают L0-вектор движения и L1-вектор движения текущего блока;extracting the L0 motion vector and L1 motion vector of the current block; извлекают детализированный L0-вектор движения и детализированный L1-вектор движения посредством применения детализации векторов движения на стороне декодера (DMVR) на основе L0-вектора движения и L1-вектора движения текущего блока;extracting the detailed L0 motion vector and the detailed L1 motion vector by applying decoder-side motion vector detail (DMVR) based on the L0 motion vector and L1 motion vector of the current block; извлекают прогнозные выборки для текущего блока на основе прогнозных L0-выборок, извлеченных на основе детализированного L0-вектора движения, и прогнозных L1-выборок, извлеченных на основе детализированного L1-вектора движения;extracting prediction samples for the current block based on L0 prediction samples extracted based on the detailed L0 motion vector and L1 prediction samples extracted based on the detailed L1 motion vector; извлекают остаточные выборки на основе прогнозных выборок; иextracting residual samples based on the predictive samples; And кодируют информацию изображений, включающую в себя информацию относительно остаточных выборок,encode image information including information regarding residual samples, при этом прогнозные L0-выборки извлекаются на основе опорного L0-кадра и детализированного L0-вектора движения, и прогнозные L1-выборки извлекаются на основе опорного L1-кадра и детализированного L1-вектора движения,wherein the L0 prediction samples are extracted based on the L0 reference frame and the detailed L0 motion vector, and the L1 prediction samples are extracted based on the L1 reference frame and the detailed L1 motion vector, при этом прогнозные выборки для текущего блока извлекают путем применения двунаправленного оптического потока (BDOF) к текущему блоку на основе информации BDOF-флага, указывающей следует ли применять BDOF к текущему блоку,wherein predictive samples for the current block are retrieved by applying bidirectional optical flow (BDOF) to the current block based on BDOF flag information indicating whether BDOF should be applied to the current block, при этом информация BDOF-флага извлекается на основе того, являются или нет первая разность номеров в последовательности кадров (POC) между текущим кадром и опорным L0-кадром и вторая POC-разность между текущим кадром и опорным L1-кадром идентичными, и является или нет значение информации весового индекса бипрогнозирования текущего блока равным 0, иwherein the BDOF flag information is extracted based on whether or not the first POC difference between the current frame and the L0 reference frame and the second POC difference between the current frame and the L1 reference frame are identical, and whether or not the biprediction weight index information value of the current block is 0, and при этом на основе случая, когда первая POC-разность и вторая POC-разность являются идентичными, и значение информации весового индекса бипрогнозирования текущего блока равно 0, значение информации BDOF-флага задается равным значению, связанному с применением BDOF к текущему блоку.wherein, based on the case where the first POC difference and the second POC difference are identical and the value of the bi-prediction weight index information of the current block is 0, the value of the BDOF flag information is set to a value associated with applying BDOF to the current block. 3. Способ для передачи данных для получения информации изображений, при этом способ содержит этапы, на которых:3. A method for transmitting data to obtain image information, the method comprising the steps of: получают поток битов для изображения, при этом поток битов формируется на основе этапов, на которых:obtain a bitstream for an image, wherein the bitstream is generated based on the steps of: извлекают L0-вектор движения и L1-вектор движения текущего блока, извлекают детализированный L0-вектор движения и детализированный L1-вектор движения посредством применения детализации векторов движения на стороне декодера (DMVR) на основе L0-вектора движения и L1-вектора движения текущего блока, извлекают прогнозные выборки для текущего блока на основе прогнозных L0-выборок, извлекаемых на основе детализированного L0-вектора движения, и прогнозных L1-выборок, извлекаемых на основе детализированного L1-вектора движения, извлекают остаточные выборки на основе прогнозных выборок, кодируют информацию изображений, включающую в себя информацию относительно остаточных выборок; extracting the L0 motion vector and L1 motion vector of the current block, extracting the detailed L0 motion vector and the detailed L1 motion vector by applying decoder-side motion vector detail (DMVR) based on the L0 motion vector and L1 motion vector of the current block, extracting predictive samples for the current block based on predictive L0 samples extracted based on the detailed L0 motion vector and predictive L1 samples extracted based on the detailed L1 motion vector, extracting residual samples based on the predictive samples, encoding image information including includes information regarding residual samples; передают данные, содержащие поток битов,transmit data containing a stream of bits, при этом прогнозные L0-выборки извлекаются на основе опорного L0-кадра и детализированного L0-вектора движения, и прогнозные L1-выборки извлекаются на основе опорного L1-кадра и детализированного L1-вектора движения,wherein the L0 prediction samples are extracted based on the L0 reference frame and the detailed L0 motion vector, and the L1 prediction samples are extracted based on the L1 reference frame and the detailed L1 motion vector, при этом прогнозные выборки для текущего блока извлекают путем применения двунаправленного оптического потока (BDOF) к текущему блоку на основе информации BDOF-флага, указывающей следует ли применять BDOF к текущему блоку,wherein predictive samples for the current block are retrieved by applying bidirectional optical flow (BDOF) to the current block based on BDOF flag information indicating whether BDOF should be applied to the current block, при этом информация BDOF-флага извлекается на основе того, являются или нет первая разность номеров в последовательности кадров (POC) между текущим кадром и опорным L0-кадром и вторая POC-разность между текущим кадром и опорным L1-кадром идентичными, и является или нет значение информации весового индекса бипрогнозирования текущего блока равным 0, иwherein the BDOF flag information is extracted based on whether or not the first POC difference between the current frame and the L0 reference frame and the second POC difference between the current frame and the L1 reference frame are identical, and whether or not the biprediction weight index information value of the current block is 0, and при этом на основе случая, когда первая POC-разность и вторая POC-разность являются идентичными, и значение информации весового индекса бипрогнозирования текущего блока равно 0, значение информации BDOF-флага задается равным значению, связанному с применением BDOF к текущему блоку.wherein, based on the case where the first POC difference and the second POC difference are identical and the value of the bi-prediction weight index information of the current block is 0, the value of the BDOF flag information is set to a value associated with applying BDOF to the current block.
RU2022121502A 2019-03-12 2020-02-11 Method and device for mutual prediction based on details of motion vectors on the side of the decoder (dmvr) and bidirectional optical flow (bdof) RU2803564C2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US62/817,504 2019-03-12

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
RU2021129471A Division RU2777969C1 (en) 2019-03-12 2020-02-11 Method and device for mutual forecasting based on dvd and bdof

Publications (2)

Publication Number Publication Date
RU2022121502A RU2022121502A (en) 2022-08-22
RU2803564C2 true RU2803564C2 (en) 2023-09-15

Family

ID=

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2538317C2 (en) * 2010-04-22 2015-01-10 Медиатэк, Инк. Motion prediction method and video encoding method
WO2018028559A1 (en) * 2016-08-08 2018-02-15 Mediatek Inc. Pattern-based motion vector derivation for video coding
WO2018175720A1 (en) * 2017-03-22 2018-09-27 Qualcomm Incorporated Constraining motion vector information derived by decoder-side motion vector derivation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2538317C2 (en) * 2010-04-22 2015-01-10 Медиатэк, Инк. Motion prediction method and video encoding method
WO2018028559A1 (en) * 2016-08-08 2018-02-15 Mediatek Inc. Pattern-based motion vector derivation for video coding
WO2018175720A1 (en) * 2017-03-22 2018-09-27 Qualcomm Incorporated Constraining motion vector information derived by decoder-side motion vector derivation

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
S. SETHURAMAN, Non-CE9: Co-existence analysis for DMVR with BDOF, Joint Video Experts Team (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, JVET-M0223-v413th, Meeting, Marrakech, 9-18 January 2019. *
SEMIH ESENLIK et al., CE9: DMVR with Bilateral Matching (Test2.9), Joint Video Experts Team (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, JVET-K0217_v1, 11th Meeting, Ljubljana, 10-18 July 2018. *

Similar Documents

Publication Publication Date Title
US11252415B2 (en) DMVR-based inter-prediction method and device
US11516490B2 (en) Method and device for inter predicting on basis of DMVR
US12003735B2 (en) DMVR-based inter-prediction method and device
US11451820B2 (en) DMVR-based inter-prediction method and device
US11876972B2 (en) BDOF-based inter prediction method and device
JP7404481B2 (en) Image decoding method and device based on sub-block motion prediction in image coding system
US11496743B2 (en) Inter-prediction method and device based on DMVR and BDOF
JP2024042110A (en) Affine motion prediction-based image decoding method and apparatus using affine mvp candidate list in image coding system
US20240022713A1 (en) Sbtmvp-based inter prediction method and apparatus
US11949851B2 (en) Inter prediction method and apparatus using CPR-based MMVD
US20220141485A1 (en) Intra block coding-based video or image coding
US11659166B2 (en) Method and apparatus for coding image by using MMVD based on CPR
RU2803564C2 (en) Method and device for mutual prediction based on details of motion vectors on the side of the decoder (dmvr) and bidirectional optical flow (bdof)
RU2777969C1 (en) Method and device for mutual forecasting based on dvd and bdof
RU2820148C2 (en) Image encoding and decoding equipment and image data transmission equipment
RU2816199C1 (en) Video or image encoding based on intra-block encoding
RU2803197C1 (en) Method and device for encoding/decoding images based on sub-frames and method for transmitting a bit stream
RU2793902C1 (en) Image decoding method to perform inter frame prediction when prediction mode for current block cannot be selected and device for this method