Method for decoding image information, method for encoding image information, method for transmitting bitstream, and storage medium for storing bitstream
By deriving intra modes and utilizing MPM and SMPM lists for improved intra-prediction, the method addresses the high costs of high-resolution video transmission and storage, enhancing data efficiency and prediction performance.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- LG ELECTRONICS INC
- Filing Date
- 2025-12-23
- Publication Date
- 2026-07-02
AI Technical Summary
The increasing demand for high-resolution, high-quality video has led to higher transmission and storage costs due to the increased amount of information or bits required, necessitating improved data transmission efficiency and intra-prediction performance.
The method involves deriving intra modes for current blocks based on prediction information, generating prediction samples, and utilizing MPM and SMPM lists to enhance intra-prediction, which includes considering various surrounding block modes and inter modes for improved decoding and encoding processes.
This approach enhances data transmission efficiency and prediction performance, reducing the overall costs associated with high-resolution video transmission and storage.
Smart Images

Figure KR2025022650_02072026_PF_FP_ABST
Abstract
Description
Methods for decoding video information, methods for encoding video information, methods for transmitting bitstreams, and storage media for storing bitstreams
[0001] The present disclosure relates to a method for decoding image information, a method for encoding image information, and a method for bitstreams.
[0002] Recently, the demand for high-resolution, high-quality video, such as HD (High Definition) and UHD (Ultra High Definition), has been increasing across various fields. As video data becomes higher in resolution and quality, the relative amount of information or bits transmitted increases compared to conventional video data. This increase in the amount of transmitted information or bits leads to higher transmission and storage costs.
[0003] Accordingly, high-efficiency video compression technology is required to effectively transmit, store, and play back high-resolution, high-quality video information.
[0004] The present disclosure aims to improve data transmission efficiency.
[0005] The present disclosure aims to improve the derivation of intra-prediction.
[0006] The present disclosure aims to improve the prediction performance of intra-prediction.
[0007] The technical problems to be solved in this disclosure are not limited to those mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art to which this disclosure belongs from the description below.
[0008] According to one aspect of the present disclosure, a method for decoding image information comprises acquiring image information including prediction information, deriving an intra mode for a current block based on the prediction information, and generating a prediction sample for the current block based on the intra mode. Deriving the intra mode includes deriving an intra mode derived for the current block based on the prediction information, deriving an MPM list and an SMPM list based on at least one of the derived intra mode or a surrounding intra mode of the derived intra mode, and deriving the intra mode based on the MPM list and the SMPM list.
[0009] According to one aspect of the present disclosure, an apparatus for decoding image information comprises a memory and at least one processor connected to the memory, wherein the at least one processor acquires image information including prediction information, derives an intra mode for a current block based on the prediction information, and generates a prediction sample for the current block based on the intra mode. The at least one processor derives an intra mode derived for the current block based on the prediction information, derives an MPM list and an SMPM list based on at least one of the derived intra mode or a peripheral intra mode of the derived intra mode, and derives the intra mode based on the MPM list and the SMPM list.
[0010] In a method or device for decoding the above image information, the MPM list and the SMPM list can be derived based on a planner mode, an intra mode of an adjacent surrounding block, an intra mode derived from an inter mode of an adjacent surrounding block, a DIMD mode, an intra mode of a non-adjacent surrounding block, an intra mode derived from an inter mode of a non-adjacent surrounding block, a surrounding intra mode of the derived intra mode, a surrounding intra mode of a previously derived mode, and a default intra mode.
[0011] In a method or device for decoding the above image information, the MPM list and the SMPM list can be derived in the order of planner mode, intra mode of adjacent surrounding blocks, intra mode derived from the inter mode of adjacent surrounding blocks, DIMD mode, intra mode of non-adjacent surrounding blocks, intra mode derived from the inter mode of non-adjacent surrounding blocks, surrounding intra mode of the derived intra mode, surrounding intra mode of the previously derived mode, and default intra mode.
[0012] In a method or device for decoding the above image information, the MPM list and the SMPM list can be derived based on an induced intra mode, a planner mode, an intra mode of an adjacent surrounding block, an intra mode derived from an inter mode of an adjacent surrounding block, a DIMD mode, an intra mode of a non-adjacent surrounding block, an intra mode derived from an inter mode of a non-adjacent surrounding block, an intra mode of the surrounding intra mode of the induced intra mode, an intra mode of a previously derived mode, and a default intra mode.
[0013] In a method or device for decoding the above image information, the MPM list and the SMPM list can be derived in the order of the derived intra mode, the planner mode, the intra mode of an adjacent surrounding block, the intra mode derived from the inter mode of an adjacent surrounding block, the DIMD mode, the intra mode of a non-adjacent surrounding block, the intra mode derived from the inter mode of a non-adjacent surrounding block, the surrounding intra mode of the derived intra mode, the surrounding intra mode of the previously derived mode, and the default intra mode.
[0014] In a method or device for decoding the above image information, the MPM list and the SMPM list can be derived based on a planner mode, an intra mode of a surrounding block, an intra mode derived from an inter mode of a surrounding block, a surrounding intra mode of the derived intra mode, a surrounding intra mode of a previously derived mode, and a default intra mode.
[0015] In a method or device for decoding the above image information, the MPM list and the SMPM list can be derived in the order of planner mode, intra mode of a surrounding block, intra mode derived from the inter mode of a surrounding block, surrounding intra mode of the derived intra mode, surrounding intra mode of the previously derived mode, and default intra mode.
[0016] In a method or device for decoding the above image information, the MPM list and the SMPM list can be derived based on an induced intra mode, a planner mode, an intra mode of a surrounding block, an intra mode derived from an inter mode of a surrounding block, a surrounding intra mode of an induced intra mode, a surrounding intra mode of a previously derived mode, and a default intra mode.
[0017] In a method or device for decoding the above image information, the MPM list and the SMPM list can be derived in the order of the derived intra mode, the planner mode, the intra mode of the surrounding block, the intra mode derived from the inter mode of the surrounding block, the surrounding intra mode of the derived intra mode, the surrounding intra mode of the previously derived mode, and the default intra mode.
[0018] A method for encoding image information according to one aspect of the present disclosure comprises determining an intra mode for a current block, generating a prediction sample for the current block based on the intra mode, and encoding image information including prediction information related to the intra mode. Determining the intra mode includes deriving an intra mode induced for the current block based on the prediction information, deriving an MPM list and an SMPM list based on at least one of the induced intra mode or a surrounding intra mode of the induced intra mode, and deriving the intra mode based on the MPM list and the SMPM list.
[0019] According to one aspect of the present disclosure, an apparatus for encoding image information comprises a memory and at least one processor connected to the memory, wherein the at least one processor determines an intra mode for a current block, generates a prediction sample for the current block based on the intra mode, and encodes image information including prediction information associated with the intra mode. The at least one processor includes a method for deriving an intra mode induced for a current block based on the prediction information, deriving an MPM list and an SMPM list based on at least one of the induced intra mode or a surrounding intra mode of the induced intra mode, and deriving the intra mode based on the MPM list and the SMPM list.
[0020] A method for a bitstream according to one aspect of the present disclosure comprises generating a bitstream and transmitting data including said bitstream. Generating said bitstream comprises determining an intramode for a current block, generating a prediction sample for said current block based on said intramode, and encoding image information including prediction information related to said intramode. Determining said intramode comprises deriving an intramode induced for a current block based on said prediction information, deriving an MPM list and an SMPM list based on at least one of said induced intramode or a surrounding intramode of said induced intramode, and deriving said intramode based on said MPM list and said SMPM list.
[0021] According to one aspect of the present disclosure, an apparatus for a bitstream comprises at least one processor for generating a bitstream and a transmission unit for transmitting data including said bitstream. The at least one processor determines an intramode for a current block, generates a prediction sample for said current block based on said intramode, and encodes image information including prediction information associated with said intramode. The at least one processor includes a method for deriving an intramode induced for a current block based on said prediction information, deriving an MPM list and an SMPM list based on at least one of said induced intramode or a surrounding intramode of said induced intramode, and deriving the intramode based on said MPM list and said SMPM list.
[0022] According to one aspect of the present disclosure, a computer-readable recording medium can store a bitstream generated by a method of encoding image information.
[0023] The features briefly summarized above regarding the present disclosure are merely exemplary aspects of the detailed description of the present disclosure that follows and do not limit the scope of the present disclosure.
[0024] According to the present disclosure, data transmission efficiency can be improved.
[0025] According to the present disclosure, the induction of intra-prediction can be improved.
[0026] According to the present disclosure, the prediction performance of intra-prediction can be improved.
[0027] The effects obtainable from the present disclosure are not limited to those mentioned above, and other unmentioned effects will be clearly understood by those skilled in the art to which the present disclosure belongs from the description below.
[0028] FIG. 1 is a schematic diagram illustrating a video coding system to which an embodiment according to the present disclosure can be applied.
[0029] FIG. 2 is a schematic diagram showing an encoding device to which an embodiment according to the present disclosure can be applied.
[0030] FIG. 3 is a schematic diagram showing a decoding device to which an embodiment according to the present disclosure can be applied.
[0031] FIG. 4 is a drawing for illustrating a DIMD mode that can be applied to an embodiment according to the present disclosure.
[0032] FIG. 5 is a drawing for illustrating a DIMD mode that can be applied to an embodiment according to the present disclosure.
[0033] FIG. 6 is a diagram illustrating a method for decoding image information according to one embodiment of the present disclosure.
[0034] FIG. 7 illustrates an example of the size of a histogram corresponding to each of a plurality of intramodes according to one embodiment of the present disclosure.
[0035] FIG. 8 illustrates an example of the size of a histogram corresponding to each of a plurality of intramodes according to one embodiment of the present disclosure.
[0036] FIG. 9 illustrates an example of a method for deriving an intra mode according to one embodiment of the present disclosure.
[0037] FIG. 10 is a drawing illustrating a method for encoding image information according to one embodiment of the present disclosure.
[0038] FIG. 11 is a drawing illustrating a method for decoding or encoding image information according to one embodiment of the present disclosure.
[0039] FIG. 12 is a drawing showing a template area for decoding or encoding image information according to one example of the present disclosure.
[0040] FIG. 13 is a diagram illustrating a method for deriving an intra-mode candidate list to decode or encode image information according to one embodiment of the present disclosure.
[0041] FIG. 14 is a diagram illustrating a method for obtaining an error value to decode or encode image information according to one example of the present disclosure.
[0042] FIG. 15 is a drawing illustrating an exemplary content streaming system to which an embodiment according to the present disclosure can be applied.
[0043] Hereinafter, embodiments of the present disclosure are described in detail with reference to the attached drawings so that those skilled in the art can easily implement them. However, the present disclosure may be embodied in various different forms and is not limited to the embodiments described herein.
[0044] In describing the embodiments of the present disclosure, detailed descriptions of known configurations or functions are omitted if it is determined that such descriptions could obscure the essence of the present disclosure. Additionally, parts of the drawings unrelated to the description of the present disclosure have been omitted, and similar parts are denoted by similar reference numerals.
[0045] In the present disclosure, when a component is described as being "connected," "combined," or "joined" with another component, this may include not only a direct connection but also an indirect connection in which another component exists in between. Furthermore, when a component is described as "comprising" or "having" another component, this means that, unless specifically stated otherwise, it does not exclude the other component but may include an additional component.
[0046] In the present disclosure, terms such as first, second, etc. are used solely for the purpose of distinguishing one component from another and do not limit the order or importance of the components unless specifically stated otherwise. Accordingly, within the scope of the present disclosure, a first component in one embodiment may be referred to as a second component in another embodiment, and likewise, a second component in one embodiment may be referred to as a first component in another embodiment.
[0047] In this disclosure, distinct components are intended to clearly describe their respective features and do not imply that the components are separate. That is, multiple components may be integrated to form a single hardware or software unit, or a single component may be distributed to form multiple hardware or software units. Accordingly, such integrated or distributed embodiments are included within the scope of this disclosure, unless otherwise noted.
[0048] In the present disclosure, the components described in various embodiments do not necessarily mean essential components, and some may be optional components. Accordingly, embodiments consisting of a subset of the components described in one embodiment are also included within the scope of the present disclosure. Furthermore, embodiments including additional components in addition to the components described in various embodiments are also included within the scope of the present disclosure.
[0049] The present disclosure relates to the encoding and decoding of images. For example, the methods and embodiments disclosed in this document may be applied to methods disclosed in the VVC (versatile video coding) standard, EVC (essential video coding) standard, AV1 (AOMedia Video 1) standard, AVS2 (2nd generation of audio video coding standard) or next-generation video / image coding standards (e.g., H.267 or H.268).
[0050] The present disclosure presents various embodiments relating to video / image coding, and unless otherwise stated, said embodiments may be performed in combination with one another.
[0051] Unless newly defined in this disclosure, the terms used herein may have the ordinary meanings commonly used in the technical field to which this disclosure belongs.
[0052] In this disclosure, "video" may refer to a set of images over time. In this disclosure, "picture" generally refers to a unit representing a single image at a specific time, and a slice / tile is a unit that constitutes a part of a picture in coding. A slice / tile may include one or more coding tree units (CTUs). A picture may be composed of one or more slices / tiles. A picture may be composed of one or more tile groups. A tile group may include one or more tiles. A brick may represent a rectangular area of rows of CTUs within a tile in a picture. In this document, tile group and slice may be used interchangeably. For example, in this disclosure, a tile group / tile group header may be referred to as a slice / slice header.
[0053] In the present disclosure, "pixel" or "pel" may refer to the smallest unit constituting a picture (or image). Additionally, "sample" may be used as a term corresponding to pixel. A sample may generally represent a pixel or a pixel value, may represent only the pixel / pixel value of the luminance component, or may represent only the pixel / pixel value of the chroma component.
[0054] In this disclosure, "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.
[0055] In the present disclosure, "current block" may mean one of "current coding block," "current coding unit," "block to be encoded," "block to be decoded," or "block to be processed." When prediction is performed, "current block" may mean "current prediction block" or "block to be predicted." When transformation (inverse transformation) / quantization (inverse quantization) is performed, "current block" may mean "current transformation block" or "block to be transformed." When filtering is performed, "current block" may mean "block to be filtered."
[0056] In the present disclosure, "current block" may mean a block comprising both a luminous component block and a chroma component block, or "luma block of the current block," unless explicitly stated as a chroma block. The luminous component block of the current block may be expressed by including an explicit description of a luminous component block, such as "luma block" or "current luminous block." Additionally, the chroma component block of the current block may be expressed by including an explicit description of a chroma component block, such as "chroma block" or "current chroma block."
[0057] In the present disclosure, " / " and "," may be interpreted as "and / or." For example, "A / B" and "A, B" may be interpreted as "A and / or B." Additionally, "A / B / C" and "A, B, C" may mean "at least one of A, B and / or C."
[0058] In the present disclosure, "or" may be interpreted as "and / or". For example, "A or B" may mean 1) "A" only, 2) "B" only, or 3) "A and B". Alternatively, in the present disclosure, "or" may mean "additionally or alternatively".
[0059] FIG. 1 is a schematic diagram illustrating a video / image coding system to which an embodiment according to the present disclosure can be applied.
[0060] Referring to FIG. 1, a video / image coding system may include a first device (source device) and a second device (receiving device). The source device may transmit encoded video / image or data in the form of a file or streaming to the receiving device via a digital storage medium or a network.
[0061] 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 called a video / image encoding device, and the decoding device may be called a video / image decoding device. The transmitter may be included in the encoding device. The receiver may be included in the decoding device. The renderer may include a display unit, and the display unit may be composed of a separate device or an external component.
[0062] 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. The video / image capture device may include, for example, one or more cameras, a video / image archive containing previously captured video / images, etc. The video / image generation device may include, for example, a computer, a tablet, and a smartphone, etc., and may generate video / images (electronically). For example, virtual video / images 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.
[0063] 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.
[0064] 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.
[0065] 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.
[0066] The renderer can render the decoded video / image. The rendered video / image can be displayed through the display unit.
[0067] FIG. 2 is a schematic diagram illustrating an encoding device to which an embodiment according to the present disclosure can be applied.
[0068] 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 encoder chipset or processor) according to the embodiment. Additionally, the memory (270) may include a DPB (Decoded Picture Buffer) and may be configured by a digital storage medium. The hardware component may further include the memory (270) as an internal / external component.
[0069] 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). A coding unit may be recursively divided into a coding tree unit (CTU) or a largest coding unit (LCU) according to a QTBTTT (Quad-tree binary-tree ternary-tree) structure. For example, a single coding unit may be divided into multiple coding units of a deeper depth based on a quad-tree structure, a binary-tree structure, and / or a ternary-tree structure. For example, a quad-tree structure may be applied first, and a binary-tree structure and / or a ternary-tree structure may be applied later. Alternatively, a binary-tree structure may be applied first. A coding procedure according to the present disclosure may be performed based on the 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 maximum coding unit may be recursively divided into lower-depth coding units so that a coding unit of the optimal size is used as the final coding unit. Here, the coding procedure may include procedures such as prediction, transformation, and restoration described later. As another example, the processing unit may further include a prediction unit (PU) or a transformation unit (TU). The prediction unit and the transformation unit may each be divided or partitioned from the final coding unit.The above prediction unit may be a unit of sample prediction, and the above transformation unit may be a unit that derives transformation coefficients and / or a unit that derives a residual signal from transformation coefficients.
[0070] 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 can 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.
[0071] The encoding device (200) can generate a residual signal (residual block, residual sample array) by subtracting a prediction signal (predicted block, prediction sample array) output from an inter prediction unit (221) or an intra prediction unit (222) from an input image signal (original block, original sample array), and the generated residual signal is transmitted to a conversion unit (232). In this case, as illustrated, the unit that subtracts the prediction signal (predicted block, prediction sample array) from the input image signal (original block, original sample array) within the encoding device (200) may be called a subtraction unit (231). The prediction unit (220) can perform a prediction for a block to be processed (hereinafter, current block) and generate a predicted block (predicted block) containing prediction samples for said current block. The prediction unit (220) can determine whether intra prediction is applied or inter prediction is applied in units of the current block or CU. The prediction unit (220) can generate various information regarding 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 prediction can be encoded in the entropy encoding unit (240) and output in the form of a bitstream.
[0072] The intra prediction unit (222) can predict the current block by referring to samples within the current picture. The referenced samples may be located near the current block or away from it, depending on the prediction mode. In intra prediction, the prediction modes may include a plurality of non-directional modes and a plurality of directional modes. The non-directional modes may include, for example, a DC mode and a Planar mode. The directional modes may include, for example, 33 directional prediction modes or 65 directional prediction modes, depending on the degree of fineness of the prediction direction. However, this is merely an example, and depending on the settings, more or fewer directional prediction modes may be used. The intra prediction unit (222) may also determine the prediction mode applied to the current block by using the prediction mode applied to the surrounding blocks.
[0073] The inter prediction unit (221) can derive a predicted 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 neighboring blocks and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include information on the inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter prediction, neighboring blocks may include spatial neighboring blocks existing within the current picture and temporal neighboring blocks existing in the reference picture. The reference picture containing the reference blocks and the reference picture containing the temporal neighboring blocks may be the same or different from each other. The temporal neighboring blocks may be referred to by names such as collocated reference block, collocated CU (colCU), etc. A reference picture containing the aforementioned temporal surrounding blocks may be called a collocated picture (colPic). For example, the inter prediction unit (221) may construct a list of motion information candidates based on surrounding blocks and generate information indicating which candidate is used to derive the motion vector and / or reference picture index of the current block. Inter prediction may be performed based on various prediction modes, for example, in the case of skip mode and merge mode, the inter prediction unit (221) may use the motion information of surrounding blocks as motion information of the current block. In the case of skip mode, unlike merge mode, a residual signal may not be transmitted.In the motion vector prediction (MVP) mode, the motion vector of surrounding blocks is used as a motion vector predictor, and the motion vector of the current block can be indicated by signaling the motion vector difference.
[0074] The prediction unit (220) may generate a prediction signal based on various prediction methods and / or prediction techniques described below. For example, the prediction unit (220) may apply intra prediction or inter prediction for the prediction of the current block, as well as apply intra prediction and inter prediction simultaneously. A prediction method that applies intra prediction and inter prediction simultaneously for the prediction of the current block may be called combined inter and intra prediction (CIIP). Additionally, the prediction unit (220) may be based on an intra block copy (IBC) prediction mode or a palette mode for the prediction of the block. The IBC prediction mode or palette mode may be used for content video / video coding, such as in games, for example, screen content coding (SCC). 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 disclosure. Palette mode can be viewed as an example of intra-coding or intra-prediction. When palette mode is applied, sample values within a picture can be signaled based on information regarding palette tables and palette indices.
[0075] The prediction signal generated through the prediction unit (220) can be used to generate a restoration signal or to generate a residual signal. The subtraction unit (231) can generate a residual signal (residual signal, residual block, residual sample array) by subtracting the prediction signal (predicted block, prediction sample array) output from the prediction unit (220) from the input image signal (original block, original sample array). The generated residual signal can be transmitted to the conversion unit (232).
[0076] 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 reconstructed pixels. The transformation process may be applied to a block of pixels of the same size in a square, or to a block of variable size that is not square.
[0077] The quantization unit (233) can quantize the transformation coefficients and transmit them to the entropy encoding unit (240). 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.
[0078] The entropy encoding unit (240) can perform various encoding methods such as, for example, exponential Golomb, CAVLC (context-adaptive variable length coding), CABAC (context-adaptive binary arithmetic coding), etc. The entropy encoding unit (190) may encode information required for video / image restoration (e.g., values of syntax elements) together or separately, in addition to quantized transform coefficients. The encoded information (e.g., encoded video / image information) may be transmitted or stored in the form of a bitstream in units of NAL (network abstraction layer) units. The video / image information may further include information 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 signaling information, transmitted information, and / or syntax elements mentioned in the present disclosure 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.
[0079] The above bitstream may be transmitted via a network or stored in a digital storage medium. Here, the network may include a broadcasting network and / or a communication network, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. A transmission unit (not shown) for transmitting a signal output from the entropy encoding unit (240) and / or a storage unit (not shown) for storing it may be provided as an internal / external element of the encoding device (200), or the transmission unit may be provided as a component of the entropy encoding unit (240).
[0080] The quantized transformation coefficients output from the quantization unit (233) can be used to generate a residual 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).
[0081] Meanwhile, LMCS (luma mapping with chroma scaling) may be applied during the picture encoding and / or restoration process.
[0082] The adder (250) can generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the reconstructed residual signal to the prediction signal output from the inter prediction unit (221) or the intra prediction unit (222). 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 reconstructed unit or a reconstructed block generation unit. The generated reconstructed 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 undergoing filtering as described below.
[0083] 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 (170). The various filtering methods may include, for example, 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), as described below in the description of each filtering method. The information regarding filtering can be encoded in the entropy encoding unit (240) and output in the form of a bitstream.
[0084] The modified restored picture transmitted to the memory (270) can be used as a reference picture in the inter-prediction unit (221). Through this, the encoding device (200) can avoid prediction mismatches between the encoding device (200) and the decoding device when inter-prediction is applied, and can also improve encoding efficiency.
[0085] The DPB in memory (270) can store a modified restored picture to be used as a reference picture in the inter prediction unit (221). Memory (270) can store motion information of blocks from which motion information is derived (or encoded) in the current picture and / or motion information of blocks in 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 of spatially surrounding blocks or motion information of temporally surrounding blocks. Memory (270) can store restoration samples of restored blocks in the current picture and transmit them to the intra prediction unit (222).
[0086] FIG. 3 is a schematic diagram illustrating a decoding device to which an embodiment according to the present disclosure can be applied.
[0087] As illustrated in FIG. 3, the decoding device (300) may be configured to include an entropy decoder (310), a residual processor (320), a predictor (330), an adder (340), a filter (350), and a memory (360). The predictor (330) may include an inter-predictor (332) and an intra-predictor (331). The residual processor (320) may include a dequantizer (321) and an inverse transformer (321). 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 decoder chipset or a processor) according to an embodiment. Additionally, the memory (360) may include a decoded picture buffer (DPB) and may be configured by a digital storage medium. The hardware component may further include the memory (360) as an internal / external component.
[0088] When a bitstream containing video / image information is input, the decoding device (300) can restore the image by performing a process corresponding to the process performed by the encoding device (200) of FIG. 2. For example, the decoding device (300) can perform decoding using a processing unit applied in the encoding device (200). Thus, the processing unit for decoding may be, for example, a coding unit. The coding unit may be a coding tree unit, or a maximum coding unit may be obtained by dividing it according to a quad tree structure, a binary tree structure, and / or a binary tree structure. And, the restored image signal decoded and output through the decoding device (300) can be played back through a playback device (not shown).
[0089] The decoding device (300) can receive a signal output from the encoding device (200) of FIG. 2 in the form of a bitstream. 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 necessary for image restoration (or picture restoration) (e.g., video / image information). 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 (300) can decode the picture based on the information regarding the parameter sets and / or the general constraint information. The signaling / received information and / or syntax elements described below can be obtained from the bitstream by decoding through the decoding procedure. 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 values of syntax elements required for image restoration and quantized values of transformation coefficients regarding residuals. More specifically, the CABAC entropy decoding method can receive bins 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 (330), and residual values 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). Meanwhile, the decoding device according to the present disclosure may be called a video / image / picture decoding device, and the decoding device may be divided into an information decoder (video / image / picture information decoder) and a sample decoder (video / image / picture sample decoder). The information decoder may include the entropy decoding unit (310), and the sample decoder may include at least one of the inverse quantization unit (321), inverse transform unit (322), adder (340), filtering unit (350), memory (360), inter prediction unit (332), and intra prediction unit (331).
[0090] 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 in the encoding device (200). 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.
[0091] In the inverse conversion unit (322), the conversion coefficients can be inversely converted to obtain a residual signal (residual block, residual sample array).
[0092] The prediction unit (330) 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 the prediction of a single block, and may also apply intra prediction and inter prediction simultaneously. This may be called combined inter and intra prediction (CIIP). Additionally, the prediction unit may be based on an intra block copy (IBC) prediction mode or a palette mode for the prediction of a block. The IBC prediction mode or palette mode may be used for content video / video coding, such as in games, for example, screen content coding (SCC). 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 disclosure. The palette mode can be viewed as an example of intra coding or intra prediction. When the palette mode is applied, information regarding the palette table and palette index can be included in the above video / image information and signaled.
[0093] The intra prediction unit (331) can predict the current block by referring to samples within the current picture. The description of the intra prediction unit (222) may be applied equally to the intra prediction unit (331). The referenced samples may be located in the neighborhood of the current block or located away from it, depending on the prediction mode. In intra prediction, the prediction modes may include a plurality of 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 neighboring blocks.
[0094] The inter prediction unit (332) can derive a predicted 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 neighboring blocks and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include information on the inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter prediction, neighboring blocks may include spatial neighboring blocks existing within the current picture and temporal neighboring blocks existing in the reference picture. For example, the inter prediction unit (332) may construct a motion information candidate list based on the neighboring blocks 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 (techniques), and information regarding the prediction may include information indicating the mode (technique) of inter-prediction for the current block.
[0095] The adder (340) can generate a restoration signal (restored picture, restored block, restored sample array) by adding the acquired residual signal to the prediction signal (predicted block, predicted sample array) output from the prediction unit (330) (including the inter prediction unit (332) and / or 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 predicted block can be used as the restoration block. The description of the adder (250) can be applied equally to the adder (340). The adder (340) may be called a restoration unit or a restoration 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 undergoing filtering as described below.
[0096] Meanwhile, LMCS (luma mapping with chroma scaling) may be applied during the picture decoding process.
[0097] 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 store the modified restored picture in memory (360), specifically in the DPB of memory (360). The various filtering methods may include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc.
[0098] 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 of spatially surrounding blocks or motion information of temporally surrounding blocks. The memory (360) can store restoration samples of blocks restored within the current picture and transmit them to the intra-prediction unit (331).
[0099] 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.
[0100] Intra prediction may represent a prediction that generates prediction samples for the current block based on reference samples within the picture to which the current block belongs (hereinafter, the current picture). When intra prediction is applied to the current block, surrounding reference samples to be used for the intra prediction of the current block may be derived. The surrounding reference samples of the current block may include a sample adjacent to the left boundary of the current block of size nWxnH and a total of 2xnH samples adjacent to the bottom-left, a sample adjacent to the top boundary of the current block and a total of 2xnW samples adjacent to the top-right, and one sample adjacent to the top-left of the current block. Alternatively, the surrounding reference samples of the current block may include multiple columns of upper surrounding samples and multiple rows of left surrounding samples. Additionally, the surrounding reference samples of the current block may include a total of nH samples adjacent to the right boundary of the current block of size nWxnH, a total of nW samples adjacent to the bottom boundary of the current block, and one sample adjacent to the bottom-right of the current block.
[0101] However, some of the surrounding reference samples of the current block may not yet be decoded or may not be available. In this case, the decoder may construct the surrounding reference samples to be used for prediction by substituting the unavailable samples with available samples. Alternatively, the surrounding reference samples to be used for prediction may be constructed through the interpolation of available samples.
[0102] When neighboring reference samples are derived, a prediction sample can be derived based on the average or interpolation of the neighboring reference samples of the current block, and (ii) the prediction sample can also be derived based on a reference sample existing in a specific (prediction) direction with respect to the prediction sample among the neighboring reference samples of the current block. Case (i) may be called a non-directional mode or non-angular mode, and case (ii) may be called a directional mode or angular mode. Additionally, the prediction sample may be generated through interpolation between the first neighboring sample and the second neighboring sample located in the opposite direction of the prediction direction of the intra prediction mode of the current block relative to the prediction sample of the current block among the neighboring reference samples. The above case may be called Linear Interpolation Intra Prediction (LIP). Furthermore, chroma prediction samples may be generated based on luminance samples using a linear model. This case may be called LM mode. In addition, a provisional prediction sample of the current block may be derived based on filtered surrounding reference samples, and a prediction sample of the current block may be derived by performing a weighted sum of the provisional prediction sample and at least one reference sample derived according to the intra prediction mode among the existing surrounding reference samples, i.e., unfiltered surrounding reference samples. The above case may be called PDPC (Position dependent intra prediction).In addition, intra-prediction coding can be performed by selecting the reference sample line with the highest prediction accuracy among the surrounding multiple reference sample lines of the current block, deriving a prediction sample using a reference sample located in the prediction direction from that line, and signaling the used reference sample line to a decoding device. The above-described case may be referred to as multi-reference line (MRL) intra prediction or MRL-based intra prediction. Furthermore, the current block may be divided into vertical or horizontal subpartitions to perform intra prediction based on the same intra prediction mode, while deriving and utilizing surrounding reference samples at the subpartition level. That is, in this case, the intra prediction mode for the current block is applied identically to the subpartitions, but intra prediction performance can be improved depending on the circumstances by deriving and utilizing surrounding reference samples at the subpartition level. This prediction method may be referred to as intra sub-partitions (ISP) or ISP-based intra prediction. The above-described intra prediction methods may be referred to as intra prediction types to distinguish them from intra prediction modes. The above-mentioned intra-prediction type may be referred to by various terms, such as intra-prediction technique or additional intra-prediction mode. For example, the above-mentioned intra-prediction type (or additional intra-prediction mode, etc.) may include at least one of the aforementioned LIP, PDPC, MRL, and ISP. A general intra-prediction method excluding specific intra-prediction types such as LIP, PDPC, MRL, and ISP may be referred to as a normal intra-prediction type. The normal intra-prediction type may be generally applied when specific intra-prediction types such as the above are not applied, and prediction may be performed based on the aforementioned intra-prediction mode. Meanwhile, post-processing filtering may be performed on the derived prediction samples as necessary.
[0103] Specifically, the intra-prediction procedure may include an intra-prediction mode / type determination step, a peripheral reference sample derivation step, and an intra-prediction mode / type-based prediction sample derivation step. Additionally, a post-filtering step for the derived prediction samples may be performed as needed.
[0104] Meanwhile, in addition to the intra prediction types described above, affine linear weighted intra prediction (ALWIP) may be used. The ALWIP may also be referred to as LWIP (linear weighted intra prediction) or MIP (matrix weighted intra prediction or matrix-based intra prediction). When the MIP is applied to the current block, prediction samples for the current block may be derived by i) using surrounding reference samples for which an averaging procedure has been performed, ii) performing a matrix-vector-multiplication procedure, and iii) further performing horizontal / vertical interpolation procedures as necessary. The intra prediction modes used for the MIP may be configured differently from the intra prediction modes used in the LIP, PDPC, MRL, ISP intra prediction, or normal intra prediction described above. The intra prediction mode for the MIP may be referred to as the MIP intra prediction mode, MIP prediction mode, or MIP mode.
[0105] For example, the metrics and offsets used in the matrix vector multiplication may be set differently depending on the intra prediction mode for the MIP. Here, the metrics may be called (MIP) weight metrics, and the offset may be called (MIP) offset vectors or (MIP) bias vectors.
[0106] When intra prediction is applied, the intra prediction mode applied to the current block can be determined using the intra prediction mode of the surrounding blocks. For example, the decoding device may select one of the mpm candidates within the mpm (most probable mode) list derived based on the intra prediction mode of the surrounding blocks of the current block (e.g., left and / or upper surrounding blocks) and additional candidate modes based on the received mpm index, or may select one of the remaining intra prediction modes not included in the mpm candidates (and planner mode) based on remaining intra prediction mode information. The mpm list may be configured to include or not include the planner mode as a candidate. For example, if the mpm list includes the planner mode as a candidate, the mpm list may have 6 candidates, and if the mpm list does not include the planner mode as a candidate, the mpm list may have 3 candidates. If the above mpm list does not include planar mode as a candidate, a not planar flag (e.g., intra_luma_not_planar_flag) indicating whether the intra prediction mode of the current block is not planar mode may be signaled. For example, the mpm flag may be signaled first, and the mpm index and the not planar flag may be signaled when the value of the mpm flag is 1. Additionally, the mpm index may be signaled when the value of the not planar flag is 1. Here, the configuration in which the above mpm list does not include planar mode as a candidate is not because the planar mode is not mpm, but rather because planar mode is always considered as mpm, so the not planar flag is signaled first to check whether it is planar mode.
[0107] For example, whether the intra prediction mode applied to the current block is among the mpm candidates (and planner mode) or is in remaining mode can be indicated based on the mpm flag (e.g., intra_luma_mpm_flag). A value of 1 for the mpm flag may indicate that the intra prediction mode for the current block is among the mpm candidates (and planner mode), and a value of 0 for the mpm flag may indicate that the intra prediction mode for the current block is not among the mpm candidates (and planner mode). A value of 0 for the not planar flag (e.g., intra_luma_not_planar_flag) may indicate that the intra prediction mode for the current block is planner mode, and a value of 1 for the not planar flag may indicate that the intra prediction mode for the current block is not planner mode. The above mpm index may be signaled in the form of the mpm_idx or intra_luma_mpm_idx syntax element, and the above remaining intra prediction mode information may be signaled in the form of the rem_intra_luma_pred_mode or intra_luma_mpm_remainder syntax element. For example, the above remaining intra prediction mode information may point to one of the remaining intra prediction modes among all intra prediction modes that are not included in the mpm candidates (and planar modes) by indexing them in order of prediction mode number. The above intra prediction mode may be an intra prediction mode for the lumina component (sample). Hereinafter, the intra prediction mode information includes the above mpm flag (e.g., intra_luma_mpm_flag), the above not planar flag (e.g., intra_luma_not_planar_flag), and the above mpm index (e.g.It may include at least one of the remaining intra-pred mode information (rem_intra_luma_pred_mode or intra_luma_mpm_remainder) (mpm_idx or intra_luma_mpm_idx). In this disclosure, the MPM list may be referred to by various terms such as MPM candidate list, candModeList, etc. When a MIP is applied to the current block, a separate mpm flag (e.g., intra_mip_mpm_flag), mpm index (e.g., intra_mip_mpm_idx), and remaining intra-pred mode information (e.g., intra_mip_mpm_remainder) for the MIP may be signaled, and the not-planar flag is not signaled.
[0108] Generally, when an image is segmented into blocks, the current block to be coded and its neighboring blocks share similar image characteristics. Consequently, the current block and neighboring blocks are highly likely to have identical or similar intra prediction modes. Therefore, the encoder can utilize the intra prediction mode of the neighboring blocks to encode the intra prediction mode of the current block.
[0109] For example, an encoder / decoder can construct a list of most probable modes (MPM) for the current block. The above MPM list may also be referred to as an MPM candidate list. Here, MPM may refer to a mode used to improve coding efficiency by considering the similarity between the current block and surrounding blocks during intra-predictive mode coding. As described above, the MPM list may be constructed to include planner modes, or it may be constructed to exclude planner modes. For example, if the MPM list includes planner modes, the number of candidates in the MPM list may be 6. And, if the MPM list does not include planner modes, the number of candidates in the MPM list may be 5.
[0110] The encoder / decoder can configure an MPM list containing 6 MPMs.
[0111] To construct the MPM list, the types of modes described below may be considered.
[0112] Default intra modes
[0113] Neighbor intra modes
[0114] Intramodes derived from surrounding intermodes (IPM modes)
[0115] DIMD (Decoder-side intra mode derivation) modes
[0116] Derived intra modes
[0117] For the aforementioned surrounding intra-modes, surrounding blocks, namely the left surrounding block, upper surrounding block, lower-left surrounding block, upper-right surrounding block, and upper-left surrounding block, may be considered. When utilizing surrounding intra-modes as an MPM, the input order may vary depending on the size information of the current block. For example, if the height of a block is greater than or equal to the width of a block, the intra-mode of the upper surrounding block may be considered first, followed by the intra-mode of the left surrounding block.
[0118] Intra-mode information can be obtained via the IPM buffer even when neighboring blocks are coded in Inter-mode rather than Intra-mode. If the block at the location indicated by the motion vector of an adjacent Inter-block is coded in Intra-mode, that Intra-mode can be stored in the IPM buffer. The Intra-mode stored in the IPM buffer can be utilized as the MPM mode of the neighboring block.
[0119] MPM candidate configurations can be made from the DIMD described below. If the current block is not in DIMD mode, an intra mode derived from DIMD can be used as an MPM candidate.
[0120] As described above, if the MPM list is configured not to include a planner mode, the planner mode is excluded from the list, and the number of MPM list candidates can be set to 5.
[0121] The encoder / decoder can construct a secondary most probable modes (secondary MPM) list for the current block. The secondary MPM list may also be referred to as a secondary MPM candidate list. Additionally, the secondary MPM list can be constructed by excluding duplicate intra modes from the MPM candidate list. For example, if the MPM list includes mode 50, the secondary MPM list may not include mode 50.
[0122] The encoder / decoder can form M secondary MPM lists, and M can be 16.
[0123] To configure the secondary MPM list, the types of modes described below may be considered.
[0124] Default intra modes
[0125] Neighbor intra modes
[0126] Intramodes derived from surrounding intermodes (IPM modes)
[0127] DIMD (Decoder-side intra mode derivation) modes
[0128] Derived intra modes
[0129] For the aforementioned surrounding intra-modes, surrounding blocks, namely the left surrounding block, upper surrounding block, lower-left surrounding block, upper-right surrounding block, and upper-left surrounding block, may be considered. When utilizing surrounding intra-modes as a secondary MPM, the input order may vary depending on the size information of the current block. For example, if the height of a block is greater than or equal to the width of a block, the intra-mode of the upper surrounding block may be considered first, followed by the intra-mode of the left surrounding block.
[0130] Intra-mode information can be obtained via the IPM buffer even when neighboring blocks are coded in Inter-mode rather than Intra-mode. If the block at the location indicated by the motion vector of an adjacent Inter-block is coded in Intra-mode, that Intra-mode can be stored in the IPM buffer. The Intra-mode stored in the IPM buffer can be utilized as the secondary MPM mode of the neighboring block.
[0131] FIGS. 4 and FIGS. 5 are drawings for illustrating a DIMD mode that can be applied to an embodiment according to the present disclosure.
[0132] The Decoder-side intra mode derivation (DIMD) mode can be used by deriving it in the encoder and decoder without directly transmitting intra prediction mode information. First, the horizontal gradient and vertical gradient are obtained from the second neiboring sample column and row, and a Histogram of Gradients (HoG) can be constructed from them.
[0133] The HoG can be configured as shown in Fig. 4. The HoG can be obtained by applying a Sobel filter using an L-shaped row and column of 3 pixels around the current block. If the boundaries of the block exist in different CTUs, they are not used for texture analysis.
[0134] Subsequently, up to five intra modes with the largest histogram amplitude can be selected, and the final prediction block can be constructed by blending the prediction block predicted using these modes with the planar mode. Weights can be derived from the histogram amplitude. Additionally, a DIMD flag is transmitted on a block-by-block basis to check whether DIMD is used.
[0135] Figure 5 is an example of selecting two intra modes with the largest histogram amplitude and then blending the prediction block predicted using these modes with the planar mode to form a final prediction block.
[0136] For a block of size W / X / H, if the upper or left histogram size is twice as large as the other, the weights of each of the five derived modes are modified. In this case, the weights depend on the position and can be calculated as follows.
[0137] When the upper histogram is twice the size of the left histogram:
[0138] [Formula 1]
[0139]
[0140] When the left histogram is twice the size of the upper histogram:
[0141] [Equation 2]
[0142]
[0143] wDimd here iis the unmodified uniform weight of the selected DIMD, and i can be predefined and set to 10.
[0144] Each embodiment or combination of embodiments of the present disclosure relates to a method for inducing and utilizing an intra mode in an encoder and a decoder.
[0145] In the present disclosure, the intra mode derived from the encoder and decoder may be called VIPM (Virtual intra prediction mode) or DIPM (Dervied intra prediction mode).
[0146] However, this is merely an example, and it should be understood that the induced intra-mode described in this disclosure may be referred to by other names. Regardless of the name, any intra-mode induced in accordance with the manner described in this disclosure may be included within the scope of this disclosure.
[0147] FIG. 6 is a diagram illustrating a method for decoding image information according to an embodiment of the present disclosure. FIG. 7 illustrates an example of the size of a histogram corresponding to each of a plurality of intra-modes according to an embodiment of the present disclosure. FIG. 8 illustrates an example of the size of a histogram corresponding to each of a plurality of intra-modes according to an embodiment of the present disclosure. FIG. 9 illustrates an example of a method for deriving intra-modes according to an embodiment of the present disclosure.
[0148] The decoding method (S600) may include the operations described below.
[0149] The terms or names described below (e.g., names of syntax elements or variables, etc.) are merely examples, and the technical features of the present disclosure are not limited to the terms or names described below. For example, the image information described below may include various information according to the embodiments described in the present disclosure and may include information described in at least one of the tables described above.
[0150] The operations described below do not constitute an essential component of the decoding method according to one embodiment, and at least some of the operations described below may be omitted. Furthermore, the operations described below do not constitute a sufficient component of the decoding method according to one embodiment, and the previously described operations may be added. Moreover, unless they contradict the previously described operations, the operations described below form an embodiment integrally with the previously described operations and do not form a separate embodiment distinct from the previously described operations.
[0151] The decoding method (S600) can be executed by a decoding device including a memory and a processor electrically connected to the memory, for example, by a processor.
[0152] The decoding device can acquire image information (S610).
[0153] For example, the processor of the decoding device can acquire image information including prediction information and residual information.
[0154] Image information may be in various forms. For example, image information may be a syntax element or a syntax structure containing one or more syntax elements. Additionally, image information may be a raw byte sequence payload (RBSP) containing one or more syntax elements or one or more syntax structures. Additionally, image information may be a Network Abstraction Layer (NAL) unit containing one or more RBSPs or a bitstream containing one or more NALs.
[0155] Prediction information may include information related to the prediction of coding blocks included in each of the coded pictures. For example, prediction information may include information related to prediction modes, such as intra prediction mode, inter prediction mode, and intra block copy (IBC) prediction mode. For example, regarding intra prediction, prediction information may further include intra information related to non-directional mode, directional mode, matrix-weighted intra prediction (MIP), multi-reference line (MRL), or intra sub-partitions (ISP). For example, the prediction information may further include information related to inter modes related to inter prediction, such as skip mode, Regular MERGE mode, MMVD (Merge with Motion Vector Difference) mode, CIIP (Combined Inter and Intra Prediction) mode, TRIANGULAR mode, SbTMVP (Sbblock-based Temporal Motion Vector Prediction) mode, AFFINE MERGE mode, Regular AMVP (Regular Advanced Motion Vector Prediction) mode, SMVD (Symmetric MVD) mode, and AFFINE AMVP mode. For example, the prediction information may further include information related to screen content coding, such as Block-based Delta Pulse Code Modulation (BDPCM) and Palette.
[0156] Residual information may include information related to residual samples of coding blocks included in each of the coded pictures and information related to the processing of residual samples. For example, residual information may include information related to residual samples, information related to quantization parameters (QP), information related to multiple transform kernel selection (MTS), information related to sub-block transform (SBT), information related to low frequency non-separable transform (LFNST), etc.
[0157] The decoding device can derive an intra mode for the current block within the current picture (S620).
[0158] For example, the processor of the decoding device can derive an intra prediction for the current block within the current picture based on prediction information included in the image information. For example, the prediction information may include prediction flag information or prediction index information indicating whether to apply inter prediction or intra prediction to the coding unit. Additionally, the processor of the decoding device can derive an intra mode based on the prediction information included in the image information.
[0159] When intra prediction is applied, the intra mode applied to the current block can be determined using the intra mode of the surrounding blocks. For example, the decoding device may select one of the mpm candidates within the mpm (most probable mode) list derived based on the intra mode of the surrounding blocks of the current block (e.g., left and / or upper surrounding blocks) and additional candidate modes based on the received mpm index, or select one of the remaining intra modes not included in the mpm candidates (and planner modes) based on the remaining intra prediction mode information.
[0160] In one embodiment, deriving the intra mode may include a method of deriving an intra mode derived for a current block based on prediction information, deriving an MPM list and an SMPM list based on at least one of the derived intra mode or a surrounding intra mode of the derived intra mode, and deriving the intra mode based on the MPM list and the SMPM list.
[0161] In one embodiment, the MPM list and the SMPM list can be derived based on a planner mode, an intra mode of an adjacent surrounding block, an intra mode derived from an inter mode of an adjacent surrounding block, a DIMD mode, an intra mode of a non-adjacent surrounding block, an intra mode derived from an inter mode of a non-adjacent surrounding block, a surrounding intra mode of the derived intra mode, a surrounding intra mode of a previously derived mode, and a default intra mode.
[0162] In the above embodiment, the MPM list may be configured to include a planner mode or to exclude a planner mode. If the MPM list includes a planner mode, the number of candidates for the MPM list may be m. And, if the MPM list does not include a planner mode, the number of candidates for the MPM list may be m - 1.
[0163] In the above embodiment, surrounding blocks may be considered for the intra-modes of surrounding blocks. That is, the left surrounding block, upper surrounding block, lower-left surrounding block, upper-right surrounding block, upper-left surrounding block, etc., may be considered. Additionally, non-adjacent left surrounding block, upper surrounding block, lower-left surrounding block, upper-right surrounding block, upper-left surrounding block, etc., may be considered. In other words, both adjacent surrounding blocks and non-adjacent surrounding blocks may be considered. When utilizing surrounding intra-modes as an MPM, the input order may vary depending on the size information of the current block. For example, if the height of the block is greater than or equal to the width of the block, the intra-mode of the upper surrounding block may be considered first, followed by the intra-mode of the left surrounding block.
[0164] In the above embodiment, the intra mode derived from the inter mode of a neighboring block is the intra mode obtained by the IPM buffer when the neighboring block is coded in an inter mode rather than an intra mode. If the block at the location indicated by the motion vector of the neighboring block's inter block is coded in an intra mode, the corresponding intra mode can be stored in the IPM buffer. The intra mode stored in the IPM buffer can be utilized as the MPM mode of a neighboring block.
[0165] In the above embodiment, when one of the derived intra prediction modes is denoted as k, the surrounding intra modes of the derived intra mode may mean k + 1, k - 1, k + 2, k - 2, ... k. k may represent a directional intra mode, and the surrounding intra modes of a directional intra mode k cannot be undirected. In this case, the value of k can be used as a value predefined between the encoder and decoder. For example, k may be 4. Or, k may be 8 or 10. Also, it may be (+1, -1, +2, -2, ..., +k, -k) or prioritizing the negative sign (-1, +1, -2, +2, ..., -k, +k). The order of the signs may also be indicated through explicit signaling or can be known by predefining between the encoder and decoder.
[0166] In the above embodiment, the derived mode includes the default intra mode, the intra mode of an adjacent surrounding block, the intra mode derived from the inter mode of an adjacent surrounding block, the DIMD mode, the intra mode of a non-adjacent surrounding block, and the intra mode derived from the inter mode of a non-adjacent surrounding block.
[0167] In the above embodiment, the surrounding intra-modes of the previously derived mode may mean m + 1, m - 1, m + 2, m - 2, ..., if one of the previously derived intra-modes is denoted as m. m may represent a directional intra-mode, and the surrounding mode of the previously derived mode cannot be non-directional. That is, the surrounding intra-modes of the previously derived mode may include the surrounding intra-mode of the default intra-mode, the surrounding intra-mode of an adjacent surrounding block, the surrounding intra-mode of an intra-mode derived from the inter-mode of an adjacent surrounding block, the surrounding intra-mode of the DIMD mode, the surrounding intra-mode of a non-adjacent surrounding block, and the surrounding intra-mode of an intra-mode derived from the inter-mode of a non-adjacent surrounding block. In this case, if the current block is not in the DIMD mode, the DIMD mode surrounding intra-mode may be utilized as an MPM candidate.
[0168] In one embodiment, the MPM list and the SMPM list can be derived in the order of planner mode, intra mode of adjacent surrounding blocks, intra mode derived from inter mode of adjacent surrounding blocks, DIMD mode, intra mode of non-adjacent surrounding blocks, intra mode derived from inter mode of non-adjacent surrounding blocks, surrounding intra mode of the derived intra mode, surrounding intra mode of the previously derived mode, and default intra mode.
[0169] In one embodiment, the MPM list and the SMPM list can be derived based on the derived intra mode, the planner mode, the intra mode of an adjacent surrounding block, the intra mode derived from the inter mode of an adjacent surrounding block, the DIMD mode, the intra mode of a non-adjacent surrounding block, the intra mode derived from the inter mode of a non-adjacent surrounding block, the surrounding intra mode of the derived intra mode, the surrounding intra mode of the previously derived mode, and the default intra mode.
[0170] In one embodiment, the MPM list and the SMPM list can be derived in the order of the derived intra mode, the planner mode, the intra mode of an adjacent surrounding block, the intra mode derived from the inter mode of an adjacent surrounding block, the DIMD mode, the intra mode of a non-adjacent surrounding block, the intra mode derived from the inter mode of a non-adjacent surrounding block, the surrounding intra mode of the derived intra mode, the surrounding intra mode of the previously derived mode, and the default intra mode.
[0171] In one embodiment, the MPM list and the SMPM list can be derived based on the planner mode, the intra mode of the surrounding block, the intra mode derived from the inter mode of the surrounding block, the surrounding intra mode of the derived intra mode, the surrounding intra mode of the previously derived mode, and the default intra mode.
[0172] In one embodiment, the MPM list and the SMPM list can be derived in the order of the planner mode, the intra mode of the surrounding block, the intra mode derived from the inter mode of the surrounding block, the surrounding intra mode of the derived intra mode, the surrounding intra mode of the previously derived mode, and the default intra mode.
[0173] In one embodiment, the MPM list and the SMPM list can be derived based on the induced intra mode, the planner mode, the intra mode of the surrounding block, the intra mode derived from the inter mode of the surrounding block, the surrounding intra mode of the induced intra mode, the surrounding intra mode of the previously derived mode, and the default intra mode.
[0174] In one embodiment, the MPM list and the SMPM list can be derived in the order of the derived intra mode, the planner mode, the intra mode of the surrounding block, the intra mode derived from the inter mode of the surrounding block, the surrounding intra mode of the derived intra mode, the surrounding intra mode of the previously derived mode, and the default intra mode.
[0175] In the process of deriving the MPM and / or SMPM lists, some modes may be omitted, added, or changed in order.
[0176] In the above embodiments, various sequence examples have been described, but this is merely one example. For example, the derived intra-modes may be configured in a sequence preceding the surrounding intra-modes of the previously derived modes. Alternatively, the derived intra-modes may be configured in a sequence following the intra-modes derived from the surrounding intra-modes and / or surrounding inter-modes. This sequence can be determined by pre-defining it between the encoder and decoder.
[0177] The above embodiments relate to a method for effectively configuring an MPM and / or a secondary MPM by considering an induced intra-mode and a surrounding intra-mode of the induced intra-mode, and can expect the effect of saving the number of signaling bits by placing a mode with a high selectivity rate in front.
[0178] The method by which the decoding device generates the MPM candidate list, the Secndary MPM candidate list, and the remaining candidate is as follows.
[0179] In current video compression systems such as VVC, intra prediction mode methods are defined into modes that perform prediction for the current block undirectedly from surrounding pixels, such as PLANAR and DC, and modes that perform intra-frame prediction with a specific direction. Generally, for each given Prediction Unit (PU) block, all applicable intra modes allowed by the corresponding video compression system can be considered. Furthermore, when the number of applicable intra modes is large (e.g., more than 67 in the case of VVC), it is very important to efficiently encode specific intra modes. In existing video compression systems, to encode the intra prediction mode for each PU, the intra prediction mode with a high probability of occurrence for the current PU block is predicted based on the intra prediction modes of surrounding PUs and designated as the Most Probable Mode (MPM), thereby encoding the intra mode for the current block with a relatively small number of bits. If the intra mode for the current PU block does not belong to the MPM, the optimal intra mode is included in the remaining modes excluding the MPM, so the remaining modes perform truncated binary coding for 67 MPM candidates (e.g., 6), resulting in a relatively large (e.g., 5 or 6 bits) signaling overhead. In one embodiment, the number of occurrence bits required to encode the intra prediction mode can be reduced by efficiently defining the number of possible intra modes in the current PU using the statistical characteristics of surrounding recovered pixels, rather than targeting all modes allowed by the video compression system for the intra mode candidates applicable to each PU block.
[0180] In one embodiment, if the distribution of restored pixel values does not exhibit a specific directionality, an intra mode mapped to that directionality may be excluded from the candidates. Exclusion from the candidates may correspond to the following cases.
[0181] Can be excluded from MPM candidacy
[0182] It can be excluded from the Secondary MPM candidates. Here, the Secondary MPM can be viewed as a separate set of intra-modes defined in the system after the MPM. For example, 16 Secondary MPMs can be configured after 6 MPM modes, and the remaining modes that do not belong to the MPM or Secondary MPM can be included in the remaining modes.
[0183] Can be excluded from the Remaining Mode candidates.
[0184] This is just one example and may be excluded from other intra prediction technologies utilizing intra mode.
[0185] In one embodiment, differential filtering can be performed to determine whether the distribution of restored pixel values is associated with a specific direction.
[0186] For example, the most similar intra-mode is determined based on the gradient of pixel values obtained from the ratio of horizontal to vertical changes, and an amplitude value corresponding to the gradient indicating that intra-mode is assigned. This process can be applied to pixel values within the template area by moving horizontally and vertically, and finally, the accumulated amplitude value for each intra-mode can be obtained.
[0187] For example, the amplitude value can be derived by considering both the magnitude of the horizontal change and the magnitude of the vertical change. (e.g., the sum of the magnitudes of the horizontal and vertical changes)
[0188] The process of mapping the gradients of pixel values to the most similar intra mode may be similar to / identical to the DIMD described earlier.
[0189] The Template area can be similar to or identical to the DIMD described earlier.
[0190] The accumulated amplitude value for each intra mode can be obtained in the manner described above. An example of this may be as shown in Fig. 7.
[0191] In Figure 7, it can be seen that there are no accumulated amplitude values in modes 34 and 35. These intra-modes are determined to be modes that are less related to the current block, and the corresponding intra-modes can be excluded.
[0192] As another example, intra modes that do not exceed a threshold can be determined to be modes that are less relevant to the current block, and such intra modes can be excluded. For example, modes 2, 34, and 66 in Fig. 8 can be excluded.
[0193] In one embodiment, an intra mode with an amplitude of 0 may be excluded.
[0194] In one embodiment, an intra mode that does not exceed a threshold may be excluded. The threshold may be a fixed value. For example, it may be 10. The threshold may be determined as a different value by pre-defining it between the encoder and decoder, or it may be transmitted through explicit signaling in the form of the threshold itself or a flag or index indicating the threshold.
[0195] In excluding the above intra mode, the effect obtained when encoding the intra mode may be as follows. Here, the number of intra modes allowed by the video coding system is defined as T, and if VVC allows 67 modes, the value of T becomes 67. If more modes than VVC are used, T can be a number greater than 67.
[0196] MPM: Excluded intra-modes can be configured not to be included in the MPM list. This allows the MPM list to be composed of more predictable intra-modes.
[0197] Secondary MPM: You can configure the Secondary MPM so that the excluded intra modes are not included in the Secondary MPM list.
[0198] Remaining Mode: Excluded intra-modes can be configured not to be included in the remaining mode. Therefore, the number of remaining modes can be reduced by (T - number of MPM candidates - number of excluded intra-modes). By reducing the number, encoder complexity and signaling overhead can be reduced. If a secondary MPM exists, the number of remaining modes can be reduced by (T - number of MPM candidates - number of secondary MPM candidates - number of excluded intra-modes). That is, it can be configured not to include excluded intra-modes for both the MPM and the remaining mode. Similarly, if a secondary MPM exists, it can be configured not to include excluded intra-modes for the MPM, the secondary MPM, and the remaining mode.
[0199] In one embodiment, there may be N intra modes to be excluded. N is a value predefined between the encoder and decoder. For example, N may be 4. If the number of intra modes having an Amplitude of 0 exceeds N, intra modes may be excluded in a predefined order between the encoder and decoder until N intra modes are filled. For example, the order of intra modes may be 2, 66, 8, 28, 40, 60, ...
[0200] If the number of intra modes with an amplitude of 0 is less than N, intra modes to be excluded for the insufficient number can be defined in a predefined order between the encoder and decoder. For example, the order of intra modes can be 2, 66, 8, 28, 40, 60, ... or the intra modes for the insufficient number can be determined based on the amplitude value in order of decreasing value.
[0201] In one embodiment, the number of intra-modes N excluded may be determined to a different value depending on the block size. For example, if the product of the width and height of the block is less than 64, N may be 4, and if it is greater than or equal to 64, N may be 8. This is one example of how the number of intra-modes excluded is determined based on the block size, and other conditions and values of N can be determined by pre-defining between the encoder and decoder.
[0202] In one embodiment, the number of excluded intra-modes was described as intra-modes with an amplitude of 0, but it can be equally applied to intra-modes with an amplitude smaller than the threshold.
[0203] One embodiment may be performed in an encoder / decoder as a process as illustrated in FIG. 9. First, an intra-mode to be excluded may be determined. This step includes both the previously mentioned number of intra-modes to be excluded and the determination of the intra-mode to be excluded. Regarding the number of intra-modes to be excluded, both the number of intra-modes with an amplitude of 0 and the number of intra-modes with an amplitude smaller than a threshold may be applied. Similarly, regarding the intra-modes to be excluded, both the intra-modes with an amplitude of 0 and the intra-modes with an amplitude smaller than a threshold may be applied. This may be performed by pre-defining between the encoder / decoder.
[0204] Subsequently, a step for configuring the candidate list is performed. This step involves configuring the MPM and remaining mode candidates, and excluded intra modes can be configured so that they are not included in the MPM and remaining modes.
[0205] Further explanation is provided regarding the previously described definition of the efficient number of intra modes. If the distribution of recovered pixel values does not exhibit a specific directionality, intra modes mapped to that directionality can be excluded from consideration by the encoder / decoder. In conventional video compression systems, to encode the intra prediction mode for each PU, the intra prediction mode with a high probability of occurrence for the current PU block is predicted based on the intra prediction modes of neighboring PUs and designated as the MPM (Most Probable Mode); this allows the intra mode for the current block to be encoded using a relatively small number of bits. If the intra mode for the current PU block does not belong to the MPM, the optimal intra mode is contained within the remaining modes excluding the MPM. Therefore, since the remaining modes perform truncated binary coding for 67 minus the number of MPM candidates (e.g., 6), a relatively large signaling overhead (e.g., 5 or 6 bits) occurs. The number of generated bits required to encode the intra prediction mode can be reduced by efficiently defining the number of possible intra modes in the current PU using the statistical characteristics of surrounding restored pixels, rather than targeting all modes allowed by the video compression system as candidates for intra modes applicable to each PU block.
[0206] One embodiment proposes a method for determining (or configuring) intra-mode candidates that can be excluded from the intra-mode candidates of the current block. In one embodiment, the intra-mode candidates that can be excluded from the intra-mode candidates of the current block may be determined or configured in the form of a "list of removable intra-mode candidates." However, this is not necessarily limited to the form of a list and may be determined or configured in the form of a "group of removable intra-mode candidates."
[0207] It is important to define intra-mode candidates that can be excluded for the current block. For example, since the vertical mode (mode 50) and the horizontal mode (mode 18) are always well-chosen modes, it may be better not to exclude them regardless of the distribution of reconstructed pixel values. Alternatively, consecutive intra-modes can be defined so that they are not included in the intra-mode candidates that can be excluded. This is because if consecutive intra-modes are excluded, the prediction accuracy may decrease as the prediction for the specific direction being excluded is not considered. For example, if intra-modes 2 through 5 are excluded, the accuracy of the prediction using the bottom-left reconstructed sample may decrease.
[0208] In one embodiment, the intra-mode candidates that can be excluded may be directional intra-modes having odd indices. For example, among directional intra-modes 2 to 66, the intra-modes having odd indices (3, 5, 7, ..., 65) may be the intra-mode candidates that can be excluded in one embodiment. Alternatively, the intra-mode candidates that can be excluded may be constructed using only some of the intra-modes having odd indices. For example, the intra-mode candidates that can be excluded may be constructed with intra-modes having odd indices other than modes 49 and 51, which are peripheral modes of the vertical direction mode (mode 50), and modes 17 and 19, which are peripheral modes of the horizontal direction mode (mode 18).
[0209] In another embodiment, the intra-mode candidates that can be excluded may be directional intra-modes having even indices. For example, the intra-modes having even indices among directional intra-modes 2 through 66 may be the intra-mode candidates that can be excluded. Alternatively, the intra-mode candidates that can be excluded may be constructed using only some of the intra-modes having even indices. For example, the intra-mode candidates that can be excluded may be constructed using intra-modes having even indices other than the vertical direction mode (mode 50), the horizontal direction mode (mode 18), and the diagonal direction modes (modes 2, 34, and 66).
[0210] In another embodiment, the intra-mode candidates that can be excluded may be all directional intra-modes. Alternatively, the intra-mode candidates that can be excluded may be configured using only some of the directional intra-modes. For example, the intra-mode candidates that can be excluded may be configured with directional intra-modes other than the vertical direction mode (mode 50), the horizontal direction mode (mode 18), and the diagonal direction modes (modes 2, 34, and 66).
[0211] Among the intra-mode candidates that can be excluded above, if the distribution of restored pixel values does not exhibit a specific directionality—that is, if the distribution of restored pixel values lacks or has weak characteristics regarding a specific directionality—the intra-mode candidates mapped to that directionality can be excluded so that they are not processed in the encoder / decoder, i.e., not considered during prediction.
[0212] In one embodiment, the number of intra-modes excluded may be N. N may be 16. This is just one example, and the value of N can be determined to a different value by pre-defining between the encoder and decoder. For example, the number of intra-modes excluded N may be determined to a different value depending on the block size. For example, if the block size is less than 64, N may be 16, and if it is greater than or equal to 64, N may be 24. This is just one example where the number of intra-modes excluded is determined differently depending on the block size, and other conditions and the value of N may be determined.
[0213] In one embodiment, among the intramode candidates that can be excluded, N intramodes may be excluded in order of smallest amplitude of the candidate intramodes.
[0214] In one embodiment, among the intra-mode candidates that can be excluded, intra-modes having an amplitude of 0 may be excluded. If the number of intra-modes having an amplitude of 0 is less than N, for the missing number, intra-modes whose amplitude is smaller than a threshold value may be excluded. For example, the threshold value may be 10. Alternatively, the threshold value may be the average of the amplitudes for each of the intra-mode candidates that can be excluded. Alternatively, the threshold value may be the average of the amplitudes of each intra-mode that is not 0 among the amplitudes for each of the intra-mode candidates that can be excluded. Alternatively, the threshold value may be the median of the amplitudes for each of the intra-mode candidates that can be excluded. Alternatively, the threshold value may be the median of the amplitudes of each intra-mode that is not 0 among the amplitudes for each of the intra-mode candidates that can be excluded. This is one example of using a fixed value, median, or average value as the threshold value, and it can be determined as another value predefined between the encoder and decoder. For example, the threshold value can be used as a different value based on the block size. For example, if the block size is less than 64, the threshold value may be 10, and if the block size is greater than or equal to 64, the threshold value may be 50. This is one example of a threshold value determined differently depending on the block size, and other conditions and other threshold values may be determined. Additionally, if the number of intra-modes having an amplitude smaller than the threshold value is less than N, the intra-modes to be excluded from the intra-mode candidates that can be excluded until N intra-modes are formed may be determined so as not to overlap.In this case, the method of filling N can be to fill them in order of smallest amplitude for intramodes whose amplitude is equal to or greater than the threshold, or to fill them according to the order among intramode candidates that can be excluded regardless of amplitude, for example, according to the index order of the list of intramode candidates that can be excluded.
[0215] As another example, intramodes that can be excluded can be constructed by combining intramode candidates with odd indices that can be excluded and intramode candidates with even indices that can be excluded. For example, among the intramode candidates with odd indices that can be excluded, intramodes whose candidate intramode has an amplitude of 0 can be excluded. If the number of intramodes with an amplitude of 0 is less than N, for the remaining number, intramodes among the intramode candidates with even indices that can be excluded that have an amplitude of 0 can be excluded. Even after excluding up to this point, if the number of excluded intramodes is still less than N, for the remaining number, intramodes among the intramode candidates with odd indices that can be excluded that have an amplitude smaller than a threshold value can be excluded, for example, the threshold value may be 10. Alternatively, the threshold value may be the average of the amplitudes for each of the intramode candidates with odd indices that are excluded. Alternatively, the threshold may be the average of the non-zero amplitudes among the amplitudes for each intra-mode candidate with an odd index that can be excluded. Or, the threshold may be the median of the amplitudes for each intra-mode candidate that can be excluded. Or, the threshold may be the median of the non-zero amplitudes among the amplitudes for each intra-mode candidate that can be excluded. This is one example of using a fixed value, median, or average value as the threshold, and it can be fixed to other values predefined between the encoder and decoder. For example, the threshold may be used with different values based on the block size.For example, if the block size is less than 64, the threshold may be 10, and if the block size is greater than or equal to 64, the threshold may be 50. This is one example of a threshold determined differently depending on the block size, and other conditions and other thresholds may be determined. Additionally, if the number of excluded intramodes is still less than N even after excluding intramodes smaller than the threshold, intramodes can be excluded from among the candidates with odd indices that can be excluded without duplication until N intramodes are excluded. In this case, N intramodes can be excluded by excluding intramodes that are equal to or greater than the threshold in order of smallest amplitude, or by excluding according to the index order of the list of intramode candidates with odd indices that can be excluded regardless of amplitude.
[0216] The process of excluding intramodes having an amplitude smaller than the above threshold is one example, and the intramodes to be excluded can be determined by partially or entirely combining intramodes satisfying the following conditions.
[0217] Intramodes with amplitude=0 among the list of intramode candidates with odd indices that can be excluded,
[0218] Among the list of intra-mode candidates with odd indices that can be excluded, the intra-mode where amplitude < threshold,
[0219] Among the intramode candidate list with odd indices that can be excluded, amplitude Intra mode, which is the threshold,
[0220] Intramodes with amplitude=0 among the list of intramode candidates with even indices that can be excluded,
[0221] Among the list of intra-mode candidates with even indices that can be excluded, the intra-mode where amplitude < threshold,
[0222] Among the intramode candidate list with even indices that can be excluded, amplitude Intra mode, which is the threshold
[0223] At this time, the threshold value may be 10, or the average of the amplitudes for each intra-mode candidate with an odd index that can be excluded, or the average of each intra-mode amplitude that is not 0 among the amplitudes for each intra-mode candidate with an odd index that can be excluded, or other values predefined between the encoder and decoder.
[0224] Or the threshold value may be the average of the amplitudes for each intra-mode candidate with an even index that can be excluded, or the average of each intra-mode amplitude that is not zero among the amplitudes for each intra-mode candidate with an even index that can be excluded.
[0225] Or the threshold value may be the average of the amplitudes for each of all intra-mode candidates that can be excluded, or the average of each intra-mode amplitude that is not zero among the amplitudes for each of all intra-mode candidates that can be excluded.
[0226] As another example, if the intra-mode candidates that can be excluded include all directional intra-modes, the intra-modes can be excluded first for odd-numbered modes, and then the intra-modes to be excluded for even-numbered modes can be determined.
[0227] In addition, regarding the example above where the average of the amplitude (=avg_amp) is used as the threshold, avg_amp / M may be used as the threshold so that intra modes with smaller amplitudes can be excluded preferentially. For example, if the total number of intra modes to be excluded is not met even after determining intra modes with an amplitude of 0, avg_amp / 8 may be used as the threshold to determine intra modes with amplitudes smaller than the threshold as intra modes to be excluded for the remaining number. The above example uses M as 8, and can be determined as another value predefined between the encoder and decoder.
[0228] As another example, the value of M can be repeatedly changed to determine the intra-modes to be excluded. For instance, if the total number of excluded intra-modes is not met even after using avg_amp / 8 as the threshold in the above example, avg_amp / 4 can be used as the threshold. By repeating this process, the threshold can be increased in the order of avg_amp / 8, avg_amp / 4, avg_amp / 2, avg_amp / 1, and avg_amp*2 to determine the excluded intra-modes until the total number of excluded intra-modes is met. Although the above example used 5 iterations with M set to 8, 4, 2, 1, and 1 / 2 for each iteration, this is merely one example; the iteration value and the value of M can be determined differently by pre-defining them between the encoder and decoder. While the above example used the average of the amplitudes, the same example can be applied using the median of the amplitudes.
[0229] In one embodiment, each of the intramodes in the induced intramode candidate list may not be included in the intramodes to be excluded. For example, 8 modes of the intramode candidate list are Mode(1) All, Mode(2) All , Mode(3) All , Mode(4) All , Mode(1) L+LB+AL , Mode(2) L+LB+AL , Mode(1) A+AR+AL , Mode(2) A+AR+AL When configured as such, each of the corresponding modes may not be included in the excluded intra-modes. As another example, each of the DIMD modes may not be included in the excluded intra-modes. As yet another example, if a derived intra-mode is applied, each of the intra-modes in the derived intra-mode candidate list may not be included in the excluded intra-modes regardless of DIMD. Alternatively, if a derived intra-mode is not applied and DIMD is applied, each of the DIMD modes may not be included in the excluded intra-modes. Or, if both modes (derived intra-mode and DIMD) are applied, each of the intra-modes of each mode may not be included in the excluded intra-modes. Here, the meaning that a specific mode (e.g., derived intra-mode, DIMD) is not applied may refer to a case where a specific mode is not signaled because it does not satisfy a specific condition (e.g., block size restriction).
[0230] In some embodiments, the process of determining the amplitude of each intra mode may be as described above. The most similar intra mode is determined based on the gradient of pixel values obtained from the ratio of the horizontal change amount to the vertical change amount in a manner similar or identical to DIMD, and an amplitude value corresponding to the gradient indicating that intra mode is assigned. The amplitude value can be derived by considering both the magnitude of the horizontal change amount and the magnitude of the vertical change amount (e.g., the sum of the magnitude of the horizontal change amount and the magnitude of the vertical change amount).
[0231] According to one embodiment, by efficiently and adaptively determining the intra-mode to be excluded for the current block, the number of available intra-modes can be reduced, and the number of signaling bits for selecting one of the intra-modes can be saved.
[0232] This embodiment relates to a method for effectively constructing MPM and / or SMPM lists. VIPM can be utilized as a new mode that induces and uses intra modes in encoders and decoders. Since such VIPM induces intra modes based on gradient analysis of surrounding samples of the current block, it may be more effective than MPM mode. This embodiment relates to a method for constructing MPM and SMPM lists using VIPM mode, which enables effective prediction by allocating fewer bits to intra modes with high selectivity.
[0233] In one embodiment, the encoder / decoder may form an MPM list containing m MPMs. m is a positive integer and is a value predefined between the encoder / decoder. For example, it may be 6.
[0234] To construct the MPM list, the types of modes described below may be considered.
[0235] - Default intra modes
[0236] - Neighbor intra modes
[0237] - Intra-modes derived from surrounding inter-modes (IPM modes)
[0238] - DIMD (Decoder-side intra mode derivation) modes
[0239] - Surrounding intra-modes of the above modes
[0240] For example, the surrounding intra-modes of the above modes may mean m + 1, m - 1, m + 2, m - 2, ... if one of the above modes is m. m may mean a directional intra-mode, and the surrounding intra-modes of the above modes cannot be non-directional.
[0241] Let k be one of the derived intra prediction modes. The surrounding intra modes of the derived intra prediction mode can be k + 1, k - 1, k + 2, k - 2, ... k. k can represent a directional intra mode, and the surrounding intra modes of a directional intra mode k cannot be undirected.
[0242] For the aforementioned surrounding intra-modes, surrounding blocks, namely the left surrounding block, upper surrounding block, lower-left surrounding block, upper-right surrounding block, upper-left surrounding block, etc., may be considered. Additionally, non-adjacent left surrounding block, upper surrounding block, lower-left surrounding block, upper-right surrounding block, upper-left surrounding block, etc., may be considered. In other words, both adjacent and non-adjacent surrounding blocks may be considered.
[0243] When utilizing surrounding intra-modes as MPMs, the input order may vary depending on the size information of the current block. For example, if the height of a block is greater than or equal to its width, the intra-mode of the upper surrounding block may be considered first, followed by the intra-mode of the left surrounding block.
[0244] Intra-mode information can be obtained via the IPM buffer even when neighboring blocks are coded in Inter-mode rather than Intra-mode. If the block at the location indicated by the motion vector of an adjacent Inter-block is coded in Intra-mode, that Intra-mode can be stored in the IPM buffer. The Intra-mode stored in the IPM buffer can be utilized as the MPM mode of the neighboring block.
[0245] MPM candidate configurations can be made from DIMD. If the current block is not in DIMD mode, an intra mode derived from DIMD can be used as an MPM candidate.
[0246] MPM candidate configurations can be made from the surrounding intramodes of the induced intramode.
[0247] Additionally, for example, the MPM list can be configured to include a planner mode or to exclude a planner mode. If the MPM list includes a planner mode, the number of candidates for the MPM list may be m. And, if the MPM list does not include a planner mode, the number of candidates for the MPM list may be m - 1.
[0248] As another example, the encoder / decoder can construct an MPM list containing m MPMs and an SMPM list containing n SMPMs (=secondary MPMs). m is a positive integer and is a value predefined between the encoder / decoder. For example, it can be 6. n is a positive integer and is a value predefined between the encoder / decoder. For example, it can be 16.
[0249] To configure the MPM and SMPM lists, the types of modes described below may be considered.
[0250] - Default intra modes
[0251] - Neighbor intra modes
[0252] - Intra-modes derived from surrounding inter-modes (IPM modes)
[0253] - DIMD (Decoder-side intra mode derivation) modes
[0254] - Surrounding intra-modes of the above modes
[0255] For example, the surrounding intra-modes of the above modes may mean m + 1, m - 1, m + 2, m - 2, ... if one of the above modes is m. m may mean a directional intra-mode, and the surrounding intra-modes of the above modes cannot be non-directional.
[0256] Let k be one of the derived intra prediction modes. The surrounding intra modes of the derived intra prediction mode can be k + 1, k - 1, k + 2, k - 2, ... k. k can represent a directional intra mode, and the surrounding intra modes of a directional intra mode k cannot be undirected.
[0257] As in the above embodiment, when configuring m MPM and n SMPM lists, it may be as shown in the following figure. That is, the MPM list can be configured first, and then the SMPM list can be configured.
[0258]
[0259] In one embodiment, when configuring an MPM list, or when configuring an MPM list and an SMPM list, the order of configuration may be as follows.
[0260] Planner Modes - Intramodes derived from adjacent neighboring intramodes and / or neighboring intermodes - DIMD Modes - Intramodes derived from non-adjacent neighboring intramodes and / or neighboring intermodes - Neighboring intramodes of previously derived modes - Default intramodes
[0261] Or, Planner mode - Intra modes derived from surrounding Intra modes and / or surrounding Inter modes - Surrounding Intra modes of the previously derived mode - Default Intra modes
[0262] Or, Planner mode - Intra modes derived from adjacent neighboring intra modes and / or neighboring inter modes - DIMD modes - Intra modes derived from non-adjacent neighboring intra modes and / or neighboring inter modes - Neighboring intra modes of the derived intra prediction mode - Neighboring intra modes of the previously derived mode - Default intra modes
[0263] Or, Planner mode - Intra modes derived from surrounding intra modes and / or surrounding inter modes - Surrounding intra modes of the derived intra prediction mode - Surrounding intra modes of the previously derived mode - Default intra modes
[0264] In the above embodiments, various sequence examples have been described, but this is merely one example. For instance, the derived intra-modes may be configured in a sequence preceding the surrounding intra-modes of the previously derived mode. Alternatively, the derived intra-modes may be configured in a sequence following the intra-modes derived from the surrounding intra-modes and / or surrounding inter-modes. This sequence can be determined by pre-defining it between the encoder and decoder.
[0265] As another example, when configuring the above MPM list, or when configuring the MPM list and the SMPM list, the MPM list can be configured by including the VIPM mode as a component of the MPM list. In this case, whether the MPM list is configured using the VIPM mode can be determined by explicit signaling such as the VIPM flag, or by a prior definition between the encoder and decoder without separate signaling.
[0266] When the above VIPM mode is included as a component of the MPM list, the configuration order of the MPM list may be as follows.
[0267] VIPM Mode - Planner Mode - Intramodes derived from adjacent neighboring intramodes and / or neighboring intermodes - DIMD Modes - Intramodes derived from non-adjacent neighboring intramodes and / or neighboring intermodes - Neighboring intramodes of previously derived modes - Default intramodes
[0268] Or, VIPM mode - Planner mode - Intra modes derived from surrounding intra modes and / or surrounding inter modes - surrounding intra modes of the previously derived mode - Default intra modes
[0269] Or, VIPM mode - Planner mode - Intra modes derived from adjacent neighboring intra modes and / or neighboring inter modes - DIMD modes - Intra modes derived from non-adjacent neighboring intra modes and / or neighboring inter modes - Neighboring intra modes of the derived intra prediction mode - Neighboring intra modes of the previously derived mode - Default intra modes
[0270] Or, VIPM mode - Planner mode - Intra modes derived from surrounding intra modes and / or surrounding inter modes - Surrounding intra modes of the derived intra prediction mode - Surrounding intra modes of the previously derived mode - Default intra modes
[0271] In the above embodiments, various sequence examples have been described, but this is merely one example. The order of the VIPM mode can be determined at any position, and as an example, the VIPM mode can be configured in order after the planner mode. This order can be known by defining it in advance between the encoder and decoder.
[0272] In one embodiment, during the process of configuring the MPM and / or SMPM, surrounding intra-modes of the derived intra-prediction mode may be included. In this case, the surrounding intra-modes of the derived intra-prediction mode may refer to modes derived from the surrounding modes of the VIPM mode (+1, -1, +2, -2, ..., +k, -k), and the value of k may be a value predefined between the encoder and decoder. For example, k may be 4. Additionally, it may be (+1, -1, +2, -2, ..., +k, -k) or (-1, +1, -2, +2, ..., -k, +k) with the negative sign prioritized. The order of the signs may also be indicated through explicit signaling or may be known by predefining between the encoder and decoder.
[0273] According to the present embodiment, there is a method for effectively configuring an MPM and / or a secondary MPM by considering a VIPM. By configuring it using a peripheral intra mode of an induced intra prediction mode, a mode with a high selectivity rate can be placed at the front, thereby allowing for the expected effect of saving the number of signaling bits.
[0274] The decoding device can generate prediction samples based on intra mode (S630).
[0275] For example, the processor of the decoding device can generate a predicted sample array for the current block.
[0276] The decoding device can derive a reference sample according to the intra prediction mode of the current block among the surrounding reference samples of the current block, and can generate a prediction sample of the current block based on the reference sample.
[0277] Neighboring reference samples to be used for intra prediction of the current block can be derived. The neighboring reference samples of the current block may include a sample adjacent to the left boundary of the current block of size nWxnH and a total of 2xnH samples adjacent to the bottom-left, a sample adjacent to the top boundary of the current block of size nWxnH and a total of 2xnW samples adjacent to the top-right, and 1 sample adjacent to the top-left of the current block. Alternatively, the neighboring reference samples of the current block may include multiple columns of upper neighboring samples and multiple rows of left neighboring samples. Additionally, the neighboring reference samples of the current block may include a total of nH samples adjacent to the right boundary of the current block of size nWxnH, a total of nW samples adjacent to the bottom boundary of the current block, and 1 sample adjacent to the bottom-right of the current block.
[0278] When neighboring reference samples are derived, in non-directional or non-angular mode, a prediction sample may be derived based on the average or interpolation of neighboring reference samples of the current block, and in directional or angular mode, a prediction sample may be derived based on reference samples existing in a specific (prediction) direction for the prediction sample among the neighboring reference samples of the current block.
[0279] The decoding device can derive a recovery sample for the current block (S640).
[0280] For example, the processor of the decoding device can derive a recovery sample array based on a prediction sample array and a residual sample array for the current block.
[0281] The processor can generate a prediction sample array using the method described above.
[0282] The processor can derive a residual sample array based on residual information included in the image information. For example, the processor can derive quantized transform coefficients based on information related to residual samples. The processor can derive transform coefficients by performing inverse quantization on the quantized transform coefficients based on information related to quantization parameters. The processor can derive modified transform coefficients by performing a second transform on the transform coefficients based on information related to low-frequency non-separable transform. The processor can derive a residual sample array by performing a first transform on the modified transform coefficients based on information related to multiple transform kernel selection.
[0283] The processor can derive a restored sample array based on the sum between the predicted sample array and the residual sample array.
[0284] As described above, the decoding device can efficiently and adaptively determine the intra mode to be excluded for the current block in intra prediction, thereby reducing the number of available intra modes and increasing the efficiency of data transmission by saving the number of signaling bits for selecting one of the intra modes.
[0285] FIG. 10 is a drawing illustrating a method for encoding image information according to one embodiment of the present disclosure.
[0286] The encoding method (S1000) may include operations described below.
[0287] The terms or names described below (e.g., names of syntax elements or variables, etc.) are merely examples, and the technical features of the present disclosure are not limited to the terms or names described below. For example, the image information described below may include various information according to the embodiments described in the present disclosure and may include information described in at least one of the tables described above.
[0288] The operations described below do not constitute an essential component of the encoding method according to one embodiment, and at least some of the operations described below may be omitted. Furthermore, the operations described below do not constitute a sufficient component of the encoding method according to one embodiment, and the previously described operations may be added. Moreover, unless they contradict the previously described operations, the operations described below form one embodiment integrally with the previously described operations and do not form a separate embodiment distinct from the previously described operations.
[0289] The encoding method (S1000) can be executed by an encoding device including a memory and a processor electrically connected to the memory, for example, by a processor.
[0290] The encoding device can determine the intra mode for the current block (S1010).
[0291] For example, the processor of the encoding device can compare the Rate Distortion (RD) costs for inter prediction, intra prediction, and intra block copy (IBC) prediction, and determine the intra prediction for the current block in the current picture based on the RD costs. Additionally, the processor of the encoding device can compare the Rate Distortion (RD) costs for various intra modes in the intra prediction, and determine the intra mode for the current block in the current picture based on the RD costs.
[0292] Regarding intra prediction, there are various intra modes / types, including non-directional mode, directional mode, matrix-weighted intra prediction (MIP), multi-reference line (MRL), or intra sub-partitions (ISP).
[0293] When intra prediction is applied, the intra mode applied to the current block can be determined using the intra prediction mode of the surrounding blocks. For example, the encoding device can determine the intra mode for the current block based on the RD cost. The encoding device can derive a list of mpm (most probable mode) based on the intra modes of the surrounding blocks of the current block (e.g., left and / or upper surrounding blocks) and additional candidate modes, and generate an mpm index based on one of the mpm candidates, or generate remaining intra prediction mode information based on one of the remaining intra modes not included in the said mpm candidates (and planner modes).
[0294] The method by which the encoding device generates the MPM list, MPM candidate list, Secondary MPM candidate list, and remaining candidate may be the same as the method by which the decoding device generates the MPM candidate list, Secondary MPM candidate list, and remaining candidate in operation S620 of FIG. 6.
[0295] For this reason, the description of how the encoding device generates the MPM list, MPM candidate list, Secondary MPM candidate list, and remaining candidate is replaced with the description of how the decoding device generates the MPM candidate list, Secondary MPM candidate list, and remaining candidate in operation S620 of FIG. 6.
[0296] Determining an intra mode may include a method of deriving an intra mode induced for the current block based on prediction information, deriving a list of intra mode candidates induced based on the deriving intra mode, deriving an intra mode excluded from the MPM list and the remaining list, deriving an MPM list and remaining candidates such that an intra mode included in the deriving intra mode candidate list and an intra mode included in the excluded intra mode are not included, adding at least one default intra mode based on the fact that the number of MPM list candidates is less than a predetermined value, determining the intra mode based on the deriving MPM list, the remaining list, and the default intra mode, wherein the added default intra mode is derived based on the surrounding even-index intra mode of the vertical mode and the horizontal mode and the surrounding odd-index intra mode of the vertical mode and the horizontal mode.
[0297] In one embodiment, the number of default intra-modes can be determined as the sum of the number of MPMs, the number of secondary MPMs, the number of induced intra-modes, and the number of excluded intra-modes.
[0298] In one embodiment, based on the fact that the number of default intra modes is 22 or less, at least one additional default intra mode can be added based on the surrounding even index intra mode and surrounding odd index intra mode of the vertical mode and horizontal mode.
[0299] In one embodiment, the default intra mode may not include an induced intra mode and an excluded intra mode.
[0300] In one embodiment, the surrounding even-indexed intra-modes of the vertical mode and horizontal mode may include intra-modes that differ from the vertical mode and horizontal mode by 6, 10, or 14.
[0301] In one embodiment, the surrounding even-index intra-modes of the vertical mode and horizontal mode may include intra-modes that differ from the vertical mode and horizontal mode by 4, 8, 12, 16, 2, 6, 10, and 14.
[0302] In one embodiment, it may include Ver - 4, Ver + 4, Hor - 4, Hor + 4, Ver - 8, Ver + 8, Hor - 8, Hor + 8, Ver - 12, Ver + 12, Hor - 12, Hor + 12, Ver - 16, Ver + 16, Hor - 16, Ver - 2, Ver + 2, Hor - 2, Hor + 2, Ver - 6, Ver + 6, Hor - 6, Hor + 6, Ver - 10, Ver + 10, Hor - 10, Hor + 10, Ver - 14, Ver + 14, Hor - 14, Hor + 14.
[0303] In one embodiment, the surrounding odd index intramodes of the vertical mode and the horizontal mode may include intramodes that differ from the vertical mode and the horizontal mode by 3, 7, 11, 15, 1, 5, 9, and 13. That is, they may include Ver - 3, Ver + 3, Hor - 3, Hor + 3, Ver - 7, Ver + 7, Hor - 7, Hor + 7, Ver - 11, Ver + 11, Hor - 11, Hor + 11, Ver - 15, Ver + 15, Hor - 15, Hor + 15, Ver - 1, Ver + 1, Hor - 1, Hor + 1, Ver - 5, Ver + 5, Hor - 5, Hor + 5, Ver - 9, Ver + 9, Hor - 9, Hor + 9, Ver - 13, Ver + 13, Hor - 13, Hor + 13.
[0304] If the number of MPM and / or secondary MPM lists is insufficient even after configuration, the MPM and / or secondary MPM lists can be configured sequentially from the beginning to ensure that certain modes are not duplicated. Since default modes configure the MPM and / or secondary MPM lists sequentially from the beginning to fill the insufficient number, the order of the default modes may be important.
[0305] In one embodiment, DC mode, vertical mode, horizontal mode, and surrounding even index intra modes of vertical mode and horizontal mode are configured, and then the default mode order is determined in the order of surrounding odd index intra modes, and the order can be considered so that the default mode is used evenly without bias.
[0306] In one embodiment, the default intra mode can be derived in the order of DC mode, vertical mode, horizontal mode, and intra modes that differ from the vertical mode and horizontal mode by 4, 8, 12, 16, 2, 6, 10, and 14.
[0307] In one embodiment, the default intra mode can be derived in the order of intra modes that differ from DC mode, vertical mode, horizontal mode, vertical mode, and horizontal mode by 4, 8, 12, 16, 2, 6, 10, 14, 3, 7, 11, 15, 1, 5, 9, and 13.
[0308] In one embodiment, DC mode, vertical mode, horizontal mode, Ver - 4, Ver + 4, Hor - 4, Hor + 4, Ver - 8, Ver + 8, Hor - 8, Hor + 8, Ver - 12, Ver + 12, Hor - 12, Hor + 12, Ver - 16, Ver + 16, Hor - 16, Ver - 2, Ver + 2, Hor - 2, Hor + 2, Ver - 6, Ver + 6, Hor - 6, Hor + 6, Ver - 10, Ver + 10, Hor - 10, Hor + 10, Ver - 14, Ver + 14, Hor - 14, Hor + 14, Ver - 3, Ver + 3, Hor - 3, Hor + 3, Ver - 7, Ver + 7, Hor - 7, Hor + 7, Ver - 11, Ver + 11, Hor - 11, Hor + 11, The default intra mode can be configured in the order of Ver - 15, Ver + 15, Hor - 15, Hor + 15, Ver - 1, Ver + 1, Hor - 1, Hor + 1, Ver - 5, Ver + 5, Hor - 5, Hor + 5, Ver - 9, Ver + 9, Hor - 9, Hor + 9, Ver - 13, Ver + 13, Hor - 13, Hor + 13.
[0309] In one embodiment, the default mode order may be determined such that the DC mode, vertical mode, horizontal mode, and surrounding even-index intra modes of the vertical mode and horizontal mode are considered first, while surrounding odd-index intra modes that are relatively close to the vertical mode and horizontal mode are used first.
[0310] In one embodiment, a default intra mode can be derived in the order of DC mode, vertical mode, horizontal mode, vertical mode and horizontal mode and an intra mode that differs by 4, 8, 12, 16, 2, 6, 10, 14, 1, 5, 9, 13, 3, 7, 11, 15.
[0311] In one embodiment, DC mode, vertical mode, horizontal mode, Ver - 4, Ver + 4, Hor - 4, Hor + 4, Ver - 8, Ver + 8, Hor - 8, Hor + 8, Ver - 12, Ver + 12, Hor - 12, Hor + 12, Ver - 16, Ver + 16, Hor - 16, Ver - 2, Ver + 2, Hor - 2, Hor + 2, Ver - 6, Ver + 6, Hor - 6, Hor + 6, Ver - 10, Ver + 10, Hor - 10, Hor + 10, Ver - 14, Ver + 14, Hor - 14, Hor + 14, Ver - 1, Ver + 1, Hor - 1, Hor + 1, Ver - 5, Ver + 5, Hor - 5, Hor + 5, Ver - 9, Ver + 9, Hor - 9, Hor + 9, Ver - The default intra mode can be configured in the order of 13, Ver + 13, Hor - 13, Hor + 13, Ver - 3, Ver + 3, Hor - 3, Hor + 3, Ver - 7, Ver + 7, Hor - 7, Hor + 7, Ver - 11, Ver + 11, Hor - 11, Hor + 11, Ver - 15, Ver + 15, Hor - 15, Hor + 15.
[0312] The encoding device can generate prediction samples based on intra mode (S1020).
[0313] For example, the processor of the encoding device can generate a predicted sample array for the current block.
[0314] The method by which the encoding device generates a prediction sample may be the same as the method by which the decoding device generates a prediction sample in operation S630 of Fig. 6.
[0315] For this reason, the description of how the encoding device generates a prediction sample is replaced with the description of how the decoding device generates a prediction sample in operation S630 of FIG. 6.
[0316] The encoding device can derive a residual sample for the current block (S1030).
[0317] For example, the processor of the encoding device can derive a residual sample array based on the original sample array and the predicted sample array for the current block.
[0318] The processor can generate a prediction sample array using the method described above.
[0319] The processor can derive a residual sample array based on the difference between the original sample array and the predicted sample array.
[0320] The processor can derive transformation coefficients by performing a first transformation on a residual sample array and can also generate information related to the selection of multiple transformation kernels. The processor can derive modified transformation coefficients by performing a second transformation on the transformation coefficients and can generate information related to low-frequency inseparable transformations. The processor can derive quantized transformation coefficients by performing quantization on the modified transformation coefficients and can generate information related to quantization parameters. The processor can derive information related to residual samples based on the quantized transformation coefficients. Additionally, the processor can generate residual information based on information related to the selection of multiple transformation kernels, information related to low-frequency inseparable transformations, information related to quantization parameters, and information related to residual samples.
[0321] The encoding device can encode image information including prediction information (S1040).
[0322] For example, the processor of an encoding device can encode image information including prediction information and residual information.
[0323] Image information may be in various forms. For example, image information may be a syntax element or a syntax structure containing one or more syntax elements. Additionally, image information may be a raw byte sequence payload (RBSP) containing one or more syntax elements or one or more syntax structures. Additionally, image information may be a Network Abstraction Layer (NAL) unit containing one or more RBSPs or a bitstream containing one or more NALs.
[0324] The encoding device can encode image information including an mpm index corresponding to the intra mode for the current block, a secondary mpm index, or remaining intra prediction mode information.
[0325] Video information can be encoded in the form of a bitstream by an encoding device.
[0326] The bitstream can be stored on a computer-readable storage medium or transmitted through a transmission unit.
[0327] As described above, the encoding device can efficiently and adaptively determine the intra mode to be excluded for the current block in intra prediction, thereby reducing the number of available intra modes and increasing the efficiency of data transmission by saving the number of signaling bits for selecting one of the intra modes.
[0328] One embodiment relates to a method for inducing and utilizing an intra mode in an encoder and a decoder. Inducing and utilizing an intra mode may be more efficient than utilizing an intra mode in a surrounding pre-recovered block. An intra mode in a surrounding pre-recovered block may not be an optimal intra mode.
[0329] In one embodiment, DIPM (Derived intra prediction mode) can be utilized as a new mode that induces an intra mode in the encoder and decoder.
[0330] Derived intra mode defines separate syntax information in high-level parameters such as VPS, SPS, APS, PPS, Picture Header, or Slice Header, and its use can be determined if that information is a specific value. For example, if the value is 1, it can be determined that the derived intra mode is used.
[0331] FIG. 11 is a diagram illustrating a method for decoding or encoding image information according to an embodiment of the present disclosure. FIG. 12 is a diagram illustrating a template area for decoding or encoding image information according to an embodiment of the present disclosure. FIG. 13 is a diagram illustrating a method for deriving an intra-mode candidate list for decoding or encoding image information according to an embodiment of the present disclosure. FIG. 14 is a diagram illustrating a method for calculating an error value for decoding or encoding image information according to an embodiment of the present disclosure.
[0332] A flowchart of one embodiment may be as shown in FIG. 11. Each step may be changed or omitted.
[0333] A decoding method or an encoding method may include the operations described below. In other words, the operations described below can be applied to both the decoding method and the encoding method.
[0334] The terms or names described below (e.g., names of syntax elements or variables, etc.) are merely examples, and the technical features of the present disclosure are not limited to the terms or names described below. For example, the image information described below may include various information according to the embodiments described in the present disclosure and may include information described in at least one of the tables described above.
[0335] The operations described below do not constitute an essential component of the encoding method according to one embodiment, and at least some of the operations described below may be omitted. Furthermore, the operations described below do not constitute a sufficient component of the encoding method according to one embodiment, and the previously described operations may be added. Moreover, unless they contradict the previously described operations, the operations described below form one embodiment integrally with the previously described operations and do not form a separate embodiment distinct from the previously described operations.
[0336] The decoding method or the encoding method may be executed by a decoding device or an encoding device comprising a memory and a processor electrically connected to the memory, for example, by a processor.
[0337] S1110) Derived intra prediction mode flag: This is flag information regarding whether to perform the Derived intra prediction mode. Whether the Derived intra prediction mode is performed can be determined through Derived intra prediction mode flag signaling. Additionally, the Derived intra prediction mode flag can be induced by pre-defining it between the encoder and decoder without signaling. For example, whether to use the Derived intra prediction mode can be determined based on the size or shape of the block. For instance, if one of the block's width or height is 8 times or more greater than the other, the Derived intra prediction mode may be induced to false. If the current block size (=width * height) is greater than 1024, the Derived intra prediction mode flag may be induced to false. If the current block size (=width * height) is less than or equal to 16, the Derived intra prediction mode flag may be induced to false. If the Derived intra prediction mode is induced to false, the Derived intra prediction mode process is not performed. The above-mentioned case is an example where the use of Derived intra prediction mode is determined in relation to block size and shape, and it may be determined and used with other values and / or other conditions.
[0338] Additionally, the use of Derived intra prediction mode can be signaled at the CTU / CU / TU / Slice / Tile level. If the flag indicating the use of Derived intra prediction mode in a corresponding CTU / Slice / Tile is signaled as true, all blocks within that CTU / Slice / Tile can be encoded and decoded in Derived intra prediction mode.
[0339] In addition, as a method that considers the above methods together, if the flag for whether to use Derived intra prediction mode in a CTU / Slice / Tile is signaled as true, the Derived intra prediction mode may be determined and used or restricted to the size and shape of a predefined block within the corresponding CTU / Slice / Tile.
[0340] As another example, after signaling whether to use the Derived intra prediction mode in the High Level parameter, the application of the Derived intra prediction mode can be determined by signaling again in the basic encoding unit such as CTU or CU. In this case, the application of the Derived intra prediction mode again in the basic encoding unit such as CTU or CU may be signaled only when the use of the Derived intra prediction mode in the High Level parameter is enabled. In this case, it can also be used in combination with the conditions regarding the block size and shape.
[0341] S1120) Determination of Template Area: This is a step of determining a template area to perform the induced intra-mode. The template area can be used to determine the intra-mode.
[0342] As shown in Fig. 12,
[0343] The adjacent upper area A of the current block can be used as a template area.
[0344] The adjacent left L area of the current block can be used as a template area.
[0345] The adjacent upper-left AL area of the current block can be used as a template area.
[0346] The upper-right AR area of the current block can be used as a template area.
[0347] The lower-left LB area of the current block can be used as a template area.
[0348] In addition, a partial or whole combination of the above areas can be used as a template area.
[0349] W, H: Width and height of the current block
[0350] W A : A is the width of the template area, and can be equal to or smaller than W.
[0351] W AR : The width of the AR area template area, which can be equal to or smaller than W.
[0352] H A : This is the height of the AL, A, and AR area template area, and can be, for example, 3.
[0353] W L : AL, L, LB are the widths of the template area, and can be, for example, 3.
[0354] HL : L is the height of the template area, and can be equal to or less than H.
[0355] H LB : The height of the LB area template area, which may be equal to or smaller than H.
[0356] The template area can be defined in the encoder / decoder dictionary without signaling, or a specific template area can be specified with signaling.
[0357] In one embodiment, the size of the template area may vary depending on the size of the current block. A small block may use a small template area, or a large block may use a large template area. For example, in the case of a 4x4 block, only the AL, A, and L regions may be used. For other blocks, all AL, A, AR, L, and LB regions may be used. Since the determination of the template area based on the block size is directly linked to the size of the template area in the process of applying the derived intra mode, a relatively small template area may be defined for small blocks to reduce the computational complexity required per pixel.
[0358] In one embodiment, a template area containing unavailable samples extending beyond boundaries such as picture, slice, tile, CTU, and virtual boundary may not be used in its entirety. Alternatively, even if unavailable samples are included within the template area, the induced intra mode may be performed by utilizing only the available samples as a template.
[0359] In one embodiment, H determines the sizes of regions A, AR, L, LB, and AL by considering the shape of the block (i.e., the ratio of width to height).A and W L The size of can be determined differently. For example, in the case of a 32x4 block, H is used to minimize the computational complexity and memory increase required for the induced intra-mode process. A Use a relatively small value and W L Relatively large values can be used. For example, H A is 3, W L A value of 4 can be used. The above-mentioned case is an example where the size of the area is determined in relation to the block shape, and it may be determined and used with other values and / or other conditions.
[0360] In one embodiment, H determines the sizes of regions A, AR, L, LB, and AL according to the size of the block (the product of the block's width and height). A and W L The size of can be determined differently. For example, if the block size is 256 or greater, H A is 4, W L can use a value of 4. Or, if the block size is 64 or less, H A is 3, W L A value of 3 can be used. The above-mentioned case is an example where the size of the area is determined in relation to the block size, and it may be determined and used with other values and / or other conditions.
[0361] Furthermore, it is obvious that the embodiments can be combined. For example, in the case where the block size is 16, only the AL, A, and L regions are used, and H A is 3, W L The value 3 can be used. Alternatively, if the block size is 256, the AL, A, AR, L, LB areas are used, and H A is 4, W L The value 4 can be used. Alternatively, for a 4x16 block, the AL, A, AR, L, LB areas are used, and H A is 4, WL You can use a value of 3.
[0362] In addition, in one embodiment and FIG. 12, the height of AL, A, and AR is H A It is identical to, and the width of AL, L, and LB is W L Although only cases where they are identical are shown, the scope of the present invention is not limited thereto, and AL, A, and AR may have different heights, and AL, L, and LB may also have different widths.
[0363] S1130) Intramode Derivation: This is a step for deriving an intramode. Similarity with each intramode directionality can be determined by utilizing the distribution of the restored pixel values of the template area determined in the template area determination step, and through this, the intramode can be determined. Differential filtering applied to the pixel values can be performed to determine the similarity between the distribution of pixel values and the intramode directionality.
[0364] For example, the most similar intra-mode is determined based on the gradient of pixel values obtained from the ratio of horizontal to vertical changes, and an amplitude value corresponding to the gradient indicating that intra-mode is assigned. This process can be applied to pixel values within the template area by moving horizontally and vertically, and finally, the accumulated amplitude value for each intra-mode can be obtained.
[0365] For example, the amplitude value can represent the sum of the magnitude of the horizontal change and the magnitude of the vertical change.
[0366] The process of mapping the gradients of pixel values to the most similar intra mode can be similar to / identical to DIMD.
[0367] Generally, when applying a differential filter in the process of calculating the accumulated amplitude for each of the above intra-modes, the amplitude value is calculated by moving pixel values within the template area vertically or horizontally in units of one pixel. However, within a given template area, directionality is more likely to exist as a group of pixels rather than being determined finely at the pixel level. In the present invention, to reduce unnecessary computational complexity, a differential filter can be applied in units of N pixels in the process of obtaining the amplitude in the horizontal or vertical direction. N can be, for example, 2. Additionally, the pixel unit to which the differential filter is applied can be determined differently depending on the template area (A, AR, L, LB, AL). For example, the differential filter can be applied in units of two pixels in the A, AR, L, and LB regions, and in units of one pixel in the AL region to obtain the amplitude value.
[0368] For example, a Sobel filter can be used as a differential filter to calculate the changes in the horizontal and vertical directions, and other filters may also be applied to calculate the changes in pixel values. Horizontal differential filter M x and vertical differential filter M y For example, it can be as follows.
[0369] [Equation 3]
[0370]
[0371] [Equation 4]
[0372]
[0373] [Formula 5]
[0374]
[0375] In addition to Equations 3, 4, and 5, the size and coefficients of the derivative filter may vary. The derivative filter may be signaled or predefined between the encoder and decoder without signaling. One of the derivative filters, Equations 3, 4, or 5 may be used with the indicated signaling information. Alternatively, only derivative filter Equation 3, only Equation 4, or only Equation 5 may be used without signaling. Alternatively, different derivative filters may be used for blocks of a specific size. For example, if the block size is greater than or equal to 64, Equation 3 may be used, and for other blocks, Equation 4 or Equation 5 may be used. The cases mentioned above are examples where the derivative filter is determined in relation to the block size and template area, and may be determined and used with other values and / or other conditions.
[0376] As another example, in the case of edges where brightness changes abruptly in the pixel distribution within the template area, it can help to accurately predict the direction. Therefore, before calculating the amplitude for each intra mode, a sharpening filter can be applied to the pixels within the template area to emphasize the edges. A 3x3 sharpening filter F can be, for example, as follows.
[0377] [Equation 6]
[0378]
[0379] As mentioned above, accumulated amplitude values for each intra mode can be obtained by applying a differential filter, and intra modes can be utilized in order of increasing accumulated amplitude values.
[0380] In this case, the induced intramodes can vary depending on which template area is used for prediction. For example, the following intramodes can be induced.
[0381] Mode(1) All , Mode(2) All , Mode(3) All , Mode(4) All , ...
[0382] Mode(1) L , Mode(2) L , Mode(3) L , Mode(4) L , ...
[0383] Mode(1) L+LB , Mode(2) L+LB , Mode(3) L+LB , Mode(4) L+LB , ...
[0384] Mode(1) L+LB+AL , Mode(2) L+LB+AL , Mode(3) L+LB+AL , Mode(4) L+LB+AL , ...
[0385] Mode(1) A , Mode(2) A , Mode(3) A , Mode(4) A , ...
[0386] Mode(1) A+AR , Mode(2) A+AR , Mode(3) A+AR , Mode(4) A+AR , ...
[0387] Mode(1) A+AR+AL , Mode(2) A+AR+AL , Mode(3) A+AR+AL , Mode(4) A+AR+AL , ...
[0388] Mode(1) AL , Mode(2) AL , Mode(3) AL , Mode(4) AL , ...
[0389] All means all templates, L means L template, L+LB means L and LB templates, L+LB+AL means L, LB, and AL templates, and the rest also mean each template area.
[0390] It is obvious that the template area determined in the above Template area determination step is not exceeded. For example, if the determined template area is AL, A, L, only combinations using only three template areas such as AL+A, AL+L, and AL+A+L may be allowed. Additionally, if some samples are not available in a specific template area, it is obvious that those samples cannot be used either.
[0391] In Mode(k), k represents the intramode with the k-th largest amplitude.
[0392] The intra-modes induced for a sample to which a sharpening filter has been applied may be as follows.
[0393] F_Mode(1) All , F_Mode(2) All , F_Mode(3) All , F_Mode(4) All , ...
[0394] F_Mode(1) L , F_Mode(2) L , F_Mode(3) L , F_Mode(4) L , ...
[0395] F_Mode(1) L+LB , F_Mode(2) L+LB , F_Mode(3) L+LB , F_Mode(4) L+LB , ...
[0396] F_Mode(1) L+LB+AL , F_Mode(2) L+LB+AL , F_Mode(3) L+LB+AL , F_Mode(4)L+LB+AL , ...
[0397] F_Mode(1) A , F_Mode(2) A , F_Mode(3) A , F_Mode(4) A , ...
[0398] F_Mode(1) A+AR , F_Mode(2) A+AR , F_Mode(3) A+AR , F_Mode(4) A+AR , ...
[0399] F_Mode(1) A+AR+AL , F_Mode(2) A+AR+AL , F_Mode(3) A+AR+AL , F_Mode(4) A+AR+AL , ...
[0400] F_Mode(1) AL , F_Mode(2) AL , F_Mode(3) AL , F_Mode(4) AL , ...
[0401] All means all templates, L means L template, L+LB means L and LB templates, L+LB+AL means L, LB, and AL templates, and the rest also mean each template area.
[0402] It is obvious that the template area determined in the above Template area determination step is not exceeded. For example, if the determined template area is AL, A, L, only combinations using only three template areas such as AL+A, AL+L, and AL+A+L may be allowed. Additionally, if some samples are not available in a specific template area, it is obvious that those samples cannot be used either.
[0403] F_Mode(k) represents the intra mode derived by applying a differential filter to a sample to which a sharpening filter has been applied, where k represents the k-th largest intra mode amplitude.
[0404] S1140) Candidate list configuration: This is a step of configuring a candidate list using the intramodes derived in the above intramode induction step.
[0405] For example, the intramode candidate list can be constructed as follows. The size of the list can be M (where M is a natural number). The value of M can be predefined between the encoder and decoder.
[0406] Intramode candidates derived using all templates: Mode(k) All
[0407] For example, if M is 4, Mode(1) All , Mode(2) All , Mode(3) All , Mode(4) All
[0408] For example, if M is 2, Mode(1) All , Mode(2) All
[0409] or,
[0410] Intramode candidates derived using AL+L+A: Mode(k) A+L+AL
[0411] For example, if M is 4, Mode(1) A+L+AL , Mode(2) A+L+AL , Mode(3) A+L+AL , Mode(4) A+L+AL
[0412] For example, if M is 2, Mode(1) A+L+AL , Mode(2) A+L+AL
[0413] or,
[0414] Combinations of intramode candidates derived from different templates
[0415] For example, if M is 4, Mode(1) All , Mode(2) All , Mode(1) A+L+AL , Mode(2) A+L+AL Or, Mode(1) All , Mode(2) All , Mode(1) A+AR , Mode(1) L+LB This or, or Mode(1) All , Mode(1) A+AR , Mode(1) L+LB , F_Mode(1) All , or F_Mode(1) All , F_Mode(2) All , F_Mode(3) All , F_Mode(4) All
[0416] For example, if M is 2, Mode(1) All , F_Mode(1) All
[0417] When inducing an intra mode with different templates, the same intra mode may be induced. To increase encoding efficiency, the intra mode candidate list can be configured so that candidates are non-duplicate, and the candidates can be configured as follows to fill all M non-duplicate candidates. For example, Mode(1) All , Mode(2) All , Mode(1) A+AR+AL , Mode(1) L+LB+AL , Mode(3) All , Mode(4) All
[0418] The examples of constructing the above candidate list are merely a few. There can be a great many derived intra modes, such as the intra modes listed above. Accordingly, there can also be a great many ways to construct the candidate list. This can be defined in advance between the encoder and decoder.
[0419] For example, in the process of constructing a candidate list, if M candidates are not fully filled, the remaining candidates can be constructed using a default intra mode. The default intra mode may consist of multiple modes, and when the default intra mode is used, the missing number of modes can be constructed in a predefined order. It is obvious that the M candidates, including the default intra mode, can be constructed without duplication. For example, the default intra mode can be constructed in order of highest selection rate. Assuming 67 modes are used, the default intra mode may be as follows. This is just one example of the default intra mode, and the size, order of construction, and the constructed intra modes may vary.
[0420] default mode ={ DC mode, Vertical mode, Horizontal mode, Vertical mode - 4, Vertical mode + 4, Horizontal mode - 4, Horizontal mode + 4, Vertical mode - 8, Vertical mode + 8, Horizontal mode - 8, Horizontal mode + 8, Vertical mode - 12, Vertical mode + 12, Horizontal mode - 12, Horizontal mode + 12, 34, 66, 2, Vertical mode - 2, Vertical mode + 2, Horizontal mode -2, Horizontal mode +2}
[0421] In another embodiment, P (integer) intramode candidates greater than or equal to M can be rearranged to form a candidate list of size M. This can be divided into three steps as shown in FIG. 13.
[0422] In the first step of configuring P intra-mode candidates, various intra-modes derived according to the template defined in one embodiment may be included. For example, the following intra-modes may be included.
[0423] Mode(1) All , Mode(2) All , Mode(3) All , Mode(4) All ...
[0424] Mode(1) L , Mode(2) L , Mode(3) L , Mode(4) L ...
[0425] Mode(1) L+LB , Mode(2) L+LB , Mode(3) L+LB , Mode(4) L+LB ...
[0426] Mode(1) L+LB+AL , Mode(2) L+LB+AL , Mode(3) L+LB+AL , Mode(4) L+LB+AL ...
[0427] Mode(1) A , Mode(2) A , Mode(3) A , Mode(4) A ...
[0428] Mode(1) A+AR , Mode(2) A+AR , Mode(3) A+AR , Mode(4) A+AR ...
[0429] Mode(1) A+AR+AL, Mode(2) A+AR+AL , Mode(3) A+AR+AL , Mode(4) A+AR+AL ...
[0430] Mode(1) AL , Mode(2) AL , Mode(3) AL , Mode(4) AL ...
[0431] F_Mode(1) All , F_Mode(2) All , F_Mode(3) All , F_Mode(4) All ...
[0432] F_Mode(1) L , F_Mode(2) L , F_Mode(3) L ,F_Mode(4) L ...
[0433] F_Mode(1) L+LB , F_Mode(2) L+LB , F_Mode(3) L+LB , F_Mode(4) L+LB ...
[0434] F_Mode(1) L+LB+AL , F_Mode(2) L+LB+AL , F_Mode(3) L+LB+AL , F_Mode(4) L+LB+AL ...
[0435] F_Mode(1) A , F_Mode(2) A , F_Mode(3) A , F_Mode(4) A ...
[0436] F_Mode(1) A+AR , F_Mode(2) A+AR , F_Mode(3) A+AR , F_Mode(4) A+AR ...
[0437] F_Mode(1) A+AR+AL , F_Mode(2) A+AR+AL, F_Mode(3) A+AR+AL , F_Mode(4) A+AR+AL ...
[0438] F_Mode(1) AL , F_Mode(2) AL , F_Mode(3) AL , F_Mode(4) AL ...
[0439] For example, P intramode candidates can be composed of the following candidates. This is just one example, and P intramode candidates can be defined by an agreement between the encoder and decoder.
[0440] Mode(1) All , Mode(2) All , Mode(3) All , Mode(4) All , Mode(1) L+LB+AL , Mode(2) L+LB+AL , Mode(1) A+AR+AL , Mode(2) A+AR+AL , F_Mode(1) All , F_Mode(2) All , F_Mode(3) All , F_Mode(4) All
[0441] P is a value predefined between the encoder and decoder. For example, it can have a size of M*4, or a size of M, or 20. This is an example where it is determined as a multiple of M or a fixed value, and it can be fixed and used as a different value.
[0442] For example, in the process of constructing P intramode candidates, if not all P candidates are constructed, the remaining candidates can be constructed using a default intramode. It is obvious that the P candidates can be constructed without duplication.
[0443] In the P-intra-mode alignment step, P-intra-modes are aligned based on error values. As shown in Fig. 14, the error value between the predicted sample and the original sample predicted in the template area can be calculated, and the error value can be calculated for each intra-mode. Fig. 14 is an example of calculating the error value by generating a predicted sample in the template area in a vertical direction mode.
[0444] To calculate the error value, error calculation methods such as SAD (Sum of difference), SATD (Sum of transformed difference), SSE (Sum of squared error), MR-SAD (Mean-removed sum of difference), MR-SSE (Mean-removed sum of squared error), and MR-SATD (Mean-removed sum of transformed difference) may be used.
[0445] The template area for calculating the error value can be defined differently from that in FIG. 12 above. For example, H A is 1, W L It can be 1.
[0446] The template area for calculating the error value may use all of AL, A, and L, or partially. For example, the error value can be calculated using only A and L. Additionally, a template area containing unavailable samples that extend beyond boundaries such as picture, slice, tile, CTU, and virtual boundary may be omitted.
[0447] In the step of constructing the top M candidate list, the top M intra modes with the smallest error values among the P intra modes sorted in ascending order based on error values can be configured as a candidate list.
[0448] S1150) Intra mode selection and prediction block generation: This is a step of selecting an intra mode and generating a prediction block using the selected intra mode.
[0449] In one embodiment, one of the intra-mode candidate lists configured in the candidate list configuration step can be signaled. The intra-mode can be specified through the signaling information.
[0450] As another example, the intra mode in the candidate list can be identified without signaling by pre-defining it between the encoder and decoder. For instance, the first candidate in the list can be selected and used without signaling.
[0451] One embodiment relates to a method for deriving intra-modes. As previously described, intra-modes are derived based on the accumulated amplitude (i.e., Histogram of Gradient (HoG)) for each intra-mode obtained by applying a differential filter. One embodiment proposes deriving intra-modes by considering neighbor intra-modes of the intra-mode derived based on HoG.
[0452] Coding performance can be improved by configuring neighbor intra modes as candidates. Additionally, since a method referencing a lookup table is used to avoid floating-point operations during the process of calculating HoG, inaccurate intra mode mapping may occur. Accordingly, utilizing neighbor intra modes can increase the accuracy of the derived modes and improve coding performance.
[0453] In one embodiment, the size of the intramode candidate list is P, and n(n <P)만큼의 인트라 모드가 채워졌을 때 인트라 모드 후보 리스트에 포함된 인트라 모드의 주변 인트라 모드를 이용하여 후보 리스트의 나머지 인트라 모드를 구성할 수 있다.
[0454] For example, let m[0 ... n-1] be a list of intramode candidates containing n already configured intramode candidates before configuring the surrounding intramodes. The surrounding intramodes for configuring the remaining intramodes in the candidate list can be configured using a specific method described below.
[0455] For example, neighboring intramodes can be included as candidate modes in the candidate list in the following order until the size P of the candidate list is filled. In this case, it is obvious that the neighboring intramodes are configured so as not to overlap with intramodes already included in the candidate list.
[0456] m[0]-1, m[0]+1, m[0]-2, m[0]+2,
[0457] m[1]-1, m[1]+1, m[1]-2, m[1]+2,
[0458] m[2]-1, m[2]+1, m[2]-2, m[2]+2,
[0459] …
[0460] m[n-1]-1, m[n-1]+1, m[n-1]-2, m[n-1]+2
[0461] In the above example, neighboring modes separated by up to 2 were configured, but this is merely an example and can be specified with different values by prior agreement between the encoder and decoder. For example, instead of the above "2", an arbitrary fixed value of "1" or greater may be used, a value restored from signaled information may be used, or a value derived based on the block size, etc.
[0462] In the above example, neighboring modes located at a distance of the negative value (-) of the reference intra mode were configured first, but this is merely an example, and the order can be specified by prior agreement between the encoder and decoder. For example, for the same offset value, positive values (+) may be considered first, followed by negative values (-), as shown below.
[0463] m[0]+1, m[0]-1, m[0]+2, m[0]-2,
[0464] m[1]+1, m[1]-1, m[1]+2, m[1]-2,
[0465] m[2]+1, m[2]-1, m[2]+2, m[2]-2,
[0466] …
[0467] m[n-1]+1, m[n-1]-1, m[n-1]+2, m[n-1]-2
[0468] As another example, the intra mode closest to each intra mode in list m can be configured preferentially. For example,
[0469] m[0]-1, m[0]+1, m[1]-1, m[1]+1,
[0470] m[2]-1, m[2]+1, ... , m[n-1]-1, m[n-1]+1,
[0471] m[0]-2, m[0]+2, m[1]-2, m[1]+2,
[0472] m[2]-2, m[2]+2, ... , m[n-1]-2, m[n-1]+2,
[0473] In addition, the remaining intra modes of the candidate list can be configured using combinations of the above examples.
[0474] In the above example, it is obvious that neighboring modes can be induced so as not to exceed the range of previously defined directional intra modes. When modes 0 and 1 are non-directional modes and modes 2 (or 3) through 65 (or 66) are directional modes, for example, a neighboring mode 1 away from the directional mode 2 may mean mode 65 (or mode 66) and mode 3. For example, a neighboring mode 1 away from the directional mode 66 may mean mode 65 and mode 3 (or mode 2).
[0475] In one embodiment, n intra-modes of the candidate list can be configured as described in the candidate list configuration step above. As another example of configuring n intra-modes,
[0476] Up to 4 intramode candidates derived using all templates
[0477] : Mode(1) All , Mode(2) All , Mode(3) All , Mode(4) All
[0478] Or, combinations of up to 8 intramode candidates derived from different templates
[0479] : Mode(1) All , Mode(2) All , Mode(3) All , Mode(4) All , Mode(1) L+LB+AL , Mode(2) L+LB+AL , Mode(1) A+AR+AL , Mode(2) A+AR+AL
[0480] As another example,
[0481] : Mode(1) All , Mode(2) All , Mode(3) All , Mode(4) All , Mode(1) L+LB , Mode(2) L+LB , Mode(1) A+AR , Mode(2) A+AR
[0482] Or, combinations of up to 6 intramode candidates derived from different templates
[0483] : Mode(1) All , Mode(2) All , Mode(3) All , Mode(4) All , Mode(1) L+LB+AL , Mode(1)A+AR+AL
[0484] As another example,
[0485] : Mode(1) All , Mode(2) All , Mode(3) All , Mode(4) All , Mode(1) L+LB , Mode(1) A+AR
[0486] In this way, an intra mode can be derived using only the all template, or an intra mode derived from different templates such as the left template and the above template can be constructed using the candidate list. The number of intra modes derived from each different template to be used to construct the candidate list can be defined in advance between the encoder and the decoder. For example, a fixed number can be defined for each template to construct the candidate list. For instance, a candidate list can be constructed with 4 intra modes using the all template, 2 using the left template, and 2 using the above template. Alternatively, the number can be defined for each template based on the block size. For instance, if the block size is less than or equal to 64, the candidate list can be constructed with 4 derived intra modes using the all template, 2 using the left template, and 2 using the above template; and if the block size is greater than 64, the candidate list can be constructed with 2 intra modes using the all template, 1 using the left template, and 1 using the above template. The above example concerns defining a fixed number that varies by template or determining how many derived intra modes are configured in the candidate list based on the block size; the values and conditions can be defined between the encoder and decoder to be fixed to different values. Additionally, while the above example illustrates only the all template, left template, and above template, the template range is not limited to these.That is, it can be applied to the templates defined in Fig. 12 (AL, A, AR, L, LB template) and combinations thereof (e.g., AL+L+LB template, AL+A+AR template, A+AR template, or L+LB template).
[0487] It is obvious that the n intramodes constituting the above candidate list can be configured so as not to overlap.
[0488] In one embodiment, an intra mode is configured using the method of one embodiment, but when n is 0, that is, when 0 intra modes are configured (e.g., when the amplitude of all intra modes is 0), a candidate list can be configured with a specific intra mode. For example, the specific intra mode may be a DC mode. Or, the specific intra mode may be a PLANAR mode. This is one example of configuring a candidate list with undirected modes, and the candidate list can be configured with other intra modes predefined between the encoder and decoder.
[0489] Subsequently, after constructing a candidate list consisting of n intramodes and their surrounding intramodes, the intramode candidates can be sorted. The sorting method may be the same as the process mentioned in the previous explanation, and after sorting, a candidate list containing the top M intramode candidates can be constructed.
[0490] In another embodiment, sorting may be performed only when n is greater than or equal to 2. This can be determined as a different value through an agreement between the encoder and decoder. Additionally, the sorting condition may vary based on the block size. For example, if the block size is less than or equal to 64, sorting may be performed only when n is greater than or equal to 2. If the block size is greater than 64, sorting may be performed only when n is greater than or equal to 5. Alternatively, the sorting condition may vary depending on the slice type. For example, in the case of an I-slice, sorting may be performed only when n is greater than or equal to 5. In the case of a P-slice or B-slice, sorting may be performed only when n is greater than or equal to 2. This is one example where the sorting condition varies depending on the block size and slice type, and it can be determined as a different condition and value.
[0491] In one embodiment, the size of the intra-mode candidate list may be determined to a different value depending on the block size. For example, if the product of the block width and height is less than 64, the size of the candidate list may be 2, and if it is greater than or equal to 64, the size of the candidate list may be 1. That is, in the above example, if the product of the block width and height is less than 64, the candidate list contains 2 intra-mode candidates, so an index signaling pointing to one intra-mode candidate in the candidate list is added, and if the product of the block width and height is greater than or equal to 64, the candidate list contains 1 intra-mode candidate, so the intra-mode candidate can be known without an index signaling. This is one example of how the intra-mode candidate list is determined according to the block size, and other conditions and the value of N can be determined by pre-defining between the encoder and decoder.
[0492] In another embodiment, H determines the sizes of the A, AR, L, LB, and AL regions according to the block size (the product of the block's width and height) when determining the template area. A and W L The size of can be determined differently. For example, if the block size is 128 or less, H A is 3, W L A value of 3 can be used. If the block size is greater than 128, H A is 4, W L A value of 4 can be used. The above-mentioned case is an example where the size of the area is determined in relation to the block size, and it may be determined and used with other values and / or other conditions.
[0493] According to one embodiment, since a candidate list is constructed by considering not only the intra mode derived according to the present disclosure but also the surrounding intra modes, the derivation of inaccurate intra modes can be improved, and thereby, the effect of improving encoding efficiency can be expected by increasing the performance of prediction.
[0494] FIG. 15 is a drawing illustrating an exemplary content streaming system to which an embodiment according to the present disclosure can be applied.
[0495] As illustrated in FIG. 15, a content streaming system to which an embodiment of the present disclosure is applied may largely include an encoding server, a streaming server, a web server, a media storage, a user device, and a multimedia input device.
[0496] 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.
[0497] The bitstream may be generated by a video encoding method and / or encoding device to which an embodiment of the present disclosure is applied, and the streaming server may temporarily store the bitstream during the process of transmitting or receiving the bitstream.
[0498] The streaming server transmits multimedia data to a user device based on a user request through a web server, and the web server can act 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 can transmit 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 can perform the role of controlling commands and responses between each device within the content streaming system.
[0499] The streaming server can receive content from a media storage and / or an encoding server. For example, when receiving content from the encoding server, the content can be received in real time. In this case, to provide a seamless streaming service, the streaming server can store the bitstream for a certain period of time.
[0500] 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.
[0501] 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.
[0502] The scope of the present disclosure includes software or machine-executable instructions (e.g., operating system, application, firmware, program, etc.) that enable an operation according to a method of various embodiments to be executed on a device or computer, and a non-transitory computer-readable medium on which such software or instructions, etc. are stored and executable on a device or computer.
[0503] An embodiment according to the present disclosure can be used to encode / decode images.
Claims
1. A step of acquiring image information including prediction information; A step of deriving an intra mode for the current block based on the above prediction information; The method includes the step of generating a prediction sample for the current block based on the intra mode; The step of deriving the above intra-mode is, Based on the above prediction information, an intra mode induced for the current block is derived, and Deriving an MPM list and an SMPM list based on at least one of the above-described intramode or the surrounding intramodes of the above-described intramode, and A method comprising deriving the intra mode based on the above MPM list and the above SMPM list.
2. In Paragraph 1, A method for deriving the MPM list and the SMPM list based on a planner mode, an intra mode of an adjacent surrounding block, an intra mode derived from an inter mode of an adjacent surrounding block, a DIMD mode, an intra mode of a non-adjacent surrounding block, an intra mode derived from an inter mode of a non-adjacent surrounding block, an intra mode of the surrounding intra mode of the derived intra mode, an intra mode of the previously derived mode, and a default intra mode.
3. In Paragraph 2, A method for deriving the MPM list and the SMPM list in the order of planner mode, intra mode of adjacent surrounding blocks, intra mode derived from the inter mode of adjacent surrounding blocks, DIMD mode, intra mode of non-adjacent surrounding blocks, intra mode derived from the inter mode of non-adjacent surrounding blocks, surrounding intra mode of the derived intra mode, surrounding intra mode of the previously derived mode, and default intra mode.
4. In Paragraph 1, A method for deriving the MPM list and the SMPM list based on an induced intra mode, a planner mode, an intra mode of an adjacent surrounding block, an intra mode derived from an inter mode of an adjacent surrounding block, a DIMD mode, an intra mode of a non-adjacent surrounding block, an intra mode derived from an inter mode of a non-adjacent surrounding block, an intra mode of the surrounding intra mode of the induced intra mode, an intra mode of the previously derived mode, and a default intra mode.
5. In Paragraph 4, A method for deriving the MPM list and the SMPM list in the order of the induced intra mode, planner mode, intra mode of an adjacent surrounding block, intra mode derived from the inter mode of an adjacent surrounding block, DIMD mode, intra mode of a non-adjacent surrounding block, intra mode derived from the inter mode of a non-adjacent surrounding block, the surrounding intra mode of the induced intra mode, the surrounding intra mode of the previously derived mode, and the default intra mode.
6. In Paragraph 1, A method for deriving the MPM list and the SMPM list based on a planner mode, an intra mode of a surrounding block, an intra mode derived from an inter mode of a surrounding block, a surrounding intra mode of the derived intra mode, a surrounding intra mode of a previously derived mode, and a default intra mode.
7. In Paragraph 6, A method for deriving the MPM list and the SMPM list in the order of planner mode, intra mode of surrounding blocks, intra mode derived from the inter mode of surrounding blocks, surrounding intra mode of the derived intra mode, surrounding intra mode of the previously derived mode, and default intra mode.
8. In Paragraph 1, A method for deriving the MPM list and the SMPM list based on the induced intra mode, planner mode, intra mode of a surrounding block, intra mode derived from the inter mode of a surrounding block, surrounding intra mode of the induced intra mode, surrounding intra mode of the previously derived mode, and default intra mode.
9. In Paragraph 8, A method for deriving the MPM list and the SMPM list in the order of the induced intra mode, planner mode, intra mode of the surrounding block, intra mode derived from the inter mode of the surrounding block, surrounding intra mode of the induced intra mode, surrounding intra mode of the previously derived mode, and default intra mode.
10. A step for determining the intra mode for the current block; A step of generating a prediction sample for the current block based on the above intra mode; The method includes the step of encoding image information containing prediction information related to the above intra mode; and The step of determining the above intra-mode is, Based on the above prediction information, an intra mode induced for the current block is derived, and Deriving an MPM list and an SMPM list based on at least one of the above-described intramode or the surrounding intramodes of the above-described intramode, and A method comprising deriving the intra mode based on the above MPM list and the above SMPM list.
11. A computer-readable recording medium storing a bitstream generated by the video encoding method according to paragraph 10.
12. Step to generate a bitstream; The method includes the step of transmitting data including the bitstream above; and The step of generating the above bitstream is, A step for determining the intra mode for the current block; A step of generating a prediction sample for the current block based on the above intra mode; The method includes the step of encoding image information containing prediction information related to the above intra mode; and The step of determining the above intra-mode is, Based on the above prediction information, an intra mode induced for the current block is derived, and Deriving an MPM list and an SMPM list based on at least one of the above-described intramode or the surrounding intramodes of the above-described intramode, and A method comprising deriving the intra mode based on the above MPM list and the above SMPM list.