Method and device for image encoding / decoding, and recording medium storing bitstream

By constructing a candidate list for a current block based on a reference block's intra-mode flag, the method improves intra-prediction efficiency in high-resolution video encoding/decoding, addressing inefficiencies in existing technologies.

WO2026155625A1PCT designated stage Publication Date: 2026-07-23LG ELECTRONICS INC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
LG ELECTRONICS INC
Filing Date
2026-01-19
Publication Date
2026-07-23

AI Technical Summary

Technical Problem

Existing video compression technologies face challenges in efficiently encoding and decoding high-resolution, high-quality video due to limitations in intra-prediction modes, leading to suboptimal coding efficiency.

Method used

A method and apparatus for constructing a candidate list for a current block based on a reference block's intra-mode flag, allowing derivation of predicted samples and improving coding efficiency by explicit signaling of candidate modes.

Benefits of technology

Enhances coding efficiency by effectively configuring candidate modes and intra-prediction, particularly in high-resolution video encoding/decoding processes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure KR2026001109_23072026_PF_FP_ABST
    Figure KR2026001109_23072026_PF_FP_ABST
Patent Text Reader

Abstract

A method and a device for image decoding according to the present disclosure may construct a candidate list for a current block on the basis of a candidate mode of the current block, derive prediction samples of the current block on the basis of the candidate list, and reconstruct the current block on the basis of the prediction samples. In this case, the candidate mode of the current block may be derived on the basis of a reference block coded in a non-regular mode.
Need to check novelty before this filing date? Find Prior Art

Description

Video encoding / decoding method and device, and a recording medium storing a bitstream

[0001] The present invention relates to a video encoding / decoding method and apparatus, and a recording medium storing a bitstream.

[0002] Recently, the demand for high-resolution, high-quality video, such as HD (High Definition) and UHD (Ultra High Definition) video, has been increasing across various application fields, and accordingly, high-efficiency video compression technologies are being discussed.

[0003] Various image compression technologies exist, such as inter-prediction technology that predicts pixel values ​​in the current picture from previous or subsequent pictures, intra-prediction technology that predicts pixel values ​​in the current picture using pixel information within the current picture, and entropy coding technology that assigns short codes to values ​​with high frequency and long codes to values ​​with low frequency; by utilizing these image compression technologies, image data can be effectively compressed for transmission or storage.

[0004] The present disclosure provides a method and apparatus for setting available candidate modes for a current block.

[0005] The present disclosure provides a method and apparatus for signaling a candidate mode of a current block.

[0006] An image decoding method and apparatus according to the present disclosure may construct a candidate list for a current block based on a candidate mode of the current block, derive predicted samples of the current block based on the candidate list, and restore the current block based on the predicted samples. Here, the candidate mode of the current block may be derived based on a reference block coded in a non-normal mode.

[0007] In the image decoding method and apparatus according to the present disclosure, the candidate mode of the current block may be derived based on an intra-mode flag for specifying any one of a plurality of modes for the reference block.

[0008] In the image decoding method and apparatus according to the present disclosure, when the intra-mode flag is a first value, the first mode among a plurality of modes for the reference block may be set as the candidate mode, and when the intra-mode flag is a second value, the second mode among a plurality of modes for the reference block may be set as the candidate mode.

[0009] In the image decoding method and apparatus according to the present disclosure, when the reference block is a block coded in a non-normal mode of DIMD (decoder-side intra mode derivation), OBIC (occurrence-based intra coding), or TIMD (template-based intra mode derivation), the first mode of the reference block may be used as the first mode, and the second mode of the reference block may be used as the second mode.

[0010] In the image decoding method and apparatus according to the present disclosure, when the reference block is a block coded in a non-normal mode of MIP (matrix-based intra prediction), EIP (Extrapolation filter-based intra prediction), IntraTMP (intra template matching prediction), or SGPM (spatial geometric partitioning mode), the planar mode is used as the first mode, and the first DIPM (derived intra prediction mode) of the reference block can be used as the second mode.

[0011] In the image decoding method and apparatus according to the present disclosure, when the reference block is a block coded in a non-normal mode of a spatial geometric partitioning mode (SGPM), an intra prediction mode mapped to the partitioning direction of the reference block is used as the first mode, and a first derived intra prediction mode (DIPM) of the reference block can be used as the second mode.

[0012] In the image decoding method and apparatus according to the present disclosure, when the reference block is a block coded in a non-normal mode of MIP (matrix-based intra prediction), EIP (Extrapolation filter-based intra prediction), IntraTMP (intra template matching prediction), or SGPM (spatial geometric partitioning mode), the first DIPM (derived intra prediction mode) of the reference block may be used as the first mode, and the second DIPM of the reference block may be used as the second mode.

[0013] In the image decoding method and apparatus according to the present disclosure, when the reference block is a block coded in a non-normal mode of MIP (matrix-based intra prediction), EIP (Extrapolation filter-based intra prediction), or IntraTMP (intra template matching prediction), the planner mode is used as the first mode, and the DIPM (derived intra prediction mode) used by the reference block to select a transformation kernel can be used as the second mode.

[0014] In the image decoding method and apparatus according to the present disclosure, the intra-mode flag may be signaled based on a first flag. Here, the first flag may be determined based on whether the reference block is a block coded in the non-normal mode.

[0015] In the image decoding method and apparatus according to the present disclosure, a second flag indicating whether the intra prediction mode of the current block is induced based on any one of a plurality of candidate modes belonging to the candidate list may be signaled through a bitstream.

[0016] In the image decoding method and apparatus according to the present disclosure, the intra-mode flag may be signaled through the bitstream before the second flag is signaled.

[0017] In the image decoding method and apparatus according to the present disclosure, the intra-mode flag may be signaled through the bitstream after the second flag is signaled.

[0018] An image encoding method and apparatus according to the present disclosure may construct a candidate list for a current block based on a candidate mode of a current block, derive predicted samples of the current block based on the candidate list, derive residual samples of the current block based on the predicted samples, derive transformation coefficients of the current block based on the residual samples, and encode residual information regarding the transformation coefficients. Here, the candidate mode of the current block may be derived based on a reference block coded in a non-normal mode.

[0019] A computer-readable digital storage medium is provided that stores encoded video / image information that causes an image decoding method to be performed by a decoding device according to the present disclosure.

[0020] A computer-readable digital storage medium is provided that stores video / image information generated according to the image encoding method according to the present disclosure.

[0021] A method and apparatus for transmitting video / image information generated according to the image encoding method according to the present disclosure are provided.

[0022] According to the present disclosure, the candidate mode and candidate list of the current block can be configured more effectively by utilizing DIPM, and thereby the coding efficiency of intra prediction can be improved.

[0023] According to the present disclosure, a candidate list can be constructed more effectively through explicit signaling of candidate modes, and furthermore, the coding efficiency of intra-prediction can be improved.

[0024] FIG. 1 illustrates a video / image coding system according to the present disclosure.

[0025] FIG. 2 shows a schematic block diagram of an encoding device to which an embodiment of the present disclosure can be applied and to which encoding of a video / image signal is performed.

[0026] FIG. 3 shows a schematic block diagram of a decoding device to which an embodiment of the present disclosure can be applied and to which decoding of a video / image signal is performed.

[0027] FIG. 4 illustrates a decoding method performed by a decoding device (300) as an embodiment according to the present disclosure.

[0028] FIG. 5 illustrates a schematic configuration of a decoding device (300) that performs a decoding method according to the present disclosure.

[0029] FIG. 6 illustrates an encoding method performed by an encoding device (200) as an embodiment according to the present disclosure.

[0030] FIG. 7 illustrates a schematic configuration of an encoding device (200) that performs an encoding method according to the present disclosure.

[0031] FIG. 8 shows an example of a content streaming system to which embodiments of the present disclosure can be applied.

[0032] The present disclosure is susceptible to various modifications and may have various 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, and it should be understood that it includes all modifications, equivalents, and substitutions that fall within the spirit and scope of the present disclosure. Similar reference numerals have been used for similar components in the description of each drawing.

[0033] Terms such as "first," "second," etc., may be used to describe various components, but said components should not be limited by said terms. Such terms are used solely for the purpose of distinguishing one component from another. For example, without departing from the scope of the present disclosure, the first component may be named the second component, and similarly, the second component may be named the first component. The term "and / or" includes a combination of a plurality of related described items or any of a plurality of related described items.

[0034] When it is stated that one component is "connected" or "connected" to another component, it should be understood that while it may be directly connected or connected to that other component, there may also be other components in between. On the other hand, when it is stated that one component is "directly connected" or "directly connected" to another component, it should be understood that there are no other components in between.

[0035] The terms used in this application are used merely to describe specific embodiments and are not intended to limit the disclosure. The singular expression includes the plural expression unless the context clearly indicates otherwise. In this application, terms such as “comprising” or “having” are intended to specify the presence of the features, numbers, steps, actions, components, parts, or combinations thereof described in the specification, and should be understood as not precluding the existence or addition of one or more other features, numbers, steps, actions, components, parts, or combinations thereof.

[0036] The present disclosure relates to video / video coding. For example, the methods / embodiments disclosed herein may be applied to methods disclosed in the VVC (versatile video coding) standard. Additionally, the methods / embodiments disclosed herein may be applied to methods disclosed in the EVC (essential video coding) standard, AV1 (AOMedia Video 1) standard, AVN2 (2nd generation of audio video coding standard), or next-generation video / video coding standards (e.g., H.267 or H.268).

[0037] This specification presents various embodiments regarding video / image coding, and unless otherwise noted, said embodiments may be performed in combination with one another.

[0038] In this specification, "video" may refer to a set of images over time. "Picture" generally refers to a unit representing a single image of a specific time period, and "slice" or "tile" is a unit that constitutes a part of a picture in coding. A slice or tile may contain one or more coding tree units (CTUs). A picture may consist of one or more slices or tiles. A tile is a rectangular area composed 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 having 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 having a height specified by the picture parameter set and a width equal to the width of the picture. CTUs within a tile are arranged continuously according to the CTU raster scan, whereas tiles within a picture may be arranged continuously according to the tile's raster scan. A single slice may include an integer number of complete tiles or an integer number of consecutive complete CTU rows within a tile of a picture that can be exclusively contained in a single NAL unit. Meanwhile, a single picture may be divided into two or more subpictures. A subpicture may be a rectangular area of ​​one or more slices within a picture.

[0039] A pixel, or pel, can refer to the smallest unit that constitutes a picture (or image). Additionally, the term 'sample' may be used as a counterpart to pixel. A sample generally represents a pixel or its value, and it may represent only the pixel / pixel value of the luminance (luma) component or only the pixel / pixel value of the chroma component.

[0040] A unit may represent a basic unit of image processing. A unit may include at least one of a specific area of ​​a picture and information related to that area. A unit may include one luminance block and two chroma (e.g., cb, cr) blocks. Depending on the case, the term unit may be used interchangeably with terms such as block or area. In general, an MxN block may include samples (or sample arrays) or a set (or array) of transform coefficients consisting of M columns and N rows.

[0041] In this specification, "A or B" may mean "only A," "only B," or "both A and B." Alternatively, in this specification, "A or B" may be interpreted as "A and / or B." For example, in this specification, "A, B or C" may mean "only A," "only B," "only C," or "any combination of A, B and C."

[0042] A slash ( / ) or a comma used in this specification may mean "and / or." For example, "A / B" may mean "A and / or B." Accordingly, "A / B" may mean "only A," "only B," or "both A and B." For example, "A, B, C" may mean "A, B or C."

[0043] 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 as synonymous with "at least one of A and B."

[0044] Additionally, in this specification, "at least one of A, B and C" may mean "only A," "only B," "only C," or "any combination of A, B and C." Also, "at least one of A, B or C" or "at least one of A, B and / or C" may mean "at least one of A, B and C."

[0045] Additionally, parentheses used in this specification may mean "for example." Specifically, where indicated as "prediction (intra-prediction)," "intra-prediction" may be proposed as an example of "prediction." In other words, "prediction" in this specification is not limited to "intra-prediction," and "intra-prediction" may be proposed as an example of "prediction." Furthermore, even where indicated as "prediction (i.e., intra-prediction)," "intra-prediction" may be proposed as an example of "prediction."

[0046] Technical features described individually within a single drawing in this specification may be implemented individually or simultaneously.

[0047] FIG. 1 illustrates a video / image coding system according to the present disclosure.

[0048] Referring to FIG. 1, the video / image coding system may include a first device (source device) and a second device (receiving device).

[0049] A source device can transmit encoded video / image information or data in the form of a file or streaming to a receiving device via a digital storage medium or a network. The source device may include a video source, an encoding device, and a transmission unit. The receiving device may include a receiver, a decoding device, and a renderer. The encoding device may be referred to as a video / image encoding device, and the decoding device may be referred to as a video / image decoding device. A transmitter may be included in the encoding device. A receiver may be included in the decoding device. The renderer may include a display unit, and the display unit may be composed of a separate device or an external component.

[0050] A video source may acquire video / images through processes such as video / image capture, synthesis, or generation. The video source may include a video / image capture device and / or a video / image generation device. A video / image capture device may include one or more cameras, a video / image archive containing previously captured video / images, etc. A video / image generation device may include a computer, a tablet, a smartphone, etc., and may generate video / images (electronically). 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 in which related data is generated.

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

[0052] 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 in the form of a file or streaming via a digital storage medium or a network. The digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmission unit may include elements for creating a media file through a predetermined file format and elements for transmission via a broadcasting / communication network. The receiving unit can receive / extract the bitstream and transmit it to a decoding device.

[0053] The decoding device can decode video / images by performing a series of procedures such as inverse quantization, inverse transform, and prediction corresponding to the operation of the encoding device.

[0054] The renderer can render the decoded video / image. The rendered video / image can be displayed through the display unit.

[0055] FIG. 2 shows a schematic block diagram of an encoding device to which an embodiment of the present disclosure can be applied and to which encoding of a video / image signal is performed.

[0056] Referring to FIG. 2, the encoding device (200) may be configured to include an image partitioner (210), a predictor (220), a residual processor (230), an entropy encoder (240), an adder (250), a filter (260), and a memory (270). The predictor (220) may include an inter-predictor (221) and an intra-predictor (222). The residual processor (230) may include a transformer (232), a quantizer (233), a dequantizer (234), and an inverse transformer (235). The residual processor (230) may further include a subtractor (231). The addition unit (250) may be referred to as a reconstructor or a reconstructed block generator. The above-described image segmentation unit (210), prediction unit (220), residual processing unit (230), entropy encoding unit (240), addition unit (250), and filtering unit (260) may be configured by one or more hardware components (e.g., an encoding device chipset or processor) according to the embodiment. Additionally, 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.

[0057] The image segmentation unit (210) can divide an input image (or picture, frame) input to an 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 divided from a coding tree unit (CTU) or a largest coding unit (LCU) according to a QTBTTT (Quad-tree binary-tree ternary-tree) structure.

[0058] For example, a single coding unit may be divided into multiple coding units with a deeper depth based on a quad tree structure, a binary tree structure, and / or a terrestrial structure. In this case, for example, the quad tree structure may be applied first and the binary tree structure and / or terrestrial structure may be applied later. Alternatively, the binary tree structure may be applied before the quad tree structure. A coding procedure according to the present specification may be performed based on a final coding unit that is no longer divided. In this case, based on coding efficiency according to image characteristics, the maximum coding unit may be used directly as the final coding unit, or, if necessary, the coding unit may be recursively divided into coding units of a lower depth so that a coding unit of the optimal size may be used as the final coding unit. Here, the term "coding procedure" may include procedures such as prediction, transformation, and restoration described below.

[0059] As another example, the processing unit may further include a Prediction Unit (PU) or a Transform Unit (TU). In this case, the Prediction Unit and the Transform Unit may each be divided or partitioned from the aforementioned final coding unit. The Prediction Unit may be a unit for sample prediction, and the Transform Unit may be a unit for deriving transformation coefficients and / or a unit for deriving a residual signal from transformation coefficients.

[0060] The term "unit" may be used interchangeably with terms such as "block" or "area" depending on the context. In general, an MxN block may represent a set of samples or transform coefficients consisting of M columns and N rows. A sample may generally represent a pixel or a pixel value, and may represent only the pixel / pixel value of the luminance component or only the pixel / pixel value of the chroma component. A sample may be used to refer to a single picture (or image) as a term corresponding to a pixel or pel.

[0061] 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, the unit that subtracts the prediction signal (prediction block, prediction sample array) from the input video signal (original block, original sample array) within the encoding device (200) may be called a subtraction unit (231).

[0062] The prediction unit (220) performs a prediction for a block to be processed (hereinafter referred to as the current block) and can generate a predicted block containing prediction samples for the current block. The prediction unit (220) can determine whether intra prediction is applied or inter prediction is applied at the current block or CU level. The prediction unit (220) can generate various information regarding the prediction, such as prediction mode information, as described below in the description of each prediction mode, and transmit it to the entropy encoding unit (240). The information regarding the prediction can be encoded by the entropy encoding unit (240) and output in the form of a bitstream.

[0063] The intra prediction unit (222) can predict the current block by referencing samples within the current picture. The referenced samples may be located near the current block or at a certain distance 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 DC mode or a planar mode. The directional mode may include 33 directional modes or 65 directional modes depending on the degree of fineness of the prediction direction. However, this is merely an example, and depending on the settings, more or fewer directional modes may be used. The intra prediction unit (222) may determine the prediction mode applied to the current block by using the prediction mode applied to the template area.

[0064] 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, to reduce the amount of motion information transmitted in the inter prediction mode, motion information can be predicted in blocks, sub-blocks, or samples based on the correlation of motion information between the template area and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter prediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter prediction, the template area may include a spatial template area (spatial neighboring block) existing within the current picture and a temporal template area (temporal neighboring block) existing in the reference picture. The reference picture containing the reference block and the reference picture containing the temporal template area may be the same or different. The above temporal template area may be referred to by names such as collocated reference block, collocated CU (colCU), etc., and the reference picture containing the above temporal template area may be referred to as a collocated picture (colPic). For example, the inter prediction unit (221) may construct a list of motion information candidates based on the template areas 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, for example, in the case of skip mode and merge mode, the inter prediction unit (221) may use the motion information of the template area as the motion information of the current block. In the case of skip mode, unlike merge mode, a residual signal may not be transmitted.In the case of motion vector prediction (MVP) mode, the motion vector of the template area is used as a motion vector predictor, and the motion vector of the current block can be indicated by signaling the motion vector difference.

[0065] The prediction unit (220) can generate a prediction signal based on various prediction methods described below. For example, the prediction unit may apply intra prediction or inter prediction for prediction of a single block, and may also apply intra prediction and inter prediction simultaneously. This may be called a combined inter and intra prediction (CIIP) mode. Additionally, the prediction unit may be based on an intra block copy (IBC) prediction mode or a palette mode for prediction of a block. The IBC prediction mode or palette mode may be used for content video / video coding, such as in screen content coding (SCC) for games. IBC basically performs prediction within the current picture, but it may be performed similarly to inter prediction in that it derives a reference block within the current picture. That is, IBC may utilize at least one of the inter prediction techniques described in this specification. The palette mode can be viewed as an example of intra coding or intra prediction. When the palette mode is applied, sample values ​​within the picture can be signaled based on information regarding the palette table and palette index. The prediction signal generated through the prediction unit (220) can be used to generate a restoration signal or to generate a residual signal.

[0066] The transformation unit (232) can generate transform coefficients by applying a transformation technique to a residual signal. For example, the transformation technique may include at least one of a Discrete Cosine Transform (DCT), a Discrete Sine Transform (DST), a Karhunen-Loeve Transform (KLT), a Graph-Based Transform (GBT), or a Conditionally Non-linear Transform (CNT). Here, GBT refers to a transformation obtained from a graph when the relationship information between pixels is represented as a graph. CNT refers to a transformation obtained based on a prediction signal generated using all previously restored pixels. Additionally, the transformation process may be applied to a pixel block of the same size in a square, or to a block of variable size that is not square.

[0067] The quantization unit (233) quantizes the transformation coefficients and transmits them to the entropy encoding unit (240), and the entropy encoding unit (240) can encode the quantized signal (information regarding the quantized transformation coefficients) and output it as a bitstream. The information regarding the quantized transformation coefficients may be called residual information. The quantization unit (233) can rearrange the block-shaped quantized transformation coefficients into a one-dimensional vector form based on the coefficient scan order, and can also generate information regarding the quantized transformation coefficients based on the one-dimensional vector-shaped quantized transformation coefficients.

[0068] The entropy encoding unit (240) can perform various encoding methods such as exponential Golomb, CAVLC (context-adaptive variable length coding), CABAC (context-adaptive binary arithmetic coding), etc. The entropy encoding unit (240) may encode information required for video / image restoration (e.g., values ​​of syntax elements, etc.) together or separately, in addition to quantized transform coefficients.

[0069] Encoded information (e.g., encoded video / image information) may be transmitted or stored in the form of a bitstream at the level of a Network Abstraction Layer (NAL) unit. The video / image information may further include information regarding 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). Additionally, the video / image information may further include general constraint information. In this specification, information and / or syntax elements transmitted / signaled from an encoding device to a decoding device may be included in the video / image information. The video / image information may be encoded through the encoding procedure described above and included in the bitstream. The bitstream may be transmitted over a network or stored on 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 USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. A transmission unit (not shown) that transmits the signal output from the entropy encoding unit (240) and / or a storage unit (not shown) that stores it may be configured as internal / external elements of the encoding device (200), or the transmission unit may be included in the entropy encoding unit (240).

[0070] Quantized transformation coefficients output from the quantization unit (233) can be used to generate a prediction signal. For example, a residual signal (residual block or residual samples) can be restored by applying inverse quantization and inverse transformation to the quantized transformation coefficients through the inverse quantization unit (234) and the inverse transformation unit (235). An adder (250) can generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the restored residual signal to the prediction signal output from the inter-prediction unit (221) or the intra-prediction unit (222). In cases where there is no residual for the block to be processed, such as when a skip mode is applied, the predicted block can be used as the reconstructed block. The adder (250) may be called a reconstruction unit or a reconstruction block generation unit. The generated restoration signal can be used for intra prediction of the next block to be processed 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.

[0071] The filtering unit (260) can improve subjective / objective image quality by applying filtering to the restored signal. For example, the filtering unit (260) can generate a modified restored picture by applying various filtering methods to the restored picture, and can store the modified restored picture in memory (270), specifically in the DPB of memory (270). The various filtering methods may 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 in the entropy encoding unit (240) and output in the form of a bitstream.

[0072] 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 can avoid prediction mismatches between the encoding device (200) and the decoding device, and can also improve encoding efficiency.

[0073] 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 blocks from which motion information is derived (or encoded) within the current picture and / or motion information of blocks within the picture that have already been restored. The stored motion information can be transmitted to the inter-prediction unit (221) to be used as motion information in a spatial template area or motion information in a temporal template area. The memory (270) can store restoration samples of blocks restored within the current picture and transmit them to the intra-prediction unit (222).

[0074] FIG. 3 shows a schematic block diagram of a decoding device to which an embodiment of the present disclosure can be applied and to which decoding of a video / image signal is performed.

[0075] 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-predictor (332) and an intra-predictor (331). The residual processor (320) may include a dequantizer (321) and an inverse transformer (321).

[0076] The aforementioned entropy decoding unit (310), residual processing unit (320), prediction unit (330), addition unit (340), and filtering unit (350) may be configured by a single hardware component (e.g., a decoding device chipset or processor) according to an embodiment. Additionally, the memory (360) may include a DPB (decoded picture buffer) and may be configured by a digital storage medium. The hardware component may further include the memory (360) as an internal / external component.

[0077] When a bitstream containing video / image information is input, the decoding device (300) can restore the image in correspondence with the process in which the video / image information is processed by the encoding device of FIG. 2. For example, the decoding device (300) can derive units / blocks based on block division information obtained from the bitstream. The decoding device (300) can perform decoding using a processing unit applied by the encoding device. Accordingly, the processing unit for 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 binary tree structure. One or more conversion units may be derived from the coding unit. And, the restored image signal decoded and output through the decoding device (300) can be played back through a playback device.

[0078] The decoding device (300) can receive a signal output from the encoding device of FIG. 2 in the form of a bitstream, and the received signal can be decoded through an 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 regarding 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). Additionally, the video / image information may further include general constraint information. The decoding device can decode the picture based on information regarding the parameter sets and / or the general constraint information. The signaling / receiving information and / or syntax elements described below in this specification may be decoded through the decoding procedure and obtained from the bitstream. For example, the entropy decoding unit (310) can decode information within the bitstream based on coding methods such as exponential chord coding, CAVLC, or CABAC, and output the values ​​of syntax elements required for image restoration and the quantized values ​​of transformation coefficients regarding residuals. More specifically, the CABAC entropy decoding method can receive a bin corresponding to each syntax element in the bitstream, determine a context model using information on the syntax element to be decoded and decoding information of surrounding and decoding target blocks or information on symbols / bins decoded in the previous step, predict the probability of occurrence of the bin according to the determined context model, and 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 decoded symbol / bin information for the context model of the next symbol / bin after determining the context model. Among the information decoded in the entropy decoding unit (310), information regarding prediction is provided to the prediction unit (inter prediction unit (332) and intra prediction unit (331)), and the residual value for which entropy decoding was performed in the entropy decoding unit (310), i.e., quantized transformation coefficients and related parameter information, can be input to the residual processing unit (320). The residual processing unit (320) can derive residual signals (residual blocks, residual samples, residual sample array). Additionally, among the information decoded in 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 the decoding device (300), or the receiving unit may be a component of the entropy decoding unit (310).

[0079] Meanwhile, the decoding device according to the present specification may be called a video / image / picture decoding device, and the decoding device may be divided into an information decoding device (video / image / picture information decoding device) and a sample decoding device (video / image / 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), inverse transform unit (322), adder (340), filtering unit (350), memory (360), inter prediction unit (332), and intra prediction unit (331).

[0080] In the inverse quantization unit (321), the quantized transformation coefficients can be inversely quantized to output transformation coefficients. The inverse quantization unit (321) can rearrange the quantized transformation coefficients into a two-dimensional block form. In this case, the rearrangement can be performed based on the coefficient scan order performed by the encoding device. The inverse quantization unit (321) can perform inverse quantization on the quantized transformation coefficients using quantization parameters (e.g., quantization step size information) and obtain transformation coefficients.

[0081] In the inverse conversion unit (322), the conversion coefficients are inversely converted to obtain a residual signal (residual block, residual sample array).

[0082] The prediction unit (320) can perform a prediction for the current block and generate a predicted block containing prediction samples for the current block. The prediction unit (320) can determine whether an intra prediction or an inter prediction is applied to the current block based on information regarding the prediction output from the entropy decoding unit (310), and can determine a specific intra / inter prediction mode.

[0083] The prediction unit (320) can generate a prediction signal based on various prediction methods described below. For example, the prediction unit (320) may apply intra prediction or inter prediction for prediction of a single block, and may also apply intra prediction and inter prediction simultaneously. This may be called a combined inter and intra prediction (CIIP) mode. Additionally, the prediction unit may be based on an intra block copy (IBC) prediction mode or a palette mode for prediction of a block. The IBC prediction mode or palette mode may be used for content video / video coding, such as in games, such as SCC (screen content coding). IBC basically performs prediction within the current picture, but it may be performed similarly to inter prediction in that it derives a reference block within the current picture. That is, IBC may utilize at least one of the inter prediction techniques described in this specification. The palette mode can be viewed as an example of intra coding or intra prediction. When palette mode is applied, information regarding the palette table and palette index can be included in the above video / image information and signaled.

[0084] The intra prediction unit (331) can predict the current block by referring to samples within the current picture. The referenced samples may be located near the current block or at a certain distance from the current block depending on the prediction mode. In intra prediction, the prediction modes may include one or more non-directional modes and a plurality of directional modes. The intra prediction unit (331) may determine the prediction mode applied to the current block by using the prediction mode applied to the template area.

[0085] 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, to reduce the amount of motion information transmitted in the inter prediction mode, motion information can be predicted in blocks, sub-blocks, or samples based on the correlation of motion information between a template area and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter prediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter prediction, the template area may include a spatial template area (spatial neighboring block) existing within the current picture and a temporal template area (temporal neighboring block) existing in the reference picture. For example, the inter prediction unit (332) may construct a motion information candidate list based on the template areas and derive the 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 regarding the prediction may include information indicating the inter-prediction mode for the current block.

[0086] The adder (340) can generate a restoration signal (restoration 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 the intra prediction unit (331)). In cases where there is no residual for the block to be processed, such as when a skip mode is applied, the prediction block can be used as the restoration block.

[0087] The addition unit (340) may be called a restoration unit or a restoration block generation unit. The generated restoration signal may be used for intra-predicting the next block to be processed within the current picture, may be output after filtering as described below, or may be used for inter-predicting the next picture. Meanwhile, LMCS (luma mapping with chroma scaling) may be applied during the picture decoding process.

[0088] The filtering unit (350) can improve subjective / objective image quality by applying filtering to the restored signal. For example, the filtering unit (350) can generate a modified restored picture by applying various filtering methods to the restored picture, and can transmit the modified restored picture to memory (360), specifically to the DPB of memory (360). The various filtering methods may include deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc.

[0089] The (modified) restored 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 blocks from which motion information within the current picture has been derived (or decoded) and / or motion information of blocks within the picture that have already been restored. The stored motion information can be transmitted to the inter prediction unit (332) to be used as motion information in a spatial template area or motion information in a temporal template area. The memory (360) can store restoration samples of blocks restored within the current picture and transmit them to the intra prediction unit (331).

[0090] In this specification, the embodiments described in the filtering unit (260), inter prediction unit (221), and intra prediction unit (222) of the encoding device (200) may be applied to the filtering unit (350), inter prediction unit (332), and intra prediction unit (331) of the decoding device (300) in the same or corresponding manner.

[0091] FIG. 4 illustrates an image decoding method performed by a decoding device (300) as an embodiment according to the present disclosure.

[0092] Referring to FIG. 4, a candidate list for the current block can be constructed based on the candidate mode of the current block (S400).

[0093] A candidate mode of the current block can be derived based on a predetermined reference block. The reference block according to the present disclosure may include a neighbor block of the current block. Here, the neighbor block may include at least one of an adjacent block adjacent to the current block or a non-adjacent block not adjacent to the current block.

[0094] Generally, a single image is divided into multiple blocks, and the current block being coded may have image characteristics similar to the reference block. Therefore, the current block and the reference block are highly likely to have identical or similar intra prediction modes. Consequently, the intra prediction mode of the current block can be derived based on the intra prediction mode of the reference block.

[0095] In Multiple Transform Sets (MTS), Low Frequency Non-Separable Transform (LFNST) as a secondary transform, and Non-Separable Primary Transform (NSPT) which replaces a combination of a primary and secondary transform (e.g., DCT-2 and LFNST) with a single transform, different transform kernels may be applied depending on the directionality of the intra-prediction mode. Therefore, it is crucial to derive residual blocks (residual samples) based on prediction blocks (prediction samples) and to apply appropriate transform kernels to the derived residual samples. For example, a block predicted by a vertical intra-prediction mode can use a transform kernel corresponding to the vertical direction. However, modes that blend multiple prediction blocks, such as Decoder-side Intra-Mode Derivation (DIMD), Template-based Intra-Mode Derivation (TIMD), and Occurrence-based Intra-Coding (OBIC), possess multiple intra-prediction modes, making it difficult to determine which transform kernel to select. In addition, modes that generate prediction blocks using trained filter coefficients, such as MIP (matrix-based intra prediction) and EIP (Extrapolation filter-based intra prediction), do not have an intra prediction mode, so a transformation kernel corresponding to a non-directional mode (e.g., planar mode, DC mode) is generally selected.

[0096] At this time, a transformation kernel may be selected by utilizing the derived intra prediction mode (DIPM). The DIPM may also be referred to as the virtual intra prediction mode (VIPM). The DIPM may refer to a mode derived based on at least one of pre-recovered samples belonging to the surrounding region of the current block or prediction samples within the current block. For example, gradient information can be extracted by applying a gradient filter to an input sample, and an intra prediction mode can be derived based on the extracted gradient information. That is, a histogram of gradients (HoG) can be constructed by applying a gradient filter (e.g., a Sobel filter) to an input sample, and an intra prediction mode with a large amplitude value in the HoG can be derived. In this case, the input sample may be a surrounding sample of the current block, a prediction sample within the current block, or a combination of a surrounding sample of the current block and a prediction sample within the current block.

[0097] By utilizing DIPM, an intra-prediction mode can be derived for the aforementioned non-regular mode, and an appropriate transformation kernel can be selected based on the derived intra-prediction mode.

[0098] Multiple DIPMs may be derived for the current block. For example, from the aforementioned HoG, the mode with the largest amplitude can be derived as the first DIPM, the mode with the second largest amplitude as the second DIPM, ..., the mode with the Nth largest amplitude as the N-th DIPM, respectively. Here, selecting a transformation kernel using the first DIPM may not always be optimal. For example, selecting a transformation kernel using the second DIPM may be optimal. Therefore, selecting a transformation kernel by explicitly signaling which DIPM among the multiple DIPMs to use for the transformation kernel, or by pre-defining it as an agreement between the encoding / decoding devices, may be more effective than using a single DIPM.

[0099] Meanwhile, a non-normal mode according to the present disclosure may refer to a mode that is not a normal mode, such as a non-directional mode (e.g., planar mode, DC mode) or a directional mode (e.g., modes 0 through 66 of the VVC standard). A non-normal mode may also be referred to as a special mode.

[0100] For example, a non-normal mode may include at least one of the following: (1) a mode that blends multiple prediction blocks, such as DIMD, TIMD, and OBIC; (2) a mode that generates a prediction block using trained matrices or filter coefficients, such as MIP and EIP; (3) a mode that generates a prediction block by searching for the block most similar to the current block within a predetermined search area based on a template area, such as IntraTMP (intra template matching prediction); or (4) a mode that generates a prediction block by applying different intra prediction modes for each partition of the current block, such as SGPM (spatial geometric partitioning mode).

[0101] In the case of blocks coded in the aforementioned non-normal mode, difficulties may arise when selecting a transformation kernel because they may possess multiple intra-prediction modes or lack any intra-prediction modes. Furthermore, if a reference block being searched during the process of constructing a candidate list is coded in a non-normal mode, difficulties may arise in constructing the list because the reference block may possess multiple intra-prediction modes or lack any. For example, if the non-normal mode of a reference block possesses multiple intra-prediction modes, the candidate list can be constructed using the first intra-prediction mode. Alternatively, if the non-normal mode of a reference block lacks an intra-prediction mode, the candidate list can be constructed using an undirected mode, or restrictions can be placed to prevent the candidate list from being constructed based on that reference block. However, constructing the candidate list in this manner may not be effective. Below, we will examine a method for effectively constructing the candidate list.

[0102] If a block coded in a non-normal mode is found during the process of searching for a reference block to construct a candidate list, at least one of the following 1 to 7 may be considered as an intra prediction mode representing the reference block and used as a candidate mode. It is obvious that the intra prediction modes constructed in the candidate list do not overlap with each other.

[0103] 1. Non-directional mode

[0104] 2. First DIPM

[0105] 3. Any one of the second to Nth DIPMs

[0106] 4. Two or more DIPMs among the first to Nth DIPMs

[0107] 5. Pre-stored intra-prediction mode

[0108] 6. Any one of the pre-stored intra prediction modes

[0109] 7. Two or more intra prediction modes among the pre-stored intra prediction modes

[0110] Here, the non-directional mode may be a planar mode or a DC mode. The first to Nth DIPMs may be the top N intra-prediction modes in descending order of amplitude in the HoG derived based on the input sample, i.e., the prediction sample within the reference block. N may be an integer greater than or equal to 1. The pre-stored intra-prediction mode(s) may be the top M intra-prediction modes in descending order of amplitude in the HoG derived based on the input sample, i.e., the pre-recovered sample belonging to the surrounding region of the reference block. M may be an integer greater than or equal to 1.

[0111] For example, if only one DIPM is used in the reference block, that DIPM can be set to candidate mode and configured in the candidate list. If the reference block selects a conversion kernel based on the first DIPM, that first DIPM can be set to candidate mode and configured in the candidate list.

[0112] For example, if N DIPMs are used in a reference block, any one of the N DIPMs may be set to candidate mode and configured in a candidate list. If the reference block selects a transformation kernel based on any one of the N DIPMs, the DIPM used to select the transformation kernel may be set to candidate mode and configured in a candidate list. Here, N may be an integer greater than or equal to 1. For example, the value of N may be 3.

[0113] For example, if a reference block is coded in a non-normal mode having multiple stored intra prediction modes such as DIMD, OBIC, and TIMD, the first mode among the multiple stored intra prediction modes may be set as a candidate mode and configured in the candidate list.

[0114] For example, if a reference block is coded in a non-normal mode that does not have an intra-predicted mode, such as MIP, EIP, or IntraTMP, a non-directed mode (e.g., planner mode or DC mode) may be set as a candidate mode and configured in the candidate list.

[0115] For example, even if a reference block is coded in a non-normal mode that does not have an intra prediction mode, such as MIP, EIP, or IntraTMP, the reference block may have a DIPM. Specifically, prediction samples of the reference block can be derived based on non-normal modes such as MIP, EIP, or IntraTMP. In this case, among the HoGs derived based on the prediction samples of the reference block, the top N intra prediction modes (where N is an integer greater than or equal to 1) in descending order of amplitude can be derived as DIPMs. At least one of the derived DIPMs can be used to select a transformation kernel for the reference block.

[0116] If a reference block is coded in a non-normal mode that does not have an intra prediction mode, such as MIP, EIP, or IntraTMP, but has only a first DIPM, that first DIPM can be configured in a candidate mode and included in the candidate list.

[0117] Alternatively, if a reference block is coded in a non-normal mode that does not have an intra prediction mode, such as MIP, EIP, or IntraTMP, but has multiple DIPMs, the DIPM used to select the conversion kernel of the reference block may be configured in the candidate mode and configured in the candidate list.

[0118] It may also be effective to use DIPM for reference blocks that have one or more intra prediction modes. For example, in the case of SGPM, partitions within a block may have different intra prediction modes. In this case, if it is not effective to construct a candidate list based on the intra prediction mode of any one of the partitions, the list can be constructed using DIPM.

[0119] Even if a reference block is coded in a non-normal mode having an intra prediction mode, one or more DIPMs may be derived for the reference block. Specifically, prediction samples of the reference block may be derived based on a non-normal mode having an intra prediction mode. In this case, among the HoGs derived based on the prediction samples of the reference block, the top N intra prediction modes (where N is an integer greater than or equal to 1) in descending order of amplitude may be derived as DIPMs. That is, one DIPM may be derived for the reference block or multiple DIPMs may be derived. At least one of the derived DIPMs may be used to select a transformation kernel for the reference block.

[0120] For example, if a reference block is coded in a non-normal mode with an intra-prediction mode and has only one first DIPM, that first DIPM can be set as a candidate mode and configured in the candidate list.

[0121] For example, if a reference block is coded in a non-normal mode having an intra-prediction mode and has multiple DIPMs, the DIPM used to select the transformation kernel of the reference block among the multiple DIPMs may be set as a candidate mode and configured in a candidate list.

[0122] If a reference block is coded in SGPM, a candidate mode can be set based on the reference block as follows.

[0123] (Method 1) Among the partitions within a reference block, the intra prediction mode of a partition at a specific location may be set as a candidate mode and configured in a candidate list. Here, the specific location may be determined based on information signaled through a bitstream. The information may refer to information regarding the location of a partition used to set the candidate mode. Alternatively, the specific location may be determined as a pre-defined location in an encoding / decoding device.

[0124] (Method 2) An intra prediction mode mapped to the partitioning direction of the reference block can be set as a candidate mode and configured in the candidate list.

[0125] (Method 3) A pre-derived DIPM for a reference block can be configured in candidate mode and configured in the candidate list. Here, the pre-derived DIPM is as previously described.

[0126] When a reference block is coded in SGPM, a candidate mode can be set by selectively applying any one of the pre-defined methods to an encoding / decoding device. To this end, information specifying any one of the pre-defined methods may be explicitly signaled. Here, the pre-defined methods may include at least two of the aforementioned methods 1 to 3.

[0127] Alternatively, if the reference block is coded in SGPM, a candidate mode may be set based on a pre-defined method in the encoding / decoding device. In this case, the pre-defined method may be any one of the aforementioned methods 1 to 3.

[0128] In the above embodiment, the intra prediction modes stored in the reference block (or possessed by the reference block) were referred to in order as the first mode, the second mode, etc., or as first DIPM, second DIPM, etc. Here, the order of the modes and / or DIPMs may have the following meanings.

[0129] In DIMD mode, a HoG can be configured to define the amplitude for each intra prediction mode, and the top N intra prediction modes in descending order of amplitude can be referred to as the first mode through the Nth mode, respectively.

[0130] In OBIC mode, a histogram of occurrence (HoC) defining the frequency of occurrence for each intra prediction mode can be constructed, and the top N intra prediction modes in descending order of occurrence can be referred to as the first mode through the Nth mode, respectively.

[0131] In TIMD mode, for each specific intra prediction mode, a predetermined cost can be calculated based on a template area adjacent to a reference block, and the top N intra mode candidates in ascending order of cost can be referred to as the first mode through the Nth mode, respectively.

[0132] Meanwhile, in the HoG derived based on the input samples, the top N intra prediction modes in descending order of amplitude can be derived as DIPMs. At this time, the top N intra prediction modes can be referred to as the first to N-th DIPMs, respectively. The input samples may refer to all prediction samples within the reference block. Alternatively, the input samples may be some samples derived through subsampling among the prediction samples within the reference block.

[0133] The present disclosure may apply to all of the aforementioned non-normal modes. Alternatively, the present disclosure may be limited to applying only to some of the aforementioned non-normal modes. In the process of constructing the candidate list, if a reference block coded in the aforementioned non-normal mode is found, the choice of which of the aforementioned methods to set the candidate mode may be determined through explicit signaling or by a prior agreement between the encoding / decoding devices.

[0134] The candidate list according to the present disclosure may correspond to an MPM list or a secondary MPM list. The aforementioned embodiments may also be applied in the same way to modes utilizing intra prediction modes stored in a reference block. For example, in the case of an SGPM mode, candidate modes may be configured from the reference block to determine the optimal intra prediction mode for each partition. Alternatively, the aforementioned embodiments may be applied in the same way to modes utilizing intra prediction modes stored in a reference block in inter prediction. For example, in the case of a Geometric partitioning mode (GPM), inter prediction may be performed for each partition, or inter prediction may be performed for one partition and intra prediction for another. In this case, candidate modes may be configured from the reference block to determine the intra prediction mode for intra prediction. The aforementioned embodiments may be applied in the process of configuring such candidate modes. However, this is merely an example, and the aforementioned embodiments may be applied in intra / inter prediction utilizing intra prediction modes stored in a reference block.

[0135] As previously discussed, a candidate list can be constructed by deriving a single candidate mode from a reference block coded in a non-normal mode. However, this is merely an example, and if the reference block has one or more intra prediction modes and / or one or more DIPMs, a candidate list can be constructed by deriving multiple candidate modes from the reference block. For example, if the reference block has two or more intra prediction modes, a candidate list can be constructed by setting the two intra prediction modes as candidate modes. Or, if the reference block has two or more DIPMs, a candidate list can be constructed by deriving two candidate modes from two or more DIPMs. Or, if the reference block has one or more DIPMs and one or more intra prediction modes, a candidate list can be constructed by setting a combination of DIPMs and intra prediction modes (i.e., one DIPM and one intra prediction mode) as candidate modes.

[0136] If a reference block coded in a non-normal mode has multiple intra prediction modes, the number of intra prediction modes used to construct a candidate list among the multiple intra prediction modes may be determined based on explicitly signaled information. Here, the information may relate to the number of intra prediction modes used to construct the candidate list. Alternatively, the number of intra prediction modes used to construct the candidate list may be determined by a pre-defined number between the encoding / decoding devices.

[0137] For example, if a reference block coded in non-normal mode has K intra prediction modes, all K intra prediction modes may be used to construct a candidate list, or only some of the K intra prediction modes may be used to construct a candidate list. K can be an integer greater than or equal to 1.

[0138] The number of intra prediction modes used to construct the above candidate list may vary depending on the size of the reference block. Here, the size of the reference block may be defined as at least one of width, height, the product of width and height, the ratio of width to height, the sum of width and height, or the maximum / minimum value of width and height.

[0139] For example, if the reference block is a block coded in a non-normal mode and the product of the width and height of the reference block is greater than or equal to a threshold value (e.g., 1024), a candidate list can be constructed using multiple intra prediction modes among the intra prediction modes of the reference block. Otherwise, a candidate list can be constructed using one of the intra prediction modes among the intra prediction modes of the reference block. However, this is merely an example, and pre-defined threshold values ​​and / or conditions between the encoding / decoding devices may be used. Alternatively, the threshold value may be determined variably based on explicitly signaled threshold information.

[0140] The number of intra prediction modes used to construct the above candidate list may vary depending on the size of the current block. Here, the size of the current block may be defined as at least one of width, height, the product of width and height, the ratio of width to height, the sum of width and height, or the maximum / minimum value of width and height.

[0141] For example, in the case where a reference block is coded in a non-normal mode having multiple intra prediction modes, if the product of the width and height of the current block is greater than or equal to a threshold value (e.g., 1024), a candidate list can be constructed using the multiple intra prediction modes. On the other hand, if the product of the width and height of the current block is less than the threshold value, a candidate list can be constructed using one of the multiple intra prediction modes. However, this is merely an example, and a pre-defined threshold value and / or condition between the encoding / decoding devices may be used. Alternatively, the threshold value may be determined variably based on explicitly signaled threshold value information.

[0142] If a reference block is a block coded in a non-normal mode, the reference block may have multiple modes (i.e., at least one intra-prediction mode and / or at least one DIPM). In this case, which of the multiple modes will be included in the candidate list can be determined through explicit signaling.

[0143] For example, if a reference block is a block coded in a non-normal mode and stores multiple modes, which of the multiple modes is configured in the candidate list can be determined through the explicit signaling of the intra_mode_set_flag. The multiple modes may include at least one of the modes 1 through 7 described above. For example, if intra_modeSet_flag has a value of 0, the first mode (mode_set0) may be set as a candidate mode and the candidate list may be configured. If intra_modeSet_flag has a value of 1, the second mode (mode_set1) may be set as a candidate mode and the candidate list may be configured. Conversely, if intra_modeSet_flag has a value of 1, the first mode (mode_set0) may be set as a candidate mode and the candidate list may be configured. If intra_modeSet_flag has a value of 0, the second mode (mode_set1) may be set as a candidate mode and the candidate list may be configured.

[0144] The above first mode and second mode may be defined as shown in Table 1 below according to the non-normal mode of the reference block.

[0145] Non-normal Mode 1st Mode (mode_set0) 2nd Mode (mode_set1) DIMD, OBIC, TIMD First Mode Second Mode MIP, EIP, IntraTMP Planner Mode First DIPM SGPM Intra-prediction mode mapped to partition direction First DIPM

[0146] According to Table 1, in the case where it is determined that the first mode (mode_set0) is used, the first mode of the reference block may be used as the first mode based on the fact that the reference block is a block coded in a non-normal mode such as DIMD, OBIC, or TIMD. Alternatively, the planner mode may be used as the first mode based on the fact that the reference block is a block coded in a non-normal mode such as MIP, EIP, or IntraTMP. Alternatively, the intra prediction mode mapped to the partition direction of the reference block may be used as the first mode based on the fact that the reference block is a block coded in a non-normal mode such as SGPM. However, this is merely an example, and the intra prediction mode of the partition at a specific location according to the above-described method 1 or the previously derived DIPM according to the above-described method 3 may be used as the first mode based on the fact that the reference block is a block coded in a non-normal mode such as SGPM.

[0147] On the other hand, in the case where it is determined that a second mode (mode_set1) is used, based on the fact that the reference block is a block coded in a non-normal mode such as DIMD, OBIC, or TIMD, the second mode of said reference block may be used as the second mode. Or, based on the fact that the reference block is a block coded in a non-normal mode such as MIP, EIP, IntraTMP, or SGPM, the first DIPM may be used as the second mode.

[0148] For some non-normal modes, different modes from the reference block may be set as candidate modes. For example, for non-normal modes such as DIMD, OBIC, and TIMD, the first mode may be used identically as both the first mode and the second mode. On the other hand, for non-normal modes such as MIP, EIP, IntraTMP, and SGPM, different modes may be used as the first mode and the second mode, respectively. For example, the first mode and the second mode may be defined as shown in Table 2 below, depending on the non-normal mode of the reference block.

[0149] Non-normal Mode 1st Mode (mode_set0) 2nd Mode (mode_set1) DIMD, OBIC, TIMD First Mode First Mode MIP, EIP, IntraTMP Planner Mode First DIPM SGPM Intra-predictive mode mapped to partition direction First DIPM

[0150] According to Table 2, in the case where it is determined that the first mode (mode_set0) is used, the first mode of the reference block may be used as the first mode based on the fact that the reference block is a block coded in a non-normal mode such as DIMD, OBIC, or TIMD. Alternatively, the planner mode may be used as the first mode based on the fact that the reference block is a block coded in a non-normal mode such as MIP, EIP, or IntraTMP. Alternatively, the intra prediction mode mapped to the partition direction of the reference block may be used as the first mode based on the fact that the reference block is a block coded in a non-normal mode such as SGPM. However, this is merely an example, and the intra prediction mode of the partition at a specific location according to the above-described method 1 or the previously derived DIPM according to the above-described method 3 may be used as the first mode based on the fact that the reference block is a block coded in a non-normal mode such as SGPM.

[0151] On the other hand, in the case where it is determined that a second mode (mode_set1) is used, the first mode of the reference block may be used as the second mode based on the fact that the reference block is a block coded in a non-normal mode such as DIMD, OBIC, or TIMD. Or, the first DIPM may be used as the second mode based on the fact that the reference block is a block coded in a non-normal mode such as MIP, EIP, IntraTMP, or SGPM.

[0152] The first mode and the second mode may also be defined as shown in Table 3 below, depending on the non-normal mode of the reference block.

[0153] Non-normal Mode 1st Mode (mode_set0) 2nd Mode (mode_set1) DIMD, OBIC, TIMD First Mode Second Mode SGPM, MIP, EIP, IntraTMP First DIPM Second DIPM

[0154] According to Table 3, in the case where it is determined that the first mode (mode_set0) is used, the first mode of the reference block may be used as the first mode based on the fact that the reference block is a block coded in a non-normal mode such as DIMD, OBIC, or TIMD. Or, the first DIPM may be used as the first mode based on the fact that the reference block is a block coded in a non-normal mode such as SGPM, MIP, EIP, or IntraTMP.

[0155] On the other hand, in the case where it is determined that a second mode (mode_set1) is used, based on the fact that the reference block is a block coded in a non-normal mode such as DIMD, OBIC, or TIMD, the second mode of said reference block may be used as the second mode. Or, based on the fact that the reference block is a block coded in a non-normal mode such as MIP, EIP, IntraTMP, or SGPM, a second DIPM may be used as the second mode.

[0156] The first mode and the second mode may also be defined as shown in Table 4 below, depending on the non-normal mode of the reference block.

[0157] Non-regular Mode 1st Mode (mode_set0) 2nd Mode (mode_set1) DIMD, OBIC, TIMD First Mode Second Mode SGPM, MIP, EIP, IntraTMP Planner Mode First DIPM

[0158] According to Table 4, in the case where it is determined that the first mode (mode_set0) is used, the first mode of the reference block may be used as the first mode based on the fact that the reference block is a block coded in a non-normal mode such as DIMD, OBIC, or TIMD. Alternatively, the planner mode may be used as the first mode based on the fact that the reference block is a block coded in a non-normal mode such as SGPM, MIP, EIP, or IntraTMP.

[0159] On the other hand, in the case where it is determined that a second mode (mode_set1) is used, based on the fact that the reference block is a block coded in a non-normal mode such as DIMD, OBIC, or TIMD, the second mode of said reference block may be used as the second mode. Or, based on the fact that the reference block is a block coded in a non-normal mode such as MIP, EIP, IntraTMP, or SGPM, the first DIPM may be used as the second mode.

[0160] The first mode and the second mode can be defined as shown in Table 5 below, depending on the non-normal mode of the reference block.

[0161] Non-normal mode 1st mode (mode_set0) 2nd mode (mode_set1) DIMD, OBIC, TIMD First mode Second mode MIP, EIP, IntraTMP First DIPM Second DIPM SGPM Intra prediction mode mapped to the splitting direction First DIPM

[0162] According to Table 5, in the case where it is determined that the first mode (mode_set0) is used, the first mode of the reference block may be used as the first mode based on the fact that the reference block is a block coded in a non-normal mode such as DIMD, OBIC, or TIMD. Alternatively, the first DIPM may be used as the first mode based on the fact that the reference block is a block coded in a non-normal mode such as MIP, EIP, or IntraTMP. Alternatively, the intra prediction mode mapped to the partition direction of the reference block may be used as the first mode based on the fact that the reference block is a block coded in a non-normal mode such as SGPM. However, this is merely an example, and the intra prediction mode of the partition at a specific location according to the above-described method 1 or the previously derived DIPM according to the above-described method 3 may be used as the first mode based on the fact that the reference block is a block coded in a non-normal mode such as SGPM.

[0163] On the other hand, in the case where it is determined that a second mode (mode_set1) is used, based on the fact that the reference block is a block coded in a non-normal mode such as DIMD, OBIC, or TIMD, the second mode of said reference block may be used as the second mode. Or, based on the fact that the reference block is a block coded in a non-normal mode such as MIP, EIP, IntraTMP, or SGPM, the first DIPM may be used as the second mode.

[0164] The first mode and the second mode can be defined as shown in Table 6 below, depending on the non-normal mode of the reference block.

[0165] Non-normal Mode 1st Mode (mode_set0) 2nd Mode (mode_set1) DIMD, OBIC, TIMD First Mode Second Mode MIP, EIP, IntraTMP Planner Mode First DIPM SGPM Intra-prediction mode mapped to partition direction First DIPM

[0166] According to Table 6, in the case where it is determined that the first mode (mode_set0) is used, the first mode of the reference block may be used as the first mode based on the fact that the reference block is a block coded in a non-normal mode such as DIMD, OBIC, or TIMD. Alternatively, the planner mode may be used as the first mode based on the fact that the reference block is a block coded in a non-normal mode such as MIP, EIP, or IntraTMP. Alternatively, the intra prediction mode mapped to the partition direction of the reference block may be used as the first mode based on the fact that the reference block is a block coded in a non-normal mode such as SGPM. However, this is merely an example, and the intra prediction mode of the partition at a specific location according to the above-described method 1 or the previously derived DIPM according to the above-described method 3 may be used as the first mode based on the fact that the reference block is a block coded in a non-normal mode such as SGPM.

[0167] On the other hand, in the case where it is determined that a second mode (mode_set1) is used, based on the fact that the reference block is a block coded in a non-normal mode such as DIMD, OBIC, or TIMD, the second mode of said reference block may be used as the second mode. Or, based on the fact that the reference block is a block coded in a non-normal mode such as MIP, EIP, IntraTMP, or SGPM, the first DIPM may be used as the second mode.

[0168] If a reference block found during the process of constructing the candidate list is a block coded in a non-normal mode, the DIPM or intra-prediction mode used by that reference block to select a transformation kernel may be constructed in the candidate list. For example, the first mode and the second mode may be defined as shown in Table 7 below, depending on the non-normal mode of the reference block.

[0169] Non-normal mode, Mode 1 (mode_set0), Mode 2 (mode_set1), DIMD, OBIC, TIMD, First mode, First mode, MIP, EIP, IntraTMP, Planner mode transition kernel-related DIPM, SGPM, Intra predictive mode transition kernel-related DIPM mapped to partition direction

[0170] According to Table 7, in the case where it is determined that the first mode (mode_set0) is used, the first mode of the reference block may be used as the first mode based on the fact that the reference block is a block coded in a non-normal mode such as DIMD, OBIC, or TIMD. Alternatively, the planner mode may be used as the first mode based on the fact that the reference block is a block coded in a non-normal mode such as MIP, EIP, or IntraTMP. Alternatively, the intra prediction mode mapped to the partition direction of the reference block may be used as the first mode based on the fact that the reference block is a block coded in a non-normal mode such as SGPM. However, this is merely an example, and the intra prediction mode of the partition at a specific location according to the above-described method 1 or the previously derived DIPM according to the above-described method 3 may be used as the first mode based on the fact that the reference block is a block coded in a non-normal mode such as SGPM.

[0171] On the other hand, in the case where it is determined that a second mode (mode_set1) is used, the first mode of the reference block may be used as the second mode based on the fact that the reference block is a block coded in a non-normal mode such as DIMD, OBIC, or TIMD. Or, based on the fact that the reference block is a block coded in a non-normal mode such as MIP, EIP, IntraTMP, or SGPM, the DIPM used by the reference block to select a conversion kernel may be used as the second mode.

[0172] In the above embodiments, two sets (i.e., mode_set0 and mode_set1) were utilized, but this is merely an example. Other modes may be utilized by defining three or more sets, in which case a signaling cost of 1-bit or more may be incurred to specify each set.

[0173] Unlike the table above, if a reference block is coded in a specific non-normal mode (e.g., SGPM, EIP), the candidate list may be restricted from being constructed based on that reference block.

[0174] Below, we will examine the signaling method of intra_modeSet_flag in detail.

[0175] intra_modeSet_flag can be signaled based on a specific flag (isSpecialIntraModeflag).

[0176] Here, the value of isSpecialIntraModeflag can be determined based on whether the referenced block is a block coded in non-normal mode.

[0177] For example, if the reference block is a block coded in a non-normal mode and has at least one mode, the value of isSpecialIntraModeflag may be derived as 1. Here, the at least one mode may include at least one of the modes 1 through 7 described above. Otherwise, the value of isSpecialIntraModeflag may be derived as 0.

[0178] Or, if the reference block is a block coded in non-normal mode, the value of isSpecialIntraModeflag may be 1. Otherwise (i.e., if the reference block is not a block coded in non-normal mode), the value of isSpecialIntraModeflag may be 0.

[0179] intra_modeSet_flag may be signaled based on the value of isSpecialIntraModeflag being 1, and intra_modeSet_flag may not be signaled based on the value of isSpecialIntraModeflag being 0.

[0180] intra_modeSet_flag can be signaled before the MPM flag is signaled. The MPM flag can indicate whether the intra prediction mode of the current block is derived based on MPM (most probable mode).

[0181] For example, intra_modeSet_flag can be signaled as shown in Table 8 below.

[0182] coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) {Descriptor...if (isSpecialIntraModeflag)intra_modeSet_flag[ x0 ][ y0 ]ae(v)if( intra_luma_mpm_flag[ x0 ][ y0 ]) {...} elseintra_luma_mpm_remainder[ x0 ][ y0 ]ae(v)...

[0183] Referring to Table 8, the MPM flag may be signaled after the intra_modeSet_flag is signaled. If the value of the MPM flag is 1, the intra prediction mode of the current block may be derived based on one of the multiple MPMs in the MPM list. To this end, an MPM index specifying one of the multiple MPMs in the MPM list may be signaled. On the other hand, if the value of the MPM flag is 0, non-MPM information (intra_luma_mpm_remainder) specifying one of the remaining modes excluding the MPMs may be signaled.

[0184] Alternatively, intra_modeSet_flag can be signaled as shown in Table 9 below.

[0185] coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) {Descriptor...if (isSpecialIntraModeflag)intra_modeSet_flag[ x0 ][ y0 ]ae(v)if( intra_luma_mpm_flag[ x0 ][ y0 ]) {...}else{intra_luma_secondary_mpm_flag[ x0 ][ y0 ]ae(v)if( intra_luma_secondary_mpm_flag[ x0 ][ y0 ] ) {...} elseintra_luma_mpm_remainder[ x0 ][ y0 ]ae(v)}...

[0186] Referring to Table 9, the MPM flag can be signaled after intra_modeSet_flag is signaled.

[0187] If the value of the MPM flag is 1, the intra prediction mode of the current block may be induced based on any one of the multiple MPMs in the MPM list. To this end, an MPM index specifying any one of the multiple MPMs in the MPM list may be signaled. On the other hand, if the value of the MPM flag is 0, an SMPM flag indicating whether the intra prediction mode of the current block is induced based on a secondary MPM may be signaled.

[0188] When the value of the SMPM flag is 1, the intra prediction mode of the current block may be derived based on one of the multiple secondary MPMs in the secondary MPM list. To this end, an SMPM index specifying one of the multiple secondary MPMs in the secondary MPM list may be signaled. On the other hand, when the value of the SMPM flag is 0, non-MPM information (intra_luma_mpm_remainder) specifying one of the remaining modes excluding the MPMs and secondary MPMs may be signaled.

[0189] intra_modeSet_flag can be signaled after the MPM flags are signaled.

[0190] For example, intra_modeSet_flag may be signaled after the MPM index or non-MPM information has been signaled. Here, the MPM index and non-MPM information are as previously discussed. For example, intra_modeSet_flag may be signaled as shown in Table 10 below.

[0191] coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) {Descriptor...if( intra_luma_mpm_flag[ x0 ][ y0 ]) {...} elseintra_luma_mpm_remainder[ x0 ][ y0 ]ae(v)if (isSpecialIntraModeflag)intra_modeSet_flag[ x0 ][ y0 ]ae(v)...

[0192] Referring to Table 10, the MPM flag can be signaled. If the value of the MPM flag is 1, the intra prediction mode of the current block can be derived based on one of the multiple MPMs in the MPM list. To this end, an MPM index specifying one of the multiple MPMs in the MPM list can be signaled. On the other hand, if the value of the MPM flag is 0, non-MPM information (intra_luma_mpm_remainder) specifying one of the remaining modes excluding the MPMs can be signaled.

[0193] In this case, if the MPM index is signaled, intra_modeSet_flag may be signaled after the MPM index is signaled. Alternatively, if non-MPM information is signaled, intra_modeSet_flag may be signaled after the non-MPM information is signaled.

[0194] intra_modeSet_flag may be signaled after the MPM index, SMPM index, or non-MPM information has been signaled. Here, the MPM index, SMPM index, and non-MPM information are as previously discussed. For example, intra_modeSet_flag may be signaled as shown in Table 11 below.

[0195] coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) {Descriptor...if( intra_luma_mpm_flag[ x0 ][ y0 ]) {...} else{intra_luma_secondary_mpm_flag[ x0 ][ y0 ]ae(v)if( intra_luma_secondary_mpm_flag[ x0 ][ y0 ] ) {...} elseintra_luma_mpm_remainder[ x0 ][ y0 ]ae(v)}if (isSpecialIntraModeflag)intra_modeSet_flag[ x0 ][ y0 ]ae(v)...

[0196] Referring to Table 11, the MPM flag can be signaled. When the value of the MPM flag is 1, the intra prediction mode of the current block can be induced based on any one of the multiple MPMs in the MPM list. To this end, an MPM index specifying any one of the multiple MPMs in the MPM list can be signaled. On the other hand, when the value of the MPM flag is 0, the SMPM flag can be signaled.

[0197] When the value of the SMPM flag is 1, the intra prediction mode of the current block may be derived based on one of the multiple secondary MPMs in the secondary MPM list. To this end, an SMPM index specifying one of the multiple secondary MPMs in the secondary MPM list may be signaled. On the other hand, when the value of the SMPM flag is 0, non-MPM information (intra_luma_mpm_remainder) specifying one of the remaining modes excluding the MPMs and secondary MPMs may be signaled.

[0198] In this case, if the MPM index is signaled, intra_modeSet_flag may be signaled after the MPM index is signaled. Alternatively, if the SMPM index is signaled, intra_modeSet_flag may be signaled after the SMPM index is signaled. Alternatively, if non-MPM information is signaled, intra_modeSet_flag may be signaled after the non-MPM information is signaled.

[0199] The signaling of intra_modeSet_flag may be omitted based on at least one of the position or size of the current block. For example, if the top-left sample within the current block is located at the coordinates (0,0) within the picture, the signaling of intra_modeSet_flag may be omitted, and the value of intra_modeSet_flag may be 0. Alternatively, if the top-left sample within the current block is located at the coordinates (0,0) within the picture, the signaling of intra_modeSet_flag may be omitted, and the value of intra_modeSet_flag may be 1. If the size of the current block is greater than or equal to a specific threshold value (e.g., if the product of the width and height of the current block is greater than or equal to 1024), the signaling of intra_modeSet_flag may be omitted, and the value of intra_modeSet_flag may be 0. Alternatively, if the current block size is greater than or equal to a specific threshold value, the signaling of intra_modeSet_flag may be omitted, and the value of intra_modeSet_flag may be induced to 1.

[0200] However, this is merely one example of omitting the signaling of intra_modeSet_flag based on the current block's location / size, and the signaling of intra_modeSet_flag may also be omitted based on other locations, threshold values, and / or conditions predetermined between the encoding / decoding devices.

[0201] Referring to FIG. 4, prediction samples of the current block can be derived based on the candidate list (S410).

[0202] An intra-prediction mode of the current block can be derived based on any one of a plurality of candidate modes belonging to a candidate list. To this end, index information (e.g., MPM index, SMPM index) for specifying any one of the plurality of candidate modes can be signaled via a bitstream.

[0203] Alternatively, the intra prediction mode of the current block may be derived based on any one of the remaining modes, excluding the majority candidate modes of the candidate list. To this end, non-MPM information for specifying any one of the remaining modes may be signaled via a bitstream.

[0204] The method for inducing the aforementioned intra prediction mode can be determined based on a flag (e.g., MPM flag, SMPM flag) indicating whether the intra prediction mode of the current block is induced based on the candidate modes of the candidate list.

[0205] Prediction samples of the current block can be derived by performing intra prediction based on the above-derived intra prediction mode.

[0206] Referring to Fig. 4, the current block can be restored based on the predicted samples of the current block (S420).

[0207] Transform coefficients can be derived based on residual information signaled through a bitstream. Residual samples can be generated by applying at least one of inverse quantization or inverse transformation to the derived transformation coefficients. Reconstruction samples of the current block can be generated based on the predicted samples of the current block and the residual samples.

[0208] FIG. 5 illustrates a schematic configuration of a decoding device (300) that performs a decoding method according to the present disclosure.

[0209] Referring to FIG. 5, the decoding device (300) may include a candidate list configuration unit (500), a prediction sample generation unit (510), and a restoration unit (520). The candidate list configuration unit (500) and the prediction sample derivation unit (510) may be provided in the intra prediction unit (331) of FIG. 3.

[0210] The candidate list configuration unit (500) can set a candidate mode according to S400 and perform the process of configuring a candidate list based thereon. The prediction sample induction unit (510) can perform the process of inducing a prediction sample according to S410. The restoration unit (520) can perform the process of restoring the current block according to S420.

[0211] FIG. 6 illustrates an encoding method performed by an encoding device (200) as an embodiment according to the present disclosure.

[0212] A candidate list for the current block can be configured based on the candidate mode of the current block (S600). The method for setting / inducing the candidate mode of the current block and the method for configuring the candidate list are as described with reference to FIG. 4.

[0213] Predicted samples of the current block can be derived based on the candidate list derived in S600 (S610). The method for deriving the predicted samples is as described with reference to FIG. 4.

[0214] Residual samples of the current block can be derived based on the predicted samples derived in S610 (S620). Residual samples can be derived by differentiating the predicted samples from the original samples of the current block.

[0215] Transformation coefficients can be derived from residual samples derived in S620 (S630). Transformation coefficients can be derived by performing at least one of transformation or quantization on the residual samples.

[0216] A bitstream can be generated by encoding residual information regarding the transformation coefficients of the current block derived in S630 (S640).

[0217] FIG. 7 illustrates a schematic configuration of an encoding device (200) that performs an encoding method according to the present disclosure.

[0218] Referring to FIG. 7, the encoding device (200) may include a candidate list configuration unit (700), a prediction sample derivation unit (710), a residual sample derivation unit (720), a transformation coefficient derivation unit (730), and a residual information encoding unit (740).

[0219] The candidate list composition unit (700) and the prediction sample derivation unit (710) may be provided in the intra prediction unit (222) of FIG. 2. The residual sample derivation unit (720) and the transformation coefficient derivation unit (730) may be provided in the residual processing unit (230) of FIG. 2. The residual information encoding unit (740) may be provided in the entropy encoding unit (240).

[0220] The candidate list configuration unit (700) can set a candidate mode according to S600 and perform the process of configuring a candidate list based thereon. Additionally, the prediction sample derivation unit (710) can perform the process of deriving a prediction block according to S610. The residual sample derivation unit (720) can perform the process of deriving a residual sample according to S620. The transformation coefficient derivation unit (730) can perform the process of deriving a transformation coefficient according to S630. The residual information encoding unit (740) can perform the process of encoding residual information according to S640.

[0221] In the embodiments described above, methods are described based on flowcharts 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 as described above. Furthermore, those skilled in the art will understand that the steps shown in the flowcharts are not exclusive, and other steps may be included, or one or more steps of the flowcharts may be omitted without affecting the scope of the embodiments of this document.

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

[0223] When the embodiments described in this document are implemented in software, the method described above may be implemented as a module (process, function, etc.) that performs the function described above. The module may be stored in memory and executed by a processor. The memory may be located inside or outside the processor and may be connected to the processor by various well-known means. The processor may include an application-specific integrated circuit (ASIC), other chipsets, logic circuits, and / or data processing devices. The memory may include read-only memory (ROM), random access memory (RAM), flash memory, memory cards, storage media, and / or other storage devices. That is, the embodiments described in this document may be implemented and executed on a processor, microprocessor, controller, or chip. For example, the functional units illustrated in each figure may be implemented and executed on a computer, processor, microprocessor, controller, or chip. In this case, information on instructions or algorithms for implementation may be stored on a digital storage medium.

[0224] In addition, the decoding device and encoding device to which the embodiment(s) of the present specification are applied may be included in multimedia broadcasting transmission and reception devices, mobile communication terminals, home cinema video devices, digital cinema video devices, surveillance cameras, video conversation devices, real-time communication devices such as video communication, mobile streaming devices, storage media, camcorders, Video on Demand (VoD) service providers, Over-the-top video (OTT) devices, internet streaming service providers, 3D video devices, virtual reality (VR) devices, augmented reality (AR) devices, video phone video devices, transportation terminals (e.g., vehicle terminals (including autonomous vehicles), airplane terminals, ship terminals, etc.), and medical video devices, and may be used to process video signals or data signals. For example, Over-the-top video (OTT) devices may include game consoles, Blu-ray players, internet-connected TVs, home theater systems, smartphones, tablet PCs, Digital Video Recorders (DVRs), etc.

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

[0226] Additionally, the embodiments of this specification may be implemented as a computer program product by program code, and said program code may be executed on a computer by the embodiments of this specification. said program code may be stored on a carrier readable by a computer.

[0227] FIG. 8 shows an example of a content streaming system to which embodiments of the present disclosure can be applied.

[0228] Referring to FIG. 8, 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.

[0229] The above encoding server compresses content input from multimedia input devices, such as smartphones, cameras, and camcorders, into digital data to generate a bitstream and transmits it to the streaming server. As another example, if multimedia input devices, such as smartphones, cameras, and camcorders, generate the bitstream directly, the encoding server may be omitted.

[0230] The bitstream above may 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 may temporarily store the bitstream during the process of transmitting or receiving the bitstream.

[0231] The streaming server transmits multimedia data to a user device based on a user request via a web server, and the web server acts as a medium to inform the user of available services. When a user requests a desired service from the web server, the web server transmits it 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, and in this case, the control server plays the role of controlling commands and responses between each device within the content streaming system.

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

[0233] Examples of the above user devices may include mobile phones, smartphones, laptop computers, digital broadcasting terminals, PDAs (personal digital assistants), PMPs (portable multimedia players), navigation systems, slate PCs, tablet PCs, ultrabooks, wearable devices (e.g., smartwatches, smart glasses, HMDs (head-mounted displays)), digital TVs, desktop computers, digital signage, etc.

[0234] Each server within the above-mentioned content streaming system can be operated as a distributed server, and in this case, data received from each server can be processed in a distributed manner.

[0235] The claims described in this specification may be combined in various ways. For example, the technical features of the method claims in this specification may be combined to be implemented as a device, and the technical features of the device claims in this specification may be combined to be implemented as a method. Furthermore, the technical features of the method claims and the technical features of the device claims in this specification may be combined to be implemented as a device, and the technical features of the method claims and the technical features of the device claims in this specification may be combined to be implemented as a method.

Claims

1. A step of constructing a candidate list for the current block based on the candidate mode of the current block; A step of deriving prediction samples of the current block based on the above candidate list; and The method includes the step of restoring the current block based on the above prediction samples, A method in which the candidate mode of the above current block is derived based on a reference block coded in a non-normal mode.

2. In Paragraph 1, A method in which a candidate mode of the current block is derived based on an intra-mode flag for specifying one of a plurality of modes for the reference block.

3. In Paragraph 2, When the above intra-mode flag is a first value, the first mode among a plurality of modes for the above-mentioned reference block is set as the candidate mode, and A method in which, when the above intra-mode flag is a second value, the second mode among a plurality of modes for the above reference block is set as the candidate mode.

4. In Paragraph 3, A method in which, if the reference block is a block coded in a non-normal mode of DIMD (decoder-side intra mode derivation), OBIC (occurrence-based intra coding), or TIMD (template-based intra mode derivation), the first mode of the reference block is used as the first mode and the second mode of the reference block is used as the second mode.

5. In Paragraph 3, A method in which, if the reference block is a block coded in a non-normal mode of MIP (matrix-based intra prediction), EIP (Extrapolation filter-based intra prediction), IntraTMP (intra template matching prediction), or SGPM (spatial geometric partitioning mode), a planar mode is used as the first mode, and the first DIPM (derived intra prediction mode) of the reference block is used as the second mode.

6. In Paragraph 3, A method in which, when the above reference block is a block coded in a non-normal mode of SGPM (spatial geometric partitioning mode), an intra prediction mode mapped to the partitioning direction of the above reference block is used as the first mode, and a first DIPM (derived intra prediction mode) of the above reference block is used as the second mode.

7. In Paragraph 3, A method in which, if the reference block is a block coded in a non-normal mode of MIP (matrix-based intra prediction), EIP (Extrapolation filter-based intra prediction), IntraTMP (intra template matching prediction), or SGPM (spatial geometric partitioning mode), the first DIPM (derived intra prediction mode) of the reference block is used as the first mode and the second DIPM of the reference block is used as the second mode.

8. In Paragraph 3, A method in which, where the reference block is a block coded in a non-normal mode of MIP (matrix-based intra prediction), EIP (Extrapolation filter-based intra prediction), or IntraTMP (intra template matching prediction), a planner mode is used as the first mode, and a DIPM (derived intra prediction mode) used by the reference block to select a transformation kernel is used as the second mode.

9. In Paragraph 2, The above intramode flag is signaled based on the first flag, and A method in which the first flag is determined based on whether the reference block is a block coded in the non-normal mode.

10. In Paragraph 2, A method in which a second flag indicating whether the intra prediction mode of the current block is induced based on one of a plurality of candidate modes belonging to the above candidate list is signaled through a bitstream.

11. In Paragraph 10, A method in which the above intra-mode flag is signaled through the bitstream before the above second flag is signaled.

12. In Paragraph 10, A method in which the above intra-mode flag is signaled through the bitstream after the above second flag is signaled.

13. A step of constructing a candidate list for the current block based on the candidate mode of the current block; A step of deriving prediction samples of the current block based on the above candidate list; A step of deriving residual samples of the current block based on the above prediction samples; A step of deriving transformation coefficients of the current block based on the above residual samples; and The method includes the step of encoding residual information regarding the above-mentioned transformation coefficients, A method in which the candidate mode of the above current block is derived based on a reference block coded in a non-normal mode.

14. A computer-readable storage medium for storing a bitstream generated by the method according to paragraph 13.

15. A step of acquiring a bitstream for image information; wherein the bitstream is generated based on the steps of: constructing a candidate list for the current block based on a candidate mode of the current block; deriving prediction samples of the current block based on the candidate list; deriving residual samples of the current block based on the prediction samples; deriving transformation coefficients of the current block based on the residual samples; and encoding residual information regarding the transformation coefficients, and The method includes the step of transmitting data including the above bitstream, A method in which the candidate mode of the above current block is derived based on a reference block coded in a non-normal mode.