Image coding method and device based on motion prediction
By using the image/video decoding method performed in the decoding device, the prediction mode of the block is derived using the prediction mode information in the bitstream and the reconstruction samples are generated, the problem of low image/video compression efficiency in the prior art is solved, and more efficient inter prediction and signaling optimization are achieved.
Patent Information
- Application Number
- CN202080058624.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-06-19
- Filing Date
- 2020-06-19
- Publication Date
- 2025-05-13
- Estimated Expiration
- 2040-06-19
AI Technical Summary
The prior art is difficult to effectively improve the compression efficiency of images/videos, especially when processing high resolution and high quality images/videos, the transmission and storage costs are high.
The method performed in the decoding device includes obtaining prediction mode information from the bitstream, deducing the prediction mode of the current block, generating a prediction sample, and generating a reconstruction sample based on the prediction sample. This method includes sequence parameter sets, enabling inter-image merging and in-image prediction (CIIP) flags, and parsing conventional merging flags based on CIIP enable flags and block size conditions.
Improves overall image/video compression efficiency, effectively performs inter prediction, and removes unnecessary syntax signaling during inter prediction.
Smart Images

Figure CN114342387B_ABST
Abstract
Description
Technical Field
[0001] The technology relates to methods and devices for coding images based on motion prediction. Background Art
[0002] Recently, there is an increasing demand for high-resolution, high-quality images / videos such as 4K or 8K ultra-high definition (UHD) images / videos in various fields. As the image / video resolution or quality becomes higher, relatively more information or bits are transmitted compared to conventional image / video data. Therefore, if the image / video data is transmitted via a medium such as an existing wired / wireless broadband line or is stored in a conventional storage medium, the cost of transmission and storage is easily increased.
[0003] In addition, there is growing interest and demand for virtual reality (VR) and artificial reality (AR) content and immersive media such as holograms; and there is also growing broadcasting of images / videos that exhibit image / video characteristics that are different from actual images / videos (e.g., game images / videos).
[0004] Therefore, highly efficient image / video compression technology is required to effectively compress and transmit, store, or play high-resolution, high-quality images / videos showing various characteristics as described above. Summary of the invention
[0005] Technical issues
[0006] The present disclosure provides a method and device for improving image coding efficiency.
[0007] The present disclosure also provides a method and apparatus for efficiently performing inter-frame prediction.
[0008] The present disclosure also provides a method and apparatus for preventing unnecessary signaling during inter-frame prediction.
[0009] Technical Solution
[0010] In one aspect, a decoding method performed by a decoding device includes: obtaining information about a prediction mode of a current block from a bitstream; deriving the prediction mode of the current block based on the information about the prediction mode; generating prediction samples of the current block based on the prediction mode; and generating reconstructed samples based on the prediction samples, wherein the bitstream includes a sequence parameter set, the sequence parameter set includes a combined inter-picture merging and intra-picture prediction (CIIP) enable flag, and the derivation includes parsing a regular merge flag from the bitstream based on satisfying a condition based on the CIIP enable flag and a condition based on the size of the current block.
[0011] In another aspect, an encoding method performed by an encoding device includes: determining a prediction mode of a current block; generating information about the prediction mode based on the prediction mode; and encoding image information including the information about the prediction mode, wherein the image information includes a sequence parameter set, the sequence parameter set including a combined inter-picture merging and intra-picture prediction (CIIP) enable flag, and based on satisfying a condition based on the CIIP enable flag and a condition based on the size of the current block, the image information includes a regular merge flag.
[0012] In another aspect, a computer-readable digital storage medium includes information that causes a decoding device to perform a decoding method, wherein the decoding method includes: obtaining information about a prediction mode of a current block from a bitstream; deriving the prediction mode of the current block based on the information about the prediction mode; generating prediction samples of the current block based on the prediction mode; and generating reconstructed samples based on the prediction samples, wherein the bitstream includes a sequence parameter set, the sequence parameter set includes a combined inter-picture merging and intra-picture prediction (CIIP) enable flag, and the derivation includes parsing a regular merge flag from the bitstream based on satisfying a condition based on the CIIP enable flag and a condition based on the size of the current block.
[0013] Beneficial Effects
[0014] According to the embodiments of the present disclosure, the overall image / video compression efficiency may be improved.
[0015] According to the embodiments of the present disclosure, inter-frame prediction can be efficiently performed.
[0016] According to an embodiment of the present disclosure, signaling of unnecessary syntax may be effectively removed during inter-frame prediction. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] Figure 1 An example of a video / image coding system to which embodiments of the present disclosure may be applied is schematically shown.
[0018] Figure 2 is a diagram schematically illustrating a configuration of a video / image encoding device to which an embodiment of the present disclosure can be applied.
[0019] Figure 3 is a diagram schematically illustrating a configuration of a video / image decoding device to which an embodiment of the present disclosure can be applied.
[0020] Figure 4 An example of a video / image encoding method based on inter-frame prediction is shown.
[0021] Figure 5 An example of a video / image decoding method based on inter-frame prediction is shown.
[0022] Figure 6The inter-frame prediction process is exemplarily shown.
[0023] Figure 7 is a diagram illustrating spatial candidates that may be used for inter prediction.
[0024] Figure 8 is a diagram illustrating a merge mode with a motion vector difference that can be used in inter-frame prediction.
[0025] Fig. 9 and Fig.10 is a diagram illustrating a sub-block based temporal motion vector prediction process that can be used in inter prediction.
[0026] Fig.11 is a diagram illustrating partition modes applicable to inter-frame prediction.
[0027] Fig.12 is a diagram illustrating a CIIP mode applicable to inter-frame prediction.
[0028] Fig.13 and 14 An example of a video / image encoding method including an inter-frame prediction method and associated components according to an embodiment of the present disclosure is schematically shown.
[0029] Fig.15 and Fig.16 An example of a video / image decoding method including an inter-frame prediction method and associated components according to an embodiment of the present disclosure is schematically shown.
[0030] Fig.17 An example of a content streaming system to which the embodiments disclosed in this document can be applied is shown. DETAILED DESCRIPTION
[0031] The disclosure of the present disclosure can be modified in various forms, and specific embodiments thereof will be described and illustrated in the accompanying drawings. The terms used in the present disclosure are only used to describe specific embodiments and are not intended to limit the disclosed methods in the present disclosure. Singular expressions include the expression of "at least one", as long as it is clearly interpreted differently. Terms such as "including" and "having" are intended to indicate the presence of features, quantities, steps, operations, elements, components, or combinations thereof used in the document, and therefore it should be understood that the possibility of the presence or addition of one or more different features, quantities, steps, operations, elements, components, or combinations thereof is not excluded.
[0032] In addition, each configuration of the drawings described in this document is an independent illustration for explaining the functions of features that are different from each other, and does not mean that each configuration is implemented by different hardware or different software. For example, two or more configurations can be combined to form a configuration, and a configuration can also be divided into multiple configurations. Without departing from the gist of the disclosed method of the present disclosure, embodiments of combined and / or separated configurations are included within the scope of the disclosure of the present disclosure.
[0033] Hereinafter, embodiments of the present document will be described in detail with reference to the accompanying drawings. In addition, in all drawings, the same reference numerals may be used to indicate the same elements, and the same description of the same elements will be omitted.
[0034] Figure 1 An example of a video / image coding system to which embodiments of the present disclosure can be applied is illustrated.
[0035] Reference Figure 1 The video / image coding system may include a first device (source device) and a second device (receiving device). The source device may send the encoded video / image information or data in the form of a file or stream to the receiving device via a digital storage medium or a network.
[0036] The source device may include a video source, an encoding device, and a transmitter. The receiving device may include a receiver, a decoding device, and a renderer. The encoding device may be referred to as a video / image encoding device, and the decoding device may be referred to as a video / image decoding device. The transmitter may be included in the encoding device. The receiver may be included in the decoding device. The renderer may include a display, and the display may be configured as a separate device or an external component.
[0037] The video source may acquire the video / image by capturing, synthesizing or generating a video / image process. The video source may include a video / image capturing device, and / or a video / image generating device. For example, the video / image capturing device may include one or more cameras, a video / image archive including previously captured videos / images, etc. For example, the video / image generating device may include a computer, a tablet computer, and a smart phone, and may generate the video / image (electronically). For example, a virtual video / image may be generated by a computer, etc. In this case, the video / image capturing process may be replaced by a process that generates relevant data.
[0038] The encoding device can encode the input video / image. For compression and coding efficiency, the encoding device can perform a series of processes such as prediction, transformation and quantization. The encoded data (encoded video / image information) can be output in the form of a bit stream.
[0039] The transmitter may transmit the encoded image / image information or data output in the form of a bit stream to a receiver of a receiving device in the form of a file or stream via a digital storage medium or a network. The digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmitter may include an element for generating a media file in a predetermined file format, and may include an element for transmission via a broadcast / communication network. The receiver may receive / extract a bit stream and transmit the received bit stream to a decoding device.
[0040] The decoding device may decode a video / image by performing a series of processes corresponding to the operations of the encoding device, such as dequantization, inverse transformation, and prediction.
[0041] The renderer may render the decoded video / image. The rendered video / image may be displayed through a display.
[0042] 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. In addition, the methods / embodiments disclosed in this document may be applied to methods disclosed in the Basic Video Coding (EVC) standard, the AOMedia Video 1 (AV1) standard, the 2nd generation Audio Video Coding standard (AVS2), or the next generation video / image coding standard (e.g., H.267, H.268, etc.).
[0043] Various embodiments related to video / image coding are presented in this document, and unless otherwise specified, the above embodiments may also be performed in combination with each other.
[0044] In this document, at least one of quantization / dequantization and / or transform / inverse transform may be omitted. When quantization / dequantization is omitted, the quantized transform coefficient may be referred to as a transform coefficient. When transform / inverse transform is omitted, the transform coefficient may be referred to as a coefficient or a residual coefficient, or may still be referred to as a transform coefficient expressed uniformly.
[0045] In this document, quantized transform coefficients and transform coefficients may be referred to as transform coefficients and scaled transform coefficients, respectively. In this case, the residual information may include information about the transform coefficients, and the information about the transform coefficients may be signaled through residual coding syntax. The transform coefficients may be derived based on the residual information (or information about the transform coefficients), and the scaled transform coefficients may be derived by inverse transform (scaling) about the transform coefficients. The residual samples may be derived based on the inverse transform (transform) of the scaled transform coefficients. This may also be applied / expressed in other parts of this document.
[0046] In this document, video may refer to a series of images over time. A picture generally refers to a unit representing an image at a specific time frame, and a slice / tile refers to a unit that constitutes a part of a picture in terms of coding. A slice / tile may include one or more coding tree units (CTUs). A picture may consist of one or more slices / tiles. A picture may consist of one or more tile groups. A tile group may include one or more tiles. A tile may represent a rectangular area of a CTU row within a tile in a picture. A tile may be divided into a plurality of tiles, each of which may consist of one or more CTU rows within a tile. Tiles that are not divided into a plurality of tiles may also be referred to as tiles. Tile scanning may represent a specific ordering of CTUs of a partitioned picture, wherein CTUs are continuously ordered in a CTU raster scan within a tile, tiles within a tile are continuously ordered in a raster scan of tiles of a tile, and tiles in a picture are continuously ordered in a raster scan of tiles of a tile. A tile is a rectangular area of a CTU within a specific tile column and a specific tile row in a picture. A tile column is a rectangular area of a CTU having a height equal to the height of the picture and a width specified by a syntax element in the picture parameter set. A tile row is a rectangular area of a CTU having a height specified by a syntax element in the picture parameter set and a width equal to the width of the picture. A tile scan is a specific sequential ordering of the CTUs that partition a picture, where the CTUs are ordered consecutively in a CTU raster scan in tiles and the tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture. A slice includes an integer number of tiles of a picture that can be contained only in a single NAL unit. A slice can consist of multiple complete tiles, or only a sequence of consecutive complete tiles of a tile. In this document, tile groups and slices can be used instead of each other. For example, in this document, a tile group / tile group header can be referred to as a slice / slice header.
[0047] A pixel or a picture element (pel) may refer to the smallest unit constituting a picture (or image). In addition, a "sample" may be used as a term corresponding to a pixel. A sample may generally represent a pixel or a pixel value, and may represent only a pixel / pixel value of a luminance component or only a pixel / pixel value of a chrominance component.
[0048] A unit may represent a basic unit of image processing. A unit may include at least one of a specific area of a picture and information related to the area. A unit may include a luminance block and two chrominance (e.g., cb, cr) blocks. In some cases, a unit may be used interchangeably with terms such as a block or an area. In general, an M×N block may include M columns and N rows of samples (or sample arrays) or a set (or array) of transform coefficients. Alternatively, a sample may mean a pixel value in a spatial domain, and when such a pixel value is transformed into a frequency domain, it may mean a transform coefficient in a frequency domain.
[0049] In this document, the terms " / " and "," should be interpreted as indicating "and / or". For example, the expression "A / B" may mean "A and / or B". Furthermore, "A, B" may mean "A and / or B". Furthermore, "A / B / C" may mean "at least one of A, B, and / or C". Furthermore, "A / B / C" may mean "at least one of A, B, and / or C".
[0050] Furthermore, in this document, the term "or" should be interpreted as indicating "and / or". For example, the expression "A or B" may include 1) only A, 2) only B, and / or 3) both A and B. In other words, the term "or" in this document should be interpreted as indicating "additionally or alternatively".
[0051] Figure 2 is a diagram schematically illustrating a configuration of a video / image encoding device to which an embodiment of the present disclosure may be applied. Hereinafter, a device referred to as a video encoding device may include an image encoding device.
[0052] Reference Figure 2 , the encoding device 200 includes an image partitioner 210, a predictor 220, a residual processor 230 and an entropy encoder 240, an adder 250, a filter 260 and a memory 270. The predictor 220 may include an inter-frame predictor 221 and an intra-frame 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 also include a subtractor 231. The adder 250 may be referred to as a reconstructor or a reconstructed block generator. According to an embodiment, the image partitioner 210, the predictor 220, the residual processor 230, the entropy encoder 240, the adder 250 and the filter 260 may be configured by at least one hardware component (e.g., an encoder chipset or processor). In addition, the memory 270 may include a decoded picture buffer (DPB), or may be configured by a digital storage medium. The hardware component may also include the memory 270 as an internal / external component.
[0053] The image partitioner 210 may partition an input image (or picture or frame) input to the encoding device 200 into one or more processing units. For example, a processing unit may be referred to as a coding unit (CU). In this case, the coding unit may be recursively partitioned from a coding tree unit (CTU) or a maximum coding unit (LCU) according to a quadtree binary tree ternary tree (QTBTTT) structure. For example, one coding unit may be partitioned into a plurality of coding units with a deeper depth based on a quadtree structure, a binary tree structure, and / or a ternary structure. In this case, for example, a quadtree structure may be applied first, and a binary tree structure and / or a ternary structure may be applied later. Alternatively, a binary tree structure may be applied first. The coding process according to the present disclosure may be performed based on a final coding unit that is no longer partitioned. In this case, the maximum coding unit may be used as the final coding unit based on coding efficiency, etc. according to image characteristics, or if necessary, the coding unit may be recursively partitioned into coding units with a deeper depth and a coding unit with an optimal size may be used as the final coding unit. Here, the coding process may include a process of prediction, transformation, and reconstruction (to be described later). As another example, the processing unit may further include a prediction unit (PU) or a transform unit (TU). In this case, the prediction unit and the transform unit may be split or partitioned from the above-mentioned final coding unit. The prediction unit may be a unit for sample prediction, and the transform unit may be a unit for deriving a transform coefficient and / or a unit for deriving a residual signal from the transform coefficient.
[0054] In some cases, a unit may be used interchangeably with terms such as a block or region. In general, an M×N block may represent a set of samples or transform coefficients consisting of M columns and N rows. A sample may generally represent a pixel or a pixel value, and may represent only a pixel / pixel value of a luma component or only a pixel / pixel value of a chroma component. A sample may be used as a term corresponding to one picture (or image) of a pixel or a pixel element.
[0055] The encoding device 200 may subtract a prediction signal (prediction block, prediction sample array) output from the inter predictor 221 or the intra predictor 222 from the input image signal (original block, original sample array) to generate a residual signal (residual block, residual sample array), and the generated residual signal is sent to the transformer 232. In this case, as shown, the unit that subtracts the prediction signal (prediction block, prediction sample array) from the input image signal (original block, original sample array) in the encoder 200 may be referred to as a subtractor 231. The predictor may perform prediction on a processing target block (hereinafter referred to as a current block) and generate a prediction block including prediction samples of the current block. The predictor may determine whether intra prediction or inter prediction is applied in units of the current block or CU. As described later in the description of each prediction mode, the predictor may generate various types of information (e.g., prediction mode information) about prediction and send the generated information to the entropy encoder 240. The information about the prediction may be encoded by the entropy encoder 240 and output in the form of a bitstream.
[0056] The intra-frame predictor 222 may predict the current block with reference to samples in the current picture. Depending on the prediction mode, the referenced samples may be located near the current block or may be spaced apart. In intra-frame prediction, the prediction mode may include multiple non-directional modes and multiple directional modes. For example, the non-directional mode may include a DC mode and a plane mode. For example, depending on the level of detail of the prediction direction, the directional mode may include 33 directional prediction modes or 65 directional prediction modes. However, this is only an example, and more or fewer directional prediction modes may be used depending on the settings. The intra-frame predictor 222 may use the prediction mode applied to the neighboring blocks to determine the prediction mode applied to the current block.
[0057] The inter-frame predictor 221 may derive a prediction block of the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. Here, in order to reduce the amount of motion information sent in the inter-frame 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 also include inter-frame prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter-frame prediction, the neighboring blocks may include spatial neighboring blocks present in the current picture and temporal neighboring blocks present in the reference picture. The reference picture including the reference block and the reference picture including the temporal neighboring block may be the same or different. The temporal neighboring block may be referred to as a collocated reference block, a collocated CU (colCU), etc., and the reference picture including the temporal neighboring block may be referred to as a collocated picture (colPic). For example, the inter-frame predictor 221 may configure a motion information candidate list based on the neighboring blocks and generate information indicating which candidate is used to derive the motion vector and / or reference picture index of the current block. Inter-frame prediction may be performed based on various prediction modes. For example, in the case of skip mode and merge mode, the inter-frame predictor 221 may use the motion information of the neighboring block as the motion information of the current block. In the skip mode, unlike the merge mode, the residual signal may not be transmitted. In the case of the motion vector prediction (MVP) mode, the motion vector of the neighboring block may be used as a motion vector predictor, and the motion vector of the current block may be indicated by signaling the motion vector difference.
[0058] The predictor 220 may generate a prediction signal based on various prediction methods described later. For example, the predictor 220 may apply intra prediction or inter prediction to predict a block, and may apply intra prediction and inter prediction at the same time. This may be referred to as combined inter and intra prediction (CIIP). In addition, the predictor may be based on an intra block copy (IBC) prediction mode or based on a palette mode for predicting blocks. The IBC prediction mode or the palette mode may be used for image / video coding of content such as games, such as screen content coding (SCC). IBC basically performs prediction in the current picture, but it may be performed similarly to inter prediction in that a reference block is derived in the current picture. That is, IBC may use at least one of the inter prediction techniques described in this document. The palette mode may be considered an example of intra coding or intra prediction. When the palette mode is applied, the sample values in the picture may be signaled based on information about the palette table and the palette index.
[0059] The prediction signal generated by the predictor (including the inter-frame predictor 221 and / or the intra-frame predictor 222) may be used to generate a reconstructed signal or to generate a residual signal.
[0060] The transformer 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 conditional nonlinear transform (CNT). Here, when the relationship information between pixels is illustrated as a graph, GBT means a transform obtained from a graph. CNT means a transform obtained based on a prediction signal generated by using all previously reconstructed pixels. In addition, the transform process may also be applied to square pixel blocks of the same size, or may also be applied to variable-sized blocks that are not square.
[0061] The quantizer 233 quantizes the transform coefficients and transmits the quantized transform coefficients to the entropy encoder 240, and the entropy encoder 240 encodes the quantized signal (information about the quantized transform coefficients) and outputs the encoded signal as a bitstream. The information about the quantized transform coefficients may be referred to as residual information. The quantizer 233 may rearrange the quantized transform coefficients having a block form in a one-dimensional vector form based on a coefficient scanning order, and also generate information about the quantized transform coefficients based on the quantized transform coefficients in a one-dimensional vector form.
[0062] The entropy encoder 240 may perform various encoding methods such as, for example, exponential Golomb, context adaptive variable length coding (CAVLC), and context adaptive binary arithmetic coding (CABAC). The entropy encoder 240 may also encode information necessary for video / image reconstruction (e.g., values of syntax elements, etc.) in addition to quantized transform coefficients, together or separately. The encoded information (e.g., encoded video / image information) may be transmitted or stored in units of a network abstraction layer (NAL) in the form of a bitstream. The video / image information may also include information about 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 also include general constraint information. In this document, information and / or syntax elements signaled / sent from an encoding device to a decoding device may be included in the video / image information. The video / image information may be encoded by the aforementioned encoding process and thus included in the bitstream. The bitstream may be transmitted over a network or may be stored in a digital storage medium. Here, the network may include a broadcast network and / or a communication network, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. A transmitting unit (not shown) for transmitting a signal output from the entropy encoder 240 and / or a storage unit (not shown) for storing the signal may be configured as an internal / external element of the encoding device 200, or the transmitting unit may also be included in the entropy encoder 240.
[0063] The quantized transform coefficients output from the quantizer 233 can be used to generate a prediction signal. For example, the residual signal (residual block or residual sample) can be reconstructed by applying dequantization and inverse transform to the quantized transform coefficients through the dequantizer 234 and the inverse transform unit 235. The adder 250 can add the reconstructed residual signal to the prediction signal output from the inter-frame predictor 221 or the intra-frame predictor 222 to generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array). When there is no residual for the processing target block, such as when the skip mode is applied, the prediction block can be used as a reconstructed block. The adder 250 can be referred to as a restorer or a recovery block generator. The generated reconstructed signal can be used for intra-frame prediction of the next processing target block in the current picture, and can also be used for inter-frame prediction of the next picture after filtering, as described below.
[0064] Meanwhile, luminance mapping and chrominance scaling (LMCS) may also be applied during the picture encoding and / or reconstruction process.
[0065] The filter 260 can improve the subjective / objective image quality by applying filtering to the reconstructed signal. For example, the filter 260 can generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture and store the modified reconstructed picture in the memory 270 (specifically, the DPB of the memory 270). For example, various filtering methods may include deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc. The filter 260 can generate various types of information related to filtering and transmit the generated information to the entropy encoder 240, as described later in the description of each filtering method. The information related to filtering can be encoded by the entropy encoder 240 and output in the form of a bit stream.
[0066] The modified reconstructed picture transmitted to the memory 270 may be used as a reference picture in the inter predictor 221. When inter prediction is applied by the encoding apparatus, prediction mismatch between the encoding apparatus 200 and the decoding apparatus may be avoided and coding efficiency may be improved.
[0067] The DPB of the memory 270 may store the modified reconstructed picture for use as a reference picture in the inter-frame predictor 221. The memory 270 may store the motion information of the block from which the motion information in the current picture is derived (or encoded) and / or the motion information of the block in the reconstructed picture. The stored motion information may be transmitted to the inter-frame predictor 221 to be used as the motion information of the spatial neighboring block or the motion information of the temporal neighboring block. The memory 270 may store the reconstructed samples of the reconstructed block in the current picture and may transmit the reconstructed samples to the intra-frame predictor 222.
[0068] Figure 3is a diagram for schematically explaining a configuration of a video / image decoding device to which an embodiment of the present disclosure can be applied.
[0069] Reference Figure 3 , the decoding device 300 may include an entropy decoder 310, a residual processor 320, a predictor 330, an adder 340, a filter 350, and a memory 360. The predictor 330 may include an inter-frame predictor 331 and an intra-frame predictor 332. The residual processor 320 may include a dequantizer 321 and an inverse transformer 321. According to an embodiment, the entropy decoding 310, the residual processor 320, the predictor 330, the adder 340, and the filter 350 may be configured by a hardware component (e.g., a decoder chipset or a processor). In addition, the memory 360 may include a decoded picture buffer (DPB) or may be configured by a digital storage medium. The hardware component may also include a memory 360 as an internal / external component.
[0070] When a bit stream including video / image information is input, the decoding device 300 can reconstruct the bit stream corresponding to the bit stream in the video / image format. Figure 2 The image corresponding to the processing of the video / image information in the encoding device. For example, the decoding device 300 may derive the unit / block based on the block partition related information obtained from the bitstream. The decoding device 300 may perform decoding using the processing unit applied in the encoding device. Thus, for example, the decoding processing unit may be a coding unit, and the coding unit may be split from the coding tree unit or the maximum coding unit according to a quadtree structure, a binary tree structure and / or a ternary tree structure. One or more transform units may be derived from the coding unit. The reconstructed image signal decoded and output by the decoding device 300 may be reproduced by a reproduction device.
[0071] The decoding device 300 may receive the bit stream from Figure 2The received signal can be decoded by the entropy decoder 310. For example, the entropy decoder 310 can parse the bitstream to derive information (e.g., video / image information) required for image reconstruction (or picture reconstruction). The video / image information may also include information about 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 also include general constraint information. The decoding device may also decode the picture based on information about the parameter set and / or the general constraint information. The signaled / received information and / or syntax elements described later in this document may be decoded by a decoding process and obtained from the bitstream. For example, the entropy decoder 310 may decode the information within the bitstream based on a coding method such as exponential Golomb coding, context adaptive variable length coding (CAVLC), or context adaptive binary arithmetic coding (CABAC), and output syntax elements required for image reconstruction and quantized values of transform coefficients for the residual. More specifically, the CABAC entropy decoding method can receive a bin corresponding to each syntax element in the bitstream, determine the context model by using the decoding target syntax element information, the decoding information of the decoding target block, or the information of the symbol / bin decoded in the previous stage, and perform arithmetic decoding on the bin by predicting the probability of the bin appearing according to the determined context model, and generate a symbol corresponding to the value of each syntax element. In this case, the CABAC entropy decoding method can update the context model by using the information of the decoded symbol / bin for the context model of the next symbol / bin after determining the context model. The information related to the prediction among the information decoded by the entropy decoder 310 can be provided to the predictor (inter-frame predictor 332 and intra-frame predictor 331), and the residual value (i.e., quantized transform coefficients and related parameter information) that has been entropy decoded in the entropy decoder 310 can be input to the residual processor 320.
[0072] The residual processor 320 may derive a residual signal (residual block, residual sample, residual sample array). In addition, information about filtering among the information decoded by the entropy decoder 310 may be provided to the filter 350. Meanwhile, a receiver (not shown) for receiving a signal output from the encoding device may also be configured as an internal / external element of the decoding device 300, or the receiver may be a component of the entropy decoder 310. Meanwhile, the decoding device according to this document may be referred to as a video / image / picture decoding device, and the decoding device may be classified into an information decoder (video / image / picture information decoder) and a sample decoder (video / image / picture sample decoder). The information decoder may include an entropy decoder 310, and the sample decoder may include at least one of the following: a dequantizer 321, an inverse transformer 322, an adder 340, a filter 350, a memory 360, an inter-frame predictor 332, and an intra-frame predictor 331.
[0073] The dequantizer 321 may dequantize the quantized transform coefficient and output the transform coefficient. The dequantizer 321 may rearrange the quantized transform coefficient in a two-dimensional block form. In this case, the rearrangement may be performed based on the coefficient scanning order performed in the encoding device. The dequantizer 321 may perform dequantization on the quantized transform coefficient using a quantization parameter (e.g., quantization step size information) and obtain the transform coefficient.
[0074] The inverse transformer 322 inversely transforms the transform coefficients to obtain a residual signal (residual block, residual sample array).
[0075] The predictor 330 may perform prediction on the current block and generate a prediction block including prediction samples of the current block. The predictor may determine whether to apply intra prediction or inter prediction to the current block and determine a specific intra / inter prediction mode based on information on prediction output from the entropy decoder 310.
[0076] The predictor 330 may generate a prediction signal based on various prediction methods described below. For example, the predictor may apply intra prediction or inter prediction for predicting a block, and may apply intra prediction and inter prediction at the same time. This may be referred to as combined inter and intra prediction (CIIP). In addition, the predictor may predict a block based on an intra block copy (IBC) prediction mode or a palette mode. The IBC prediction mode or the palette mode may be used for image / video coding of content such as games, such as screen content coding (SCC). IBC may basically perform a prediction in the current picture, but may be performed similarly to inter prediction so that a reference block is derived within the current picture. That is, IBC may use at least one inter prediction technique 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 about the palette table and the palette index may be included in the video / image information and signaled.
[0077] The intra-frame predictor 331 can predict the current block by referring to samples in the current picture. Depending on the prediction mode, the referenced sample may be located near the current block or may be separated from the current block. In intra-frame prediction, the prediction mode may include multiple non-directional modes and multiple directional modes. The intra-frame predictor 331 may determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring block.
[0078] The inter-frame predictor 332 may derive a prediction block of the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. In this case, in order to reduce the amount of motion information sent in the inter-frame prediction mode, the motion information may be predicted in units of blocks, sub-blocks, or samples based on the correlation of the motion information between the adjacent blocks and the current block. The motion information may include a motion vector and a reference picture index. The motion information may also include information about the inter-frame prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter-frame prediction, the adjacent blocks may include spatial adjacent blocks present in the current picture and temporal adjacent blocks present in the reference picture. For example, the inter-frame predictor 332 may construct a motion information candidate list based on the adjacent blocks and derive the motion vector and / or reference picture index of the current block based on the received candidate selection information. Inter-frame prediction may be performed based on various prediction modes, and information about the prediction may include information indicating the inter-frame prediction mode for the current block.
[0079] The adder 340 can generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the obtained residual signal to the prediction signal (prediction block, prediction sample array) output from the predictor (including the inter-frame predictor 332 and / or the intra-frame predictor 331). If there is no residual for the processing target block, such as when the skip mode is applied, the prediction block can be used as a reconstructed block.
[0080] The adder 340 may be referred to as a reconstructor or a reconstructed block generator. The generated reconstructed signal may be used for intra prediction of the next block to be processed in the current picture, and as described later, may also be output through filtering or may also be used for inter prediction of the next picture.
[0081] In addition, luminance mapping with chroma scaling (LMCS) can also be applied to the picture decoding process.
[0082] The filter 350 can improve the subjective / objective image quality by applying filtering to the reconstructed signal. For example, the filter 350 can generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture, and store the modified reconstructed picture in the memory 360, specifically, in the DPB of the memory 360. The various filtering methods may include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc.
[0083] The (modified) reconstructed picture stored in the DPB of the memory 360 can be used as a reference picture in the inter-frame predictor 332. The memory 360 can store the motion information of the block from which the motion information in the current picture is derived (decoded) and / or the motion information of the block in the reconstructed picture. The stored motion information can be transmitted to the inter-frame predictor 260 to be used as the motion information of the spatial neighboring block or the motion information of the temporal neighboring block. The memory 360 can store the reconstructed samples of the reconstructed block in the current picture and transmit the reconstructed samples to the intra-frame predictor 331.
[0084] In the present specification, the embodiments described in the filter 260 , the inter predictor 221 , and the intra predictor 222 of the encoding apparatus 200 may be equally applied to or correspond to the filter 350 , the inter predictor 332 , and the intra predictor 331 , respectively.
[0085] In addition, as described above, when performing video coding, prediction is performed to enhance compression efficiency. In this way, a prediction block including prediction samples of the current block to be coded (i.e., the coding target code) can be generated. In this case, the prediction block includes prediction samples in the spatial domain (or pixel domain). The prediction block is derived identically in the encoding device and the decoding device, and the encoding device can enhance the image coding efficiency by notifying the decoding device with a signal about the information (residual information) about the residual between the original block (rather than the original sample value of the original block itself) and the prediction block. The decoding device can derive a residual block including residual samples based on the residual information, can generate a reconstructed block including reconstructed samples by adding the residual block and the prediction block, and can generate a reconstructed picture including the reconstructed block.
[0086] The residual information may be generated through a transform process and a quantization process. For example, the encoding device may derive a residual block between the original block and the prediction block, may derive a transform coefficient by performing a transform process on a residual sample (residual sample array) included in the residual block, may derive a quantized transform coefficient by performing a quantization process on the transform coefficient, and may signal the relevant residual information (through a bitstream) to the decoding device. In this case, the residual information may include value information of the quantized transform coefficient, position information, transform scheme, transform kernel, and quantization parameter, etc. The decoding device may perform an inverse quantization / inverse transform process based on the residual information and may derive a residual sample (or residual block). The decoding device may generate a reconstructed picture based on the prediction block and the residual block. In addition, for the inter-frame prediction reference of subsequent pictures, the encoding device may derive a residual block by inverse quantizing / inverse transforming the quantized transform coefficient, and may generate a reconstructed picture based on this.
[0087] In the case where inter-frame prediction is applied to the current block, the predictor of the encoding device / decoding device can perform inter-frame prediction in units of blocks and derive prediction samples. Inter-frame prediction can be a prediction derived in a manner that depends on data elements (e.g., sample values or motion information) of pictures other than the current picture. In the case where inter-frame prediction is applied to the current block, the prediction block (prediction sample array) of the current block can be derived based on the reference block (reference sample array) specified by the motion vector on the reference picture indicated by the reference picture index. At this time, in order to reduce the amount of motion information sent in the inter-frame prediction mode, the motion information of the current block can be predicted in units of blocks, sub-blocks or samples based on the 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 also include inter-frame prediction type (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of applying inter-frame prediction, the adjacent blocks may include spatial adjacent blocks present in the current picture and temporal adjacent blocks present in the reference picture. The reference picture including the reference block and the reference picture including the temporal adjacent block may be equal to or different from each other. A temporally neighboring block may be referred to as a collocated reference block or collocated CU (colCU), and a reference picture including a temporally neighboring block may be referred to as a collocated picture (colPic). For example, a motion information candidate list may be configured based on a neighboring block of a current block, and a flag or index information may be signaled indicating which candidate is selected (used) to facilitate derivation of a motion vector and / or reference picture index of the current block. Inter-frame prediction may be performed based on various prediction modes, for example, in the case of a skip mode and a (normal) 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 the skip mode, unlike the merge mode, a residual signal may not be sent. In the case of a motion vector prediction (MVP) mode, the motion vector of the selected neighboring block may be used as a motion vector predictor, and the 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.
[0088] The video / image encoding process based on inter-frame prediction may schematically include, for example, the following process.
[0089] Figure 4 An example of a video / image encoding method based on inter-frame prediction is shown.
[0090] The encoding device performs inter prediction on the current block (S400). The encoding device may derive the inter prediction mode and motion information of the current block, and generate a prediction sample of the current block. Here, the process of determining the inter prediction mode, deriving the motion information, and generating the prediction sample may be performed simultaneously, or one process after another. For example, the inter predictor 221 of the encoding device may include a prediction mode determiner, a motion information deriver, and a prediction sample deriver, the prediction mode determiner may determine the prediction mode for the current block, the motion information deriver may derive the motion information of the current block, and the prediction sample deriver may derive the prediction sample of the current block. For example, the inter predictor of the encoding device may search for a block similar to the current block in a specific area (search area) of the reference picture through motion estimation, and derive a reference block whose difference with the current block is the smallest or is less than or equal to a predetermined reference. Based on this, a reference picture index indicating the reference block where the reference block is located may be derived, and a motion vector may be derived based on the position difference between the reference block and the current block. The encoding device may determine the mode applied to the current block from among various prediction modes. The encoding apparatus may compare rate-distortion (RD) costs of various prediction modes and determine an optimal prediction mode for the current block.
[0091] For example, in the case where the skip mode or merge mode is applied to the current block, the encoding device may construct a merge candidate list described later, and derive a reference block having the smallest difference with the current block or less than or equal to a predetermined reference among the reference blocks indicated by the merge candidates included in the merge candidate list. 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 the decoding device. The motion information of the current block may be derived using the motion information of the selected merge candidate.
[0092] As another example, in the case where the (A)MVP mode is applied to the current block, the encoding device may construct a (A)MVP candidate list described later, and use the motion vector of the MVP candidate selected from the motion vector predictor (MVP) candidates included in the (A)MVP candidate list as the MVP of the current block. In this case, for example, the motion vector indicating the reference block derived by the above-mentioned motion estimation can be used as the motion vector of the current block, and the MVP candidate having the motion vector with the smallest difference value with the motion vector of the current block among the MVP candidates can become the selected MVP candidate. A motion vector difference (MVD) can be derived, which is a difference value obtained by subtracting the MVP from the motion vector of the current block. In this case, information about the MVD can be notified to the decoding device by a signal. In addition, in the case where the (A)MVP mode is applied, the reference image index value can be configured as reference image index information, and can be separately notified to the decoding device by a signal.
[0093] The encoding apparatus may induce residual samples based on the prediction samples (S410). The encoding apparatus may induce residual samples by comparing original samples of the current block with the prediction samples.
[0094] The encoding device encodes the image information including prediction information and residual information. The encoding device can output the encoded image information in the form of a bitstream. The prediction information may include information about prediction mode information (e.g., skip flag, merge flag, or mode index) and motion information as information related to the prediction process. The information about the motion information may include candidate selection information (e.g., merge index, mvp flag, or mvp index) as information for deriving a motion vector. In addition, the information about the motion information may include the above-mentioned MVD information and / or reference picture index information. In addition, the information about the motion information may include information indicating whether L0 prediction, L1 prediction, or dual prediction is applied. The residual information is information about the residual sample. The residual information may include information about the quantized transform coefficients used for the residual sample.
[0095] The output bitstream may be stored in a (digital) storage medium and sent to a decoding device or may be sent to a decoding device over a network.
[0096] At the same time, as described above, the encoding device can generate a reconstructed picture (including a reconstructed sample and a reconstructed block) based on the reference sample and the residual sample. This is because the encoding device can derive the same prediction result as the prediction result performed by the decoding device, and by doing so, the coding efficiency can be improved. Therefore, the encoding device can store the reconstructed picture (or reconstructed sample or reconstructed block) in a memory and use the reconstructed picture as a reference picture for inter-frame prediction. As described above, the in-loop filtering process can also be applied to the reconstructed picture.
[0097] The video / image decoding process based on inter-frame prediction may schematically include, for example, the following process.
[0098] Figure 5 An example of a video / image decoding method based on inter-frame prediction is shown.
[0099] Reference Figure 5 , the decoding device may perform an operation corresponding to the operation performed by the encoding device. The decoding device may perform prediction on the current block based on the received prediction information and derive a prediction sample.
[0100] Specifically, the decoding device may derive a prediction mode for the current block based on the received prediction information (S500). The decoding device may determine which inter prediction mode to apply to the current block based on the prediction mode information in the prediction information.
[0101] For example, based on the merge flag, it can be determined whether the merge mode is applied to the current block or whether the (A) MVP mode is determined. Alternatively, one of various inter-frame prediction mode candidates can be selected based on the mode index. The inter-frame prediction mode candidate may include a skip mode, a merge mode, and / or an (A) MVP mode, or may include various inter-frame prediction modes described later.
[0102] The decoding device derives motion information of the current block based on the determined inter-frame prediction mode (S510). For example, in the case where the skip mode or merge mode is applied to the current block, the decoding device may construct a merge candidate list described later, and select a merge candidate from the merge candidates included in the merge candidate list. The selection may be performed based on the above-mentioned selection information (merge index). The motion information of the current block may be derived using the motion information of the selected merge candidate. The motion information of the selected merge candidate may be used as the motion information of the current block.
[0103] As another example, when the (A)MVP mode is applied to the current block, the decoding device may construct a (A)MVP candidate list described later, and use the motion vector of the MVP candidate selected from the motion vector predictor (MVP) 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 the information about the MVD, and the motion vector of the current block may be derived based on the MVP and MVD of the current block. In addition, the reference image index of the current block may be derived based on the reference image index information. The picture indicated by the reference picture index in the reference picture list of the current block may be derived as a reference picture, which is referenced for inter-frame prediction of the current block.
[0104] At the same time, as described later, the motion information of the current block can be derived without configuring the candidate list. In this case, the motion information of the current block can be derived according to the process disclosed in the prediction mode described later. In this case, the configuration of the candidate list as described above can be omitted.
[0105] The decoding device may generate a prediction sample for the current block based on the motion information of the current block (S520). In this case, a reference picture may be derived based on a reference image index of the current block, and a sample of a reference block indicated by a motion vector of the current block on the reference picture may be used to derive the prediction sample of the current block. In this case, as described later, a prediction sample filtering process may be further performed on all or part of the prediction samples of the current block in some cases.
[0106] For example, the inter-frame predictor of the decoding device may include a prediction mode determiner, a motion information deriver, and a prediction sample deriver. The prediction mode determiner may determine a prediction mode for a current block based on the received prediction mode information, the motion information deriver may derive motion information (motion vector and / or reference picture index, etc.) of the current block based on information about the received motion information, and the prediction sample deriver may derive a prediction sample of the current block.
[0107] The decoding device generates residual samples for the current block based on the received residual information (S530). The decoding device can generate reconstructed samples for the current block based on the predicted samples and the residual samples, and generate a reconstructed picture based on this (S540). Thereafter, as described above, the in-loop filtering process can be further applied to the reconstructed picture.
[0108] Figure 6 The inter-frame prediction process is shown as an example
[0109] Reference Figure 6 As described above, the inter-frame prediction process may include determining an inter-frame prediction mode, deriving motion information according to the determined prediction mode, and performing prediction (generating prediction samples) based on the derived motion information. As described above, the inter-frame prediction process may be performed by an encoding device and a decoding device. In this document, a coding device may include an encoding device and / or a decoding device.
[0110] Reference Figure 6 , the coding device determines an inter prediction mode for the current block (S600). Various inter prediction modes may be used to predict the current block within the picture. For example, various modes such as merge mode, skip mode, motion vector prediction (MVP) mode, affine mode, sub-block merge mode, merge with MVD (MMVD) mode, and historical motion vector prediction (HMVP) mode may be used. Decoder-side motion vector refinement (DMVR) mode, adaptive motion vector resolution (AMVR) mode, dual prediction with CU-level weights (BCW), and bidirectional optical flow (BDOF) may be further used or used alternatively as incidental modes. Affine mode may be referred to as affine motion prediction mode. MVP mode may be referred to as advanced motion vector prediction (AMVP) mode. In this document, some modes and / or motion information candidates derived from some modes may be included as one of the candidates related to motion information of other modes. For example, an HMVP candidate may be added as a merge candidate for a merge / skip mode, or may be added as an MVP candidate for an MVP mode.
[0111] Prediction mode information indicating the inter-frame prediction mode of the current block may be signaled from the encoding device to the decoding device. The prediction mode information may be included in the bitstream and received at the decoding device. The prediction mode information may include index information indicating one of a plurality of candidate modes. In addition, the inter-frame prediction mode may be indicated by hierarchical signaling of flag information. In this case, the prediction mode information may include one or more flags. For example, whether a jump mode is applied may be indicated by signaling a skip flag; whether a merge mode is applied may be indicated by signaling a merge flag for not applying a skip mode; and when a merge mode is not applied, the application of an MVP mode may be indicated or a flag for further segmentation may also be signaled. The affine mode may be signaled as an independent mode, or may be signaled as a mode depending on a merge mode, an MVP mode, or the like. For example, the affine mode may include an affine merge mode and an affine MVP mode.
[0112] Meanwhile, information indicating whether the above-mentioned list 0 (L0) prediction, list 1 (L1) prediction, or bi-prediction is used for the current block (current coding unit) may be signaled to the current block. This information may be referred to as motion prediction direction information, inter-prediction direction information, or inter-prediction indication information, and may be constructed / 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, list 1 (L1) prediction, or bi-prediction is used for the current block (current coding unit). In this document, for ease 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 by pred_L0; L1 prediction may be represented by pred_L1; and bi-prediction may be represented by pred_BI. For example, the following prediction types may be indicated according to the value of the inter_pred_idc syntax element.
[0113] As described above, a picture may include one or more slices. A slice may have 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 is not used for prediction, and only intra prediction may be used. Of course, even in this case, the original sample values may be encoded and signaled without prediction. For blocks in a P slice, intra prediction or inter prediction may be used, and in the case of using inter prediction, only unidirectional prediction may be used. At the same time, for blocks in a B slice, intra prediction or inter prediction may be used, and in the case of using inter prediction, up to maximum bi-prediction may be used.
[0114] L0 and L1 may include reference pictures that are encoded / decoded before the current picture. For example, L0 may include reference pictures that are before and / or after the current picture in POC order, and L1 may include reference pictures that are after and / or before the current picture in POC order. In this case, a lower reference picture index relative to a reference picture that is earlier than the current picture in POC order may be assigned to L0, and a lower reference picture index relative to a reference picture that is later than the current picture in POC order may be assigned to L1. In the case of a B slice, bidirectional prediction may be applied, and in this case, unidirectional bidirectional prediction may be applied, or bidirectional bidirectional prediction may be applied. Bidirectional bidirectional prediction may be referred to as true bidirectional prediction.
[0115] Specifically, for example, information about the inter prediction mode of the current block can be coded and signaled at the CU (CU syntax) level, etc., or can be implicitly determined according to conditions. In this case, some modes can be explicitly signaled, while other modes can be implicitly derived.
[0116] For example, the CU syntax may carry information about (inter) prediction modes as shown in Table 1 below, among others.
[0117] [Table 1]
[0118]
[0119]
[0120]
[0121]
[0122]
[0123]
[0124]
[0125]
[0126]
[0127]
[0128]
[0129]
[0130]
[0131] Here, cu_skip_flag may indicate whether skip mode is applied to the current block (CU).
[0132] pred_mode_flag equal to 0 specifies that the current coding unit is coded in inter prediction mode. pred_mode_flag equal to 1 specifies that the current coding unit is coded in intra prediction mode.
[0133] pred_mode_ibc_flag equal to 1 specifies that the current coding unit is coded in IBC prediction mode. pred_mode_ibc_flag equal to 0 specifies that the current coding unit is not coded in IBC prediction mode.
[0134] pcm_flag[x0][y0] equal to 1 specifies that a pcm_sample() syntax structure is present in the coding unit including the luma coding block at position (x0, y0) and a transform_tree() syntax structure is not present. pcm_flag[x0][y0] equal to 0 specifies that a pcm_sample() syntax structure is not present. That is, pcm_flag may indicate whether a pulse coded modulation (PCM) mode is applied to the current block. If a PCM mode is applied to the current block, prediction, transform, quantization, etc. may not be applied, and the original sample values in the current block may be encoded and signaled.
[0135] intra_mip_flag[x0][y0] equal to 1 specifies that the intra prediction type for luma samples is matrix-based intra prediction (MIP). intra_mip_flag[x0][y0] equal to 0 specifies that the intra prediction type for luma samples is not matrix-based intra prediction. That is, intra_mip_flag can indicate whether the MIP prediction mode (type) is applied to (the luma samples of) the current block.
[0136] intra_chroma_pred_mode[x0][y0] specifies the intra prediction mode for chroma samples in the current block.
[0137] general_merge_flag[x0][y0] specifies whether to infer the inter prediction parameters of the current coding unit from the adjacent inter prediction partitions. That is, general_merge_flag may indicate that general merging is available, and when the general_merge_flag value is 1, the regular merge mode, the MMVD mode, and the merge sub-block mode (sub-block merge mode) may be available. For example, when the general_merge_flag value is 1, the merge data syntax may be parsed from the coded video / image information (or bitstream), and the merge data syntax may be configured / compiled to include information as shown in Table 2 below.
[0138] [Table 2]
[0139]
[0140]
[0141]
[0142] Here, regular_merge_flag[x0][y0] equal to 1 specifies that the regular merge mode is used to generate the inter prediction parameters of the current coding unit. That is, regular_merge_flag indicates whether the merge mode (regular merge mode) is applied to the current block.
[0143] mmvd_merge_flag[x0][y0] equal to 1 specifies that the merge mode with motion vector difference is used to generate the inter prediction parameters of the current coding unit. That is, mmvd_merge_flag indicates whether MMVD is applied to the current block.
[0144] mmvd_cand_flag[x0][y0] specifies whether the first (0) or second (1) candidate in the merge candidate list is used with the motion vector difference derived from mmvd_distance_idx[x0][y0] and mmvd_direction_idx[x0][y0].
[0145] mmvd_distance_idx[x0][y0] specifies the index used to derive MmvdDistance[x0][y0].
[0146] mmvd_direction_idx[x0][y0] specifies the index used to derive MmvdSign[x0][y0].
[0147] merge_sub_flag[x0][y0] specifies the sub-block based inter prediction parameters for the current coding. That is, merge_sub_flag may indicate whether the sub-block merge mode (or affine merge mode) is applied to the current block.
[0148] merge_subblock_idx[x0][y0] specifies a merge candidate index of a sub-block based merge candidate list.
[0149] ciip_flag[x0][y0] specifies whether combined inter-image merging and intra-image prediction is applied to the current coding unit.
[0150] merge_triagle_idx0[x0][y0] specifies the first merge candidate index of the triangle shape based motion compensation candidate list.
[0151] merge_triagle_idx1[x0][y0] specifies the second merge candidate index of the triangle shape based motion compensation candidate list.
[0152] merge_idx[x0][y0] specifies the merge candidate index of the merge candidate list.
[0153] Meanwhile, referring back to the CU syntax of Table 1, mvp_l0_flag[x0][y0] specifies the motion vector prediction index of list 0, that is, when the MVP mode is applied, mvp_l0_flag may represent the candidate selected from the MVP candidate list 0 for MVP derivation of the current block.
[0154] ref_idx_l1[x0][y0] has the same semantics as ref_idx_l0, where l0 and list0 can be replaced by l1 and list1 respectively. (ref_idx_l1[x0][y0] has the same semantics as ref_idx_L0, where l0, L0 and list0 can be replaced by l1, L1 and list1 respectively).
[0155] inter_pred_idc[x0][y0] specifies whether list 0, list 1, or bi-prediction is used for the current coding unit.
[0156] sym_mvd_flag[x0][y0] equal to 1 specifies that the syntax elements ref_idx_l0[x0][y0] and ref_idx_l1[x0][y0] and the mvd_coding(x0, y0, refList, cpdix) syntax structure for refList equal to 1 are not present. In other words, sym_mvd_flag indicates whether symmetric MVD is used for mvd coding.
[0157] ref_idx_l0[x0][y0] specifies the list 0 reference picture index for the current coding unit.
[0158] ref_idx_l1[x0][y0] has the same semantics as ref_idx_l0, where l0, L0, and list0 are replaced by l1, L1, and list1, respectively.
[0159] inter_affif_flag[x0][y0] equal to 1 specifies that, for the current coding unit, when decoding a P or B slice, affine model-based motion compensation is used to generate prediction samples for the current coding unit.
[0160] cu_affif_type_flag[x0][y0] equal to 1 specifies that, for the current coding unit, when decoding a P or B slice, motion compensation based on a 6-parameter affine model is used to generate prediction samples for the current coding unit. cu_affif_type_flag[x0][y0] equal to 0 specifies that motion compensation based on a 4-parameter affine model is used to generate prediction samples for the current coding unit.
[0161] amvr_flag[x0][y0] specifies the resolution of the motion vector difference. The array index x0, y0 specifies the position (x0, y0) of the top left luma sample of the coding block under consideration relative to the top left luma sample of the picture. amvr_flag[x0][y0] equal to 0 specifies that the resolution of the motion vector difference is 1 / 4 of the luma samples. amvr_flag[x0][y0] equal to 1 specifies that the resolution of the motion vector difference is further specified by amvr_precision_flag[x0][y0].
[0162] If inter_affice_flag[x0][y0] is equal to 0, then amvr_precision_flag[x0][y0] is equal to 0 to specify that the resolution of motion vector differences is one integer luma sample, otherwise it is 1 / 16 luma samples. If inter_affice_flag[x0][y0] is equal to 0, then amvr_precision_flag[x0][y0] is equal to 1 to specify that the resolution of motion vector differences is four luma samples, otherwise it is one integer luma sample. The array index x0, y0 specifies the position (x0, y0) of the top left luma sample of the coding block under consideration relative to the top left luma sample of the picture.
[0163] bcw_idx[x0][y0] specifies the weight index of bi-prediction with CU weight.
[0164] When the (inter) prediction mode for the current block is determined, the coding apparatus derives motion information for the current block based on the prediction mode (S610).
[0165] The encoding device can perform inter-frame prediction using the motion information of the current block. The encoding device can derive the best motion information of the current block through a motion estimation process. For example, the encoding device can search for a similar reference block with high correlation within a search range determined in a reference image in units of fractional pixels using the original block in the original image about the current block, and derive motion information therefrom. Block similarity can be derived based on the difference between phase-based sample values. For example, block similarity can 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, motion information can be derived based on the reference block with the minimum SAD in the search area. The derived motion information can be signaled to the decoding device according to various methods based on the inter-frame prediction mode.
[0166] When the motion information about the current block is derived, the coding device performs inter prediction based on the motion information about the current block (S620). The coding device may derive a prediction sample of the current block based on the motion information. The current block including the prediction sample may be referred to as a prediction block.
[0167] Reconstructed samples and reconstructed pictures may be generated based on the derived prediction samples, and thereafter, processes such as in-loop filtering may be performed.
[0168] Figure 7 is a diagram illustrating merge mode and skip mode that can be used for inter-frame prediction.
[0169] In the case where the merge mode is applied during inter-frame prediction, the motion information of the current block is not directly transmitted, and the motion information of the adjacent prediction block is used to derive the motion information of the current block. Therefore, the encoding device can indicate the motion information of the current block by transmitting flag information indicating the use of the merge mode and a merge index indicating which adjacent prediction block is used. The merge mode may be referred to as a normal merge mode.
[0170] In order to perform the merge mode, the coding device searches for a merge candidate block for deriving motion information of the current block. For example, up to 5 merge candidate blocks may be used, but the present embodiment is not limited thereto. In addition, information about the maximum number of merge candidate blocks may be sent in a slice header or a tile group header, but the present embodiment is not limited thereto. After finding the merge candidate block, the coding device may generate a merge candidate list, and may select the merge candidate block with the minimum cost among the merge candidate blocks as the final merge candidate block.
[0171] This document provides various embodiments of merge candidate blocks for constructing a merge candidate list.
[0172] The merge candidate list may include, for example, 5 merge candidate blocks. For example, 4 spatial merge candidates and one temporal merge candidate may be used. As a specific example, in the case of spatial merge candidates, Figure 7 Blocks A0, A1, B0, B1, and B2 shown in FIG. 1 may be used as spatial merge candidates. Hereinafter, a spatial merge candidate or spatial MVP candidate to be described later may be referred to as SMVP, and a temporal merge candidate or temporal MVP candidate to be described later may be referred to as TMVP.
[0173] For example, the merge candidate list for the current block may be constructed based on the following process.
[0174] First, the coding device (coding device / decoding device) may insert a spatial merge candidate derived by searching the spatial neighboring blocks of the current block into the merge candidate list. For example, the spatial neighboring blocks may include the lower left neighboring block A0, the left neighboring block A1, the upper right neighboring block B0, the upper neighboring block B1, and the upper left neighboring block B2 of the current block. However, this is an example, and in addition to the above-mentioned spatial neighboring blocks, additional neighboring blocks such as the right neighboring block, the lower neighboring block, and the lower right neighboring block may be further used as spatial neighboring blocks. The coding device may detect available blocks by searching the spatial neighboring blocks based on priority, and may derive the motion information of the detected blocks as spatial merge candidates. For example, the coding device and / or the decoding device may search in the order of A1, B1, B0, A0, and B2. Figure 7 The 5 blocks shown in , and sequentially index the available candidates to form a merge candidate list.
[0175] In addition, the coding device may insert a temporal merge candidate derived by searching the temporal neighboring blocks of the current block into the merge candidate list. The temporal neighboring block may be placed on a reference picture that is a picture different from the current picture on which the current block is placed. The reference picture on which the temporal neighboring block is placed may be referred to as a collocated picture or a col picture. The temporal neighboring blocks may be searched in the order of a lower right corner neighboring block and a lower right center block of the collocated block with respect to the current block on the col picture.
[0176] At the same time, the coding device may check whether the number of current merge candidates is less than the number of maximum merge candidates. The number of maximum merge candidates may be predefined, or may be signaled from the encoding device to the decoding device. For example, the encoding device may generate information about the number of maximum merge candidates, encode the information, and send the encoded information to the decoding device in the form of a bitstream. When the number of maximum merge candidates is filled, subsequent candidate addition processing may not be performed.
[0177] When the number of current merge candidates is less than the maximum number of merge candidates as a result of the check, the compilation device may insert an additional merge candidate into the merge candidate list. For example, the additional merge candidate may include a history-based merge candidate, a pairwise average merge candidate, an ATMVP, a combined bi-predictive merge candidate (when the slice / tile group type of the current slice / tile group is type B), and / or a zero vector merge candidate.
[0178] If, as a result of the check, the number of current merge candidates is not less than the number of maximum merge candidates, the coding device may end the construction of the merge candidate list. In this case, the encoding device may select the best merge candidate from the merge candidates constituting the merge candidate list based on the rate-distortion (RD) cost, and may signal selection information (e.g., a merge index) indicating the selected merge candidate to the decoding device. The decoding device may select the best merge candidate based on the merge candidate list and the selection information.
[0179] As described above, the motion information of the selected merge candidate may be used as the motion information of the current block, and the prediction sample of the current block may be derived based on the motion information of the current block. The encoding device may derive the residual sample of the current block based on the prediction sample, and may signal the residual information about the residual sample to the decoding device. As described above, the decoding device may generate a reconstructed sample based on the residual sample and the prediction sample derived from the residual information, and generate a reconstructed picture based thereon.
[0180] When skip mode is applied during inter prediction, motion information of the current block can be derived in the same manner as when merge mode is applied as described above. However, when skip mode is applied, the residual signal of the corresponding block is omitted, so the prediction sample can be directly used as the reconstructed sample.
[0181] Figure 8 is a diagram illustrating a merge mode with a motion vector difference that can be used in inter-frame prediction.
[0182] In addition to the merge mode (in which the implicitly derived motion information is directly used for prediction sample generation of the current CU), a merge mode with motion vector difference (MMVD) is introduced in VVC. Because similar motion information derivation methods are used for skip mode and merge mode, MMVD can be applied to skip mode. An MMVD flag (e.g., MMVD_flag) can be signaled immediately after sending the skip flag and the merge flag to specify whether the MMVD mode is used for the CU.
[0183] In MMVD, after a merge candidate is selected, the merge candidate is further refined by signaling MVD information. When MMVD is applied to the current block (ie, when MMVD_flag is equal to 1), further information of MMVD may be signaled.
[0184] Further information includes a merge candidate flag (e.g. mmvd_merge_flag), an index specifying the magnitude of motion (e.g. mmvd_distance_idx), and an index indicating the direction of motion (e.g. mmvd_direction_idx). The merge candidate flag indicates whether the first candidate (0) or the second candidate (1) in the merge candidate list is used with the motion vector difference. In MMVD mode, one of the first two candidates in the merge list is selected for use as the MV basis. The merge candidate flag is signaled to specify which one is used.
[0185] The distance index specifies motion magnitude information and indicates a predefined offset from a starting point.
[0186] like Figure 8 As shown, the offset is added to the horizontal component or the vertical component of the starting MV. The relationship between the distance index and the predefined offset is specified in Table 3.
[0187] [Table 3]
[0188]
[0189] Here, slice_fpel_mmvd_enabled_flag equal to 1 specifies that merge mode with motion vector difference uses integer sample precision in the current slice. slice_fpel_mmvd_enabled_flag equal to 0 specifies that merge mode with motion vector difference can use fractional sample precision in the current slice. When not present, the value of slice_fpel_mmvd_enabled_flag is inferred to be 0. The slice_fpel_mmvd_enabled_flag syntax element may be signaled via (and may be included in) the slice header.
[0190] The direction index indicates the direction of the MVD relative to the starting point. The direction index can indicate four directions as shown in Table 4. Note that the meaning of the MVD symbol can change according to the information of the starting MV. When the starting MV is a non-predicted MV or a double-predicted MV in which both lists point to the same side of the current picture (i.e., the POCs of both references are greater than the POC of the current picture, or are less than the POC of the current picture), the symbol in Table 4 specifies the symbol of the MV offset added to the starting MV. When the starting MV is a non-predicted MV or a double-predicted MV in which both lists point to the same side of the current picture (i.e., the POCs of both references are greater than the POC of the current picture, or are less than the POC of the current picture), the symbol in Table 4 specifies the symbol of the MV offset added to the starting MV.
[0191] [Table 4]
[0192] mmvd_direction_idx[x0][y0] MmvdSign[x0][y0][0] MmvdSign[x0][y0][1] 0 +1 0 1 -1 0 2 0 +1 3 0 -1
[0193] The combined two components plus the MVD offset MmvdOffset[x0][y0] are derived as follows.
[0194] [Equation 1]
[0195] MmvdOffset[x0][y0][0]=(MmvdDistance[x0][y0]<<2)*MmvdSign[×0][y0][0]
[0196] MmvdOffset[x0][y0][1]=(MmvdDistance[x0][y0]<<2)*MmvdSign[x0][y0][1]
[0197] Fig. 9 and Fig.10 is a diagram explaining a sub-block based temporal motion vector prediction process that can be used during inter prediction.
[0198] The sub-block based temporal motion vector prediction (SbTMVP) method can be used for inter prediction. Similar to the temporal motion vector prediction (TMVP), SbTMVP uses the motion field in the collocated picture to improve the motion vector prediction and merge mode of the CU in the current picture. The same collocated picture used by TMVP is used for SbTVMP. SbTMVP differs from TMVP in the following two main aspects.
[0199] 1. TMVP predicts motion at CU level, but SbTMVP predicts motion at sub-CU level.
[0200] 2. TMVP extracts the temporal motion vector from a collocated block in a collocated picture (the collocated block is the lower right or center (lower right center) block relative to the current CU), while SbTMVP applies motion shifting before extracting temporal motion information from the collocated picture, where the motion shifting is obtained from the motion vector from one of the spatial neighboring blocks of the current CU.
[0201] Fig. 9 and Fig.10 The SbTMVP process is shown in Figure 2. SbTMVP predicts the motion vector of the sub-CU in the current CU in two steps. In the first step, check Fig. 9 If A1 has a motion vector that uses the collocated picture as its reference picture, then that motion vector (which may be referred to as the temporal MV (tempVM)) is selected as the motion shift to be applied. If no such motion is identified, then the motion shift is set to (0, 0).
[0202] In the second step, the motion shift identified in step 1 is applied (i.e., added to the coordinates of the current block) to obtain Fig.10 The collocated picture shown obtains sub-CU level motion information (motion vector and reference index). Fig.10 The example in assumes that the motion shift is set to the motion of block A1. Then, for each sub-CU, the motion information for the sub-CU is derived using the motion information of its corresponding block in the collocated picture (the smallest motion grid covering the center sample). When the sub-block has uniform length, width, and height, the center sample (the lower right center sample) can correspond to the lower right sample among the 4 center samples in the sub-CU.
[0203] After the motion information of the collocated sub-CU is identified, it is converted to a motion vector and reference index of the current sub-CU in a manner similar to the TMVP process, where temporal motion scaling can be applied to align the reference picture of the temporal motion vector with the reference picture of the current CU.
[0204] A sub-block based merge list containing a combination of both SbTVMP candidates and affine merge candidates may be used for signaling of affine merge mode (which may be referred to as (sub-block based) merge mode). SbTVMP mode is enabled / disabled by a sequence parameter set (SPS) flag. If SbTMVP mode is enabled, the SbTMVP predictor is added as the first entry in the sub-block merge candidate list, followed by the affine merge candidate. The maximum allowed size of the affine merge candidate list may be 5.
[0205] The sub-CU size used in SbTMVP may be fixed to 8×8, and as done for affine merge mode, the SbTMVP mode may be applied only to CUs whose width and height are both greater than or equal to 8.
[0206] The encoding logic of the additional SbTMVP merge candidate is the same as that of other merge candidates, that is, for each CU in a P or B slice, an additional RD check may be performed to decide whether to use the SbTMVP candidate.
[0207] Fig.11 is a diagram illustrating a partition mode that can be applied to inter-frame prediction.
[0208] Triangle partition mode can be used for inter prediction. Triangle partition mode can only be applied to CUs of 8x8 or larger. In the case of other merge modes including normal merge mode, MMVD mode, CIIP mode and sub-block merge mode, a CU level flag is used as a merge mode to signal the triangle partition mode.
[0209] When this mode is used, the CU can be evenly split into two triangular partitions using diagonal or anti-diagonal partitioning, such as Fig.11 As shown in . Each triangular partition in a CU is inter-predicted using its own motion; only uni-prediction is allowed for each partition, i.e., each partition has one motion vector and one reference index. Uni-prediction motion constraints are applied to ensure that only two motion compensated predictions are required for each CU, the same as conventional bi-prediction.
[0210] If triangle partition mode is used for the current CU, a flag indicating the direction of the triangle partition (diagonal or anti-diagonal) and two merge indices (one merge index for each partition) are further signaled. The number of maximum TPM candidate sizes is explicitly signaled at the slice level, and the syntax specifying the TMP merge indices is binarized. After predicting each of the triangle partitions, a hybrid process with adaptive weights is used to adjust the sample values along the diagonal or anti-diagonal edges. This is the prediction signal for the entire CU, and the transform and quantization process will be applied to the entire CU as in other prediction modes. Finally, the motion field of the CU predicted using the triangle partition mode is stored in 4×4 units. The triangle partition mode is not used in combination with SBT, that is, when the signaled triangle mode is equal to 1, cu_SBT_flag is inferred to be 0 without signaling.
[0211] The uni-prediction candidate list is directly derived from the merge candidate list constructed as described above.
[0212] After predicting each triangle partition using its own motion, blending is applied to the two prediction signals to derive samples around diagonal or anti-diagonal edges.
[0213] Fig.12is a diagram illustrating a CIIP mode applicable to inter-frame prediction.
[0214] Combined inter-frame and intra-frame prediction can be applied to the current block. An additional flag (e.g., CIIP_flag) may be signaled to indicate whether the combined inter / intra prediction (CIIP) mode is applied to the current CU. For example, when a CU is compiled in merge mode, if the CU includes at least 64 luma samples (i.e., the CU width multiplied by the CU height is equal to or greater than 64), and if both the CU width and the CU height are less than 128 luma samples, then an additional flag is signaled to indicate whether the combined inter / intra prediction (CIIP) mode is applied to the current CU. As its name indicates, CIIP prediction combines an inter-frame prediction signal with an intra-frame prediction signal. The inter-frame prediction signal in the CIIP mode P_inter is derived using the same inter-frame prediction process applied to the conventional merge mode; and the intra-frame prediction signal P_intra is derived using the planar mode after the conventional intra-frame prediction process. The intra-frame and inter-frame prediction signals are then combined using weighted averaging, where the following is according to ( Fig.12 The weight values are calculated based on the coding modes of the top neighboring block and the left neighboring block (depicted in ).
[0215] If the top neighbor is available and is intra compiled, isIntrantop is set to 1, otherwise isIntrantop is set to 0.
[0216] If the left neighbor is available and is intra-coded, isIntraLeft is set to 1, otherwise isIntraLeft is set to 0.
[0217] If (isIntraLeft+isIntraLeft) equals 2, then set wt to 3.
[0218] Otherwise, if (isIntraLeft+isIntraLeft) is equal to 1, set wt to 2.
[0219] Otherwise, if (isIntraLeft+isIntraLeft) is equal to 1, set wt to 2.
[0220] The CIIP forecast is formed as follows.
[0221] [Equation 2]
[0222] P CIIP =((4-wt)*P inter +wt*P intra +2)>>2
[0223] Meanwhile, in order to generate a prediction block, the coding device may derive motion information based on a conventional merge mode, a skip mode, an SbTMVP mode, an MMVD mode, a triangle partition mode (partition mode), and / or a CIIP mode as described above. Each mode may be enabled / disabled by an on / off flag for each mode included in a sequence parameter set (SPS). If the on / off flag for a particular mode is disabled, the coding device does not signal the syntax for explicit transmission of the corresponding prediction mode in units of CU or PU.
[0224] Therefore, when all specific modes of the merge / skip mode are disabled or partially disabled in the existing operation process, a problem occurs in which the on / off flag is redundantly signaled. Therefore, in this document, in order to prevent the same information (flag) from being redundantly signaled in the process of selecting the merge mode applied to the current block based on the merge data syntax of Table 2, any one of the following methods may be used.
[0225] The encoding device may signal a flag based on a sequence parameter set as shown in Table 5 below in order to select a prediction mode that may be used in the processing of the derived motion information. Each prediction mode may be turned on / off based on the sequence parameter set of Table 5, and each syntax element of the merge data syntax of Table 2 may be parsed or induced according to the conditions of using the flag of Table 5 and each mode.
[0226] [Table 5]
[0227]
[0228]
[0229]
[0230]
[0231]
[0232]
[0233]
[0234]
[0235]
[0236]
[0237] The following drawings are prepared to explain specific examples of this document. Since the names of specific devices and signals / information described in the drawings are presented by way of example, the technical features of the present disclosure are not limited to the specific names used in the following drawings.
[0238] Fig.13 and Fig.14 An example of a video / image encoding method including an inter-frame prediction method and associated components according to an embodiment of the present disclosure is schematically illustrated.
[0239] Fig.13 The encoding method disclosed in can be Figure 2 Specifically, for example, Fig.13 S1300 to S1310 may be performed by the predictor 220 of the encoding apparatus 200 , and S1320 may be performed by the entropy encoder 240 of the encoding apparatus 200 . Fig.13 The encoding method disclosed in may include the above-mentioned embodiments of this document.
[0240] Specifically, refer to Fig.13 and Fig.14 , the predictor of the encoding device may determine a prediction mode of the current block (S1300). As an example, in the case where inter-frame prediction is applied to the current block, the predictor of the encoding device may determine any one of a normal merge mode, a skip mode, an MMVD mode, a sub-block merge mode, a partition mode, and a CIIP mode as the prediction mode of the current block.
[0241] Here, the conventional merge mode may be defined as a mode in which the motion information of the current block is derived using the motion information of the adjacent blocks. The skip mode may be defined as a mode in which the prediction block is used as a reconstructed block. The MMVD mode may be applied to the merge mode or the skip mode, and may be defined as a merge (or skip) mode using a motion vector difference. The sub-block merge mode may be defined as a merge mode based on a sub-block. The partition mode may be defined as a mode in which prediction is performed by dividing the current block into two partitions (diagonal or anti-diagonal). The CIIP mode may be defined as a mode in which inter-picture merging and intra-picture prediction are combined with each other.
[0242] At the same time, the predictor of the encoding device can search for a block similar to the current block in a specific area (search area) of the reference picture through motion estimation, derive a reference block having a difference that is minimum or equal to or less than a specific reference from the current block, and derive a reference picture index indicating the reference picture in which the reference block is located based on this. In addition, a motion vector can be derived based on the position difference between the reference block and the current block.
[0243] The predictor of the encoding device may generate a prediction sample (prediction block) of the current block based on the prediction mode of the current block and the motion vector of the current block. In addition, the predictor of the encoding device may generate information about the prediction mode based on the prediction mode (S1310). Here, the information about the prediction mode may include inter / intra prediction classification information, inter prediction mode information, etc., and may include various syntax elements related thereto.
[0244] The residual processor of the encoding device may generate residual samples based on the original samples of the current block (original block) and the predicted samples of the current block (prediction block). In addition, information about the residual samples may be derived based on the residual samples.
[0245] The encoder of the encoding device may encode the image information, and the image information includes information about the residual sample, information about the prediction mode, etc. (S1320). The image information may include partition related information, information about the prediction mode, residual information, in-loop filtering related information, etc., and may include various syntax elements related thereto. The information encoded by the encoder of the encoding device can be output in the form of a bit stream. The bit stream may be sent to a decoding device via a network or a storage medium.
[0246] For example, the image information may include information about various parameter sets, such as an adaptive parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, the image information may include information about a prediction mode of a current block, such as a coding unit syntax and a merge data syntax. Here, the sequence parameter set may include a combined inter-picture merging and intra-picture prediction (CIIP) enable flag, an enable flag for a partition mode, and the like. The coding unit syntax may include a CU skip flag indicating whether a skip mode is applied to the current block.
[0247] According to an embodiment, as an example, the encoding device may include a conventional merge flag in the image information based on satisfying a condition based on a CIIP enable flag and a condition based on the size of the current block, so as not to repeatedly send the same syntax. Here, the condition based on the size of the current block may be a case where the product of the height of the current block and the width of the current block is 64 or greater and the height of the current block and the width of the current block are each less than 128. The condition based on the CIIP enable flag may be a case where the value of the CIIP enable flag is 1. In other words, when the product of the height of the current block and the width of the current block is 64 or greater, the height of the current block and the width of the current block are each less than 128, and the value of the CIIP enable flag is 1, the encoding device may then signal a conventional merge flag.
[0248] As another example, the encoding device may include a normal merge flag in the image information based on satisfying a condition based on the CU skip flag and the size of the current block. Here, the condition based on the CU skip flag may be a case where the value of the CU skip flag is 0. In other words, when the product of the height of the current block and the width of the current block is 64 or greater, the product of the height of the current block and the width of the current block is less than 128, and the value of the CU skip flag is 0, the encoding device may then signal a normal merge flag.
[0249] As another example, in addition to the condition based on the CIIP enable flag and the condition based on the size of the current block, the encoding device may include a conventional merge flag in the image information based on further satisfying the condition based on the CU skip flag. Here, the condition based on the CU skip flag may be a case where the value of the CU skip flag is 0. In other words, when the product of the height of the current block and the width of the current block is 64 or greater, the product of the height of the current block and the width of the current block is less than 128, the value of the CIIP enable flag is 1, and the value of the CU skip flag is 0, the encoding device may then signal the conventional merge flag.
[0250] As another example, the encoding device may include a conventional merge flag in the image information based on satisfying a condition based on information about the current block and a partition mode enable flag. Here, the condition based on the information about the current block may include a case where the product of the width and height of the current block is 64 or greater and / or a case where the slice type of the current block is a B slice. The condition based on the partition mode enable flag may be a case where the value of the partition mode enable flag is 1. In other words, when the condition based on the height of the current block and the information about the current block and the condition based on the partition mode enable flag are satisfied, the encoding device may signal a conventional merge flag.
[0251] When the condition based on the CIIP enable flag and the condition based on the size of the current block are not met, the encoding device may determine whether the condition based on the information about the current block and the partition mode enable flag is met. Alternatively, when the condition based on the information about the current block and the partition mode enable flag is not met, the encoding device may determine whether the condition based on the CIIP enable flag and the condition based on the size of the current block are met.
[0252] Meanwhile, when the product of the width and height of the current block is not 32 and the value of the MMVD enable flag is 1, or when the maximum number of sub-block merge candidates is greater than 0 and the width and height of the current block are equal to or greater than 8, the encoding device may signal a normal merge flag.
[0253] To this end, as an example, the merge data syntax may be configured as shown in Table 6 below.
[0254] [Table 6]
[0255]
[0256]
[0257]
[0258] In Table 6, regular_merge_flag[x0][y0] equal to 1 specifies that the regular merge mode is used to generate inter prediction parameters for the current coding unit. The array index x0, y0 specifies the position (x0, y0) of the left top luma sample of the considered coding block relative to the left top luma sample of the picture.
[0259] When regular_merge_flag[x0][y0] does not exist, the inference is as follows.
[0260] If all of the following conditions are true, regular_merge_flag[x0][y0] is inferred to be equal to 1.
[0261] -regular_merge_flag[x0][y0] is equal to 1
[0262] -sps_mmvd_enable_flag is equal to 0 or cbWidth*cbHeight == 32)
[0263] -MaxNumSubblockMergeCand<=0 or cbWidth<8 or cbHeight<8
[0264] -sps_ciip_enabled_flag is equal to 0 or cbWidth*cbHeight<64 or cbWidth>=128 or cu_skip_flag[x0][y0] is equal to 1
[0265] -sps_triangle_enabled_flag is equal to 0 or MaxNumTriangleMergeCand < 2 or slice_type is not equal to B_SLICE
[0266] Otherwise, regular_merge_flag[x0][y0] is inferred to be equal to 0.
[0267] Meanwhile, according to another embodiment, as an example, the encoding device may include an MMVD merge flag in the image information based on satisfying a condition based on a CIIP enable flag and a condition based on the size of the current block, so as not to repeat sending the same syntax. Here, the condition based on the size of the current block may be a case where the product of the height of the current block and the width of the current block is 64 or greater and the height of the current block and the width of the current block are each less than 128. The condition based on the CIIP enable flag may be a case where the value of the CIIP enable flag is 1. In other words, when the product of the height of the current block and the width of the current block is 64 or greater, the height of the current block and the width of the current block are less than 128, and the value of the CIIP enable flag is 1, the encoding device may signal the MMVD merge flag.
[0268] As another example, in addition to the condition based on the CIIP enable flag and the condition based on the size of the current block, the encoding device may include the MMVD merge flag in the image information based on further satisfying the condition based on the CU skip flag. Here, the condition based on the CU skip flag may be a case where the value of the CU skip flag is 0. In other words, when the product of the height of the current block and the width of the current block is 64 or greater, the height of the current block and the width of the current block are each less than 128, the value of the CIIP enable flag is 1, and the value of the CU skip flag is 0, the encoding device may then signal the MMVD merge flag.
[0269] As another example, the encoding device may include an MMVD merge flag in the image information based on satisfying a condition based on information about the current block and a partition mode enable flag. Here, the condition based on information about the current block may include a case where the product of the width and height of the current block is 64 or greater and / or a case where the slice type of the current block is a B slice. The condition based on the partition mode enable flag may be a case where the value of the partition mode enable flag is 1. In other words, when the condition based on the height of the current block and the information about the current block and the condition based on the partition mode enable flag are satisfied, the encoding device may signal the MMVD merge flag.
[0270] When the condition based on the CIIP enable flag and the condition based on the size of the current block are not met, the encoding device may determine whether the condition based on the information about the current block and the partition mode enable flag is met. Alternatively, when the condition based on the information about the current block and the partition mode enable flag is not met, the encoding device may determine whether the condition based on the CIIP enable flag and the condition based on the size of the current block are met.
[0271] Meanwhile, when the product of the width and height of the current block is not 32 and the value of the MMVD enable flag is 1, or when the maximum number of subblock merge candidates is greater than 0 and the width and height of the current block are 8 or more, the encoding device may signal the MMVD merge flag.
[0272] To this end, as an example, the merge data syntax may be configured as shown in Table 7 below.
[0273] [Table 7]
[0274]
[0275]
[0276]
[0277]
[0278] mmvd_merge_flag[x0][y0] equal to 1 specifies that merge mode with motion vector difference is used to generate inter prediction parameters for the current coding unit. Array index x0, y0 specifies the position (x0, y0) of the left top luma sample of the considered coding block relative to the left top luma sample of the picture.
[0279] When mmvd_merge_flag[x0][y0] does not exist, the inference is as follows.
[0280] mmvd_merge_flag[x0][y0] is inferred to be equal to 1 if all of the following conditions are true.
[0281] -general_merge_flag[x0][y0] is equal to 1
[0282] -regular_merge_flag[x0][y0] is equal to 0
[0283] -sps_mmvd_enable_flag equal to 1
[0284] -cbWidth*cbHeight!=32
[0285] -MaxNumSubblockMergeCand<=0 or cbWidth<8 or cbHeight<8
[0286] -sps_ciip_enabled_flag is equal to 0 or cbWidth>=128 or cbHeight>=128 or cu_skip_flag[x0][y0] is equal to 1
[0287] -sps_triangle_enabled_flag is equal to 0 or MaxNumTriangleMergeCand < 2 or slice_type is not equal to B_SLICE
[0288] Otherwise, mmvd_merge_flag[x0][y0] is inferred to be equal to 0.
[0289] Meanwhile, according to another embodiment, as an example, the encoding device may include a merged sub-block flag in the image information based on satisfying a condition based on a CIIP enable flag and a condition based on the size of the current block, so as not to repeatedly send the same syntax. Here, the condition based on the size of the current block may be a case where the product of the height of the current block and the width of the current block is 64 or greater and the height of the current block and the width of the current block are each less than 128. The condition based on the CIIP enable flag may be a case where the value of the CIIP enable flag is 1. In other words, when the product of the height of the current block and the width of the current block is 64 or greater, the height of the current block and the width of the current block are each less than 128, and the value of the CIIP enable flag is 1, the encoding device may signal the merged sub-block flag.
[0290] As another example, in addition to the condition based on the CIIP enable flag and the condition based on the size of the current block, based on further satisfying the condition based on the CU skip flag, the encoding device may include the merged sub-block flag in the image information. Here, the condition based on the CU skip flag may be a case where the value of the CU skip flag is 0. In other words, when the product of the height of the current block and the width of the current block is 64 or greater, the height of the current block and the width of the current block are less than 128, the value of the CIIP enable flag is 1, and the value of the CU skip flag is 0, the encoding device may then signal the merged sub-block flag.
[0291] As another example, the encoding device may include a merged sub-block flag in the image information based on satisfying a condition based on information about the current block and a partition mode enable flag. Here, the condition based on information about the current block may include a case where the product of the width and height of the current block is 64 or greater and / or a case where the slice type of the current block is a B slice. The condition based on the partition mode enable flag may be a case where the value of the partition mode enable flag is 1. In other words, when the condition based on the height of the current block and the information about the current block and the condition based on the partition mode enable flag are satisfied, the encoding device may signal the merged sub-block flag.
[0292] When the condition based on the CIIP enable flag and the condition based on the size of the current block are not met, the encoding device may determine whether the condition based on the information about the current block and the partition mode enable flag is met. Alternatively, when the condition based on the information about the current block and the partition mode enable flag is not met, the encoding device may determine whether the condition based on the CIIP enable flag and the condition based on the size of the current block are met.
[0293] Meanwhile, when the maximum number of subblock merging candidates is greater than 0 and the width and height of the current block are each 8 or greater, the encoding apparatus may signal a merge subblock flag.
[0294] To this end, as an example, the merge data syntax may be configured as shown in Table 8 below.
[0295] [Table 8]
[0296]
[0297]
[0298]
[0299] merge_subblock_flag[x0][y0] specifies whether subblock-based inter prediction parameters for the current coding unit are inferred from neighboring blocks. Array index x0, y0 specifies the position (x0, y0) of the left top luma sample of the considered coding block relative to the left top luma sample of the picture.
[0300] When merge_subblock_flag[x0][y0] does not exist, the inference is as follows.
[0301] merge_subblock_flag[x0][y0] is inferred to be equal to 1 if all of the following conditions are true.
[0302] -general_merge_flag[x0][y0] is equal to 1
[0303] -regular_merge_flag[x0][y0] is equal to 0
[0304] -merge_subblock_flag[x0][y0] is equal to 0
[0305] -mmvd_merge_flag[x0][y0] is equal to 0
[0306] -MaxNumSubblockMergeCand>0
[0307] -cbWidth>=8and cbHeight>=8
[0308] -sps_ciip_enabled_flag is equal to 0 or cbWidth>=128 or cbHeight>=128 or cu_skip_flag[x0][y0] is equal to 1
[0309] -sps_triangle_enabled_flag is equal to 0 or MaxNumTriangleMergeCand < 2 or slice_type is not equal to B_SLICE
[0310] Otherwise, merge_subblock_flag[x0][y0] is inferred to be equal to 0.
[0311] Meanwhile, according to another embodiment, as an example, the encoding device may include the CIIP flag in the image information based on satisfying a condition based on the CIIP enable flag and a condition based on the size of the current block, so as not to repeat sending the same syntax. Here, the condition based on the size of the current block may be a case where the product of the height of the current block and the width of the current block is 64 or greater and the height of the current block and the width of the current block are each less than 128. The condition based on the CIIP enable flag may be a case where the value of the CIIP enable flag is 1. In other words, when the product of the height of the current block and the width of the current block is 64 or greater, the height of the current block and the width of the current block are less than 128, and the value of the CIIP enable flag is 1, the encoding device may signal the CIIP flag.
[0312] As another example, in addition to the condition based on the CIIP enable flag and the condition based on the size of the current block, based on further satisfying the condition based on the CU skip flag, the encoding device may include the CIIP flag in the image information. Here, the condition based on the CU skip flag may be a case where the value of the CU skip flag is 0. In other words, when the product of the height of the current block and the width of the current block is 64 or more, the height of the current block and the width of the current block are each less than 128, the value of the CIIP enable flag is 1, and the value of the CU skip flag is 0, the encoding device may then signal the CIIP flag.
[0313] As another example, the encoding device may include a CIIP flag in the image information based on satisfying a condition based on information about the current block and a partition mode enable flag. Here, the condition based on information about the current block may include a case where the product of the width and height of the current block is 64 or greater and / or a case where the slice type of the current block is a B slice. The condition based on the partition mode enable flag may be a case where the value of the partition mode enable flag is 1. In other words, when the condition based on the height of the current block and the information about the current block and the condition based on the partition mode enable flag are satisfied, the encoding device may signal the CIIP flag.
[0314] When the condition based on the CIIP enable flag and the condition based on the size of the current block are not met, the encoding device may determine whether the condition based on the information about the current block and the partition mode enable flag is met. Alternatively, when the condition based on the information about the current block and the partition mode enable flag is not met, the encoding device may determine whether the condition based on the CIIP enable flag and the condition based on the size of the current block are met.
[0315] To this end, as an example, the merge data syntax may be configured as shown in Table 9 below.
[0316] [Table 9]
[0317]
[0318]
[0319]
[0320] ciip_flag[x0][y0] specifies whether combined inter-picture merging and intra-picture prediction are applied for the current coding unit. ciip_flag(x0)(y0) specifies whether combined inter-picture merging and intra-picture prediction are applied for the current coding unit.
[0321] When ciip_flag[x0][y0] does not exist, the inference is as follows.
[0322] If all of the following conditions are true, ciip_flag[x0][y0] is inferred to be equal to 1.
[0323] -general_merge_flag[x0][y0] is equal to 1
[0324] -regular_merge_flag[x0][y0] is equal to 0
[0325] -merge_subblock_flag[x0][y0] is equal to 0
[0326] -mmvd_merge_flag[x0][y0] is equal to 0
[0327] -sps_ciip_enabled_flag equals 1
[0328] -cu_skip_flag[x0][y0] is equal to 0
[0329] -cbWidth*cbHeight>=64 and cbWidth<128 and cbHeight<128
[0330] -sps_triangle_enabled_flag is equal to 0 or MaxNumTriangleMergeCand < 2 or slice_type is not equal to B_SLICE
[0331] Otherwise, ciip_flag[x0][y0] is inferred to be equal to 0.
[0332] Fig.15 and Fig.16 An example of a video / image decoding method including an inter-frame prediction method and related components according to an embodiment of the present disclosure are schematically illustrated.
[0333] Fig.15 The decoding method disclosed in can be Figure 3 and Fig.16 Specifically, for example, the predictor 330 of the decoding device 300 may be executed. Fig.15 The steps S1500 to S1520 of the decoding device 300 may be performed, and the step S1530 may be performed by the adder 340 of the decoding device 300. Fig.15 The decoding method disclosed in may include the embodiments described above in this document.
[0334] Reference Fig.15 and Fig.16 , the decoding device can obtain information about the prediction mode of the current block from the bitstream (S1500). Specifically, the entropy decoder 310 of the decoding device can obtain information about the prediction mode of the current block from the bitstream in the form of Figure 2 The signal received by the encoding device derives residual information and information about the prediction mode. Here, the information about the prediction mode may be referred to as prediction related information. The information about the prediction mode may include inter / intra prediction classification information, inter prediction mode information, etc., and may include various syntax elements related thereto.
[0335] The bitstream may include picture information including information about various parameter sets, such as an adaptive parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). The picture information may also include information about the prediction mode of the current block, such as a coding unit syntax and a merge data syntax. The sequence parameter set may include a CIIP enable flag, an enable flag for a partition mode, etc. The coding unit syntax may include a CU skip flag indicating whether a skip mode is applied to the current block.
[0336] At the same time, the residual processor 320 of the decoding device can generate residual samples based on the residual information. In addition, the predictor 330 of the decoding device can derive the prediction mode of the current block based on the information about the prediction mode (S1510). In addition, the motion information of the current block can be derived based on the derived prediction mode. In this case, the predictor of the decoding device can construct a motion information candidate list based on the neighboring blocks of the current block, and derive the motion vector and / or reference image index of the current block based on the candidate selection information received from the encoding device. When the motion information of the current block is derived, the predictor of the decoding device can generate the prediction sample of the current block based on the motion information of the current block (S1520). Thereafter, the adder 340 of the decoding device can generate a reconstructed sample (S1530) based on the prediction sample generated by the predictor 330 and the residual sample generated by the residual processor 320. A reconstructed picture can be generated based on the reconstructed sample. Thereafter, an in-loop filtering process such as a deblocking filter, SAO and / or ALF process can be applied to the reconstructed picture to improve the subjective / objective image quality as needed.
[0337] As an embodiment, when deriving the prediction mode of the current block, the decoding device can obtain a conventional merge flag from the bitstream based on satisfying a condition based on a CIIP enable flag and a condition based on the size of the current block. Here, the condition based on the size of the current block can be a case where the product of the height of the current block and the width of the current block is 64 or greater and the height of the current block and the width of the current block are each less than 128. The condition based on the CIIP enable flag can be a case where the value of the CIIP enable flag is 1. In other words, when the product of the height of the current block and the width of the current block is 64 or greater, the height of the current block and the width of the current block are each less than 128, and the value of the CIIP enable flag is 1, the decoding device can then parse the conventional merge flag from the merge data syntax included in the bitstream.
[0338] As another example, a conventional merge flag may be obtained from a bitstream based on satisfying a condition based on a CU skip flag and the size of a current block. Here, the condition based on the size of the current block may be a case where the product of the height of the current block and the width of the current block is 64 or greater and the height of the current block and the width of the current block are each less than 128. The condition based on the CU skip flag may be a case where the value of the CU skip flag is 0. In other words, when the product of the height of the current block and the width of the current block is 64 or greater, the height of the current block and the width of the current block are each less than 128, and the value of the CU skip flag is 0, the decoding device may then parse the conventional merge flag from the merge data syntax included in the bitstream.
[0339] As another example, in addition to the condition based on the CIIP enable flag and the condition based on the size of the current block, the decoding device may obtain a conventional merge flag from the bitstream based on further satisfying the condition based on the CU skip flag. Here, the condition based on the CU skip flag may be a case where the value of the CU skip flag is 0. In other words, when the product of the height of the current block and the width of the current block is 64 or greater, the height of the current block and the width of the current block are less than 128, the value of the CIIP enable flag is 1, and the value of the CU skip flag is 0, the decoding device may then parse the conventional merge flag from the merge data syntax.
[0340] As another example, the decoding device may obtain a conventional merge flag from the bitstream based on satisfying a condition based on information about the current block and a partition mode enable flag. Here, the condition based on the information about the current block may include a case where the product of the width and height of the current block is 64 or greater and / or a case where the slice type of the current block is a B slice. The condition based on the partition mode enable flag may be a case where the value of the partition mode enable flag is 1. In other words, when the condition based on the height of the current block and the information about the current block and the condition based on the partition mode enable flag are satisfied, the decoding device may parse the conventional merge flag from the merge data syntax.
[0341] When the condition based on the CIIP enable flag and the condition based on the size of the current block are not met, the decoding device may determine whether the condition based on the information about the current block and the partition mode enable flag is met. Alternatively, when the condition based on the information about the current block and the partition mode enable flag is not met, the decoding device may determine whether the condition based on the CIIP enable flag and the condition based on the size of the current block are met.
[0342] Meanwhile, when the product of the width and height of the current block is not 32 and the value of the MMVD enable flag is 1, or when the maximum number of sub-block merge candidates is greater than 0 and the width and height of the current block are 8 or more, the decoding device may parse a conventional merge flag from the bitstream. To this end, the merge data syntax may be configured as shown in Table 6 above.
[0343] When the normal merge flag does not exist in the bitstream, if the value of the general merge flag is 1, the value of the MMVD enable flag of the SPS is 0, the product of the width and height of the current block is 32, the maximum number of sub-block merge candidates is 0 or less, the width of the current block is less than 8, the height of the current block is less than 8, the value of the CIIP enable flag of the SPS is 0, the product of the width and height of the current block is less than 64, the width of the current block is 128 or more, the value of the CU skip flag is 1, the value of the partition enable flag of the SPS is 0, the maximum number of partition merge candidates is less than 2, or the slice type is not a B slice, then the decoding device may deduce that the value of the normal merge flag is 1. Otherwise, the value of the normal merge flag may be derived as 0.
[0344] As another embodiment, when deriving the prediction mode of the current block, the decoding device can obtain the MMVD merge flag from the bitstream based on satisfying the condition based on the CIIP enable flag and the condition based on the size of the current block. Here, the condition based on the size of the current block can be the case where the product of the height of the current block and the width of the current block is 64 or greater and the height of the current block and the width of the current block are each less than 128. The condition based on the CIIP enable flag can be the case where the value of the CIIP enable flag is 1. In other words, when the product of the height of the current block and the width of the current block is 64 or greater, the height of the current block and the width of the current block are each less than 128, and the value of the CIIP enable flag is 1, the decoding device can then parse the MMVD merge flag from the merge data syntax included in the bitstream.
[0345] As another example, the decoding device may obtain an MMVD merge flag from the bitstream based on satisfying a condition based on a CU skip flag and the size of the current block. Here, the condition based on the size of the current block may be a case where the product of the height of the current block and the width of the current block is 64 or greater and the height of the current block and the width of the current block are each less than 128. The condition based on the CU skip flag may be a case where the value of the CU skip flag is 0. In other words, when the product of the height of the current block and the width of the current block is 64 or greater, the height of the current block and the width of the current block are each less than 128, and the value of the CU skip flag is 0, the decoding device may then parse the MMVD merge flag from the merge data syntax included in the bitstream.
[0346] As another example, in addition to the condition based on the CIIP enable flag and the condition based on the size of the current block, the decoding device may obtain the MMVD merge flag from the bitstream based on further satisfying the condition based on the CU skip flag. Here, the condition based on the CU skip flag may be a case where the value of the CU skip flag is 0. In other words, when the product of the height of the current block and the width of the current block is 64 or greater, the height of the current block and the width of the current block are less than 128, the value of the CIIP enable flag is 1, and the value of the CU skip flag is 0, the decoding device may then parse the MMVD merge flag from the merge data syntax.
[0347] As another example, the decoding device may obtain an MMVD merge flag from the bitstream based on satisfying a condition based on information about the current block and a partition mode enable flag. Here, the condition based on the information about the current block may include a case where the product of the width and height of the current block is 64 or greater and / or a case where the slice type of the current block is a B slice. The condition based on the partition mode enable flag may be a case where the value of the partition mode enable flag is 1. In other words, when the condition based on the height of the current block and the information about the current block and the condition based on the partition mode enable flag are satisfied, the decoding device may parse the MMVD merge flag from the merge data syntax.
[0348] When the condition based on the CIIP enable flag and the condition based on the size of the current block are not met, the decoding device may determine whether the condition based on the information about the current block and the partition mode enable flag is met. Alternatively, when the condition based on the information about the current block and the partition mode enable flag is not met, the decoding device may determine whether the condition based on the CIIP enable flag and the condition based on the size of the current block are met.
[0349] Meanwhile, when the product of the width and height of the current block is not 32 and the value of the MMVD enable flag is 1, or when the maximum number of sub-block merge candidates is greater than 0 and the width and height of the current block are 8 or more, the decoding device may parse the MMVD merge flag from the bitstream. To this end, the merge data syntax may be configured as shown in Table 7 above.
[0350] When the MMVD merge flag is not present in the bitstream, if the value of the general merge flag is 1, the value of the general merge flag is 0, the value of the MMVD enable flag of the SPS is 1, the product of the width and height of the current block is not 32, the maximum number of sub-block merge candidates is 0 or less, the width of the current block is less than 8, the height of the current block is less than 8, the value of the CIIP enable flag of the SPS is 0, the width of the current block is 128 or more, the height of the current block is 128 or more, the value of the CU skip flag is 1, the value of the partition enable flag of the SPS is 0, the maximum number of partition merge candidates is less than 2, or the slice type is not a B slice, then the decoding device may deduce that the value of the MMVD merge flag is 1. Otherwise, the value of the MMVD merge flag may be derived as 0.
[0351] As another embodiment, when deriving the prediction mode of the current block, the decoding device may obtain a merged sub-block flag from the bitstream based on satisfying a condition based on a CIIP enable flag and a condition based on the size of the current block. Here, the condition based on the size of the current block may be a case where the product of the height of the current block and the width of the current block is 64 or greater and the height of the current block and the width of the current block are each less than 128. The condition based on the CIIP enable flag may be a case where the value of the CIIP enable flag is 1. In other words, when the product of the height of the current block and the width of the current block is 64 or greater, the height of the current block and the width of the current block are each less than 128, and the value of the CIIP enable flag is 1, the decoding device may then parse the merged sub-block flag from the merged data syntax included in the bitstream.
[0352] As another example, a merge sub-block flag may be obtained from a bitstream based on satisfying a condition based on a CU skip flag and the size of a current block. Here, the condition based on the size of the current block may be a case where the product of the height of the current block and the width of the current block is 64 or greater and the height of the current block and the width of the current block are each less than 128. The condition based on the CU skip flag may be a case where the value of the CU skip flag is 0. In other words, when the product of the height of the current block and the width of the current block is 64 or greater, the height of the current block and the width of the current block are each less than 128, and the value of the CU skip flag is 0, the decoding device may then parse the merge sub-block flag from the merge data syntax included in the bitstream.
[0353] As another example, in addition to the condition based on the CIIP enable flag and the condition based on the size of the current block, the decoding device may obtain the merged sub-block flag from the bitstream based on further satisfying the condition based on the CU skip flag. Here, the condition based on the CU skip flag may be a case where the value of the CU skip flag is 0. In other words, when the product of the height of the current block and the width of the current block is 64 or greater, the height of the current block and the width of the current block are less than 128, the value of the CIIP enable flag is 1, and the value of the CU skip flag is 0, the decoding device may then parse the merged sub-block flag from the merge data syntax.
[0354] As another example, the decoding device may obtain a merged sub-block flag from the bitstream based on satisfying a condition based on information about the current block and a partition mode enable flag. Here, the condition based on information about the current block may include a case where the product of the width and height of the current block is 64 or greater and / or a case where the slice type of the current block is a B slice. The condition based on the partition mode enable flag may be a case where the value of the partition mode enable flag is 1. In other words, when the condition based on the height of the current block and the condition based on information about the current block and the partition mode enable flag are satisfied, the decoding device may parse the merged sub-block flag from the merge data syntax.
[0355] When the condition based on the CIIP enable flag and the condition based on the size of the current block are not met, the decoding device may determine whether the condition based on the information about the current block and the partition mode enable flag is met. Alternatively, when the condition based on the information about the current block and the partition mode enable flag is not met, the decoding device may determine whether the condition based on the CIIP enable flag and the condition based on the size of the current block are met.
[0356] Meanwhile, when the maximum number of sub-block merging candidates is greater than 0 and the width and height of the current block are 8 or more, the decoding device may parse the merge sub-block flag from the bitstream. To this end, the merge data syntax may be configured as shown in Table 8 above.
[0357] When the merge sub-block flag does not exist in the bitstream, if the value of the general merge flag is 1, the value of the regular merge flag is 0, the value of the merge sub-block flag is 0, the value of the MMVD merge flag is 0, the maximum number of sub-block merge candidates is greater than 0, the width and height of the current block are 8 or more, the value of the CIIP enable flag of the SPS is 0, the width of the current block is 128 or more, the height of the current block is 128 or more, the value of the CU skip flag is 1, the value of the partition enable flag of the SPS is 0, the maximum number of partition merge candidates is less than 2, or the slice type is not a B slice, then the decoding device may derive the value of the merge sub-block flag as 1. Otherwise, the value of the merge sub-block flag may be derived as 1.
[0358] As another embodiment, when deriving the prediction mode of the current block, the decoding device may obtain the MMVD merge flag from the bitstream based on satisfying the condition based on the CIIP enable flag and the condition based on the size of the current block. Here, the condition based on the size of the current block may be a case where the product of the height of the current block and the width of the current block is 64 or greater and the height of the current block and the width of the current block are each less than 128. The condition based on the CIIP enable flag may be a case where the value of the CIIP enable flag is 1. In other words, when the product of the height of the current block and the width of the current block is 64 or greater, the height of the current block and the width of the current block are each less than 128, and the value of the CIIP enable flag is 1, the decoding device may then parse the CIIP flag from the merge data syntax.
[0359] As another example, in addition to the condition based on the CIIP enable flag and the condition based on the size of the current block, the decoding device may obtain the CIIP flag from the bitstream based on further satisfying the condition based on the CU skip flag. Here, the condition based on the CU skip flag may be a case where the value of the CU skip flag is 0. In other words, when the product of the height of the current block and the width of the current block is 64 or greater, the height of the current block and the width of the current block are less than 128, the value of the CIIP enable flag is 1, and the value of the CU skip flag is 0, the decoding device may then parse the CIIP flag from the merge data syntax.
[0360] As another example, the decoding device may obtain the CIIP flag from the bitstream based on satisfying the condition based on the information about the current block and the partition mode enable flag. Here, the condition based on the information about the current block may include the case where the product of the width and height of the current block is 64 or greater and / or the case where the slice type of the current block is a B slice. The condition based on the partition mode enable flag may be the case where the value of the partition mode enable flag is 1. In other words, when the condition based on the height of the current block and the information about the current block and the condition based on the partition mode enable flag are satisfied, the decoding device may parse the CIIP flag from the merged data syntax.
[0361] When the condition based on the CIIP enable flag and the condition based on the size of the current block are not met, the decoding device may determine whether the condition based on the information about the current block and the partition mode enable flag is met. Alternatively, when the condition based on the information about the current block and the partition mode enable flag is not met, the decoding device may determine whether the condition based on the CIIP enable flag and the condition based on the size of the current block are met. To this end, the merge data syntax may be configured as shown in Table 9 above.
[0362] When the CIIP flag is not present in the bitstream, if the value of the general merge flag is 1, the value of the regular merge flag is 0, the value of the merge sub-block flag is 0, the value of the MMVD merge flag is 0, the value of the CIIP enable flag of the SPS is 1, the value of the CU skip flag is 0, the product of the width and height of the current block is 64 or more, the width and height of the current block are less than 128, the value of the partition enable flag of the SPS is 0, the maximum number of partition merge candidates is less than 2, or the slice type is not a B slice, then the decoding device may deduce that the value of the CIIP flag is 1. Otherwise, the value of the CIIP flag may be derived as 0.
[0363] Although the method has been described based on a flowchart that lists steps or blocks in sequence in the above-mentioned embodiments, the steps of the present disclosure are not limited to a specific order, and specific steps may be performed in different steps or in a different order or simultaneously relative to the above-mentioned steps. In addition, it will be understood by those of ordinary skill in the art that the steps in the flowchart are not exclusive, and another step may be included therein, or one or more steps in the flowchart may be deleted without affecting the scope of the present disclosure.
[0364] The above-mentioned method according to the present disclosure may be in the form of software, and the encoding device and / or decoding device according to the present disclosure may be included in a device for performing image processing (e.g., TV, computer, smart phone, set-top box, display device, etc.).
[0365] When the embodiments of the present disclosure are implemented by software, the above-mentioned methods can be implemented by modules (processing or functions) that perform the above-mentioned functions. The module can be stored in a memory and executed by a processor. The memory can be installed inside or outside the processor and can be connected to the processor via various well-known devices. 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. In other words, according to the embodiments of the present disclosure, it can be implemented and executed on a processor, a microprocessor, a controller or a chip. For example, the functional units illustrated in the corresponding figures can be implemented and executed on a computer, a processor, a microprocessor, a controller or a chip. In this case, information about the implementation (e.g., information about instructions) or an algorithm can be stored in a digital storage medium.
[0366] In addition, the decoding device and encoding device of the embodiment of the present disclosure can be included in a multimedia broadcast transceiver, a mobile communication terminal, a home theater video device, a digital theater video device, a surveillance camera, a video chat device, a real-time communication device such as video communication, a mobile streaming device, a storage medium, a portable camera, a video on demand (VoD) service provider, an over-the-top (OTT) video device, an Internet streaming service provider, a 3D video device, a virtual reality (VR) device, an augmented reality (AR) device, an image phone video device, a vehicle terminal (e.g., a vehicle (including an autonomous vehicle) terminal, an aircraft terminal or a ship terminal) and a medical video device; and can be used to process image signals or data. For example, an OTT video device may include a game console, a Blueray player, a networked TV, a home theater system, a smart phone, a tablet PC, and a digital video recorder (DVR).
[0367] In addition, the processing method of the embodiment of the present disclosure can be generated in the form of a program executed by a computer and can be stored in a computer-readable recording medium. The multimedia data with a data structure according to the embodiment of the present disclosure can also be stored in a computer-readable recording medium. The computer-readable recording medium includes all kinds of storage devices and distributed storage devices storing computer-readable data. The computer-readable recording medium may include, for example, a Blu-ray disc (BD), a universal serial bus (USB), a ROM, a PROM, an EPROM, an EEPROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device. The computer-readable recording medium also includes a medium implemented in the form of a carrier wave (e.g., transmission on the Internet). In addition, the bit stream generated by the encoding method can be stored in a computer-readable recording medium, or can be transmitted through a wired or wireless communication network.
[0368] In addition, the embodiments of the present disclosure can be implemented as a computer program product based on a program code, and the program code can be executed on a computer according to the embodiments of this document. The program code can be stored on a computer readable carrier.
[0369] Fig.17 An example of a content streaming system to which embodiments of the present disclosure can be applied is shown.
[0370] Reference Fig.17 , a content streaming system to which an embodiment of the present disclosure is applied may basically include an encoding server, a streaming server, a web server, a media warehouse, a user device, and a multimedia input device.
[0371] The encoding server is used to compress the content input from the multimedia input device such as a smart phone, a camera, a camcorder, etc. into digital data, generate a bit stream, and transmit it to the streaming server. As another example, in the case where the multimedia input device such as a smart phone, a camera, a camcorder, etc. directly generates a bit stream, the encoding server can be omitted.
[0372] The bitstream may be generated by the encoding method or the bitstream generating method to which the embodiment of the present disclosure is applied, and the streaming server may temporarily store the bitstream during the process of transmitting or receiving the bitstream.
[0373] The streaming server transmits multimedia data to the user device based on the user's request through the network server, which acts as a tool to inform the user of what services exist. When the user requests the service the user wants, the network server transfers the request to the streaming server, and the streaming server transmits the multimedia data to the user. In this regard, the content streaming system may include a separate control server, and in this case, the control server is used to control the commands / responses between the various devices in the content streaming system.
[0374] The streaming server may receive content from a media storage device and / or an encoding server. For example, in the case where the content is received from the encoding server, the content may be received in real time. In this case, the streaming server may store the bitstream for a predetermined period of time to smoothly provide a streaming service.
[0375] For example, user devices may include mobile phones, smart phones, laptop computers, digital broadcast terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation, tablet PCs, tablet PCs, ultrabooks, wearable devices (e.g., watch-type terminals (smart watches), glasses-type terminals (smart glasses), head-mounted displays (HMDs)), digital TVs, desktop computers, digital signage, etc.
[0376] Each server in the content streaming system may be operated as a distributed server, and in this case, data received by each server may be processed in a distributed manner.
Claims
1. A decoding method performed by a decoding device, the decoding method comprising: Obtain information about a prediction mode for a current block from a bitstream; deriving the prediction mode of the current block based on the information about the prediction mode; generating a prediction sample of the current block based on the prediction mode; as well as generating a reconstructed sample based on the predicted sample; Wherein, the bitstream includes a sequence parameter set, The sequence parameter set includes a combined inter-picture merging and intra-picture prediction (CIIP) enabling flag, and The deriving includes parsing a normal merge flag from the bitstream based on satisfying a condition based on the CIIP enable flag and a condition based on the size of the current block, The condition based on the size of the current block is that (i) the product of the height of the current block and the width of the current block is 64 or greater and (ii) the height of the current block and the width of the current block are respectively less than 128, The condition based on the CIIP enabling flag is that the value of the CIIP enabling flag is 1.
2. A coding method performed by a coding device, the coding method comprising: Determine the prediction mode of the current block; generating information about the prediction mode based on the prediction mode; as well as encoding image information including information about the prediction mode; Wherein, the image information includes a sequence parameter set, The sequence parameters include a combined inter-picture merging and intra-picture prediction (CIIP) enable flag, and Based on satisfying a condition based on the CIIP enable flag and a condition based on the size of the current block, the image information includes a normal merge flag, The condition based on the size of the current block is that (i) the product of the height of the current block and the width of the current block is 64 or greater and (ii) the height of the current block and the width of the current block are respectively less than 128, The condition based on the CIIP enabling flag is that the value of the CIIP enabling flag is 1.
3. A non-transitory computer-readable digital storage medium storing a bit stream generated by an image encoding method, the method comprising: Determine the prediction mode of the current block; generating information about the prediction mode based on the prediction mode; as well as encoding image information to generate the bitstream, wherein the image information includes information about the prediction mode, Wherein, the image information includes a sequence parameter set, The sequence parameters include a combined inter-picture merging and intra-picture prediction (CIIP) enable flag, and Based on satisfying a condition based on the CIIP enable flag and a condition based on the size of the current block, the image information includes a normal merge flag, The condition based on the size of the current block is that (i) the product of the height of the current block and the width of the current block is 64 or greater and (ii) the height of the current block and the width of the current block are respectively less than 128, The condition based on the CIIP enabling flag is that the value of the CIIP enabling flag is 1.
4. A method for transmitting image data, the method comprising: obtaining a bitstream for the image, wherein the bitstream is generated based on the following steps: determining a prediction mode for a current block, generating information about the prediction mode based on the prediction mode, and encoding image information including the information about the prediction mode; as well as sending data comprising said bit stream, Wherein, the image information includes a sequence parameter set, The sequence parameters include a combined inter-picture merging and intra-picture prediction (CIIP) enable flag, and Based on satisfying a condition based on the CIIP enable flag and a condition based on the size of the current block, the image information includes a normal merge flag, The condition based on the size of the current block is that (i) the product of the height of the current block and the width of the current block is 64 or greater and (ii) the height of the current block and the width of the current block are respectively less than 128, The condition based on the CIIP enabling flag is that the value of the CIIP enabling flag is 1.
Citation Information
Patent Citations
Video coding and decoding
GB201909041D0
Method and apparatus for video coding
US20200177873A1
An encoder, a decoder and corresponding methods for inter prediction
WO2020085953A1