Method and apparatus for motion vector prediction-based image / video coding
Patent Information
- Application Number
- JP2024060953
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-06-13
- Filing Date
- 2024-04-04
- Publication Date
- 2025-03-11
- Estimated Expiration
- 2040-06-15
AI Technical Summary
【0017】 本文書によれば、全般的な映像/ビデオ圧縮効率を上げることができる。
Smart Images

Figure 0007644286000023 
Figure 0007644286000024 
Figure 0007644286000025
Abstract
Description
[Technical field]
[0001] The present disclosure relates to a motion vector prediction based image / video coding method and apparatus. [Background technology]
[0002] In recent years, the demand for high-resolution, high-quality images / videos such as 4K or 8K or higher UHD (Ultra High Definition) images / videos is increasing in various fields. As the image / video data has higher resolution and quality, the amount of information or bits to be transmitted increases relatively compared to existing image / video data, so that when image data is transmitted using a medium such as an existing wired or wireless broadband line or image / video data is stored using an existing storage medium, the transmission cost and storage cost increase.
[0003] In addition, in recent years, interest in and demand for immersive media such as virtual reality (VR), artificial reality (AR) content, and holograms has been increasing, and the broadcast of images / videos having different image characteristics from real images, such as game images, has been increasing.
[0004] Therefore, there is a demand for highly efficient image / video compression technology to effectively compress and transmit, store, and play back high-resolution, high-quality image / video information having the various characteristics described above. Summary of the Invention [Problem to be solved by the invention]
[0005] According to one embodiment of the present document, a method and apparatus for increasing image / video coding efficiency is provided.
[0006] According to one embodiment of the present document, a method and apparatus for efficiently performing inter prediction in an image / video coding system are provided.
[0007] According to one embodiment of the present document, a method and apparatus for performing motion vector prediction-based inter prediction are provided.
[0008] According to one embodiment of the present document, a method and apparatus are provided for signaling information regarding motion vector differentials in inter prediction.
[0009] According to one embodiment of the present document, a method and apparatus for signaling prediction related information when bi-prediction is applied to a current block is provided.
[0010] According to one embodiment of the present document, a method and apparatus for signaling a L1 motion vector zero difference flag and / or a SMVD flag is provided.
[0011] According to one embodiment of the present document, there is provided a video / image decoding method performed by a decoding device.
[0012] According to one embodiment of the present document, there is provided a decoding device for performing video / image decoding.
[0013] According to one embodiment of the present document, there is provided a video / image encoding method performed by an encoding device.
[0014] According to one embodiment of the present document, an encoding device for performing video / image encoding is provided.
[0015] According to one embodiment of the present document, a computer-readable digital storage medium is provided having encoded video / image information generated by the video / image encoding method disclosed in at least one of the embodiments of the present document stored thereon.
[0016] According to one embodiment of the present document, a computer-readable digital storage medium is provided having encoded information or encoded video / image information stored thereon, which enables a decoding device to perform the video / image decoding method disclosed in at least one of the embodiments of the present document. Effect of the Invention
[0017] This document can improve the overall image / video compression efficiency.
[0018] According to this document, information regarding motion vector differentials can be signaled efficiently.
[0019] According to this document, when bi-prediction is applied to the current block, the L1 motion vector differential can be derived efficiently.
[0020] This document provides an efficient signaling of information used to derive L1 motion vector differentials, thereby reducing the complexity of the coding system.
[0021] According to this document, it is possible to avoid bit waste that may occur in signaling information about inter-prediction modes, and to improve overall coding efficiency.
[0022] 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. Thus, 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 derived from the technical features of this document. [Brief description of the drawings]
[0023] [Figure 1] FIG. 1 illustrates a schematic diagram of an example of a video / image coding system to which this document can be applied. [Diagram 2] FIG. 2 is a diagram illustrating a schematic configuration of a video / image encoding device to which this document can be applied. [Diagram 3] FIG. 3 is a diagram illustrating the configuration of a video / image decoding device to which this document can be applied. [Figure 4] FIG. 4 illustrates an example of an inter-prediction based video / picture encoding method. [Diagram 5] FIG. 5 illustrates an example of an inter-prediction based video / picture decoding method. [Figure 6] FIG. 6 exemplarily illustrates an inter prediction procedure. [Figure 7] FIG. 7 exemplarily shows spatially neighboring blocks used for motion information candidate derivation in the MVP mode. [Figure 8] FIG. 8 shows a schematic diagram of how the MVP candidate list is constructed according to this document. [Figure 9] FIG. 9 is a diagram for explaining a symmetric MVD. [Figure 10] FIG. 10 illustrates generally an example of a video / image encoding method and associated components according to embodiment(s) of the present document. [Figure 11] FIG. 11 illustrates generally one example of a video / image encoding method and associated components according to embodiment(s) of the present document. [Figure 12] FIG. 12 illustrates generally an example of a video / image decoding method and associated components according to embodiment(s) of the present document. [Figure 13] FIG. 13 illustrates generally an example of a video / image decoding method and associated components according to embodiment(s) of the present document. [Figure 14] FIG. 14 illustrates an example of a content streaming system in which the embodiments disclosed herein can be applied. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0024] This document may have various modifications and may have various embodiments, and a specific embodiment will be illustrated in the drawings and described in detail. However, this is not intended to limit this document to a specific embodiment. Terms commonly used in this specification are used merely to describe a specific embodiment, and are not intended to limit the technical ideas of this document. A singular expression includes a plural expression unless the context clearly indicates otherwise. In this specification, the terms "include" or "have" are intended to specify the presence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification, and should be understood not to preclude the presence or addition of one or more other features, numbers, steps, operations, components, parts, or combinations thereof.
[0025] Meanwhile, each component in the drawings described in this document is illustrated independently for the convenience of explaining the different characteristic functions, and does not mean that each component is realized by separate hardware or software. For example, two or more components among the components may be combined to form one component, or one component may be divided into multiple components. An embodiment in which each component is integrated and / or separated is also included in the scope of the rights of this document as long as it does not deviate from the essence of this document.
[0026] 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. Also, the methods / embodiments disclosed in this document may be applied to methods disclosed in the essential video coding (EVC) standard, the AOMedia Video 1 (AV1) standard, the 2nd generation of audio video coding standard (AVS2) or next generation video / image coding standards (ex. H.267 or H.268, etc.).
[0027] Various embodiments for video / image coding are presented in this document, and unless otherwise stated, the embodiments may be performed in combination with each other.
[0028] Hereinafter, the embodiments of the present disclosure 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 duplicated descriptions of the same components may be omitted.
[0029] FIG. 1 illustrates a schematic diagram of an example of a video / image coding system in which embodiments of the present document can be applied.
[0030] As shown in Figure 1, the 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 in the form of a file or streaming via a digital storage medium or a network.
[0031] The source device may include a video source, an encoding device, and a sending unit. The receiving device may include a receiving unit, a decoding device, and a renderer. The encoding device may be referred to as a video / video encoding device, and the decoding device may be referred to as a video / video decoding device. The transmitter may be included in the encoding device. The receiver may be included in the decoding device. The renderer may also include a display unit, which may be a separate device or an external component.
[0032] A video source may acquire video / images through a video / image capture, synthesis, or generation process. A video source may include a video / image capture device and / or a video / image generation device. A video / image capture device may include, for example, one or more cameras, a video / image archive containing previously captured video / images, etc. A video / image generation device may include, for example, a computer, a tablet, a smartphone, etc., and may (electronically) generate video / images. For example, a virtual video / image may be generated via a computer, etc., in which case the video / image capture process may be replaced with a process in which related data is generated.
[0033] An encoding device may encode an input video / image. The encoding device may perform a series of steps such as prediction, transformation, quantization, etc. for compression and coding efficiency. The encoded data (encoded video / image information) may be output in the form of a bitstream.
[0034] The transmitting unit can transmit the encoded video / image information or data output in the form of a bitstream to a receiving unit of a receiving device via a digital storage medium or a network in the form of a file or streaming. The digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmitting unit can include elements for generating a media file through a predetermined file format and can include elements for transmission via a broadcasting / communication network. The receiving unit can receive / extract the bitstream and transmit it to a decoding device.
[0035] The decoding device can decode the video / image by performing a series of steps such as inverse quantization, inverse transformation, and prediction that correspond to the operations of the encoding device.
[0036] The renderer may render the decoded video / image, and the rendered video / image may be displayed via a display unit.
[0037] In this document, video may mean a collection of a series of images over time. A picture generally means a unit showing one image in a particular time period, and a slice / tile is a unit constituting a part of a picture in coding. A slice / tile may include one or more coding tree units (CTUs). One picture may be composed of one or more slices / tiles. One picture may be composed of one or more tile groups. 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 having a height equal to the height of the picture and a width specified by syntax elements in the picture parameter set. The tile row is a rectangular region of CTUs having a height specified by syntax elements in the picture parameter set and a width equal to the width of the picture.A tile scan is 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.
[0038] Alternatively, a picture may be partitioned into two or more sub-pictures, where a sub-picture is a rectangular region of one or more slices within a picture.
[0039] A pixel or pel can mean the smallest unit that constitutes one picture (or image). A term corresponding to a pixel can also be used as a "sample." A sample can generally represent a pixel or a pixel value, and can represent only a pixel / pixel value of a luma component, or can represent only a pixel / pixel value of a chroma component.
[0040] A unit may indicate 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. A unit may be used interchangeably with terms such as block or area depending on the case. In a general case, an M×N block may include a sample (or sample array) consisting of M columns and N rows, or a set (or array) of transform coefficients.
[0041] In this document, "A or B" can mean "only A," "only B," or "both A and B." In other words, in this document, "A or B" can be interpreted as "A and / or B." For example, in this document, "A, B or C" can mean "only A," "only B," "only C," or "any combination of A, B and C."
[0042] As used in this document, a slash ( / ) or a comma can mean "and / or." For example, "A / B" can mean "A and / or B." Thus, "A / B" can mean "only A," "only B," or "both A and B." For example, "A, B, C" can mean "A, B, or C."
[0043] 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 phrase "at least one of A or B" or "at least one of A and / or B" can be interpreted in the same way as "at least one of A and B."
[0044] Additionally, 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." Additionally, "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."
[0045] 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."
[0046] Technical features described individually in one drawing in this document may be embodied individually or simultaneously.
[0047] 2 is a diagram for illustrating a schematic configuration of a video / image encoding device to which an embodiment of the present document can be applied. Hereinafter, an encoding device may include a video encoding device and / or a video encoding device. Also, a video encoding method / apparatus may include a video encoding method / apparatus. Or, a video encoding method / apparatus may include a video encoding method / apparatus.
[0048] As shown in FIG. 2, the encoding apparatus 200 may be configured to 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 division unit 210, the prediction unit 220, the residual processing unit 230, the entropy encoding unit 240, the addition unit 250, and the filtering unit 260 may be configured by one or more hardware components (e.g., an encoder chip set or a processor) according to an embodiment. In addition, the memory 270 may include a decoded picture buffer (DPB) and may be configured by a digital storage medium. The hardware components may further include the memory 270 as an internal / external component.
[0049] 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 from a coding tree unit (CTU) or a largest coding unit (LCU) according to a quad-tree binary-tree ternary-tree (QTBTTT) structure. For example, one coding unit may be divided into a plurality of coding units of a deeper depth based on a quad-tree structure, a binary tree structure, and / or a ternary structure. In this case, for example, the quad-tree structure may be applied first, and then the binary tree structure and / or the ternary structure may be applied. Alternatively, the binary tree structure may be applied first. The 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 maximum 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 necessary, 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: Prediction Unit) or a transform unit (TU: Transform Unit). In this case, the prediction unit and the transform unit may each be divided or partitioned from the final coding unit described above.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.
[0050] The unit may be used interchangeably with terms such as block or area. In general, an M×N block may refer to a collection of samples or transform coefficients consisting of M columns and N rows. A sample may generally refer to a pixel or pixel value, may refer to only a pixel / pixel value of a luma component, or may refer to only a pixel / pixel value of a chroma component. A sample may be used as a term that corresponds to a pixel or pel of one picture (or image).
[0051] The encoding apparatus 200 may generate a residual signal (residual block, residual sample array) by subtracting a prediction signal (predicted block, prediction sample array) output from the inter prediction unit 221 or the intra prediction unit 222 from an input video signal (original block, original sample array), and the generated residual signal is transmitted to the conversion unit 232. In this case, as shown in the figure, a unit that subtracts a prediction signal (predicted block, prediction sample array) from an input video signal (original block, original sample array) in the encoder 200 may be called 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 a prediction sample for the current block. The prediction unit may determine whether intra prediction or inter prediction is applied in units of the current block or CU. The prediction unit may generate various information related to prediction, such as prediction mode information, as will be described later in the description of each prediction mode, and transmit the information to the entropy encoding unit 240. The prediction-related information can be encoded by the entropy encoding unit 240 and output in the form of a bitstream.
[0052] The intra prediction unit 222 may predict the current block by referring to samples in the current picture. The referenced samples may be located in the neighborhood of the current block or may be located away from the current block depending on the prediction mode. In the intra prediction, the prediction mode may include a plurality of non-directional modes and a plurality of directional modes. The non-directional modes may include, for example, a DC mode and a planar mode. The directional modes may include, for example, 33 directional prediction modes or 65 directional prediction modes depending on the fineness of the prediction direction. However, this is merely an example, and more or less directional prediction modes may be used depending on the setting. The intra prediction unit 222 may also determine the prediction mode to be applied to the current block using the prediction modes applied to the neighboring blocks.
[0053] 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. In this case, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information may be predicted in units of blocks, sub-blocks, or samples based on the correlation of motion information between a neighboring block and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the neighboring block may include a spatial neighboring block present in the current picture and a temporal neighboring block 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), etc., and the reference picture including the temporal neighboring block may be called a collocated picture (colPic). For example, the inter prediction unit 221 may generate information indicating which candidate is used to derive a motion vector and / or a reference picture index of the current block by forming a motion information candidate list based on neighboring blocks. Inter prediction may be performed based on various prediction modes, and for example, in the case of a skip mode and a merge mode, the inter prediction unit 221 may use motion information of a neighboring block as motion information of the current block. In the case of the skip mode, unlike the merge mode, a residual signal may not be transmitted.In the case of motion vector prediction (MVP) mode, the motion vector of the neighboring block can be used as a motion vector predictor, and the motion vector of the current block can be indicated by signaling the motion vector difference.
[0054] The prediction unit 220 may generate a prediction signal based on various prediction methods, which will be described later. For example, the prediction unit may apply intra prediction or inter prediction for prediction of one block, and may simultaneously apply intra prediction and inter prediction. This may be called combined inter and intra prediction (CIIP). The prediction unit may also be based on 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, for example, screen content coding (SCC). IBC basically performs prediction within a current picture, but may be performed similarly to inter prediction in that a reference block is derived 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 regarded as an example of intra coding or intra prediction. When the palette mode is applied, a sample value within a picture may be signaled based on information regarding a palette table and a palette index.
[0055] 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 restored signal or may be used to generate 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), or a conditionally non-linear transform (CNT). Here, the GBT refers to a transform obtained from a graph when the relationship information between pixels is expressed as a graph. The CNT refers to a transform obtained based on a prediction signal generated using all previously reconstructed pixels. In addition, the transform process may be applied to pixel blocks having the same size as a regular square, and may also be applied to blocks of variable size that are not regular squares.
[0056] The quantizer 233 quantizes the transform coefficients and transmits the quantized transform coefficients to the entropy encoding unit 240, which may encode the quantized signal (information on the quantized transform coefficients) and output the quantized signal as a bitstream. The information on the quantized transform coefficients may be referred to as residual information. The quantizer 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 on the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector form. The entropy encoding unit 240 may perform various encoding methods, such as exponential Golomb, context-adaptive variable length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC). The entropy encoding unit 240 may encode information required for video / image restoration (e.g., values of syntax elements, etc.) together with or separately from the quantized transform coefficients. The encoded information (e.g., encoded image / video information) may be transmitted or stored in the form of a bitstream in units of network abstraction layer (NAL) units. The image / video 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 image / video information may further include general constraint information. Information and / or syntax elements transmitted / signaled from an encoding device to a decoding device in this document may be included in the image / video information. The image / video information may be encoded through the above-mentioned encoding procedure and included in the bitstream.The bitstream may be transmitted via a network or may be stored in a digital storage medium, where the network may include a broadcasting network and / or a communication network, and the digital storage medium may include various storage media such as a USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. A transmitter (not shown) for transmitting the signal output from the entropy encoding unit 240 and / or a storage unit (not shown) for storing the signal may be configured as an internal / external element of the encoding apparatus 200, or the transmitter may be included in the entropy encoding unit 240.
[0057] The quantized transform coefficients output from the quantizer 233 may be used to generate a prediction signal. For example, a residual signal (residual block or residual sample) may be restored by applying inverse quantization and inverse transform to the quantized transform coefficients via the inverse quantizer 234 and the inverse transformer 235. The adder 250 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 a skip mode is applied, a predicted block may be used as a 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, and may also be used for inter prediction of the picture after filtering, as described below.
[0058] Meanwhile, luma mapping with chroma scaling (LMCS) may be applied during picture encoding and / or restoration.
[0059] 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 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, deblocking filtering, sample adaptive offset, an adaptive loop filter, a bilateral filter, etc. The filtering unit 260 may generate various information related to filtering, as will be described later in the description of each filtering method, and transmit the information to the entropy encoding unit 240. The information related to filtering may be encoded by the entropy encoding unit 240 and output in the form of a bitstream.
[0060] The modified reconstructed picture transmitted to the memory 270 may be used as a reference picture in the inter prediction unit 221. When inter prediction is applied through this, the encoding apparatus may avoid a prediction mismatch between the encoding apparatus 200 and the decoding apparatus, and may also improve encoding efficiency.
[0061] The DPB of the memory 270 may store a modified reconstructed picture for use as a reference picture in the inter prediction unit 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 prediction unit 221 to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block. The memory 270 may store reconstructed samples of reconstructed blocks in the current picture and transmit them to the intra prediction unit 222.
[0062] 3 is a diagram for briefly explaining the configuration of a video / image decoding device to which an embodiment of the present document can be applied. Hereinafter, a decoding device may include a video decoding device and / or a video decoding device. Also, a video decoding method / apparatus may include a video decoding method / apparatus. Or, a video decoding method / apparatus may include a video decoding method / apparatus.
[0063] As shown in FIG. 3, the decoding device 300 may be configured to 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 inter predictor 331 and an intra predictor 332. The residual processor 320 may include a dequantizer 321 and an inverse transformer 321. The entropy decoding unit 310, the residual processor 320, the predictor 330, the adder 340, and the filter 350 may be configured as one hardware component (e.g., a decoder chipset or processor) according to an embodiment. Also, the memory 360 may include a decoded picture buffer (DPB) and may be configured as a digital storage medium. The hardware components may further include a memory 360 as an internal / external component.
[0064] If a bitstream including image / video information is input, the decoding apparatus 300 can restore an image corresponding to a process in which the image / video information is processed by the encoding apparatus of FIG. 2. For example, the decoding apparatus 300 can derive a unit / block based on block division related information obtained from the bitstream. The decoding apparatus 300 can perform decoding using a processing unit applied in the encoding apparatus. Thus, 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 quad tree structure, a binary tree structure, and / or a ternary tree structure. One or more transform units can be derived from the coding unit. And, the restored image signal decoded and output by the decoding apparatus 300 can be reproduced by a reproduction device.
[0065] The decoding apparatus 300 may receive a signal output from the encoding apparatus 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 derive information (e.g., video / image information) required for image restoration (or picture restoration) by parsing the bitstream. The image / video 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). In addition, the video / image information may further include general constraint information. The decoding apparatus may decode a picture based on information on the parameter set and / or the general constraint information. Signaling / received information and / or syntax elements described later in this document may be obtained from the bitstream by being decoded via the decoding procedure. 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 syntax element values required for image restoration and quantized values of transform coefficients related to residuals. More specifically, the CABAC entropy decoding method may receive bins corresponding to each syntax element in a bitstream, determine a context model using syntax element information to be decoded and decoding information of adjacent and to-be-decoded blocks or symbol / bin information decoded in a previous step, predict the occurrence probability of bins according to the determined context model, and perform arithmetic decoding of the bins to generate symbols corresponding to the values of each syntax element.In this case, the CABAC entropy decoding method may update the context model using information of the decoded symbol / bin for the context model of the next symbol / bin after determining the context model. Prediction information from the information decoded by the entropy decoding unit 310 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 the residual processing unit 320. The residual processing unit 320 may derive a residual signal (residual block, residual sample, residual sample array). In addition, filtering information from the information decoded by the entropy decoding unit 310 may be provided to the 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 the present 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.
[0066] The inverse quantization unit 321 may inverse quantize the quantized transform coefficients to output transform coefficients. The inverse quantization unit 321 may rearrange the quantized transform coefficients in a two-dimensional block form. In this case, the rearrangement may be performed based on a coefficient scan order performed in an encoding apparatus. The inverse quantization unit 321 may perform inverse quantization on the quantized transform coefficients using a quantization parameter (e.g., quantization step size information) to obtain transform coefficients.
[0067] The inverse transform unit 322 inversely transforms the transform coefficients to obtain a residual signal (residual block, residual sample array).
[0068] The prediction unit may perform prediction on 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 to the current block based on information on the prediction output from the entropy decoding unit 310, and may determine a specific intra / inter prediction mode.
[0069] The prediction unit 320 may generate a prediction signal based on various prediction methods, which will be described later. For example, the prediction unit may apply intra prediction or inter prediction for prediction of one block, and may simultaneously apply intra prediction and inter prediction. This may be called combined inter and intra prediction (CIIP). In addition, the prediction unit may be based on 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, for example, screen content coding (SCC). IBC basically performs prediction within a current picture, but may be performed similarly 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 as 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 image / video information and signaled.
[0070] The intra prediction unit 331 may predict a current block by referring to samples in a current picture. The referenced samples may be located in the neighborhood of the current block or may be located far away depending on a prediction mode. In intra prediction, the prediction mode may include a plurality of non-directional modes and a plurality of directional modes. The intra prediction unit 331 may also determine a prediction mode to be applied to the current block by using a prediction mode applied to a neighboring block.
[0071] The inter prediction unit 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. In this case, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information may be predicted in units of blocks, sub-blocks, or samples based on the correlation of 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 inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the neighboring blocks may include a spatial neighboring block present in the current picture and a temporal neighboring block present in the reference picture. For example, the inter prediction unit 331 may configure 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 the received candidate selection information. Inter prediction may be performed based on various prediction modes, and the information regarding the prediction may include information indicating a mode of inter prediction for the current block.
[0072] The adder 340 may generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the acquired residual signal to a prediction signal (predicted block, predicted sample array) output from a prediction unit (including the inter prediction unit 332 and / or the intra prediction unit 331). When there is no residual for a current block, such as when a skip mode is applied, the predicted block may be used as a reconstructed block.
[0073] 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 a current picture, may be output after filtering as described below, or may be used for inter prediction of a next picture.
[0074] Meanwhile, luma mapping with chroma scaling (LMCS) can be applied during the picture decoding process.
[0075] 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 60, specifically, to the DPB of the memory 360. The various filtering methods may include, for example, deblocking filtering, sample adaptive offset, an adaptive loop filter, a bilateral filter, etc.
[0076] The (modified) reconstructed picture stored in the DPB of the memory 360 may be used as a reference picture in the inter prediction unit 332. The memory 360 may 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 may be transmitted to the inter prediction unit 260 to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block. The memory 360 may store reconstructed samples of reconstructed blocks in the current picture and transmit them to the intra prediction unit 331.
[0077] In this specification, the embodiments described in the filtering unit 260, inter prediction unit 221 and intra prediction unit 222 of the encoding device 200 can 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.
[0078] As described above, prediction is performed to improve compression efficiency when performing video coding. As a result, 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 a spatial domain (or a pixel domain). The predicted block is derived in the same way by an encoding device and a decoding device, and the encoding device can improve image coding efficiency by signaling information (residual information) about the residual between the original block and the predicted block, which is not an original sample value of the original block, to a decoding device. The decoding device can derive a residual block including residual samples based on the residual information, and can generate a reconstructed block including reconstructed samples by adding the residual block and the predicted block, and can generate a reconstructed picture including the reconstructed block.
[0079] The residual information may be generated through a transform and quantization procedure. For example, the encoding apparatus may derive a residual block between the original block and the predicted block, perform a transform procedure on the 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 (through a bitstream) to the decoding apparatus. 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 apparatus may derive a residual sample (or a residual block) by performing an inverse quantization / inverse transform procedure based on the residual information. The decoding apparatus may generate a reconstructed picture based on the predicted block and the residual block. In addition, the encoding apparatus may 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.
[0080] A prediction unit of an encoding device / decoding device may perform inter prediction in units of blocks to derive a prediction sample. Inter prediction may represent a prediction derived in a manner that is dependent on data elements (e.g., sample values or motion information) of picture(s) 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 on a reference picture indicated by a reference picture index. In this case, in order to reduce the amount of motion information transmitted in an inter prediction mode, motion information of the current block may be predicted in units of blocks, sub-blocks, or samples based on correlation of motion information between adjacent blocks and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter prediction type (L0 prediction, L1 prediction, Bi prediction, etc.) information. When inter prediction is applied, 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 blocks may be the same or different. The temporal neighboring blocks may be called collocated reference blocks, collocated CUs (colCUs), etc., and the reference picture including the temporal neighboring blocks may be called collocated pictures (colPic).For example, a motion information candidate list may be constructed based on neighboring blocks of the current block, and flag or index information indicating which candidate is selected (used) to derive the motion vector and / or reference picture index of the current block may be signaled. Inter prediction may be performed based on various prediction modes, and for example, in the case of skip mode and merge mode, the motion information of the current block may be the same as the motion information of the selected neighboring block. In the case of skip mode, unlike the merge mode, a residual signal may not be transmitted. In the case of motion vector prediction (MVP) mode, the motion vector of the selected neighboring block may be 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.
[0081] The motion information may include L0 motion information and / or L1 motion information depending on an inter prediction type (L0 prediction, L1 prediction, Bi prediction, etc.). 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 an L0 prediction, prediction based on an L1 motion vector may be referred to as an L1 prediction, and prediction based on both the L0 motion vector and the L1 motion vector may be referred to as a bi-prediction (Bi) prediction. Here, the L0 motion vector may represent a motion vector associated with a reference picture list L0 (L0), and the L1 motion vector may represent a motion vector associated with a reference picture list L1 (L1). The reference picture list L0 may include pictures that are earlier in the output order than the current picture as reference pictures, and the reference picture list L1 may include pictures that are later in the output order than the current picture. The earlier pictures may be referred to as forward (reference) pictures, and the later pictures may be referred to as backward (reference) pictures. The reference picture list L0 may further include pictures subsequent to the current picture in output order as reference pictures. 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 pictures subsequent to the current picture in output order as reference pictures. In this case, the subsequent picture may be indexed first in the reference picture list 1, and the previous picture may be indexed thereafter. Here, the output order may correspond to a picture order count (POC) order.
[0082] A video / picture encoding procedure based on inter prediction may generally include, for example:
[0083] FIG. 4 illustrates an example of an inter-prediction based video / picture encoding method.
[0084] The encoding apparatus performs inter prediction on a current block (S400). The encoding apparatus may derive an inter prediction mode and motion information of the current block and generate a prediction sample of the current block. Here, the procedures of determining an inter prediction mode, deriving motion information, and generating a prediction sample may be performed simultaneously, or one procedure may be performed before the other procedures. For example, the inter prediction unit of the encoding apparatus may include a prediction mode determination unit, a motion information derivation unit, and a prediction sample derivation unit, and the prediction mode determination unit may determine a prediction mode for the current block, the motion information derivation unit may derive motion information of the current block, and the prediction sample derivation unit may derive a prediction sample of the current block. For example, the inter prediction unit of the encoding apparatus may search for a block similar to the current block within a certain area (search area) of a reference picture through motion estimation, and derive a reference block whose difference with the current block is minimum or equal to a certain criterion. Based on this, a reference picture index indicating a reference picture in which the reference block is located may be derived, and a motion vector may be derived based on a position difference between the reference block and the current block. The encoding apparatus may determine a mode to be applied to the current block from among various prediction modes. The encoding apparatus may compare RD costs for the various prediction modes to determine an optimal prediction mode for the current block.
[0085] For example, when a skip mode or a merge mode is applied to the current block, the encoding apparatus may construct a merge candidate list (to be described later) and derive a reference block, among reference blocks indicated by merge candidates included in the merge candidate list, in which a difference between the current block and the current block is minimum or equal to or less than a certain criterion. In this case, a merge candidate associated with the derived reference block may be selected, and merge index information indicating the selected merge candidate may be generated and signaled to a decoding apparatus. Motion information of the current block may be derived using motion information of the selected merge candidate.
[0086] As another example, when the (A)MVP mode is applied to the current block, the encoding apparatus may construct an (A)MVP candidate list, which will be described later, and may use a motion vector of a selected MVP candidate among the MVP (motion vector predictor) candidates included in the (A)MVP candidate list as the MVP of the current block. In this case, for example, a motion vector indicating a reference block derived by the above-mentioned motion estimation may be used as the motion vector of the current block, and an MVP candidate having a motion vector with the smallest difference from the motion vector of the current block among the MVP candidates may become the selected MVP candidate. A motion vector difference (MVD), which is a 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. In addition, when the (A)MVP mode is applied, the value of the reference picture index may be configured as reference picture index information and may be separately signaled to the decoding apparatus.
[0087] The encoding apparatus may derive a residual sample based on the predicted sample (S410). The encoding apparatus may derive the residual sample by comparing an original sample of the current block with the predicted sample.
[0088] The encoding apparatus encodes video information including prediction information and residual information (S420). The encoding apparatus may output the encoded video information in a bitstream form. The prediction information may include prediction mode information (ex. skip flag, merge flag or mode index, etc.) and information on motion information as information related to the prediction procedure. The information on the motion information may include candidate selection information (ex. merge index, mvp flag or mvp index) which is information for deriving a motion vector. In addition, the information on the motion information may include the above-mentioned information on MVD and / or reference picture index information. In addition, the information on the motion information may include information indicating whether L0 prediction, L1 prediction, or bi-prediction is applied. The residual information is information on the residual sample. The residual information may include information on quantized transform coefficients for the residual sample.
[0089] The output bitstream can be stored in a (digital) storage medium and transmitted to the decoding device, or can be transmitted to the decoding device via a network.
[0090] Meanwhile, as described above, the encoding apparatus can generate a reconstructed picture (including reconstructed samples and reconstructed blocks) based on the reference sample and the residual sample. 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 can store the reconstructed picture (or reconstructed sample, reconstructed block) in a memory and use it as a reference picture for inter prediction. As described above, an in-loop filtering procedure can be further applied to the reconstructed picture.
[0091] A video / picture decoding procedure based on inter prediction may generally include, for example, the following.
[0092] FIG. 5 illustrates an example of an inter-prediction based video / picture decoding method.
[0093] As shown in Fig. 5, the decoding apparatus may perform operations corresponding to those performed by the encoding apparatus. The decoding apparatus may perform prediction on a current block based on received prediction information to derive a prediction sample.
[0094] Specifically, the decoding apparatus may determine a prediction mode for the current block based on received prediction information (S500). The decoding apparatus may determine which inter prediction mode is applied to the current block based on prediction mode information in the prediction information.
[0095] For example, it may determine whether the merge mode is applied to the current block or whether the (A)MVP mode is determined based on the merge flag, or may select one of various inter prediction mode candidates based on the mode index. The inter prediction mode candidates may include skip mode, merge mode, and / or (A)MVP mode, or may include various inter prediction modes described below.
[0096] 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 may form a merge candidate list (described later) and select one of the merge candidates included in the merge candidate list. The selection may be performed based on the above-mentioned selection information (merge index). Motion information of the current block may be derived using motion information of the selected merge candidate. The motion information of the selected merge candidate may be used as motion information of the current block.
[0097] As another example, when the (A)MVP mode is applied to the current block, the decoding apparatus may construct an (A)MVP candidate list described below, and use a motion vector of a selected MVP candidate among the MVP (motion vector predictor) candidates included in the (A)MVP candidate list as the MVP of the current block. The selection may be performed based on the above-mentioned selection information (mvp flag or mvp index). In this case, the MVD of the current block may be derived based on information on the MVD, and the motion vector of the current block may be derived based on the MVP of the current block and the MVD. Also, the reference picture index of the current block may be derived based on the reference picture index information. A picture pointed to by the reference picture index in a reference picture list for the current block may be derived as a reference picture referenced for inter prediction of the current block.
[0098] On the other hand, as described below, the motion information of the current block may be derived without constructing a candidate list, in which case the motion information of the current block may be derived according to a procedure disclosed in a prediction mode, which will be described later. In this case, the candidate list construction as described above may be omitted.
[0099] The decoding apparatus may generate a prediction sample 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 prediction sample for the current block may be derived using a sample of the reference block to which the motion vector of the current block points on the reference picture. In this case, as described below, a prediction sample filtering procedure may be further performed on all or some of the prediction samples of the current block, depending on the circumstances.
[0100] 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) of the current block based on information regarding the motion information received by the motion information derivation unit, and derive a prediction sample of the current block in the prediction sample derivation unit.
[0101] The decoding apparatus generates a residual sample for the current block based on the received residual information (S530). The decoding apparatus generates a reconstructed sample for the current block based on the predicted sample and the residual sample, and can generate a reconstructed picture based on the reconstructed sample (S540). Thereafter, an in-loop filtering procedure can be further applied to the reconstructed picture, as described above.
[0102] FIG. 6 exemplarily illustrates an inter prediction procedure.
[0103] As shown in Fig. 6, the inter prediction procedure may include an inter prediction mode determination step, a motion information derivation step according to the determined prediction mode, and a prediction (prediction sample generation) step based on the derived motion information. The inter prediction procedure may be performed by an encoding device and a decoding device as described above. In this document, the coding device may include an encoding device and / or a decoding device.
[0104] As shown in FIG. 6, the coding apparatus determines an inter prediction mode for a current block (S600). Various inter prediction modes may be used for predicting a 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 may 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. may be used in addition to or instead of the accompanying mode. The affine mode may also be referred to as an affine motion prediction mode. The MVP mode may also be referred to as an advanced motion vector prediction mode. In this document, some modes and / or motion information candidates derived by some modes may be included as any one of the motion information related candidates of other modes. For example, an HMVP candidate can be added as a merge candidate of the merge / skip mode, or can 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 can be referred to as an HMVP merge candidate.
[0105] Prediction mode information indicating an inter prediction mode of a current block may be signaled from an encoding apparatus to a decoding apparatus. The prediction mode information may be included in a bitstream and received by the decoding apparatus. The prediction mode information may include index information indicating one of a number of candidate modes. Alternatively, the inter prediction mode may be indicated through hierarchical signaling of flag information. In this case, the prediction mode information may include one or more flags. For example, a skip flag may be signaled to indicate whether a skip mode is applied, and if the skip mode is not applied, a merge flag may be signaled to indicate whether a merge mode is applied, and if the merge mode is not applied, an MVP mode may be applied, or a flag for additional classification may be further signaled. The affine mode may be signaled in an independent mode, or in 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.
[0106] The coding apparatus derives motion information for the current block (S610). The motion information may be derived based on the inter prediction mode.
[0107] The coding apparatus may perform inter prediction using motion information of the current block. The encoding apparatus may derive optimal motion information for the current block through a motion estimation procedure. For example, the encoding apparatus may search for a similar reference block with high correlation in a fractional pixel unit within a predetermined search range in the reference picture using an original block in an original picture for the current block, and may derive motion information through this. The similarity of the blocks may be derived based on a difference in phase-based sample values. For example, the similarity of the blocks may be calculated based on the SAD between the current block (or the template of the current block) and the reference block (or the template of the reference block). In this case, the motion information may be derived based on the reference block with the smallest SAD in the search range. The derived motion information may be signaled to the decoding apparatus in various ways based on the inter prediction mode.
[0108] The coding apparatus performs inter prediction based on motion information for the current block (S620). The coding apparatus may derive prediction sample(s) for the current block based on the motion information. The current block including the prediction sample(s) may be referred to as a predicted block.
[0109] Meanwhile, information indicating whether the above-mentioned list 0 (L0) prediction, list1 (L1) prediction, or bi-prediction is used for the current block (current coding unit) may be signaled. The information may be called 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 list 0 (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 represented as a motion prediction direction. L0 prediction may be represented as pred_L0, L1 prediction as pred_L1, and bi-prediction as pred_BI.
[0110] One picture may include one or more slices. A slice may have any one of slice types including an intra (I) slice, a predictive (P) slice, and a bi-predictive (B) slice. The slice type may be indicated based on slice type information. For blocks in an I slice, inter prediction may not be used for prediction, and only intra prediction may be used. Of course, even in this case, original sample values may be coded and signaled without prediction. For blocks in a P slice, intra prediction or inter prediction may be used, and when inter prediction is used, only uni prediction may be used. Meanwhile, for blocks in a B slice, intra prediction or inter prediction may be used, and when inter prediction is used, up to bi prediction may be used.
[0111] L0 and L1 may include reference pictures encoded / decoded before the current picture. For example, L0 may include reference pictures before and / or after the current picture in the POC order, and L1 may include reference pictures after and / or before the current picture in the POC order. In this case, a reference picture index lower than the reference picture before the current picture in the POC order may be assigned to L0, and a reference picture index lower than the reference picture after the current picture in the POC order may be assigned to L1. In the case of B slice, bi-prediction may be applied, and even in this case, unidirectional bi-prediction may be applied, or both-directional bi-prediction may be applied. Bi-directional bi-prediction may be referred to as true bi-prediction.
[0112] Specifically, for example, information regarding the inter prediction mode of the current block may be coded and signaled at a level such as a CU (CU syntax), or may be implicitly determined according to conditions, in which case some modes may be explicitly signaled and the remaining some modes may be implicitly derived.
[0113] FIG. 7 exemplarily shows spatially neighboring blocks used for motion information candidate derivation in the MVP mode.
[0114] The MVP (Motion Vector Prediction) mode may be referred to as an AMVP (Advanced Motion Vector Prediction) mode. When the MVP mode is applied, a motion vector predictor (mvp) candidate list may be generated using the motion vectors of the restored spatial neighboring blocks (which may include, for example, the neighboring blocks of FIG. 5) and / or the motion vectors corresponding to the temporal neighboring blocks (or Col blocks). That is, the motion vectors of the restored spatial neighboring blocks and / or the motion vectors corresponding to the temporal neighboring blocks may be used as motion vector predictor candidates. The spatial neighboring blocks may include a lower left corner neighboring block A0, a left neighboring block A1, a top right corner neighboring block B0, an upper neighboring block B1, and an upper left corner neighboring block B2 of the current block.
[0115] When bi-prediction is applied, an MVP candidate list for deriving L0 motion information and an MVP candidate list for deriving L1 motion information may be generated and used separately. The prediction information (or prediction information) may include selection information (e.g., MVP flag or MVP index) indicating an optimal motion vector predictor candidate selected from the motion vector predictor candidates included in the list. At this time, the prediction unit may select a motion vector predictor of a current block from the motion vector predictor candidates included in the motion vector candidate list using the selection information. The prediction unit of the encoding device may obtain a motion vector difference (MVD) between the motion vector and the motion vector predictor of the current block, encode the MVD, and output it in the form of a bitstream. That is, the MVD may be obtained by subtracting the motion vector predictor from the motion vector of the current block. At this time, the prediction unit of the decoding device may obtain the motion vector difference included in the prediction information, and derive the motion vector of the current block by adding the motion vector difference and the motion vector predictor. A prediction unit of a decoding apparatus can obtain or derive a reference picture index indicating a reference picture from the information related to the prediction.
[0116] FIG. 8 shows a schematic diagram of how the MVP candidate list is constructed according to this document.
[0117] As shown in FIG. 8, an embodiment may first search for spatial candidate blocks for motion vector prediction and insert available spatial (mvp) candidates into a prediction candidate list (mvp candidate list) (S810). In this case, neighboring blocks may be divided into two groups to derive candidates. For example, one (mvp) candidate may be derived from group A including the lower left corner neighboring block A0 and the left side neighboring block A1 of the current block, and one (mvp) candidate may be derived from group B including the upper right corner neighboring block B0, the upper side neighboring block B1, and the upper left corner neighboring block B2. The mvp candidate derived from group A may be called mvpA, and the mvp candidate derived from group B may be called mvpB. If all neighboring blocks in a group are unavailable or intra-coded, it may be possible that no (mvp) candidate is derived from the corresponding group.
[0118] Thereafter, an embodiment may determine whether the number of spatial candidates is less than 2 (S820). For example, an embodiment may search for temporally neighboring blocks and add derived temporal candidates to a prediction candidate list if the number of spatial candidates is less than 2 (S830). The temporal candidates derived from the temporally neighboring blocks may be referred to as mvpCol.
[0119] On the other hand, when the MVP mode is applied, the reference picture index may be 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 on refidxL0 and the information on refidxL1 may be signaled.
[0120] When bi-prediction is applied, an MVP candidate list for deriving L0 motion information and an MVP candidate list for deriving L1 motion information may be generated and used separately. The prediction information (or prediction information) may include selection information (e.g., MVP flag or MVP index) indicating an optimal motion vector predictor candidate selected from the motion vector predictor candidates included in the list. At this time, the prediction unit may select a motion vector predictor of a current block from the motion vector predictor candidates included in the motion vector candidate list using the selection information. The prediction unit of the encoding device may obtain a motion vector difference (MVD) between the motion vector and the motion vector predictor of the current block, encode the MVD, and output it in the form of a bitstream. That is, the MVD may be obtained by subtracting the motion vector predictor from the motion vector of the current block. At this time, the prediction unit of the decoding device may obtain the motion vector difference included in the prediction information, and derive the motion vector of the current block by adding the motion vector difference and the motion vector predictor. A prediction unit of a decoding apparatus can obtain or derive a reference picture index indicating a reference picture from the information related to the prediction.
[0121] When the MVP mode is applied, as described above, information on the MVD derived from the encoding device can be signaled to the decoding device. The information on the MVD can include, for example, information representing the x, y components for the MVD absolute value and the code. In this case, information representing whether the MVD absolute value is greater than 0, whether it is greater than 1, and the MVD remainder can be signaled stepwise. For example, information representing whether the MVD absolute value is greater than 1 can be signaled only if the value of flag information representing whether the MVD absolute value is greater than 0 is 1.
[0122] For example, information regarding MVD can be configured in a syntax as shown in Table 1, encoded by an encoding device, and signaled to a decoding device.
[0123] [Table 1]
[0124] For example, in Table 1, the abs_mvd_greater0_flag syntax element can represent information on whether the difference (MVD) is greater than 0, and the abs_mvd_greater1_flag syntax element can represent information on whether the difference (MVD) is greater than 1. In addition, the abs_mvd_minus2 syntax element can represent information on the value of the difference (MVD) minus 2, and the mvd_sign_flag syntax element can represent information on the sign of the difference (MVD). In addition, in Table 1, [0] in each syntax element can represent information for L0, and [1] can represent information for L1.
[0125] For example, MVD[compIdx" can be derived based on abs_mvd_greater0_flag[compIdx]*(abs_mvd_minus2[compIdx]+2)*(1-2*mvd_sign_flag[compIdx]). Here, compIdx (or cpIdx) represents an index of each component and can have a value of 0 or 1. For ompIdx, 0 can indicate the x component and compIdx1 can indicate the y component. However, this is by way of example only and values can also be expressed for each component using other coordinate systems instead of the x, y coordinate system.
[0126] Meanwhile, an MVD for L0 prediction (MVDL0) and an MVD for L1 prediction (MVDL1) may be signaled separately, and information about the MVD may include information about MVDL0 and / or information about MVDL1. For example, when an MVP mode and BI prediction are applied to a current block, information about the MVDLO and information about MVDL1 may both be signaled.
[0127] FIG. 9 is a diagram for explaining a symmetric MVD.
[0128] Meanwhile, when bi-prediction (BI prediction) is applied, symmetric MVD may be used in consideration of coding efficiency. Here, symmetric MVD may be referred to as SMVD. In this case, some signaling of motion information may be omitted. For example, when symmetric MVD is applied to the current block, information on refidxL0, information on refidxL1, and information on MVDL1 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 (ex. symmetric MVD flag information or sym_mvd_flag syntax element) indicating whether to apply symmetric MVD may be signaled, and if the value of the flag information is 1, the decoding device may determine that symmetric MVD is applied to the current block.
[0129] When the symmetric MVD mode is applied (i.e., when the value of the symmetric MVD flag information is 1), information on mvp_l0_flag, mvp_l1_flag, and MVDL0 may be explicitly signaled, and as described above, information on refidxL0, information on refidxL1, and information on MVDL1 may be omitted and may be derived internally. For example, refidxL0 may be derived as an index pointing to a previous reference picture that is closest to the current picture in POC order in reference picture list 0 (which may be referred to as list 0 or L0). refidxL1 may be derived as an index pointing to a subsequent reference picture that is closest to the current picture in POC order in reference picture list 1 (which may be referred to as list 1 or L1). Or, for example, refidxL0 and refidxL1 may both be derived as 0, respectively. Alternatively, for example, the refidxL0 and refidxL1 may be derived as the minimum index having the same POC difference in relation to the current picture. Specifically, for example, when [POC of current picture]-[POC of first reference picture indicated by refidxL0] is a first POC difference and [POC of second reference picture indicated by refidxL1] is 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 value of refidxL0 of the current block, and the value of refidxL1 indicating the second reference picture may be derived as the value of refidxL1 of the current block. Also, for example, when there are a plurality of sets having the same first POC difference and second POC difference, the refidxL0 and refidxL1 of the set having the smallest difference may be derived as the refidxL0 and refidxL1 of the current block. When the symmetric MVD mode is applied, the refidxL0 and refidxL1 can be referred to as RefIdxSymL0 and RefIdxSymL1, respectively.As an example, RefIdxSymL0 and RefIdxSymL1 can be determined on a slice-by-slice basis, in which case blocks to which SMVD is applied within the current slice can use the same RefIdxSymL0 and RefIdxSymL1.
[0130] MVDL1 may be derived as −MVDL0. For example, the final MV for the current block may be derived as shown in Equation 1.
[0131]
number
[0132] In formula 1, mvx0 and mvy0 may represent the x and y components of the motion vector for L0 motion information or L0 prediction, and mvx1 and mvy1 may represent the x and y components of the motion vector for L1 motion information or L1 prediction. Also, mvpx0 and mvpy0 may represent the x and y components of the motion vector predictor for L0 prediction, and mvpx1 and mvpy1 may represent the x and y components of the motion vector predictor for L1 prediction. Also, mvdx0 and mvdy0 may represent the x and y components of the motion vector differential for L0 prediction.
[0133] Meanwhile, a predicted block for the current block may be derived based on the motion information derived according to the prediction mode. The predicted block may include a prediction sample (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, through which a prediction sample of the current block may be derived based on a reference sample of a fractional sample unit in a reference picture. If Affine inter prediction is applied to the current block, a prediction sample may be generated based on a sample / sub-block unit MV. If bi-prediction is applied, a prediction sample derived through a weighted sum or weighted average (depending on the phase) of a prediction sample derived based on an L0 prediction (i.e., prediction using a reference picture in a reference picture list L0 and MVL0) and a prediction sample derived based on an L1 prediction (i.e., prediction using a reference picture in a reference picture list L1 and MVL1) may be used as a prediction sample of the current block. When bi-prediction is applied, if the reference picture used for L0 prediction and the reference picture used for L1 prediction are located in different temporal directions based on the current picture (i.e., bi-prediction but also bidirectional prediction), this can be referred to as true bi-prediction.
[0134] As described above, reconstructed samples and reconstructed pictures can be generated based on the derived predicted samples, and then procedures such as in-loop filtering can be performed.
[0135] Meanwhile, to restate the configuration related to symmetric MVD (SMVD), a symmetric MVD flag is signaled only for blocks to which bi-prediction is applied, and if the symmetric MVD flag is true, only the MVD for L0 can be signaled, and the MVD for L1 can be used by mirroring the MVD signaled for L0. However, in this case, problems may occur in the process of applying the symmetric MVD depending on the value of the mvd_l1_zero_flag syntax element (e.g., when the mvd_l1_zero_flag syntax element is true).
[0136] For example, the mvd_l1_zero_flag syntax element may be signaled based on a syntax such as Tables 2 to 4. That is, if the current slice is a B slice in the slice header, the mvd_l1_zero_flag syntax element may be signaled. Here, Tables 2 to 4 may represent a series of syntaxes (e.g., slice header syntax).
[0137] [Table 2]
[0138] [Table 3]
[0139] [Table 4]
[0140] For example, the semantics of the mvd_l1_zero_flag syntax element in Tables 2 to 4 may be as shown in Table 5 below.
[0141] [Table 5]
[0142] Alternatively, for example, the mvd_l1_zero_flag syntax element may represent information on whether the mvd_coding syntax for L1 prediction is parsed. For example, the mvd_l1_zero_flag syntax element may represent that the mvd_coding syntax according to L1 prediction is not parsed and the MvdL1 value is determined to be 0 when the value is 1. Alternatively, for example, the mvd_l1_zero_flag syntax element may represent that the mvd_coding syntax according to L1 prediction is parsed when the value is 0. That is, the MvdL1 value can be determined by the mvd_l1_zero_flag syntax element.
[0143] For example, a decoding procedure of symmetric motion vector difference reference indices may be, but is not limited to, the following Table 6. For example, a symmetric MVD reference index for L0 prediction may be represented as RefIdxSymL0, and a symmetric MVD reference index for L1 prediction may be represented as RefIdxSymL1.
[0144] [Table 6]
[0145] For example, information on symmetric MVD or the sym_mvd_flag syntax element may be signaled based on a syntax such as Tables 7 to 10 below, where Tables 7 to 10 may consecutively represent one syntax (e.g., coding unit syntax).
[0146] [Table 7]
[0147] [Table 8]
[0148] [Table 9]
[0149] [Table 10]
[0150] Or, for example, information on symmetric MVD or the sym_mvd_flag syntax element may be signaled based on a syntax such as Tables 11 to 15 below, where Tables 11 to 15 may consecutively represent one syntax (e.g., coding unit syntax).
[0151] [Table 11]
[0152] [Table 12]
[0153] [Table 13]
[0154] [Table 14]
[0155] [Table 15]
[0156] For example, information for symmetric MVD or the sym_mvd_flag syntax element can be signaled as shown in Tables 7 to 10 or Tables 11 to 15.
[0157] For example, as shown in Tables 7 to 10 or Tables 11 to 15, information on symmetric MVD or the sym_mvd_flag syntax element can be signaled if a symmetric mvd reference index derived by the above method exists when the current block is a block to which bi-prediction is applied and is not an affine block, regardless of the mvd_l1_zero_flag syntax element.
[0158] That is, even if the mvd_l1_zero_flag syntax element is 1, the sym_mvd_flag syntax element can be 1. In this case, even if the sym_mvd_flag syntax element is 1, MvdL1 can be derived to 0. This causes a problem of unnecessary bit signaling because the sym_mvd_flag syntax element is signaled even though it does not operate based on the sym_mvd_flag syntax element.
[0159] On the other hand, according to one embodiment of this document, when the value of the mvd_l1_zero_flag syntax element is 1 and the value of the sym_mvd_flag syntax element is 1, the value of MvdL1 can be derived as a value mirrored to the value of MvdL0, even if the mvd_l1_zero_flag syntax element is 1.
[0160] For example, information about symmetric MVD or the sym_mvd_flag syntax element may be signaled based on at least a portion of a coding unit syntax such as Table 16 and Table 17. Here, Table 16 and Table 17 may be a continuous representation of a portion of a set of syntax.
[0161] [Table 16]
[0162] [Table 17]
[0163] For example, as shown in Tables 16 and 17, the value of MvdL1 may be derived based on the value of the mvd_l1_zero_flag syntax element, the value of the sym_mvd_flag syntax element, and whether bi-prediction is applied. That is, the value of MvdL1 may be derived as 0 or a value of -MvdL0 (a mirrored value of MvdL0) based on the value of the mvd_l1_zero_flag syntax element, the value of the sym_mvd_flag syntax element, and whether bi-prediction is applied.
[0164] For example, in Tables 16 and 17, the semantics of the mvd_l1_zero_flag syntax element may be as shown in Table 18.
[0165] [Table 18]
[0166] Meanwhile, according to an embodiment of the present document, when the value of the mvd_l1_zero_flag syntax element is 1, the sym_mvd_flag syntax element may not be parsed. That is, when the value of the mvd_l1_zero_flag syntax element is 1, symmetric MVD is not allowed. In other words, when the value of the mvd_l1_zero_flag syntax element is 1, the decoding device may not parse the sym_mvd_flag syntax element, and the encoding device may be configured not to parse the sym_mvd_flag syntax element (from the bitstream, image / video information, CU syntax, inter prediction mode information, or prediction related information). Alternatively, according to an embodiment, when the value of the mvd_l1_zero_flag syntax element is 0, a symmetric MVD index may be derived or induced. Here, the symmetric MVD index may represent a symmetric MVD reference (picture) index. For example, when symmetric MVD is applied to the current block (ex. sym_mvd_flag == 1), the L0 / L1 reference (picture) index information (ex. ref_idx_l0 and / or ref_idx_l1) for the current block cannot be explicitly signaled, and the symmetric MVD reference index can be derived or induced.
[0167] For example, in this case, the decoding procedure of symmetric MVD reference indexes may be, but is not limited to, the following Table 19. For example, the symmetric MVD reference index for L0 prediction may be represented as RefIdxSymL0, and the symmetric MVD reference index for L1 prediction may be represented as RefIdxSymL1.
[0168] [Table 19]
[0169] Or, for example, information about symmetric MVD or the sym_mvd_flag syntax element may be signaled based on at least a portion of a coding unit syntax such as Tables 20 and 21. Here, Tables 20 and 21 may be consecutive representations of a portion of one syntax.
[0170] [Table 20]
[0171] [Table 21]
[0172] For example, as shown in Tables 20 and 21, SMVD flag information (ex.sym_mvd_flag syntax element) can be signaled based on at least one of inter prediction type information (ex.inter_pred_idc syntax element) indicating whether bi-prediction is applied to the current block, L1 motion vector difference zero flag information (ex.mvd_l1_zero_flagorph_mvd_l1_zero_flag syntax element), SMVD enabled flag information (ex.sps_smvd_enabled_flag syntax element) and / or inter affine flag information (ex.inter_affine_flag syntax element).
[0173] Specifically, for example, when the inter prediction type information indicates a bi-prediction type, the L1 motion vector difference zero flag information has a value of 0, the SMVD available flag information has a value of 1, and the inter affine flag information has a value of 0, the SMVD flag information may be explicitly signaled. That is, when the L1 motion vector difference zero flag information has a value of 1, the SMVD flag information may not be explicitly signaled. In this case, a decoding apparatus may implicitly infer that the value of the SMVD flag information is 0. When the SMVD flag information is not signaled, it may represent that the SMVD flag information is not included in prediction related information (or inter prediction mode information) or CU syntax, or is not parsed.
[0174] Based on the above-described embodiments of this document, the signaling of information related to the symmetric MVD can be optimized to avoid unnecessary bit waste, thereby improving the overall coding efficiency.
[0175] 10 and 11 show a schematic diagram of an example of a video / image encoding method and associated components according to embodiment(s) of the present document.
[0176] The method disclosed in Fig. 10 may be performed by the encoding device disclosed in Fig. 2 or Fig. 11. Specifically, for example, S1000 to S1010 in Fig. 10 may be performed by the prediction unit 220 of the encoding device, and 1020 in Fig. 10 may be performed by the entropy encoding unit 240 of the encoding device. The method disclosed in Fig. 10 may include the embodiments described above in this document.
[0177] As shown in Fig. 10, an encoding apparatus derives an MVP candidate list for a current block (S1000). The encoding apparatus may derive the MVP candidate list based on an inter prediction mode of the current block and neighboring blocks of the current block. The neighboring blocks may include spatial neighboring blocks and / or temporal neighboring blocks of the current block as described above. The neighboring blocks may include a lower left corner neighboring block, a left neighboring block, a upper right corner neighboring block, an upper neighboring block, and an upper left corner neighboring block of the current block.
[0178] The encoding apparatus generates information for representing motion information of the current block based on the MVP candidate list (S1010). The information for representing the motion information of the current block may include the above-mentioned selection information (e.g., mvp flag information or mvp index information, etc.). The mvp flag information may include the above-mentioned mvp_l0_flag and / or mvp_l1_flag. In addition, the information for representing the motion information of the current block may include information on MVD. For example, the information on MVD may include at least one of an abs_mvd_greater0_flag syntax element, an abs_mvd_greater1_flag syntax element, an abs_mvd_minus2 syntax element, or an mvd_sign_flag syntax element, but is not limited thereto since it may further include other information. The motion information may include at least one of an L0 motion vector for L0 prediction or an L1 motion vector for L1 prediction. The L0 motion vector may be represented based on an L0 motion vector predictor and an L0 motion vector differential, and the L1 motion vector may be represented based on an L1 motion vector predictor and an L1 motion vector differential.
[0179] For example, the encoding apparatus may perform inter prediction on the current block by considering a rate distortion (RD) cost for generating a predicted sample of the current block. Alternatively, for example, the encoding apparatus may determine an inter prediction mode used to generate a predicted sample of the current block and derive motion information. Here, the inter prediction mode may be, but is not limited to, a motion vector prediction (MVP) mode. Here, the MVP mode may also be referred to as an advanced motion vector prediction (AMVP) mode.
[0180] The encoding apparatus can derive optimal motion information for the current block through motion estimation. For example, the encoding apparatus can search for a similar reference block with high correlation in a fractional pixel unit within a predetermined search range in the reference picture using an original block in an original picture for the current block, and can derive motion information through this.
[0181] The encoding apparatus may configure a motion vector predictor candidate list to represent the derived motion information using a motion vector predictor and / or a motion vector differential. For example, the encoding apparatus may configure a motion vector predictor candidate list based on spatially neighboring candidate blocks and / or temporally neighboring candidate blocks. For example, when bi-prediction is applied to a current block, an L0 motion vector predictor candidate list for L0 prediction and an L1 motion vector predictor candidate list for L1 prediction may be configured.
[0182] The encoding apparatus may determine a motion vector predictor for a current block based on a motion vector predictor candidate list. For example, the encoding apparatus may determine a motion vector predictor for a current block based on the derived motion information (or motion vector) from among motion vector predictor candidates in a motion vector predictor candidate list. Or, the encoding apparatus may determine a motion vector predictor in the motion vector predictor candidate list that has the smallest difference from the derived motion information (or motion vector). For example, when bi-prediction is applied to a current block, an L0 motion vector predictor for L0 prediction and an L1 motion vector predictor for L1 prediction may be determined from an L0 motion vector predictor candidate list and an L1 motion vector predictor candidate list, respectively.
[0183] The encoding apparatus may also generate selection information representing the motion vector predictor in the motion vector predictor candidate list. For example, the selection information may be referred to as index information, and may also be referred to as an MVP flag or an MVP index. That is, the encoding apparatus may generate information indicating a motion vector predictor used to represent a motion vector of the current block in the motion vector predictor candidate list. For example, when bi-prediction is applied to the current block, selection information for an L0 motion vector predictor and selection information for an L1 motion vector predictor may each be generated.
[0184] The encoding apparatus may determine a motion vector differential for a current block based on a motion vector predictor. For example, the encoding apparatus may determine a motion vector differential based on the derived motion information (or motion vector) for the current block and the motion vector predictor. Or, the encoding apparatus may determine a motion vector differential based on a difference between the derived motion information (or motion vector) for the current block and the motion vector predictor. For example, when bi-prediction is applied to the current block, an L0 motion vector differential and an L1 motion vector differential may be determined. Here, the L0 motion vector differential may be represented as MvdL0, and the L1 motion vector differential may be represented as MvdL1. The L0 motion vector may be represented based on the sum of the L0 motion vector predictor and the L0 motion vector differential, and the L1 motion vector may be represented based on the sum of the L1 motion vector predictor and the L1 motion vector differential.
[0185] The encoding apparatus may also derive motion information for the current block based on the inter prediction mode to generate prediction samples, the motion information including an L0 motion vector for L0 prediction and / or an L1 motion vector for L1 prediction.
[0186] When the bi-prediction is applied, the encoding apparatus may derive an L0 prediction sample and an L1 prediction sample, and may derive a prediction sample of the current block based on a weighted sum or weighted average of the L0 prediction sample and the L1 prediction sample. An L0 motion vector may represent the L0 prediction sample on an L0 reference picture, and an L1 motion vector may represent the L1 prediction sample on an L1 reference picture.
[0187] The L1 motion vector differential may be derived from the L0 motion vector differential based on a case where the value of the L1 motion vector differential zero flag information is 0 and the value of the SMVD flag information is 1. In this case, the absolute value of the L1 motion vector differential may be the same as the absolute value of the L0 motion vector differential, and the sign of the L1 motion vector differential may be different from the sign of the L0 motion vector differential.
[0188] The encoding apparatus may derive residual information based on a predicted sample of the current block. The encoding apparatus may derive a residual sample based on the predicted sample. The encoding apparatus may derive a residual sample based on an original sample for the current block and a predicted sample for the current block. The encoding apparatus may derive residual information based on the residual sample. The residual information may include information on quantized transform coefficients. The encoding apparatus may derive quantized transform coefficients by performing a transform / quantization procedure on the residual sample.
[0189] An encoding apparatus encodes video / image information (S1020). The video / image information may include at least one of information on the inter prediction mode or information for representing motion information of a current block. The video / image information may further include the residual information. The encoded image / video information may be output in the form of a bitstream. The bitstream may be transmitted to a decoding apparatus via a network or a storage medium. The bitstream may include the encoded (image / video) information.
[0190] The video / image information may include inter prediction type information (ex. inter_pred_idc), a general merge flag, SMVD flag information, L1 motion vector difference zero flag information, SMVD available flag information, and / or inter affine flag information. For example, if the general merge flag has a value of 0, it may indicate that MVP mode is applied to the current block. The inter prediction type information may indicate whether bi-prediction is applied to the current block. Specifically, for example, the inter prediction type information may indicate whether L0 prediction, L1 prediction, or bi-prediction is applied to the current block.
[0191] As an example, the image information includes L1 motion vector difference zero flag information, the image information includes a coding unit (CU) syntax for the current block, and based on the L1 motion vector difference zero flag information, it can be determined whether the CU syntax includes SMVD flag information indicating whether SMVD (symmetric motion vector differences) is applied to the current block.
[0192] Specifically, for example, the image information may include header information. The header information may include a slice header or a picture header. The header information may include the L1 motion vector differential zero flag information, and the CU syntax may include the SMVD flag information based on a case where the value of the L1 motion vector differential zero flag information is 0. For example, when a value of an mvd_l1_zero_flag syntax element is 1, a decoding apparatus may not parse a sym_mvd_flag syntax element, and an encoding apparatus may be configured to not parse the sym_mvd_flag syntax element (from a bitstream, image / video information, CU syntax, inter prediction mode information, or prediction related information).
[0193] Also, as an example, the CU syntax may not include the SMVD flag information when the value of the L1 motion vector difference zero flag information is 1. In this case, a decoding device can infer that the value of the SMVD flag information is 0 without parsing the SMVD flag information.
[0194] Also, as an example, it is determined whether the SMVD flag information is included in the CU syntax based on a value of a symmetric motion vector differential reference index for the current block, and a value of a symmetric motion vector differential reference index is derived as −1 based on the L1 motion vector differential zero flag information having a value of 1, and it may be determined that the SMVD flag information is not included in the CU syntax based on the symmetric motion vector differential reference index having the value of −1. For example, the symmetric motion vector differential reference index may include an L0 symmetric motion vector differential reference index and an L1 symmetric motion vector differential reference index, each of which may be determined to have a value of −1. Here, the L0 symmetric motion vector differential reference index may be represented by RefIdxSymL0, and the L1 symmetric motion vector differential reference index may be represented by RefIdxSymL1. For example, the SMVD flag information may be included in the inter prediction mode information or the CU syntax when RefIdxSymL0 and RefIdxSymL1 are each greater than −1. Or, for example, the inter prediction mode information or CU syntax may include the symmetric motion vector difference flag based on RefIdxSymL0 being greater than -1 and RefIdxSymL1 being greater than -1.
[0195] Also, as an example, the image information includes a sequence parameter set (SPS), the SPS includes SMVD available flag information, the CU syntax includes prediction type information and inter-affine flag information, the prediction type information indicates whether bi-prediction is applied to the current block, and the CU syntax may further include the SMVD flag information based on the SMVD available flag information, the prediction type information, and the inter-affine flag information.
[0196] Specifically, for example, when the inter prediction type information indicates a bi-prediction type, the value of the L1 motion vector difference zero flag information is 0, the value of the SMVD available flag information is 1, and the value of the inter affine flag information is 0, the SMVD flag information may be included in the CU syntax and explicitly signaled. That is, when the value of the L1 motion vector difference zero flag information is 1, the SMVD flag information may not be explicitly signaled. In this case, a decoding apparatus may implicitly infer that the value of the SMVD flag information is 0. When the SMVD flag information is not signaled, it may represent that the SMVD flag information is not included in prediction related information (or inter prediction mode information) or CU syntax.
[0197] The video / picture information may include information about the motion vector difference. For example, the information about the motion vector difference may include information representing a motion vector difference. When the SMVD is applied, the information about the motion vector difference may include only information about an L0 motion vector difference, and an L1 motion vector difference may be derived based on the L0 motion vector difference as described above.
[0198] The zero flag for the L1 motion vector differential may represent information on whether the L1 motion vector differential is 0, and may be called an L1 motion vector differential zero flag, an L1 MVD zero flag, or an MVD L1 zero flag. The L1 motion vector differential zero flag may also be represented by an mvd_l1_zero_flag syntax element or a ph_mvd_l1_zero_flag syntax element. The SMVD flag information may represent information on whether the L0 motion vector differential and the L1 motion vector differential are symmetrical, and may also be represented by a sym_mvd_flag syntax element.
[0199] The encoding apparatus may also derive a (modified) residual sample based on the residual information, and may generate a reconstructed sample based on the (modified) residual sample and the prediction sample. Also, a reconstructed block and a reconstructed picture may be derived based on the reconstructed sample. The derived reconstructed picture may be referenced for inter prediction of a subsequent picture.
[0200] For example, an encoding device may generate a bitstream or encoded information by encoding image / video information including all or part of the above-mentioned information (or syntax elements), or may output the image / video information in the form of a bitstream. The bitstream or encoded information may be transmitted to a decoding device via a network or a storage medium. Alternatively, the bitstream or encoded information may be stored in a computer-readable storage medium, and the bitstream or encoded information may be generated by the image / video encoding method described above.
[0201] 12 and 13 show a schematic diagram of an example of a video / image decoding method and associated components according to embodiment(s) of the present document.
[0202] The method disclosed in Figure 12 may be performed by the decoding device disclosed in Figure 3 or Figure 13. For example, S1200 in Figure 12 may be performed by the entropy decoding unit 310 of the decoding device, S1210 to S1040 in Figure 12 may be performed by the prediction unit 330 of the decoding device, and S1050 in Figure 12 may be performed by the addition unit 340 or the reconstruction unit of the decoding device. The method disclosed in Figure 12 may include the embodiments described above in this document.
[0203] As shown in FIG. 12, a decoding apparatus obtains video / image information from a bitstream (S1200). The video / image information may include at least one of information on the inter prediction mode or information for representing motion information of a current block. The video / image information may further include the residual information. For example, the decoding apparatus may obtain the video / image information by parsing or decoding a bitstream. For example, the prediction related information may include information representing a prediction mode and / or motion information used to generate a prediction sample of the current block. The prediction related information may include information on the selection information or a motion vector difference.
[0204] The information for representing motion information of the current block may include the above-mentioned selection information (e.g., mvp flag information or mvp index information, etc.). The mvp flag information may include the above-mentioned mvp_l0_flag and / or mvp_l1_flag. In addition, the information for representing motion information of the current block may include information regarding MVD.
[0205] For example, the selection information may be referred to as index information, or may be referred to as an MVP flag or an MVP index. That is, the selection information may represent information representing a motion vector predictor of a current block in a motion vector predictor candidate list. For example, when bi-prediction is applied to the current block, the selection information may include selection information for L0 prediction and selection information for L1 prediction. The selection information for L0 prediction may represent information representing a motion vector predictor in an L0 motion vector predictor candidate list for L0 prediction described later, and the selection information for L1 prediction may represent information representing a motion vector predictor in an L1 motion vector predictor candidate list for L1 prediction described later.
[0206] For example, the information on the motion vector difference (MVD) may include information used to derive the motion vector difference. For example, the information on the motion vector difference may include at least one of an abs_mvd_greater0_flag syntax element, an abs_mvd_greater1_flag syntax element, an abs_mvd_minus2 syntax element, or an mvd_sign_flag syntax element, but is not limited thereto, as it may further include other information. For example, when bi-prediction is applied to the current block, the information on the motion vector difference may include information on the motion vector difference for L0 prediction and information on the motion vector difference for L1 prediction.
[0207] The video / image information may include inter prediction type information (ex. inter_pred_idc), a general merge flag, SMVD flag information, L1 motion vector difference zero flag information, SMVD available flag information, and / or inter affine flag information as information regarding the inter prediction mode. For example, when the general merge flag has a value of 0, it may indicate that an MVP mode is applied to the current block. The inter prediction type information may indicate whether bi-prediction is applied to the current block. Specifically, for example, the inter prediction type information may indicate whether L0 prediction, L1 prediction, or bi-prediction is applied to the current block. The prediction related information may include information regarding a motion vector difference.
[0208] As an example, the image information includes L1 motion vector difference zero flag information, the image information includes a coding unit (CU) syntax for the current block, and based on the L1 motion vector difference zero flag information, it can be determined whether the CU syntax includes SMVD flag information indicating whether SMVD (symmetric motion vector differences) is applied to the current block.
[0209] Specifically, for example, the image information may include header information. The header information may include a slice header or a picture header. The header information may include the L1 motion vector differential zero flag information, and the CU syntax may include the SMVD flag information based on a case where the value of the L1 motion vector differential zero flag information is 0. For example, when a value of an mvd_l1_zero_flag syntax element is 1, a decoding apparatus may not parse a sym_mvd_flag syntax element, and an encoding apparatus may be configured to not parse the sym_mvd_flag syntax element (from a bitstream, image / video information, CU syntax, inter prediction mode information, or prediction related information).
[0210] Also, as an example, the CU syntax may not include the SMVD flag information when the value of the L1 motion vector difference zero flag information is 1. In this case, a decoding device can infer that the value of the SMVD flag information is 0 without parsing the SMVD flag information.
[0211] Also, as an example, it is determined whether the SMVD flag information is included in the CU syntax based on a value of a symmetric motion vector differential reference index for the current block, and a value of a symmetric motion vector differential reference index is derived as −1 based on the L1 motion vector differential zero flag information having a value of 1, and it may be determined that the SMVD flag information is not included in the CU syntax based on the symmetric motion vector differential reference index having the value of −1. For example, the symmetric motion vector differential reference index may include an L0 symmetric motion vector differential reference index and an L1 symmetric motion vector differential reference index, each of which may be determined to have a value of −1. Here, the L0 symmetric motion vector differential reference index may be represented by RefIdxSymL0, and the L1 symmetric motion vector differential reference index may be represented by RefIdxSymL1. For example, the SMVD flag information may be included in the inter prediction mode information or the CU syntax when RefIdxSymL0 and RefIdxSymL1 are each greater than −1. Or, for example, based on RefIdxSymL0 being greater than -1 and RefIdxSymL1 being greater than -1, the inter prediction mode information or CU syntax may include the symmetric motion vector difference flag.
[0212] Also, as an example, the image information includes a sequence parameter set (SPS), the SPS includes SMVD available flag information, the CU syntax includes prediction type information and inter-affine flag information, the prediction type information indicates whether bi-prediction is applied to the current block, and the CU syntax may include the SMVD flag information based on the SMVD available flag information, the prediction type information, and the inter-affine flag information.
[0213] Specifically, for example, when the inter prediction type information indicates a bi-prediction type, the value of the L1 motion vector difference zero flag information is 0, the value of the SMVD available flag information is 1, and the value of the inter affine flag information is 0, the SMVD flag information may be included in the CU syntax and explicitly signaled. That is, when the value of the L1 motion vector difference zero flag information is 1, the SMVD flag information may not be explicitly signaled. In this case, a decoding apparatus may implicitly infer that the value of the SMVD flag information is 0. When the SMVD flag information is not signaled, it may represent that the SMVD flag information is not included in prediction related information (or inter prediction mode information) or CU syntax.
[0214] The video / picture information may include information about the motion vector difference. For example, the information about the motion vector difference may include information representing a motion vector difference. When the SMVD is applied, the information about the motion vector difference may include only information about an L0 motion vector difference, and an L1 motion vector difference may be derived based on the L0 motion vector difference as described above.
[0215] The zero flag for the L1 motion vector differential may represent information on whether the L1 motion vector differential is 0, and may be called an L1 motion vector differential zero flag, an L1 MVD zero flag, or an MVD L1 zero flag. The L1 motion vector differential zero flag may also be represented by an mvd_l1_zero_flag syntax element or a ph_mvd_l1_zero_flag syntax element. The SMVD flag information may represent information on whether the L0 motion vector differential and the L1 motion vector differential are symmetrical, and may also be represented by a sym_mvd_flag syntax element.
[0216] Alternatively, the L1 motion vector differential may be represented from the L0 motion vector differential, for example, based on the L1 motion vector differential zero flag having a value of 0 or the symmetric motion vector differential flag having a value of 1. That is, when the value of the L1 motion vector differential zero flag is 0 or the value of the symmetric motion vector differential flag is 1, the L1 motion vector differential may be represented from the L0 motion vector differential. Alternatively, the L1 motion vector differential may be represented by a mirrored value of the L0 motion vector differential. For example, when the value of a mvd_l1_zero_flag syntax element or a ph_mvd_l1_zero_flag syntax element is 0 or the value of a sym_mvd_flag syntax element is 1, MvdL1 may be represented based on MvdL0. Alternatively, MvdL1 may be determined to be -MvdL0. For example, MvdL1 being -MvdL0 can indicate that the absolute value, i.e., magnitude, of the L1 motion vector differential is the same as the absolute value, i.e., magnitude, of the L0 motion vector differential, and the sign of the L1 motion vector differential is different from the sign of the L0 motion vector differential.
[0217] The decoding apparatus derives an inter prediction mode of the current block based on the image information (S1210). For example, the decoding apparatus may derive the inter prediction mode based on information on the inter prediction mode included in the image information. For example, the inter prediction mode may be, but is not limited to, a motion vector prediction (MVP) mode. Here, the MVP mode may be referred to as an advanced motion vector prediction (AMVP) mode.
[0218] The decoding apparatus derives an MVP candidate list based on the inter prediction mode and neighboring blocks of the current block (S1220). For example, the decoding apparatus may configure an MVP candidate list based on spatially neighboring candidate blocks and / or temporally neighboring candidate blocks. Here, the configured MVP candidate list may be the same as the MVP candidate list configured by the encoding apparatus. The neighboring blocks may include a lower left corner neighboring block, a left neighboring block, a upper right corner neighboring block, an upper neighboring block, and an upper left corner neighboring block of the current block. For example, when bi-prediction is applied to the current block, an L0MVP candidate list for L0 prediction and an L1MVP candidate list for L1 prediction may be configured, respectively.
[0219] The decoding apparatus derives motion information of the current block based on the MVP candidate list (S1230). For example, the decoding apparatus may derive a motion vector predictor candidate for the current block in the motion vector predictor candidate list based on the above-mentioned selection information, and may derive motion information (or motion vector) of the current block based on the derived motion vector predictor candidate. Or, the decoding apparatus may derive motion information (or motion vector) of the current block based on the derived motion vector predictor candidate and the motion vector differential derived by the above-mentioned information on the motion vector differential. For example, when bi-prediction is applied to the current block, an L0 motion vector predictor for L0 prediction and an L1 motion vector predictor for L1 prediction may be derived from an L0 motion vector predictor candidate list and an L1 motion vector predictor candidate list based on selection information for L0 prediction and selection information for L1 prediction, respectively. For example, when bi-prediction is applied to the current block, an L0 motion vector differential and an L1 motion vector differential may be derived based on information on the motion vector differential, respectively. Here, the L0 motion vector difference can be represented as MvdL0, and the L1 motion vector difference can be represented as MvdL1. Also, the motion vector of the current block can be derived as an L0 motion vector and an L1 motion vector, respectively.
[0220] The decoding apparatus generates a prediction sample of the current block based on the motion information (S1240). For example, when bi-prediction is applied to the current block, the decoding apparatus may generate an L0 prediction sample for L0 prediction based on the L0 motion vector and an L1 prediction sample for L1 prediction based on the L1 motion vector. Also, the decoding apparatus may generate a prediction sample of the current block based on the L0 prediction sample and the L1 prediction sample.
[0221] The decoding apparatus generates reconstructed samples based on the predicted samples (S1250). A reconstructed block or picture may be derived based on the reconstructed samples. As described above, an in-loop filtering procedure may be further applied to the reconstructed samples / blocks / pictures.
[0222] The decoding apparatus may generate the reconstructed sample based on the prediction sample and the residual sample. In this case, the decoding apparatus may derive the residual sample based on the residual information. For example, the residual information may represent information used to derive the residual sample, and may include information on the residual sample, inverse transform related information, and / or inverse quantization related information. For example, the residual information may include information on quantized transform coefficients.
[0223] For example, a decoding device may decode a bitstream or encoded information to obtain video / image information including all or part of the above-mentioned information (or syntax elements), and the bitstream or encoded information may be stored in a computer-readable storage medium and may be triggered to perform the above-mentioned decoding method.
[0224] In the above embodiments, the methods are described with reference to flow charts as a series of steps or blocks, but the embodiments are not limited to the order of steps, and certain steps may occur in a different order or simultaneously with other steps than those described. Additionally, those skilled in the art will appreciate that the steps shown in the flow charts are not exclusive, and other steps may be included, or one or more steps of the flow charts may be omitted without affecting the scope of the embodiments herein.
[0225] The methods according to the embodiments of the present document described above may be embodied in software form, and the encoding device and / or decoding device according to the present document may be included in a device that performs video processing, such as a TV, a computer, a smartphone, a set-top box, or a display device.
[0226] In this document, when the embodiments are implemented in software, the methods described above may be implemented with modules (processes, functions, etc.) that perform the functions described above. The modules may be stored in a memory and executed by a processor. The memory may be internal or external to the processor and may be coupled to the processor in various well-known ways. The processor may include an application-specific integrated circuit (ASIC), other chipsets, logic circuits, and / or data processing devices. The memory may include a read-only memory (ROM), a random access memory (RAM), a flash memory, a memory card, a storage medium, and / or other storage devices. That is, the embodiments described in this document may be implemented and executed on a processor, microprocessor, controller, or chip. For example, the functional units shown in each drawing may be implemented and executed 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.
[0227] In addition, the decoding device and encoding device to which the embodiment(s) 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 interactive device, a real-time communication device such as video communication, a mobile streaming device, a storage medium, a camcorder, a custom video (VoD) service providing device, an over-the-top video (OTT) device, an internet streaming service providing device, a three-dimensional (3D) video device, a virtual reality (VR) device, an argument reality (AR) device, an image telephone video device, a transportation means terminal (e.g., a vehicle (including an autonomous vehicle) terminal, an airplane terminal, a ship terminal, etc.), and a medical video device, and may be used to process a video signal or a data signal. For example, an over-the-top video (OTT) device may include a game console, a Blu-ray player, an internet-connected TV, a home theater system, a smartphone, a tablet PC, a digital video recorder (DVR), etc.
[0228] In addition, the processing method to which the embodiment(s) of the present document are applied may be produced in the form of a program executed by a computer and may be stored in a computer-readable recording medium. In addition, multimedia data having a data structure according to the embodiment(s) of the present document may also be stored in a computer-readable recording medium. The computer-readable recording medium includes all kinds 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. In addition, the computer-readable recording medium may include a medium embodied in the form of a carrier wave (e.g., transmission via the Internet). In addition, the bit stream generated by the encoding method may be stored in a computer-readable recording medium or transmitted via a wired or wireless communication network.
[0229] Furthermore, the embodiment(s) of the present document may be embodied in a computer program product by program code, the program code being executable by a computer in accordance with the embodiment(s) of the present document, and the program code may be stored on a computer readable carrier.
[0230] FIG. 14 illustrates an example of a content streaming system in which the embodiments disclosed herein can be applied.
[0231] As shown in FIG. 14, 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 repository, a user device, and a multimedia input device.
[0232] 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.
[0233] The bitstream may be generated by an encoding method or a bitstream generation method applied to an embodiment of this document, and the streaming server may temporarily store the bitstream in the process of transmitting or receiving the bitstream.
[0234] 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 a medium to inform 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, and the streaming server transmits multimedia data to the user. In this case, the content streaming system may include a separate control server, and in this case, the control server controls commands / responses between devices in the content streaming system.
[0235] The streaming server can receive content from a media repository and / or an encoding server. For example, when the content is received 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.
[0236] Examples of the user devices include mobile phones, smart phones, laptop computers, digital broadcasting terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation systems, slate PCs, tablet PCs, ultrabooks, wearable devices (e.g., smartwatches, smart glass, head mounted displays (HMDs), digital TVs, desktop computers, and digital signage.
[0237] Each server in the content streaming system can be operated as a distributed server, in which case data received at each server can be processed in a distributed manner.
[0238] The claims described herein may be combined in various ways. For example, the technical features of the method claims herein may be combined and embodied in an apparatus, and the technical features of the apparatus claims herein may be combined and embodied in a method. Also, the technical features of the method claims herein and the technical features of the apparatus claims herein may be combined and embodied in an apparatus, and the technical features of the method claims herein and the technical features of the apparatus claims herein may be combined and embodied in a method.
Claims
1. A video decoding method performed by a decoding device, comprising: obtaining video information from a bitstream; deriving a motion vector predictor (MVP) candidate list for the current block based on an inter prediction mode and neighboring blocks of the current block; deriving motion information of the current block based on the MVP candidate list; generating a prediction sample for the current block based on the motion information; generating reconstructed samples based on the predicted samples; The motion information includes at least one of an L0 motion vector for L0 prediction or an L1 motion vector for L1 prediction; the L0 motion vector is derived based on an L0 motion vector predictor and an L0 motion vector differential, and the L1 motion vector is derived based on an L1 motion vector predictor and an L1 motion vector differential; The image information includes an L1 motion vector difference zero flag and a symmetric motion vector differences (SMVD) flag for the current block, based on a value of the SMVD flag being equal to one, the L1 motion vector differential is derived from the L0 motion vector differential; Based on the value of the L1 motion vector differential zero flag being equal to 1, the L1 motion vector differential is derived as 0; The L1 motion vector differential is derived as 0 only if the value of the SMVD flag is not equal to 1.
2. The video information includes header information, The video decoding method of claim 1 , wherein the header information includes the L1 motion vector difference zero flag.
3. The video information includes a sequence parameter set (SPS) and a coding unit (CU) syntax for the current block; The SPS includes an SMVD availability flag; The CU syntax includes inter prediction type information and an inter affine flag, the inter prediction type information indicating whether bi-prediction is applied to the current block, The video decoding method of claim 1 , further based on the SMVD available flag, the inter prediction type information, and the inter affine flag, the CU syntax includes the SMVD flag.
4. the absolute value of the L1 motion vector differential is equal to the absolute value of the L0 motion vector differential; The method of claim 1 , wherein a sign of the L1 motion vector differential is different from a sign of the L0 motion vector differential.
5. A video encoding method performed by an encoding device, comprising: deriving a motion vector predictor (MVP) candidate list for the current block based on an inter prediction mode and neighboring blocks of the current block; generating information for representing motion information of the current block based on the MVP candidate list; encoding image information including information for representing motion information of the current block; The motion information includes at least one of an L0 motion vector for L0 prediction or an L1 motion vector for L1 prediction; the L0 motion vector is derived based on an L0 motion vector predictor and an L0 motion vector differential, and the L1 motion vector is derived based on an L1 motion vector predictor and an L1 motion vector differential; The image information includes an L1 motion vector difference zero flag and a symmetric motion vector differences (SMVD) flag for the current block, based on a value of the SMVD flag being equal to one, the L1 motion vector differential is derived from the L0 motion vector differential; Based on the value of the L1 motion vector differential zero flag being equal to 1, the L1 motion vector differential is derived as 0; The L1 motion vector differential is derived as 0 only if the value of the SMVD flag is not equal to 1.
6. The video information includes header information, The video encoding method of claim 5 , wherein the header information includes the L1 motion vector difference zero flag.
7. The video information includes a sequence parameter set (SPS) and a coding unit (CU) syntax for the current block; The SPS includes an SMVD availability flag; The CU syntax includes inter prediction type information and an inter affine flag, the inter prediction type information indicating whether bi-prediction is applied to the current block, The video encoding method of claim 5 , further based on the SMVD available flag, the inter prediction type information, and the inter affine flag, the CU syntax includes the SMVD flag.
8. the absolute value of the L1 motion vector differential is equal to the absolute value of the L0 motion vector differential; The method of claim 5 , wherein a sign of the L1 motion vector differential is different from a sign of the L0 motion vector differential.
9. 1. A method for transmitting data for video information, comprising: obtaining a bitstream for the video information, The bitstream is generated by performing the steps of: deriving a motion vector predictor (MVP) candidate list for the current block based on an inter prediction mode and neighboring blocks of the current block; generating information for representing motion information of the current block based on the MVP candidate list; and encoding image information for generating the bitstream; the image information includes information for representing motion information of the current block; transmitting the data including the bitstream; The motion information includes at least one of an L0 motion vector for L0 prediction or an L1 motion vector for L1 prediction; the L0 motion vector is derived based on an L0 motion vector predictor and an L0 motion vector differential, and the L1 motion vector is derived based on an L1 motion vector predictor and an L1 motion vector differential; The image information includes an L1 motion vector difference zero flag and a symmetric motion vector differences (SMVD) flag for the current block, based on a value of the SMVD flag being equal to one, the L1 motion vector differential is derived from the L0 motion vector differential; Based on the value of the L1 motion vector differential zero flag being equal to 1, the L1 motion vector differential is derived as 0; The method of claim 1, wherein the L1 motion vector differential is derived as 0 only if the value of the SMVD flag is not equal to 1.
Citation Information
Patent Citations
Intra-coded video using quantized residual differential pulse code modulation coding
JP2022529528A
Inter prediction method and apparatus in image coding system
KR1020180048736A
Cited By
Motion vector prediction-based image / video coding method and device
JP2025084865A