Image coding method and apparatus using motion vectors

Efficient inter prediction in image/video coding systems, utilizing motion vector differentials and SMVD reference indexing, addresses the need for improved compression efficiency in high-resolution and immersive media, reducing transmission and storage costs.

JP7818128B2Active Publication Date: 2026-02-19LG ELECTRONICS INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2025068067
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-06-24
Filing Date
2025-04-17
Publication Date
2026-02-19
Estimated Expiration
2040-06-24

AI Technical Summary

Technical Problem

The increasing demand for high-resolution and high-quality images/videos, such as 4K or 8K UHD, VR, AR content, and holograms, necessitates the development of highly efficient image/video compression technologies to reduce transmission and storage costs while effectively handling various image characteristics.

Method used

A method and apparatus for efficient inter prediction in image/video coding systems, including signaling information about motion vector differentials, particularly L0 and L1 motion vector differentials, and performing SMVD reference indexing based on reference picture markings, especially using short-term reference pictures.

Benefits of technology

This approach improves overall image/video compression efficiency by enabling efficient signaling of motion vector differentials and reducing coding complexity, thereby enhancing inter prediction performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007818128000049
    Figure 0007818128000049
  • Figure 0007818128000050
    Figure 0007818128000050
  • Figure 0007818128000051
    Figure 0007818128000051
Patent Text Reader

Abstract

To provide an image decoding method.SOLUTION: A method includes the steps of: receiving image information from a bitstream, the image information including prediction related information including residual information and information on MVD; deriving an inter prediction mode for a current block in a current picture, on the basis of the prediction related information; deriving motion information for the current block on the basis of the inter prediction mode; generating prediction samples based on the motion information; generating residual samples based on the residual information; and generating reconstructed samples of the current picture on the basis of the prediction samples and the residual samples. Symmetric motion vector difference reference indices are derived based on POC differences between the current picture and each of the short-term reference pictures. MVDL0 for L0 prediction is derived based on the information on MVD. MVDL1 for L1 prediction is derived based on MVDL0.SELECTED DRAWING: Figure 22
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This document relates to a method and apparatus for image coding using motion vectors. [Background technology]

[0002] In recent years, demand for high-resolution, high-quality images / videos, such as 4K or 8K or higher UHD (Ultra High Definition) images / videos, has been increasing in various fields. As the resolution and quality of image / video data increases, the amount of information or bits to be transmitted increases relatively compared to existing (traditional) image / video data. Therefore, when image data is transmitted using a medium such as an existing wired or wireless broadband line, or when image / video data is stored using an existing storage medium, transmission costs and storage costs increase.

[0003] In addition, interest in and demand for immersive media such as VR (Virtual Reality), AR (Artificial Reality) content, and holograms have increased in recent years, and the broadcast of images / videos with different image characteristics from real images, such as game images, is on the rise.

[0004] This necessitates the development of highly efficient image / video compression technologies to effectively compress and transmit, store, and play back high-resolution, high-quality image / video information that has the various characteristics described above.

[0005] In addition, inter-prediction in image / video coding may include a procedure for SMVD (Symmetric Motion Vector Difference) reference indexing and / or a procedure for MMVD (Merge Motion Vector Difference), and there is discussion of techniques for performing the above procedures taking into account reference picture marking (e.g., short-term or long-term reference). Summary of the Invention [Means for solving the problem]

[0006] According to one embodiment of this document, a method and apparatus for increasing image / video coding efficiency is provided.

[0007] According to one embodiment of this document, a method and apparatus for efficient inter prediction in an image / video coding system is provided.

[0008] According to one embodiment of the present document, a method and apparatus are provided for signaling information about motion vector differentials in inter prediction.

[0009] According to one embodiment of this document, a method and apparatus are provided for signaling information about L0 motion vector differential and L1 motion vector differential when bi-prediction is applied to a current (present) block.

[0010] According to an embodiment of the present document, a method and apparatus for signaling an SMVD flag is provided.

[0011] According to one embodiment of this document, a prediction procedure may be performed based on the type of reference picture for bi-prediction.

[0012] According to one embodiment of this document, a procedure for SMVD reference indexes may be performed based on reference picture markings.

[0013] According to one embodiment of this document, the procedure for SMVD reference indexes may be performed using short-term reference pictures (pictures marked as being used for short-term referencing).

[0014] According to one embodiment of the present document, there is provided a video / image decoding method executed by a decoding device.

[0015] According to one embodiment of the present document, there is provided a decoding device for performing video / image decoding.

[0016] According to one embodiment of the present document, there is provided a video / image encoding method performed by an encoding device.

[0017] According to one embodiment of the present document, an encoding device for performing video / image encoding is provided.

[0018] According to one embodiment of the present document, there is provided a computer-readable digital storage medium having stored thereon encoded video / image information generated by the video / image encoding method disclosed in at least one of the embodiments of the present document.

[0019] According to one embodiment of the present document, there is provided a computer-readable digital storage medium having stored thereon encoded information or encoded video / image information that enables a decoding device to perform the video / image decoding method disclosed in at least one of the embodiments of the present document. [Effects of the Invention]

[0020] According to this document, it can improve the overall image / video compression efficiency.

[0021] According to this document, information about motion vector differentials can be signaled efficiently.

[0022] According to this document, when bi-prediction is applied to the current block, the L1 motion vector differential can be derived efficiently.

[0023] According to this document, the information used to derive the L1 motion vector differential is signaled based on the type of reference picture, thus reducing coding complexity.

[0024] According to an embodiment of this document, efficient inter prediction can be performed by using short-term reference pictures for the derivation of reference picture indices for SMVD.

[0025] The effects that can be obtained through a specific example of this document are not limited to the effects listed above. For example, there may be various technical effects that a person having ordinary skill in the related art can understand or derive from this document. Therefore, the specific effects of this document are not limited to those explicitly described in this document, but may include various effects that can be understood or derive from the technical features of this document. [Brief explanation of the drawings]

[0026] [Figure 1] FIG. 1 illustrates a schematic diagram of an example of a video / image coding system to which embodiments of the present document can be applied. [Figure 2] FIG. 1 is a diagram illustrating the configuration of a video / image encoding device that can be applied to embodiments of the present document. [Figure 3] FIG. 1 is a diagram illustrating the configuration of a video / image decoding device that can be applied to embodiments of the present document. [Figure 4] FIG. 1 illustrates an example of an inter-prediction based video / image encoding method. [Figure 5] FIG. 1 illustrates an example of an inter-prediction based video / image decoding method. [Figure 6] FIG. 10 is a diagram illustrating an example of an inter-prediction procedure. [Figure 7] FIG. 1 is a diagram illustrating a method for constructing a merge candidate list according to the present document. [Figure 8] FIG. 1 is a diagram illustrating a method for constructing an MVP candidate list according to the present document. [Figure 9] FIG. 1 is a diagram illustrating SMVD. [Figure 10] FIG. 10 is a diagram illustrating a method for deriving a motion vector in inter prediction. [Figure 11] FIG. 1 is a diagram showing the MVD derivation process of the MMVD according to one embodiment of the present document. [Figure 12] FIG. 10 is a diagram illustrating the MVD derivation process of the MMVD according to another embodiment of the present document. [Figure 13] FIG. 10 is a diagram illustrating the MVD derivation process of the MMVD according to another embodiment of the present document. [Figure 14] FIG. 1 illustrates the MVD derivation process of MMVD according to one embodiment of the present document. [Figure 15] FIG. 1 illustrates the MVD derivation process of MMVD according to one embodiment of the present document. [Figure 16] FIG. 1 illustrates SMVD according to one embodiment of the present document. [Figure 17] 1 is a flowchart illustrating a method for deriving an MMVD according to one embodiment of the present document. [Figure 18] 1 is a flowchart illustrating a method for deriving an MMVD according to one embodiment of the present document. [Figure 19] 1 is a flowchart illustrating a method for deriving an MMVD according to one embodiment of the present document. [Figure 20] FIG. 1 illustrates a schematic diagram of an example of a video / image encoding method and associated components according to an embodiment of the present document. [Figure 21] FIG. 1 illustrates a schematic diagram of an example of a video / image encoding method and associated components according to an embodiment of the present document. [Figure 22] FIG. 1 illustrates a schematic diagram of an example of an image / video decoding method and associated components according to an embodiment of the present document. [Figure 23] FIG. 1 illustrates a schematic diagram of an example of an image / video decoding method and associated components according to an embodiment of the present document. [Figure 24] FIG. 1 illustrates an example of a content streaming system to which embodiments disclosed herein can be applied. DETAILED DESCRIPTION OF THE INVENTION

[0027] Although the disclosure of this document may be modified in various ways and may have various embodiments, specific embodiments will be illustrated in the drawings and described in detail. However, this is not intended to limit the disclosure to the specific embodiments. The terms used in this document are used merely to describe specific embodiments and are not intended to limit the technical ideas of the embodiments in this document. A singular expression includes a plural expression unless the context clearly indicates otherwise. In this document, terms such as "comprise" or "have" are intended to specify the presence of features, numbers, steps, operations, components, parts, or combinations thereof described in the document, and should be understood not to preclude the possibility of the presence or addition of one or more different features, numbers, steps, operations, components, parts, or combinations thereof.

[0028] Meanwhile, each component in the drawings described in this document is shown independently for the convenience of describing different characteristic functions, and does not mean that each component is realized by separate hardware or software. For example, two or more components may be combined to form a single component, or a single component may be divided into multiple components. Embodiments in which each component is integrated and / or separated are also included within the scope of this document.

[0029] Hereinafter, embodiments of the present document will be described with reference to the accompanying drawings. Hereinafter, the same reference numerals may be used for the same components in the drawings, and duplicate descriptions of the same components may be omitted.

[0030] FIG. 1 illustrates schematically an example of a video / image coding system to which embodiments of the present document can be applied.

[0031] As shown in Figure 1, a video / image coding system may include a first device (source device) and a second device (receiving device). The source device may transmit encoded video / image information or data to the receiving device via a digital storage medium or a network in file or streaming form.

[0032] The source device may comprise a video source, an encoding device, and a transmitting unit. The receiving device may comprise a receiving unit, a decoding device, and a renderer. The encoding device may be referred to as a video / image encoding device, and the decoding device may be referred to as a video / image decoding device. The transmitter may be comprised in the encoding device. The receiver may be comprised in the decoding device. The renderer may comprise a display unit, which may be a separate device or an external component.

[0033] A video source can acquire video / images through a video / image capture, synthesis, or generation process. A video source can include a video / image capture device and / or a video / image generation device. A video / image capture device can include, for example, one or more cameras, a video / image archive containing previously captured video / images, etc. A video / image generation device can include, for example, a computer, a tablet, a smartphone, etc., and can (electronically) generate video / images. For example, a virtual video / image can be generated via a computer, etc., in which case the video / image capture process can be replaced by a process in which the associated data is generated.

[0034] An encoding device can encode input video / images. The encoding device can perform a series of steps, such as prediction, transformation, and quantization, for compression and coding efficiency. The encoded data (encoded video / image information) can be output in the form of a bitstream.

[0035] The transmitter may transmit the encoded video / image information or data output in the form of a bitstream to a receiver of a receiving device via a digital storage medium or a 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, and SSD. The transmitter may include elements for generating a media file in a predetermined file format and elements for transmission via a broadcasting / communication network. The receiver may receive / extract the bitstream and transmit it to a decoding device.

[0036] The decoding device can decode the video / image by performing a series of steps such as inverse quantization, inverse transform, prediction, etc., which correspond to the operations of the encoding device.

[0037] The renderer can render the decoded video / images, which can then be displayed via the display unit.

[0038] This document relates to video / image coding. For example, the methods / embodiments disclosed in this document may be applied to methods disclosed in the Versatile Video Coding (VVC) standard. The methods / embodiments disclosed in this document may also be applied to methods disclosed in the Essential Video Coding (EVC) standard, the AOMedia Video 1 (AV1) standard, the 2nd generation Audio Video coding Standard (AVS2), or next-generation video / image coding standards (e.g., H.267 or H.268).

[0039] This document presents various embodiments relating to video / image coding, which may be combined with one another unless otherwise stated.

[0040] In this document, video can refer to a collection of a series of images over time. A picture generally refers to a unit that shows one image at a specific time, and a slice / tile is a unit that constitutes part of a picture in coding. A slice / tile can include one or more Coding Tree Units (CTUs). A picture can be composed of one or more slices / tiles. A tile is a rectangular region of CTUs within a particular tile column and a particular tile row in a picture. The tile column is a rectangular region of CTUs, and the rectangular region has a height equal to the height of the picture, and the width can be specified by syntax elements in the picture parameter set. The tile row is a rectangular region of CTUs having a height (width) specified by syntax elements in the picture parameter set and a width equal to the width of the picture.A tile scan may indicate a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in CTU raster scan in a tile, whereas tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture. A slice includes an integer number of complete tiles or an integer number of consecutive complete CTU rows within a tile of a picture that may be exclusively contained in a single NAL unit.

[0041] On the other hand, a picture can be divided into two or more sub-pictures, where a sub-picture can be a rectangular region of one or more slices within a picture.

[0042] A pixel or a pel can refer to the smallest unit that constitutes one picture (or image). A term corresponding to a pixel can also be used: "sample." A sample can generally indicate a pixel or a pixel value, can indicate only a pixel / pixel value of a luma component, or can indicate only a pixel / pixel value of a chroma component.

[0043] A unit may refer to a basic unit of image processing. A unit may include at least one of a specific region of a picture and information related to the region. One unit may include one luma block and two chroma (e.g., cb, cr) blocks. The term unit may be mixed with terms such as block or area in some cases. In a general case, an M×N block may include a set (or array) of samples or transform coefficients consisting of M columns and N rows.

[0044] In this document, "A or B" may mean "only A," "only B," or "both A and B." In other words, in this document, "A or B" may be interpreted as "A and / or B." For example, in this document, "A, B or C" may mean "only A," "only B," "only C," or "any combination of A, B and C."

[0045] A slash ( / ) or a comma (comma) used in this document can mean "and / or." For example, "A / B" can mean "A and / or B." This means that "A / B" can mean "only A," "only B," or "both A and B." For example, "A, B, C" can mean "A, B, or C."

[0046] In this document, "at least one of A and B" can mean "only A," "only B," or "both A and B." Also, in this document, the expressions "at least one of A or B" and "at least one of A and / or B" can be interpreted as "at least one of A and B."

[0047] Also, in this document, "at least one of A, B and C" can mean "only A," "only B," "only C," or "any combination of A, B and C." Also, "at least one of A, B or C" or "at least one of A, B and / or C" can mean "at least one of A, B and C."

[0048] Furthermore, parentheses used in this document may mean "for example." Specifically, when "prediction (intra prediction)" is displayed, "intra prediction" may be suggested as an example of "prediction." In other words, "prediction" in this document is not limited to "intra prediction," and "intra prediction" may be suggested as an example of "prediction." Furthermore, when "prediction (i.e., intra prediction)" is displayed, "intra prediction" may be suggested as an example of "prediction."

[0049] Technical features described separately in one drawing in this document may be embodied separately or simultaneously.

[0050] 2 is a diagram illustrating the configuration of a video / image encoding device to which the embodiments of this document can be applied. Hereinafter, the encoding device may include an image encoding device and / or a video encoding device.

[0051] As shown in FIG. 2, the encoding device 200 may include an image partitioner 210, a predictor 220, a residual processor 230, an entropy encoder 240, an adder 250, a filter 260, and a memory 270. The predictor 220 may include an inter predictor 221 and an intra predictor 222. The residual processor 230 may include a transformer 232, a quantizer 233, a dequantizer 234, and an inverse transformer 235. The residual processor 230 may further include a subtractor 231. The adder 250 may be referred to as a reconstructor or a reconstructed block generator. The image dividing unit 210, the predicting unit 220, the residual processing unit 230, the entropy encoding unit 240, the adding unit 250, and the filtering unit 260 may be configured by one or more hardware components (e.g., an encoder chipset or a processor) depending on the embodiment. The memory 270 may include a decoded picture buffer (DPB) or may be configured by a digital storage medium. The above hardware components may further include the memory 270 as an internal / external component.

[0052] The image division unit 210 may divide an input image (or picture, frame) input to the encoding device 200 into one or more processing units. As an example, the processing units may be called coding units (CUs). In this case, the coding units may be recursively divided into coding tree units (CTUs) or largest coding units (LCUs) using a quad-tree, binary-tree, and ternary-tree (QTBTTT) structure. For example, one coding unit may be divided into multiple coding units of deeper depths based on a quad-tree structure, a binary tree structure, and / or a ternary tree structure. In this case, for example, the quad-tree structure may be applied first, and then the binary tree structure and / or the ternary tree structure may be applied. Alternatively, the binary tree structure may be applied first. A coding procedure according to the present disclosure may be performed based on a final coding unit that is not further divided. In this case, the largest coding unit may be used as the final coding unit based on coding efficiency according to image characteristics, or the coding unit may be recursively divided into coding units of lower depths as needed, and a coding unit of an optimal size may be used as the final coding unit. Here, the coding procedure may include procedures such as prediction, transformation, and restoration, which will be described later. As another example, the processing unit may further include a prediction unit (PU) or a transform unit (TU). In this case, the prediction unit and the transform unit may each be divided or partitioned from the final coding unit.The prediction unit may be a unit of sample prediction, and the transform unit may be a unit for deriving transform coefficients and / or a unit for deriving a residual signal from the transform coefficients.

[0053] The term "unit" can be used interchangeably with terms such as "block" or "area." In general, an MxN block can refer to a set of samples or transform coefficients consisting of M columns and N rows. A sample can generally refer to a pixel or a pixel value, or can refer to only a pixel / pixel value of a luma component, or only a pixel / pixel value of a chroma component. A sample can also be used as a term corresponding to a pixel or pel of one picture (or image).

[0054] The encoding apparatus 200 may subtract a prediction signal (predicted block, prediction sample array) output from the inter prediction unit 221 or the intra prediction unit 222 from an 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 the conversion unit 232. In this case, as shown in the figure, a unit in the encoder 200 that subtracts the prediction signal (predicted block, prediction sample array) from the input image signal (original block, original sample array) may be referred to as a subtraction unit 231. The prediction unit may perform prediction on a block to be processed (hereinafter, referred to as a current block) and generate a predicted block including prediction samples for the current block. The prediction unit may determine whether intra prediction or inter prediction is applied for each current block or CU. As will be described later in the description of each prediction mode, the prediction unit may generate various information related to prediction, such as prediction mode information, and transmit the information to the entropy encoder 240. The prediction information may be encoded by the entropy encoder 240 and output in the form of a bitstream.

[0055] The intra prediction unit 222 can predict the current block by referring to samples in the current picture. The referenced samples can be located in neighboring or distant locations from the current block depending on the prediction mode. In intra prediction, prediction modes can include a plurality of non-directional modes and a plurality of directional modes. The non-directional modes can include, for example, DC mode and planar mode. The directional modes can include, for example, 33 directional prediction modes or 65 directional prediction modes depending on the granularity of the prediction direction. However, this is merely an example, and more or less directional prediction modes may be used depending on the settings. The intra prediction unit 222 can also determine the prediction mode to be applied to the current block using the prediction modes applied to neighboring blocks.

[0056] The inter prediction unit 221 may derive a predicted block for a current block based on a reference block (reference sample array) identified by a motion vector on a reference picture. To reduce the amount of motion information transmitted in inter prediction mode, the motion information may be predicted in units of blocks, sub-blocks, or samples based on the correlation of motion information between neighboring blocks and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include information on an inter prediction direction (such as L0 prediction, L1 prediction, or BI prediction). In the case of inter prediction, the neighboring blocks may include spatial neighboring blocks present in the current picture and temporal neighboring blocks present in the reference picture. The reference picture including the reference block and the reference picture including the temporal neighboring block may be the same or different. The temporal neighboring block may be called a collocated reference block, a collocated CU (col CU), or the like, and the reference picture including the temporal neighboring block may be called a collocated picture (colPic). For example, the inter predictor 221 may construct a motion information candidate list based on neighboring blocks and generate information indicating which candidate is used to derive a motion vector and / or a reference picture index for the current block. Inter prediction may be performed based on various prediction modes, and for example, in the case of skip mode and merge mode, the inter predictor 221 may use motion information of neighboring blocks as motion information for the current block. In the case of skip mode, unlike merge mode, a residual signal may not be transmitted.In the case of the Motion Vector Prediction (MVP) mode, the motion vector of the neighboring block can be used as the motion vector predictor, and the motion vector difference can be signaled to indicate the motion vector of the current block.

[0057] The predictor 220 may generate a prediction signal based on various prediction methods, which will be described later. For example, the predictor may apply intra prediction or inter prediction for prediction of a block, or may simultaneously apply intra prediction and inter prediction. This may be referred to as combined inter and intra prediction (CIIP). The predictor may also use an intra block copy (IBC) prediction mode or a palette mode for prediction of a block. The IBC prediction mode or palette mode may be used for content image / video coding, such as games, such as screen content coding (SCC). IBC basically performs prediction within the current picture, but may be similar to inter prediction in deriving a reference block within the current picture. That is, IBC may use at least one of the inter prediction techniques described in this document. The palette mode may be considered an example of intra coding or intra prediction. When the palette mode is applied, sample values ​​within the picture may be signaled based on information related to a palette table and a palette index.

[0058] The prediction signal generated by the prediction unit (including the inter prediction unit 221 and / or the intra prediction unit 222) may be used to generate a reconstructed signal or a residual signal. The transform unit 232 may generate transform coefficients by applying a transform technique to the residual signal. For example, the transform technique may include at least one of a discrete cosine transform (DCT), a discrete sine transform (DST), a graph-based transform (GBT), and a conditionally non-linear transform (CNT). Here, GBT refers to a transform obtained from a graph representing relationship information between pixels. CNT refers to a transform obtained based on a prediction signal generated using all previously reconstructed pixels. The transform process may be applied to pixel blocks having the same square size or non-square blocks of variable sizes.

[0059] The quantization unit 233 quantizes the transform coefficients and transmits the quantized signal to the entropy coding unit 240. The entropy coding unit 240 encodes the quantized signal (information about the quantized transform coefficients) and outputs the encoded signal as a bitstream. The information about the quantized transform coefficients may be referred to as residual information. The quantization unit 233 may rearrange the quantized transform coefficients in a block form into a one-dimensional vector form based on a coefficient scan order, and may generate information about the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector form. The entropy coding unit 240 may perform various encoding methods, such as exponential Golomb, context-adaptive variable length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC). In addition to the quantized transform coefficients, the entropy coding unit 240 may also encode information required for video / image restoration (e.g., values ​​of syntax elements) together with or separately from the quantized transform coefficients. The encoded information (e.g., encoded video / image information) may be transmitted or stored in the form of a bitstream in Network Abstraction Layer (NAL) units. The video / image information may further include information on various parameter sets, such as an Adaptation Parameter Set (APS), a Picture Parameter Set (PPS), a Sequence Parameter Set (SPS), or a Video Parameter Set (VPS). The video / image information may also include general constraint information. In this document, information and / or syntax elements transmitted / signaled from an encoding device to a decoding device may be included in the video / image information. The video / image information may be encoded through the above-described encoding procedure and included in the bitstream.The bitstream can be transmitted via a network or stored in a digital storage medium. Here, the network can include a broadcast network and / or a communication network, and the digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. A transmitter (not shown) for transmitting the signal output from the entropy encoder 240 and / or a storage unit (not shown) for storing the signal can be configured as an internal / external element of the encoding device 200, or the transmitter can be included in the entropy encoder 240.

[0060] The quantized transform coefficients output from the quantization unit 233 may be used to generate a prediction signal. For example, a residual signal (residual block or residual samples) may be reconstructed by applying inverse quantization and inverse transform to the quantized transform coefficients via the inverse quantization unit 234 and the inverse transform unit 235. The adder 155 may generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the reconstructed residual signal to the prediction signal output from the inter prediction unit 221 or the intra prediction unit 222. When there is no residual for the current block, such as when skip mode is applied, a predicted block may be used as the reconstructed block. The adder 250 may be referred to as a reconstruction unit or a reconstructed block generator. The generated reconstructed signal may be used for intra prediction of the next current block in the current picture, or may be used for inter prediction of the next picture after filtering, as described below.

[0061] Meanwhile, Luma Mapping with Chroma Scaling (LMCS) may be applied during picture encoding and / or restoration.

[0062] The filtering unit 260 may apply filtering to the reconstructed signal to improve subjective / objective image quality. For example, the filtering unit 260 may apply various filtering methods to the reconstructed picture to generate a modified reconstructed picture, and may store the modified reconstructed picture in the memory 270, specifically, in the DPB of the memory 270. The various filtering methods may include, for example, deblock filtering, sample adaptive offset, an adaptive loop filter, a bilateral filter, etc. The filtering unit 260 may generate various information related to filtering and transmit it to the entropy encoder 240, as will be described later in connection with each filtering method. The filtering information may be encoded by the entropy encoder 240 and output in the form of a bitstream.

[0063] The modified reconstructed picture transmitted to the memory 270 can be used as a reference picture in the inter prediction unit 221. When inter prediction is applied through this, the encoding apparatus can avoid prediction mismatch between the encoding apparatus 100 and the decoding apparatus, and can also improve encoding efficiency.

[0064] The DPB of the memory 270 may store the modified reconstructed picture to be used as a reference picture in the inter predictor 221. The memory 270 may store motion information of a block from which motion information in the current picture is derived (or encoded) and / or motion information of a block in an already reconstructed picture. The stored motion information may be transmitted to the inter predictor 221 to be used as motion information of a spatially neighboring block or a temporally neighboring block. The memory 270 may store reconstructed samples of reconstructed blocks in the current picture and transmit them to the intra predictor 222.

[0065] 3 is a diagram illustrating the configuration of a video / image decoding device to which the embodiments of this document can be applied. Hereinafter, the decoding device may include an image decoding device and / or a video decoding device.

[0066] As shown in FIG. 3, the decoding device 300 may include an entropy decoder 310, a residual processor 320, a predictor 330, an adder 340, a filter 350, and a memory 360. The predictor 330 may include an intra predictor 331 and an inter predictor 332. The residual processor 320 may include a dequantizer 321 and an inverse transformer 321. Depending on the embodiment, the entropy decoder 310, the residual processor 320, the predictor 330, the adder 340, and the filter 350 may be configured as a single hardware component (e.g., a decoder chipset or processor). The memory 360 may include a decoded picture buffer (DPB) or may be configured as a digital storage medium. The above hardware components may further include a memory 360 as an internal / external component.

[0067] When a bitstream containing video / image information is input, the decoding device 300 can reconstruct an image corresponding to the process by which the video / image information was processed by the encoding device of FIG. 2. For example, the decoding device 300 can derive units / blocks based on block division-related information obtained from the bitstream. The decoding device 300 can perform decoding using the processing unit applied by the encoding device. Therefore, the processing unit for decoding can be, for example, a coding unit, and the coding unit can be divided from a coding tree unit or a maximal coding unit according to a quadtree structure, a binary tree structure, and / or a ternary tree structure. One or more transform units can be derived from the coding unit. The reconstructed image signal decoded and output by the decoding device 300 can then be reproduced via a playback device.

[0068] The decoding device 300 may receive a signal output from the encoding device of FIG. 2 in the form of a bitstream, and the received signal may be decoded via the entropy decoding unit 310. For example, the entropy decoding unit 310 may parse the bitstream to derive information (e.g., video / image information) necessary for image reconstruction (or picture reconstruction). The video / image information may further include information on various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). The video / image information may also include general constraint information. The decoding device may further decode pictures based on the information on the parameter sets and / or the general constraint information. Signaling / received information and / or syntax elements, which will be described later in this document, may be decoded via the decoding procedure and obtained from the bitstream. For example, the entropy decoding unit 310 may decode information in a bitstream based on a coding method such as exponential-Golomb coding, CAVLC, or CABAC, and output values ​​of syntax elements required for image restoration and quantized values ​​of transform coefficients related to the residual. More specifically, the CABAC entropy decoding method receives bins corresponding to each syntax element in the bitstream, determines a context model using information about the syntax element to be decoded and decoded information about adjacent and current blocks or information about symbols / bins decoded in previous steps, predicts the occurrence probability of the bins based on the determined context model, and performs arithmetic decoding of the bins to generate symbols corresponding to the values ​​of each syntax element. After determining the context model, the CABAC entropy decoding method may update the context model using information about the decoded symbols / bins for the context model of the next symbol / bin.Among the information decoded by the entropy decoding unit 310, information related to prediction is provided to a prediction unit (inter prediction unit 332 and intra prediction unit 331), and residual values ​​entropy decoded by the entropy decoding unit 310, i.e., quantized transform coefficients and related parameter information, may be input to a residual processing unit 320. The residual processing unit 320 may derive a residual signal (residual block, residual sample, residual sample array). In addition, among the information decoded by the entropy decoding unit 310, information related to filtering may be provided to a filtering unit 350. Meanwhile, a receiving unit (not shown) that receives a signal output from the encoding device may be further configured as an internal / external element of the decoding device 300, or the receiving unit may be a component of the entropy decoding unit 310. Meanwhile, the decoding device according to this document may be called a video / image / picture decoding device, and the decoding device may be divided into an information decoder (video / image / picture information decoder) and a sample decoder (video / image / picture sample decoder). The information decoder may include the entropy decoding unit 310, and the sample decoder may include at least one of the inverse quantization unit 321, the inverse transform unit 322, the addition unit 340, the filtering unit 350, the memory 360, the inter prediction unit 332, and the intra prediction unit 331.

[0069] The inverse quantization unit 321 may inverse quantize the quantized transform coefficients and output the transform coefficients. The inverse quantization unit 321 may rearrange the quantized transform coefficients in a two-dimensional block format. In this case, the rearrangement may be performed based on the coefficient scanning order performed in the encoding device. The inverse quantization unit 321 may inverse quantize the quantized transform coefficients using a quantization parameter (e.g., quantization step size information) to obtain transform coefficients.

[0070] The inverse transform unit 322 inversely transforms the transform coefficients to obtain a residual signal (residual block, residual sample array).

[0071] The prediction unit may perform prediction on the current block and generate a predicted block including prediction samples for the current block. The prediction unit may determine whether intra prediction or inter prediction is applied to the current block based on the prediction information output from the entropy decoding unit 310, and may determine a specific intra / inter prediction mode.

[0072] The predictor 330 may generate a prediction signal based on various prediction methods, which will be described later. For example, the predictor may apply intra prediction or inter prediction for prediction of a block, or may simultaneously apply intra prediction and inter prediction. This may be referred to as combined inter and intra prediction (CIIP). The predictor may also use an intra block copy (IBC) prediction mode or a palette mode for prediction of a block. The IBC prediction mode or palette mode may be used for content image / video coding, such as games, such as screen content coding (SCC). IBC basically performs prediction within a current picture, but may be similar to inter prediction in deriving a reference block within the current picture. That is, IBC may utilize at least one of the inter prediction techniques described in this document. The palette mode may be considered an example of intra coding or intra prediction. When the palette mode is applied, information regarding a palette table and a palette index may be included in the video / image information and signaled.

[0073] The intra prediction unit 331 can predict the current block by referring to samples in the current picture. The referenced samples can be located adjacent to the current block or can be located far away depending on the prediction mode. In intra prediction, prediction modes can include a plurality of non-directional modes and a plurality of directional modes. The intra prediction unit 331 can also determine the prediction mode to be applied to the current block using the prediction modes applied to neighboring blocks.

[0074] The inter predictor 332 may derive a predicted block for the current block based on a reference block (reference sample array) identified by a motion vector on a reference picture. To reduce the amount of motion information transmitted in inter prediction mode, the motion information may be predicted in units of blocks, sub-blocks, or samples based on the correlation of motion information between neighboring blocks and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include information on the inter prediction direction (e.g., L0 prediction, L1 prediction, or BI prediction). In the case of inter prediction, the neighboring blocks may include spatial neighboring blocks in the current picture and temporal neighboring blocks in the reference picture. For example, the inter predictor 332 may construct a motion information candidate list based on the neighboring blocks and derive a motion vector and / or a reference picture index for the current block based on received candidate selection information. Inter prediction may be performed based on various prediction modes, and the prediction information may include information indicating the inter prediction mode for the current block.

[0075] The adder 340 can generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the obtained residual signal to a prediction signal (predicted block, predicted sample array) output from a prediction unit (including an inter prediction unit 332 and / or an intra prediction unit 331). When there is no residual for the current block, such as when a skip mode is applied, the predicted block can be used as the reconstructed block.

[0076] The adder 340 may be referred to as a reconstruction unit or a reconstruction block generator. The generated reconstruction signal may be used for intra prediction of a next block to be processed in the current picture, may be output after filtering as described below, or may be used for inter prediction of a next picture.

[0077] Meanwhile, Luma Mapping with Chroma Scaling (LMCS) can be applied in the picture decoding process.

[0078] The filtering unit 350 may apply filtering to the reconstructed signal to improve subjective / objective image quality. For example, the filtering unit 350 may apply various filtering methods to the reconstructed picture to generate a modified reconstructed picture, and may transmit the modified reconstructed picture to the memory 360, specifically, to the DPB of the memory 360. The various filtering methods may include, for example, deblock filtering, sample adaptive offset, an adaptive loop filter, a bilateral filter, etc.

[0079] The (modified) reconstructed picture stored in the DPB of the memory 360 can be used as a reference picture in the inter predictor 332. The memory 360 can store motion information of a block from which motion information in the current picture is derived (or decoded) and / or motion information of a block in an already reconstructed picture. The stored motion information can be transmitted to the inter predictor 260 to be used as motion information of a spatially neighboring block or a temporally neighboring block. The memory 360 can store reconstructed samples of reconstructed blocks in the current picture and transmit them to the intra predictor 331.

[0080] In this specification, the embodiments described for the filtering unit 260, inter prediction unit 221, and intra prediction unit 222 of the encoding device 200 can also be applied identically or correspondingly to the filtering unit 350, inter prediction unit 332, and intra prediction unit 331 of the decoding device 300, respectively.

[0081] As described above, prediction is performed to improve compression efficiency when performing video coding. Through this, a predicted block including predicted samples for a current block, which is a block to be coded, can be generated. Here, the predicted block includes predicted samples in the spatial domain (or pixel domain). The predicted block is derived in the same way by an encoding device and a decoding device. The encoding device can improve image coding efficiency by signaling to a decoding device information (residual information) regarding the residual between the original block and the predicted block, rather than the original sample values ​​of the original block themselves. The decoding device can derive a residual block including residual samples based on the residual information, combine the residual block with the predicted block to generate a reconstructed block including reconstructed samples, and generate a reconstructed picture including the reconstructed block.

[0082] The residual information may be generated through a transform and quantization procedure. For example, an encoding device may derive a residual block between the original block and the predicted block, perform a transform procedure on residual samples (residual sample array) included in the residual block to derive transform coefficients, and perform a quantization procedure on the transform coefficients to derive quantized transform coefficients, and then signal the related residual information to a decoding device (via a bitstream). Here, the residual information may include information such as value information, position information, transform technique, transform kernel, and quantization parameter of the quantized transform coefficients. The decoding device may derive residual samples (or residual block) by performing an inverse quantization / inverse transform procedure based on the residual information. The decoding device may generate a reconstructed picture based on the predicted block and the residual block. The encoding device may also derive a residual block by inverse quantizing / inverse transforming the quantized transform coefficients for reference for inter-prediction of a future picture, and generate a reconstructed picture based on the residual block.

[0083] In this document, at least one of quantization / dequantization and / or transform / inverse transform can be omitted. When the quantization / dequantization is omitted, the quantized transform coefficients can be called transform coefficients. When the transform / inverse transform is omitted, the transform coefficients can also be called coefficients or residual coefficients, or can still be called transform coefficients for the sake of uniformity of expression.

[0084] In this document, quantized transform coefficients and transform coefficients may be referred to as transform coefficients and scaled transform coefficients, respectively. In this case, residual information may include information about the transform coefficient(s), and the information about the transform coefficient(s) may be signaled via a residual coding syntax. Transform coefficients may be derived based on the residual information (or information about the transform coefficient(s)), and scaled transform coefficients may be derived through an inverse transform (scaling) on ​​the transform coefficients. Residual samples may be derived based on an inverse transform (transform) on the scaled transform coefficients. This may be similarly applied / expressed in other parts of this document.

[0085] Intra prediction may refer to a prediction that generates predicted samples for a current block based on reference samples in a picture to which the current block belongs (hereinafter referred to as the current picture). When intra prediction is applied to a current block, neighboring reference samples used for intra prediction of the current block may be derived. The neighboring reference samples of the current block may include samples adjacent to the left boundary and bottom-left neighboring samples of the current block having a size of nW×nH, a total of 2×nH samples, samples adjacent to the top boundary and top-right neighboring samples of the current block, a total of 2×nW samples, and one sample adjacent to the top-left neighboring sample of the current block. Alternatively, the neighboring reference samples of the current block may include upper neighboring samples of multiple columns and left neighboring samples of multiple rows. In addition, the neighboring reference samples of the current block may also include a total of nH samples adjacent to the right boundary of the current block of size nW×nH, a total of nW samples adjacent to the bottom boundary of the current block, and one sample adjacent to the bottom-right of the current block.

[0086] However, some of the neighboring reference samples of the current block may not yet be decoded or may not be available. In this case, the decoder may construct neighboring reference samples to be used for prediction by substituting unavailable samples as available samples, or may construct neighboring reference samples to be used for prediction through interpolation of available samples.

[0087] When neighboring reference samples are derived, (i) a predicted sample can be derived (induced) based on an average or interpolation of neighboring reference samples of the current block, or (ii) the predicted sample can be derived based on a reference sample that exists in a specific (prediction) direction with respect to the predicted sample among the neighboring reference samples of the current block. Case (i) can be called a non-directional mode or a non-angular mode, and case (ii) can be called a directional mode or an angular mode.

[0088] Furthermore, the predicted sample may be generated by interpolating a first neighboring sample located in a prediction direction of an intra prediction mode of the current block and a second neighboring sample located in a direction opposite to the prediction direction based on the predicted sample of the current block among the neighboring reference samples. This case may be called Linear Interpolation Intra Prediction (LIP). Alternatively, a chroma predicted sample may be generated based on a luma sample using a linear model. This case may be called LM mode.

[0089] Alternatively, a temporal prediction sample of the current block may be derived based on filtered neighboring reference samples, and the prediction sample of the current block may be derived by weighted summing the temporal prediction sample and at least one reference sample derived according to the intra prediction mode among the existing neighboring reference samples, i.e., non-filtered neighboring reference samples. This case may be called Position Dependent Intra Prediction (PDPC).

[0090] In addition, intra-prediction coding can be performed by selecting a reference sample line with the highest prediction accuracy from among multiple adjacent reference sample lines of the current block, deriving a predicted sample using a reference sample located in the prediction direction of the corresponding line, and signaling the reference sample line used at this time to a decoding device. This case can be called multi-reference line intra-prediction or MRL-based intra-prediction.

[0091] Alternatively, the current block may be divided into vertical or horizontal sub-partitions, and intra prediction may be performed based on the same intra prediction mode, with adjacent reference samples derived and used for each sub-partition. That is, in this case, the intra prediction mode for the current block is applied to the sub-partitions in the same way, and adjacent reference samples may be derived and used for each sub-partition, thereby improving intra prediction performance in some cases. This prediction method may be called ISP (Intra Sub-Partitions)-based intra prediction.

[0092] The above-described intra prediction methods may be referred to as intra prediction types, distinguished from intra prediction modes. The intra prediction types may be referred to by various terms, such as intra prediction techniques or additional intra prediction modes. For example, the intra prediction types (or additional intra prediction modes, etc.) may include at least one of the above-described LIP, PDPC, MRL, and ISP. A general intra prediction method excluding specific intra prediction types, such as LIP, PDPC, MRL, and ISP, may be referred to as a normal intra prediction type. The normal intra prediction type may be generally applied when the above-described specific intra prediction types are not applied, and prediction may be performed based on the above-described intra prediction modes. Meanwhile, post-processing filtering may be performed on the derived prediction samples, if necessary.

[0093] Specifically, the intra prediction procedure may include an intra prediction mode / type determination step, a neighboring reference sample derivation step, and an intra prediction mode / type-based prediction sample derivation step. If necessary, a post-processing filtering step may be performed on the derived prediction samples.

[0094] When intra prediction is applied, the intra prediction mode applied to the current block may be determined using the intra prediction mode of a neighboring block. For example, the decoding device may select one of the MPM candidates in an MPM (Most Probable Mode) list derived based on the intra prediction mode of a neighboring block (e.g., a left and / or upper neighboring block) of the current block and an additional candidate mode based on the received MPM index, or may select one of the remaining intra prediction modes not included in the MPM candidates (and the planar mode) based on the remaining (remaining) intra prediction mode information. The MPM list may be configured with or without including the planar mode as a candidate. For example, if the MPM list includes the planar mode as a candidate, the MPM list may have six candidates, and if the MPM list does not include the planar mode as a candidate, the MPM list may have five candidates. If the MPM list does not include a planar mode as a candidate, a not-planar flag (e.g., intra_luma_not_planar_flag) indicating that the intra prediction mode of the current block is not a planar mode may be signaled. For example, the MPM flag may be signaled first, and the MPM index and the not-planar flag may be signaled if the MPM flag has a value of 1. Also, the MPM index may be signaled if the not-planar flag has a value of 1. Here, the reason why the MPM list is configured not to include a planar mode as a candidate is that the planar mode is always considered as an MPM, rather than meaning that the planar mode is not an MPM, and therefore the flag (not-planar flag) is signaled first to first confirm whether the mode is a planar mode.

[0095] For example, whether the intra prediction mode applied to the current block is among the MPM candidates (and planar modes) or among the remaining modes may be indicated based on an MPM flag (e.g., intra_luma_mpm_flag). A value of 1 in the MPM flag may indicate that the intra prediction mode for the current block is among the MPM candidates (and planar modes), and a value of 0 in the MPM flag may indicate that the intra prediction mode for the current block is not among the MPM candidates (and planar modes). A value of 0 in the not-planar flag (e.g., intra_luma_not_planar_flag) may indicate that the intra prediction mode for the current block is planar mode, and a value of 1 in the not-planar flag may indicate that the intra prediction mode for the current block is not planar mode. The MPM index may be signaled in the form of an mpm_idx or intra_luma_mpm_idx syntax element, and the remaining intra prediction mode information may be signaled in the form of a rem_intra_luma_pred_mode or intra_luma_mpm_remainder syntax element. For example, the remaining intra prediction mode information may index the remaining intra prediction modes not included in the MPM candidates (and plane modes) among all intra prediction modes in order of prediction mode number and point to one of them. The intra prediction mode is an intra prediction mode for a luma component (sample). Hereinafter, the intra prediction mode information may include at least one of the MPM flag (e.g., intra_luma_mpm_flag), the not planar flag (e.g., intra_luma_not_planar_flag), the MPM index (e.g., mpm_idx or intra_luma_mpm_idx), and the remaining intra prediction mode information (rem_intra_luma_pred_mode or intra_luma_mpm_remainder). In this document, the MPM list may be referred to by various terms such as an MPM candidate list, candModeList, etc.If MIP is applied to the current block, a separate mpm flag (e.g., intra_mip_mpm_flag), mpm index (e.g., intra_mip_mpm_idx), and remaining intra prediction mode information (e.g., intra_mip_mpm_remainder) for MIP may be signaled, and the not planar flag is not signaled.

[0096] That is, when an image is generally divided into blocks, a current block to be coded and neighboring blocks have similar image characteristics. Therefore, the current block and neighboring blocks are likely to have the same or similar intra prediction modes. Therefore, an encoder can use the intra prediction modes of neighboring blocks to encode the intra prediction mode of the current block.

[0097] For example, the encoder / decoder may construct an MPM (Most Probable Modes) list for the current block. The MPM list may also be referred to as an MPM candidate list. Here, MPM may refer to a mode used to improve coding efficiency by considering similarities between the current block and neighboring blocks during intra-prediction mode coding. As described above, the MPM list may be configured to include or exclude planar modes. For example, if the MPM list includes planar modes, the number of candidates in the MPM list is six. If the MPM list does not include planar modes, the number of candidates in the MPM list is five.

[0098] The encoder / decoder can construct an MPM list containing five or six MPMs.

[0099] To construct the MPM list, three types of modes can be considered: default intra modes, neighbor intra modes, and derived intra modes.

[0100] For the neighboring intra mode, two neighboring blocks can be considered: a left neighboring block and an upper neighboring block.

[0101] As described above, if the MPM list is configured not to include a planar mode, the planar mode is excluded from the list, and the number of MPM list candidates can be set to five.

[0102] Furthermore, among the intra prediction modes, the non-directional mode (or non-angular mode) may include a DC mode based on the average of neighboring reference samples of the current block or a planar mode based on interpolation.

[0103] When inter prediction is applied, a prediction unit of an encoding / decoding device may perform inter prediction on a block-by-block basis to derive predicted samples. Inter prediction may refer to a prediction derived in a manner dependent on data elements (e.g., sample values ​​or motion information) of a picture other than the current picture. When inter prediction is applied to a current block, a predicted block (prediction sample array) for the current block may be derived based on a reference block (reference sample array) identified by a motion vector in a reference picture indicated by a reference picture index. In this case, to reduce the amount of motion information transmitted in the inter prediction mode, motion information of the current block may be predicted on a block-by-block, sub-block-by-sample basis based on the correlation of motion information between neighboring blocks and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include information on an inter prediction type (e.g., L0 prediction, L1 prediction, BI prediction, etc.). When inter prediction is applied, neighboring blocks may include spatial neighboring blocks in the current picture and temporal neighboring blocks in the reference picture. The reference picture including the reference block and the reference picture including the temporal neighboring block may be the same or different. The temporal neighboring block may be called a collocated reference block, a collocated CU (colCU), or the like, and the reference picture including the temporal neighboring block may be called a collocated picture (colPic). For example, a candidate list of motion information may be constructed based on the neighboring blocks of the current block, and a flag or index information indicating which candidate is selected (used) to derive the motion vector and / or the reference picture index of the current block may be signaled.Inter prediction is performed based on various prediction modes. For example, in skip mode and merge mode, the motion information of the current block may be the same as that of a selected neighboring block. In skip mode, unlike merge mode, a residual signal may not be transmitted. In motion vector prediction (MVP) mode, the motion vector of a selected neighboring block is used as a motion vector predictor, and a motion vector difference may be signaled. In this case, the motion vector of the current block may be derived using the sum of the motion vector predictor and the motion vector difference.

[0104] The motion information may include L0 motion information and / or L1 motion information depending on the inter prediction type (such as L0 prediction, L1 prediction, or BI prediction). A motion vector in the L0 direction may be referred to as an L0 motion vector or MVL0, and a motion vector in the L1 direction may be referred to as an L1 motion vector or MVL1. Prediction based on an L0 motion vector may be referred to as L0 prediction, prediction based on an L1 motion vector may be referred to as L1 prediction, and prediction based on both the L0 motion vector and the L1 motion vector may be referred to as bi-prediction. Here, the L0 motion vector may indicate a motion vector associated with a reference picture list L0 (L0), and the L1 motion vector may indicate a motion vector associated with a reference picture list L1 (L1). The reference picture list L0 may include pictures that are earlier in output order than the current picture, and the reference picture list L1 may include pictures that are later in output order than the current picture. The previous picture may be called a forward (reference) picture, and the subsequent picture may be called a backward (reference) picture. The reference picture list L0 may further include, as reference pictures, pictures that are subsequent to the current picture in output order. In this case, the previous picture may be indexed first in the reference picture list L0, and the subsequent picture may be indexed thereafter. The reference picture list L1 may further include, as reference pictures, pictures that are subsequent to the current picture in output order. In this case, the subsequent picture may be indexed first in the reference picture list L1, and the previous picture may be indexed thereafter. Here, the output order may correspond to a POC (Picture Order Count) order.

[0105] A video / image encoding procedure based on inter prediction generally includes, for example:

[0106] FIG. 4 shows an example of an inter-prediction based video / image encoding method.

[0107] The encoding apparatus performs inter prediction on a current block (S400). The encoding apparatus derives an inter prediction mode and motion information for the current block and generates a predicted sample for the block. The steps of determining the inter prediction mode, deriving motion information, and generating a predicted sample may be performed simultaneously, or one step may precede the other steps. For example, the inter prediction unit of the encoding apparatus includes a prediction mode determination unit, a motion information derivation unit, and a predicted sample derivation unit. The prediction mode determination unit determines a prediction mode for the current block, the motion information derivation unit derives motion information for the current block, and the predicted sample derivation unit derives a predicted sample for the current block. For example, the inter prediction unit of the encoding apparatus searches for a block similar to the current block within a certain region (search region) of a reference picture using motion estimation, and derives a reference block whose difference from the current block is minimal or equal to a certain criterion. Based on this, a reference picture index indicating a reference picture in which the reference block is located can be derived, and a motion vector can be derived based on a position difference between the reference block and the current block. The encoding device determines a mode to be applied to the current block from various prediction modes. The encoding device can compare RD costs for the various prediction modes and determine an optimal prediction mode for the current block.

[0108] For example, when a skip mode or a merge mode is applied to the current block, the encoding device may construct a merge candidate list (described later) and derive a reference block whose difference from the current block is minimum or equal to or less than a certain criterion among reference blocks indicated by merge candidates included in the merge candidate list. In this case, a merge candidate associated with the derived reference block is selected, and merge index information indicating the selected merge candidate is generated and signaled to the decoding device. Motion information of the current block may be derived using motion information of the selected merge candidate.

[0109] As another example, when the (A)MVP mode is applied to the current block, the encoding apparatus may construct an (A)MVP candidate list (described later) and use a motion vector of a selected MVP (motion vector predictor) candidate from among the MVP candidates included in the (A)MVP candidate list as the MVP of the current block. In this case, for example, a motion vector pointing to a reference block derived by the motion estimation may be used as the motion vector of the current block, and the MVP candidate having the smallest difference from the motion vector of the current block may be the selected MVP candidate. A motion vector difference (MVD), which is the difference obtained by subtracting the MVP from the motion vector of the current block, may be derived. In this case, information regarding the MVD may be signaled to the decoding apparatus. Furthermore, when the (A)MVP mode is applied, the value of the reference picture index is configured as reference picture index information and separately signaled to the decoding apparatus.

[0110] The encoding apparatus derives residual samples based on the predicted samples (S410) by comparing the original samples of the current block with the predicted samples.

[0111] The encoding device encodes image information including prediction information and residual information (S420). The encoding device outputs the encoded image information in the form of a bitstream. The prediction information is information related to the prediction procedure and includes prediction mode information (e.g., a skip flag, a merge flag, or a mode index) and information on motion information. The information on the motion information includes candidate selection information (e.g., a merge index, an MVP flag, or an MVP index) for deriving a motion vector. The information on the motion information also includes information on the MVD and / or reference picture index information. The information on the motion information may also include information indicating whether L0 prediction, L1 prediction, or bi-prediction is applied. The residual information is information on the residual samples. The residual information includes information on quantized transform coefficients for the residual samples.

[0112] The output bitstream may be stored on a (digital) storage medium and then transmitted to the decoding device, or may be transmitted to the decoding device via a network.

[0113] Meanwhile, as described above, the encoding apparatus generates a reconstructed picture (including reconstructed samples and reconstructed blocks) based on the reference samples and the residual samples. This is because the encoding apparatus derives the same prediction result as that performed by the decoding apparatus, thereby improving coding efficiency. Therefore, the encoding apparatus stores the reconstructed picture (or reconstructed samples, reconstructed blocks) in a memory and can use it as a reference picture for inter prediction. As described above, an in-loop filtering procedure, etc., can be further applied to the reconstructed picture.

[0114] A video / image decoding procedure based on inter prediction generally includes, for example:

[0115] FIG. 5 shows an example of an inter-prediction based video / image decoding method.

[0116] As shown in Figure 5, the decoding device performs operations corresponding to those performed by the encoding device. The decoding device can perform prediction on the current block based on the received prediction information and derive predicted samples.

[0117] Specifically, the decoding device determines a prediction mode for the current block based on received prediction information (S500). The decoding device can determine which inter prediction mode is applied to the current block based on prediction mode information in the prediction information.

[0118] For example, the merge flag may be used to determine whether the merge mode is applied to the current block, or whether the (A)MVP mode is selected. Alternatively, the mode index may be used to select one of various inter prediction mode candidates. The inter prediction mode candidates may include skip mode, merge mode, and / or (A)MVP mode, or various inter prediction modes described below.

[0119] The decoding apparatus derives motion information of the current block based on the determined inter prediction mode (S510). For example, when a skip mode or a merge mode is applied to the current block, the decoding apparatus forms a merge candidate list (described later) and selects one of the merge candidates included in the merge candidate list. The selection is performed based on the selection information (merge index) described above. The motion information of the selected merge candidate may be used to derive motion information of the current block. The motion information of the selected merge candidate may be used as motion information of the current block.

[0120] As another example, when the (A)MVP mode is applied to the current block, the decoding device constructs an (A)MVP candidate list (described later) and uses a motion vector of a selected MVP (motion vector predictor) candidate from among the MVP candidates included in the (A)MVP candidate list as the MVP of the current block. The selection is performed based on the selection information (MVP flag or MVP index). In this case, the MVD of the current block can be derived based on information related to the MVD, and the motion vector of the current block can be derived based on the MVP of the current block and the MVD. Furthermore, the decoding device can derive a reference picture index of the current block based on the reference picture index information. A picture pointed to by the reference picture index in the reference picture list for the current block can be derived as a reference picture referenced for inter-prediction of the current block.

[0121] Alternatively, the motion information of the current block may be derived without constructing a candidate list, as will be described later. In this case, the motion information of the current block may be derived according to a procedure disclosed in a prediction mode, as will be described later. In this case, the candidate list construction as described above may be omitted.

[0122] The decoding apparatus generates predicted samples for the current block based on the motion information of the current block (S520). In this case, the reference picture may be derived based on the reference picture index of the current block, and the predicted samples of the current block may be derived using samples of a reference block pointed to in the reference picture by the motion vector of the current block. In this case, as described below, a predicted sample filtering procedure may be further performed on all or some of the predicted samples of the current block, depending on the situation.

[0123] For example, the inter-prediction unit of the decoding device may include a prediction mode determination unit, a motion information derivation unit, and a prediction sample derivation unit, and may determine a prediction mode for the current block based on prediction mode information received by the prediction mode determination unit, derive motion information (such as a motion vector and / or a reference picture index) for the current block based on information regarding the motion information received by the motion information derivation unit, and derive a prediction sample for the current block from the prediction sample derivation unit.

[0124] The decoding apparatus generates residual samples for the current block based on the received residual information (S530). The decoding apparatus generates reconstructed samples for the current block based on the predicted samples and the residual samples, and generates a reconstructed picture based on the reconstructed samples (S540). Thereafter, as described above, an in-loop filtering procedure can be further applied to the reconstructed picture.

[0125] FIG. 6 exemplarily illustrates an inter prediction procedure.

[0126] 6, as described above, the inter prediction procedure includes an inter prediction mode determination step, a motion information deriving step according to the determined prediction mode, and a prediction (prediction sample generation) step based on the derived motion information. As described above, the inter prediction procedure is performed in an encoding device and a decoding device. In this document, a coding device includes an encoding device and / or a decoding device.

[0127] As shown in FIG. 6, the coding apparatus determines an inter prediction mode for a current block (S600). Various inter prediction modes can be used for predicting the current block in a picture. For example, various modes such as merge mode, skip mode, Motion Vector Prediction (MVP) mode, affine mode, sub-block merge mode, and merge with MVD (MMVD) mode can be used. Decoder-side Motion Vector Refinement (DMVR) mode, Adaptive Motion Vector Resolution (AMVR) mode, Bi-prediction with CU-level Weight (BCW), Bi-Directional Optical Flow (BDOF), etc. can be used in addition to or instead of the accompanying modes. The affine mode may also be referred to as an affine motion prediction mode. The MVP mode may also be referred to as "AMVP (Advanced Motion Vector Prediction) mode." In this document, some modes and / or motion information candidates derived by some modes may be included as one of the motion information-related candidates of other modes. For example, an HMVP candidate may be added as a merge candidate of the merge / skip mode, or may be added as an MVP candidate of the MVP mode. When the HMVP candidate is used as a motion information candidate of the merge mode or skip mode, the HMVP candidate may also be referred to as an HMVP merge candidate.

[0128] Prediction mode information indicating the inter prediction mode of the current block may be signaled from the encoding device to the decoding device. The prediction mode information may be included in a bitstream and received by the decoding device. The prediction mode information includes index information indicating one of multiple candidate modes. Alternatively, the inter prediction mode may be indicated through hierarchical signaling of flag information. In this case, the prediction mode information includes one or more flags. For example, a skip flag may be signaled to indicate whether the skip mode is applied, and if the skip mode is not applied, a merge flag may be signaled to indicate whether the merge mode is applied, and if the merge mode is not applied, an MVP mode may be applied, or a flag for additional division may be further signaled. The affine mode may be signaled as an independent mode or as a mode dependent on the merge mode or MVP mode. For example, the affine mode may include an affine merge mode and an affine MVP mode.

[0129] Meanwhile, information indicating whether the above-mentioned List0 (L0) prediction, List1 (L1) prediction, or bi-prediction is used for the current block (current coding unit) may be signaled. This information may be referred to as motion prediction direction information, inter-prediction direction information, or inter-prediction indication information, and may be configured / encoded / signaled in the form of, for example, an inter_pred_idc syntax element. That is, the inter_pred_idc syntax element may indicate whether the above-mentioned List0 (L0) prediction, List1 (L1) prediction, or bi-prediction is used for the current block (current coding unit). In this document, for convenience of explanation, the inter-prediction type (L0 prediction, L1 prediction, or BI prediction) indicated by the inter_pred_idc syntax element may be referred to as a motion prediction direction. L0 prediction may be represented as pred_L0, L1 prediction as pred_L1, and bi-prediction as pred_BI. For example, the value of the inter_pred_idc syntax element can indicate the prediction type as follows:

[0130] [Table 1]

[0131] As described above, one picture includes one or more slices. A slice can have one of slice types, including an I (Intra) slice, a P (Predictive) slice, and a B (Bi-Predictive) slice. The slice type is indicated based on slice type information. For blocks in an I slice, inter prediction is not used for prediction, and only intra prediction is used. Of course, even in this case, original sample values ​​can be coded and signaled without prediction. For blocks in a P slice, intra prediction or inter prediction is used, and when inter prediction is used, only uni prediction can be used. On the other hand, for blocks in a B slice, intra prediction or inter prediction is used, and when inter prediction is used, up to bi prediction can be used.

[0132] L0 and L1 include reference pictures encoded / decoded before the current picture. For example, L0 includes reference pictures before and / or after the current picture in POC order, and L1 includes reference pictures after and / or before the current picture in POC order. In this case, L0 is assigned a reference picture index lower than the reference picture before the current picture in POC order, and L1 is assigned a reference picture index lower than the reference picture after the current picture in POC order. For B slices, bi-prediction is applied, and unidirectional bi-prediction or bi-directional bi-prediction may also be applied in this case. Bi-directional bi-prediction is also called true bi-prediction.

[0133] The following table shows the syntax for a coding unit according to one embodiment of this document.

[0134] [Table 2-1]

[0135] [Table 2-2]

[0136] [Table 2-3]

[0137] [Table 2-4]

[0138] [Table 2-5]

[0139] The coding apparatus derives motion information for the current block (S610). The motion information may be derived based on the inter prediction mode.

[0140] A coding device can perform inter-prediction using motion information of a current block. An encoding device can derive optimal motion information for a current block through a motion estimation procedure. For example, the encoding device can search for a similar reference block with high correlation using an original block in an original picture for the current block in fractional pixel units within a predetermined search range in the reference picture, thereby deriving motion information. Block similarity can be derived based on a difference in phase-based sample values. For example, block similarity can be calculated based on the sum of absolute differences (SAD) between the current block (or a template of the current block) and a reference block (or a template of the reference block). In this case, motion information can be derived based on the reference block with the smallest SAD within the search range. The derived motion information is signaled to a decoding device in various ways based on the inter-prediction mode.

[0141] The coding device performs inter prediction based on motion information for the current block (S620). The coding device may derive predictive sample(s) for the current block based on the motion information. The current block including the predictive sample(s) may be referred to as a predicted block.

[0142] When a merge mode is applied, the motion information of the current prediction block is derived using motion information of neighboring prediction blocks without being directly transmitted. Therefore, the motion information of the current prediction block can be indicated by transmitting flag information indicating that the merge mode is used and a merge index indicating which neighboring prediction block is used. The merge mode may also be called a regular merge mode.

[0143] To perform the merge mode, the encoder must search for merge candidate blocks to be used to derive motion information for the current prediction block. For example, up to five merge candidate blocks can be used, but the embodiment of this document is not limited thereto. The maximum number of merge candidate blocks is transmitted in the slice header or tile group header. After finding the merge candidate blocks, the encoder can generate a merge candidate list and select the merge candidate block with the smallest cost as the final merge candidate block.

[0144] The merge candidate list may include, for example, five merge candidate blocks. For example, four spatial merge candidates and one temporal merge candidate may be used. Hereinafter, the spatial merge candidates or spatial MVP candidates described later may be referred to as SMVPs, and the temporal merge candidates or temporal MVP candidates described later may be referred to as TMVPs.

[0145] FIG. 7 shows a schematic diagram of a method for constructing a merge candidate list according to the present document.

[0146] The coding device (encoder / decoder) searches for spatial peripheral blocks of the current block and inserts derived spatial merge candidates into a merge candidate list (S700). For example, the spatial peripheral blocks include the lower left corner peripheral block, left peripheral block, upper right corner peripheral block, upper peripheral block, and upper left corner peripheral block of the current block. However, this is merely an example, and additional peripheral blocks such as a right peripheral block, a bottom peripheral block, and a bottom right peripheral block may be used as the spatial peripheral blocks. The coding device may search the spatial peripheral blocks based on priority to detect usable blocks and derive motion information of the detected blocks as the spatial merge candidates.

[0147] The coding device inserts the time merge candidates derived by searching for the time neighboring blocks of the current block into the merge candidate list (S710). The time neighboring blocks may be located on a reference picture that is a picture different from the current picture in which the current block is located. The reference picture on which the time neighboring blocks are located may be referred to as a collocated picture or a col picture. The time neighboring blocks can be searched in the order of the peripheral blocks of the lower right corner and the lower right center block of the co-located block with respect to the current block on the col picture. On the other hand, when motion data compression is applied, specific motion information is stored as representative motion information for each fixed storage unit in the col picture. In this case, it is not necessary to store the motion information for all the blocks within the fixed storage unit, and thus the effect of motion data compression can be obtained. In this case, the fixed storage unit may be predetermined, for example, in a 16×16 sample unit or an 8×8 sample unit, or the size information regarding the fixed storage unit may be signaled from the encoder to the decoder. When the motion data compression is applied, the motion information of the time neighboring blocks can be replaced with the representative motion information of the fixed storage unit in which the time neighboring blocks are located. That is, in this case, from the perspective of implementation, instead of the prediction block located at the coordinates of the time neighboring blocks, based on the coordinates (the upper left sample position (position)) of the time neighboring blocks, after arithmetic right shift by a certain value, the time merge candidate is derived based on the motion information of the prediction block covering the position after arithmetic left shift. For example, when the fixed storage unit is a 2n×2n sample unit, if the coordinates of the time neighboring blocks are (xTnb, yTnb), the motion information of the prediction block located at the corrected position ((xTnb>>n)<<n), (yTnb>>n)<<n)) is used for the time merge candidate.Specifically, for example, when the fixed storage unit is a 16x16 sample unit, if the coordinates of the temporal peripheral block are (xTnb, yTnb), the motion information of the prediction block located at the modified position ((xTnb>>4)<<4), (yTnb>>4)<<4) is used for the temporal merge candidate. Alternatively, for example, when the fixed storage unit is an 8x8 sample unit, if the coordinates of the temporal peripheral block are (xTnb, yTnb), the motion information of the prediction block located at the modified position ((xTnb>>3)<<3), (yTnb>>3)<<3) is used for the temporal merge candidate.

[0148] The coding device may check whether the current number of merge candidates is less than the maximum number of merge candidates (S720). The maximum number of merge candidates may be predefined or signaled from the encoder to the decoder. For example, the encoder may generate information regarding the maximum number of merge candidates, encode it, and transmit it to the decoder in the form of a bitstream. If the maximum number of merge candidates is filled, no further candidate addition process may be performed.

[0149] If the current number of merge candidates is less than the maximum number of merge candidates, the coding apparatus inserts an additional merge candidate into the merge candidate list (S730).

[0150] If the check results in the current number of merge candidates being not less than the maximum number of merge candidates, the coding apparatus terminates construction of the merge candidate list (S740). In this case, the encoder may select an optimal merge candidate from among the merge candidates constituting the merge candidate list based on a rate-distortion (RD) cost and may signal selection information (e.g., a merge index) indicating the selected merge candidate to the decoder. The decoder selects the optimal merge candidate based on the merge candidate list and the selection information.

[0151] As described above, the motion information of the selected merging candidate may be used as the motion information of the current block, and a predictive sample of the current block may be derived based on the motion information of the current block. An encoder may derive a residual sample of the current block based on the predictive sample and signal residual information regarding the residual sample to a decoder. As described above, the decoder may generate a reconstructed sample based on the residual sample derived based on the residual information and the predictive sample, and generate a reconstructed picture based on the reconstructed sample.

[0152] When a skip mode is applied, the motion information of the current block can be derived in the same manner as when the merge mode is applied, except that when the skip mode is applied, the residual signal for the corresponding block is omitted, and therefore, the predicted samples can be used directly as reconstructed samples.

[0153] When the MVP mode is applied, a motion vector predictor (MVP) candidate list is generated using the motion vectors of the reconstructed spatial surrounding blocks and / or the motion vectors corresponding to the temporal surrounding blocks (or Col blocks). That is, the motion vectors of the reconstructed spatial surrounding blocks and / or the motion vectors corresponding to the temporal surrounding blocks can be used as motion vector predictor candidates. When bi-prediction is applied, an MVP candidate list for L0 motion information derivation and an MVP candidate list for L1 motion information derivation can be generated and used separately. The prediction information (or prediction information) includes selection information (e.g., an MVP flag or an MVP index) indicating a best motion vector predictor candidate selected from the motion vector predictor candidates included in the list. Here, the prediction unit can select a motion vector predictor for the current block from the motion vector predictor candidates included in the motion vector candidate list using the selection information. A prediction unit of the encoding device can obtain a motion vector difference (MVD) between the motion vector of the current block and the motion vector predictor, encode it, and output it in the form of a bitstream. That is, the MVD is calculated by subtracting the motion vector predictor from the motion vector of the current block. Here, the prediction unit of the decoding device can obtain a motion vector differential included in the information related to the prediction, and derive the motion vector of the current block by adding the motion vector differential to the motion vector predictor. The prediction unit of the decoding device can obtain or derive a reference picture index indicating a reference picture, etc., from the information related to the prediction.

[0154] FIG. 8 is a flow chart illustrating a method for constructing a motion vector predictor candidate list.

[0155] As shown in FIG. 8, in one embodiment, spatial candidate blocks for motion vector prediction are first searched for and inserted into a prediction candidate list (S800). Then, in one embodiment, it is determined whether the number of spatial candidate blocks is less than two (S810). For example, in one embodiment, if the number of spatial candidate blocks is less than two, temporal candidate blocks are searched for and added to the prediction candidate list (S820). If the temporal candidate blocks are unavailable, a zero motion vector is used. That is, a zero motion vector can be added to the prediction candidate list (S830). Then, in one embodiment, construction of a reserve candidate list is terminated (S840). Alternatively, in one embodiment, construction of a reserve candidate list is terminated if the number of spatial candidate blocks is not less than two (S840). Here, the reserve candidate list refers to an MVP candidate list.

[0156] On the other hand, when the MVP mode is applied, the reference picture index is explicitly signaled. In this case, the reference picture index for L0 prediction (refidxL0) and the reference picture index for L1 prediction (refidxL1) may be signaled separately. For example, when the MVP mode is applied and bi-prediction (BI prediction) is applied, both the information about refidxL0 and the information about refidxL1 may be signaled.

[0157] When the MVP mode is applied, as described above, information about the MVD derived from the encoding device is signaled to the decoding device. The information about the MVD may include, for example, information indicating the x and y components of the absolute value and sign of the MVD. In this case, information indicating whether the absolute value of the MVD is greater than 0, whether it is greater than 1, and the remainder of the MVD may be signaled stepwise. For example, information indicating whether the absolute value of the MVD is greater than 1 may be signaled only if the value of flag information indicating whether the absolute value of the MVD is greater than 0 is 1.

[0158] For example, information about the MVD is configured in the syntax shown in the table below, encoded in the encoding device, and signaled to the decoding device.

[0159] [Table 3]

[0160] For example, in Table 3, the abs_mvd_greater0_flag syntax element indicates information regarding whether the difference (MVD) is greater than 0, and the abs_mvd_greater1_flag syntax element indicates information regarding whether the difference (MVD) is greater than 1. Furthermore, the abs_mvd_minus2 syntax element indicates information regarding the value obtained by subtracting 2 from the difference (MVD), and the mvd_sign_flag syntax element indicates information regarding the sign of the difference (MVD). Furthermore, in Table 3, [0] in each syntax element indicates information regarding L0, and [1] indicates information regarding L1.

[0161] For example, MVD[compIdx] is derived based on abs_mvd_greater0_flag[compIdx]*(abs_mvd_minus2[compIdx]+2)*(1-2*mvd_sign_flag[compIdx]). Here, compIdx (or cpIdx) indicates the index of each component and can have a value of 0 or 1. compIdx0 indicates the x component, and compIdx1 indicates the y component. However, this is merely an example, and values ​​for each component can also be expressed using other coordinate systems instead of the x, y coordinate system.

[0162] Meanwhile, an MVD for L0 prediction (MVD L0) and an MVD for L1 prediction (MVD L1) may be signaled separately, and information about the MVD may include information about the MVD L0 and / or information about the MVD L1. For example, when the MVP mode and BI prediction are applied to the current block, information about the MVD L0 and information about the MVD L1 are both signaled.

[0163] FIG. 9 is a diagram illustrating SMVD (Symmetric Motion Vector Differences).

[0164] When BI prediction is applied, Symmetric MVD (SMVD) may be used in consideration of coding efficiency. In this case, signaling of some of the motion information may be omitted. For example, when SMVD is applied to the current block, information on refidxL0, information on refidxL1, and information on MVD L1 may be internally derived without being signaled from the encoding device to the decoding device. For example, when MVP mode and BI prediction are applied to the current block, flag information indicating whether SMVD is applicable (e.g., SMVD flag information or sym_mvd_flag syntax element) is signaled, and if the value of the flag information is 1, the decoding device determines that SMVD is applied to the current block.

[0165] When the SMVD mode is applied (i.e., when the value of the SMVD flag information is 1), information about mvp_l0_flag, mvp_l1_flag, and MVD L0 (motion vector differential L0) is explicitly signaled, and as described above, signaling of information about refidxL0, information about refidx1, and information about MVD L1 (motion vector differential L1) is omitted and they can be derived internally. For example, refidxL0 can be derived as an index pointing to a previous reference picture that is closest to the current picture in the POC procedure within reference picture list 0 (which may also be referred to as List0 or L0). refidxL1 can be derived as an index pointing to a subsequent reference picture that is closest to the current picture in the POC procedure within reference picture list 1 (which may also be referred to as List1 or L1). Alternatively, for example, refidxL0 and refidxL1 can both be derived as 0. Alternatively, for example, refidxL0 and refidxL1 may be derived as the smallest indexes having the same POC difference relative to the current picture. Specifically, for example, when "[POC of the current picture] - [POC of the first reference picture indicated by refidxL0]" is referred to as a first POC difference and "[POC of the current picture] - [POC of the second reference picture indicated by refidxL1]" is referred to as a second POC difference, only when the first POC difference and the second POC difference are the same, the value of refidxL0 indicating the first reference picture may be derived as the refidxL0 of the current block, and the value of refidxL1 indicating the second reference picture may be derived as the refidxL1 of the current block. Furthermore, for example, if there are a plurality of sets in which the first POC difference and the second POC difference are the same, the refidxL0 and refidxL1 of the set with the smallest difference among them can be derived as the refidxL0 and refidxL1 of the current block.

[0166] 9, reference picture list 0, reference picture list 1, MVD L0, and MVD L1 are shown, where MVD L1 is symmetrical to MVD L0.

[0167] MVD L1 may be derived as minus (-)MVD L0. For example, the final (refined or modified) motion information (motion vector: MV) for the current block is derived based on the following formula:

[0168] <Formula 1>

number

[0169] In Equation 1, mvx0 and mvy0 indicate the x and y components of the L0 motion information or motion vector for L0 prediction, mvx1 and mvy1 indicate the x and y components of the L1 motion information or motion vector for L1 prediction. Also, mvpx0 and mvpy0 indicate the x and y components of the motion vector predictor for L0 prediction, mvpx1 and mvpy1 indicate the x and y components of the motion vector predictor for L1 prediction. Also, mvdx0 and mvdy0 indicate the x and y components of the motion vector differential for L0 prediction.

[0170] Meanwhile, in the MMVD mode, as a method of applying MVD (Motion Vector Difference) to the merge mode, motion information directly used to generate predicted samples of the current block (i.e., the current CU) can be implicitly derived. For example, an MMVD flag (e.g., mmvd_flag) indicating whether or not to use MMVD for the current block (i.e., the current CU) is signaled, and MMVD can be performed based on this MMVD flag. If MMVD is applied to the current block (e.g., mmvd_flag is 1), additional information regarding MMVD can be signaled.

[0171] Here, the additional information about the MMVD includes a merge candidate flag (e.g., mmvd_cand_flag) indicating whether the first or second candidate in the merge candidate list is used with the MVD, a distance index (e.g., mmvd_distance_idx) to indicate the motion magnitude, and a direction index (mmvd_direction_idx) to indicate the motion direction.

[0172] In the MMVD mode, two candidates (i.e., the first candidate or the second candidate) located in the first and second entries of the candidates in the merge candidate list can be used, and any one of the two candidates (i.e., the first candidate or the second candidate) can be used as the base MV. For example, a merge candidate flag (e.g., mmvd_cand_flag) can be signaled to indicate any one of the two candidates (i.e., the first candidate or the second candidate) in the merge candidate list.

[0173] Furthermore, a distance index (e.g., mmvd_distance_idx) indicates information about the magnitude of motion and may indicate a predetermined offset from the starting point. The offset may be added to the horizontal or vertical component of the starting motion vector. The relationship between the distance index and the predetermined offset may be shown in the following table.

[0174] [Table 4]

[0175] Referring to Table 4 above, the MVD distance (e.g., MmvdDistance) is determined by the value of the distance index (e.g., mmvd_distance_idx), and the MVD distance (e.g., MmvdDistance) can be derived using integer sample units (integer sample precision) or fractional sample units (fractional sample precision) based on the value of tile_group_fpel_mmvd_enabled_flag. For example, if tile_group_fpel_mmvd_enabled_flag is 1, it indicates that the MVD distance is derived using integer sample units in the current tile group (or picture header), and if tile_group_fpel_mmvd_enabled_flag is 0, it indicates that the MVD distance is derived using fractional sample units in the tile group (or picture header). In Table 1, information (flags) for the tile group can be replaced with information for the picture header, for example, tile_group_fpel_mmvd_enabled_flag can be replaced with ph_fpel_mmvd_enabled_flag (or ph_mmvd_fullpel_only_flag).

[0176] Also, a direction index (e.g., mmvd_direction_idx) indicates the direction of the MVD based on the start point, and indicates four directions as shown in Table 5 below. Here, the MVD direction can indicate the sign of the MVD. The relationship between the direction index and the MVD code is shown in the table below.

[0177] [Table 5]

[0178] Referring to Table 5 above, the MVD code (eg, MmvdSign) is determined by the value of the direction index (eg, mmvd_direction_idx), and the MVD code (eg, MmvdSign) is derived for the L0 reference picture and the L1 reference picture.

[0179] Based on the distance index (eg, mmvd_distance_idx) and direction index (eg, mmvd_direction_idx) as described above, the MVD offset can be calculated using the following formula:

[0180] <Formula 2>

number

[0181] <Formula 3>

number

[0182] In Equation 2 and Equation 3, the MMVD distance (MmvdDistance[x0][y0]) and the MMVD sign (MmvdSign[x0][y0][0], MmvdSign[x0][y0][1]) are derived based on Table 4 and / or Table 5. In summary, in the MMVD mode, a merge candidate indicated by a merge candidate flag (e.g., mmvd_cand_flag) is selected from among the merge candidates in the merge candidate list derived based on the surrounding blocks, and the selected merge candidate can be used as a base candidate (e.g., MVP). Then, the motion information (i.e., motion vector) of the current block can be derived by adding the MVD derived based on the base candidate using a distance index (e.g., mmvd_distance_idx) and a direction index (e.g., mmvd_direction_idx).

[0183] A predicted block for a current block may be derived based on motion information derived according to a prediction mode. The predicted block includes prediction samples (prediction sample array) of the current block. If the motion vector of the current block points to a fractional sample unit, an interpolation procedure may be performed, whereby prediction samples of the current block may be derived based on reference samples in fractional sample units within a reference picture. If bi-prediction is applied, prediction samples derived by a weighted sum or weighted average (according to phase) of prediction samples derived based on L0 prediction (i.e., prediction using a reference picture in reference picture list L0 and MVL0) and prediction samples derived based on L1 prediction (i.e., prediction using a reference picture in reference picture list L1 and MVL1) may be used as prediction samples of the current block. If bi-prediction is applied, when the reference picture used for L0 prediction and the reference picture used for L1 prediction are located in different temporal directions relative to the current picture (i.e., when bi-prediction is applied but corresponds to bidirectional prediction), this may be referred to as true bi-prediction.

[0184] As mentioned above, reconstructed samples and reconstructed pictures are generated based on the derived predicted samples, after which procedures such as in-loop filtering can be performed.

[0185] As described above, according to this document, when bi-prediction is applied to a current block, a predicted sample can be derived based on a weighted average. Conventionally, a bi-predictive signal (i.e., a bi-predictive sample) has been derived by a simple average of an L0 predicted signal (L0 predicted sample) and an L1 predicted signal (L1 predicted sample). That is, a bi-predictive sample is derived as an average of an L0 predicted sample based on an L0 reference picture and MVL0 and an L1 predicted sample based on an L1 reference picture and MVL1. However, according to this document, when bi-prediction is applied, a bi-predictive signal (bi-predictive sample) can be derived by a weighted average of the L0 predicted signal and the L1 predicted signal as follows:

[0186] In the above-described embodiment related to MMVD, a method that takes long-term reference pictures into account in the MVD derivation process of MMVD can be proposed, thereby maintaining and increasing compression efficiency in various applications. Furthermore, the method proposed in the embodiment of this document can be similarly applied to SMVD, which is a symmetric MVD technique used in inter mode (MVP mode), in addition to the MMVD technique used in MERGE.

[0187] FIG. 10 is a diagram illustrating a method for deriving a motion vector in inter prediction.

[0188] In one embodiment of this document, a MV derivation method is used that takes into account long-term reference pictures during the motion vector scaling (MV scaling) of a temporal motion candidate (temporal motion candidate, temporal merge candidate, or temporal mvp candidate). A temporal motion candidate can correspond to mvCol (mvLXCol). A temporal motion candidate may also be referred to as "TMVP".

[0189] The following table describes the definition of a long-term reference picture.

[0190] [Table 6]

[0191] Referring to Table 6 above, if LongTermRefPic (aPic, aPb, refIdx, LX) is 1 (true), the corresponding reference picture is marked as being used for long-term reference. For example, a reference picture that is not marked as being used for long-term reference may be a reference picture marked as being used for short-term reference. In another example, a reference picture that is not marked as being used for long-term reference and is not marked as being unused may be a reference picture marked as being used for short-term reference. Hereinafter, a reference picture marked as being used for long-term reference may be referred to as a long-term reference picture, and a reference picture marked as being used for short-term reference may be referred to as a short-term reference picture.

[0192] The following table describes the derivation of TMVP(mvLXCol).

[0193] [Table 7]

[0194] Referring to FIG. 10 and Table 7, if the reference picture type (e.g., long-term reference picture (LTRP) or short-term reference picture (STRP)) pointed to by the current picture is not the same as the type of the collocated reference picture pointed to by the collocated picture, the temporal motion vector (mvLXCol) is not used. That is, if all are long-term reference pictures or all are short-term reference pictures, colMV is derived, and if there is another type, colMV is not derived. Also, if all are long-term reference pictures or if the POC difference between the current picture and its reference picture is the same as the POC difference between the collocated picture and its reference picture, the collocated motion vector can be used as is without scaling. If it is a short-term reference picture and the POC difference is different, the scaled motion vector of the collocated block is used.

[0195] In the embodiment of this document, the MMVD used in the MERGE / SKIP mode signals a base motion vector index, a distance index, and a direction index for one coding block as information for deriving MVD information. When unidirectional prediction is performed, MVD is derived from motion information, and when bidirectional prediction is performed, symmetric MVD information is generated using a mirroring and scaling method.

[0196] When performing bi-prediction, the MVD information for L0 or L1 is scaled to generate the MVD for L1 or L0, but when referring to long-term reference pictures, a change in the MVD derivation process is required.

[0197] 11 illustrates a process for deriving MVD for MMVD according to an embodiment of the present document. The method illustrated in FIG. 11 may be for a block to which bi-prediction is applied.

[0198] Referring to Figure 11, if the distance to the L0 reference picture and the distance to the L1 reference picture are the same, the derived MmvdOffset can be used as the MVD as is, and when the POC difference (the POC difference between the L0 reference picture and the current picture and the POC difference between the L1 reference picture and the current picture) is different, the MVD can be derived by scaling or simple mirroring (i.e., -1*MmvdOffset) according to the POC difference and whether it is a long-term or short-term reference picture.

[0199] For example, a method of deriving a symmetric MVD using MMVD for a block to which bidirectional prediction is applied is not suitable for a block that uses a long-term reference picture, and in particular, when the reference picture types for each direction are different, it is difficult to expect performance improvement when using MMVD. Therefore, in the following figures and embodiments, an example is introduced in which MMVD is not applied when the reference picture types for L0 and L1 are different.

[0200] 12 illustrates a process of deriving MVD for MMVD according to another embodiment of the present document. The method illustrated in FIG. 12 may be for a block to which bi-prediction is applied.

[0201] 12, different MVD derivation methods are applied depending on whether the reference picture referenced by the current picture (or current slice, current block) is a Long-Term Reference Picture (LTRP) or a Short-Term Reference Picture (STRP). In one example, when the method of the embodiment of FIG. 12 is applied, a portion of the standard document according to this embodiment is described as in the following table.

[0202] [Table 8-1]

[0203] [Table 8-2]

[0204] 13 illustrates a process of deriving an MVD for an MMVD according to another embodiment of the present document. The method illustrated in FIG. 13 may be for a block to which bi-prediction is applied.

[0205] 13, different MVD derivation methods are applied depending on whether the reference picture referenced by the current picture (or current slice, current block) is a Long-Term Reference Picture (LTRP) or a Short-Term Reference Picture (STRP). In one example, when the method of the embodiment of FIG. 13 is applied, a portion of the standard document according to this embodiment is described as in the following table.

[0206] [Table 9-1]

[0207] [Table 9-2]

[0208] In summary, an MVD derivation process for MMVD that does not derive MVD when the reference picture types for each direction are different is described.

[0209] In one embodiment of this document, MVD is not derived in all cases where a long-term reference picture is referenced. That is, if at least one L0 or L1 reference picture is a long-term reference picture, MVD is set to 0, and MVD can be derived only when there is a short-term reference picture. This is specifically explained in the following figures and tables.

[0210] 14 shows a process of deriving MVD for MMVD according to one embodiment of the present document. The method shown in FIG. 14 may be for a block to which bi-prediction is applied.

[0211] 14, when the current picture (or current slice, current block) references only short-term reference pictures based on the highest priority condition (RefPicL0!=LTRP&&RefPicL1!=STRP), the MVD for the MMVD can be derived. In one example, when the method of the embodiment of FIG. 14 is applied, a portion of the standard document according to this embodiment is described as follows:

[0212] [Table 10-1]

[0213] [Table 10-2]

[0214] In one embodiment of this document, when the reference picture types in each direction are different, if there is a short-term reference picture, the MVD is derived, and if there is a long-term reference picture, the MVD is derived to 0. This is specifically explained in the following drawings and tables.

[0215] 15 shows a process of deriving MVD for MMVD according to one embodiment of the present document. The method shown in FIG. 15 may be for a block to which bi-prediction is applied.

[0216] 15, when the reference picture types in each direction are different, MmvdOffset is applied when a reference picture (short-term reference picture) close to the current picture is referenced, and MVD has a value of 0 when a reference picture (long-term reference picture) far from the current picture is referenced. Here, a picture close to the current picture can be considered to have a short-term reference picture, but if the close picture is a long-term reference picture, mmvdOffset can be applied to the motion vector in the list pointing to the short-term reference picture.

[0217] [Table 11]

[0218] For example, the four paragraphs included in Table 11 above can sequentially replace the bottom block (content) of the flowchart included in FIG. 15 above.

[0219] In one example, when the method of the embodiment according to FIG. 15 is applied, a portion of the standard document according to this embodiment is written as in the following table.

[0220] [Table 12-1]

[0221] [Table 12-2]

[0222] The following table provides a comparison table between the embodiments contained in this document.

[0223] [Table 13]

[0224] Referring to Table 13, a comparison is shown between methods of applying offsets taking into account reference picture type for MVD derivation of MMVD described in the embodiments according to Figures 11 to 15. In Table 13, embodiment A relates to the existing MMVD, embodiment B shows an embodiment according to Figures 11 to 13, embodiment C shows an embodiment according to Figure 14, and embodiment D shows an embodiment according to Figure 15.

[0225] That is, in the embodiments of Figures 11, 12, and 13, a method of deriving an MVD only when the reference picture types in both directions are the same is described, and in the embodiment of Figure 14, a method of deriving an MVD only when both directions are short-term reference pictures is described. In the embodiment of Figure 14, if the reference picture is a long-term reference picture for unidirectional prediction, the MVD is set to 0. Also, in the embodiment of Figure 15, a method of deriving an MVD in only one direction when the reference picture types in both directions are different is described. These differences between the embodiments represent various features of the technology described herein, and it will be understood by those skilled in the art to which this specification pertains that the effects intended by the embodiments of this specification can be achieved based on the above features.

[0226] In an embodiment of this document, if the reference picture type is a long-term reference picture, a separate process is performed. When a long-term reference picture is included, POCDiff-based scaling or mirroring does not affect performance improvement, so the MVD in the direction having a short-term reference picture is assigned the MmvdOffset value, and the MVD in the direction having a long-term reference picture is assigned the value 0. In one example, when this embodiment is applied, a portion of the standard document according to this embodiment is described as shown in the following table.

[0227] [Table 14-1]

[0228] [Table 14-2]

[0229] In another example, a portion of Table 14 above can be replaced with the following table: Referring to Table 15, Offset is applied based on the reference picture type, not POCDiff.

[0230] [Table 15]

[0231] In yet another example, a portion of Table 14 above can be replaced with the following table: Referring to Table 16, it is possible to always set MmvdOffset for L0 and −MmvdOffset for L1 without considering the reference picture type.

[0232] [Table 16]

[0233] According to one embodiment of this document, SMVD in inter mode can be performed similarly to the MMVD used in the above-mentioned MERGE mode. When bidirectional prediction is performed, whether symmetric MVD derivation is possible is signaled from the encoding device to the decoding device, and when a related flag (e.g., sym_mvd_flag) is true (or its value is 1), a second direction MVD (e.g., MVD L1) is derived by mirroring a first direction MVD (e.g., MVD L0). In this case, scaling of the first direction MVD may not be performed.

[0234] The following table shows the syntax for a coding unit according to one embodiment of this document.

[0235] [Table 17]

[0236] [Table 18]

[0237] Referring to Tables 17 and 18 above, if inter_pred_idc==PRED_BI and L0 and L1 reference pictures are available (eg, RefIdxSymL0>-1 && RefIdxSymL1>-1), sym_mvd_flag is signaled.

[0238] The following table shows the decoding procedure for an MMVD reference index according to one example.

[0239] [Table 19]

[0240] Table 19 shows the procedure for deriving the availability of L0 and L1 reference pictures. That is, if there is a forward reference picture among the L0 reference pictures, the reference picture index closest to the current picture is set to RefIdxSymL0, and the corresponding value is set to the L0 reference index. Also, if there is a backward reference picture among the L1 reference pictures, the reference picture index closest to the current picture is set to RefIdxSymL1, and the corresponding value is set to the L1 reference index.

[0241] Table 20 below shows the decoding procedure for an MMVD reference index according to another example.

[0242] [Table 20]

[0243] Referring to Table 20, when the L0 or L1 reference picture types are different, i.e., when long-term and short-term reference pictures are used, as in the embodiments described in conjunction with Figures 11, 12, and 13, in order to prevent SMVD, after reference index derivation for SMVD, if the reference picture types of L0 and L1 are different, SMVD is not used (see the last paragraph of Table 20).

[0244] In one embodiment of this document, similar to the MMVD used in the merge mode, the SMVD can be applied in the inter mode. When a long-term reference picture is used, as in the embodiment described with reference to Figure 14, in order to prevent the SMVD, the long-term reference picture can be excluded in the process of deriving a reference index for the SMVD, as shown in the following table.

[0245] [Table 21]

[0246] The following table according to another example of this embodiment shows an example of processing in which SMVD is not applied when a long-term reference picture is used after deriving a reference picture index for SMVD.

[0247] [Table 22]

[0248] In one embodiment of this document, if the reference picture type of the current picture and the reference picture type of the co-located picture are different during the TMVP colMV derivation process, the motion vector MV is set to 0. However, since this is different from the derivation method for MMVD and SMVD, this is unified.

[0249] When the reference picture type of the current picture is a long-term reference picture and the reference picture type of the co-located picture is also a long-term reference picture, the motion vector uses the co-located motion vector value as is, but in this case, the MV in MMVD and SMVD is set to 0. Here, the MV in TMVP is also set to 0 without additional derivation.

[0250] Also, even if the reference picture type is different, there may be a long-term reference picture that is close to the current picture. Taking this into consideration, instead of setting MV to 0, colMV can be used as MV without scaling.

[0251] FIG. 16 is a diagram illustrating SMVD according to one embodiment of the present document.

[0252] The method shown in FIG. 16 can be used to derive the SMVD. That is, the SMVD can be derived based on STRP (short-term reference picture) and / or LTRP (long-term reference picture). When using a mirrored L0 MVD for the L1 MVD, if the reference picture types are different, an inaccurate MVD may be derived. This is because the ratio of the distances (the distance between reference picture 0 and the current picture and the distance between reference picture 1 and the current picture) becomes large, and the correlation of the motion vectors in each direction decreases.

[0253] According to one embodiment of this document, the availability of reference pictures is checked, and if the condition is met, sym_mvd_flag can be parsed. If sym_mvd_flag is true, the MVD of L1 (MVDL1) can be derived as the mirrored MVDL0 (MVD of L0).

[0254] The following table shows a portion of the coding unit syntax according to this embodiment.

[0255] [Table 23]

[0256] Based on Table 23, the procedure for deriving sym_mvd_flag according to this embodiment can be explained.

[0257] In this embodiment, reference picture indices (RefIdxSymLX with X=0,1) for SMVD can be derived: RefIdxSymL0 can indicate (the index of) the closest reference picture with a POC smaller than that of the current picture; RefIdxSymL1 can indicate (the index of) the closest reference picture with a POC larger than that of the current picture.

[0258] The following table describes, in the form of a standard document, how to derive reference picture indexes for SMVD according to the present embodiment.

[0259] [Table 24]

[0260] The following table shows the comparison results between the embodiments. The embodiments included in Table 25 consider the reference picture type, which can improve the accuracy of MVD in SMVD. In Table 25, MVD can indicate MVD 0 (MVD of L0).

[0261] [Table 25]

[0262] Referring to Table 25, Example P shows how to derive the existing SMVD. Example Q shows how SMVD can be restricted when mixed reference picture types (e.g., STRP / LTRP or LTRP / STRP) are used in L0 and L1. Example R shows how SMVD can be restricted when referencing long-term reference pictures (LTRP).

[0263] The following table describes, in standard document format, how to derive reference picture indexes for SMVD according to Example Q of Table 25.

[0264] [Table 26]

[0265] The following table describes, in standard document format, how to derive reference picture indexes for SMVD according to Example Q of Table 25.

[0266] [Table 27]

[0267] [Table 28]

[0268] With reference to Table 27 and / or Table 28, SMVD may be restricted when referring to a long-term reference picture (LTRP). For example, with reference to Table 27, long-term reference pictures may be excluded from the reference picture checking process. This allows other reference pictures (e.g., not long-term reference pictures) to be considered for SMVD. With reference to Table 28, SMVD may not be performed if the closest reference picture from the current picture is a long-term reference picture. For example, even if the reference picture list includes a short-term reference picture, SMVD may not be performed if the closest reference picture from the current picture is a long-term reference picture.

[0269] In one example according to one embodiment of the present document, if the POC distance of L0 is greater than or equal to the POC of L1 in the MMVD procedure, the L1 MVD can be derived as a scaled or mirrored L0 MVD. If the POC distance of L0 is less than the POC of L1 in the MMVD procedure, the L0 MVD can be derived as a scaled or mirrored L1 MVD in the MMVD procedure.

[0270] FIG. 17 is a flow chart illustrating a method for deriving the MMVD according to one embodiment of the present document.

[0271] In one embodiment of this document, MVD can be derived in MMVD taking into account the POC difference and / or reference picture type. Referring to Figure 17, currPocDiffLX can mean the difference between the POC of the current picture and the POC of the reference picture LX. CurrPocDiffL0 and currPocDiffL1 can be compared with each other, and the type of the reference picture can be checked ("refPicList0 != LTRP" or "refPicList1 != LTRP"). Considering the condition, MmvdOffset (derived using mmvd_cand_flag, mmvd_distance_idx, and / or mmvd_direction_idx) can be assigned the same value as mMvdLX, a mirrored value, or a scaled value.

[0272] The following table shows a portion of the standard document according to this embodiment.

[0273] [Table 29-1]

[0274] [Table 29-2]

[0275] When the current picture references one or more long-term reference pictures (LTRPs), the mirroring procedure that considers the POC distance may not be necessary. This is because the mirroring MVD obtained from the reference picture that is much farther away than other MVDs is not effective in terms of accuracy. A proposal to solve this problem is described below.

[0276] The following table shows the comparison results between the examples.

[0277] [Table 30]

[0278] Referring to Table 30, Example X shows an existing method for deriving MMVD. Example Y may restrict the MMVD procedure when one or more long-term reference pictures are referenced by the current block. That is, in Example Y, the POC distance comparison procedure for long-term reference pictures may be omitted. Example Z may restrict the MMVD derivation procedure for all cases. That is, in Example Z, the POC distance comparison procedure may be omitted. In Table 30, "offset" may refer to "MmvdOffset."

[0279] 18 is a flowchart illustrating a method for deriving an MMVD according to one embodiment of the present document. The flowchart in FIG. 18 can illustrate a method for deriving an MMVD according to Example Y above.

[0280] Referring to Figure 18, the condition of comparing POC differences when the reference picture type is a long-term reference picture can be removed, and the anchor MVD used for the mirroring procedure can be fixed to the L0 MVD.

[0281] The following table describes, in standard document format, how to derive the MMVD according to Example Y of Table 30.

[0282] [Table 31-1]

[0283] [Table 31-2]

[0284] 19 is a flowchart illustrating a method for deriving an MMVD according to one embodiment of the present document. The flowchart in FIG. 19 can illustrate a method for deriving an MMVD according to Example Z described above.

[0285] 19, in Example Z, the derivation procedure of the MMVD can be restricted for all cases. For all cases, the condition of comparing POC differences can be removed, and the anchor MVD used for the mirroring or scaling procedure can be fixed to the L0 MVD.

[0286] The following table describes, in standard document format, how to derive the MMVD according to Example Z of Table 30.

[0287] [Table 32-1]

[0288] [Table 32-2]

[0289] Also, in one example of this embodiment, the requirement to compare POC differences can be removed for all cases, and only the mirroring scheme can be used. The following table describes, in the form of a standard document, how to derive the MMVD in this example.

[0290] [Table 33]

[0291] The following drawings are created to explain a specific example of the present specification. The names of specific devices and names of specific signals / messages / fields shown in the drawings are provided for illustrative purposes only, and the technical features of the present specification are not limited to the specific names used in the following drawings.

[0292] 20 and 21 schematically illustrate an example of a video / image encoding method and related components according to an embodiment of the present document. The method disclosed in FIG. 20 may be performed by the encoding device disclosed in FIG. 2. Specifically, for example, S2000 to S2040 in FIG. 20 may be performed by the prediction unit 220 of the encoding device, and S2050 may be performed by the residual processing unit 230 of the encoding device. S2060 may be performed by the entropy coding (encoding) unit 240 of the encoding device. The method disclosed in FIG. 20 may include the embodiments described above in this document.

[0293] 20, the encoding apparatus derives an inter prediction mode for a current block in a current picture (S2000). Here, the inter prediction mode may include the above-mentioned merge mode, AMVP mode (a mode using a motion vector predictor candidate), MMVD, and SMVD.

[0294] The encoding device derives reference pictures for the inter prediction mode (S2010). In one example, the reference pictures may be included in reference picture list 0 (or L0, reference picture list L0) or reference picture list 1 (or L1, reference picture list L1). For example, the encoding device may construct a reference picture list for each slice included in the current picture.

[0295] The encoding apparatus derives motion information for prediction of the current block based on the inter prediction mode (S2020). The motion information may include a reference picture index and a motion vector. For example, the encoding apparatus may derive a reference index for SMVD (symmetric motion vector reference index). The reference index for SMVD may point to a reference picture for application of SMVD. The reference index for SMVD may include a reference index L0 (RefIdxSumL0) and a reference index L1 (RefIdxSumL1).

[0296] The encoding device can construct a motion vector predictor candidate list and derive a motion vector predictor based on the list. The encoding device can derive a motion vector based on the symmetric MVD and the motion vector predictor.

[0297] The encoding apparatus generates a prediction sample based on the motion information (S2030). The encoding apparatus can generate the prediction sample based on a motion vector and a reference picture index included in the motion information. For example, the prediction sample can be generated based on a block (or sample) indicated by the motion vector among blocks (or samples) in the reference picture indicated by the reference picture index.

[0298] The encoding apparatus generates prediction-related information including the inter-prediction mode (S2040). The prediction-related information may include information about MMVD, information about SMVD, and the like.

[0299] The encoding apparatus derives residual information based on the predicted samples (S2050). Specifically, the encoding apparatus may derive residual samples based on the predicted samples and original samples. The encoding apparatus may derive residual information based on the residual samples. The above-described transform and quantization processes may be performed to derive the residual information.

[0300] The encoding device encodes the image / video information including the prediction-related information and the residual information (S2060). The encoded image / video information can be output in the form of a bitstream. The bitstream can be transmitted to a decoding device via a network or a (digital) storage medium.

[0301] The image / video information may include various information according to embodiments of the present document, for example, the image / video information may include information disclosed in at least one of Tables 1 to 33 above.

[0302] In one embodiment, the prediction-related information may include inter-prediction type information indicating whether bi-prediction is applied to the current block in the current picture. For example, based on the inter-prediction type information, the prediction-related information may include symmetric motion vector differential reference flag information indicating whether symmetric motion vector differential reference is applicable. Furthermore, the reference picture may include a short-term reference picture. Based on the symmetric motion vector differential reference flag information, a symmetric motion vector differential reference index may be derived from a reference index pointing to a short-term reference picture. The motion information may include a motion vector for the current block and the symmetric motion vector differential reference index. The prediction sample may be generated based on the motion vector and the symmetric motion vector differential reference index.

[0303] In one embodiment, the symmetric motion vector differential reference indexes may be derived based on POC differences between each of the short-term reference pictures and the current picture. Here, according to one example, the POC difference between the current picture and the previous reference picture from the current picture may be greater than 0. In another example, the POC difference between the current picture and the subsequent reference picture from the current picture may be less than 0. However, this is merely an example.

[0304] In one embodiment, the encoding apparatus may configure a reference picture list L0 (or reference picture list 0) for L0 prediction and a reference picture list L1 (or reference picture list 0) for L1 prediction. For example, the short-term reference pictures may include a short-term reference picture L0 included in the reference picture list L0 and a short-term reference picture L1 included in the reference picture list L1. The POC difference may include a first POC difference between the short-term reference picture L0 and the current picture and a second POC difference between the short-term reference picture L1 and the current picture. For example, the symmetric motion vector differential reference index may include a symmetric motion vector differential reference index L0 and a symmetric motion vector differential reference index L1. The symmetric motion vector differential reference index L0 may be derived based on the first POC difference. The symmetric motion vector differential reference index L1 may be derived based on the second POC difference.

[0305] In one embodiment, the first POC difference may be the same as the second POC difference.

[0306] In one embodiment, the encoding apparatus may construct a reference picture list L0 for L0 prediction. The short-term reference pictures may include a first short-term reference picture L0 and a second short-term reference picture L0 included in the reference picture list L0. For example, the POC difference may include a third POC difference between the first short-term reference picture L0 and the current picture and a fourth POC difference between the second short-term reference picture L0 and the current picture. For example, the symmetric motion vector difference reference index may include a symmetric motion vector difference reference index L0. Based on a comparison between the third and fourth POC differences, a reference picture index pointing to the first short-term reference picture L0 may be used as the symmetric motion vector difference reference index L0.

[0307] In one embodiment, if the third POC difference is smaller than the fourth POC difference, the reference picture index pointing to the first short-term reference picture L0 can be used as the symmetric motion vector differential reference index L0.

[0308] In one embodiment, the image information may include information about MVD (Motion Vector Differences). The motion information may include MV (Motion Vector). Based on the information about the MVD, an MVDL0 for L0 prediction may be derived. The MV may be derived based on the MVDL0 and the MVDL1.

[0309] In one embodiment, the magnitude of MVDL1 may be the same as the magnitude of MVDL0. The sign of MVDL1 may be opposite to the sign of MVDL0.

[0310] 22 and 23 schematically illustrate an example of an image / video decoding method and related components according to an embodiment of the present document. The method disclosed in FIG. 22 may be performed by the decoding device disclosed in FIG. 3. Specifically, for example, S2200 in FIG. 22 may be performed by the entropy decoding unit 310 of the decoding device, S2210 to S2230 may be performed by the prediction unit 330 of the decoding device, S2240 may be performed by the residual processing unit 320 of the decoding device, and S2250 may be performed by the addition unit 340 of the decoding device. The method disclosed in FIG. 22 may include the embodiments described above in this document.

[0311] Referring to FIG. 22, a decoding device receives / acquires image / video information (S2200). The decoding device may receive / acquire the image / video information via a bitstream. The image / video information may include prediction-related information (including prediction mode information) and residual information. The prediction-related information may include information related to MMVD, information related to SMVD, etc. In addition, the image / video information may include various information according to embodiments of the present document. For example, the image / video information may include the information described in conjunction with FIGS. 1 to 19 and / or the information disclosed in at least one of Tables 1 to 33 above.

[0312] The decoding device derives an inter prediction mode for the current block based on the prediction-related information (S2210). Here, the inter prediction mode may include the merge mode, AMVP mode (a mode using a motion vector predictor candidate), MMVD, and SMVD.

[0313] The decoding apparatus derives motion information for prediction of the current block based on the inter prediction mode (S2220). The motion information may include a reference picture index and a motion vector. For example, the decoding apparatus may derive a reference index for SMVD. The reference index for SMVD may point to a reference picture for application of SMVD. The reference index for SMVD may include a reference index L0 (RefIdxSumL0) and a reference index L1 (RefIdxSumL1).

[0314] The decoding device can construct a motion vector predictor candidate list and derive a motion vector predictor based on the list. The decoding device can derive a motion vector based on the symmetric MVD and the motion vector predictor.

[0315] The decoding apparatus generates a prediction sample based on the motion information (S2230). The decoding apparatus can generate the prediction sample based on a motion vector and a reference picture index included in the motion information. For example, the prediction sample can be generated based on a block (or sample) indicated by the motion vector among blocks (or samples) in the reference picture pointed to by the reference picture index.

[0316] The decoding device generates residual samples based on the residual information (S2240). Specifically, the decoding device may derive quantized transform coefficients based on the residual information. The quantized transform coefficients may have the form of a one-dimensional vector based on a coefficient scanning order. The decoding device may derive transform coefficients based on an inverse quantization procedure for the quantized transform coefficients. The decoding device may derive residual samples based on an inverse transform procedure for the transform coefficients.

[0317] The decoding device generates reconstructed samples of the current picture based on the predicted samples and the residual samples (S2250). The decoding device may further perform a filtering procedure to generate (modified) reconstructed samples.

[0318] In one embodiment, the prediction-related information may include inter-prediction type information indicating whether bi-prediction is applied to the current block in the current picture. For example, based on the inter-prediction type information, the prediction-related information may include symmetric motion vector differential reference flag information indicating whether symmetric motion vector differential reference is applicable. Furthermore, the reference picture may include a short-term reference picture. Based on the symmetric motion vector differential reference flag information, a symmetric motion vector differential reference index may be derived from a reference index pointing to a short-term reference picture. The motion information may include a motion vector for the current block and the symmetric motion vector differential reference index. The prediction sample may be generated based on the motion vector and the symmetric motion vector differential reference index.

[0319] In one embodiment, the symmetric motion vector differential reference indexes may be derived based on POC differences between each of the short-term reference pictures and the current picture. Here, according to one example, the POC difference between the current picture and the previous reference picture from the current picture may be greater than 0. In another example, the POC difference between the current picture and the subsequent reference picture from the current picture may be less than 0. However, this is merely an example.

[0320] In one embodiment, the encoding apparatus may configure a reference picture list L0 (or reference picture list 0) for L0 prediction and a reference picture list L1 (or reference picture list 0) for L1 prediction. For example, the short-term reference pictures may include a short-term reference picture L0 included in the reference picture list L0 and a short-term reference picture L1 included in the reference picture list L1. The POC difference may include a first POC difference between the short-term reference picture L0 and the current picture and a second POC difference between the short-term reference picture L1 and the current picture. For example, the symmetric motion vector differential reference index may include a symmetric motion vector differential reference index L0 and a symmetric motion vector differential reference index L1. The symmetric motion vector differential reference index L0 may be derived based on the first POC difference. The symmetric motion vector differential reference index L1 may be derived based on the second POC difference.

[0321] In one embodiment, the first POC difference may be the same as the second POC difference.

[0322] In one embodiment, the encoding apparatus may construct a reference picture list L0 for L0 prediction. The short-term reference pictures may include a first short-term reference picture L0 and a second short-term reference picture L0 included in the reference picture list L0. For example, the POC difference may include a third POC difference between the first short-term reference picture L0 and the current picture and a fourth POC difference between the second short-term reference picture L0 and the current picture. For example, the symmetric motion vector difference reference index may include a symmetric motion vector difference reference index L0. Based on a comparison between the third and fourth POC differences, a reference picture index pointing to the first short-term reference picture L0 may be used as the symmetric motion vector difference reference index L0.

[0323] In one embodiment, if the third POC difference is smaller than the fourth POC difference, the reference picture index pointing to the first short-term reference picture L0 can be used as the symmetric motion vector differential reference index L0.

[0324] In one embodiment, the image information may include information about MVD (Motion Vector Differences). The motion information may include MV (Motion Vector). Based on the information about the MVD, an MVDL0 for L0 prediction may be derived. The MV may be derived based on the MVDL0 and the MVDL1.

[0325] In one embodiment, the magnitude of MVDL1 may be the same as the magnitude of MVDL0. The sign of MVDL1 may be opposite to the sign of MVDL0.

[0326] In the above-described embodiments, the method is described based on a flowchart as a series of steps or blocks, but the embodiment is not limited to the order of the steps, and some steps may occur in a different order or simultaneously than those described above. Also, those skilled in the art will understand that the steps shown in the flowchart are not exclusive, and different steps may be included, or one or more steps of the flowchart may be deleted without affecting the scope of the embodiments herein.

[0327] The methods according to the embodiments of the present document described above may be implemented in the form of software, and the encoding device and / or decoding device according to the present document may be included in an image processing device such as a TV, a computer, a smartphone, a set-top box, or a display device.

[0328] When an embodiment of this document is implemented in software, the method described above may be implemented with modules (processes, functions, etc.) that perform the functions described above. The modules may be stored in memory and executed by a processor. The memory may be internal or external to the processor and may be coupled to the processor by various well-known means. The processor may include an application-specific integrated circuit (ASIC), other chipsets, logic circuits, and / or data processing devices. The memory may include read-only memory (ROM), random access memory (RAM), flash memory, a memory card, a storage medium, and / or other storage devices. That is, the embodiments described herein may be implemented on a processor, microprocessor, controller, or chip. For example, the functional units illustrated in the figures may be implemented on a computer, processor, microprocessor, controller, or chip. In this case, information (e.g., information on instructions) or algorithms for implementation may be stored on a digital storage medium.

[0329] In addition, the decoding device and encoding device to which the embodiments of this document are applied may be included in a multimedia broadcast transmitting / receiving device, a mobile communication terminal, a home cinema video device, a digital cinema video device, a surveillance camera, a video interaction device, a real-time communication device such as video communication, a mobile streaming device, a storage medium, a camcorder, a video-on-demand (VoD) service providing device, an over-the-top (OTT) video (over-the-top) device, an internet streaming service providing device, a three-dimensional (3D) video device, a virtual reality (VR) device, an augmented reality (AR) device, an image telephone video device, a transportation terminal (e.g., a vehicle terminal (including an autonomous vehicle), an airplane terminal, a ship terminal, etc.), a medical video device, etc., and may be used to process video signals or data signals. For example, an over-the-top (OTT) video (over-the-top) device may include a game console, a Blu-ray player, an internet access TV, a home theater system, a smartphone, a tablet PC, a digital video recorder (DVR), etc.

[0330] In addition, a processing method to which an embodiment of this document is applied can be produced in the form of a computer-executable program and stored in a computer-readable recording medium. Multimedia data having a data structure according to an embodiment of this document can also be stored in a computer-readable recording medium. The computer-readable recording medium includes all types of storage devices and distributed storage devices in which computer-readable data is stored. The computer-readable recording medium may include, for example, a Blu-ray Disc (BD), a Universal Serial Bus (USB), a ROM, a PROM, an EPROM, an EEPROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device. The computer-readable recording medium also includes media embodied in the form of a carrier wave (e.g., transmission via the Internet). The bitstream generated by the encoding method can be stored in a computer-readable recording medium or transmitted via a wired or wireless communication network.

[0331] Furthermore, the embodiments of the present document may be embodied in a computer program product with program code, which may be executed by a computer in accordance with the embodiments of the present document. The program code may be stored on a computer-readable carrier.

[0332] FIG. 24 illustrates an example of a content streaming system to which the embodiments disclosed herein can be applied.

[0333] Referring to FIG. 24, a content streaming system to which the embodiments of this document are applied may broadly include an encoding server, a streaming server, a web server, a media storage, a user device, and a multimedia input device.

[0334] The encoding server compresses content input from a multimedia input device such as a smartphone, camera, camcorder, etc. into digital data to generate a bitstream and transmits the bitstream to the streaming server. As another example, if a multimedia input device such as a smartphone, camera, camcorder, etc. directly generates a bitstream, the encoding server may be omitted.

[0335] The bitstream can be generated by an encoding method or a bitstream generation method to which an embodiment of this document is applied, and the streaming server can temporarily store the bitstream during the process of transmitting or receiving the bitstream.

[0336] The streaming server transmits multimedia data to a user device based on a user request via a web server, and the web server acts as an intermediary that informs the user of available services. When a user requests a desired service from the web server, the web server transmits the request to the streaming server, which then transmits the multimedia data to the user. In this case, the content streaming system may include a separate control server, which controls commands and responses between devices in the content streaming system.

[0337] The streaming server can receive content from a media storage device (storage) and / or an encoding server. For example, when receiving content from the encoding server, the content can be received in real time. In this case, the streaming server can store the bitstream for a certain period of time to provide a smooth streaming service.

[0338] Examples of the user device include a mobile phone, a smartphone, a laptop computer, a digital broadcasting terminal, a PDA (Personal Digital Assistant), a PMP (Portable Multimedia Player), a navigation system, a slate PC, a tablet PC, an ULTRABOOK (registered trademark), a wearable device (e.g., a smartwatch, smart glass, or a head mounted display (HMD)), a digital TV, a desktop computer, and a digital signature.

[0339] Each server in the content streaming system can be operated as a distributed server, and in this case, data received by each server can be processed in a distributed manner.

[0340] The claims described herein may be combined in various ways. For example, technical features of method claims herein may be combined to be embodied as an apparatus, and technical features of apparatus claims herein may be combined to be embodied as a method. Furthermore, technical features of method claims herein and technical features of apparatus claims herein may be combined to be embodied as an apparatus, and technical features of method claims herein and technical features of apparatus claims herein may be combined to be embodied as a method.

Claims

1. 1. An image decoding method performed by a decoding device, comprising: receiving, from a bitstream, image information including residual information and prediction-related information including information about motion vector difference (MVD); deriving an inter prediction mode for a current block in a current picture based on the prediction-related information; deriving motion information for the current block based on the inter prediction mode; generating prediction samples based on the motion information; generating residual samples based on the residual information; generating reconstructed samples of the current picture based on the predicted samples and the residual samples; the prediction-related information includes inter-prediction type information indicating whether bi-prediction is applied to the current block; Based on the inter prediction type information, the prediction related information further includes symmetric motion vector differential flag information indicating whether symmetric motion vector differential reference is applied; deriving a symmetric motion vector difference reference index from a reference index indicating a short-term reference picture based on the symmetric motion vector difference flag information; deriving the symmetric motion vector differential reference indexes based on a picture order count (POC) difference between each of the short-term reference pictures and the current picture; deriving an MVDL0 for L0 prediction based on the information about the MVD; A method in which MVDL1 for L1 prediction is derived based on the MVDL0.

2. 1. An image encoding method performed by an encoding device, comprising: deriving an inter prediction mode for a current block in a current picture; deriving a reference picture for the inter prediction mode; deriving motion information for prediction of a current block based on the inter prediction mode; generating prediction samples based on the motion information; generating prediction-related information including information about the inter prediction mode and information about a motion vector difference (MVD); generating residual information based on the predicted samples; encoding image information including the residual information and the prediction-related information including the information regarding the inter prediction mode and the information regarding the MVD; the prediction-related information includes inter-prediction type information indicating whether bi-prediction is applied to the current block; Based on the inter prediction type information, the prediction related information further includes symmetric motion vector differential flag information indicating whether symmetric motion vector differential reference is applied; the reference pictures include short-term reference pictures; deriving a symmetric motion vector difference reference index from a reference index indicating the short-term reference picture based on the symmetric motion vector difference flag information; deriving the symmetric motion vector differential reference indexes based on a picture order count (POC) difference between each of the short-term reference pictures and the current picture; deriving an MVDL0 for L0 prediction based on the information about the MVD; A method in which MVDL1 for L1 prediction is derived based on the MVDL0.

3. In a method for transmitting data relating to an image, obtaining a bitstream of the data, the bitstream comprising: deriving an inter prediction mode for a current block in a current picture; deriving a reference picture for the inter prediction mode; deriving motion information for prediction of a current block based on the inter prediction mode; generating prediction samples based on the motion information; generating prediction-related information including information about the inter prediction mode and information about a motion vector difference (MVD); generating residual information based on the predicted samples; encoding image information including the residual information and the prediction-related information including the information on the inter prediction mode and the information on the MVD; transmitting the data including the bitstream; the prediction-related information includes inter-prediction type information indicating whether bi-prediction is applied to the current block; Based on the inter prediction type information, the prediction related information further includes symmetric motion vector differential flag information indicating whether symmetric motion vector differential reference is applied; the reference pictures include short-term reference pictures; deriving a symmetric motion vector difference reference index from a reference index indicating the short-term reference picture based on the symmetric motion vector difference flag information; deriving the symmetric motion vector differential reference indexes based on a picture order count (POC) difference between each of the short-term reference pictures and the current picture; deriving an MVDL0 for L0 prediction based on the information about the MVD; A method in which MVDL1 for L1 prediction is derived based on the MVDL0.

Citation Information

Patent Citations

  • Symmetric motion vector difference coding

    WO2020132272A1

  • Symmetric motion vector difference coding

    WO2020221256A1