Image encoding / decoding method, recording medium having bitstream stored therein, and method for transmitting bitstream
The method addresses the inefficiencies in encoding and decoding high-resolution images by utilizing additional reference blocks and optimizing the encoding/decoding process with multiple reference blocks, resulting in improved efficiency and performance for image data transmission and storage.
Patent Information
- Application Number
- PCT/KR2024/013991
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-09-15
- Filing Date
- 2024-09-13
- Publication Date
- 2025-03-20
AI Technical Summary
Current image compression technologies struggle to efficiently encode and decode high-resolution and high-quality images, such as HD and UHD video, leading to suboptimal transmission and storage efficiency.
The proposed method enhances image encoding/decoding efficiency by improving prediction performance using additional reference blocks beyond the basic reference block, and optimizing the encoding/decoding process with multiple reference blocks, while also providing a non-timely computer-readable recording medium for storing bitstreams and a method for transmitting these bitstreams.
This approach leads to improved image encoding/decoding efficiency, enhanced prediction performance with multiple reference blocks, and efficient transmission and storage of high-resolution and high-quality image data.
Smart Images

Figure KR2024013991_20032025_PF_FP_ABST
Abstract
Description
Image encoding / decoding method, recording medium storing bitstream, and method for transmitting bitstream
[0001] The present disclosure relates to an image encoding / decoding method, a recording medium storing a bitstream, and a method for transmitting a bitstream, and relates to an encoding / decoding process related to multiple reference blocks.
[0002] Recently, the demand for high-resolution, high-quality images, such as HD (High Definition) images and UHD (Ultra High Definition) images, is increasing in various application fields, and accordingly, high-efficiency image compression technologies are being discussed.
[0003] There are various technologies for image compression, such as inter prediction technology that predicts pixel values included in the current picture from pictures before or after the current picture, intra prediction technology that predicts pixel values included in the current picture using pixel information in the current picture, and entropy encoding technology that assigns short codes to values with high frequency of appearance and long codes to values with low frequency of appearance, and these technologies can be used to effectively compress and transmit or store image data.
[0004] Accordingly, a highly efficient image compression technology is required to effectively transmit, store, and play high-resolution, high-quality image information.
[0005] The present disclosure aims to provide an image encoding / decoding method and device with improved image encoding / decoding efficiency.
[0006] Additionally, the present disclosure aims to improve prediction performance when additional reference blocks are derived in addition to the basic reference blocks derived in the prediction process.
[0007] Additionally, the present disclosure aims to improve the efficiency of the encoding / decoding process when multiple reference blocks exist.
[0008] In addition, the present disclosure aims to provide a non-transitory computer-readable recording medium that stores a bitstream generated by an image encoding method according to the present disclosure.
[0009] In addition, the present disclosure aims to provide a method for transmitting a bitstream generated by an image encoding method according to the present disclosure.
[0010] The technical problems to be achieved in the present disclosure are not limited to the technical problems mentioned above, and other technical problems not mentioned can be clearly understood by a person having ordinary skill in the technical field to which the present disclosure belongs from the description below.
[0011] An image decoding method according to one aspect of the present disclosure is an image decoding method performed by an image decoding device, comprising: generating a prediction block of a current block based on a prediction mode of the current block; generating a reconstructed sample of the current block based on the prediction block; and performing filtering on the reconstructed sample, wherein the generating the prediction block includes: deriving a base prediction block of the current block; deriving multiple reference blocks of the current block; and generating a final prediction block of the current block by weighting the base prediction block and the multiple reference blocks, wherein a filter strength used for the filtering can be determined based on prediction information related to the current block, the prediction block, or the multiple reference blocks.
[0012] According to another aspect of the present disclosure, an image decoding method is provided, which is performed by an image decoding device, comprising: generating a prediction block of a current block based on prediction information obtained from a bitstream; performing inverse quantization based on residual information obtained from the bitstream to derive transform coefficients; performing inverse transformation on the transform coefficients to derive a residual block; and generating a reconstructed block based on the prediction block and the residual block, wherein the generating the prediction block includes: deriving a base prediction block of the current block; deriving multiple reference blocks of the current block; and generating a final prediction block of the current block by weighting the base prediction block and the multiple reference blocks, wherein it can be determined whether a sub-block transform (SBT) is applied to the current block based on a prediction mode of the multiple reference blocks.
[0013] According to another aspect of the present disclosure, an image decoding method is provided, which is performed by an image decoding device, comprising: generating a prediction block of a current block based on prediction information obtained from a bitstream; performing inverse quantization based on residual information obtained from the bitstream to derive transform coefficients; performing inverse transformation on the transform coefficients to derive a residual block; and generating a reconstructed block based on the prediction block and the residual block, wherein the generating of the prediction block includes: deriving a base prediction block of the current block; deriving multiple reference blocks of the current block; and generating a final prediction block of the current block by weighting the base prediction block and the multiple reference blocks, wherein a transform kernel used for the inverse transformation can be determined based on a prediction mode related to at least one of the base prediction block and the multiple reference blocks.
[0014] According to another aspect of the present disclosure, an image encoding method is performed by an image encoding device, comprising: generating a prediction block of a current block based on a prediction mode of the current block; generating a reconstructed block based on the prediction block; and performing filtering on the reconstructed block, wherein the generating the prediction block includes: deriving a base prediction block of the current block; deriving multiple reference blocks of the current block; and generating a final prediction block of the current block by weighting the base prediction block and the multiple reference blocks, wherein a filter strength used for the filtering can be determined based on prediction information related to the current block, the prediction block, or the multiple reference blocks.
[0015] A computer-readable recording medium according to another aspect of the present disclosure can store a bitstream generated by an image encoding method or device of the present disclosure.
[0016] A transmission method according to another aspect of the present disclosure can transmit a bitstream generated by an image encoding method or device of the present disclosure.
[0017] The features briefly summarized above regarding the present disclosure are merely exemplary aspects of the detailed description of the present disclosure that follows and do not limit the scope of the present disclosure.
[0018] According to the present disclosure, an image encoding / decoding method and device with improved image encoding / decoding efficiency can be provided.
[0019] Additionally, according to the present disclosure, prediction performance can be improved when an additional reference block is derived in addition to the basic reference block derived in the prediction process.
[0020] Additionally, according to the present disclosure, the efficiency of the encoding / decoding process can be improved when multiple reference blocks exist in the current block.
[0021] In addition, according to the present disclosure, a non-transitory computer-readable recording medium for storing a bitstream generated by an image encoding method according to the present disclosure can be provided.
[0022] In addition, according to the present disclosure, a non-transitory computer-readable recording medium can be provided that stores a bitstream received and decoded by an image decoding device according to the present disclosure and used for restoring an image.
[0023] Additionally, according to the present disclosure, a method for transmitting a bitstream generated by an image encoding method can be provided.
[0024] The effects that can be obtained from the present disclosure are not limited to the effects mentioned above, and other effects that are not mentioned will be clearly understood by a person having ordinary skill in the art to which the present disclosure pertains from the description below.
[0025] FIG. 1 is a schematic diagram illustrating a video / image coding system to which an embodiment according to the present disclosure can be applied.
[0026] FIG. 2 is a schematic diagram illustrating a video / image encoding device to which an embodiment according to the present disclosure can be applied.
[0027] FIG. 3 is a schematic diagram of a video / image decoding device to which an embodiment according to the present disclosure can be applied.
[0028] Figure 4 illustrates an example of the LFNST process.
[0029] FIG. 5 illustrates an example of an inter-prediction-based video / image encoding method to which an embodiment according to the present disclosure can be applied.
[0030] FIG. 6 illustrates an example of an inter-prediction-based video / image decoding method to which an embodiment according to the present disclosure can be applied.
[0031] FIG. 7 exemplarily illustrates an inter prediction procedure to which an embodiment according to the present disclosure can be applied.
[0032] FIG. 8 is a diagram for explaining an inter prediction method performed by a decoding device according to an embodiment of the present disclosure.
[0033] FIG. 9 illustrates an example of a reference block used in a multi-reference block mode according to an embodiment of the present disclosure.
[0034] FIG. 10 illustrates an exemplary method of signaling / parsing motion information of a prediction block added when motion information of multiple reference blocks is signaled / parsed according to one embodiment of the present disclosure.
[0035] Figure 11 illustrates GPM segments grouped at the same angle as an example.
[0036] Figure 12 shows an exemplary generation of blending weights w0 using GPM.
[0037] Figure 13 illustrates the upper left neighboring blocks used in deriving CIIP weights.
[0038] Figure 14 illustrates an example of a method for dividing angular modes.
[0039] Figure 15 illustrates available IPM candidates for GPM including inter and intra prediction.
[0040] Figure 16 illustrates sub-blocks at CU / PU boundaries and sub-PUs in ATMVP mode.
[0041] FIG. 17 illustrates an example of a coding unit parsing method depending on whether multiple reference blocks are applied and whether transformation and residual signal information are transmitted accordingly according to one embodiment.
[0042] FIG. 18 illustrates an example of a coding unit parsing method depending on whether multiple reference blocks are applied and whether specific conditions are satisfied according to one embodiment.
[0043] FIG. 19 illustrates an example of a coding unit parsing method depending on whether a specific condition is satisfied when applying multiple reference blocks according to one embodiment.
[0044] FIG. 20 illustrates an example of a method for determining boundary strength when applying multiple reference blocks according to one embodiment.
[0045] FIG. 21 illustrates an example of a template area of a regular reference block and a template area of a multiple reference block according to one embodiment.
[0046] FIG. 22 is a diagram illustrating an example of a content streaming system to which an embodiment according to the present disclosure can be applied.
[0047] This is a drawing exemplifying a content streaming system to which an embodiment according to the present disclosure can be applied.
[0048] The present disclosure may be modified in various ways and encompasses numerous embodiments. Specific embodiments are illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present disclosure to specific embodiments, but rather to encompass all modifications, equivalents, and alternatives falling within the spirit and technical scope of the present disclosure. Throughout the description of each drawing, similar reference numerals have been used to designate similar components.
[0049] While terms such as "first" and "second" may be used to describe various components, these components should not be limited by these terms. These terms are used solely to distinguish one component from another. For example, without departing from the scope of the present disclosure, a first component could be referred to as a "second component," and similarly, a second component could also be referred to as a "first component." The term "and / or" includes any combination of multiple related items described herein or any item among multiple related items described herein.
[0050] When a component is referred to as being "connected" or "connected" to another component, it should be understood that it may be directly connected or connected to that other component, but that there may be other components intervening. Conversely, when a component is referred to as being "directly connected" or "connected" to another component, it should be understood that there are no other components intervening.
[0051] The terminology used in this application is only used to describe specific embodiments and is not intended to limit the present disclosure. The singular expression includes the plural expression unless the context clearly indicates otherwise. In this application, it should be understood that the terms "comprise" or "have" indicate the presence of a feature, number, step, operation, component, part, or combination thereof described in the specification, but do not preclude the possibility of the presence or addition of one or more other features, numbers, steps, operations, components, parts, or combinations thereof.
[0052] The present disclosure relates to video / image coding. For example, the methods / embodiments disclosed in this specification can be applied to methods disclosed in the versatile video coding (VVC) standard. In addition, the methods / embodiments disclosed in this specification can be applied to methods disclosed in the essential video coding (EVC) standard, the AOMedia Video 1 (AV1) standard, the second generation of audio video coding standard (AVS2), or the next generation of video / image coding standards (e.g., H.267 or H.268).
[0053] This specification presents various embodiments of video / image coding, and unless otherwise stated, the embodiments may be performed in combination with each other.
[0054] In this specification, a video may refer to a set of images over time. A picture generally refers to a unit representing one image at a specific time point, and a slice / tile is a unit that constitutes part of a picture in coding. A slice / tile may include one or more coding tree units (CTUs). A picture may be composed of one or more slices / tiles. A tile is a rectangular area consisting of multiple CTUs within a specific tile column and a specific tile row of a picture. A tile column is a rectangular area of CTUs that has a height equal to the height of the picture and a width specified by the syntax requirements of the picture parameter set. A tile row is a rectangular area of CTUs that has a height specified by the picture parameter set and a width equal to the width of the picture. CTUs within a tile are arranged consecutively according to the CTU raster scan, while tiles within a picture may be arranged consecutively according to the tile raster scan. A slice may contain an integer number of complete tiles or an integer number of contiguous complete CTU rows within a picture, which may be exclusively contained within a single NAL unit. Meanwhile, a picture may be divided into two or more subpictures. A subpicture may be a rectangular region of one or more slices within a picture.
[0055] A pixel, or pel, can refer to the smallest unit that constitutes a picture (or image). Additionally, the term "sample" can be used as a counterpart to a pixel. A sample can generally represent a pixel or a pixel value, and can represent only the pixel / pixel value of the luminance component, or only the pixel / pixel value of the chrominance component.
[0056] A unit may represent a basic unit of image processing. A unit may include at least one of a specific region of a picture and information related to the region. One unit may include one luma block and two chroma (e.g., cb, cr) blocks. In some cases, the term "unit" may be used interchangeably with terms such as "block" or "area." In general, an MxN block may include a set (or array) of samples (or sample array) or transform coefficients consisting of M columns and N rows.
[0057] As used herein, "A or B" can mean "only A," "only B," or "both A and B." In other words, as used herein, "A or B" can be interpreted as "A and / or B." For example, as used herein, "A, B or C" can mean "only A," "only B," "only C," or "any combination of A, B and C."
[0058] As used herein, a slash ( / ) or a comma can mean "and / or." For example, "A / B" can mean "A and / or B." Accordingly, "A / B" can mean "only A," "only B," or "both A and B." For example, "A, B, C" can mean "A, B, or C."
[0059] In this specification, "at least one of A and B" may mean "only A", "only B" or "both A and B". Additionally, in this specification, the expressions "at least one of A or B" or "at least one of A and / or B" may be interpreted identically to "at least one of A and B".
[0060] Additionally, in this specification, “at least one of A, B and C” can mean “only A,” “only B,” “only C,” or “any combination of A, B and C.” Additionally, “at least one of A, B or C” or “at least one of A, B and / or C” can mean “at least one of A, B and C.”
[0061] Additionally, parentheses used herein may mean "for example." Specifically, when "prediction (intra-prediction)" is indicated, "intra-prediction" may be suggested as an example of "prediction." In other words, "prediction" in this specification is not limited to "intra-prediction," and "intra-prediction" may be suggested as an example of "prediction." Furthermore, even when "prediction (i.e., intra-prediction)" is indicated, "intra-prediction" may be suggested as an example of "prediction."
[0062] Technical features individually described in a single drawing in this specification may be implemented individually or simultaneously.
[0063] FIG. 1 illustrates a video / image coding system according to the present disclosure.
[0064] Referring to FIG. 1, a video / image coding system may include a first device (source device) and a second device (receiving device).
[0065] A source device can transmit encoded video / image information or data to a receiving device via a digital storage medium or a network in the form of a file or streaming. The source device may include a video source, an encoding device, and a transmitting unit. The receiving device may include a receiving unit, a decoding device, and a renderer. The encoding device may be referred to as a video / 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 unit, and the display unit may be configured as a separate device or an external component.
[0066] A video source may obtain video / images through a process of capturing, synthesizing, or generating video / images. The video source may include a video / image capture device and / or a video / image generation device. The video / image capture device may include one or more cameras, a video / image archive containing previously captured video / images, etc. The video / image generation device may include a computer, a tablet, a smartphone, etc., and may (electronically) generate video / images. For example, a virtual video / image may be generated through a computer, etc., in which case the video / image capture process may be replaced by a process of generating related data.
[0067] An encoding device can encode input video / images. The encoding device can perform a series of procedures, such as prediction, transformation, and quantization, to improve compression and coding efficiency. The encoded data (encoded video / image information) can be output in the form of a bitstream.
[0068] The transmission unit can transmit encoded video / image information or data output in the form of a bitstream to the receiving unit of a receiving device via a digital storage medium or network in the form of a file or streaming. The digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmission unit can include an element for generating a media file using a predetermined file format and an element for transmission via a broadcasting / communication network. The receiving unit can receive / extract the bitstream and transmit it to a decoding device.
[0069] The decoding device can decode the video / image by performing a series of procedures such as inverse quantization, inverse transformation, and prediction corresponding to the operation of the encoding device.
[0070] The renderer can render decoded video / images. The rendered video / images can be displayed through the display unit.
[0071] FIG. 2 is a schematic block diagram of an encoding device to which an embodiment of the present disclosure can be applied and in which encoding of a video / image signal is performed.
[0072] Referring to FIG. 2, the encoding device (200) may be configured to include an image partitioner (210), a prediction unit (predictor) 220, a residual processor (residual processor) 230, an entropy encoder (entropy encoder) 240, an adder (adder) 250, a filter (filter) 260, and a memory (memory) 270. The prediction unit (220) may include an inter prediction unit (221) and an intra prediction unit (222). The residual processor (230) may include a transformer (transformer) 232, a quantizer (quantizer) 233, a dequantizer (dequantizer) 234, and an inverse transformer (inverse transformer) 235. The residual processing unit (230) may further include a subtractor (231). The addition unit (250) may be called a reconstructor or a recontructed block generator. The image segmentation unit (210), the prediction unit (220), the residual processing unit (230), the entropy encoding unit (240), the addition unit (250), and the filtering unit (260) described above may be configured by one or more hardware components (e.g., an encoding device chipset or processor) according to an embodiment. In addition, the memory (270) may include a decoded picture buffer (DPB) and may be configured by a digital storage medium. The hardware component may further include the memory (270) as an internal / external component.
[0073] The image segmentation unit (210) can segment an input image (or picture, frame) input to the encoding device (200) into one or more processing units. For example, the processing unit may be called a coding unit (CU). In this case, the coding unit may be recursively segmented from a coding tree unit (CTU) or a largest coding unit (LCU) according to a QTBTTT (Quad-tree binary-tree ternary-tree) structure.
[0074] For example, a single coding unit may be split into multiple coding units with deeper depths based on a quad-tree structure, a binary tree structure, and / or a ternary structure. In this case, for example, the quad-tree structure may be applied first, and the binary tree structure and / or the ternary structure may be applied later. Alternatively, the binary tree structure may be applied before the quad-tree structure. The coding procedure according to the present specification may be performed based on the final coding unit that is no longer split. In this case, based on coding efficiency according to image characteristics, etc., the largest coding unit may be used directly as the final coding unit, or, if necessary, the coding unit may be recursively split into coding units of lower depths, and the coding unit with the optimal size may be used as the final coding unit. Here, the coding procedure may include procedures such as prediction, transformation, and restoration, which will be described later.
[0075] As another example, the processing unit may further include a prediction unit (PU) or a transform unit (TU). In this case, the prediction unit and the transform unit may each be split or partitioned from the final coding unit described above. The prediction unit may be a unit for sample prediction, and the transform unit may be a unit for deriving transform coefficients and / or a unit for deriving residual signals from transform coefficients.
[0076] The term "unit" may be used interchangeably with terms such as "block" or "area" depending on the case. In general, an MxN block can represent a set of samples or transform coefficients consisting of M columns and N rows. A sample can generally represent a pixel or a pixel value, and can represent only the pixel / pixel value of the luminance component, or only the pixel / pixel value of the chrominance component. A sample can be used as a term corresponding to a pixel or pel in a picture (or image).
[0077] The encoding device (200) can generate a residual signal (residual block, residual sample array) by subtracting a prediction signal (prediction block, prediction sample array) output from an inter prediction unit (221) or an intra prediction unit (222) from an input video signal (original block, original sample array), and the generated residual signal is transmitted to a conversion unit (232). In this case, a unit that subtracts a prediction signal (prediction block, prediction sample array) from an input video signal (original block, original sample array) within the encoding device (200) may be called a subtraction unit (231).
[0078] The prediction unit (220) can perform a prediction on a block to be processed (hereinafter, referred to as the current block) and generate a predicted block including prediction samples for the current block. The prediction unit (220) can determine whether intra prediction or inter prediction is applied on a current block or CU basis. The prediction unit (220) can generate various information related to prediction, such as prediction mode information, as described later in the description of each prediction mode, and transmit the information to the entropy encoding unit (240). The information related to prediction can be encoded by the entropy encoding unit (240) and output in the form of a bitstream.
[0079] The intra prediction unit (222) can predict the current block by referring to samples in the current picture. The referenced samples may be located in the neighborhood of the current block, or may be located a certain distance away from the current block, depending on the prediction mode. In intra prediction, the prediction modes may include one or more non-directional modes and multiple directional modes. The non-directional mode may include at least one of the DC mode or the planar mode. The directional mode may include 33 directional modes or 65 directional modes depending on the degree of detail in the prediction direction. However, this is only an example, and a greater or lesser number of directional modes may be used depending on the settings. The intra prediction unit (222) may also determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring blocks.
[0080] The inter prediction unit (221) can derive a prediction block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. At this time, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information can be predicted in units of blocks, sub-blocks, or samples based on the correlation of the motion information between the neighboring blocks and the current block. The motion information can include a motion vector and a reference picture index. The motion information can further include inter prediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter prediction, the neighboring block can include a spatial neighboring block existing in the current picture and a temporal neighboring block existing 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. Temporal neighboring blocks may be called collocated reference blocks, collocated CUs (colCUs), etc., and reference pictures including temporal neighboring blocks may be called collocated pictures (colPic). For example, the inter prediction unit (221) may construct a motion information candidate list based on 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 prediction may be performed based on various prediction modes, and for example, in the case of skip mode and merge mode, the inter prediction unit (221) may use the motion information of neighboring blocks as the motion information of the current block. In the case of skip mode, unlike the merge mode, a residual signal may not be transmitted.In the motion vector prediction (MVP) mode, the motion vector of the surrounding blocks is used as a motion vector predictor, and the motion vector of the current block can be indicated by signaling the motion vector difference.
[0081] The prediction unit (220) can generate a prediction signal based on various prediction methods described below. For example, the prediction unit can apply intra prediction or inter prediction for prediction of a single block, and can also apply intra prediction and inter prediction simultaneously. This can be called combined inter and intra prediction (CIIP) mode. In addition, the prediction unit can be based on an intra block copy (IBC) prediction mode or a palette mode for prediction of a block. The IBC prediction mode or palette mode can be used for content image / video coding such as games, such as screen content coding (SCC). IBC basically performs prediction within the current picture, but can be performed similarly to inter prediction in that it derives a reference block within the current picture. That is, IBC can utilize at least one of the inter prediction techniques described herein. The palette mode can be viewed as an example of intra coding or intra prediction. When the palette mode is applied, sample values within a picture can be signaled based on information about the palette table and palette index. The prediction signal generated through the prediction unit (220) can be used to generate a restoration signal or a residual signal.
[0082] The transform unit (232) can apply a transform technique to the residual signal to generate transform coefficients. For example, the transform technique can include at least one of a Discrete Cosine Transform (DCT), a Discrete Sine Transform (DST), a Karhunen-Loeve Transform (KLT), a Graph-Based Transform (GBT), or a Conditionally Non-linear Transform (CNT). Here, GBT refers to a transform obtained from a graph when the relationship information between pixels is expressed as a graph. CNT refers to a transform obtained based on generating a prediction signal using all previously restored pixels. In addition, the transform process can be applied to a pixel block having a square size and the same size, or can be applied to a block of a non-square variable size.
[0083] The quantization unit (233) quantizes the transform coefficients and transmits them to the entropy encoding unit (240), and the entropy encoding unit (240) can encode the quantized signal (information about the quantized transform coefficients) and output it as a bitstream. The information about the quantized transform coefficients can be called residual information. The quantization unit (233) can rearrange the quantized transform coefficients in a block form into a one-dimensional vector form based on the coefficient scan order, and can also generate information about the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector form.
[0084] The entropy encoding unit (240) can perform various encoding methods such as exponential Golomb, context-adaptive variable length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), etc. The entropy encoding unit (240) can also encode information necessary for video / image restoration (e.g., values of syntax elements, etc.) together or separately from quantized transform coefficients.
[0085] Encoded information (e.g., encoded video / image information) can be transmitted or stored in the form of a bitstream in units of NAL (network abstraction layer) units. The video / image information may further include information on various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, the video / image information may further include general constraint information. In the present specification, information and / or syntax elements transmitted / signaled from the encoding device (200) to the decoding device (300) may be included in the video / image information. The video / image information may be encoded through the above-described encoding procedure and included in the bitstream. The bitstream may be transmitted through a network or may be stored in a digital storage medium. Here, the network may include a broadcasting network and / or a communication network, and the digital storage medium may include various storage media, such as a USB, SD, CD, DVD, Blu-ray, HDD, or SSD. The signal output from the entropy encoding unit (240) may be configured as an internal / external element of the encoding device (200) by a transmitting unit (not shown) and / or a storing unit (not shown), or the transmitting unit may be included in the entropy encoding unit (240).
[0086] The quantized transform coefficients output from the quantization unit (233) can be used to generate a prediction signal. For example, by applying inverse quantization and inverse transformation to the quantized transform coefficients through the inverse quantization unit (234) and the inverse transform unit (235), a residual signal (residual block or residual samples) can be restored. The addition unit (250) can generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the reconstructed residual signal to the prediction signal output from the inter prediction unit (221) or the intra prediction unit (222). When there is no residual for the block to be processed, such as when skip mode is applied, the predicted block can be used as a reconstructed block. The addition unit (250) may be called a restoration unit or a reconstructed block generation unit. The generated restoration signal can be used for intra prediction of the next processing target block within the current picture, and can also be used for inter prediction of the next picture after filtering as described below. Meanwhile, LMCS (luma mapping with chroma scaling) may be applied during the picture encoding and / or restoration process.
[0087] The filtering unit (260) can improve subjective / objective picture quality by applying filtering to the restoration signal. For example, the filtering unit (260) can apply various filtering methods to the restoration picture to generate a modified restoration picture and store the modified restoration picture in the memory (270), specifically, in the DPB of the memory (270). The various filtering methods can include deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc. The filtering unit (260) can generate various information regarding filtering and transmit it to the entropy encoding unit (240). The information regarding filtering can be encoded by the entropy encoding unit (240) and output in the form of a bitstream.
[0088] The modified restored picture transmitted to the memory (270) can be used as a reference picture in the inter prediction unit (221). Through this, when inter prediction is applied, the encoding device (200) can avoid prediction mismatch in the encoding device (200) and the decoding device (300), and can also improve encoding efficiency.
[0089] The DPB of the memory (270) can store the modified restored picture to be used as a reference picture in the inter prediction unit (221). The memory (270) can store motion information of a block from which motion information in the current picture is derived (or encoded) and / or motion information of blocks in a picture that has already been restored. The stored motion information can be transferred to the inter prediction unit (221) to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block. The memory (270) can store restored samples of restored blocks in the current picture and transfer them to the intra prediction unit (222).
[0090] FIG. 3 is a schematic block diagram of a decoding device to which an embodiment of the present disclosure can be applied and in which decoding of a video / image signal is performed.
[0091] Referring to FIG. 3, the decoding device (300) may be configured to include an entropy decoder (310), a residual processor (320), a predictor (330), an adder (340), a filter (350), and a memory (360). The predictor (330) may include an inter-prediction unit (332) and an intra-prediction unit (331). The residual processor (320) may include a dequantizer (321) and an inverse transformer (321).
[0092] The entropy decoding unit (310), residual processing unit (320), prediction unit (330), addition unit (340), and filtering unit (350) described above may be configured by a single hardware component (e.g., a decoding device chipset or processor) depending on the embodiment. In addition, the memory (360) may include a decoded picture buffer (DPB) and may be configured by a digital storage medium. The hardware component may further include the memory (360) as an internal / external component.
[0093] When a bitstream including video / image information is input, the decoding device (300) can restore the image corresponding to the process in which the video / image information is processed in the encoding device (200) of FIG. 2. For example, the decoding device (300) can derive units / blocks based on block division related information obtained from the bitstream. The decoding device (300) can perform decoding using a processing unit applied in the encoding device (200). Accordingly, the processing unit of decoding may be a coding unit, and the coding unit may be divided from a coding tree unit or a maximum coding unit according to a quad tree structure, a binary tree structure, and / or a ternary tree structure. One or more transform units may be derived from the coding unit. Then, the restored image signal decoded and output through the decoding device (300) can be reproduced through a reproduction device.
[0094] The decoding device (300) can receive a signal output from the encoding device (200) of FIG. 2 in the form of a bitstream, and the received signal can be decoded through the entropy decoding unit (310). For example, the entropy decoding unit (310) can parse the bitstream to derive information (e.g., video / image information) necessary for image restoration (or picture restoration). The video / image information may further include information on various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, the video / image information may further include general constraint information. The decoding device (300) can decode a picture further based on the information on the parameter set and / or the general constraint information. The signaling / received information and / or syntax elements described later in this specification can be obtained from the bitstream by decoding through a decoding procedure. For example, the entropy decoding unit (310) can decode information in the bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and output the values of syntax elements required for image restoration and the quantized values of transform coefficients for the residual. More specifically, the CABAC entropy decoding method receives a bin corresponding to each syntax element in the bitstream, determines a context model using information of the syntax element to be decoded and decoding information of the surrounding and decoding target blocks or information of symbols / bins decoded in the previous step, and predicts the occurrence probability of the bin according to the determined context model to perform arithmetic decoding of the bin to generate a symbol corresponding to the value of each syntax element. At this time, the CABAC entropy decoding method can update the context model using the information of the decoded symbol / bin for the context model of the next symbol / bin after determining the context model.Among the information decoded by the entropy decoding unit (310), information regarding prediction is provided to the prediction unit (inter-prediction unit (332) and intra-prediction unit (331)), and residual values on which entropy decoding is performed by the entropy decoding unit (310), i.e., quantized transform coefficients and related parameter information, can be input to the residual processing unit (320). The residual processing unit (320) can derive a residual signal (residual block, residual samples, residual sample array). In addition, among the information decoded by the entropy decoding unit (310), information regarding filtering can be provided to the filtering unit (350). Meanwhile, a receiving unit (not shown) that receives a signal output from an encoding device may be further configured as an internal / external element of a decoding device (300), or the receiving unit may be a component of an entropy decoding unit (310).
[0095] Meanwhile, the decoding device according to the present specification may be called a video / video / picture decoding device, and the decoding device may be divided into an information decoding device (video / video / picture information decoding device) and a sample decoding device (video / video / picture sample decoding device). The information decoding device may include the entropy decoding unit (310), and the sample decoding device may include at least one of the inverse quantization unit (321), the inverse transformation unit (322), the addition unit (340), the filtering unit (350), the memory (360), the inter prediction unit (332), and the intra prediction unit (331).
[0096] The inverse quantization unit (321) can inverse quantize the quantized transform coefficients and output the transform coefficients. The inverse quantization unit (321) can rearrange the quantized transform coefficients into a two-dimensional block form. In this case, the rearrangement can be performed based on the coefficient scanning order performed in the encoding device. The inverse quantization unit (321) can perform inverse quantization on the quantized transform coefficients using quantization parameters (e.g., quantization step size information) and obtain transform coefficients.
[0097] In the inverse transform unit (322), the transform coefficients are inversely transformed to obtain a residual signal (residual block, residual sample array).
[0098] The prediction unit (320) can perform a prediction on the current block and generate a predicted block containing prediction samples for the current block. The prediction unit (320) can determine whether intra-prediction or inter-prediction is applied to the current block based on information about the prediction output from the entropy decoding unit (310), and can determine a specific intra / inter-prediction mode.
[0099] The prediction unit (320) can generate a prediction signal based on various prediction methods described below. For example, the prediction unit (320) can apply intra prediction or inter prediction for prediction of a single block, and can also apply intra prediction and inter prediction simultaneously. This can be called CIIP mode. In addition, the prediction unit can be based on an intra block copy (IBC) prediction mode or a palette mode for prediction of a block. The IBC prediction mode or palette mode can be used for coding content images / videos such as games, such as screen content coding (SCC). IBC basically performs prediction within the current picture, but can be performed similarly to inter prediction in that it derives a reference block within the current picture. That is, IBC can utilize at least one of the inter prediction techniques described herein. The palette mode can be viewed as an example of intra coding or intra prediction. When the palette mode is applied, information regarding the palette table and palette index can be included in the video / image information and signaled.
[0100] The intra prediction unit (331) can predict the current block by referring to samples within the current picture. The referenced samples may be located in the neighborhood of the current block, or may be located a certain distance away from the current block, depending on the prediction mode. In intra prediction, the prediction modes may include one or more non-directional modes and multiple directional modes. The intra prediction unit (331) may also determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring blocks.
[0101] The inter prediction unit (332) can derive a prediction block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. At this time, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information can be predicted in units of blocks, subblocks, or samples based on the correlation of the motion information between the neighboring blocks and the current block. The motion information can include a motion vector and a reference picture index. The motion information can further include inter prediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter prediction, the neighboring blocks can include spatial neighboring blocks existing in the current picture and temporal neighboring blocks existing in the reference picture. For example, the inter prediction unit (332) can construct a motion information candidate list based on the neighboring blocks, and derive a motion vector and / or reference picture index of the current block based on the received candidate selection information. Inter prediction can be performed based on various prediction modes, and information about the prediction can include information indicating an inter prediction mode for the current block.
[0102] The addition unit (340) can generate a restoration signal (restored picture, restoration block, restoration sample array) by adding the acquired residual signal to the prediction signal (prediction block, prediction sample array) output from the prediction unit (including the inter-prediction unit (332) and / or intra-prediction unit (331)). When there is no residual for the block to be processed, such as when skip mode is applied, the prediction block can be used as the restoration block.
[0103] The addition unit (340) may be referred to as a restoration unit or restoration block generation unit. The generated restoration signal may be used for intra prediction of the next processing target block within the current picture, may be output after filtering as described below, or may be used for inter prediction of the next picture. Meanwhile, LMCS (luma mapping with chroma scaling) may be applied during the picture decoding process.
[0104] The filtering unit (350) can improve subjective / objective image quality by applying filtering to the restored signal. For example, the filtering unit (350) can apply various filtering methods to the restored picture to generate a modified restored picture, and transmit the modified restored picture to the memory (360), specifically, to the DPB of the memory (360). The various filtering methods can include deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc.
[0105] The (modified) reconstructed picture stored in the DPB of the memory (360) can be used as a reference picture in the inter prediction unit (332). The memory (360) can store motion information of a block from which motion information is derived (or decoded) in the current picture and / or motion information of blocks in a picture that has already been reconstructed. The stored motion information can be transmitted to the inter prediction unit (332) to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block. The memory (360) can store reconstructed samples of reconstructed blocks in the current picture and transmit them to the intra prediction unit (331).
[0106] In this specification, the embodiments described in the filtering unit (260), the inter prediction unit (221), and the intra prediction unit (222) of the encoding device (200) can be applied to the filtering unit (350), the inter prediction unit (332), and the intra prediction unit (331) of the decoding device (300) in the same or corresponding manner, respectively.
[0107] Below, we will explain the transformation / inverse transformation in detail.
[0108] The encoding device (200) can derive a residual block (residual samples) based on a predicted block (prediction samples) through intra / inter / IBC prediction, etc., and can apply transformation and quantization to the derived residual samples to derive quantized transform coefficients. Information on the quantized transform coefficients (residual information) can be included in the residual coding syntax and output in the form of a bitstream after encoding. The decoding device (300) can obtain information on the quantized transform coefficients (residual information) from the bitstream and decode it to derive the quantized transform coefficients. The decoding device (300) can derive residual samples through inverse quantization / inverse transformation based on the quantized transform coefficients. As described above, at least one of quantization / inverse quantization and / or transformation / inverse transformation can be omitted. When transform / inverse transform is omitted, the transform coefficients may be called coefficients or residual coefficients, or may still be called transform coefficients for consistency of representation. Whether transform / inverse transform is omitted can be signaled based on transform_skip_flag.
[0109] Transformation / inverse transformation can be performed based on transformation kernel(s). For example, according to this document, the multiple transform selection (MTS) scheme can be applied. In this case, some of a set of multiple transformation kernels can be selected and applied to the current block. The transformation kernel can be referred to by various terms such as transformation matrix, transformation type, etc. For example, the set of transformation kernels can represent a combination of vertical transformation kernels (vertical transformation kernels) and horizontal transformation kernels (horizontal transformation kernels).
[0110] For example, MTS index information (or tu_mts_idx syntax element) may be generated / encoded by an encoding device (200) and signaled to a decoding device (300) to indicate one of a set of transformation kernels. For example, a set of transformation kernels according to the value of the MTS index information may be derived as shown in Table 1 below.
[0111]
[0112] Table 1 shows the description of trTypeHor and trTypeVer based on tu_mts_idx[x][y].
[0113] The set of transformation kernels may also be determined based on, for example, cu_sbt_horizontal_flag and cu_sbt_pos_flag.
[0114] cu_sbt_horizontal_flag being 1 may indicate that the current coding unit is horizontally split into two transform units. cu_sbt_horizontal_flag[x0][y0] being 0 may indicate that the current coding unit is vertically split into two transform units. cu_sbt_pos_flag being 1 may indicate that tu_cbf_luma, tu_cbf_cb, and tu_cbf_cr of the first transform unit in the current coding unit do not exist in the bitstream. cu_sbt_pos_flag being 0 may indicate that tu_cbf_luma, tu_cbf_cb, and tu_cbf_cr of the second transform unit in the current coding unit do not exist in the bitstream.
[0115]
[0116] Table 2 shows the description of trTypeHor and trTypeVer based on cu_sbt_horizontal_flag and cu_sbt_pos_flag.
[0117] The set of transformation kernels can be determined based on, for example, the intra prediction mode for the current block.
[0118]
[0119] In the above tables (Tables 1 to 3), trTypeHor can represent a horizontal transform kernel, and trTypeVer can represent a vertical transform kernel. Here, a trTypeHor / trTypeVer value of 0 can represent DCT2, a trTypeHor / trTypeVer value of 1 can represent DST7, and a trTypeHor / trTypeVer value of 2 can represent DCT8. However, this is just an example, and other values may be mapped to other DCTs / DSTs by convention.
[0120] Table 4 below shows examples of basis functions for the DCT2, DCT8, and DST7 described above.
[0121]
[0122] In this document, the MTS-based transform is applied as a primary transform, and a secondary transform can be further applied. The secondary transform may be applied only to coefficients in the upper left w×h region of the coefficient block to which the primary transform is applied, and may be called a reduced secondary transform (RST). For example, w and / or h may be 4 or 8. In the transform, the primary transform and the secondary transform may be sequentially applied to the residual block, and in the inverse transform, the inverse secondary transform and the inverse primary transform may be sequentially applied to the transform coefficients. The secondary transform (RST transform) may be called a low frequency coefficients transform (LFCT) or a low frequency non-seperable transform (LFNST). The inverse secondary transform may be called an inverse LFCT or an inverse LFNST.
[0123] Figure 4 illustrates an example of the LFNST process.
[0124] LFNST is known as a reduced second-order transform, which is applied between forward first-order transform and quantization (in the encoder) and between inverse quantization and inverse first-order transform (in the decoder), as illustrated in Fig. 4. In LFNST, a 4×4 non-separable transform or an 8×8 non-separable transform can be applied depending on the block size. For example, a 4×4 LFNST can be applied to small blocks (i.e., min(width, height) < 8), and an 8×8 LFNST can be applied to large blocks (i.e., min(width, height) > 4).
[0125] The application of the non-separable transform used in LFNST can be explained, for example, as follows. To apply 4×4 LFNST, the 4×4 input block X is a vector It can be expressed first as the following equation 1.
[0126] [Formula 1]
[0127]
[0128] Non-separable transformations are can be calculated as follows. Here represents a transformation coefficient vector, and T can represent a 16×16 transformation matrix. 16×1 coefficient vector can be later reconstructed into 4x4 blocks using the scan order of the corresponding blocks (horizontal, vertical, or diagonal). Coefficients with smaller indices can be placed together with smaller scan indices in the 4x4 coefficient blocks.
[0129] Transformation / inverse transformation can be performed on a CU or TU basis. That is, transformation / inverse transformation can be applied to residual samples within a CU or residual samples within a TU. The CU size and the TU size can be the same, or multiple TUs can exist within a CU area. Meanwhile, the CU size can generally represent the luma component (sample) CB size. The TU size can generally represent the luma component (sample) TB size. The chroma component (sample) CB or TB size can be derived based on the luma component (sample) CB or TB size according to the component ratio according to the color format (chroma format, for example, 4:4:4, 4:2:2, 4:2:0, etc.). The TU size can be derived based on maxTbSize. For example, if the CU size is larger than maxTbSize, multiple TUs (TB) of maxTbSize can be derived from the CU, and transformation / inverse transformation can be performed in units of TU (TB). maxTbSize can be considered when determining whether to apply various intra prediction types such as ISP. Information about maxTbSize can be determined in advance, or can be generated and encoded by the encoding device (200) and signaled to the decoding device (300).
[0130] FIG. 5 illustrates an example of an inter-prediction-based video / image encoding method to which an embodiment according to the present disclosure can be applied.
[0131] The encoding device (200) can perform inter prediction on the current block (S500). The encoding device (200) can derive the inter prediction mode and motion information of the current block, and generate prediction samples of the current block. Here, the inter prediction mode determination, motion information derivation, and prediction sample generation procedures may be performed simultaneously, or one procedure may be performed before the other. For example, the inter prediction unit (221) of the encoding device (200) may include a prediction mode determination unit, a motion information derivation unit, and a prediction sample derivation unit. The prediction mode determination unit may determine the prediction mode for the current block, the motion information derivation unit may derive motion information of the current block, and the prediction sample derivation unit may derive prediction samples of the current block.
[0132] The inter prediction unit (221) of the encoding device (200) can search for a block similar to the current block within a certain area (search area) of reference pictures through motion estimation, and derive a reference block whose difference from the current block is minimal or below a certain standard. Based on this, the inter prediction unit (221) can derive a reference picture index indicating a reference picture where the reference block is located, and derive a motion vector based on the positional difference between the reference block and the current block. The encoding device (200) can determine a prediction mode to be applied to the current block among various prediction modes. The encoding device (200) can compare RD costs (Rate Distortion costs) for various prediction modes and determine an optimal prediction mode for the current block.
[0133] When the merge mode is applied to the current block, the encoding device (200) can construct a merge candidate list, which will be described later, and derive a reference block among the reference blocks indicated by the merge candidates included in the merge candidate list, in which the sample difference from the current block, i.e., the sum of absolute differences (SAD) or the sum of absolute transformed differences (SATD), is minimum or below a certain standard. In this case, a merge candidate associated with the derived reference block is selected, and merge index information indicating the selected merge candidate can be generated and signaled to the decoding device (300). The encoding device (200) can derive motion information of the current block using motion information of the selected merge candidate.
[0134] When skip mode is applied to the current block, motion information for the current block can be derived in the same manner as when the merge mode described above is applied. However, when skip mode is applied, the residual signal for the corresponding block is omitted, and the predicted samples can be directly used as restored samples.
[0135] As another example, when the (A)MVP mode is applied to the current block, the encoding device (200) may configure an (A)MVP candidate list, which will be described later, and use the motion vector of a motion vector predictor (MVP) candidate selected from among the motion vector predictor (MVP) candidates included in the (A)MVP candidate list as the motion vector predictor of the current block. In this case, a motion vector pointing to a reference block derived by the above-described motion estimation may be used as the motion vector of the current block. The encoding device (200) may determine a motion vector predictor candidate having a motion vector with the smallest difference from the motion vector of the current block as the selected motion vector predictor candidate among the motion vector predictor candidates. The encoding device (200) may derive a motion vector difference (MVD), which is the difference obtained by subtracting the motion vector predictor from the motion vector of the current block. Information about the MVD may be signaled to the decoding device (300). Additionally, when the (A)MVP mode is applied, the value of the reference picture index can be signaled to a separate decoding device (300) by configuring reference picture index information.
[0136] The encoding device (200) can derive residual samples based on predicted samples (S510). The encoding device (200) can derive residual samples by comparing the original samples of the current block with the predicted samples.
[0137] The encoding device (200) can encode image information including prediction information and residual information (S520). The encoding device (200) can output the encoded image information in the form of a bitstream. The prediction information is information related to a prediction procedure and may include prediction mode information (e.g., skip flag, merge flag, or merge index, etc.) and / or motion information. The motion information may include candidate selection information (e.g., merge index, MVP flag, or MVP index), which is information for deriving a motion vector. In addition, the motion information may include information about the above-described MVD and / or reference picture index information. In addition, the motion information may include information indicating whether L0 prediction, L1 prediction, or bi-prediction is applied. The residual information is information about residual samples and may include information about quantized transform coefficients for the residual samples.
[0138] The output bitstream can be stored in a (digital) storage medium and transmitted to a decoding device (300), or can be transmitted to the decoding device (300) via a network.
[0139] Meanwhile, as described above, the encoding device (200) can generate a restored picture (including restored samples and restored blocks) based on reference samples and residual samples. This is to derive the same prediction result as that performed by the decoding device (300) from the encoding device, thereby increasing coding efficiency. Accordingly, the encoding device (200) can store the restored picture (or restored samples, restored blocks) in memory and utilize it as a reference picture for inter prediction. As described above, an in-loop filtering procedure, etc. can be further applied to the restored picture.
[0140] FIG. 6 illustrates an example of an inter-prediction-based video / image decoding method to which an embodiment according to the present disclosure can be applied.
[0141] Referring to FIG. 6, the decoding device (300) can perform an operation corresponding to the operation performed in the encoding device (200). The decoding device (300) can perform a prediction on the current block based on the received prediction information and derive prediction samples.
[0142] Specifically, the decoding device (300) can determine a prediction mode for the current block based on the received prediction information (S600). The decoding device (300) can determine which inter-prediction mode is applied to the current block based on the prediction mode information in the prediction information.
[0143] For example, the decoding device (300) can determine whether the merge mode or the (A)MVP mode is applied to the current block based on a merge flag. Alternatively, the decoding device (300) can select one of various inter prediction mode candidates based on a mode index. The inter prediction mode candidates can include skip mode, merge mode, and / or (A)MVP mode, or can include various inter prediction modes described below.
[0144] The decoding device (300) can derive motion information of the current block based on the determined inter prediction mode (S610). For example, if skip mode or merge mode is applied to the current block, the decoding device (300) can construct a merge candidate list described below and select one of the merge candidates included in the merge candidate list. This selection can be performed based on the above-described selection information (merge index). The decoding device (300) can derive motion information of the current block using motion information of the selected merge candidate. The motion information of the selected merge candidate can be used as motion information of the current block.
[0145] As another example, when the (A)MVP mode is applied to the current block, the decoding device (300) may construct an (A)MVP candidate list described below, and use the motion vector of an MVP candidate selected from among the MVP candidates included in the (A)MVP candidate list as the MVP of the current block. This selection may be performed based on the above-described selection information (MVP flag or MVP index). In this case, the decoding device (300) may derive the MVD of the current block based on the information about the MVD, and may derive the motion vector of the current block based on the MVP of the current block and the MVD. In addition, the decoding device (300) may derive the reference picture index of the current block based on reference picture index information. A picture indicated by a reference picture index in the reference picture list for the current block may be derived as a reference picture referenced for inter prediction of the current block.
[0146] Meanwhile, as described below, motion information of the current block can be derived without constructing a candidate list. In this case, motion information of the current block can be derived according to the procedure initiated in the prediction mode described below. In this case, constructing a candidate list as described above can be omitted.
[0147] The decoding device (300) can generate prediction samples for the current block based on the motion information of the current block (S620). In this case, the decoding device (300) can derive a reference picture based on the reference picture index of the current block, and can derive prediction samples of the current block using samples of the reference block pointed to by the motion vector of the current block on the reference picture. In this case, as described below, a prediction sample filtering procedure may be further performed on all or part of the prediction samples of the current block, depending on the case.
[0148] For example, the inter prediction unit (332) of the decoding device (300) may include a prediction mode determination unit, a motion information derivation unit, and a prediction sample derivation unit. The prediction mode determination unit may determine a prediction mode for the current block based on the received prediction mode information. The motion information derivation unit may derive motion information (such as a motion vector and / or a reference picture index) of the current block based on information about the received motion information. The prediction sample derivation unit may derive prediction samples of the current block.
[0149] The decoding device (300) derives residual samples for the current block based on the received residual information (S630). The decoding device (300) generates restoration samples for the current block based on the prediction samples and residual samples, and can then generate a restoration picture based on these (S640). As described above, further procedures such as in-loop filtering may be applied to the restoration picture.
[0150] FIG. 7 exemplarily illustrates an inter prediction procedure to which an embodiment according to the present disclosure can be applied.
[0151] Referring to FIG. 7, the inter prediction procedure as described above may include an inter prediction mode determination step, a motion information derivation step according to the determined prediction mode, and a prediction performance (prediction sample generation) step based on the derived motion information. The inter prediction procedure may be performed in the encoding device (200) and the decoding device (300) as described above. In this document, the coding device may include the encoding device (200) and / or the decoding device (300).
[0152] Referring to FIG. 7, the coding device determines an inter prediction mode for a current block (S700). Various inter prediction modes may be used to predict the current block within a picture. For example, various modes may be used, such as merge mode, skip mode, motion vector prediction (MVP) mode, affine mode, sub-block merge mode, and merge mode with MVD (MMVD) mode. Decoder side motion vector refinement (DMVR) mode, adaptive motion vector resolution (AMVR) mode, bi-prediction with CU-level weight (BCW), and bi-directional optical flow (BDOF) may be used as auxiliary modes. In addition, according to an embodiment of the present disclosure, the above-described inter prediction mode may include a multi-hypethesis prediction (MHP) mode. Multi-assumption prediction mode refers to a method of performing prediction by weighting additional prediction blocks generated based on additional motion information for unidirectional prediction or bidirectional prediction (or bi-prediction) blocks. This multi-assumption prediction mode is described in detail below.
[0153] In the present disclosure, the affine mode may be referred to as the affine motion prediction mode. In addition, the MVP mode may be referred to as the advanced motion vector prediction (AMVP) mode. In the present disclosure, motion information candidates derived from some modes and / or some modes may be included as one of the motion information-related candidates of other modes. For example, an HMVP candidate may be added as a merge candidate of the merge / skip mode, or may be added as a motion vector predictor candidate of the AMVP mode. When an HMVP candidate is used as a motion information candidate of the merge mode or the skip mode, the HMVP candidate may be referred to as an HMVP merge candidate.
[0154] Prediction mode information indicating the inter prediction mode of the current block can be signaled from the encoding device (200) to the decoding device (300). The prediction mode information can be included in the bitstream and received by the decoding device (300). The prediction mode information can include index information indicating one of a plurality of candidate modes. Alternatively, the inter prediction mode can be indicated through hierarchical signaling of flag information.
[0155] In this case, the prediction mode information may include one or more flags. For example, the encoding device (200) may signal a skip flag to indicate whether skip mode is applied, signal a merge flag to indicate whether merge mode is applied when skip mode is not applied, and signal MVP mode to be applied when merge mode is not applied, or may further signal a flag for additional distinction. The affine mode may be signaled as an independent mode, or as a mode dependent on the merge mode or MVP mode. For example, the affine mode may include an affine merge mode and an affine MVP mode.
[0156] The coding device can derive motion information for the current block (S710). The motion information can be derived based on an inter prediction mode. The coding device can perform inter prediction using the motion information of the current block.
[0157] The encoding device (200) can derive optimal motion information for the current block through a motion estimation procedure.
[0158] For example, the encoding device (200) can search for a similar reference block with a high correlation in units of fractional pixels within a predetermined search range within the reference picture using the original block within the original picture for the current block, and thereby derive motion information. The similarity of the blocks can be derived based on the difference in phase-based sample values. For example, the similarity of the blocks 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, the encoding device (200) can derive motion information based on the reference block with the smallest SAD within the search range. The derived motion information can be signaled to the decoding device (300) in various ways based on the inter prediction mode.
[0159] The coding device can perform inter prediction based on motion information for the current block (S720). The coding device can generate prediction sample(s) for the current block based on the motion information. The current block containing the prediction samples may be referred to as a predicted block.
[0160] Hereinafter, the multi-hypothesis prediction (MHP) mode will be described in detail. In this document, the multi-hypothesis prediction mode may also be referred to as multi-reference mode, multi-reference prediction, multi-reference prediction mode, multi-reference block mode, MHP mode, multi-hypothesis inter-prediction mode, inter-inter combined prediction mode, combined inter-prediction mode, combined prediction mode, multi-inter prediction mode, multi-prediction mode, additional reference prediction mode, additional reference mode, multiple reference block, etc. In addition, the multi-hypothesis prediction mode may mean a mode in which an additional reference block is used (or applied, or available, or exists, or allowed) in addition to a basic reference block.
[0161] FIG. 8 is a diagram for explaining an inter prediction method performed by a decoding device according to an embodiment of the present disclosure.
[0162] Referring to FIG. 8, the decoding device (300) can generate a base prediction block of the current block (S800). In other words, the decoding device (300) can generate a base prediction block by performing unidirectional or bidirectional prediction. When multiple reference blocks exist, the decoding device (300) can derive and combine additional reference blocks in addition to the prediction block generated (or derived) by unidirectional or bidirectional prediction. For example, the base prediction block may mean an L0 prediction block or an L1 prediction block, or may mean a block obtained by weighting L0 and L1 prediction blocks. In the present embodiment, the case where the base prediction block is a block obtained by weighting L0 and L1 prediction blocks is mainly described, but the present disclosure is not limited thereto, and the base prediction block may be a reference block before weighting is performed. In the present disclosure, a base prediction block may be referred to as an initial prediction block, a temporary prediction block, a reference prediction block, or a regular prediction block, and a base reference block may be referred to as an initial reference block, a temporary reference block, or a regular reference block.
[0163] In one embodiment, the decoding device (300) can derive a first reference block and a second reference block of the current block by performing bidirectional prediction, and generate a base prediction block by weighting the first reference block and the second reference block. Alternatively, the decoding device (300) according to the present disclosure can generate a base prediction block by deriving a third reference block of the current block by performing unidirectional prediction. In other words, the base prediction block can be derived by weighting multiple reference blocks, or can be derived using a single reference block.
[0164] In one embodiment, weights may be used for the weighted sum of L0 and L1 prediction blocks. The weights are weights used for weighted prediction and may be collectively referred to as BCW (Bi-prediction with CU based Weights) and CW (CU based Weights). The weights may be derived from a weight candidate list. The weight candidate list may include multiple weight candidates and may be predefined in the encoding / decoding device (200, 300).
[0165] The weight candidates may be a set of weights (i.e., a first weight and a second weight) representing weights applied to each of the bidirectional prediction blocks, or may be weights applied to prediction blocks in either direction. If only the weights applied to a prediction block in one direction are derived from the weight candidate list, the weights applied to the prediction block in the other direction may be derived based on the weights derived from the weight candidate list. For example, the weights applied to the prediction block in the other direction may be derived by subtracting the weights derived from the weight candidate list from a predetermined value.
[0166] In one embodiment, a weight index indicating weights used for weighted prediction of a current block may be derived within a weight candidate list. In the present disclosure, the weight index may be referred to as bcw_idx, a bcw index. The weight index may be derived by a decoding device or signaled from an encoding device. If derived by a decoding device, the weight index may be derived as a weight index of a specific merge candidate within a merge candidate list. For example, a specific merge candidate may be specified within the merge candidate list by a merge index.
[0167] The decoding device (300) can derive (or generate) an additional reference block for the current block (S810). In other words, the decoding device (300) can derive multiple reference blocks for the current block.
[0168] The decoding device (300) can derive an additional reference block in addition to the basic prediction block and combine (or weight the sum) the basic prediction block and the derived additional reference block.
[0169] In one embodiment, when multiple reference blocks are applied (or allowed or present), the decoding device (300) can derive and combine additional reference blocks up to a predefined number. In other words, the decoding device (300) can combine (or weight sum) additional reference blocks less than or equal to the predefined number to the base prediction block. As an example, the predefined number can be 2. As another example, the predefined number can be one of 1, 2, 3, and 4. As another example, the predefined number can be referred to as the maximum number of additional reference blocks.
[0170] When multiple additional reference blocks are combined, the additional reference blocks may be sequentially weighted to the base prediction block. For example, when up to two additional reference blocks are generated, the base prediction block and the first additional reference block may be weighted to generate a prediction block, and the generated prediction block and the second additional reference block may be weighted to generate a final prediction block. The prediction block generated by weighting the base prediction block and the first additional reference block may be referred to as an intermediate prediction block.
[0171] When multiple additional reference blocks are combined, the base prediction block and the generated multiple additional reference blocks can be weighted together. That is, after the multiple additional reference blocks are generated, weights can be applied to each of the multiple additional reference blocks and the base prediction block (or L0 prediction block and L1 prediction block) and weighted together.
[0172] According to various embodiments, the decoding device (300) may determine whether to apply the method to multiple reference blocks. In this case, a step for determining whether to apply the method to multiple reference blocks may be added prior to step S810. Here, whether to apply the method to multiple reference blocks may be explicitly signaled or may be implicitly derived (or determined) by the decoding device (300).
[0173] According to various embodiments, whether or not to apply to multiple reference blocks can be signaled from the encoding device (200) to the decoding device (300). For example, a flag indicating whether or not to apply to multiple reference blocks can be signaled from the encoding device (200) to the decoding device (300). At this time, a condition for signaling / parsing the flag can be predefined. The signaling / parsing condition of the flag can be an availability condition of the multiple reference blocks. If the signaling / parsing condition is satisfied, the decoding device (300) can parse the flag from the bitstream.
[0174] According to various embodiments, whether to apply to multiple reference blocks can be derived by the decoding device (300) based on predefined encoding information.
[0175] According to various embodiments, the decoding device (300) may obtain multiple reference block information (which may also be referred to as multiple reference block prediction information) to generate an additional reference block. The multiple reference block information may include weight information and / or prediction information. An additional reference block may be derived based on the prediction information, and the additional reference block derived based on the weight information may be weighted with a base prediction block (or an intermediate prediction block). In addition, the multiple reference block information may further include a flag indicating whether to apply to the multiple reference block.
[0176] Prediction information may include prediction mode information used to derive additional reference blocks and motion information according to the prediction mode. The prediction mode information may be inter-prediction mode information indicating whether the prediction mode is merge mode or AMVP mode. For example, the prediction mode information may further include a merge flag. That is, merge mode or AMVP mode may be used to derive multiple reference blocks, and a flag syntax element indicating this may be signaled.
[0177] A predefined prediction mode, either merge mode or AMVP mode, can be used to derive multiple reference blocks. The predefined prediction mode can be selected from merge mode or AMVP mode based on predefined encoding information.
[0178] When the merge mode is used to derive multiple reference blocks, the prediction information may include a merge index. The merge index may specify a merge candidate within a merge candidate list. When the AMVP mode is used to derive multiple reference blocks, the prediction information may include a motion vector predictor flag, a reference index, and / or motion vector differential information. The motion vector predictor flag may specify a candidate within a motion vector predictor candidate list.
[0179] The decoding device (300) can generate a final prediction block by weighting the base prediction block and the additional reference blocks (S820). As described above, the number of additional reference blocks may be less than or equal to a predefined number. For example, if the number of additional reference blocks is 2, the final prediction block may be a block obtained by weighting the base prediction block and the two additional reference blocks. In one embodiment, the weight information for the weighted sum may be signaled or derived.
[0180] As described above, when multiple additional reference blocks are combined, the multiple additional reference blocks may be sequentially weighted to the base prediction block, or the base prediction block and the multiple additional reference blocks generated may be weighted together.
[0181] Typically, the inter prediction process supports unidirectional or bidirectional prediction, but if it includes more than one prediction block, the block may be considered as a multiple reference block. In the present disclosure, reference block(s) used for unidirectional / bidirectional prediction in video codecs such as HEVC and VVC are described as regular (basic) reference blocks, and additional reference blocks are described as additional reference blocks, multiple reference blocks, etc.
[0182] In an embodiment, information about an additional reference block may be signaled using a merge index, identical to or similar to the merge mode. Alternatively, information about an additional reference block may be signaled using a reference index, a motion vector predictor (MVP) flag (or index), a motion vector difference, or the like, identical to or similar to the AMVP mode. Alternatively, motion information about an additional reference block may be derived by inheriting it from a neighboring block that has already been decoded. In one embodiment, whether or not information about an additional reference block is signaled may be determined depending on the number of additional reference blocks used. For example, when there is one additional reference block, information about the additional reference block is signaled, and when there are two additional reference blocks, all or part of information about the additional reference blocks may not be signaled but may be derived on the decoder side.
[0183] According to an embodiment of the present disclosure, by signaling / deriving additional motion information and weight information for prediction blocks in addition to motion information in each direction during the inter prediction process, compression performance can be improved through generation of various final prediction blocks by including intra-screen prediction blocks and IBC prediction blocks as multi-prediction blocks.
[0184] FIG. 9 illustrates an example of a reference block used in a multiple reference block according to an embodiment of the present disclosure.
[0185] When multiple reference blocks exist, each reference block can be represented as shown in Fig. 9. In Fig. 9, reference blocks P0 and P1 represent regular reference blocks, and reference blocks P2 and P3 represent multiple reference blocks (i.e., multiple additional reference blocks).
[0186] For convenience of explanation, Figure 9 illustrates a case where two reference blocks exist for each prediction direction, but this is not a limitation. That is, the number of reference blocks for each prediction direction can be changed, and the motion compensation order can also be changed. The description of multiple reference blocks described below is based on Figure 9.
[0187] FIG. 10 exemplarily illustrates a method for signaling / parsing motion information of a prediction block added when motion information of multiple reference blocks is signaled / parsed according to one embodiment of the present disclosure. The operations described in FIG. 10 may be performed in an encoding device (200) and / or a decoding device (300).
[0188] When multiple reference blocks exist and information about the blocks is signaled / parsed, motion information of the additional prediction blocks can be signaled / parsed in the order shown in Fig. 9. Here, MaxNum can indicate the maximum number of additional reference blocks.
[0189] Referring to FIG. 10, the operations of FIG. 10 may loop until the number of additional reference blocks reaches the maximum number. If the number of additional reference blocks is less than or equal to the maximum number, mhp_flag may be parsed. mhp_flag represents a flag indicating the presence of multiple reference blocks.
[0190] If a multi-reference block exists (i.e., mhp_flag is '1'), mhp_mrg can be parsed. mhp_mrg can indicate whether it is in merge mode (MH-MERGE) or inter mode (MH-AMVP) as a multi-reference block. mhp_mrg can be used to distinguish whether it is in merge mode as a multi-reference block or inter mode (AMVP).
[0191] When in merge mode (i.e., mhp_mrg is '1'), the merge index and the weight index can be signaled. When in AMVP mode, the reference index, MVP index (MVP idx), MVD data, and the weight index can be signaled.
[0192] As illustrated in Fig. 10, when the maximum number of additional reference blocks that can be generated is MaxNum, the presence or absence of multiple reference blocks can be determined through mhp_flag. For example, when MaxNum is 2, mhp_flag can have values as shown in Table 5 below, and depending on the values, the presence or absence of the first (1st) additional block (i.e., the first additional reference block) and the second (2nd) additional block (i.e., the second additional reference block) can be determined.
[0193]
[0194] Referring to Table 5, when mhp_flag is '1', additional reference blocks may exist. Through mhp_mrg, it can be distinguished whether it is MERGE (MH-MERGE) mode as a multiple reference block or INTER (MH-AMVP) mode as a multiple reference block. In MH-MERGE mode, the merge index and weight index can be signaled. In MH-AMVP mode, the reference index, motion vector predictor index (mvp idx) (or flag), motion vector difference data (mvd data), and weight index can be signaled.
[0195] The syntax names such as mhp_flag, mhp_mrg, etc. described in the present disclosure are examples, and the names may vary. In addition, although the prediction modes when multiple reference blocks exist in the present disclosure are described as MH-MERGE and MH-AMVP, these can be distinguished from the merge mode and inter mode that indicate motion information of regular reference blocks. In particular, the motion vector predictor candidate list (MVP candidate list) for the regular reference block and the motion vector predictor candidate list for the additional reference block can be independently configured. In addition, the MH-MERGE and MH-AMVP modes for the additional reference block can include weight index information.
[0196] In addition to the method of applying multiple reference blocks through the signaling described above, multiple reference blocks may be applied through a derivation method. In particular, since merge mode uses motion information transmitted (or inherited) from encoded / decoded adjacent and non-adjacent blocks, information for multiple reference blocks may also use motion information transmitted from adjacent and non-adjacent blocks. For example, when the current block is in merge mode and the adjacent and non-adjacent blocks for acquiring motion information include MHP information, the information may be transmitted and used when generating additional reference blocks for the current block.
[0197] As described above, multi-reference block information can be acquired through signaling or derivation, and both methods can be applied. In particular, when the number of multi-reference blocks acquired through the derivation process is less than MaxNum, multi-reference blocks can be added through signaling. For example, when configuring N multi-reference blocks, if there are M blocks acquired through the derivation process (M<=N), up to NM multi-reference blocks can be acquired through signaling.
[0198] Additional reference blocks obtained by signaling or derivation methods can be weighted and combined in the following manner to generate a final prediction block. For example, assuming that there are two additional reference blocks (P2, P3) and that the weight values obtained by signaling or derivation methods for each additional reference block are w0 and w1, respectively, the process of generating a final prediction block using the weight values can be expressed as in Equation 2 below.
[0199] [Formula 2]
[0200]
[0201] In Equation 2, w0 and w1 represent weights applied to additional reference blocks P2 and P3, respectively. In the first step (Step 1) of Equation 2, a base prediction block P' is generated using the base reference blocks P0 and P1, and in the second step (Step 2) of Equation 2, a weighted sum of the base prediction block P' and the additional reference block P2 is performed, and in the third step (Step 3) of Equation 2, a weighted sum of the weighted prediction block (intermediate prediction block) P'' and the additional reference block P3 is performed, so that the final prediction block P can be generated.
[0202] Although multiple reference blocks are described as being added to the inter prediction process, they are not limited to that process alone, and may be included in the intra prediction and IBC (intra block copy) processes. When multiple reference blocks are included in various prediction modes, a regular block (i.e., a regular reference block) may collectively refer to inter, intra, and IBC blocks, rather than multiple reference blocks, and multiple reference blocks may also include intra and IBC modes as well as inter or merge modes. In order to determine the mode of a multiple reference block, a flag indicating each mode may be included, and this flag may be acquired through a transmission (or inheritance) method other than signaling. In addition, a multiple reference block may be induced and generated at the decoder end when certain conditions are satisfied other than signaling or transmission methods.
[0203] However, when multiple reference blocks exist or intra modes exist in multiple reference blocks, signaling processes and decoding processes for transformation, filtering, and / or related syntax may be performed depending on various conditions.
[0204] Accordingly, the embodiments of the present disclosure describe signaling and decoding processes performed depending on whether multiple reference blocks exist or whether intra modes exist in multiple reference blocks.
[0205] Before explaining this, various tools related to the signaling and decoding process in cases where intra mode exists with multiple reference blocks or when multiple reference blocks exist are explained below.
[0206] IBC(Intra block copy)
[0207] IBC is a tool adopted in the HEVC extension of SCC. It is well known for significantly improving the coding efficiency of screen content materials. Since IBC mode is implemented as a block-level coding mode, block matching (BM) can be performed in the encoder to find an optimal block vector (or motion vector) for each CU. Here, the block vector can be used to indicate the displacement from the current block to a reference block already reconstructed within the current block. The luma block vector of an IBD-coded CU can be of integer resolution (or precision). The chroma block vector can be rounded to integer resolution. When combined with AMVR, IBC mode can switch between 1-pel (pixel) and 4-pel (pixel) motion vector resolutions. An IBD-coded CU can be treated as a third prediction mode, rather than an intra- or inter-prediction mode. IBC mode can be applied to CUs with both a width and a height of 64 luma samples or less.
[0208] Hash-based motion estimation can be performed on the encoder side for IBC. The encoder can perform a block-by-block (BD) check on blocks whose width and height are no greater than 16 luma samples. For non-merge mode, block vector search can be performed first using a hash-based search. If the hash search does not return a valid candidate, a block-matching-based local search can be performed.
[0209] In hash-based search, the hash key matching (32-bit CRC) between the current block and the reference block can be extended to all allowed block sizes. The hash key calculation for each location in the current picture is based on 4x4 sub-blocks. For larger current blocks, if all hash keys of the 4x4 sub-blocks match the hash keys of the corresponding reference locations, the hash key can be determined to match that of the reference block.
[0210] When the hash keys of multiple reference blocks are found to match those of the current block, the block vector costs of each matched reference can be calculated and the minimum cost can be selected.
[0211] In block matching searches, the search range can be set to cover both previous and current CTUs. At the CU level, the IBC mode is signaled by a flag, which can be signaled as IBC AMVP mode or IBC Skip / Merge mode as follows.
[0212] - IBC Skip / Merge Mode: A merge candidate index can be used to indicate which block vectors from a list of neighboring candidate IBC coded blocks are used to predict the current block. The merge list can include spatial, HMVP, and pairwise candidates.
[0213] - IBC AMVP mode: Block vector differences can be coded in the same way as motion vector differences. The block vector prediction method can use two candidates as predictors: one from the left neighbor and one from the upper neighbor (if IBC coded). If neither neighbor is available, the default block can be used as the predictor. A flag can be signaled to indicate the block vector predictor index.
[0214] Geometric partitioning mode (GPM)
[0215] In VVC, GPM can be supported for inter prediction. GPM is a type of merge mode that can be signaled using a CU-level flag. Other merge modes can include regular merge mode, MMVD mode, CIIP mode, and sub-block merge mode. Each possible CU size is w×h = 2. m ×2 nA total of 64 partitions can be supported, where m,n ∈ {3… 6}, excluding 8×64 and 64×8.
[0216] When this mode is used, a CU can be divided into two parts by a geometrically positioned straight line. The location of the dividing line can be mathematically derived from the angle and offset parameters of a specific partition. Each part of the geometric partition of the CU can be inter-predicted using its own motion. Only a single prediction is allowed for each partition, i.e., each part has a single motion vector and a single reference index. A single-prediction motion constraint can be applied to ensure that only two motion-compensated predictions are required for each CU, similar to conventional orthogonal prediction.
[0217] Figure 11 illustrates GPM segments grouped at the same angle as an example.
[0218] The unidirectional prediction motion of each partition can be derived using a process as illustrated in Fig. 11.
[0219] When GPM is used for the current block, a geometric partition index indicating the partition mode of the geometric partition (angle and offset) and two merge indices (one for each partition) can be additionally signaled. The maximum number of GPM candidate sizes can be explicitly signaled in the SPS, and the syntax binarization of the GPM merge indices can be specified. After predicting each part of the geometric partition, the sample values along the geometric partitioning edge can be adjusted using adaptive weighted blending processing, such as blending along the geometric partitioning edge, described below. This is a prediction signal for the entire CU, and the transform and quantization processes can be applied to the entire CU as in other prediction modes. Finally, the motion field of the CU predicted using GPM can be stored, such as motion field storage for GPM, described below.
[0220] Blending along the geometric partitioning edge
[0221] After each part of the geometric segmentation is predicted using its own motion, blending can be applied to the two prediction signals to derive samples around the geometric segmentation edge. The blending weights for each position of the CUs can be derived based on the distance between the development position and the segmentation edge.
[0222] The distance from the location (x, y) to the splitting edge can be derived as shown in Equation 3 below.
[0223] [Formula 3]
[0224]
[0225] Here, i, j are indices for the angle and offset of the geometric segmentation, which are based on the signaled geometric segmentation index. and The sign of is based on the angle index i.
[0226] The weights for each part of the geometric partition can be derived as shown in Equation 4 below.
[0227] [Formula 4]
[0228]
[0229] partIdx is based on the angle index i. Fig. 12 illustrates an exemplary generation of blending weights w0 using GPM. An example of weight w0 can be illustrated as in Fig. 12.
[0230] Motion field storage for geometric partitioning mode
[0231] The combined Mv of Mv1 in the first part of the geometric partition and Mv1 and Mv2 in the second part of the geometric partition can be stored in the motion field of the GPM coded CU.
[0232] The stored motion vector type for each individual position in the motion field can be determined as shown in Equation 5 below.
[0233] [Formula 5]
[0234]
[0235] Here, motioLdx is equal to d(4x+2, 4y+2), and partIdx is based on the angle index i.
[0236] If sType is 0 or 1, Mv0 or Mv1 is stored in the corresponding motion field, otherwise, if sType is 2, a combined Mv from Mv1 and Mv2 can be stored. The combined Mv can be generated using the following process.
[0237] - If Mv1 and Mv2 are in different reference picture lists (one in L0 and the other in L1), Mv1 and Mv2 can be simply combined to form bidirectional predicted motion vectors.
[0238] - Otherwise, if Mv1 and Mv2 are in the same list, only the unidirectional predicted motion Mv2 can be stored.
[0239] Combined inter and intra prediction (CIIP)
[0240] Combined inter and intra prediction can be applied to the current block. An additional flag (e.g., ciip_flag) can be signaled to indicate whether the CIIP mode is applied to the current CU. For example, when the CU is coded in merge mode, if the CU contains at least 64 luma samples (i.e., the product of the CU width and the CU height is greater than or equal to 64) and both the CU width and the CU height are less than 128 luma samples, the additional flag can be signaled to indicate whether the CIIP mode is applied to the current CU. As its name suggests, CIIP prediction combines inter prediction signals and intra prediction signals. The inter prediction signal P_inter of the CIIP mode can be derived using the same inter prediction process applied to the regular merge mode, and the intra prediction signal P_intra can be derived according to the regular intra prediction process of the planar mode. The intra and inter prediction signals can then be combined using a weighted average. Figure 13 illustrates the upper left neighboring blocks used in CIIP weight derivation. Here, the weight values can be calculated as follows according to the coding modes of the upper left neighboring blocks as shown in Figure 13.
[0241] If the top neighbor is available and intra-coded, isIntraTop is set to 1, otherwise isIntraTop is set to 0;
[0242] If the left neighbor is available and intra-coded, isIntraLeft is set to 1, otherwise isIntraLeft is set to 0;
[0243] If (isIntraTop + isIntraLeft) is 2, wt is set to 3;
[0244] Otherwise, if (isIntraTop + isIntraLeft) is 1, wt is set to 2;
[0245] Otherwise, wt is set to 1.
[0246] The CIIP prediction can be constructed as shown in Equation 6 below.
[0247] [Formula 6]
[0248]
[0249] Combination of CIIP and TM merge including TIMD
[0250] In CIIP mode, prediction samples can be generated by weighting the predicted inter-prediction signal using the CIIP-TM merge candidate and the predicted intra-prediction signal using the TIMD derived in the intra-prediction mode. This method can only be applied to coding blocks containing regions of 1024 or less.
[0251] The TIMD derivation method can be used to derive intra prediction modes in CIIP. Specifically, an intra prediction mode having the minimum SATD values in the TIMD mode list can be selected and mapped to one of the 67 regular intra prediction modes.
[0252] Additionally, it can be proposed that the weights (wIntra, winter) for the two tests be modified when the derived intra prediction mode is an angular mode.
[0253] Figure 14 illustrates an example of a method for dividing angular modes.
[0254] For near-horizontal modes (2 <= angular mode index < 34), the current block is vertically partitioned as shown in (a) of Fig. 14. For near-vertical modes (34 <= angular mode index < 66), the current block is horizontally partitioned as shown in (b) of Fig. 14.
[0255] (wIntra, wInter) for different sub-blocks can be expressed as shown in Table 6 below.
[0256]
[0257] Using CIIP-TM, a list of CIIP-TM merge candidates can be created for CIIP-TM mode. Merge candidates can be refined through template matching. CIIP-TM merge candidates can also be reordered using the ARMC method, just like regular merge candidates. The maximum number of CIIP-TM merge candidates is two.
[0258] GPM including inter and intra prediction
[0259] In a GPM that includes inter- and intra-prediction, final predicted samples can be generated by weighting the inter-predicted samples and intra-predicted samples for each GPM-separated region. The inter-predicted samples are derived from the inter-GPM, while the intra-predicted samples can be derived from an intra-prediction mode (IPM) candidate list and an index signaled from the encoder. The IPM candidate list size can be predefined as 3.
[0260] Figure 15 illustrates available IPM candidates for GPM including inter and intra prediction.
[0261] Available IPM candidates can be parallel angular mode (Parallel mode), perpendicular angular mode (Perpendicular mode), and planar mode with respect to the GPM block boundary, as illustrated in (a)-(d) of Fig. 15. Furthermore, as illustrated in Fig. 15, GPMs including inter and intra prediction can be restricted to reduce signaling overhead for IPMs and prevent an increase in the intra prediction circuit size of the hardware decoder. In addition, direct motion vector and IPM storage in the GPM blending region can be introduced to further improve coding performance.
[0262] In DIMD and adjacent mode-based IPM derivation, parallel modes can be registered first. Therefore, if there are no identical IPM candidates in the list, up to two IPM candidates derived from the decoder-side intra-mode derivation (DIMD) method and / or neighboring blocks can be registered.
[0263] In deriving the neighbor mode, there are at most five locations for the available neighbor blocks, but this may be limited by the GPM block boundary angles already used in GPM using template matching (GPM-TM), as shown in Table 7.
[0264] Table 7 shows the locations of available neighboring blocks for deriving IPM candidates according to the GPM block boundary angle. A and L can represent the upper and left sides of the predicted block.
[0265]
[0266] GPM-Intra can be combined with GPM-MMVD (GPM with merge with motion vector difference). To further improve coding performance, TIMD can be used to generate IPM candidates for GPM-Intra. Parallel modes can be registered first, followed by TIMD, DIMD, and IPM candidates from neighboring blocks.
[0267] Multi-hypothesis prediction (MHP)
[0268] In multi-home inter prediction mode, one or more additional motion-compensated prediction signals are signaled in addition to the existing bidirectional prediction signal, and the resulting overall prediction signal can be obtained by sample-wise weighted superposition. Bidirectional prediction signal p bi And using the first additional inter prediction signal / assumption h3, the resulting prediction signal p3 can be obtained as in the following equation 7.
[0269] [Formula 7]
[0270]
[0271] The weight factor α can be specified by a new syntax element add_hyp_weight_idx according to the mapping shown in Table 8 below.
[0272]
[0273] Similarly, one or more additional prediction signals can be used. The resulting overall prediction signal can be iteratively accumulated with each additional signal, as shown in Equation 8 below.
[0274] [Formula 8]
[0275]
[0276] The resulting overall prediction signal is the final p n (i.e. p with the largest index n n) can be obtained. Within this EE, up to two additional prediction signals can be used (i.e., n is limited to 2).
[0277] The motion parameters of each additional prediction hypothesis can be explicitly signaled by specifying the reference index, the motion vector predictor index, and the motion vector difference, or implicitly signaled by specifying the merge index. A separate multi-hypothesis merge flag can distinguish these two signaling modes.
[0278] For inter AMVP mode, MHP can be applied only when non-equal weight of BCW is selected in bidirectional prediction mode.
[0279] A combination of MHP and BDOF is possible, but BDOF can only be applied to the bidirectional signal part of the prediction signal (i.e., the two common first assumptions).
[0280] Overlapped block motion compensation (OBMC)
[0281] OBMC can be performed on all motion compensated block boundaries, including the right and bottom boundaries of a CU. Therefore, it can be applied to both luma and chroma components. To uniformly process CU / sub-block boundaries, OBMC can be performed at the sub-block level for all MC block boundaries.
[0282] Figure 16 illustrates sub-blocks at CU / PU boundaries and sub-PUs in ATMVP mode as an example. Here, the size of the sub-block can be set to 4×4 as described in Figure 16.
[0283] When OBMC is applied to a current sub-block, in addition to the current motion vectors, four connected neighboring sub-blocks that are available and not identical to the current motion vectors can also be used to derive a prediction block for the current sub-block. These multiple prediction blocks based on multiple motion vectors can be weighted to generate the final prediction signal for the current sub-block.
[0284] As shown in (a) and (b) of Fig. 16, a prediction block based on the motion vector of a neighboring sub-block is P N (where N represents the indices of the neighboring sub-blocks up, down, left, and right), and the prediction block based on the motion vectors of the current block is P. C It is expressed as P N Go P C When belonging to the same PU (because they contain the same motion information), OBMC is P N may not be performed from. Otherwise, P N All pixels of P C can be added to the same pixel of P. That is, P N 4 rows / columns of P C can be added to P. The weighting factors {1 / 4, 1 / 8, 1 / 16, 1 / 32} are N , and the weighting factors {3 / 4, 7 / 8, 15 / 16, 31 / 32} are P C can be used. An exception is small MC blocks (i.e., CU size is 8×4, 4×8, or CU is coded in SbTMVP mode), in which case P N Only two rows / columns of P C can be added to P. In this case, the weighting factors {1 / 4, 1 / 8} are P N , and the weighting factors {3 / 4, 7 / 8} can be used for Pc. P generated based on the motion vectors of vertically (horizontally) neighboring sub-blocks. N About, PN Pixels in the same row (column) of P are weighted by the same factor. C can be added to.
[0285] Local Illumination Compensation (LIC)
[0286] LIC is an inter-prediction technique for modeling the local illumination change between the current block and the predicted block as a function of the change between the current block template and the reference block template. The parameters of this function can be expressed as a scaling factor α and an offset β that form a linear equation: α*p[x]+β, which compensates for the illumination change, where p[x] is the reference sample pointed to by the MV at position x in the reference picture. When wrap-around motion compensation is enabled, the MV can be clipped considering the wrap-around offset. Since α and β can be derived based on the current block template and the reference block template, no signaling overhead is required for them other than signaling the LIC flag to indicate the use of LIC in AMVP mode.
[0287] LIC can be used in inter CUs with the following aspects:
[0288] - Intra-neighbor samples can be used in LIC parameter derivation.
[0289] - LIC can be disabled in blocks with less than 32 luma samples.
[0290] - For both non-sub-block and affine modes, LIC parameter derivation can be performed based on template block samples corresponding to the current CU instead of partial template block samples corresponding to the first upper left 16×16 unit.
[0291] - Samples of a reference block template can be generated using block MV and MC without rounding them to integer-pel resolution (or precision).
[0292] For bidirectional prediction inter-CUs, two sets of LIC parameters can be derived separately for L0 and L1 prediction samples. An iterative method can be applied to derive the L0 and L1 LIC parameters. Specifically, the L0 LIC parameters can first be derived by minimizing the difference between the L0 template prediction T0 and the template T, and the samples of T can be updated by subtracting the corresponding samples of T0. Then, the L1 parameters can be computed to minimize the difference between the L1 template prediction T1 and the updated template. Finally, the L0 parameters can be re-tuned in the same manner.
[0293] Below, the signaling and decoding process for each tool will be described when an intra mode exists as a multiple reference block. In this disclosure, the presence of multiple reference blocks is described as a case where at least one additional reference block exists in addition to a regular reference block (or regular prediction block), and the multiple reference blocks are described as meaning multiple additional reference blocks.
[0294] In one embodiment, when an intra mode exists as a multiple reference block, the signaling condition of the transform-related flag (i.e., cu_coded_flag) that determines whether the transform and residual signals are included may be changed. When a specific condition is satisfied, cu_coded_flag may be signaled, and when the specific condition is not satisfied, the value of cu_coded_flag may be inferred as '1' or '0'. Although expressed as signaling in this document, it is not limited thereto and may be expressed as parsing or deriving, etc. For example, in terms of encoding, it may be expressed as signaling, etc., and in terms of decoding, it may be expressed as parsing or deriving, etc. Parsing in the present disclosure may also be expressed as deriving or obtaining, etc.
[0295] When the current block is in INTER or IBC mode and multiple reference blocks exist, the signaling condition of cu_coded_flag can be the number of MH-INTRA prediction modes. Here, the number of MH-INTRA prediction modes can be the number of intra prediction modes existing in the multiple reference blocks. When the number of MH-INTRA prediction modes is 0, cu_coded_flag is signaled, and when the number of MH-INTRA prediction modes is one or more, cu_coded_flag can be inferred to have a value of 1.
[0296] When the current block is in inter or IBC mode and multiple reference blocks exist, the signaling condition for cu_coded_flag can be the block size. When the block size satisfies a specific condition, cu_coded_flag is signaled, and otherwise, cu_coded_flag is inferred to be '1'.
[0297] If the current block is in intra mode and multiple reference blocks exist, and a specific condition is satisfied, cu_coded_flag may be signaled instead of being inferred as '1'. In this case, the specific condition may be the number of MH-INER or MH-IBC blocks. If the number of MH-INER or MH-IBC blocks is greater than 0, cu_coded_flag may be signaled.
[0298] When the current block is in intra mode and multiple reference blocks exist, the signaling condition of cu_coded_flag can be the size of the block.
[0299] In one embodiment, when an intra mode exists as a multiple reference block, a boundary strength (BS) determination method in a deblocking filter process may be modified and applied. When each of the current block or adjacent blocks includes one or more MH-INTRA blocks, BS may be assigned a value of 2. In the present embodiment, BS may be assigned a value between 0 and 2. In various embodiments, when it is an intra mode or a CIIP mode, BS may have a value of 2, or may be applied in an extended range of values between 0 and 3. For example, BS may be assigned a value of 3 when it is an intra mode, and a value of 2 when it is a combined mode. Here, the combined mode may be a CIIP mode. In various embodiments, the combined mode may refer to a mode in which a regular block is an inter or IBC mode and includes MH-INTRA as a multiple reference block. In various embodiments, the combined mode may refer to a mode in which a regular block is an intra mode and includes MH-INTER or MH-IBC as a multiple reference block.
[0300] In one embodiment, when an intra mode exists as a multiple reference block, the Sub-Block Transform (SBT) signaling condition may be modified and applied. For example, when an MH-INTRA prediction block exists, SBT information may not be signaled. In this case, the number of MH-INTRA blocks may only include signaled MH-INTRA blocks.
[0301] In one embodiment, when LIC is applied to the current block and multiple reference blocks exist, signaled multiple reference blocks may not be allowed. In particular, intra blocks may not be allowed as multiple reference blocks.
[0302] When LIC is applied to the current block, LIC parameters can be derived and applied to multiple reference blocks. At this time, additional LIC flag signaling may not be required, and weight information for the multiple reference blocks may not be included. When weight information is not included, a default weight value may be used for weighted summation with the regular block. Here, the default weight value may have different values depending on the mode of the multiple reference blocks.
[0303] When LIC is applied to the current block, whether LIC is applied for multiple reference blocks can be determined based on the difference between the LIC parameters of the current block and the LIC parameters of the multiple reference blocks. In the process of deriving the LIC parameters, the template area for calculating the LIC parameters of the regular block can be different from the template area for calculating the LIC parameters of the multiple reference blocks. When multiple reference blocks exist, the LIC of the current block can be restricted if the signaling information of the multiple reference blocks takes precedence over the LIC. Whether LIC is applied can be applied only to MH-INTRA.
[0304] In one embodiment, when OBMC is applied to the current block and multiple reference blocks exist, signaled multiple reference blocks may not be allowed. In particular, intra blocks may not be allowed as multiple reference blocks.
[0305] When OBMC is applied to the current block, weight information for multiple reference blocks may not be included. When weight information is not included, default weight values may be used for weighted summation with regular blocks. The default weights may have different values depending on the mode of the multiple reference blocks.
[0306] When multiple reference blocks exist, the OBMC of the current block may be limited if the signaling information of the multiple reference blocks takes precedence over the OBMC. The application of OBMC may be limited to MH-INTRA.
[0307] When multiple reference blocks exist, OBMC at CU boundaries is limited, and OBMC at the sub-block level can be maintained.
[0308] In one embodiment, when an intra mode exists as a multiple reference block, LFNST can be considered as follows. When a regular block is an inter or IBC mode and multiple reference blocks exist, the selection (or application) of the LFNST kernel can be applied as follows to efficiently consider the characteristics of the residual signal.
[0309] Specifically, if all of the multiple reference blocks are intra modes, or if they contain more than one intra mode, a representative mode is determined based on the directionality of each intra mode, and an LFNST kernel based on the mode may be used. If the directionality of each intra mode is inconsistent, the LFNST kernel corresponding to the intra mode of the first multiple reference block may be used. Alternatively, if the directionality of the modes is inconsistent, LFNST may not be applied, or a kernel of the planar mode may be used.
[0310] Additionally, if the multi-reference block is in inter mode or IBC mode, LFNST may not be applied or a planar mode kernel may be used.
[0311] Additionally, if a multi-reference block contains one intra mode and an inter / IBC mode, the LFNST kernel can be selected based on the given intra mode.
[0312] The above-described method can be similarly applied when a regular block is in intra mode and multiple reference blocks exist. If all of the multiple reference blocks are in intra mode or include more than one intra mode, an LFNST kernel according to the intra mode of the regular block can be used.
[0313] Alternatively, if the intra mode of a regular block and the direction of each intra mode (horizontal, vertical, or no angular) are similar, a representative intra mode is determined and the LFNST kernel can be used based on that mode. If the direction of each intra mode is inconsistent, the LFNST kernel according to the intra mode of the regular block can be used, LFNST may not be applied, or a kernel of the planar mode may be used.
[0314] Additionally, if all multi-reference blocks are in inter or IBC mode, the LFNST kernel according to the intra mode of the regular block may be used, LFNST may not be applied, or the kernel of the planar mode may be used.
[0315] Additionally, if a multi-reference block includes an intra mode and an inter / IBC mode, the LFNST kernel according to the intra mode of the regular block may be used. Alternatively, if the directions of the intra mode of the regular block and the intra mode of the multi-reference block are similar, a representative intra mode is determined and the LFNST kernel is used based on that mode. Otherwise, LFNST may not be applied or a kernel of the planar mode may be used.
[0316] Alternatively, if the direction of the intra mode of a regular block and the intra mode of a multi-reference block are similar, a kernel according to the intra mode of the regular block may be used, and if not, a kernel of the planar mode may be used.
[0317] Below, we describe the interaction with other tools when the MH-INTRA mode exists as a multi-reference block. In particular, the presence of the MH-INTRA mode may indicate a relatively high residual signal, so the presence of the MH-INTRA mode may be considered during interaction.
[0318] Skip mode follows the signaling and derivation method for motion information in merge mode, but does not signal residual signals. As described above, intra mode, unlike inter mode, contains a large amount of residual signals. Therefore, intra mode, as a multi-reference block, can also be applied to blocks with relatively large residual signals.
[0319] FIG. 17 illustrates an example of a coding unit parsing method depending on whether multiple reference blocks are applied and whether transformation and residual signal information are transmitted accordingly according to one embodiment.
[0320] In Fig. 17, the correlation between whether multiple reference blocks are applied and whether transformation and residual signal information are transmitted in the process of parsing a coding unit (coding_unit()) can be shown.
[0321] Referring to Figure 17, the process of parsing a coding unit may begin with the process of parsing the prediction mode. That is, the type of prediction mode may be determined. In this case, whether the prediction mode is intra mode or inter mode may be determined (or determined).
[0322] In intra mode, multiple reference blocks may not be applied (or allowed) to the block. In other words, multiple reference blocks may not exist for the block. Due to the characteristics of intra mode with a lot of residual signals, the transformation-related flag, i.e., cu_coded_flag information, may not be signaled and may always be inferred as having a value of 1. In this case, cu_coded_flag with a value of 1 may indicate the presence of transformation information and residual signal information.
[0323] Otherwise, when it is not intra mode but skip mode, multiple reference blocks are not applied, and due to the nature of skip mode that does not signal residual signals, the cu_coded_flag information is not signaled and can always be inferred as a value of 0.
[0324] Otherwise, if it is neither intra mode nor skip mode, inter (AMVP) mode and merge mode can be distinguished through general_merge_flag. In merge mode, multiple reference blocks can be applied, and in this case, the multiple reference blocks can include intra mode and inter (AMVP, merge) mode. Since skip and merge modes are distinguished by the presence or absence of a residual signal, merge mode implies the presence of a residual signal, and accordingly, cu_coded_flag can also be inferred as a value of 1 without being signaled.
[0325] Finally, if general_merge_flag is used to distinguish between inter (AMVP) mode and intra (AMVP, merge) mode, there may be multiple reference blocks, and in this case, the multiple reference blocks may include intra mode and inter (AMVP, merge) mode. In addition, the multiple reference blocks may have signaled mode and inherited mode, but the type and number of inherited modes cannot be known during the syntax parsing process. Therefore, when the number of signaled multiple reference blocks is numMHP, if the number of numMHP is greater than 0, it is determined that the block has a large amount of residual signal and thus a large amount of information to be signaled, and cu_coded_flag may not be signaled and may be inferred as having a value of 1. When the number of numMHP is 0, cu_coded_flag may be signaled as a value of 0 or 1.
[0326] More specifically, referring to FIG. 17, the type of prediction mode for the current block is determined, and if the prediction mode is intra mode, multiple reference blocks may not be applied (multiple reference blocks not applied). In this case, cu_coded_flag may be inferred to have a value of 1.
[0327] If the prediction mode is not intra mode, a flag (cu_skip_flag) indicating whether it is skip mode can be parsed to determine whether the prediction mode is skip mode.
[0328] If the prediction mode is not skip mode, a flag (general_merge_flag) indicating whether it is inter or merge mode can be parsed to determine whether the prediction mode is inter or merge mode.
[0329] If the prediction mode is Merge mode, the block may be subject to multiple reference blocks (Multiple Reference Block Application). At this time, the multiple reference blocks may include Intra mode and Inter (AMVP, MERGE) modes. Since Skip mode and Merge mode are distinguished by the presence or absence of a residual signal, in Merge mode, the presence of a residual signal may infer that cu_coded_flag is not signaled and is set to '1'.
[0330] If the prediction mode is inter (AMVP) mode, the block may have multiple reference blocks. In this case, the multiple reference blocks may include intra mode and inter (AMVP, MERGE) mode. In addition, the multiple reference blocks may have signaled modes and inherited modes. However, since the number of types of inherited modes cannot be known during the syntax parsing process, if the number of signaled multiple reference blocks (numMHP) is greater than 0, the block may be judged as a block with a large amount of information to be signaled due to a large amount of residual signals. In this case, cu_coded_flag may not be signaled and may be inferred as having a value of '1'. If numMHP is 0, cu_coded_flag may be signaled as having a value of '0' or '1'.
[0331] Below we describe how to parse cu_coded_flag based on specific parsing conditions when multiple reference blocks are applied.
[0332] FIG. 18 illustrates an example of a coding unit parsing method depending on whether multiple reference blocks are applied and whether specific conditions are satisfied according to one embodiment.
[0333] As described above, the prediction mode is divided into intra, skip, merge, and inter (AMVP) modes, and depending on each mode, whether multiple reference blocks are supported (or applied) can be determined. In addition, for blocks that are considered to have a lot of residual signals, cu_coded_flag may not be signaled and may be inferred as a value of 1. For blocks that are considered to have little residual signals, cu_coded_flag may not be signaled and may be inferred as a value of 0.
[0334] When a specific condition is satisfied, cu_coded_flag can be signaled, and when not satisfied, it can be inferred to have a value of 1. For example, when the number of intra prediction modes among signaled multiple reference blocks is numMHIntra, the value of cu_coded_flag can be determined by considering numMHIntra. That is, the specific condition of Fig. 18 can be "if(numMHIntra == 0)". When the condition is satisfied, cu_coded_flag can be signaled, and when the condition is not satisfied, cu_coded_flag can be not signaled and inferred to have a value of 1.
[0335] As another example, the specific condition can be "if(width×height > 1024)". That is, when the block size (width×height) satisfies the specific condition, cu_coded_flag can be signaled, and when the condition is not satisfied, cu_coded_flag can be inferred to be 1. This is because the smaller the block size, the more likely it is to contain a spurious signal (since it keeps splitting because there are no similar ones). The above two cases can be considered together, and in addition to the block size, the ratio of the width and height of the block can be considered.
[0336] More specifically, referring to FIG. 18, the prediction mode type of the current block can be determined. In this case, it can be determined whether the prediction mode is intra mode or inter mode.
[0337] If the prediction mode is intra mode, multiple reference blocks may not be applied (or allowed) for the block. In other words, multiple reference blocks may not exist for the block. Due to the nature of intra mode, which involves a large amount of residual signals, the transform-related flag (i.e., cu_coded_flag information) is not signaled and can always be inferred as 1.
[0338] If the prediction mode is not intra mode, a flag (cu_skip_flag) indicating whether it is skip mode can be parsed to determine whether the prediction mode is skip mode.
[0339] If the prediction mode is not skip mode, a flag (general_merge_flag) indicating whether it is inter or merge mode can be parsed to determine whether the prediction mode is inter or merge mode.
[0340] If the prediction mode is merge mode, the block may be subject to multiple reference blocks. In this case, the multiple reference blocks may include intra mode and inter (AMVP, MERGE) mode.
[0341] Since skip mode and merge mode are distinguished by the presence or absence of a residual signal, in merge mode, cu_coded_flag is not signaled and can be inferred to have a value of '1' when a residual signal exists.
[0342] If the prediction mode is Inter (AMVP) mode, the block may have multiple reference blocks. In this case, the multiple reference blocks may include Intra mode and Inter (AMVP, MERGE) mode.
[0343] When a specific condition is satisfied, cu_coded_flag may be signaled, and when the specific condition is not satisfied, cu_coded_flag may be inferred to have a value of '1'. For example, the number of intra prediction modes (numMHIntra) among the signaled multiple reference blocks may be considered to determine the value of cu_coded_flag. In this case, the specific condition may include a case where the number of intra prediction modes is 0 (if(numMHIntra == 0)). If the specific condition is satisfied (i.e., if the number of intra prediction modes is 0 (numMHIntra == 0)), cu_coded_flag may be signaled, and when the specific condition is not satisfied (i.e., if the number of intra prediction modes is not 0), cu_coded_flag may not be signaled and may be inferred to have a value of '1'.
[0344] As another example, the specific condition may be the block size. In this case, the specific condition may include if the block size (width×height) is greater than the threshold size (1024) (if(width×height > 1024)). If the specific condition is met (i.e., the block size is greater than 1024), cu_coded_flag may be signaled, and if the specific condition is not met (i.e., the block size is less than or equal to 1024), cu_coded_flag may be inferred to have a value of '1'.
[0345] Since the smaller the block size, the more residual signals are included, the specific conditions described above can be considered together, and in addition to the block size, the ratio of the width and height of the block can be considered.
[0346] The above-described method can be applied equally to IBC mode. In other words, even when IBC mode is applied to a regular block, MH-INTRA, MH-INTER, and MH-IBC blocks can be applied. Furthermore, the cu_coded_flag parsing / inference process described above can be applied depending on whether the intra mode is applied as a multi-reference block.
[0347] Below, we describe a method of parsing / inferring cu_coded_flag based on specific conditions when the prediction mode of the current block is intra mode.
[0348] FIG. 19 illustrates an example of a coding unit parsing method depending on whether a specific condition is satisfied when applying multiple reference blocks according to one embodiment.
[0349] When the prediction mode of the current block (CU) is intra mode, multi-reference blocks such as MH-INTRA, MH-INTER, and MH-IBC blocks can be applied. When multi-reference blocks are applied, if certain conditions are met, the existing rule of not signaling cu_coded_flag and inferring it as '1' can be changed to signaling cu_coded_flag.
[0350] When it is an intra block, a specific condition may be the number of signaled multiple reference blocks. Even if it is an intra block, cu_coded_flag may have a value of 0 when the residual signal is sufficiently reduced from multiple reference blocks. Therefore, when defining the number of blocks having an Inter or IBC mode among the signaled multiple reference blocks as numMHInter, the value of cu_coded_flag may be determined by considering the number. That is, the specific condition in Fig. 19 may be "if(numMHInter > 0)". When the condition is satisfied, cu_coded_flag may be signaled, and when the condition is not satisfied, cu_coded_flag may not be signaled and may be inferred to have a value of 1.
[0351] As another example, the specific condition can be "if(width×height>1024)". That is, when the block size (width×height) satisfies the specific condition, cu_coded_flag can be signaled, and when the condition is not satisfied, cu_coded_flag can be inferred to be 1. This is because it can be assumed that the smaller the block size, the more residual signals it contains. The above two cases can be considered together, and in addition to the block size, the ratio of the width and height of the block can be considered.
[0352] More specifically, referring to FIG. 19, if the current block is in intra mode and multiple reference blocks are applied, cu_coded_flag may be parsed if a specific condition is satisfied, and cu_coded_flag may be inferred to have a value of '1' if the specific condition is not satisfied. In this case, the specific condition may be the number of signaled multiple reference blocks. This is because cu_coded_flag may have a value of '0' when residual signals from multiple reference blocks are sufficiently reduced even if the current block is an intra block. Accordingly, the number of blocks having inter or IBC mode among the signaled multiple reference blocks (numMHInter) may be considered to determine the cu_coded_flag value. In this case, the specific condition may include a case where the number of signaled multiple reference blocks is greater than 0 (if(numMHInter > 0)). If a certain condition is satisfied (i.e., the number of signaled multi-reference blocks is greater than 0), cu_coded_flag is signaled, and if the certain condition is not satisfied (i.e., the number of signaled multi-reference blocks is 0), cu_coded_flag is not signaled and can be inferred as having a value of '1'.
[0353] As another example, the specific condition may be the size of a block. In this case, the specific condition may include if the block size (width×height) is greater than the threshold size (1024) (if(width×height>1024)). If the specific condition is met (i.e., the block size is greater than 1024), cu_coded_flag may be signaled, and if the specific condition is not met (i.e., the block size is less than or equal to 1024), cu_coded_flag may be inferred to have a value of '1'.
[0354] Since the smaller the block size, the more residual signals are included, the specific conditions described above can be considered together, and in addition to the block size, the ratio of the width and height of the block can be considered.
[0355] Below, we describe the interoperability with other tools when multiple reference blocks exist. In particular, the MH-INTRA mode can be considered as a condition for determining the boundary strength (BS) during the deblocking filter process.
[0356] The deblocking filter process may include determining the length of filtering to be applied to the boundary portions of a CU, TU, or sub-block, determining the strength of the filter to be applied to each boundary portion, determining the length and coefficients of the final filter by determining the amount of change in each sample and whether it is an actual edge, and applying the filtering. Among these, the determination of the strength of the boundary portion will be described.
[0357] FIG. 20 illustrates an example of a method for determining boundary strength when applying multiple reference blocks according to one embodiment.
[0358] When the current block is 'Q' and the adjacent block is 'P', the BS is first determined based on the prediction mode type of each block, and then the edge of the transform block (TB), the presence or absence of transform coefficients, and the differential value of the motion vector are considered to be the final BS value. Since the intra mode contains a relatively large amount of residual signals, it can be judged to have a large discontinuity between blocks, and thus the BS value can generally be set large. Similarly, the CIIP mode also includes intra prediction blocks, and therefore it can be judged to have block characteristics similar to the intra mode, and thus the BS value can be set large.
[0359] In the present disclosure, the fact that a multi-reference block includes a block that is MH-INTRA indicates that the block contains a large amount of residual signals and thus can be judged as a block for which additional compression effects can be expected due to the intra-prediction block. Accordingly, the block containing MH-INTRA can be judged as an intra block and assigned a large BS value.
[0360] When the current block (Q) and the adjacent block (P) are in intra mode, or in CIIP mode, or satisfy numMHIntra > 0, BS can be assigned as 2. In this case, numMHIntra can represent the number of blocks in intra mode among the signaled multiple reference blocks as defined above. In addition, as a changed definition, numMHIntra can represent the number of MH-INTRA blocks that the block has. This number can include not only the signaled MH-INTRA but also the inherited MH-INTRA mode.
[0361] Additionally, BS can be further refined and defined as values from 0 to 3. In this case, BS can be set to have a value of 3 for intra mode, and BS can be set to have a value of 2 for combined mode. Combined mode can represent one of the following:
[0362] - CIIP mode
[0363] - GPM-INTRA mode
[0364] - A mode in which multiple reference blocks are combined when INTER / IBC mode is a regular block.
[0365] - Mode that includes MH-INTRA when INTER / IBC mode is a regular block
[0366] At this time, MH-INTRA may mean the number of signaled MH-INTRAs, and may mean the number including the inherited MH-INTRA mode.
[0367] - A mode in which multiple reference blocks are combined when the INTRA mode is a regular block.
[0368] - Mode that includes MH-INTER and MH-IBC when INTRA mode is a regular block
[0369] At this time, MH-INTER and MH-IBC may mean the number of signaled multiple reference blocks, including the number of inherited modes.
[0370] More specifically, referring to FIG. 20, it is determined whether BDPCM (Block-based Delta Pulse Code Modulation) is applied to the current block (Q) and the adjacent block (P).
[0371] If BDPCM is not applied to the current block (Q) and the adjacent block (P), it can be determined whether the current block (Q) and the adjacent block (P) are in intra or CIIP mode. If the current block (Q) and the adjacent block (P) are in intra or CIIP mode, BS can be set to a value of 2 (BS = 2).
[0372] When BDPCM is applied to the current block (Q) and adjacent blocks (P), BS can be set to a value of 0 (BS = 0).
[0373] If the current block (Q) and the adjacent block (P) are not in intra or CIIP mode, it can be determined whether they are boundaries of transform blocks and whether the current block (Q) and the adjacent block (P) have transform coefficients. If they are boundaries of transform blocks and the current block (Q) and the adjacent block (P) have transform coefficients, BS is set to a value of 1 (BS = 1), otherwise it can be determined whether the current block (Q) and the adjacent block (P) are in different modes. If the current block (Q) and the adjacent block (P) are in different modes, BS is set to a value of 1 (BS = 1), otherwise it can be determined whether the current block (Q) and the adjacent block (P) are in IBC mode and have different block vectors (BV). If the current block (Q) and the adjacent block (P) are in IBC mode and have different BVs, BS is set to a value of 1 (BS = 1), otherwise it can be determined whether the current block (Q) and the adjacent block (P) are in INTER mode and have different reference pictures or have different motion vectors (MVs). If the current block (Q) and the adjacent block (P) are in INTER mode and have different reference pictures or have different motion vectors (MVs), BS is set to a value of 1 (BS = 1), otherwise it can be determined whether the current block (Q) and the adjacent block (P) are in INTER mode and have different motion vectors greater than 1 / 2 luma sample. If the current block (Q) and the adjacent block (P) are in INTER mode and have different motion vectors greater than 1 / 2 luma sample, BS is set to a value of 1 (BS = 1), otherwise BS can be set to a value of 0 (BS = 0).
[0374] Below, we describe the interaction with other tools when multiple reference blocks exist. In particular, multiple reference conditions can be considered as SBT application conditions.
[0375] As shown in Table 9 below, the syntax table in Table 9 can represent the SBT part in the syntax structure of coding unit(). When it is not an intra mode, a transformation in sub-block units can be applied. As shown in the syntax table in Table 9 below, when it is a CIIP and GPM-INTRA mode with an intra characteristic, SBT may not be applied. Here, the GPM-INTRA mode means a mode in which an angle-based prediction block is split, but one of the two prediction blocks includes an intra prediction block.
[0376] In the present disclosure, since the MH-INTRA prediction block also includes intra features, it can be changed so that whether or not SBT is applied can be determined based on the presence or absence of MH-INTRA.
[0377]
[0378] More specifically, SBT may not be applied when numMHIntra > 0 is satisfied. That is, SBT-related syntax information may be included when numMHIntra == 0. In this case, numMHIntra may indicate the number of prediction blocks that are intra mode among the signaled multiple reference blocks as defined above.
[0379] Below, we describe the behavior of multiple reference blocks when LIC is applied to the current block. LIC refers to a method for generating a prediction block using parameters α and β derived from the difference values between pixels in templates adjacent to the current block and each reference block. In other words, when a reference sample is p[x], the prediction sample of the current block can be derived as α*p[x]+β.
[0380] Applying LIC to the current block may indicate a local lighting change between the reference block in the reference picture and the current block. In this case, due to the template-based nature of LIC, variations in adjacent samples as well as the predicted block within the reference picture can be considered when generating the final predicted block. LIC can be applied in both inter- and inter-block block-by-block (IBC) modes.
[0381] Below, we describe a modified application method of multiple reference blocks when LIC is applied.
[0382] - Multiple reference blocks may not be allowed to be signaled when LIC is applied to the current block. In particular, intra blocks as multiple reference blocks may not be allowed.
[0383] - When LIC is applied to the current block, inherited multi-reference blocks may not be allowed. In particular, intra blocks as inherited multi-reference blocks may not be allowed.
[0384] - When LIC is applied to the current block, LIC parameters can be derived and applied to multiple reference blocks. As shown in Equation 9 below, when LIC is applied to a regular block p0[x], the regular block to which LIC is applied can be defined as p0'[x], and when LIC is applied to a multiple reference block p2[x], the multiple reference block to which LIC is applied can be defined as p2'[x]. Using these, the final prediction block p[x] can be derived. In other words, the method for deriving the final prediction block can be expressed as Equation 9 below.
[0385] [Formula 9]
[0386]
[0387] In Equation 9, the process of deriving the final prediction block is explained as an example when applied to a unidirectional prediction block, but this is for convenience of explanation and is not limited thereto, and the same / similar method can be applied to a bidirectional prediction block as well.
[0388] - When LIC is applied to the current block, LIC parameters may be derived and applied to multiple reference blocks. At this time, signaling of an additional LIC flag may not be required, and weight information of the multiple reference blocks may not be included. When weight information of the multiple reference blocks is not included, a default value may be used as the weight for weighted summation between the regular (prediction) block and the multiple reference blocks. At this time, the default value may be equal weight, but a different default value may be set depending on the mode type of the multiple reference blocks. For example, when the multiple reference blocks are in inter mode, the default value may be changed to equal weight (16 / 32) and applied, and when the multiple reference blocks are in intra mode, the default value may be changed to (14 / 32).
[0389] - When LIC is applied to the current block, the weight information candidates for the intra block as a multi-reference block may change. Since LIC parameters are derived using a template, information from adjacent blocks may be partially reflected in the LIC parameters. For example, weight information defined as {1 / 4, -1 / 8} for a multi-reference block can be changed and defined as {1 / 16, 1 / 32} and used.
[0390] - When LIC is applied to the current block, if the difference between the parameter α (α0) of the regular block and the LIC parameter α (α2) of the multi-reference block is less than the threshold value (T0), the multi-reference block can be applied. In particular, this can be applied to the inherited multi-reference block. When the inherited multi-reference block is in Inter or IBC mode, the multi-reference block may not be applied to the current block under a specific condition. Here, the specific condition may include a case where the absolute value of the difference between the parameter α (α0) of the regular block and the LIC parameter α (α2) of the multi-reference block is less than the threshold value (T0) (|α0 - α2| < T0). This can be applied to the parameter β in the same / similar manner. If the difference between the parameters β of the two blocks is less than the threshold value (T1), the multi-reference block can be applied. In this case, the specific condition may include that the absolute value of the difference between the parameter β (β0) of the regular block and the LIC parameter β (β2) of the multi-reference block is less than a threshold value (T1) (|β0 - β2| < T1).
[0391] - When LIC is applied to the current block, the weight of the intra block as a multi-reference block can be set to a larger value. Due to the application of LIC, the adjacent samples of the current block may have higher accuracy than the adjacent samples of the inter / IBC prediction block. In this case, if the weight for MH-INTRA in a block without LIC is 16 / 32, the weight for MH-INTRA in a block with LIC applied can be assigned a larger value, such as 20 / 32. This can be applied in a transformed form, such as only when the intra block is an inherited multi-reference block.
[0392] - When LIC is applied to the current block, the template area of the regular reference block (p0) and the template area of the multi-reference block (P2) may be different. This will be explained with reference to Fig. 21.
[0393] FIG. 21 illustrates an example of a template area of a regular reference block and a template area of a multiple reference block according to one embodiment.
[0394] Referring to Fig. 21, when the template area used for parameter derivation of p0 is limited to the upper side of the regular block (p0[x]), a modification is possible, such as when the template area used for parameter derivation of p2 is limited to the left side of the multi-reference block (p2[x]).
[0395] - When multiple reference blocks exist, if the signaling information of the multiple reference blocks takes precedence over the LIC, the LIC for the current block may be restricted. This may vary depending on the type of the multiple reference blocks. For example, if the multiple reference blocks include MH-INTRA, the LIC of the current block may be restricted.
[0396] Below, we describe the operation of multiple reference blocks when On-Block Multi-Modulation (OBMC) is applied to the current block. OBMC is a method for removing discontinuities at block edges that occur when each predicted block compensates for motion using its motion vector. For a block to which OBMC is applied, if the predicted block obtained using the motion vectors of adjacent blocks and the predicted block obtained using the motion vector of the current block have a different motion vector from the adjacent blocks through a weighted sum, the inter-block discontinuities can be effectively removed. OBMC can be applied not only in Inter mode but also in IBC mode.
[0397] In this disclosure, a modified application method of multiple reference blocks is described when OBMC is applied to the current block.
[0398] - When OBMC is applied to the current block, multiple reference blocks signaled may not be permitted. In particular, intra blocks as multiple reference blocks may not be permitted. Since intra blocks use a prediction mode derived from adjacent samples, inter-block discontinuities can be relatively eliminated.
[0399] - When OBMC is applied to the current block, inherited multiple reference blocks may not be permitted. In particular, intra blocks as multiple reference blocks may not be permitted. Since intra blocks use a prediction mode derived from adjacent samples, inter-block discontinuities can be relatively eliminated.
[0400] - When OBMC is applied to the current block, weight information for multiple reference blocks may not be included. When weight information for multiple reference blocks is not included, the weights for weighted sum between the regular block (i.e., regular prediction block) and the multiple reference blocks may use default values. In this case, the default values may be the same weight, but different default values may be set depending on the mode type of the multiple reference blocks. For example, when the multiple reference blocks are in inter mode, the default values may be changed to the same weight (16 / 32), and when they are in intra mode, the default values may be changed to (14 / 32).
[0401] When OBMC is applied to the current block, the candidates for the weight information of the intra block as a multi-reference block may change. Applying OBMC can eliminate some discontinuities with adjacent samples. For example, the weight information defined as {1 / 4, -1 / 8} for a multi-reference block can be redefined and used as {1 / 16, 1 / 32}, etc.
[0402] - When multiple reference blocks exist, OBMC for the current block may be restricted if the signaling information of the multiple reference blocks takes precedence over OBMC. Alternatively, OBMC may be modified and applied to be restricted when multiple reference blocks exist and an intra block is included.
[0403] - When multiple reference blocks exist, if the signaling information of the multiple reference blocks is given priority over the OBMC, the CU unit OBMC of the current block may be limited and the sub-block unit OBMC may be maintained.
[0404] Below, we describe a method for selecting an LFNST kernel when LFNST can be applied to multiple reference blocks. In the case of multiple reference blocks, one or more intra modes may exist in the reference block and can be considered simultaneously with the intra mode. However, in some cases, the characteristics of the residual signal may differ from the characteristics of the intra mode defined in LFNST. Therefore, when a regular block (i.e., a regular reference block) is in inter or IBC mode and multiple reference blocks exist, the characteristics of the residual signal can be efficiently considered by applying the LFNST kernel selection (or application) as described below.
[0405] - If all multi-reference blocks are intra-mode, or contain more than one intra-mode:
[0406] If the direction of each intra mode is similar, a representative intra mode is determined, and the LFNST kernel can be used based on that mode. If the direction of each intra mode is inconsistent, the LFNST kernel corresponding to the intra mode of the first multi-reference block can be used. Alternatively, if the direction of the modes is inconsistent, LFNST may not be applied, or the kernel of the planar mode may be used.
[0407] - If all multi-reference blocks are in Inter / IBC mode:
[0408] LFNST may not be applied, or a kernel in planar mode may be used.
[0409] - When a multi-reference block contains one intra mode and one inter / IBC mode:
[0410] The LFNST kernel can be selected based on the given intra mode.
[0411] In addition, when the regular block is an intra mode and multiple reference blocks exist, the characteristics of the residual signal can be efficiently considered by applying the LFNST kernel selection (or application) as described below.
[0412] - If all multi-reference blocks are intra-mode, or contain more than one intra-mode:
[0413] The LFNST kernel can be used according to the intra mode of the regular block.
[0414] Alternatively, if the intra mode of a regular block and the direction of each intra mode are similar, a representative intra mode is determined, and an LFNST kernel can be used based on that mode. If the direction of each intra mode is inconsistent, an LFNST kernel based on the intra mode of the regular block can be used, or LFNST may not be applied, or a kernel of the planar mode may be used.
[0415] - If all multi-reference blocks are in Inter / IBC mode:
[0416] The LFNST kernel can be used according to the intra mode of the regular block.
[0417] Alternatively, LFNST may not be applied or a planar mode kernel may be used.
[0418] - When a multi-reference block contains one intra mode and one inter / IBC mode:
[0419] The LFNST kernel can be used according to the intra mode of the regular block.
[0420] Alternatively, if the intra mode of a regular block and the intra mode of a multi-reference block have similar directions, a representative intra mode may be determined and the LFNST kernel may be used based on that mode. Otherwise, LFNST may not be applied, or a planar mode kernel may be used.
[0421] Alternatively, if the direction of the intra mode of the regular mode and the intra mode of the multi-reference block are similar, the kernel according to the intra block of the regular block may be used, and if not, the kernel of the planar mode may be used.
[0422] Hereinafter, in the case where an intra block exists as a current block and / or multiple reference blocks, 1) a method for determining whether to parse / infer a transform-related flag, 2) a method for determining a filtering strength, and 3) a method for determining whether to apply a sub-block transform (SBT), will be described in more detail. In addition, below, 4) a method for determining whether multiple reference blocks are allowed when LIC is applied to the current block, 5) a method for determining whether multiple reference blocks are allowed when OBMC is applied to the current block, and 6) a method for determining an LFNST kernel when LFNST is applicable to multiple reference blocks will be described in more detail. The methods described below can be performed in an encoding device (200) and / or a decoding device (300).
[0423] Example 1: A method for determining whether to parse / infer transformation-related flags when an intra block exists as a current block and / or multiple reference blocks.
[0424] If the current block is in inter (AMVP) mode and there are multiple reference blocks in intra mode, whether to parse / infer the transformation-related flag may be determined based on whether the first condition is satisfied. The transformation-related flag is a flag indicating whether the current block includes transformation and residual information, and may be cu_coded_flag. The first condition is a condition for determining whether to parse / infer the transformation-related flag, and includes a condition based on the number of multiple reference blocks (numMHP), the number of reference blocks in intra mode among the signaled multiple reference blocks (numMHIntra), or the block size (i.e., the size of the CU). For example, the first condition may include a case where numMHP is 0 (if(numMHP == 0)), a case where numMHIntra is 0 (if(numMHIntra == 0)), and / or a case where the block size (width×height) is greater than a specific value (if(width×height) > 1024). The specific value may be, but is not limited to, 1024, and may be any value at which the residual signal can be determined as a small block. In various embodiments, the first condition may further include a condition based on the ratio of the width and height of the block.
[0425] If the first condition is satisfied (i.e., numMHP is 0), cu_coded_flag can be parsed, and if the first condition is not satisfied (i.e., numMHP is greater than 0), cu_coded_flag can be inferred to have a value of 1. In this case, a multi-reference block may have a signaled multi-reference block and an inherited multi-reference block. However, since the type and number of these cannot be known during the syntax parsing process, if the number of signaled multi-reference blocks is greater than 0, the current block may be determined to be a block with a large amount of residual signal and thus a block with a large amount of information to be signaled. If the current block is determined to be a block with a large amount of residual signal, cu_coded_flag is inferred to have a value of 1 without signaling, and if the number of signaled multi-reference blocks is 0, cu_coded_flag can be parsed to have a value of 0 or a value of 1.
[0426] As another example, if the first condition is satisfied (i.e., numMHIntra is 0), the current block is judged to be a block with little residual signal, and cu_coded_flag can be parsed. If the first condition is not satisfied (i.e., numMHIntra is greater than 0), the current block is judged to be a block with a lot of residual signal, and cu_coded_flag can be inferred to have a value of 1. In other words, cu_coded_flag is not signaled and is inferred to have a value of 1.
[0427] As another example, if the first condition is satisfied (i.e., the width×height value is greater than 1024), cu_coded_flag can be parsed, and if the first condition is not satisfied (i.e., the width×height value is less than or equal to 1024), cu_coded_flag can be inferred to have a value of 1.
[0428] In various embodiments, the conditions included in the first condition may be considered together. For example, the condition if(numMHP == 0), the condition if(numMHIntra == 0)), and / or the condition if(width×height > 1024) may be considered together, and whether or not to parse / infer conversion-related flags may be determined based on whether these conditions are satisfied.
[0429] In various embodiments, if the current block is in merge mode and there are multiple reference blocks, cu_coded_flag may be inferred to have a value of 1 without signaling. Since the current block contains a residual signal when in merge mode, cu_coded_flag may be inferred to have a value of 1 without signaling.
[0430] In various embodiments, if the current block is in skip mode, no residual signal is included, so cu_coded_flag can be inferred to be 0 without signaling.
[0431] In various embodiments, if the current block is in intra mode, there are no multiple reference blocks, so cu_coded_flag can be inferred to have a value of 1 without signaling.
[0432] In various embodiments, a method of parsing / inferring transformation-related flags when multiple reference blocks exist and the current block is an intra block is described.
[0433] If the current block is an intra block and there are multiple reference blocks, whether to parse / infer the transformation-related flags may be determined based on a second predetermined condition. In other words, in the default method, if the current block is an intra block, cu_coded_flag is inferred to have a value of 1 without signaling, but in various embodiments, whether to parse cu_coded_flag may be determined based on whether a second condition is satisfied. Here, the second condition includes a condition based on the number of blocks in Inter / IBC mode among the signaled multiple reference blocks (numMHInter) or the block size. For example, the second condition may include a case where numMHInter is greater than 0 (if(numMHInter > 0)) and / or a case where the block size (width×height) is greater than a specific value (e.g., 1024) (if(width×height > 1024)). In this case, even if the current block is in intra mode, if multiple reference blocks include blocks in inter mode or IBC mode, the residual signal can be judged to be sufficiently reduced, and thus whether to parse / infer cu_coded_flag can be determined based on this second condition. In various embodiments, the second condition may further include a condition based on the width and height ratio of the block.
[0434] If the second condition is satisfied (i.e., numMHIntra is greater than 0), cu_coded_flag is parsed, and if the second condition is not satisfied (i.e., numMHIntra is 0), cu_coded_flag is not signaled and can be inferred to have a value of 1.
[0435] As another example, if the second condition is satisfied (i.e., the width×height value is greater than 1024), cu_coded_flag is parsed, and if the second condition is not satisfied (i.e., the width×height value is less than or equal to 1024), cu_coded_flag is not signaled and can be inferred as a value of 1. In this case, since a smaller block size may be judged to have more residual signals, if the block size is such that it may be judged to have more residual signals, cu_coded_flag may not be signaled and can be inferred as a value of 1.
[0436] In various embodiments, the two conditions included in the second condition may be considered together. For example, the if(numMHInter > 0) condition and the if(width×height > 1024) condition may be considered together to determine whether to parse / infer cu_coded_flag.
[0437] Example 2: Method for determining filter strength to be used in filtering based on whether multiple reference blocks are intra-mode
[0438] When multiple reference blocks exist, whether the multiple reference blocks are intra mode (MH-INTRA) can be considered as a condition for determining the filter strength during the deblocking filtering process.
[0439] In the filtering process using a deblocking filter, the filter strength (BS) of the boundary portion is first determined according to the prediction mode of each of the current block and the adjacent blocks adjacent to the current block, and the BS value can be finally determined by considering whether the block boundary is a transform block edge, the presence or absence of a transform coefficient, and the difference value of the motion vector.
[0440] If multiple reference blocks are in intra mode, the current block and / or adjacent blocks may be judged to contain a large amount of residual signals, thereby deeming them as blocks for which additional compression effects may be expected. In this case, the current block and / or adjacent blocks containing multiple reference blocks in intra mode may be determined as intra blocks, and the BS value may be determined (or set or assigned) based on this.
[0441] According to embodiments of the present disclosure, a BS value may be determined based on prediction information related to a current block, a predicted block, or multiple reference blocks. For example, the prediction information may include information about a prediction mode applied to the current block, information about a generation method (or generation tool) for generating the predicted block, and / or information about a prediction mode applied to multiple reference blocks. For example, the prediction information may include information indicating whether the CIIP mode is applied to the current block.
[0442] The BS value may be set to a first value when a specific condition is satisfied. The specific condition may include that the current block and / or adjacent blocks are in intra mode, in CIIP mode, or the number of blocks in intra mode among the multiple reference blocks (numMHIntra) is greater than 0. Here, the first value is a relatively maximum value within a specific range, for example, but not limited to, a value of 2 or 3. For example, if the BS value has a value range of 0 to 2, the maximum value may be 2 and the minimum value may be 0. As another example, if the BS value has a value range of 0 to 3, the maximum value may be 3 and the minimum value may be 0. In various embodiments, numMHIntra may be expressed as the number of (reference) blocks in intra mode among the signaled multiple reference blocks or the number of (reference) blocks in intra mode among the inherited multiple reference blocks, in addition to the definition (or meaning) described above.
[0443] When the BS value is subdivided into a range of values from 0 to 3, the BS value may be set to a value of 3 if the current block and / or the adjacent block are in intra mode, and the BS value may be set to a value of 2 if the current block and / or the adjacent block, or the predicted block, are in a combined mode. Here, the combined mode may include the CIIP mode, the GPM-INTRA mode, the mode in which multiple reference blocks are combined when the regular block (i.e., the regular reference block) is in inter / IBC mode, the mode in which a block in intra mode (MH-INTRA) is included among the multiple reference blocks signaled or inherited when the regular block is in inter / IBC mode, the mode in which multiple reference blocks are combined when the regular block is in intra mode, and / or the mode in which a block in inter mode (MH-INTER) and IBC mode (MH-IBC) is included among the multiple reference blocks signaled or inherited when the regular block is in intra mode.
[0444] In various embodiments, it may be determined whether the current block and / or adjacent blocks are in Block-based Delta Pulse Code Modulation (BDPCM) mode, and if the current block and / or adjacent blocks are in BDPCM mode, the BS value may be set to a value of 0. Otherwise, it may be determined whether the current block and / or adjacent blocks are in intra mode, or whether the predicted block is in CIIP mode.
[0445] If the current block and / or adjacent blocks are in intra mode, or if the prediction block is in CIIP mode, the BS value may be set to a value of 2. Otherwise, it may be determined based on whether the block boundary is a transform block edge and whether the current block and / or adjacent blocks have transform coefficients.
[0446] If the block boundary is a transform block edge, and the current block and / or adjacent blocks have transform coefficients, the BS value can be set to a value of 1. Otherwise, it can be determined whether the current block and / or adjacent blocks are in different modes.
[0447] If the current block and / or adjacent blocks are in different modes, the BS value can be set to a value of 1. Otherwise, it can be determined whether the current block and / or adjacent blocks are in IBC mode and have different block vectors.
[0448] If the current block and / or adjacent blocks are in IBC mode and have different block vectors, the BS value can be set to a value of 1. Otherwise, it can be determined whether the current block and / or adjacent blocks are in inter mode and have different reference pictures or have different motion vectors.
[0449] If the current block and / or adjacent blocks are in inter mode and have different reference pictures or have different motion vectors, the BS value may be set to a value of 1. Otherwise, the BS value may be determined based on whether the current block and / or adjacent blocks are in inter mode and the different motion vectors are greater than 1 / 2 luma sample. If the current block and / or adjacent blocks are in inter mode and the different motion vectors are greater than 1 / 2 luma sample, the BS value may be set to a value of 1. Otherwise, the BS value may be set to a value of 0.
[0450] Example 3: Method for determining whether to apply SBT based on the presence of multiple reference blocks in intra mode.
[0451] When the current block is not in intra mode, sub-block transformation (SBT) may be applied (or allowed) to the current block. Furthermore, CIIP mode and GPM-INTRA mode include intra mode characteristics, and therefore sub-block transformation (SBT) may not be applied.
[0452] If a block in intra mode (MH-INTRA) exists among multiple reference blocks, this also includes intra mode characteristics, so in the present disclosure, whether or not to apply SBT can be determined based on the presence or absence of an MH-INTRA block.
[0453] In other words, whether or not to apply SBT can be determined based on a specific condition for determining the presence or absence of an MH-INTRA block. Here, the specific condition may be a condition based on the number of blocks in intra mode among multiple reference blocks (numMHIntra), and may include, for example, if numMHIntra is greater than 0 (if(numMHIntra > 0)).
[0454] If a certain condition is satisfied (i.e., numMHIntra is greater than 0), SBT is not applied, and the coding unit syntax structure may not include SBT-related syntax information, as shown in Table 9 above.
[0455] If a certain condition is not satisfied (i.e., numMHIntra is 0), SBT is applied and the coding unit syntax structure as shown in Table 9 may include SBT-related syntax information.
[0456] Example 4: Method for determining whether multiple reference blocks are allowed when LIC is applied to the current block.
[0457] Applying LIC to the current block may imply the presence of local illumination variations between the current block and a reference block in the reference picture. LIC generates a prediction block using scaling factors and offsets, parameters derived from the differences between pixels in templates adjacent to the current block and each reference block. Therefore, the illumination variations of adjacent blocks as well as the reference blocks in the reference picture can be considered to generate the final prediction block.
[0458] In other words, the process of generating the final prediction block when LIC is applied to the current block may include applying LIC to a regular block (i.e., a regular reference block) P0[x] to generate a regular block P0'[x] to which LIC is applied, applying LIC to an additional reference block P2[x] to generate an additional reference block P2'[x] to which LIC is applied, and weighting P0'[x] and P2'[x] to generate the final prediction block P[x]. In this case, the case when a unidirectional prediction block (e.g., P0, P2 in FIG. 8) is applied is described as an example, but the same / similar method may be applied when a bidirectional prediction block is applied.
[0459] When LIC is applied to the current block, the weights for weighting P0'[x] and P2'[x] may use default values. This default value may be equal weight, but is not limited thereto, and may include different weight values depending on the mode type of the multiple reference block. For example, if the multiple reference block is in inter mode (which may refer to both MH-MERGE and MH-AMVP modes), the default value may have an equal weight of (16 / 32), and if the multiple reference block is in intra mode, the default value may have a modified weight such as (14 / 32).
[0460] In various embodiments, when LIC is applied to the current block, LIC parameters can be derived using multiple reference blocks. In this case, signaling of an additional LIC flag is not required, and weight information of multiple reference blocks may not be included (in the encoding information described above). When weight information of multiple reference blocks is not included, the weights for weighted sum between the regular block and the multiple reference blocks may use default values identically / similarly to those described above. Signaling information for multiple reference blocks (e.g., MVP index, weight index, etc. in MH-MERGE mode) may exist, and since LIC and weighted sum are partially complementary when the LIC flag of the current block is true, information such as weight index of multiple reference blocks can be omitted to reduce the amount of signaling information.
[0461] In various embodiments, when LIC is applied to the current block, the weight information of the intra block as a multi-reference block may include different candidate values than the weight information of the intra block as a multi-reference block when LIC is not applied. This is because the LIC parameters are derived using the template region of the regular reference block, and thus some information (illuminance, resolution, etc.) of the adjacent block is reflected. Therefore, for multi-reference blocks, the weight information defined as {1 / 4, -1 / 8}, for example, may be redefined and used as {1 / 16, 1 / 32}, etc.
[0462] In various embodiments, when LIC is applied to the current block, if the difference between the scaling factor value (α0) of the regular block and the scaling factor value (α2) of the multiple reference block is less than a first threshold value (T0), the multiple reference block may be applied. In particular, this may be applied to the inherited multiple reference block. When the inherited multiple reference block is in inter or IBC mode, the multiple reference block may or may not be applied to the current block depending on a specific condition (|α0 - α2| < T0). If the specific condition is satisfied (i.e., |α0 - α2| is less than T0), the inherited multiple reference block may be applied to the current block. If the specific condition is not satisfied (i.e., |α0 - α2| is greater than or equal to T0), the inherited multiple reference block may not be applied to the current block. This may be equally / similarly applied to the offset (β). That is, if the difference between the offset value (β0) of the regular block and the offset value (β2) of the multi-reference block is less than the second threshold value (T1), the multi-reference block can be applied. The inherited multi-reference block can be applied or not applied to the current block according to a specific condition (|β0 - β2| < T1). If the specific condition is satisfied (i.e., |β0 - β2| is less than T1), the inherited multi-reference block can be applied to the current block. If the specific condition is not satisfied (i.e., |β0 - β2| is greater than or equal to T1), the inherited multi-reference block may not be applied to the current block.
[0463] In various embodiments, when LIC is applied to the current block, the weight of the intra block as a multi-reference block may be set to be greater than the weight of the intra block as a multi-reference block when LIC is not applied. Due to the application of LIC, the accuracy of adjacent samples (or adjacent blocks) of the current block may be higher than that of adjacent blocks of the Inter / IBC block. Therefore, the weight for the MH_INTRA block in the block to which LIC is applied may be set to be greater than the weight for the MH_INTRA block in the block to which LIC is not applied. For example, if the weight for the MH_INTRA block in the block to which LIC is applied is 16 / 32, the weight for the MH_INTRA block in the block to which LIC is applied may be set to 20 / 32. This may be applied in a modified form, such as being limited only when the intra block is an inherited multi-reference block.
[0464] In various embodiments, the template region of the regular reference block p0 used to derive the LIC parameters when LIC is applied to the current block may be different from the template region of the multi-reference block p2. For example, as illustrated in FIG. 21, the template region used to derive the LIC parameters of p0 may be limited to the upper template region of p0. Additionally, the template region used to derive the LIC parameters of p1 may be limited to the left template region of p2.
[0465] In various embodiments, multiple reference blocks signaled when LIC is applied to the current block may not be allowed (or applied) to the current block. In particular, intra blocks may not be allowed as multiple reference blocks. In other words, the current block to which LIC is applied may not contain intra blocks among the multiple reference blocks.
[0466] In various embodiments, when LIC is applied to the current block, inherited multi-reference blocks may not be permitted in the current block. In particular, intra blocks may not be permitted as inherited multi-reference blocks. In other words, the current block to which LIC is applied may not contain intra blocks among the inherited multi-reference blocks.
[0467] In various embodiments, when multiple reference blocks exist, the LIC for the current block may be restricted if the signaling / parsing information of the multiple reference blocks takes precedence over the LIC. This may vary depending on the type of the multiple reference blocks. For example, if an intra block exists as a multiple reference block, the LIC for the current block may be restricted.
[0468] Example 5: Method for determining whether multiple reference blocks are allowed when OBMC is applied to the current block.
[0469] As previously explained, when OBMC is applied, discontinuities at block boundaries (edges) can be eliminated by weighting the predicted block obtained using the motion vectors of adjacent blocks and the predicted block obtained using the motion vectors of the current block. At this time, discontinuities between blocks can be efficiently eliminated when the motion vectors have different values.
[0470] When OBMC is applied to the current block, multiple reference blocks signaled may not be permitted in the current block. Specifically, intra blocks may not be permitted as multiple reference blocks. In other words, the current block to which OBMC is applied may not contain intra blocks among the multiple reference blocks. This is because intra blocks use prediction modes derived from adjacent blocks, which relatively eliminates discontinuities between blocks.
[0471] In various embodiments, when OBMC is applied to a current block, inherited multiple reference blocks may not be permitted in the current block. In particular, intra blocks may not be permitted as inherited multiple reference blocks. In other words, the current block to which OBMC is applied may not contain intra blocks among the inherited multiple reference blocks.
[0472] In various embodiments, when OBMC is applied to the current block, weight information for multiple reference blocks may not be included in the above-described encoding information. If such weight information is not included in the above-described encoding information, a weight for weighted sum between a regular block (i.e., a regular prediction block) and multiple reference blocks may use a default value. This default value may be the same weight, but is not limited thereto, and different weight values may be included depending on the mode type of the multiple reference blocks. For example, when the multiple reference blocks are in inter mode, the default value may have the same weight of (16 / 32), and when the multiple reference blocks are in intra mode, the default value may have a modified weight such as (14 / 32).
[0473] In various embodiments, when OBMC is applied to the current block, the weight information of the intra block as a multi-reference block may include different candidate values. This is because the application of OBMC somewhat eliminates discontinuities with adjacent blocks. Therefore, for multi-reference blocks, weight information defined as, for example, {1 / 4, -1 / 8} can be redefined and utilized as {1 / 16, 1 / 32}, for example.
[0474] In various embodiments, when multiple reference blocks exist, IBMC for the current block may be restricted if the signaling information of the multiple reference blocks takes precedence over OBMC. In various embodiments, OBMC may be modified and applied to be restricted when an intra block exists as a multiple reference block.
[0475] In various embodiments, when multiple reference blocks exist and signaling information of the multiple reference blocks gives priority to OBMC, OBMC of the CU unit of the current block may be limited, and OBMC of the sub-block unit may be maintained.
[0476] Example 6: Method for determining LFNST kernel when application of second-order transform (LFNST) to multiple reference blocks is possible
[0477] When multiple reference blocks exist, one or more reference blocks in intra mode may exist in the multiple reference blocks. For example, all of the multiple reference blocks may be in intra mode, or there may be one or more reference blocks in intra mode. In another example, not all of the multiple reference blocks may be in intra mode. In another example, a regular block (i.e., a regular reference block) may be in inter or IBC mode, and there may be one or more multiple reference blocks in intra mode. In another example, a regular block may be in intra mode, and there may be one or more multiple reference blocks in intra mode. In such cases, a method for determining a transform kernel for inverse transformation will be described in detail.
[0478] 1) If all multi-reference blocks are intra-mode, or contain more than one intra-mode:
[0479] - A representative intra mode is determined based on the directionality of each intra mode, and an LFNST kernel according to the representative intra mode can be used as a conversion kernel. For example, a representative intra mode is determined based on matching of the directionality of each intra mode, and an LFNST kernel according to the representative intra mode can be used as a conversion kernel.
[0480] - Based on the directionality of each intra mode, one intra mode can be selected, and the LFNST kernel according to the selected intra mode can be used as the transformation kernel. For example, if the directionality of each intra mode is inconsistent, the LFNST kernel according to the intra mode of one of the multiple reference blocks can be used as the transformation kernel. For example, one of the reference blocks can be the first reference block of the multiple reference blocks.
[0481] - Depending on the directionality of each intra mode, LFNST may not be applied, or the kernel of the planar mode may be used as the transformation kernel. For example, if the directionality of each intra mode is inconsistent, LFNST may not be applied, or the kernel of the planar mode may be used as the transformation kernel.
[0482] 2) If all multi-reference blocks are in Inter / IBC mode:
[0483] - LFNST may not be applied, or a kernel in planar mode may be used as a transformation kernel.
[0484] 3) If a multi-reference block contains one intra mode and one inter / IBC mode:
[0485] - The LFNST kernel according to the intra mode can be used as a conversion kernel.
[0486] 4) If the regular block is intra-mode and all multi-reference blocks are intra-mode or contain more than one intra-mode:
[0487] - The LFNST kernel according to the intra mode of the regular block can be used as a conversion kernel.
[0488] - A representative intra mode is determined based on the intra mode of a regular block and the directionality of each intra mode, and an LFNST kernel according to the representative intra mode can be used as a conversion kernel. For example, a representative intra mode is determined based on the matching of the intra mode of a regular block and the directionality of each intra mode, and an LFNST kernel according to the representative intra mode can be used as a conversion kernel.
[0489] - Based on the intra mode of the regular block and the directionality of each intra mode, the LFNST kernel according to the intra mode of the regular block can be used as the transformation kernel. For example, if there is inconsistency between the intra mode of the regular block and the directionality of each intra mode, the LFNST kernel according to the intra mode of the regular block can be used as the transformation kernel.
[0490] - Based on the intra mode of the regular block and the directionality of each intra mode, LFNST may not be applied, or the kernel of the planar mode may be used as the transformation kernel. For example, if there is inconsistency in the intra mode of the regular block and the directionality of each intra mode, LFNST may not be applied, or the kernel of the planar mode may be used as the transformation kernel.
[0491] 5) If the regular block is in intra mode and all multi-reference blocks are in inter / IBC mode:
[0492] - The LFNST kernel according to the intra mode of the regular block can be used as a conversion kernel.
[0493] - LFNST may not be applied, or a kernel in planar mode may be used as a transformation kernel.
[0494] 6) If the regular block is in intra mode and the multi-reference block contains one intra mode and one inter / IBC mode:
[0495] - The LFNST kernel according to the intra mode of the regular block can be used as a conversion kernel.
[0496] - Based on the matching of the intra mode of the regular block and the directionality of each intra mode, a representative intra mode is determined among them, and the LFNST kernel according to the representative intra mode can be used as a conversion kernel.
[0497] - If the intra mode of the regular block and the directionality of each intra mode are similar, the LFNST kernel according to the intra mode of the regular block can be used as a conversion kernel.
[0498] - If there is inconsistency in the intra mode of the regular block and the directionality of each intra mode, LFNST may not be applied, or the kernel of the planar mode may be used as the transformation kernel.
[0499] In the embodiments described above, the methods are described based on a flowchart as a series of steps or blocks. However, the embodiments are not limited to the order of the steps, and some steps may occur in a different order or simultaneously with other steps described above. Furthermore, those skilled in the art will understand that the steps depicted in the flowchart are not exclusive, and other steps may be included, or one or more steps in the flowchart may be deleted without affecting the scope of the embodiments of this document.
[0500] The method according to the embodiments of the present document described above can be implemented in the form of software, and the encoding device and / or decoding device according to the present document can be included in a device that performs image processing, such as a TV, a computer, a smartphone, a set-top box, a display device, etc.
[0501] When the embodiments in this document are implemented as software, the above-described method can be implemented as a module (process, function, etc.) that performs the above-described function. The module can be stored in memory and executed by a processor. The memory can be internal or external to the processor and can be connected to the processor by various well-known means. The processor can include an application-specific integrated circuit (ASIC), another chipset, logic circuit, and / or data processing device. The memory can include a read-only memory (ROM), a random access memory (RAM), flash memory, a memory card, a storage medium, and / or other storage devices. That is, the embodiments described in this document can be implemented and performed on a processor, a microprocessor, a controller, or a chip. For example, the functional units illustrated in each drawing can be implemented and performed on a computer, a processor, a microprocessor, a controller, or a chip. In this case, information for implementation (e.g., information on instructions) or an algorithm can be stored on a digital storage medium.
[0502] In addition, the decoding device and encoding device to which the embodiment(s) of the present specification are applied may be included in a multimedia broadcasting transmitting and receiving device, a mobile communication terminal, a home cinema video device, a digital cinema video device, a surveillance camera, a video conversation device, a real-time communication device such as a video communication, a mobile streaming device, a storage medium, a camcorder, a video-on-demand (VoD) service providing device, an OTT (Over the top video) device, an Internet streaming service providing device, a three-dimensional (3D) video device, a VR (virtual reality) device, an AR (argumente reality) device, a video phone video device, a transportation terminal (ex. a vehicle (including an autonomous vehicle) terminal, an airplane terminal, a ship terminal, etc.), and a medical video device, and may be used to process a video signal or a data signal. For example, the OTT (Over the top video) device may include a game console, a Blu-ray player, an Internet-connected TV, a home theater system, a smartphone, a tablet PC, a DVR (Digital Video Recorder), etc.
[0503] In addition, the processing method to which the embodiment(s) of the present specification are applied can be produced in the form of a computer-executable program and can be stored in a computer-readable recording medium. Multimedia data having a data structure according to the embodiment(s) of the present specification can also be stored in a computer-readable recording medium. The computer-readable recording medium includes all types of storage devices and distributed storage devices in which computer-readable data is stored. The computer-readable recording medium can include, for example, a Blu-ray disc (BD), a universal serial bus (USB), a ROM, a PROM, an EPROM, an EEPROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device. In addition, the computer-readable recording medium includes a medium implemented in the form of a carrier wave (e.g., transmission via the Internet). In addition, a bitstream generated by an encoding method can be stored in a computer-readable recording medium or transmitted via a wired or wireless communication network.
[0504] Additionally, the embodiments of the present disclosure may be implemented as a computer program product by program code, and the program code may be executed on a computer by the embodiments of the present disclosure. The program code may be stored on a computer-readable carrier.
[0505] FIG. 22 illustrates an example of a content streaming system to which embodiments of the present disclosure can be applied.
[0506] Referring to FIG. 22, a content streaming system to which the embodiment(s) of the present specification are applied may largely include an encoding server, a streaming server, a web server, a media storage, a user device, and a multimedia input device.
[0507] The encoding server compresses content input from multimedia input devices such as smartphones, cameras, and camcorders into digital data, generates a bitstream, and transmits it to the streaming server. Alternatively, if multimedia input devices such as smartphones, cameras, and camcorders directly generate bitstreams, the encoding server may be omitted.
[0508] The above bitstream can be generated by an encoding method or a bitstream generation method to which the embodiment(s) of the present specification are applied, and the streaming server can temporarily store the bitstream during the process of transmitting or receiving the bitstream.
[0509] The streaming server transmits multimedia data to a user device based on a user request via a web server, and the web server acts as an intermediary to inform the user of available services. When a user requests a desired service from the web server, the web server transmits the request to the streaming server, and the streaming server transmits the multimedia data to the user. At this time, the content streaming system may include a separate control server, in which case the control server controls commands / responses between each device within the content streaming system.
[0510] The streaming server can receive content from a media repository and / or an encoding server. For example, when receiving content from the encoding server, the content can be received in real time. In this case, to provide a smooth streaming service, the streaming server can store the bitstream for a certain period of time.
[0511] Examples of the user devices may include mobile phones, smart phones, laptop computers, digital broadcasting terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation devices, slate PCs, tablet PCs, ultrabooks, wearable devices (e.g., smartwatches, smart glasses, HMDs), digital TVs, desktop computers, digital signage, etc.
[0512] Each server within the above content streaming system can be operated as a distributed server, in which case data received from each server can be processed in a distributed manner.
[0513] The claims set forth in this specification may be combined in various ways. For example, the technical features of the method claims of this specification may be combined and implemented as a device, and the technical features of the device claims of this specification may be combined and implemented as a method. Furthermore, the technical features of the method claims and the technical features of the device claims of this specification may be combined and implemented as a device, and the technical features of the method claims and the technical features of the device claims of this specification may be combined and implemented as a method.
[0514] Embodiments according to the present disclosure can be used to encode / decode images.
Claims
1. In an image decoding method performed by a decoding device, A step of generating a prediction block of the current block based on the prediction mode of the current block; generating a restoration sample of the current block based on the prediction block; and comprising a step of performing filtering on the above restoration sample, The step of generating the above prediction block is: A step of deriving a basic prediction block of the current block; A step of deriving multiple reference blocks of the current block; and A step of generating a final prediction block of the current block by weighting the base prediction block and the multiple reference blocks, An image decoding method, wherein a filter strength used for filtering is determined based on prediction information related to the current block, the prediction block, or the multiple reference blocks.
2. In paragraph 1, the prediction information is: An image decoding method comprising information about a prediction mode of the current block, a generation method for generating the prediction block, or a prediction mode of the multiple reference blocks.
3. In paragraph 1, The above filtering includes deblocking filtering, When the preset first condition is satisfied, the filter strength is determined as the first value, An image decoding method, wherein the first value comprises a value of 2 or 3.
4. In paragraph 3, An image decoding method, wherein the first preset condition includes: when the current block or an adjacent block adjacent to the current block is in intra mode, when the prediction block is in combined inter and intra prediction (CIIP) mode, when the number of blocks in intra mode among the multiple reference blocks is greater than 0, or when the number of blocks in intra mode among the multiple reference blocks existing in the adjacent block is greater than 0.
5. In paragraph 4, An image decoding method, wherein the filter strength is determined as the first value when the current block or the adjacent block is an intra mode.
6. In paragraph 4, An image decoding method, wherein the filter strength is determined as the first value when the above prediction block is in CIIP mode.
7. In paragraph 4, An image decoding method, wherein the filter strength is determined as the first value when the number of blocks that are the intra mode among the multiple reference blocks existing in the current block or the adjacent block is greater than 0.
8. In paragraph 7, An image decoding method, wherein the multiple reference blocks existing in the current block or the adjacent block are signaled multiple reference blocks or inherited multiple reference blocks.
9. In an image decoding method performed by a decoding device, A step of generating a prediction block of a current block based on prediction information obtained from a bitstream; A step of deriving transform coefficients by performing inverse quantization based on residual information obtained from the bitstream; A step of deriving a residual block by performing an inverse transformation on the above transformation coefficients; and A step of generating a restoration block based on the prediction block and the residual block is included, The step of generating the above prediction block is: A step of deriving a base prediction block of the current block; A step of deriving multiple reference blocks of the current block; and A step of generating a final prediction block of the current block by weighting the base prediction block and the multiple reference blocks, An image decoding method, wherein it is determined whether a sub-block transform (SBT) is applied to the current block based on the prediction mode of the multiple reference blocks.
10. In paragraph 9, An image decoding method, wherein application of the sub-block transform to the current block is determined when the prediction mode of the above multiple reference blocks is not an intra mode.
11. In paragraph 9, When the second preset condition is satisfied, the application of the sub-block transformation to the current block is determined, The second condition is an image decoding method including a case where the number of blocks in intra mode among the multiple reference blocks is greater than 0.
12. In paragraph 11, An image decoding method, wherein application of the sub-block transformation to the current block is determined when the number of blocks in the intra mode among the multiple reference blocks is greater than 0.
13. In an image decoding method performed by a decoding device, A step of generating a prediction block of a current block based on prediction information obtained from a bitstream; A step of deriving transform coefficients by performing inverse quantization based on residual information obtained from the bitstream; A step of deriving a residual block by performing an inverse transformation on the above transformation coefficients; and A step of generating a restoration block based on the prediction block and the residual block is included, The step of generating the above prediction block is: A step of deriving a basic prediction block of the current block; A step of deriving multiple reference blocks of the current block; and A step of generating a final prediction block of the current block by weighting the base prediction block and the multiple reference blocks, An image decoding method, wherein a transform kernel used for the inverse transform is determined based on a prediction mode associated with at least one of the base prediction block and the multiple reference blocks.
14. In paragraph 13, If the prediction mode of the above multiple reference blocks is an intra mode, a representative intra mode is determined by considering the directionality of each intra mode, An image decoding method, wherein the second transform kernel of the representative intra mode is determined as the transform kernel.
15. In paragraph 13, If the prediction mode of the above multiple reference blocks is an intra mode, one intra mode is selected based on the directionality of each intra mode, An image decoding method, wherein a second transform kernel of the selected intra mode is determined as the transform kernel.
16. In paragraph 13, An image decoding method, wherein if the prediction mode of the above multiple reference blocks is not an intra mode, the second inverse transformation is not applied, or the kernel of the planar mode is determined as the transformation kernel.
17. In the 13th paragraph, the basic prediction block, is derived based on at least one basic reference block, An image decoding method, wherein if the prediction mode of at least one basic reference block is an intra mode, a secondary transformation kernel related to the at least one basic reference block is determined as the transformation kernel.
18. In paragraph 17, An image decoding method, wherein if the prediction mode of at least one basic reference block is an intra mode and the prediction mode of the multiple reference blocks is an intra mode, a representative intra mode is determined based on the directionality of each intra mode, and a secondary transform kernel of the representative intra mode is determined as the transform kernel.
19. In paragraph 17, An image decoding method, wherein a secondary transform kernel related to the at least one basic reference block is determined as the transform kernel based on the directionality of each intra mode matching each other when the prediction mode of the at least one basic reference block is an intra mode and the prediction mode of the multiple reference blocks is an intra mode.
20. In an image encoding method performed by an encoding device, A step of generating a prediction block of the current block based on the prediction mode of the current block; a step of generating a restoration block based on the above prediction block; and comprising a step of performing filtering on the above restoration block, The step of generating the above prediction block is: A step of deriving a basic prediction block of the current block; A step of deriving multiple reference blocks of the current block; and A step of generating a final prediction block of the current block by weighting the base prediction block and the multiple reference blocks, An image encoding method, wherein a filter strength used for filtering is determined based on prediction information related to the current block, the prediction block, or the multiple reference blocks.
21. A computer-readable storage medium for storing a bitstream generated by an image encoding method, wherein the bitstream comprises: A step of generating a prediction block of the current block based on a prediction mode of the current block; a step of generating a restoration block based on the prediction block; and a step of performing filtering on the restoration block are generated. The step of generating the above prediction block is: A step of deriving a basic prediction block of the current block; A step of deriving multiple reference blocks of the current block; and A step of generating a final prediction block of the current block by weighting the base prediction block and the multiple reference blocks, A computer-readable storage medium, wherein a filter strength used for the filtering is determined based on a prediction mode associated with the current block, the prediction block, or the multiple reference blocks.
22. In a method for transmitting data about an image, A step of generating a bitstream for the image, wherein the bitstream is generated by: a step of generating a prediction block of the current block based on a prediction mode of the current block; a step of generating a restoration block based on the prediction block; and a step of performing filtering on the restoration block, and A step of transmitting the data including the bitstream, The step of generating the above prediction block is: A step of deriving a basic prediction block of the current block; A step of deriving multiple reference blocks of the current block; and A step of generating a final prediction block of the current block by weighting the base prediction block and the multiple reference blocks, A data transmission method, wherein a filter strength used for filtering is determined based on prediction information related to the current block, the prediction block, or the multiple reference blocks.
Citation Information
Patent Citations
Deblocking Filtering Method and Apparatus, Method and Apparatus for Encoding and Decoding Using Deblocking Filtering
KR101826353B1
Intra prediction method considering redundancy of prediction blocks and video decoding apparatus performing intra prediction
KR1020180080114A
Razor blade cleaning device
KR1020210130665A
Inter prediction methods for coding video data
US20200296416A1
Method and Apparatus for Multiple Hypothesis Prediction in Video Coding System
US20230209060A1