Image encoding / decoding method and device based on intra-frame prediction mode conversion, and method for transmitting bit stream
By replacing the intra prediction mode with a predetermined prediction mode in image encoding/decoding, the problem of low high-resolution image encoding efficiency is solved, and more efficient image transmission and storage is achieved.
Patent Information
- Application Number
- CN202080050962.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-06-13
- Filing Date
- 2020-06-15
- Publication Date
- 2025-05-09
- Estimated Expiration
- 2040-06-15
AI Technical Summary
The prior art is difficult to effectively improve image encoding/decoding efficiency, especially when processing high-resolution and high-quality images, resulting in increased transmission and storage costs.
By replacing the intra prediction mode of neighboring blocks with a predetermined prediction mode, the prediction complexity is reduced, and an image encoding/decoding method and device are proposed to generate and transmit a bit stream.
Improve image encoding/decoding efficiency, reduce prediction complexity, and optimize image transmission and storage costs.
Smart Images

Figure CN114145017B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to an image encoding / decoding method and apparatus, and more particularly, to an image encoding / decoding method and apparatus using an intra-frame prediction mode, and a method of transmitting a bit stream generated by the image encoding method / apparatus of the present disclosure. Background Art
[0002] Recently, the demand for high-resolution and high-quality images, such as high-definition (HD) images and ultra-high-definition (UHD) images, is increasing in various fields. As the resolution and quality of image data are improved, the amount of information or bits transmitted is relatively increased compared to existing image data. The increase in the amount of information or bits transmitted leads to an increase in transmission cost and storage cost.
[0003] Therefore, efficient image compression technology is needed to effectively transmit, store, and reproduce information about high-resolution and high-quality images. Summary of the invention
[0004] Technical issues
[0005] An object of the present disclosure is to provide an image encoding / decoding method and apparatus with improved encoding / decoding efficiency.
[0006] Another object of the present disclosure is to provide an image encoding / decoding method and apparatus capable of reducing prediction complexity by replacing an intra-frame prediction mode of a neighboring block with a predetermined prediction mode.
[0007] Another object of the present disclosure is to provide a method for transmitting a bit stream generated by the image encoding method or apparatus according to the present disclosure.
[0008] Another object of the present disclosure is to provide a recording medium storing a bit stream generated by the image encoding method or apparatus according to the present disclosure.
[0009] Another object of the present disclosure is to provide a recording medium storing a bit stream received and decoded by the image decoding device according to the present disclosure and used to reconstruct an image.
[0010] The technical problems solved by the present disclosure are not limited to the above-mentioned technical problems, and other technical problems not described here will become apparent to those skilled in the art from the following description.
[0011] Technical Solution
[0012] An image decoding method performed by an image decoding device according to one aspect of the present disclosure may include: obtaining partition information of an image from a bitstream; determining a current block by partitioning the image based on the partition information; identifying neighboring blocks located around the current block; identifying whether a prediction mode of the neighboring blocks is a MIP (matrix-based intra prediction) mode; based on the prediction mode of the neighboring blocks being the MIP mode, generating a candidate mode list of the current block based on a predetermined candidate mode; and determining a prediction mode of the current block based on the candidate mode list. The index of the predetermined candidate mode is specified to be 0.
[0013] Based on the prediction mode of the current block being the MIP mode, the predetermined candidate mode may be determined as the predetermined MIP mode. The predetermined candidate mode may be determined based on the size of the current block. The predetermined candidate mode may be the MIP mode used with the highest frequency among the multiple MIP modes.
[0014] In addition, based on the prediction mode of the current block being the MIP mode and the prediction mode of the neighboring block being not the MIP mode, the candidate mode may be determined as a mode specifying that the prediction mode of the neighboring block is not the MIP mode.
[0015] Based on the prediction mode of the current block being an intra prediction mode other than the MIP mode, the candidate mode may be determined as a predetermined intra prediction mode, and the predetermined intra prediction mode may be any one of a planar mode, a DC mode, a horizontal mode, and a vertical mode.
[0016] In addition, the image processing device may include: determining a reference prediction mode for determining an intra prediction mode of a chroma block corresponding to the current block, and determining the intra prediction mode of the chroma block based on the reference prediction mode, and based on the current block being a luminance block to which the MIP mode is applied, the reference prediction mode may be determined as a planar mode. The intra prediction mode of the chroma block may be determined as the reference prediction mode.
[0017] Meanwhile, based on the fact that the current block is a luminance block to which the MIP mode is not applied, the reference prediction mode may be determined based on the intra prediction mode of the current block.
[0018] In addition, an image decoding device according to an embodiment may include a memory and at least one processor. The at least one processor may: obtain partition information of an image from a bitstream, determine a current block by partitioning the image based on the partition information, identify neighboring blocks located around the current block, identify whether a prediction mode of the neighboring blocks is a MIP (matrix-based intra prediction) mode, based on the prediction mode of the neighboring blocks being a MIP mode, generate a candidate mode list of the current block based on a predetermined candidate mode, and determine a prediction mode of the current block based on the candidate mode list.
[0019] In addition, an image encoding method performed by an image encoding device according to one aspect of the present disclosure may include: determining a current block by partitioning an image; identifying neighboring blocks located around the current block; identifying whether a prediction mode of the neighboring blocks is a MIP (matrix-based intra prediction) mode; based on the prediction mode of the neighboring blocks being the MIP mode, generating a candidate mode list of the current block based on a predetermined candidate mode; and encoding the prediction mode of the current block based on the candidate mode list. The index of the predetermined candidate mode may be 0.
[0020] In addition, a transmission method according to another aspect of the present disclosure may transmit a bit stream generated by the image encoding device or the image encoding method of the present disclosure.
[0021] In addition, a computer-readable recording medium according to another aspect of the present disclosure may store a bit stream generated by the image encoding device or the image encoding method of the present disclosure.
[0022] The features briefly summarized above with respect to the present disclosure are merely exemplary aspects of the following detailed description of the present disclosure and do not limit the scope of the present disclosure.
[0023] Beneficial Effects
[0024] According to the present disclosure, an image encoding / decoding method and apparatus with improved encoding / decoding efficiency can be provided.
[0025] In addition, according to the present disclosure, it is possible to provide an image encoding / decoding method and apparatus capable of reducing prediction complexity by replacing an intra prediction mode of a neighboring block with a predetermined prediction mode.
[0026] In addition, according to the present disclosure, a method of transmitting a bit stream generated by the image encoding method or apparatus according to the present disclosure may be provided.
[0027] In addition, according to the present disclosure, a recording medium storing a bit stream generated by the image encoding method or apparatus according to the present disclosure can be provided.
[0028] In addition, according to the present disclosure, a recording medium storing a bit stream received and decoded by the image decoding device according to the present disclosure and used to reconstruct an image can be provided.
[0029] Those skilled in the art will appreciate that the effects that can be achieved by the present disclosure are not limited to what has been particularly described above, and other advantages of the present disclosure will be more clearly understood from the detailed description. BRIEF DESCRIPTION OF THE DRAWINGS
[0030] Figure 1 is a view schematically showing a video coding system to which an embodiment of the present disclosure is applicable.
[0031] Figure 2 is a diagram schematically showing an image encoding device to which an embodiment of the present disclosure is applicable.
[0032] Figure 3 is a diagram schematically showing an image decoding device to which an embodiment of the present disclosure is applicable.
[0033] Figure 4 is a view illustrating a slice and tile structure according to an embodiment.
[0034] Figures 5 and 6 is a view illustrating a directional intra prediction mode according to an embodiment.
[0035] Figure 7 and Figure 8 is a reference view illustrating a MIP mode according to an embodiment.
[0036] Fig. 9 is a view illustrating a mapping table for mapping a MIP mode to a normal intra prediction mode according to an embodiment.
[0037] Figures 10 to 12 is a view illustrating a syntax of a compilation unit according to an embodiment.
[0038] Fig.13 is a view illustrating a mapping table for mapping a normal intra prediction mode to a MIP mode according to an embodiment.
[0039] Fig.14 is a view illustrating an MPM list configured in a predetermined MIP intra prediction mode according to an embodiment.
[0040] Fig.15 is a flowchart illustrating a method of encoding an intra prediction mode using an MPM list according to an embodiment.
[0041] Fig.16 is a flowchart illustrating a method of performing decoding using an MPM list by a decoding apparatus according to an embodiment.
[0042] Fig.17 is a flowchart illustrating a method of generating an MPM list using a mapping method according to an embodiment.
[0043] Fig.18 is a flowchart illustrating a method of generating an MPM list using a mapping method according to another embodiment.
[0044] Fig.19 is a flowchart illustrating a method of generating an MPM list using a simplified mapping method according to an embodiment.
[0045] Fig. 20is a flowchart illustrating a method of generating an MPM list using a simplified mapping method by an encoding apparatus according to an embodiment.
[0046] Fig.21 is a flowchart illustrating a method of generating an MPM list using a simplified mapping method by a decoding apparatus according to an embodiment.
[0047] Fig. 22 It is used as a graphic Fig.19 A simplified view of compiled performance data for mapping methods.
[0048] Fig.23 is a flowchart illustrating a method of generating an MPM list using a simplified mapping method according to another embodiment.
[0049] Fig.24 is a flowchart illustrating another embodiment of generating an MPM list using a simplified mapping method by an encoding apparatus according to an embodiment.
[0050] Fig.25 is a flowchart illustrating another embodiment of generating an MPM list using a simplified mapping method by a decoding device according to an embodiment.
[0051] Fig.26 It is used as a graphic Fig.23 A simplified view of compiled performance data for mapping methods.
[0052] Fig. 27 is a flowchart illustrating a method of generating an MPM list using a mapping method according to another embodiment.
[0053] Fig.28 It is used as a graphic Fig. 27 Flow chart of a method for generating a candidate pattern list using a simplified mapping method.
[0054] Fig.29 is a view illustrating compilation performance data using a simplified mapping method according to another embodiment.
[0055] Fig.30 is a flowchart illustrating a method of generating a candidate mode list using a simplified mapping method by an encoding apparatus according to an embodiment.
[0056] Fig.31 is a flowchart illustrating a method of generating a candidate mode list using a simplified mapping method by a decoding apparatus according to an embodiment.
[0057] Fig.32 is a diagram showing a content streaming system to which an embodiment of the present disclosure is applicable. DETAILED DESCRIPTION
[0058] Hereinafter, the embodiments of the present disclosure will be described in detail with reference to the accompanying drawings to facilitate implementation by those skilled in the art. However, the present disclosure can be implemented in various forms and is not limited to the embodiments described herein.
[0059] When describing the present disclosure, if it is determined that the detailed description of related known functions or configurations makes the scope of the present disclosure unnecessarily ambiguous, the detailed description thereof will be omitted. In the drawings, parts irrelevant to the description of the present disclosure are omitted, and like reference numerals are given to like parts.
[0060] In the present disclosure, when a component is "connected", "coupled" or "linked" to another component, it may include not only a direct connection relationship but also an indirect connection relationship with intermediate components. In addition, when a component "includes" or "has" other components, unless otherwise specified, it means that other components may also be included, rather than excluding other components.
[0061] In the present disclosure, the terms first, second, etc. are used only for the purpose of distinguishing one component from other components, and do not limit the order or importance of the components unless otherwise specified. Accordingly, within the scope of the present disclosure, the first component in one embodiment may be referred to as the second component in another embodiment, and similarly, the second component in one embodiment may be referred to as the first component in another embodiment.
[0062] In the present disclosure, components that are distinguished from each other are intended to clearly describe each feature and do not mean that the components must be separated. That is, multiple components can be integrated and implemented in one hardware or software unit, or one component can be distributed and implemented in multiple hardware or software units. Therefore, even if not specifically stated, embodiments in which these components are integrated or distributed are also included in the scope of the present disclosure.
[0063] In the present disclosure, the components described in the various embodiments are not necessarily essential components, and some components may be optional components. Therefore, embodiments consisting of a subset of the components described in the embodiments are also included in the scope of the present disclosure. In addition, embodiments that include other components in addition to the components described in the various embodiments are included in the scope of the present disclosure.
[0064] The present disclosure relates to encoding and decoding of images. Unless otherwise defined in the present disclosure, terms used in the present disclosure may have general meanings commonly used in the technical field to which the present disclosure belongs.
[0065] In the present disclosure, a "picture" generally refers to a unit representing an image within a specific time period, and a slice / tile is a coding unit that constitutes a part of a picture. A picture may be composed of one or more slices / tiles. In addition, a slice / tile may include one or more coding tree units (CTUs).
[0066] In the present disclosure, "pixel" or "pel" may mean the smallest single unit constituting a picture (or image). In addition, "sample" may be used as a term corresponding to a pixel. A sample may generally represent a pixel or a pixel value, or may represent only a pixel / pixel value of a luminance component or only a pixel / pixel value of a chrominance component.
[0067] In the present disclosure, a "unit" may refer to a basic unit of image processing. The unit may include at least one of a specific area of a picture and information related to the area. In some cases, the unit may be used interchangeably with terms such as "sample array", "block" or "area". In general, an M×N block may include M columns and N rows of samples (or sample arrays) or a set (or array) of transform coefficients.
[0068] In the present disclosure, "current block" may mean one of "current coding block", "current coding unit", "coding target block", "decoding target block" or "processing target block". When prediction is performed, "current block" may mean "current prediction block" or "prediction target block". When transform (inverse transform) / quantization (dequantization) is performed, "current block" may mean "current transform block" or "transform target block". When filtering is performed, "current block" may mean "filtering target block".
[0069] Furthermore, in the present disclosure, unless explicitly stated as a chroma block, “current block” may mean “luminance block of the current block.” “Chroma block of the current block” may be expressed by including an explicit description of a chroma block such as “chroma block” or “current chroma block.”
[0070] In the present disclosure, the slash " / " or "," may be interpreted as indicating "and / or". For example, "A / B" and "A, B" may mean "A and / or B". In addition, "A / B / C" and "A / B / C" may mean "at least one of A, B, and / or C".
[0071] In the present disclosure, the term "or" should be interpreted to indicate "and / or". For example, the expression "A or B" may include 1) only "A", 2) only "B", or 3) both "A and B". In other words, in the present disclosure, "or" should be interpreted to indicate "additionally or alternatively".
[0072] Video compilation system overview
[0073] Figure 1 is a view schematically illustrating a video coding system according to the present disclosure.
[0074] The video coding system according to an embodiment may include an encoding device 10 and a decoding device 20. The encoding device 10 may deliver encoded video and / or image information or data to the decoding device 20 via a digital storage medium or a network in the form of a file or a stream.
[0075] The encoding device 10 according to the embodiment may include a video source generator 11, a coding unit 12, and a transmitter 13. The decoding device 20 according to the embodiment may include a receiver 21, a decoding unit 22, and a renderer 23. The coding unit 12 may be called a video / image coding unit, and the decoding unit 22 may be called a video / image decoding unit. The transmitter 13 may be included in the coding unit 12. The receiver 21 may be included in the decoding unit 22. The renderer 23 may include a display and the display may be configured as a separate device or an external component.
[0076] The video source generator 11 can obtain the video / image by the process of capturing, synthesizing or generating the video / image. The video source generator 11 may include a video / image capturing device and / or a video / image generating device. The video / image capturing device may include, for example, one or more cameras, a video / image archive including previously captured videos / images, etc. The video / image generating device may include, for example, a computer, a tablet computer, and a smart phone, and may generate the video / image (electronically). For example, a virtual video / image may be generated by a computer, etc. In this case, the video / image capturing process may be replaced by a process of generating relevant data.
[0077] The coding unit 12 may encode the input video / image. For compression and coding efficiency, the coding unit 12 may perform a series of processes such as prediction, transformation, and quantization. The coding unit 12 may output coded data (coded video / image information) in the form of a bitstream.
[0078] The transmitter 13 may transmit the encoded video / image information or the data output in the form of a bit stream to the receiver 21 of the decoding device 20 in the form of a file or stream through a digital storage medium or a network. The digital storage medium may include various storage media, such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmitter 13 may include an element for generating a media file in a predetermined file format and may include an element for transmitting through a broadcast / communication network. The receiver 21 may extract / receive a bit stream from a storage medium or a network and transmit the bit stream to the decoding unit 22.
[0079] The decoding unit 22 may decode a video / image by performing a series of processes corresponding to the operation of the coding unit 12, such as dequantization, inverse transformation, and prediction.
[0080] The renderer 23 may render the decoded video / image. The rendered video / image may be displayed through a display.
[0081] Overview of Image Coding Device
[0082] Figure 2 is a diagram schematically showing an image encoding device to which an embodiment of the present disclosure is applicable.
[0083] like Figure 2 As shown, the image encoding device 100 may include an image partitioner 110, a subtractor 115, a transformer 120, a quantizer 130, a dequantizer 140, an inverse transformer 150, an adder 155, a filter 160, a memory 170, an inter-frame prediction unit 180, an intra-frame prediction unit 185, and an entropy encoder 190. The inter-frame prediction unit 180 and the intra-frame prediction unit 185 may be collectively referred to as a "prediction unit". The transformer 120, the quantizer 130, the dequantizer 140, and the inverse transformer 150 may be included in a residual processor. The residual processor may also include a subtractor 115.
[0084] In some embodiments, all or at least some of the components configuring the image encoding apparatus 100 may be configured by one hardware component (eg, an encoder or a processor). In addition, the memory 170 may include a decoded picture buffer (DPB) and may be configured by a digital storage medium.
[0085] The image partitioner 110 may partition an input image (or picture or frame) input to the image encoding device 100 into one or more processing units. For example, a processing unit may be referred to as a coding unit (CU). A coding unit may be obtained by recursively partitioning a coding tree unit (CTU) or a maximum coding unit (LCU) according to a quadtree binary tree ternary tree (QT / BT / TT) structure. For example, a coding unit may be partitioned into a plurality of coding units of a deeper depth based on a quadtree structure, a binary tree structure, and / or a ternary tree structure. For the partitioning of the coding unit, a quadtree structure may be applied first, and then a binary tree structure and / or a ternary tree structure may be applied. The coding process according to the present disclosure may be performed based on a final coding unit that is no longer partitioned. The maximum coding unit may be used as the final coding unit, or a coding unit of a deeper depth obtained by partitioning the maximum coding unit may be used as the final coding unit. Here, the coding process may include the prediction, transformation, and reconstruction processes described later. As another example, the processing unit of the coding process may be a prediction unit (PU) or a transformation unit (TU). The prediction unit and the transform unit may be split or partitioned from the final coding unit. The prediction unit may be a sample prediction unit, and the transform unit may be a unit for deriving a transform coefficient and / or a unit for deriving a residual signal from a transform coefficient.
[0086] The prediction unit (inter prediction unit 180 or intra prediction unit 185) may perform prediction on the block to be processed (current block) and generate a prediction block including prediction samples of the current block. The prediction unit may determine whether to apply intra prediction or inter prediction based on the current block or CU. The prediction unit may generate various information related to the prediction of the current block and transmit the generated information to the entropy encoder 190. The information about the prediction may be encoded in the entropy encoder 190 and output in the form of a bitstream.
[0087] The intra prediction unit 185 can predict the current block by referring to the samples in the current picture. Depending on the intra prediction mode and / or the intra prediction technology, the reference samples can be located in the neighbors of the current block or can be placed separately. The intra prediction mode may include multiple non-directional modes and multiple directional modes. The non-directional mode may include, for example, a DC mode and a plane mode. Depending on the level of detail of the prediction direction, the directional mode may include, for example, 33 directional prediction modes or 65 directional prediction modes. However, this is only an example, and more or fewer directional prediction modes may be used according to the settings. The intra prediction unit 185 may determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring blocks.
[0088] The inter prediction unit 180 may derive a prediction block of the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. In this case, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information may be predicted in units of blocks, sub-blocks, or samples based on the correlation of motion information between neighboring blocks and the current block. The motion information may include a motion vector and a reference picture index. The motion information may also include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the neighboring blocks may include spatial neighboring blocks present in the current picture and temporal neighboring blocks present in the reference picture. The reference picture including the reference block and the reference picture including the temporal neighboring block may be the same or different. The temporal neighboring block may be referred to as a collocated reference block, a collocated CU (colCU), etc. The reference picture including the temporal neighboring block may be referred to as a collocated picture (colPic). For example, the inter prediction unit 180 may configure a motion information candidate list based on the neighboring blocks and generate information specifying 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 180 may use the motion information of the neighboring block as the motion information of the current block. In the case of skip mode, unlike the merge mode, the residual signal may not be transmitted. In the case of motion vector prediction (MVP) mode, the motion vector of the neighboring block may be used as a motion vector predictor, and the motion vector of the current block may be signaled by encoding the motion vector difference and an indicator of the motion vector predictor. The motion vector difference may mean the difference between the motion vector of the current block and the motion vector predictor.
[0089] The prediction unit may generate a prediction signal based on various prediction methods and prediction techniques described below. For example, the prediction unit may not only apply intra prediction or inter prediction, but may also apply intra prediction and inter prediction simultaneously to predict the current block. The prediction method of applying both intra prediction and inter prediction simultaneously to predict the current block may be referred to as combined inter and intra prediction (CIIP). In addition, the prediction unit may perform intra block copy (IBC) to predict the current block. Intra block copy may be used for content image / video coding of games, etc., such as screen content coding (SCC). IBC is a method of predicting the current picture using a previously reconstructed reference block in the current picture at a position separated by a predetermined distance from the current block. When IBC is applied, the position of the reference block in the current picture may be encoded as a vector (block vector) corresponding to a predetermined distance. IBC basically performs prediction in the current picture, but may be performed similarly to inter prediction because the reference block is derived within the current picture. That is, IBC may use at least one of the inter prediction techniques described in the present disclosure. IBC basically performs prediction in the current picture, but may be performed similarly to inter prediction because the reference block is derived within the current picture. That is, IBC may use at least one of the inter-frame prediction techniques described in this disclosure.
[0090] The prediction signal generated by the prediction unit can be used to generate a reconstruction signal or to generate a residual signal. The subtractor 115 can generate a residual signal (residual block or residual sample array) by subtracting the prediction signal (prediction block or prediction sample array) output from the prediction unit from the input image signal (original block or original sample array). The generated residual signal can be transmitted to the transformer 120.
[0091] The transformer 120 may generate transform coefficients by applying a transform technique to the residual signal. For example, the transform technique may include at least one of a discrete cosine transform (DCT), a discrete sine transform (DST), a karhunen-loève transform (KLT), a graph-based transform (GBT), or a conditional nonlinear transform (CNT). Here, GBT refers to a transform obtained from a graph when relationship information between pixels is represented by a graph. CNT refers to a transform obtained based on a prediction signal generated using all previously reconstructed pixels. In addition, the transform process may be applied to square pixel blocks of the same size or may be applied to blocks of variable size rather than square.
[0092] The quantizer 130 may quantize the transform coefficients and transmit them to the entropy encoder 190. The entropy encoder 190 may encode the quantized signal (information about the quantized transform coefficients) and output a bitstream. The information about the quantized transform coefficients may be referred to as residual information. The quantizer 130 may rearrange the quantized transform coefficients in the block form into a one-dimensional vector form based on the coefficient scanning order, and generate information about the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector form.
[0093] The entropy encoder 190 may perform various encoding methods, such as exponential Golomb, context adaptive variable length coding (CAVLC), context adaptive binary arithmetic coding (CABAC), etc. The entropy encoder 190 may encode information required for video / image reconstruction (e.g., values of syntax elements, etc.) together or separately in addition to quantized transform coefficients. The encoded information (e.g., encoded video / image information) may be transmitted or stored in units of a network abstraction layer (NAL) in the form of a bitstream. The video / image information may also include information about various parameter sets, such as an adaptive parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, the video / image information may also include general constraint information. The signaled information, transmitted information, and / or syntax elements described in the present disclosure may be encoded and included in a bitstream through the above-described encoding process.
[0094] The bitstream may be transmitted over a network or may be stored in a digital storage medium. The network may include a broadcast network and / or a communication network, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. A transmitter (not shown) that transmits a signal output from the entropy encoder 190 and / or a storage unit (not shown) that stores the signal may be included as an internal / external element of the image encoding device 100. Alternatively, a transmitter may be provided as a component of the entropy encoder 190.
[0095] The quantized transform coefficients output from the quantizer 130 may be used to generate a residual signal. For example, the residual signal (residual block or residual sample) may be reconstructed by applying dequantization and inverse transformation to the quantized transform coefficients through the dequantizer 140 and the inverse transformer 150.
[0096] The adder 155 adds the reconstructed residual signal to the prediction signal output from the inter-frame prediction unit 180 or the intra-frame prediction unit 185 to generate a reconstructed signal (reconstructed image, reconstructed block, reconstructed sample array). If there is no residual in the block to be processed, such as when the skip mode is applied, the prediction block can be used as a reconstructed block. The adder 155 can be called a reconstructor or a reconstructed block generator. The generated reconstructed signal can be used for intra-frame prediction of the next block to be processed in the current picture, and can be used for inter-frame prediction of the next picture by filtering as described below.
[0097] The filter 160 can improve the subjective / objective image quality by applying filtering to the reconstructed signal. For example, the filter 160 can generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture, and store the modified reconstructed picture in the memory 170, specifically, in the DPB of the memory 170. Various filtering methods may include, for example, deblocking filtering, sample adaptive offset, adaptive loop filtering, bilateral filtering, etc. The filter 160 can generate various information related to filtering and transmit the generated information to the entropy encoder 190, as described later in the description of each filtering method. The information related to filtering can be encoded by the entropy encoder 190 and output in the form of a bit stream.
[0098] The modified reconstructed picture transferred to the memory 170 may be used as a reference picture in the inter prediction unit 180. When inter prediction is applied by the image encoding device 100, prediction mismatch between the image encoding device 100 and the image decoding device may be avoided and encoding efficiency may be improved.
[0099] The DPB of the memory 170 may store the modified reconstructed picture for use as a reference picture in the inter-frame prediction unit 180. The memory 170 may store the motion information of the block from which the motion information in the current picture is derived (or encoded) and / or the motion information of the reconstructed block in the picture. The stored motion information may be transmitted to the inter-frame prediction unit 180 and used as the motion information of the spatial neighboring block or the motion information of the temporal neighboring block. The memory 170 may store the reconstructed samples of the reconstructed blocks in the current picture and may transmit the reconstructed samples to the intra-frame prediction unit 185.
[0100] Overview of Image Decoding Device
[0101] Figure 3 is a diagram schematically showing an image decoding device to which an embodiment of the present disclosure is applicable.
[0102] like Figure 3As shown, the image decoding device 200 may include an entropy decoder 210, a dequantizer 220, an inverse transformer 230, an adder 235, a filter 240, a memory 250, an inter-frame prediction unit 260, and an intra-frame prediction unit 265. The inter-frame prediction unit 260 and the intra-frame prediction unit 265 may be collectively referred to as a "prediction unit". The dequantizer 220 and the inverse transformer 230 may be included in a residual processor.
[0103] According to an embodiment, all or at least some of the plurality of components configuring the image decoding apparatus 200 may be configured by hardware components (eg, a decoder or a processor). In addition, the memory 250 may include a decoded picture buffer (DPB) or may be configured by a digital storage medium.
[0104] The image decoding apparatus 200 having received a bit stream including video / image information may perform the same operation as that performed by Figure 2 The image may be reconstructed by a process corresponding to the process performed by the image encoding device 100. For example, the image decoding device 200 may perform decoding using a processing unit applied in the image encoding device. Therefore, the processing unit of decoding may be, for example, a coding unit. The coding unit may be obtained by partitioning the coding tree unit or the maximum coding unit. The reconstructed image signal decoded and output by the image decoding device 200 may be reproduced by a reproduction device (not shown).
[0105] The image decoding apparatus 200 may receive the image in the form of a bit stream from Figure 2The received signal may be decoded by the entropy decoder 210. For example, the entropy decoder 210 may parse the bitstream to derive information (e.g., video / image information) required for image reconstruction (or picture reconstruction). The video / image information may also include information about various parameter sets, such as an adaptive parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, the video / image information may also include general constraint information. The image decoding device may also decode the picture based on the parameter set information and / or the general constraint information. The information and / or syntax elements signaled / received described in the present disclosure may be decoded and obtained from the bitstream through a decoding process. For example, the entropy decoder 210 decodes the information in the bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and outputs the values of the syntax elements required for image reconstruction and the quantized values of the transform coefficients of the residual. More specifically, the CABAC entropy decoding method can receive a bin corresponding to each syntax element in the bitstream, use the decoding target syntax element information, the decoding information of the neighboring block and the decoding target block, or the information of the symbol / bin decoded in the previous stage to determine the context model, and perform arithmetic decoding on the bin by predicting the probability of occurrence of the bin according to the determined context model, and generate a symbol corresponding to the value of each syntax element. In this case, the CABAC entropy decoding method can update the context model by using the information of the decoded symbol / bin for the context model of the next symbol / bin after determining the context model. The information related to the prediction in the information decoded by the entropy decoder 210 can be provided to the prediction unit (inter-frame prediction unit 260 and intra-frame prediction unit 265), and the residual value on which entropy decoding is performed in the entropy decoder 210, that is, the quantized transform coefficient and related parameter information can be input to the dequantizer 220. In addition, information about filtering among the information decoded by the entropy decoder 210 can be provided to the filter 240. Meanwhile, a receiver (not shown) for receiving a signal output from the image encoding device may be further configured as an internal / external element of the image decoding device 200 , or the receiver may be a component of the entropy decoder 210 .
[0106] Meanwhile, the image decoding device according to the present disclosure may be referred to as a video / image / picture decoding device. The image 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 an entropy decoder 210. The sample decoder may include a dequantizer 220, an inverse transformer 230, an adder 235, a filter 240, a memory 250, at least one of an inter-frame prediction unit 160 or an intra-frame prediction unit 265.
[0107] The dequantizer 220 may dequantize the quantized transform coefficient and output the transform coefficient. The dequantizer 220 may rearrange the quantized transform coefficient in the form of a two-dimensional block. In this case, the rearrangement may be performed based on the coefficient scanning order performed in the image encoding device. The dequantizer 220 may perform dequantization on the quantized transform coefficient by using a quantization parameter (e.g., quantization step size information) and obtain the transform coefficient.
[0108] The inverse transformer 230 may inversely transform the transform coefficients to obtain a residual signal (residual block, residual sample array).
[0109] The prediction unit may perform prediction on the current block and generate a prediction block including a prediction sample of the current block. The prediction unit may determine whether to apply intra prediction or inter prediction to the current block based on the information about the prediction output from the entropy decoder 210, and may determine a specific intra / inter prediction mode (prediction technique).
[0110] The same as described in the prediction unit of the image encoding device 100 , the prediction unit can generate a prediction signal based on various prediction methods (techniques) described later.
[0111] The intra prediction unit 265 may predict the current block by referring to samples in the current picture. The description of the intra prediction unit 185 is also applicable to the intra prediction unit 265.
[0112] The inter prediction unit 260 may derive a prediction block of the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. In this case, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information may be predicted in units of blocks, sub-blocks, or samples based on the correlation of the motion information between the neighboring blocks and the current block. The motion information may include a motion vector and a reference picture index. The motion information may also include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the neighboring blocks may include spatial neighboring blocks present in the current picture and temporal neighboring blocks present in the reference picture. For example, the inter prediction unit 260 may configure a motion information candidate list based on the neighboring blocks, and derive a motion vector and / or a reference picture index of the current block based on the received candidate selection information. Inter prediction may be performed based on various prediction modes, and information about the prediction may include information indicating an inter prediction mode of the current block.
[0113] The adder 235 can generate a reconstructed block by adding the obtained residual signal to the prediction signal (prediction block, prediction sample array) output from the prediction unit (including the inter-frame prediction unit 260 and / or the intra-prediction unit 265). If the block to be processed has no residual, such as when the skip mode is applied, the prediction block can be used as the reconstructed block. The description of the adder 155 is also applicable to the adder 235. The adder 235 can be called a reconstructor or a reconstructed block generator. The generated reconstructed signal can be used for intra-frame prediction of the next block to be processed in the current picture, and can be used for inter-frame prediction of the next picture by filtering as described below.
[0114] The filter 240 can improve the subjective / objective image quality by applying filtering to the reconstructed signal. For example, the filter 240 can generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture, and store the modified reconstructed picture in the memory 250, specifically, in the DPB of the memory 250. The various filtering methods may include, for example, deblocking filtering, sample adaptive offset, adaptive loop filtering, bilateral filtering, etc.
[0115] The (modified) reconstructed picture stored in the DPB of the memory 250 may be used as a reference picture in the inter prediction unit 260. The memory 250 may store the motion information of the block from which the motion information in the current picture is derived (or decoded) and / or the motion information of the reconstructed block in the picture. The stored motion information may be transmitted to the inter prediction unit 260 to be used as the motion information of the spatial neighboring block or the motion information of the temporal neighboring block. The memory 250 may store the reconstructed samples of the reconstructed block in the current picture and transmit the reconstructed samples to the intra prediction unit 265.
[0116] In the present disclosure, the embodiments described in the filter 160, the inter-frame prediction unit 180 and the intra-frame prediction unit 185 of the image encoding device 100 can be equally or correspondingly applied to the filter 240, the inter-frame prediction unit 260 and the intra-frame prediction unit 265 of the image decoding device 200.
[0117] Partition structure
[0118] The image encoding / decoding method according to the present disclosure may be performed based on the partition structure according to the embodiment. For example, processes such as prediction, residual processing ((inverse) transform, (de)quantization, etc.), syntax element coding and filtering may be performed based on the CTU, CU (and / or TU or PU) derived based on the partition structure. The block partitioning process may be performed by the image partitioner 110 of the above-mentioned encoding device and the partition-related information may be encoded (processed) by the entropy encoder 190 and sent to the decoding device in the form of a bitstream. The entropy decoder 210 of the decoding device may derive the block partition structure of the current picture based on the partition-related information obtained from the bitstream, and based on this, a series of processes (e.g., prediction, residual processing, block / picture reconstruction, in-loop filtering, etc.) may be performed for image decoding. The CU size and the TU size may be the same or multiple TUs may exist in the CU region. At the same time, the CU size may generally represent the luminance component (sample) CB size. The TU size may generally represent the luminance component (sample) TB size. The chroma component (sample) CB or TB size can be derived based on the luminance component (sample) CB or TB size according to the component ratio according to the chroma format (color format, such as 4:4:4, 4:2:2, 4:2:0, etc.) of the picture / image. The TU size can be derived based on the maxTbSize that specifies the maximum available TB size. For example, when the CU size is larger than the maxTbSize, multiple TUs (TBs) of maxTbSize can be derived from the CU and the transform / inverse transform can be performed in units of TU (TB). In addition, for example, when intra prediction is applied, the intra prediction mode / type can be derived in units of CU (or CB), and the neighboring reference sample derivation and prediction sample generation process can be performed in units of TU (or TB). In this case, one or more TUs (or TBs) may exist in one CU (or CB) area, and in this case, multiple TUs (or TBs) may share the same intra prediction mode / type.
[0119] In addition, in the image encoding and decoding according to the present disclosure, the image processing unit may have a hierarchical structure. For example, a picture may be partitioned into one or more tiles or tile groups. A tile group may include one or more tiles. A tile may include one or more CTUs. As described above, a CTU may be partitioned into one or more CUs. A tile may be composed of a rectangular area of a CTU combined in a specific row and a specific column in a picture. A tile group may include an integer number of tiles according to a tile raster scan. The tile group header may signal information / parameters applicable to the corresponding tile group. When the encoding / decoding device has a multi-core processor, the encoding / decoding process for tiles or tile groups may be performed in parallel. Here, the tile group may have one of the tile group types including an intra (I) tile group, a predicted (P) tile group, and a dual predicted (B) tile group. For blocks in an I tile group, inter-frame prediction may not be used and intra-frame prediction may be used for prediction. Of course, even in this case, the original sample value may be compiled and signaled without prediction. For blocks in P mosaic groups, intra prediction or inter prediction can be used, and only unidirectional prediction can be used when inter prediction is used. Meanwhile, for blocks in B mosaic groups, intra prediction or inter prediction can be used, and up to bi-prediction can be used when inter prediction is used.
[0120] In addition, a picture can be partitioned into one or more slices. A slice can consist of an integer number of tiles or a set of CTUs arranged consecutively in a row within a tile. Two slicing modes can be supported. One is a raster scan slicing mode and the other is a rectangular slicing mode. In the raster scan slicing mode, a slice can consist of consecutive tiles that exist in a picture in a raster scan order, such as Figure 4 In rectangular slice mode, a slice may be composed of tiles that exist in a picture in a rectangular shape. Tiles in a rectangular slice may be scanned within the slice according to a tile raster scan order.
[0121] In the encoding device, tiles / tile groups, slices, and maximum and minimum coding unit sizes may be determined according to characteristics of an image (e.g., resolution) and in consideration of coding efficiency or parallel processing, and information thereon or information capable of deriving the information may be included in a bitstream.
[0122] In the decoder, information specifying that a slice, a tile / tile group, or a CTU in a tile of a current picture is partitioned into multiple coding units may be obtained. When such information is obtained (sent) only under certain conditions, efficiency may be improved.
[0123] A slice header or a tile group header (tile group header syntax) may include information / parameters that are commonly applicable to a slice or a tile group. APS (APS syntax) or PPS (PPS syntax) may include information / parameters that are commonly applicable to one or more pictures. SPS (SPS syntax) may include information / parameters that are commonly applicable to one or more sequences. VPS (VPS syntax) may include information / parameters that are commonly applicable to the entire video. In the present disclosure, a higher-level syntax may include at least one of an APS syntax, a PPS syntax, an SPS syntax, or a VPS syntax.
[0124] In addition, for example, information on the partitioning and construction of tiles / tile groups may be constructed by a higher-level syntax at the encoding stage and sent to a decoding device in the form of a bitstream.
[0125] In addition, in the image encoding / decoding according to the present disclosure, the coding tree scheme can support the luminance and chrominance component blocks to have separate block tree structures. The case where the luminance and chrominance blocks in one CTU have the same block tree structure can be represented as SINGLE_TREE. The case where the luminance and chrominance blocks in one CTU have separate block tree structures can be represented as DUAL_TREE. In this case, the block tree type of the luminance component can be referred to as DUAL_TREE_LUMA, and the block tree type of the chrominance component can be referred to as DUAL_TREE_CHROMA. For P and B slices / patch groups, the luminance and chrominance CTBs in one CTU can be restricted to have the same coding tree structure. However, for I slices / patch groups, the luminance and chrominance blocks can have separate block tree structures. When a separate block tree mode is applied, the luminance CTB can be partitioned into CUs based on a specific coding tree structure and the chrominance CTB can be partitioned into chrominance CUs based on another coding tree structure. For example, a CU in an I slice / patch group may consist of a coding block of a luminance component or a coding block of two chrominance components, and a CU in a P or B slice / patch group may consist of blocks of three color components. Hereinafter, in the present disclosure, a slice may be referred to as a patch / patch group and a patch / patch group may be referred to as a slice.
[0126] Intra Prediction Overview
[0127] Hereinafter, an intra prediction method according to an embodiment will be described. Intra prediction may indicate a prediction of generating a prediction sample for a current block based on a reference sample in a picture to which the current block belongs (hereinafter referred to as the current picture). When intra prediction is applied to the current block, a neighboring reference sample to be used for intra prediction of the current block may be derived. The neighboring reference samples of the current block may include a sample adjacent to the left boundary of the current block having a size of nWxnH and a total of 2xnH samples adjacent to the left bottom, a sample adjacent to the top boundary of the current block, and a total of 2xnW samples adjacent to the right top and a sample adjacent to the left top of the current block. Alternatively, the neighboring reference samples of the current block may include multiple columns of top neighboring samples and multiple rows of left neighboring samples. In addition, the neighboring reference samples of the current block may include a total of nH samples adjacent to the right boundary of the current block having a size of nWxnH, a total of nW samples adjacent to the bottom boundary of the current block, and a sample adjacent to the right bottom of the current block. At the same time, when the ISP to be described later is applied, the neighboring reference samples may be derived in units of sub-partitions.
[0128] On the other hand, some neighboring reference samples of the current block have not been decoded or may not be available. In this case, the decoding device can construct neighboring reference samples to be used for prediction by replacing unavailable samples with available samples. Alternatively, interpolation of available samples can be used to construct neighboring reference samples to be used for prediction.
[0129] When the neighboring reference samples are derived, (i) the prediction samples can be derived based on the average or interpolation of the neighboring reference samples of the current block, and (ii) the prediction samples can be derived based on the reference samples in the neighboring reference samples of the current block that exist in a specific (prediction) direction relative to the prediction samples. The case of (i) can be called a non-directional mode or a non-angle mode and the case of (ii) can be called a directional mode or an angle mode. In addition, the prediction samples can be generated by interpolation using the second neighboring samples and the first neighboring samples located in the opposite direction of the prediction direction of the intra-frame prediction mode of the current block based on the prediction samples of the current block among the neighboring reference samples. The above situation can be called linear interpolation intra-frame prediction (LIP). In addition, a linear model can be used to generate chroma prediction samples based on luminance samples. This situation can be called LM mode. In addition, the temporal prediction samples of the current block can be derived based on the filtered neighboring reference samples, and the prediction samples of the current block can be derived by weighted summing the temporal prediction samples and at least one reference sample derived according to the intra-frame prediction mode among the existing neighboring reference samples, that is, the unfiltered neighboring reference samples. The above situation can be called position-dependent intra-frame prediction (PDPC). In addition, a reference sample line with the highest prediction accuracy can be selected from multiple adjacent reference sample lines of the current block to derive a prediction sample using a reference sample located in the prediction direction in the corresponding line, and at this time, intra-frame prediction coding can be performed by indicating (notifying with a signal) the reference sample line used to the decoding device. The above situation can be called multi-reference line (MRL) intra-frame prediction or MRL-based intra-frame prediction. In addition, the current block can be divided into vertical or horizontal sub-partitions to perform intra-frame prediction based on the same intra-frame prediction mode, and the adjacent reference samples can be derived and used in units of sub-partitions. That is, in this case, the intra-frame prediction mode of the current block is equally applied to the sub-partitions and the adjacent reference samples are derived and used in units of sub-partitions, thereby improving the intra-frame prediction performance. Such a prediction method can be called intra-frame sub-partitioning (ISP) or intra-frame prediction based on ISP. In addition, when the prediction direction based on the prediction sample indicates the space between the adjacent reference samples, that is, when the prediction direction indicates the fractional sample position, the value of the prediction sample can be derived by interpolating multiple reference samples located around the prediction direction (around the fractional sample position). The above intra prediction method may be referred to as an intra prediction type to distinguish it from an intra prediction mode. In addition, after generating a prediction signal of a sub-sampled pixel set of a current block using reconstructed neighboring pixels located at the left and top of the current block, the generated prediction signal and neighboring sample values may be interpolated in vertical and horizontal directions to generate a prediction signal having an original size, thereby applying a matrix weighted intra prediction (MIP) to perform intra prediction of the current block.
[0130] The intra prediction type may be referred to as various terms such as an intra prediction scheme or an additional intra prediction mode. For example, the intra prediction type (or additional intra prediction mode) may include at least one of LIP, PDPC, MRL, ISP, or MIP. Information about the intra prediction type may be encoded by an encoding device, included in a bitstream, and signaled to a decoding device. Information about the intra prediction type may be implemented in various forms, such as flag information indicating whether each intra prediction type is applied or index information indicating one of several intra prediction types.
[0131] At the same time, if necessary, post-filtering can be performed with respect to the derived prediction samples. Specifically, the intra-frame prediction process may include an intra-frame prediction mode / type determination step, a neighboring reference sample derivation step, and a prediction sample derivation step based on the intra-frame prediction mode / type. In addition, if necessary, post-filtering can be performed with respect to the derived prediction samples.
[0132] Hereinafter, a video / image encoding method based on intra-frame prediction will be described. First, the encoding device performs intra-frame prediction relative to the current block. The encoding device can derive the intra-frame prediction mode / type of the current block, derive the neighboring reference samples of the current block, and generate the prediction samples in the current block based on the intra-frame prediction mode / type and the neighboring reference samples. Here, the intra-frame prediction mode / type determination, neighboring reference sample derivation and prediction sample generation process can be performed simultaneously or any one process can be performed before other processes. At the same time, when performing the following prediction sample filtering process, the intra-frame predictor 185 can also include a prediction sample filter. The encoding device can determine the mode / type applied to the current block among a variety of intra-frame prediction modes / types. The encoding device can compare the rate-distortion (RD) cost of the intra-frame prediction mode / type and determine the optimal intra-frame prediction mode / type for the current block.
[0133] At the same time, the encoding device may perform a prediction sample filtering process. The prediction sample filtering may be referred to as post-filtering. Through the prediction sample filtering process, some or all prediction samples may be filtered. In some cases, the prediction sample filtering process may be omitted.
[0134] Next, the encoding device may generate residual samples of the current block based on the prediction samples. The encoding device may compare the original samples of the current block with the prediction samples in terms of phase and derive the residual samples.
[0135] Next, the encoding device may encode image information including information about intra prediction (prediction information) and residual information about residual samples. The prediction information may include intra prediction mode information and intra prediction type information. The encoding device may output the encoded image information in the form of a bit stream. The output bit stream may be sent to a decoding device via a storage medium or a network.
[0136] The residual information may include residual coding syntax, which will be described later. The encoding device may transform / quantize the residual samples and derive quantized transform coefficients. The residual information may include information about the quantized transform coefficients.
[0137] At the same time, as described above, the encoding device can generate a reconstructed picture (including reconstructed samples and reconstructed blocks). To this end, the encoding device can perform inverse quantization / inverse transformation with respect to the quantized transform coefficients and derive (modified) residual samples. The reason for transforming / quantizing the residual samples and then performing inverse quantization / inverse transformation is to derive residual samples that are the same as the residual samples derived by the decoding device as described above. The encoding device can generate a reconstructed block including reconstructed samples of the current block based on the predicted samples and the (modified) residual samples. Based on the reconstructed block, a reconstructed picture of the current picture can be generated. As described above, the in-loop filtering process is applicable to the reconstructed picture.
[0138] Hereinafter, a video / image encoding method based on intra prediction will be described. The decoding device may perform an operation corresponding to the operation performed by the encoding device.
[0139] First, the decoding device may derive the intra prediction mode / type of the current block based on the received prediction information (intra prediction mode / type information). The decoding device may derive the neighboring reference samples of the current block. The decoding device may generate prediction samples in the current block based on the intra prediction mode / type and the neighboring reference samples. In this case, the decoding device may perform a prediction sample filtering process. The prediction sample filtering may be referred to as post filtering. Through the prediction sample filtering process, some or all prediction samples may be filtered. In some cases, the prediction sample filtering process may be omitted.
[0140] The decoding device may generate residual samples of the current block based on the received residual information. The decoding device may generate reconstructed samples of the current block based on the predicted samples and the residual samples and derive a reconstructed block including the reconstructed samples. Based on the reconstructed block, a reconstructed picture of the current picture may be generated. The in-loop filtering process is also applicable to the reconstructed picture.
[0141] The intra-frame prediction mode information may include, for example, flag information (e.g., intra_luma_mpm_flag) indicating whether the most probable mode (MPM) or the residual mode is applied to the current block, and when the MPM is applied to the current block, the prediction mode information may also include index information (e.g., intra_luma_mpm_idx) indicating one of the intra-frame prediction mode candidates (MPM candidates). The intra-frame prediction mode candidates (MPM candidates) may configure an MPM candidate list or an MPM list. For example, the MPM candidate list may include the intra-frame prediction mode of a neighboring block or a preset basic intra-frame prediction mode. In addition, when the MPM is not applied to the current block, the intra-frame prediction mode information may also include residual mode information (e.g., intra_luma_mpm_remainder) indicating one of the remaining intra-frame prediction modes excluding the intra-frame prediction mode candidate (MPM candidate). The decoding device may determine the intra-frame prediction mode of the current block based on the intra-frame prediction mode information.
[0142] Meanwhile, when the above-mentioned MIP mode is applied, the MPM list for the MIP mode may be configured to determine the MIP mode of the current block. The MPM list for the MIP mode may be configured in the same manner as the above-mentioned MPM list for the intra mode. For example, when the MIP mode is applied, the MPM candidate list for the MIP mode may be configured to include the MIP mode of the neighboring block or a predetermined default MIP mode. In addition, when the MPM is not applied to the current block, the intra prediction mode information may further include remaining mode information (e.g., intra_luma_mpm_remainder) specifying one of the remaining MIP modes other than the MIP mode candidate (MPM candidate). The decoding device may determine the MIP mode of the current block based on the intra prediction mode information.
[0143] Intra prediction mode
[0144] Hereinafter, the intra prediction mode will be described in more detail. Figure 5 In order to capture any edge direction present in natural video, such as Figure 5 As shown, the intra prediction modes may include two non-directional intra prediction modes and 65 directional intra prediction modes. The non-directional intra prediction modes may include a plane intra prediction mode and a DC intra prediction mode, and the directional intra prediction modes may include the second intra prediction mode to the 66th intra prediction mode.
[0145] Meanwhile, in addition to the above intra prediction modes, the intra prediction mode may also include a cross component linear model (CCLM) mode for chroma samples. The CCLM mode may be divided into L_CCLM, T_CCLM, LT_CCLM according to whether the left sample, the upper sample, or both are considered for LM parameter derivation and may be applied only to the chroma component. For example, the intra prediction mode may be indexed according to the intra prediction mode value as shown in the following table.
[0146] [Table 1]
[0147] Intra prediction mode Related Name 0 INTRA_PLANAR 1 INTRA_DC 2..66 INTRA_ANGULAR2..INTRA_ANGULAR66 81..83 INTRA_LT_CCLM, INTRA_L_CCLM, INTRA_T_CCLM
[0148] Figure 6 1 shows the intra prediction direction according to another embodiment. Here, the dotted line direction shows the wide angle mode applied only to non-square blocks. Figure 6 As shown, in order to capture any edge direction presented in natural video, the intra prediction mode according to the embodiment may include two non-directional intra prediction modes and 93 directional intra prediction modes. The non-directional intra prediction mode may include a plane intra prediction mode and a DC intra prediction mode, and the directional intra prediction mode may include a second intra prediction mode to an 80th intra prediction mode and a -1st intra prediction mode to a -14th intra prediction mode, as shown by Figure 6 The planar prediction mode may be represented by INTRA_PLANAR, and the DC prediction mode may be represented by INTRA_DC. In addition, the directional intra prediction mode may be represented by INTRA_ANGULAR-14 to INTRA_ANGULAR-1 and INTRA_ANGULAR2 to INTRA_ANGULAR80.
[0149] Meanwhile, the intra prediction type (or additional intra prediction mode) may include at least one of LIP, PDPC, MRL, ISP, or MIP. The intra prediction type may be indicated based on the intra prediction type information, and the intra prediction type information may be implemented in various forms. For example, the intra prediction type information may include intra prediction type index information indicating one of the intra prediction types. As another example, the intra prediction type information may include at least one of the following: reference sample line information indicating whether MRL is applied to the current block and which reference sample line is used if applied (e.g., intra_luma_ref_idx), ISP flag information indicating whether ISP is applied to the current block (e.g., intra_subpartitions_mode_flag), ISP type information indicating the segmentation type of the sub-partition when ISP is applied (e.g., intra_subpartitions_split_flag), flag information indicating whether PDPC is applied, flag information indicating whether LIP is applied, or MIP flag information indicating whether MIP is applied.
[0150] The coding method described in the present disclosure may be used to encode / decode intra-frame prediction mode information and / or intra-frame prediction type information. For example, intra-frame prediction mode information and / or intra-frame prediction type information may be encoded / decoded based on truncated (Rice) binary code by entropy coding (e.g., CABAC, CAVLC).
[0151] When intra prediction is performed with respect to the current block, prediction of the luminance component block (luminance block) and the chrominance component block (chrominance block) of the current block can be performed. In this case, the intra prediction mode of the chrominance block can be set separately from the intra prediction mode of the luminance block.
[0152] For example, an intra prediction mode for a chroma block may be specified based on the intra chroma prediction mode information, and the intra chroma prediction mode information may be signaled in the form of an intra_chroma_pred_mode syntax element. For example, the intra chroma prediction mode information may indicate one of a plane mode, a DC mode, a vertical mode, a horizontal mode, a derived mode (DM), and a CCLM. Here, the plane mode may indicate intra prediction mode #0, the DC mode may indicate intra prediction mode #1, the vertical mode may indicate intra prediction mode #26, and the horizontal mode may indicate intra prediction mode #10. DM may also be referred to as a direct mode. CCLM may be referred to as LM.
[0153] Meanwhile, DM and CCLM are subordinate intra prediction modes for predicting chrominance blocks using information about luma blocks. DM may indicate a mode in which the same intra prediction mode as the intra prediction mode for luma components is applied to the intra prediction mode for chroma components. In addition, CCLM may indicate an intra prediction mode that uses samples derived by subsampling the reconstructed samples of the luma block in generating a prediction block for the chroma block and then applying CCLM parameters α and β to the subsampled samples as prediction samples for the chroma block.
[0154] Summary of Matrix-Based Intra Prediction
[0155] The matrix-based intra prediction (MIP) mode may also be referred to as an affine linear weighted intra prediction (ALWIP) mode, a linear weighted intra prediction (LWIP) mode, or a matrix weighted intra prediction (MWIP) mode. Intra prediction modes other than matrix-based prediction may be defined as non-matrix-based prediction modes. For example, non-matrix-based prediction modes may be referred to as non-directional intra prediction and directional intra prediction. Hereinafter, as the term non-matrix-based prediction mode, intra prediction mode and normal intra prediction may be used interchangeably. Hereinafter, matrix-based prediction may be referred to as MIP mode.
[0156] When the MIP mode is applied to the current block, i) neighboring reference samples on which an averaging step is performed may be used, ii) a matrix-vector multiplication step may be performed, and iii) horizontal / vertical interpolation may be further performed if necessary, thereby deriving prediction samples of the current block.
[0157] The averaging step can be performed by averaging the values of neighboring samples. Figure 7 When the width and height of the current block are 4 in pixel units as shown in (a), the averaging process can be performed by taking the average of each boundary and generating a total of four samples including two top samples and two left samples, and when Figure 7 As shown in (b), when the width and height of the current block in pixel units are not 4, the averaging step may be performed by taking the average of each boundary and generating a total of eight samples including four top samples and four left samples.
[0158] The matrix-vector multiplication step can be performed by multiplying the average sample by the matrix vector and then adding the offset vector to generate a prediction signal for a subsampled set of pixels of the original block. The size of the matrix and the offset vector can be determined based on the width and height of the current block.
[0159] The horizontal / vertical interpolation step is the step of generating a prediction signal of the original block size from the sub-sampled prediction signal. Figure 8As shown, a prediction signal of the original block size may be generated by performing vertical and horizontal interpolation using the sub-sampled prediction signal and neighboring pixel values. Figure 8 An embodiment of performing MIP prediction with respect to an 8x8 block is shown. In the case of an 8x8 block, Figure 7 As shown in (b), a total of eight average samples can be generated. By multiplying the eight average samples by the matrix vector and adding the offset vector, as Figure 8 As shown in (a), 16 sample values can be generated at even coordinate positions. Figure 8 As shown in (b) of FIG. 1 , vertical interpolation can be performed using the average value of the top samples of the current block. Figure 8 As shown in (c), horizontal interpolation can be performed using the left samples of the current block.
[0160] The intra prediction mode for the MIP mode may be configured differently from the intra prediction mode for the above-mentioned LIP, PDPC, MRL and ISP intra prediction or normal intra prediction. The intra prediction mode for the MIP mode may be referred to as a MIP intra prediction mode, a MIP prediction mode or a MIP mode. For example, the matrix and offset for matrix-vector multiplication may be set differently according to the intra prediction mode for the MIP. Here, the matrix may be referred to as a (MIP) weight matrix, and the offset may be referred to as a (MIP) offset vector or a (MIP) bias vector.
[0161] The above-mentioned intra prediction type information may include a MIP flag (e.g., intra_mip_flag) that specifies whether the MIP mode is applied to the current block. When the MIP mode is applied to the current block (e.g., the value of intra_mip_flag is 1), the MPM list for the MIP mode may be configured separately. In addition, the intra prediction type information may include a MIP MPM flag (e.g., intra_mip_mpm_flag) that specifies whether the MPM list is used for the MIP mode, an MPM index (e.g., intra_mip_mpm_idx) that specifies the MIP mode of the current block used for the MPM list, and residual intra prediction mode information (e.g., intra_mip_mpm_remainder) that directly specifies the MIP mode when the MIP mode of the current block is not used in the MPM list.
[0162] When performing MIP mode, various MIP modes can be set according to the matrix and offset of configuring MIP. The number of intra-frame prediction modes for MIP can be set differently based on the size of the current block. For example, i) when the height and width of the current block (e.g., CB or TB) are 4, 35 intra-frame prediction modes (i.e., intra-frame prediction modes 0 to 34) may be available, ii) when the height and width of the current block are both less than or equal to 8, 19 intra-frame prediction modes (i.e., intra-frame prediction modes 0 to 18) may be available, iii) in other cases, 11 intra-frame prediction modes (i.e., intra-frame prediction modes 0 to 10) may be available.
[0163] For example, when the case where the height and width of the current block are 4 is referred to as block size type 0, the case where the height and width of the current block are both less than or equal to 8 may be referred to as block size type 1, and the other cases may be referred to as block size type 2, and the number of intra prediction modes for MIP may be summarized as shown in the following table. However, this is an example and the block size type and the number of available intra prediction modes may be changed.
[0164] [Table 2]
[0165] Block size type (MipSizeId) Number of MIP intra prediction modes MIP intra prediction mode 0 35 0…34 1 19 0…18 2 11 0…10
[0166] In an embodiment, information about the intra prediction mode / type of the current block may be encoded and signaled at a level such as a CU (CU syntax) or may be determined implicitly based on conditions. In this case, this may be explicitly signaled for some modes / types and may be implicitly derived for the remaining modes. For example, the CU syntax may carry information about the (intra) prediction mode / type, such as Figures 10 to 12 shown.
[0167] Here, pred_mode_flag may specify the prediction mode of the current CU. For example, a value of 0 for pred_mode_flag may specify that the current CU is encoded in an inter-prediction mode. A value of 1 for pred_mode_flag may specify that the current CU is encoded in an intra-prediction mode.
[0168] pcm_flag[x0][y0] can specify whether the pulse coding modulation (PCM) mode is applied to the current block. When the PCM mode is applied to the current block, the values of the original samples in the current block can be coded and signaled without applying prediction / transformation / quantization. For example, for the luma CU corresponding to the (x0, y0) position, pcm_flag[x0][y0] can specify the presence of pcm_sample syntax and whether the transform_tree() syntax does not exist. For example, a value of 1 for pcm_flag[x0][y0] can specify the presence of pcm_sample() syntax and the absence of transform_tree() syntax. A value of 0 for pcm_flag[x0][y0] can specify the presence of pcm_sample() syntax and the presence of transform_tree() syntax.
[0169] intra_mip_flag[x0][y0] may specify whether the current block is predicted in MIP mode. For example, a first value (e.g., 0) of intra_mip_flag[x0][y0] may specify that the current block is not predicted in MIP mode. A second value (e.g., 1) of intra_mip_flag[x0][y0] may specify that the current block is predicted in MIP mode.
[0170] When intra_mip_flag[x0][y0] has a second value (e.g., 1), information about the MIP mode may be further obtained from the bitstream. For example, intra_mip_mpm_flag[x0][y0], intra_mip_mpm_idx[x0][y0], and intra_mip_mpm_remainder[x0][y0] syntax elements as information specifying the MIP mode of the current block may be further obtained from the bitstream. When the MIP prediction mode is applied to the current block, an MPM list for the MIP may be configured, and intra_mip_mpm_flag may specify whether the MIP mode of the current block exists in the MPM list of the MIP (or MPM candidate). intra_mip_mpm_idx may specify an index of a candidate used as the MIP prediction mode of the current block among the candidates in the MPM list when the MIP prediction mode of the current block exists in the MPM list for the MIP (i.e., the value of intra_mip_mpm_flag is 1). intra_mip_mpm_remainder can specify the MIP prediction mode of the current block when the MIP prediction mode of the current block does not exist in the MPM list for MIP (that is, the value of intra_mip_mpm_flag is 0), and specify any one of all MIP prediction modes or any one of the remaining modes among all MIP prediction modes except the candidate modes in the MPM list for MIP as the MIP prediction mode of the current block.
[0171] Meanwhile, when intra_mip_flag[x0][y0] has a first value (e.g., 0), information about the MIP may not be obtained from the bitstream, and intra prediction information other than the MIP may be obtained from the bitstream. In an embodiment, intra_luma_mpm_flag[x0][y0] specifying whether to generate an MPM list for normal intra prediction may be obtained from the bitstream.
[0172] When an intra prediction mode is applied to the current block, an MPM list for it may be configured, and intra_luma_mpm_flag may specify that there is an intra prediction mode for the current block in the MPM list (or MPM candidate). For example, the first value of intra_luma_mpm_flag (e.g., 0) may specify that there is no intra prediction mode for the current block in the MPM list. The second value of intra_luma_mpm_flag (e.g., 1) may specify that there is an intra prediction mode for the current block in the MPM list. When the value of intra_luma_mpm_flag is 1, intra_luma_not_planar_flag may be obtained from the bitstream.
[0173] intra_luma_not_planar_flag may specify whether the intra prediction mode of the current block is a planar mode. For example, a first value (e.g., 0) of intra_luma_not_planar_flag may specify that the intra prediction mode of the current block is a planar mode. A second value (e.g., 1) of intra_luma_not_planar_flag may specify that the intra prediction mode of the current block is not a planar mode.
[0174] When intra_luma_not_planar_flag is 'true' (i.e., value 1), intra_luma_mpm_idx can be parsed and compiled. In an embodiment, planar mode can always be included as a candidate in the MPM list. However, as described above, planar mode can be excluded from the MPM list by first signaling intra_luma_not_planar_flag, and in this case, a unified MPM list can be configured in the various intra prediction types mentioned above (normal intra prediction, MRL, ISP, LIP, etc.). In this case, the number of candidates in the MPM list can be reduced to 5. intra_luma_mpm_idx can specify a candidate used in the intra prediction mode of the current block among the candidates included in the MPM list from which the planar mode is excluded.
[0175] Meanwhile, intra_luma_mpm_remainder may be parsed / compiled when the value of intra_luma_mpm_flag is 0. intra_luma_mpm_remainder may designate one of all intra prediction modes as the intra prediction mode of the current block or may designate any one of the remaining modes excluding the candidate mode in the MPM list as the intra prediction mode of the current block.
[0176] MPM List
[0177] When intra prediction is applied, the intra prediction mode of the neighboring block can be used to determine the intra prediction mode applied to the current block. For example, the decoding device can select one of the MPM candidates in the MPM list derived based on the intra prediction mode of the neighboring blocks (e.g., left and / or top neighboring blocks) of the current block and the additional candidate mode based on the MPM index (e.g., intra_luma_mpm_idx) received using the bitstream. Alternatively, the decoding device can select one of the remaining intra prediction modes not included in the MPM candidates based on the remaining mode information (e.g., intra_luma_mpm_remainder). For example, the intra prediction mode applied to the current block can be determined based on the mpm flag (e.g., intra_luma_mpm_flag) indicating whether the intra prediction mode applied to the current block is in the MPM candidate or in the remaining mode. The value 1 of the mpm flag can indicate that the intra prediction mode of the current block is in the MPM list (candidate), while the value 0 of the mpm flag can indicate that the intra prediction mode of the current block is not in the MPM list (candidate).
[0178] The mpm flag may be signaled in the form of an intra_luma_mpm_flag syntax element, the mpm index may be signaled in the form of an mpm_idx or intra_luma_mpm_idx syntax element, and the remaining intra prediction mode information may be signaled in the form of a rem_intra_luma_pred_mode or intra_luma_mpm_remainder syntax element. In an embodiment, the remaining intra prediction mode information may specify one of the remaining intra prediction modes that is not included in the mpm list of all intra prediction modes and is indexed in the order of the prediction mode number. The intra prediction mode may be an intra prediction mode for a luma component (sample). In the following, the intra prediction mode information may include at least one of an mpm flag (e.g., intra_luma_mpm_flag), an mpm index (e.g., mpm_idx or intra_luma_mpm_idx), or remaining intra prediction mode information (e.g., rem_intra_luma_pred_mode or intra_luma_mpm_remainder). In the present disclosure, the MPM list may be referred to as various terms such as MPM candidate list, candModeList, etc.
[0179] The MPM list may include candidate intra prediction modes (MPM candidates) that are highly likely to be applied to the current block. The MPM list may be configured to include intra prediction modes of neighboring blocks, and may be configured to further include predetermined intra prediction modes according to a predetermined method.
[0180] In an embodiment, in order to maintain the complexity of generating the MPM list low, an MPM list including three MPMs may be generated. For example, even when 67 intra prediction modes are used, the MPM list may include three MPM candidates. When the intra prediction mode of the current block is not included in the MPM list, the remaining mode may be used. In this case, the remaining mode may include 64 remaining candidates, and the remaining intra prediction mode information specifying one of the 64 remaining candidates may be signaled. For example, the remaining intra prediction mode information may include a 6-bit syntax element (e.g., a rem_intra_luma_pred_mode or intra_luma_mpm_remainder syntax element).
[0181] In an embodiment, the MPM list may be configured in consideration of neighboring intra modes, derived intra modes, and default intra modes. For example, the encoding apparatus may encode the prediction mode of the current block using the prediction mode of the neighboring blocks.
[0182] For example, when encoding a neighboring block in an intra prediction mode, the encoding device may confirm or derive a prediction mode of the neighboring block. For example, the encoding device may determine a prediction mode of the current block based on a prediction mode of a left neighboring block and a prediction mode of a top neighboring block, and in this case, the prediction mode of the corresponding neighboring block may be determined as the most probable mode (MPM). In this regard, determining the MPM may be expressed as enumerating MPM candidates or configuring an MPM list.
[0183] In an embodiment, the left neighboring block may specify a block located at the uppermost side of a neighboring block adjacent to the left boundary of the current block. In addition, the top neighboring block may specify a block located at the leftmost side of a neighboring block adjacent to the top boundary of the current block. The encoding device may determine whether the prediction mode of the left neighboring block and the prediction mode of the top neighboring block are the same. The initial MPM list may be formed by performing a pruning process on the intra-frame prediction modes of the two neighboring blocks. The pruning process may be performed so that only different prediction modes are included in the MPM list.
[0184] If the prediction mode of the left neighboring block and the prediction mode of the top neighboring block are different, the first MPM can be set to the prediction mode of the left neighboring block, the second MPM can be set to the prediction mode of the top neighboring block, and the third MPM can be set to one of the intra-frame plane mode, intra-frame DC mode, or intra-frame vertical mode (intra-frame prediction mode #50). Specifically, when the intra-frame prediction modes of two neighboring blocks are different from each other, the two intra-frame prediction modes can be set to MPM, and after passing the MPM pruning check, one of the default intra-frame modes can be added to the MPM list. Here, the default intra-frame mode can include an intra-frame plane mode, an intra-frame DC mode, and / or an intra-frame vertical mode (intra-frame prediction mode #50).
[0185] For example, when the prediction mode of the left neighboring block and the prediction mode of the top neighboring block are different, the MPM list may be configured according to the following situation.
[0186] Case 1: If neither the intra prediction mode of the left neighboring block nor the intra prediction mode of the top neighboring block is the intra plane mode, the MPM list may be configured to include the intra prediction mode block of the left neighboring block, the intra prediction mode of the top neighboring block, and the intra plane mode.
[0187] Case 2: When the condition of Case 1 is not met, if neither the intra-frame prediction mode of the left neighboring block nor the intra-frame prediction mode of the top neighboring block is the intra-frame DC mode, the MPM list can be configured to include the intra-frame prediction mode of the left neighboring block, the intra-frame prediction mode of the top neighboring block, and the intra-frame DC mode.
[0188] Case 3: When the condition of Case 2 is not satisfied, the MPM list may be configured to include the intra prediction mode of the left neighboring block, the intra prediction mode of the top neighboring block, and the intra vertical mode.
[0189] Meanwhile, when the prediction mode of the left neighboring block is the same as the prediction mode of the top neighboring block, the encoding apparatus may determine whether the prediction mode of the left neighboring block is less than 2. For example, the encoding apparatus may determine whether the prediction mode of the left neighboring block is the intra plane mode, the intra DC mode, or the like. Figure 6 A prediction mode with a directionality indicating a block located at the bottom of the current block is shown.
[0190] If the prediction mode of the left neighboring block is less than 2, the first MPM may be set to the intra planar mode, the second MPM may be set to the intra DC mode, and the third MPM may be set to the intra vertical mode (intra prediction mode #50).
[0191] At the same time, if the prediction mode of the left neighboring block is not less than 2, the first MPM can be set to the prediction mode of the left neighboring block, the second MPM can be set to (the prediction mode of the left neighboring block-1), and the third MPM can be set to (the prediction mode of the left neighboring block+1).
[0192] For example, when the prediction mode of the left neighboring block and the prediction mode of the top neighboring block are the same, the MPM list may be configured as follows.
[0193] Case 1: When the value of the intra prediction mode of the left neighboring block is less than 2, the MPM list may be configured to include the intra planar mode, the intra DC mode, and the intra vertical mode.
[0194] Case 2: When the condition of Case 1 is not met, the MPM list can be configured to include the intra-frame prediction mode of the left neighboring block and the intra-frame prediction mode corresponding to the value 2+((A+61)%64) when the value of the intra-frame prediction mode of the left neighboring block is A and the intra-frame prediction mode corresponding to the value 2+((A-1)%64).
[0195] At the same time, an additional pruning process to remove repeated patterns can be performed so that only unique patterns are included. In addition, for entropy coding of 64 non-MPM patterns other than the three MPMs, a 6-bit fixed length code can be used. That is, the index entropy indicating the 64 non-MPM patterns can be coded into a 6-bit fixed length code (6-bit FLC).
[0196] In addition, the encoding device may determine whether the optimal intra prediction mode to be applied to the current block belongs to the MPM candidates configured above.
[0197] If the intra prediction mode of the current block belongs to an MPM candidate, the encoding device may encode an MPM flag and an MPM index. Here, the MPM flag may specify whether the intra prediction mode of the current block is derived from a neighboring intra prediction block (that is, the intra prediction mode of the current block belongs to the MPM). In addition, the MPM index may specify which MPM mode is applied as the intra prediction mode of the current block among the MPM candidates.
[0198] In contrast, if the intra prediction mode of the current block does not belong to the MPM candidates, the encoding apparatus may encode the intra prediction mode of the current block using the remaining modes.
[0199] Meanwhile, in an embodiment, the encoding device and the decoding device may configure an MPM list including 6 MPMs. In order to generate an MPM list including 6 MPMs, a default MPM list may be considered. When the value of the intra prediction mode of the left neighboring block is A, the default MPM list may be configured as follows.
[0200] Default 6MPM list = {A, Planar(0) or DC(1), Vertical(50), HOR(18), VER-4(46), VER+4(54)}
[0201] In addition, by performing a pruning process on the intra-frame modes of two neighboring blocks, the default 6-MPM list can be updated to generate a 6-MPM list. For example, when the intra-frame prediction modes of two neighboring blocks are the same and the values of the intra-frame prediction modes of the two neighboring blocks are greater than the value 1 of the intra-frame DC mode, the 6-MPM list may include the intra-frame prediction mode of the left neighboring block as the default mode, the intra-frame plane mode, and the intra-frame DC mode, and also include three derived modes derived by adding a predetermined offset value to the intra-frame prediction mode of the neighboring block and performing a modulo operation with respect to the total number of intra-frame prediction modes.
[0202] Meanwhile, when the intra prediction modes of the neighboring blocks are different from each other, the 6-MPM list may be configured by including the intra prediction modes of the two neighboring blocks as the first two MPM modes. The remaining four MPM modes may be derived from the default mode and the intra prediction modes of the neighboring blocks.
[0203] When MIP is not applied to the current block, the above-mentioned MPM list configuration method can be used. For example, the above-mentioned MPM list configuration method can be used to derive the intra prediction mode used in LIP, PDPC, MRL, ISP intra prediction, or normal intra prediction (non-directional intra prediction and directional intra prediction). However, the left neighboring block or the top neighboring block can be encoded based on the above-mentioned MIP. In this case, if the MIP mode number of the neighboring block (left neighboring block / top neighboring block) to which the MIP is applied is applied unchanged to the MPM list of the current block to which the MIP is not applied, this may be inappropriate because an unintentional intra prediction mode is indicated. Therefore, in this case, the intra prediction mode of the neighboring block (left neighboring block / top neighboring block) to which the MIP is applied can be regarded as a DC mode or a planar mode. Alternatively, as another example, the intra prediction mode of the neighboring block (left neighboring block / top neighboring block) to which the MIP is applied can be mapped to a normal intra prediction mode based on a mapping table and used to configure the MPM list. In this case, the mapping can be performed based on the block size type of the current block. For example, Fig. 9 The illustrated mapping table according to the embodiment is used for mapping.
[0204] exist Fig. 9 In the table, MIP IntraPredMode[xNbX][yNbX] specifies the MIP mode of the neighboring block (left neighboring block / top neighboring block), and the block size type MipSizeId specifies the block size type of the neighboring block or the current block. The numbers below the block size type values 0, 1, and 2 indicate the normal intra prediction mode to which the MIP mode is mapped in the case of each block size type. For example, the case where the height and width of the current block are 4 may be referred to as block size type 0, the case where the height and width of the current block are both equal to or less than 8 may be referred to as block size type 1, and another case may be referred to as block size type 2.
[0205] Here, the normal intra prediction mode is an intra prediction mode other than the MIP mode and may mean a non-directional intra prediction mode or a directional intra prediction mode. For example, when the block size type of the current block is 0 and the MIP mode number of the neighboring block is 10, the mapped normal intra prediction mode number may be 18. However, the mapping relationship may be an example and may be changed.
[0206] In addition, in an embodiment, the intra-frame plane mode may not be included in the MPM list. To this end, information specifying whether the intra-frame prediction mode of the current block is the intra-frame plane mode may be separately signaled. When the prediction mode of the current block is not the intra-frame plane mode, an MPM list may be generated to signal the intra-frame prediction mode. The encoding device may use the MPM list generated as follows when encoding the current block to signal the intra-frame prediction mode of the current block to the decoding device, and the decoding device may use the generated MPM list as follows to determine the intra-frame mode of the current block.
[0207] The MPM list may be determined based on the intra prediction mode of the neighboring blocks of the current block. For example, the MPM list may be determined based on the intra prediction modes of the left neighboring blocks and the top neighboring blocks of the current block. For example, the encoding device and the decoding device may determine the MPM list based on a first intra prediction candidate determined based on the intra prediction mode of the left neighboring block and a second intra prediction candidate determined based on the intra prediction mode of the top neighboring block.
[0208] Here, the top neighboring block may be a block located at the rightmost side among the blocks adjacent to the top of the current block. The left neighboring block may be a block located at the bottommost side among the blocks adjacent to the left of the current block. For example, when the coordinates of the current block are (xCb, yCb), the width of the current block is cbWidth and the height of the current block is cbHeight, the coordinates of the left neighboring block may be (xCb-1, yCb+cbHeight-1) and the coordinates of the top neighboring block may be (xCb+cbWidth-1, yCb-1).
[0209] When the left neighboring block is not available, when the prediction mode of the left neighboring block is not the intra prediction mode, or when the prediction mode of the left neighboring block is the MIP mode, the encoding device and the decoding device may determine the value of the first intra prediction candidate as a value (e.g., 0) specifying an intra plane mode. When the left neighboring block does not satisfy such a condition, the encoding device and the decoding device may determine the value of the first intra prediction candidate as a value specifying the intra prediction mode of the left neighboring block.
[0210] In addition, when the top neighboring block is not available, when the mode of the top neighboring block is not the intra prediction mode, or when the prediction mode of the top neighboring block is the MIP mode, the encoding device and the decoding device may determine the value of the second intra prediction candidate as a value (e.g., 0) specifying an intra plane mode. When the top neighboring block does not satisfy such a condition, the encoding device and the decoding device may determine the value of the second intra prediction candidate as a value specifying the intra prediction mode of the top neighboring block.
[0211] In an embodiment, the MPM list may be configured to include five candidate modes. In an embodiment, the MPM list may be configured according to the following circumstances. Hereinafter, the first intra prediction candidate is referred to as candIntraPredModeA, the second intra prediction candidate is referred to as candIntraPredModeB, and the MPM list is referred to as candModeList[x]. Here, x may be an integer from 0 to 4.
[0212] Case 1: When the value of the first intra prediction candidate and the value of the second intra prediction candidate are the same and the value of the first intra prediction candidate is greater than 1 (for example, when it is not intra planar mode or intra DC mode), the MPM list candModeList[x] can be configured as follows.
[0213] candModeList[0]=candIntraPredModeA
[0214] candModeList[1]=2+((candIntraPredModeA+61)%64)
[0215] candModeList[2]=2+((candIntraPredModeA-1)%64)
[0216] candModeList[3]=2+((candIntraPredModeA+60)%64)
[0217] candModeList[4]=2+(candIntraPredModeA%64)
[0218] Case 2: When the conditions of Case 1 are not met, when the value of the first intra-frame prediction candidate and the value of the second intra-frame prediction candidate are not the same and the value of the first intra-frame prediction candidate or the value of the second intra-frame prediction candidate is greater than 1 (for example, not intra-frame planar mode or intra-frame DC mode), the MPM list candModeList[x] can be configured as follows.
[0219] First, minAB and maxAB can be calculated as follows.
[0220] minAB=Min(candIntraPredModeA,candIntraPredModeB)
[0221] maxAB=Max(candIntraPredModeA,candIntraPredModeB)
[0222] When the value of the first intra prediction candidate and the value of the second intra prediction candidate are both greater than 1, the MPM lists candModeList[0] and candModeList[1] may be configured as follows.
[0223] candModeList[0]=candIntraPredModeA
[0224] candModeList[1]=candIntraPredModeB
[0225] In this case, when the value of maxAB-minAB is 1, candModeList[2] to candModeList[4] may be configured as follows.
[0226] candModeList[2]=2+((minAB+61)%64)
[0227] candModeList[3]=2+((maxAB-1)%64)
[0228] candModeList[4]=2+((minAB+60)%64)
[0229] Meanwhile, when the value of maxAB-minAB is equal to or greater than 62, candModeList[2] to candModeList[4] may be configured as follows.
[0230] candModeList[2]=2+((minAB-1)%64)
[0231] candModeList[3]=2+((maxAB+61)%64)
[0232] candModeList[4]=2+(minAB%64)
[0233] Meanwhile, when the value of maxAB-minAB is 2, candModeList[2] to candModeList[4] may be configured as follows.
[0234] candModeList[2]=2+((minAB-1)%64)
[0235] candModeList[3]=2+((minAB+61)%64)
[0236] candModeList[4]=2+((maxAB-1)%64)
[0237] Meanwhile, when the value of maxAB-minAB does not satisfy the above conditions, candModeList[2] to candModeList[4] may be configured as follows.
[0238] candModeList[2]=2+((minAB+61)%64)
[0239] candModeList[3]=2+((minAB-1)%64)
[0240] candModeList[4]=2+((maxAB+61)%64)
[0241] Meanwhile, when both the value of the first intra prediction candidate and the value of the second intra prediction candidate are greater than 1 and only any one of the first intra prediction candidate and the second intra prediction candidate is greater than 1, the MPM list candModeList[x] may be configured as follows.
[0242] candModeList[0] = maxAB
[0243] candModeList[1]=2+((maxAB+61)%64)
[0244] candModeList[2]=2+((maxAB-1)%64)
[0245] candModeList[3]=2+((maxAB+60)%64)
[0246] candModeList[4]=2+(maxAB%64)
[0247] Case 3: When the conditions of Case 2 are not met, the MPM list candModeList[x] can be configured as follows.
[0248] candModeList[0] = INTRA_DC
[0249] candModeList[1]=INTRA_ANGULAR50
[0250] candModeList[2]=INTRA_ANGULAR18
[0251] candModeList[3]=INTRA_ANGULAR46
[0252] candModeList[4]=INTRA_ANGULAR54
[0253] Matrix-based intra prediction mode MPM List Configuration
[0254] When MIP is applied to the current block, the MPM list of the current block to which the MIP is applied may be configured separately. The MPM list may be referred to as various names such as MIP MPM list (or MPM list for MIP or candMipModeList) to distinguish it from the MPM list when the MIP is not applied to the current block. Hereinafter, for the sake of distinction, this is expressed as MIP MPM list or may also be referred to as MPM list.
[0255] The MIP MPM list may include n candidates, and for example, n may be 3. The MIP MPM list may be configured based on the left neighboring block and the top neighboring block of the current block. Here, the left neighboring block may be the block located at the uppermost side among the neighboring blocks adjacent to the left boundary of the current block. In addition, the top neighboring block may indicate the block located at the leftmost side among the neighboring blocks adjacent to the top boundary of the current block. For example, when the coordinates of the current block are (xCb, yCb), the coordinates of the left neighboring block may be (xCb-1, yCb) and the coordinates of the top neighboring block may be (xCb, yCb-1). Alternatively, the left neighboring block may be the block located at the lowermost side among the neighboring blocks adjacent to the left boundary of the current block. In addition, the top neighboring block may be the block located at the rightmost side among the neighboring blocks adjacent to the top boundary of the current block.
[0256] When MIP is applied to the left neighboring block, the first candidate intra prediction mode may be set to be the same as the MIP intra prediction mode of the left neighboring block. Here, the first candidate intra prediction mode may be expressed as candMipModeA. In addition, for example, when MIP is applied to the top neighboring block, the second candidate intra prediction mode may be set to be the same as the MIP intra prediction mode of the top neighboring block. Here, the second candidate intra prediction mode may be expressed as candMipModeB.
[0257] At the same time, the candidate intra prediction mode can be determined by comparing the size of the current block and the neighboring block. For example, when MIP is applied to the left neighboring block and the block size type of the left neighboring block is the same as the block size type of the current block, the first candidate intra prediction mode (e.g., candMipModeA) can be set to be the same as the MIP intra prediction mode of the left neighboring block. In addition, when MIP is applied to the top neighboring block and the block size type of the top neighboring block is the same as the block size type of the current block, the second candidate intra prediction mode (e.g., candMipModeB) can be set to be the same as the MIP intra prediction mode of the top neighboring block.
[0258] At the same time, the left neighboring block or the top neighboring block can be encoded based on intra prediction other than MIP. For example, the left neighboring block or the top neighboring block can be encoded in another intra prediction mode other than MIP. In this case, it is inappropriate to use the normal intra prediction mode number of the neighboring block (e.g., the left neighboring block or the top neighboring block) to which MIP is not applied as a candidate intra mode for applying MIP without change. Therefore, in this case, for example, processing can be performed by treating a predetermined MIP intra prediction mode as applied to a neighboring block to which MIP is not applied. For example, when MIP is not applied to a neighboring block, the MIP intra prediction mode of the corresponding block can be determined as a specific MIP intra prediction mode value (e.g., 0, 1, or 2), thereby generating a MIP MPM list.
[0259] Alternatively, as another example, the normal intra prediction mode of the neighboring block to which MIP is not applied may be mapped to the MIP intra prediction mode based on the mapping table to be used to configure the MIP MPM list. In this case, the mapping may be performed based on the block size type of the current block. For example, as a mapping table, Fig.13 A mapping table according to an embodiment is shown.
[0260] Fig.13 An embodiment of a mapping table for mapping a normal intra prediction mode of a neighboring block to a MIP intra prediction mode is shown. Fig.13 As shown, IntraPredModeY[xNbX][yNbX] indicates the intra prediction mode of the neighboring block (left neighboring block / top neighboring block). Here, the intra prediction mode of the neighboring block can be the intra prediction mode of the luminance component (sample). The block size type MipSizeId indicates the block size type of the neighboring block or the current block. The numbers below the block size type values 0, 1, and 2 indicate the MIP intra prediction mode to which the normal intra prediction mode is mapped in the case of each block size type. Block size type 0 can indicate the case where the block has a 4x4 pixel size. Block size type 1 can indicate the case where the block has a 4x8, 8x4, or 8x8 pixel size. Block size type 2 can indicate the case where the block size is greater than 8x8 pixel size.
[0261] In an embodiment, a neighboring block (e.g., a left neighboring block / top neighboring block) may be unavailable because it is outside the current picture or outside the current patch / slice or even if MIP has been applied, a MIP intra prediction mode that is not available for the current block may be applied according to the block size type. In addition, a predefined MIP intra prediction mode may be used as the first candidate intra prediction mode, the second candidate intra prediction mode, and the third candidate intra prediction mode. Fig.14A table illustrating an embodiment of a predetermined MIP intra prediction mode that can be used in this case according to the size of the current block is shown. For example, when all MIP intra prediction information of neighboring blocks is not available, the prediction mode can be used according to Fig.14 The example generates a MIPMPM list based on the size of the current block.
[0262] In an embodiment, the MIP intra prediction mode of the neighboring block may be obtained. In this case, when the MIP intra prediction mode of the left neighboring block is different from the MIP intra prediction mode of the top neighboring block, the MIP intra prediction mode of the left neighboring block may be set to the first candidate intra prediction mode. In addition, the MIP intra prediction mode of the top neighboring block may be set to the second candidate intra prediction mode. Therefore, the first candidate of the MIP MPM list (e.g., candMipModeList[0]) may be set to the MIP intra prediction mode of the left neighboring block, and the second candidate of the MIP MPM list (e.g., candMipModeList[1]) may be set to the MIP intra prediction mode of the top neighboring block.
[0263] The order of intra prediction candidates in the MIP list may be changed. For example, the MIP intra prediction mode of the top neighboring block may be included as the first candidate in the MIP MPM list (e.g., candMipModeList[0]), while the MIP intra prediction mode of the left neighboring block may be included as the second candidate in the MIP MPM list (e.g., candMipModeList[1]).
[0264] As the third candidate intra prediction mode, we can use Fig.14 For example, Fig.14 The third candidate intra prediction mode is used as the second candidate of the MIP MPM list (e.g., candMipModeList[2]).
[0265] In another embodiment, the third candidate intra prediction mode may be determined to be different from the one that can be used according to Fig.14 The order of the MIP intra prediction modes shown in the figure determines the MIP intra prediction mode in which the first candidate intra prediction mode and the second candidate intra prediction mode overlap. For example, when the first candidate and the second candidate in the MIP MPM list are not used Fig.14 When the first candidate intra prediction mode is Fig.14 The first candidate intra prediction mode is used as the third candidate of the MIP MPM list (e.g., candMipModeList[2]). Otherwise, for example, when the first candidate and the second candidate of the MIP MPM list are not used Fig.15 When the second candidate intra prediction mode is Fig.14 The second candidate intra prediction mode is used as the third candidate of the MIP MPM list (e.g., candMipModeList[2]). Otherwise, Fig.13 The third candidate intra prediction mode is used as the third candidate of the MIP MPM list (e.g., candMipModeList[2]).
[0266] Alternatively, when the MIP intra prediction mode of the left neighboring block and the MIP intra prediction mode of the top neighboring block are the same, one of the MIP intra prediction mode of the left neighboring block and the MIP intra prediction mode of the top neighboring block may be included as a first candidate of the MIP MPM list (e.g., candMipModeList[0]), and a second candidate of the MIP MPM list (e.g., candMipModeList[1]) and a third candidate of the MIP MPM list (e.g., candMipModeList[2]) may be used as described above. Fig.15 The predetermined MIP intra prediction mode is shown in FIG.
[0267] As described above, the MIP intra prediction mode of the current block may be derived based on the MIP MPM list. In this case, as described above, the MPM flag that may be included in the intra prediction mode information of the MIP may be referred to as intra_mip_mpm_flag, the MPM index may be referred to as intra_mip_mpm_idx, and the remaining intra prediction mode information may be referred to as intra_mip_mpm_remainder.
[0268] use MPM List determines intra prediction mode
[0269] The intra-prediction mode signaling process of the encoding device and the intra-prediction mode determining process of the decoding device may be performed, for example, as follows.
[0270] Fig.15 is a flowchart illustrating a method of encoding an intra prediction mode using an MPM list. The encoding apparatus may configure an MPM list for a current block as described above (S1510).
[0271] Next, the encoding device may determine the intra prediction mode of the current block (S1520). The encoding device may perform prediction based on various intra prediction modes and determine the optimal intra prediction mode based on rate distortion optimization (RDO). In an embodiment, the encoding device may determine the optimal intra prediction mode using only the MPM candidates configured in the MPM list, or may determine the optimal intra prediction mode by further using the remaining intra prediction modes and the MPM candidates configured in the MPM list. For example, if the intra prediction type of the current block is a specific type (e.g., LIP, MRL, or ISP) other than the normal intra prediction type, the encoding device may consider only the MPM candidates as intra prediction mode candidates of the current block to determine the optimal intra prediction mode. In this case, the intra prediction mode of the current block may be determined based only on the MPM candidates, and in this case, the mpm flag may not be encoded / signaled. In this case, the decoding device may estimate that the mpm flag is 1 without receiving the mpm flag separately.
[0272] The encoding device may encode and output the intra prediction mode information in the form of a bitstream (S1530). In an embodiment, the encoding device may signal whether the intra prediction mode of the current block is an intra plane mode by encoding information (e.g., intra_luma_not_planar_flag) specifying whether the intra prediction mode of the current block is an intra plane mode. When the intra prediction mode of the current block is an intra plane mode, the encoding device may set the value of intra_luma_not_planar_flag to a first value (e.g., 0). At the same time, when the intra prediction mode of the current block is not an intra plane mode, the encoding device may set the value of intra_luma_not_planar_flag to a second value (e.g., 1).
[0273] Meanwhile, when the intra prediction mode of the current block is not the intra plane mode, the encoding device may determine and signal the intra prediction mode according to whether block-based incremental pulse code modulation (BDPCM) is applied to the current block and the application direction. In an embodiment, when BDPCM is applied to the current block, the encoding device may determine the intra prediction mode according to the BDPCM application direction. For example, the encoding device may determine the intra prediction mode as a horizontal mode or a vertical mode in the same direction based on whether the BDPCM application direction is a horizontal direction or a vertical direction. In addition, in this case, the encoding device may signal the intra prediction mode of the current block by encoding and signaling information (intra_bdpcm_flag) specifying whether BDPCM is applied to the current block and information (intra_bdpcm_dir_flag) specifying the BDPCM application direction. In this case, the signaling of the mpm flag may be skipped.
[0274] Meanwhile, when the prediction mode of the current block is not an intra-frame plane mode and BDPCM is not applied, the encoding device may encode the intra-frame prediction mode information including the above-mentioned mpm flag (e.g., intra_luma_mpm_flag), the mpm index (e.g., intra_luma_mpm_idx) and / or the remaining intra-frame prediction mode information (e.g., intra_luma_mpm_remainder) to signal the intra-frame prediction mode. Typically, the mpm index and the remaining intra-frame prediction mode information are mutually alternative and may not be signaled simultaneously when specifying an intra-frame prediction mode for a block. That is, the mpm flag value 1 and the mpm index may be signaled together, or the mpm flag value 0 and the remaining intra-frame prediction mode information may be signaled together. However, as described above, when a specific intra-frame prediction type is applied to the current block, the mpm flag may not be signaled and only the mpm index may be signaled. That is, in this case, the intra-frame prediction mode information may include only the mpm index.
[0275] Meanwhile, generally, when the intra prediction mode of the current block is one of the MPM candidates in the MPM list, the encoding device may generate an mpm index (e.g., intra_luma_mpm_idx) specifying one of the MPM candidates. If the intra prediction mode of the current block does not exist in the MPM list, remaining intra prediction mode information (e.g., intra_luma_mpm_remainder) specifying the same mode as the intra prediction mode of the current block among the remaining intra prediction modes not included in the MPM list may be generated. For example, when the intra-frame prediction mode (e.g., IntraPredModeY) of the current block is encoded as intra_luma_mpm_remainder, the encoding device may first subtract 1 from IntraPredModeY, arrange the intra-frame prediction modes belonging to the MPM list in descending order according to the size of the intra-frame prediction mode values, and while performing comparisons with the values of IntraPredModeY from candModeList[0] to candModeList[4], determine the value of IntraPredModeY determined by reducing the value of IntraPredModeY by 1 when the value of IntraPredModeY-1 is less than the value of candModeList[] as intra_luma_mpm_remainder.
[0276] Meanwhile, when the intra prediction mode of the current block is the MIP mode, the encoding device may generate an MPM list for the MIP mode and encode the current block as described above. In this case, MPM encoding information for the MIP mode may be signaled. In this case, the MPM flag may be signaled as intra_mip_mpm_flag, the MPM index may be signaled as intra_mip_mpm_idx, and the remaining intra prediction mode information may be signaled as intra_mip_mpm_remainder.
[0277] Fig.16 is a flowchart illustrating a method for performing decoding by a decoding apparatus using an MPM list according to an embodiment. The decoding apparatus may determine an intra prediction mode according to intra prediction mode information determined and signaled by an encoding apparatus.
[0278] refer to Fig.16 The decoding apparatus may obtain intra prediction mode information from the bitstream (S1610). The intra prediction mode information may include at least one of the mpm flag, the mpm index, or the remaining intra prediction modes as described above.
[0279] The decoding device may configure an MPM list (S1620). The MPM list may be configured to be the same as the MPM list configured by the encoding device. That is, the MPM list may include intra prediction modes of neighboring blocks and also include a specific intra prediction mode according to a predetermined method.
[0280] In an embodiment, the decoding device may determine whether the intra prediction mode of the current block is the intra plane mode based on information (e.g., intra_luma_not_planar_flag) that specifies whether the intra prediction mode of the current block is not the intra plane mode. When the value of intra_luma_not_planar_flag is a first value (e.g., 0), the decoding device may determine that the intra prediction mode of the current block is the intra plane mode. At the same time, when the value of intra_luma_not_planar_flag is a second value (e.g., 1), the decoding device may determine that the intra prediction mode of the current block is not the intra plane mode.
[0281] Meanwhile, when the intra prediction mode of the current block is not the intra plane mode, the decoding device may determine the intra prediction mode according to whether block-based incremental pulse code modulation (BDPCM) is applied to the current block and the application direction. In an embodiment, when the information (intra_bdpcm_flag) obtained from the bitstream that specifies whether BDPCM is applied to the current block specifies the application of BDPCM, the decoding device may determine at least one BDPCM application direction in the horizontal direction or the vertical direction based on the information (intra_bdpcm_dir_flag) that specifies the application direction of the BDPCM obtained from the bitstream. In addition, the intra prediction mode may be determined as a horizontal mode or a vertical mode in the same direction as the determined BDPCM application direction.
[0282] Meanwhile, when the prediction mode of the current block is not the intra-frame plane mode and BDPCM is not applied, the decoding device may use the above method to generate an MPM list to determine the intra-frame prediction mode. For example, the MPM list may be determined based on the intra-frame prediction mode of the neighboring blocks of the current block. The decoding device may determine the MPM list based on the intra-frame prediction modes of the top neighboring blocks and the left neighboring blocks of the current block. For example, in an embodiment, the decoding device may determine the MPM list based on a first intra-frame prediction candidate determined based on the intra-frame prediction mode of the left neighboring block and a second intra-frame prediction candidate determined based on the intra-frame prediction mode of the top neighboring block.
[0283] The decoding device may use the MPM list to determine whether to determine the intra prediction mode of the current block (S1630). For example, when the value of the mpm flag is 1, the decoding device may derive the candidate specified by the mpm index among the MPM candidates in the MPM list as the intra prediction mode of the current block. For example, the decoding device may determine the intra prediction mode of the current block according to the value of intra_luma_mpm_idx as the mpm index. For example, the decoding device may determine candModeList[intra_luma_mpm_idx] as the intra prediction mode of the current block.
[0284] As another example, when the value of the mpm flag is 0, the decoding apparatus may derive an intra prediction mode specified by the remaining intra prediction mode information among the remaining intra prediction modes not included in the MPM list as the intra prediction mode of the current block (S1640).
[0285] For example, the decoding device may determine the intra prediction mode (e.g., IntraPredModeY) of the current block based on the remaining intra prediction mode information (e.g., intra_luma_mpm_remainder) of the intra prediction mode of the current block. For example, the decoding device may set the value of IntraPredModeY to intra_luma_mpm_remainder+1. Thereafter, the decoding device may arrange the intra prediction modes belonging to the MPM list in ascending order according to the order of the size of the intra prediction mode value, and while performing a comparison with the value of IntraPredModeY from candModeList[0] to candModeList[4], determine the value of IntraPredModeY that specifies the intra prediction mode of the current block by increasing the value of IntraPredModeY by one when the value of IntraPredModeY is less than the value of candModeList[].
[0286] Meanwhile, as another example, when the intra prediction type of the current block is a specific type (e.g., LIP, MRL, or ISP), the decoding device may derive the candidate specified by the mpm index in the MPM list as the intra prediction mode of the current block without checking the mpm flag.
[0287] Meanwhile, when the intra prediction mode of the current block is the MIP mode, the decoding device may generate an MPM list for the MIP to decode the current block as described above. In this case, the MPM encoding information of the MIP mode may be obtained through the bitstream. In this case, the MPM flag may be obtained through intra_mip_mpm_flag, the MPM index may be obtained using intra_mip_mpm_idx, and the remaining intra prediction mode information may be obtained using intra_mip_mpm_remainder.
[0288] Matrix-based mapping between intra prediction modes and normal intra prediction modes
[0289] As described above, in order to determine the MIP mode or intra prediction mode of the current block, an MPM list for a normal intra prediction mode or an MPM list for a MIP may be generated based on information about neighboring blocks. In this case, the neighboring blocks may include a left neighboring block and a top neighboring block of the current block. Here, the normal intra prediction mode means an intra prediction mode other than the MIP mode. For example, the normal intra prediction mode may mean an intra plane mode and an intra DC mode as non-directional intra prediction modes, and a directional intra prediction mode.
[0290] When the MIP mode is applied to the current block but the intra prediction mode other than the MIP mode (normal intra prediction mode) is applied to the neighboring block, the intra prediction mode of the neighboring block needs to be mapped to the MIP mode to generate the MPM list of the current block using the prediction information of the neighboring block. In addition, when the normal intra prediction mode is applied to the current block but the MIP mode is applied to the neighboring block, the MIP mode of the neighboring block needs to be mapped to the normal intra prediction mode to generate the MPM list of the current block using the prediction information of the neighboring block.
[0291] However, the reason why the MIP mode has a problem is that since the MIP mode can have various numbers of prediction modes according to the size of the luminance block as follows, it is difficult to map the normal intra prediction mode and the MIP mode in a one-to-one correspondence.
[0292] [Table 3]
[0293] Luma block size Number of MIP modes 4x4 Luma Block 35 MIP modes 4x8, 8x4, 8x8 luminance blocks 19 MIP modes Other brightness blocks 11 MIP modes
[0294] Since the number of normal intra prediction modes is different from the number of MIP modes, in order to interpolate and map them, they can be obtained by Fig. 9 and Fig.13The mapping table shown in the figure is used to perform the mapping between the MIP mode and the normal intra prediction mode. For example, when the MPM list of the current block encoded in the normal intra mode is generated with reference to the neighboring block, if the intra prediction mode of the neighboring block is the MIP mode, then in order to map the MIP mode of the neighboring block to the intra prediction mode, it should be as follows Fig.17 More specifically, during the encoding and decoding process, the encoding device and the decoding device may identify that the prediction mode of the current block is the normal intra prediction mode (S1710), and identify that the prediction mode of the neighboring block is the MIP mode (S1720). When the prediction mode of the neighboring block is the MIP mode, the encoding device and the decoding device may check whether the neighboring block is a 4x4 luminance block (S1730). When the neighboring block is a 4x4 luminance block, the encoding device and the decoding device may determine whether the neighboring block is a 4x4 luminance block (S1730). Fig. 9 The encoding device and the decoding device may determine the normal intra prediction mode corresponding to the MIP mode of the neighboring block by mapping the 35 MIP modes to 67 intra modes (S1740). When the neighboring block is not a 4x4 luminance block, the encoding device and the decoding device may check whether the neighboring block is a 4x8, 8x4, or 8x8 luminance block (S1750). When the neighboring block is a 4x8, 8x4, or 8x8 luminance block, the encoding device and the decoding device may determine the normal intra prediction mode corresponding to the MIP mode of the neighboring block by mapping the 35 MIP modes to 67 intra modes (S1740). Fig. 9 The normal intra prediction mode corresponding to the MIP mode of the neighboring block is determined by mapping the 19 MIP modes to 67 intra modes (S1760). Alternatively, when the neighboring block is not a 4x8, 8x4 or 8x8 luminance block, the encoding device and the decoding device may determine the normal intra prediction mode corresponding to the MIP mode of the neighboring block according to the method of mapping the 19 MIP modes to 67 intra modes. Fig. 9 The method of mapping 11 MIP modes to 67 intra modes determines the normal intra prediction mode corresponding to the MIP mode of the neighboring block (S1770). Finally, the encoding device and the decoding device can generate an MPM list of the current block using the determined normal intra prediction mode according to the above method (S1780).
[0295] In a similar manner, when referring to a neighboring block to generate an MPM list of a current block encoded in MIP mode, if the intra prediction mode of the neighboring block is a normal intra prediction mode, then Fig.18 Steps S1810 to S1880 are performed as shown to map the intra prediction mode of the neighboring blocks to the MIP mode.
[0296] More specifically, during the encoding and decoding process, the encoding device and the decoding device may identify that the prediction mode of the current block is the MIP mode (S1810), and identify that the prediction mode of the neighboring block is the normal intra prediction mode (S1820). When the prediction mode of the neighboring block is the normal intra prediction mode, the encoding device and the decoding device may check whether the neighboring block is a 4×4 luminance block (S1830). When the neighboring block is a 4×4 luminance block, the encoding device and the decoding device may determine whether the neighboring block is a 4×4 luminance block according to the prediction mode of the neighboring block. Fig.13 The encoding device and the decoding device may determine the MIP mode corresponding to the normal intra prediction mode of the neighboring block by mapping the 67 normal intra prediction modes to 35 MIP modes (S1840). When the neighboring block is not a 4×4 luminance block, the encoding device and the decoding device may check whether the neighboring block is a 4×8, 8×4, or 8×8 luminance block (S1850). When the neighboring block is a 4×8, 8×4, or 8×8 luminance block, the encoding device and the decoding device may determine the MIP mode corresponding to the normal intra prediction mode of the neighboring block by mapping the 67 normal intra prediction modes to 35 MIP modes (S1840). Fig.13 The MIP mode corresponding to the normal intra prediction mode of the neighboring block is determined by mapping the 67 normal intra prediction modes to 19 intra modes (S1860). Alternatively, when the neighboring block is not a 4×8, 8×4 or 8×8 luminance block, the encoding device and the decoding device may determine the MIP mode corresponding to the normal intra prediction mode of the neighboring block according to the mapping method of mapping the 67 normal intra prediction modes to 19 intra modes (S1860). Fig.13 The method of mapping 67 normal intra prediction modes to 11 intra modes determines the MIP mode corresponding to the normal intra prediction mode of the neighboring block (S1870). Finally, the encoding device and the decoding device can generate an MPM list of the current block in the determined MIP mode according to the above method (S1880).
[0297] However, when such mapping is performed, since correlation between the MIP mode and the intra prediction mode occurs, comparison between the sizes of the current block and the neighboring blocks needs to be performed, and an additional memory for storing such a mapping table is necessary.
[0298] Matrix-based mapping of intra prediction modes to normal intra prediction modes
[0299] Hereinafter, a mapping method for reducing the complexity of a mapping algorithm and saving a memory for storing a mapping table by removing the correlation between a block size and a MIP mode and an intra prediction mode according to an embodiment will be described.
[0300] When the MIP mode is mapped to the normal intra prediction mode, the encoding apparatus and the decoding apparatus according to the embodiment may determine the MIP mode as a predetermined intra prediction mode without using a block size and a mapping table.
[0301] For example, when the MIP mode is converted into the intra prediction mode, the encoding apparatus and the decoding apparatus according to the embodiment may map all the MIP modes to the intra planar mode.
[0302] Alternatively, when the MIP mode is converted into the intra prediction mode, the encoding apparatus and the decoding apparatus according to the embodiment may map all MIP modes to the intra DC mode.
[0303] Alternatively, when the MIP mode is converted into the intra prediction mode, the encoding apparatus and the decoding apparatus according to the embodiment may map all the MIP modes to the intra vertical mode.
[0304] Alternatively, when the MIP mode is converted into the intra prediction mode, the encoding apparatus and the decoding apparatus according to the embodiment may map all MIP modes to the intra horizontal mode.
[0305] In an embodiment, in order to determine the intra-frame prediction mode of the current block, when searching the intra-frame prediction mode of the neighboring block to generate the MPM list, if MIP prediction is applied to the neighboring block, the intra-frame prediction mode of the neighboring block can be exported as an intra-frame plane mode, thereby generating the current block MPM list.
[0306] Meanwhile, in the case where the current block (or coding unit) includes a luminance block and a chrominance block, when configuring the intra prediction mode of the chrominance block, if MIP prediction is applied to the luminance block corresponding to the position of the chrominance block, the intra prediction mode specified by DM (direct mode, using the luminance block intra prediction mode corresponding to the chrominance block) of the chrominance block can be derived as an intra plane mode.
[0307] By mapping the MIP mode to the intra prediction mode, the encoding device or the decoding device can simply determine that all MIP modes are predetermined normal intra prediction modes and generate the MPM list based on the corresponding normal intra prediction mode when generating the MPM list when encoding or decoding the current block in the normal intra mode. Fig.19 Simplified reference as shown Fig.17 Describes the steps for generating the MPM list. Fig.19 , in reference Fig.17 In the described MPM list generation step, it can be seen that steps S1730 to S1780 are simplified to step S1791 of determining a normal intra prediction mode corresponding to a MIP mode when all MIP modes are mapped to a predetermined normal intra prediction mode, and step S1792 of generating an MPM list according to the determined normal intra prediction mode. Here, the predetermined normal intra prediction mode may be any one of an intra plane mode, an intra DC mode, an intra vertical mode, and an intra horizontal mode.
[0308] Similarly, even if the above-mentioned intra prediction mode of the chrominance block is determined, when the luminance block corresponding to the chrominance block is in the MIP mode, the intra prediction mode corresponding to the luminance block can be determined as a predetermined normal intra prediction mode without performing mapping according to the size.
[0309] Below, we will refer to Fig. 20 An image encoding method performed by an encoding device according to an embodiment is described. The encoding device according to an embodiment may include a memory and at least one processor and the at least one processor may perform the following encoding method.
[0310] The encoding device according to the embodiment may identify the prediction mode of the current block (S2010). When the prediction mode of the current block is an intra-frame prediction mode, the encoding device may determine a candidate intra-frame prediction mode based on the prediction mode of the neighboring blocks located around the current block (S2020). The candidate intra-frame prediction mode may include a first candidate intra-frame prediction mode and a second candidate intra-frame prediction mode. The first candidate intra-frame prediction mode may be determined based on the prediction mode of the first neighboring block located around the current block, and the second candidate intra-frame prediction mode may be determined based on the prediction mode of the second neighboring block located around the current block. Here, the first candidate intra-frame prediction mode may be the above-mentioned first intra-frame prediction candidate, and the second candidate intra-frame prediction mode may be the above-mentioned second intra-frame prediction candidate. For example, the encoding device may determine a first candidate intra-frame prediction mode (e.g., candIntraPredModeA) based on the intra-frame prediction mode of the left neighboring block and determine a second candidate intra-frame prediction mode (e.g., candIntraPredModeB) based on the intra-frame prediction mode of the top neighboring block.
[0311] In this case, when the prediction mode of the neighboring block is the MIP mode, the encoding device may determine the candidate intra-frame prediction mode of the corresponding neighboring block as a predetermined intra-frame prediction mode. Here, the predetermined intra-frame prediction mode may be any one of an intra-frame plane mode, an intra-frame DC mode, an intra-frame horizontal mode, and an intra-frame vertical mode. For example, when the intra-frame prediction mode of the left neighboring block is the MIP mode, the encoding device may determine the first candidate intra-frame prediction mode (e.g., candIntraPredModeA) as any one of an intra-frame plane mode, an intra-frame DC mode, an intra-frame horizontal mode, and an intra-frame vertical mode. Alternatively, when the intra-frame prediction mode of the top neighboring block is the MIP mode, the encoding device may determine the second candidate intra-frame prediction mode (e.g., candIntraPredModeB) as any one of an intra-frame plane mode, an intra-frame DC mode, an intra-frame horizontal mode, and an intra-frame vertical mode.
[0312] Next, the encoding device may generate a candidate intra prediction mode list for the current block based on the candidate intra prediction mode (S2030). The candidate intra prediction mode list may be the above-mentioned MPM list. For example, the encoding device may generate a candidate intra prediction mode list based on the first candidate intra prediction mode and the second candidate intra prediction mode as described above. In this case, when the prediction mode of the first neighboring block and the prediction mode of the second neighboring block are both MIP modes, the encoding device may determine that the candidate intra prediction mode list includes a predetermined candidate intra prediction mode. Here, the predetermined candidate intra prediction mode may be at least one of a DC mode or a vertical mode.
[0313] Next, the encoding device may encode an intra prediction mode indicator indicating an intra prediction mode of the current block based on the candidate intra prediction mode list (S2040). Here, the intra prediction mode indicator may include an mpm flag signaled in the form of an intra_luma_mpm_flag syntax element, an mpm index signaled in the form of an mpm_idx or intra_luma_mpm_idx syntax element, or remaining intra prediction mode information signaled in the form of a rem_intra_luma_pred_mode or intra_luma_mpm_remainder syntax element. The encoding device may generate a bitstream by encoding the intra prediction mode indicator and send it to the decoding device.
[0314] Below, we will refer to Fig.21 An image decoding method performed by a decoding device according to an embodiment is described. The decoding device according to an embodiment may include a memory and at least one processor and the at least one processor may perform the following decoding method.
[0315] First, the decoding device according to the embodiment can identify the prediction mode of the current block (S2110). When the prediction mode of the current block is an intra prediction mode, the decoding device can determine a candidate intra prediction mode of the current block based on the prediction modes of neighboring blocks located around the current block (S2120).
[0316] When the prediction mode of the neighboring block is the MIP mode, the decoding apparatus may determine the candidate intra prediction mode as a predetermined intra prediction mode. Here, the predetermined intra prediction mode may be any one of an intra planar mode, an intra DC mode, an intra horizontal mode, and an intra vertical mode.
[0317] The decoding device may determine whether the prediction mode of the neighboring block is the MIP mode based on the MIP mode indicator of the neighboring block. The MIP mode indicator may be the above-mentioned MIP flag (eg, intra_mip_flag), and the decoding device may obtain the MIP mode indicator from the bitstream.
[0318] The candidate intra prediction mode may include a first candidate intra prediction mode and a second candidate intra prediction mode. In this case, the first candidate intra prediction mode may be determined based on the prediction mode of a first neighboring block located around the current block, and the second candidate intra prediction mode may be determined based on the prediction mode of a second neighboring block located around the current block.
[0319] Here, the first candidate intra prediction mode may be the first intra prediction candidate described above, and the second candidate intra prediction mode may be the second intra prediction candidate described above. For example, the decoding apparatus may determine the first candidate intra prediction mode (e.g., candIntraPredModeA) based on the intra prediction mode of the left neighboring block and determine the second candidate intra prediction mode (e.g., candIntraPredModeB) based on the intra prediction mode of the top neighboring block.
[0320] For example, when the intra prediction mode of the left neighboring block is the MIP mode, the decoding device may determine the first candidate intra prediction mode (e.g., candIntraPredModeA) as any one of the intra plane mode, the intra DC mode, the intra horizontal mode, and the intra vertical mode. Alternatively, when the intra prediction mode of the top neighboring block is the MIP mode, the decoding device may determine the second candidate intra prediction mode (e.g., candIntraPredModeB) as any one of the intra plane mode, the intra DC mode, the intra horizontal mode, and the intra vertical mode.
[0321] In addition, the decoding device may generate a candidate intra prediction mode list for the current block based on the candidate intra prediction mode (S2130). The candidate intra prediction mode list may be the above-mentioned MPM list. For example, the decoding device may generate a candidate intra prediction mode list based on the first candidate intra prediction mode and the second candidate intra prediction mode as described above. In this case, when the prediction mode of the first neighboring block and the prediction mode of the second neighboring block are both MIP modes, the decoding device may determine that the candidate intra prediction mode list includes a predetermined candidate intra prediction mode. Here, the predetermined candidate intra prediction mode may be at least one of a DC mode or a vertical mode.
[0322] In addition, when the first candidate intra prediction mode and the second candidate intra prediction mode are the same and the first candidate intra prediction mode is an intra prediction mode having a value greater than the prediction mode value of the specified DC mode, the decoding device can generate a candidate intra prediction mode list including the value of the first candidate intra prediction mode.
[0323] In addition, when the prediction mode of the first neighboring block is the MIP mode, the first candidate intra-frame prediction mode and the second candidate intra-frame prediction mode are different from each other and the second candidate intra-frame prediction mode is an intra-frame prediction mode having a value greater than the prediction mode value indicating the DC mode, the decoding device can generate a candidate intra-frame prediction mode list including the second candidate intra-frame prediction mode.
[0324] In addition, the decoding device may determine the intra prediction mode of the current block based on the candidate intra prediction mode list (S2140). The decoding device may determine any one of the candidate intra prediction modes included in the candidate intra prediction mode list as the intra prediction mode of the current block based on the intra prediction mode indicator obtained from the bitstream. For example, the intra prediction mode indicator may be the above-mentioned mpm index and may be signaled in the form of an mpm_idx or intra_luma_mpm_idx syntax element through the bitstream.
[0325] In addition, the encoding device according to the embodiment may encode the intra prediction mode of the chroma block according to the mapping of the above-mentioned MIP mode. The encoding device according to the embodiment may use the DM mode to signal the intra prediction mode of the chroma block. In this case, the encoding device may determine the intra prediction mode applied according to the DM mode as the intra prediction mode specified by the reference mode. Here, the reference mode may be determined based on the prediction mode of the luminance block corresponding to the chroma block, and the reference mode may be identified by the parameters of lumaIntraPredMode or IntraPredModeY.
[0326] For example, the encoding apparatus may determine the intra prediction mode of the luminance block corresponding to the chrominance block as the reference mode. Therefore, the encoding apparatus may determine the intra prediction mode of the chrominance block determined in the DM mode as the intra prediction mode of the luminance block.
[0327] In this case, when the luminance block is a luminance block to which the MIP mode is applied, the encoding apparatus may determine the reference mode to be the planar mode instead of the MIP mode.Therefore, the encoding apparatus may determine the intra prediction mode of the chrominance block determined to be the DM mode to be the intra planar mode.
[0328] Alternatively, when the MIP mode is not applied to the luma block, the encoding device may determine the reference mode according to the prediction mode of the luma block. For example, when predicting the luma block in a predetermined mode, the encoding device may determine the reference mode as an intra-frame DC mode. Here, the predetermined mode may include an IBC mode or other modes. Therefore, the encoding device may determine the intra-frame prediction mode of the chroma block that has been determined as the DM mode as an intra-frame DC mode.
[0329] In addition, the encoding device may encode the intra-frame prediction mode of the chroma block based on the reference mode. For example, the encoding device may select the intra-frame plane mode as the best prediction mode for encoding the chroma block, and when the prediction mode of the luminance block corresponding to the chroma block is the MIP mode, encode information indicating that the intra-frame prediction mode of the chroma block is the intra-frame prediction mode identified according to the DM mode.
[0330] In addition, consistent with the encoding method, the decoding device according to the embodiment can determine the intra-frame prediction mode of the chrominance block according to the mapping of the above-mentioned MIP mode. The decoding device according to the embodiment can determine the reference mode for determining the intra-frame prediction mode of the chrominance block based on the prediction mode of the luminance block corresponding to the chrominance block. Here, the reference mode can be identified by the parameters of lumaIntraPredMode or IntraPredModeY.
[0331] In this case, when the luminance block corresponding to the chrominance block is a luminance block to which the MIP mode is applied, the decoding apparatus may determine the reference mode to be the planar mode. Therefore, the decoding apparatus may determine the intra prediction mode of the chrominance block determined to be the DM mode to be the intra planar mode.
[0332] Alternatively, when the MIP mode is not applied to the luma block, the decoding device may determine the reference mode according to the prediction mode of the luma block. For example, when the luma block is predicted in the IBC mode or other predetermined mode, the decoding device may determine the reference mode as the intra DC mode. Therefore, the decoding device may determine the intra prediction mode of the chroma block that has been determined as the DM mode as the intra DC mode.
[0333] Alternatively, when the MIP mode is not applied to the luminance block and the luminance block is not predicted in the IBC mode or other predetermined mode, the decoding device may determine the reference mode as the intra-frame prediction mode of the luminance block. Therefore, the decoding device may determine the intra-frame prediction mode of the chrominance block that has been determined as the DM mode as the intra-frame prediction mode of the luminance block.
[0334] In addition, the decoding device may determine the intra prediction mode of the chroma block based on the reference mode. For example, when the intra prediction mode of the chroma mode is the DM mode, the decoding device may determine the intra prediction mode of the chroma block to be the intra prediction mode corresponding to the reference mode.
[0335] Therefore, even when the prediction mode of the luminance block or the neighboring block referenced when encoding or decoding the current block in the normal intra-frame mode is the MIP mode, the encoding device and the decoding device do not need to compare the size of the current block or the neighboring block, thereby reducing the computational complexity. In addition, since there is no need to use a mapping table for mapping, the memory space efficiency can be improved.
[0336] Fig. 22 Experimental data are shown, which show the use of Fig.17 The mapping table method shown is compared to the method when the MIP mode of the neighboring block is converted into the intra prediction mode according to Fig.19 The mapping method maps all MIP modes to the intra-frame intra-plane modes to generate the coding rate of the MPM list of the current block. Fig. 22As shown, it can be seen that there is no difference in the coding rate. That is, by applying the above method, the algorithm complexity can be reduced while minimizing the coding loss and reducing the use of the memory for the mapping table.
[0337] Normal intra prediction mode to MIP Mapping of intra prediction modes
[0338] Hereinafter, a mapping method for reducing the complexity of a mapping algorithm and saving a memory for storing a mapping table by removing the correlation between a block size and an MIP mode and an intra prediction mode according to another embodiment will be described.
[0339] When the normal intra prediction mode is mapped to the MIP mode, the encoding apparatus and the decoding apparatus according to an embodiment may determine all normal intra prediction modes as a predetermined MIP mode without using a block size and a mapping table.
[0340] For example, when the normal intra prediction mode is converted into the MIP mode, the encoding apparatus and the decoding apparatus according to an embodiment may map all normal intra prediction modes to MIP mode #0.
[0341] Alternatively, when the normal intra prediction mode is converted into the MIP mode, the encoding apparatus and the decoding apparatus according to an embodiment may map all normal intra prediction modes to the MIP mode #1.
[0342] Alternatively, when the normal intra prediction mode is converted into the MIP mode, the encoding apparatus and the decoding apparatus according to an embodiment may map all normal intra prediction modes to the MIP mode #3.
[0343] Alternatively, when the normal intra prediction mode is converted into the MIP mode, the encoding apparatus and the decoding apparatus according to an embodiment may map all normal intra prediction modes to the MIP mode having the most likely selection rate in the encoding or decoding process.
[0344] By mapping the MIP mode to the intra prediction mode, the encoding device or the decoding device can simply determine all normal intra prediction modes as predetermined MIP modes when generating an MPM list when encoding or decoding the current block with MIP, and generate an MPM list based on the corresponding MIP mode. Fig.23 Simplified reference as shown Fig.18 Describes the steps for generating the MPM list. Fig.23 , in reference Fig.18In the described MPM list generation step, it can be seen that steps S1830 to S1880 are simplified to step S1891 (S1891) of determining the MIP mode corresponding to the normal intra prediction mode as all normal intra prediction modes are mapped to the predetermined MIP mode, and step S1892 (S1892) of generating the MPM list using the determined MIP mode. Here, the predetermined MIP mode can be any one of #0, #1, #3 and the MIP mode with the most likely selection rate during encoding or decoding.
[0345] Below, we will refer to Fig.24 An image encoding method performed by the image encoding apparatus according to an embodiment is described. The image encoding apparatus according to an embodiment may determine an MPM candidate of a current block based on prediction modes of neighboring blocks located around the current block (S2410).
[0346] When the prediction mode of any one of the current block and the neighboring block is a matrix-based prediction mode (eg, MIP mode), the encoding apparatus may determine an MPM candidate determined based on the prediction mode of the neighboring block as a predetermined intra prediction mode.
[0347] For example, when the prediction mode of the current block is a matrix-based intra prediction mode and the prediction mode of the neighboring block is a non-matrix-based intra prediction mode (e.g., a normal intra prediction mode), the encoding device may determine the MPM candidate determined based on the prediction mode of the neighboring block as a predetermined matrix-based prediction mode. Here, the predetermined matrix-based intra prediction mode may be determined based on the size of the current block as described above.
[0348] In this case, the predetermined matrix-based intra-frame prediction mode can be identified by specifying a predetermined index of the matrix-based intra-frame prediction mode, and the predetermined index can represent a matrix-based intra-frame prediction mode used with the highest frequency among multiple matrix-based intra-frame prediction modes. For example, as described above, the predetermined matrix-based intra-frame prediction mode can be any one of #0, #1, #3, and the matrix-based intra-frame prediction mode having the most likely selection rate during encoding or decoding.
[0349] Meanwhile, when the prediction mode of the current block is a non-matrix-based intra prediction mode and the prediction mode of the neighboring block is a matrix-based intra prediction mode, the encoding device may determine the MPM candidate determined based on the prediction mode of the neighboring block as a predetermined intra prediction mode. In this case, the predetermined intra prediction mode may be any one of a planar mode, a DC mode, a vertical mode, and a horizontal mode.
[0350] At the same time, the encoding device may determine multiple MPM candidates based on multiple neighboring blocks. In addition, the encoding device may determine an MPM list based on multiple MPM candidates. In this case, when all prediction modes of multiple neighboring blocks are matrix-based prediction modes, the encoding device may generate an MPM list to include predetermined MPM candidates. In this case, the predetermined MPM candidate may include at least one of a DC mode or a vertical mode.
[0351] Next, the encoding apparatus may generate an MPM list of the current block based on the MPM candidates ( S2420 ).
[0352] Finally, the encoding apparatus may determine a prediction mode indicator specifying a prediction mode of the current block based on the MPM list ( S2430 ).
[0353] In addition, in order to encode the intra prediction mode of the chroma block corresponding to the current block into the DM mode, the encoding device may determine the intra prediction mode specified by the DM mode. The encoding device may determine the luma intra prediction mode for encoding the intra prediction mode of the chroma block corresponding to the current block.
[0354] Here, the luma intra prediction mode may be determined based on the prediction mode of the luma block corresponding to the chroma block and may be identified by a parameter of lumaIntraPredMode or IntraPredModeY. For example, the luma intra prediction mode may be used in the same manner as the reference mode described above.
[0355] In an embodiment, the encoding device may determine the luma intra prediction mode depending on whether the encoding mode of the current block is a matrix-based intra prediction mode. For example, when the current block is a luma block to which the matrix-based intra prediction mode is applied, the encoding device may determine the luma intra prediction mode to be a planar mode.
[0356] Alternatively, when the current block is a luma block to which a non-matrix-based intra prediction mode is applied, the encoding apparatus may determine the luma intra prediction mode based on the intra prediction mode of the current block. For example, the encoding apparatus may determine the luma intra prediction mode as the intra prediction mode of the current block.
[0357] Next, the encoding device may determine the intra prediction mode of the chroma block specified by the DM mode as a luma intra prediction mode (e.g., a reference mode). Finally, the encoding device may select an optimal mode for performing intra prediction of the chroma block. When the intra prediction mode specified by the DM mode is selected as the optimal mode, the encoding device may encode the intra prediction mode information of the chroma block that specifies the chroma block that has been encoded under the intra prediction mode specified by the DM mode and generate a bitstream, thereby notifying the decoding device of the corresponding information with a signal.
[0358] Fig.25 is a flowchart illustrating an image decoding method performed by a decoding apparatus according to an embodiment. First, the decoding apparatus may determine a most probable mode (MPM) candidate of a current block based on prediction modes of neighboring blocks located around the current block (S2510).
[0359] When the prediction mode of any one of the current block and the neighboring block is a matrix-based intra prediction mode (eg, MIP mode), the decoding apparatus may determine an MPM candidate determined based on the prediction mode of the neighboring block as a predetermined intra prediction mode.
[0360] For example, when the prediction mode of the current block is a matrix-based intra prediction mode and the prediction mode of the neighboring block is a non-matrix-based intra prediction mode (e.g., a normal intra prediction mode), the decoding device may determine the MPM candidate determined based on the prediction mode of the neighboring block as a predetermined matrix-based intra prediction mode. In this case, the predetermined matrix-based intra prediction mode may be determined based on the size of the current block as described above.
[0361] In this case, the predetermined matrix-based intra-frame prediction mode can be identified by specifying a predetermined index of the matrix-based intra-frame prediction mode, and the predetermined index can represent a matrix-based intra-frame prediction mode used with the highest frequency among multiple matrix-based intra-frame prediction modes. For example, as described above, the predetermined matrix-based intra-frame prediction mode can be any one of #0, #1, #3, and a matrix-based intra-frame prediction mode having the most likely selection rate during encoding or decoding.
[0362] Meanwhile, when the prediction mode of the current block is a non-matrix-based intra prediction mode and the prediction mode of the neighboring block is a matrix-based intra prediction mode, the decoding device may determine the MPM candidate determined based on the prediction mode of the neighboring block as the predetermined intra prediction mode. In this case, the predetermined intra prediction mode may be any one of a planar mode, a DC mode, a vertical mode, and a horizontal mode.
[0363] At the same time, an MPM list can be generated based on multiple MPM candidates, and multiple MPM candidates can be determined based on multiple neighboring blocks. When all prediction modes of multiple neighboring blocks are matrix-based prediction modes, the decoding device can generate an MPM list to include predetermined MPM candidates. In this case, the predetermined MPM candidates may include at least one of a DC mode or a vertical mode.
[0364] Next, the decoding apparatus may generate an MPM list of the current block based on the MPM candidates ( S2520 ).
[0365] Next, the decoding apparatus may determine an MPM candidate identified by the intra prediction mode indicator among a plurality of MPM candidates included in the MPM list as a prediction mode of the current block ( S2530 ).
[0366] In addition, the decoding apparatus may determine an intra prediction mode of a chrominance block corresponding to the current block. The decoding apparatus may determine a luma intra prediction mode used to determine an intra prediction mode of a chrominance block corresponding to the current block.
[0367] Here, the luma intra prediction mode may be determined based on the prediction mode of the luma block corresponding to the chroma block and may be identified by a parameter of lumaIntraPredMode or IntraPredModeY. For example, the luma intra prediction mode may be used in the same manner as the reference mode described above.
[0368] In an embodiment, the decoding device may determine the luma intra prediction mode depending on whether the encoding mode of the current block is a matrix-based intra prediction mode. For example, when the current block is a luma block to which the matrix-based intra prediction mode is applied, the decoding device may determine the luma intra prediction mode to be a planar mode.
[0369] Alternatively, when the current block is a luma block to which a non-matrix-based intra prediction mode is applied, the decoding apparatus may determine the luma intra prediction mode based on the intra prediction mode of the current block.
[0370] Finally, the decoding device may determine the intra prediction mode of the chrominance block based on the luma intra prediction mode. For example, the decoding device may determine the intra prediction mode of the chrominance block as the luma intra prediction mode.
[0371] Fig.26 The experimental data are shown in Figure 2. Fig.18 The encoding rate when the MPM list is generated is compared to the encoding rate when the normal intra prediction mode of the neighboring block is converted into the MIP mode and all normal intra prediction modes are mapped to MIP mode #0 according to the above mapping method to generate the MPM list of the MIP mode for the current block. Fig.26 As shown, it can be seen that there is no difference in the coding rate. That is, by applying the above method, the algorithm complexity can be reduced while minimizing the coding loss and reducing the use of the memory for the mapping table.
[0372] Alternatively, the encoding apparatus and the decoding apparatus according to the embodiment may use a simplified mapping table as shown in Table 4 below to convert the normal intra prediction mode into the MIP mode.
[0373] [Table 4]
[0374]
[0375] For example, the encoding apparatus and the decoding apparatus according to an embodiment may map all normal intra prediction modes to MIP mode #17, 0, or 1 according to the size (MipSizeId) of the current block.
[0376] As described above, size 0 of the current block may mean a 4x4 luma block, size 1 of the current block may mean a 4x8, 8x4, or 8x8 luma block, and size 2 of the current block may mean more than 8x8 luma blocks.
[0377] Alternatively, the encoding apparatus and the decoding apparatus according to the embodiment may use a simplified mapping table as shown in Table 5 below to convert the normal intra prediction mode into the MIP mode.
[0378] [Table 5]
[0379]
[0380] For example, the encoding device and the decoding device according to the embodiment can map all normal intra prediction modes to MIP mode #5, 0 or 6 according to the size of the current block (MipSizeId). Alternatively, the encoding device and the decoding device according to the embodiment can use a simplified mapping table as shown in Table 6 below to convert the normal intra prediction mode into the MIP mode.
[0381] [Table 6]
[0382]
[0383] For example, the encoding device and the decoding device according to the embodiment can map all normal intra prediction modes to the MIP mode with the most likely selection rate for each block size according to the size (MipSizeId) of the current block. The encoding device and the decoding device according to the embodiment can reduce the algorithm complexity by using a simplified mapping table, but in terms of comparison of block sizes, more complex mapping can be performed compared to the above-mentioned mapping method in which all normal intra prediction modes are mapped to MIP modes without comparing block sizes.
[0384] generate MIP Pattern MPM List Methods
[0385] As described above, when the prediction mode of the current block is the MIP mode, it is necessary to check the MIP modes of neighboring blocks to generate the MPM list of the current block. Fig. 27 is a flowchart illustrating a candidate MIP mode determination method for configuring an MPM list of a current block according to an embodiment.
[0386] refer to Fig. 27In an embodiment, even if the prediction mode of the neighboring block is the MIP mode (S2510), when the number of MIP modes that the current block and the neighboring block can have is the same, that is, when the current block and the neighboring block have the same size (S2520), the encoding device and the decoding device may determine the MIP mode of the neighboring block as the MPM list for configuring the current block.
[0387] For example, even if the prediction mode of the neighboring block is the MIP mode
[0388] Formula (S2510), when the number of MIP modes that the current block and the neighboring block can have is different, that is, when the sizes of the current block and the neighboring block are different (S2520), the encoding device and the decoding device may determine the value of the candidate MIP mode for configuring the MPM list of the current block to be -1 (S2540). The value -1 of the candidate MIP mode can specify that the MIP mode value from the neighboring block cannot be used.
[0389] In addition, when the prediction mode of the neighboring block is not the MIP mode (S2510), the encoding device and the decoding device may be as described in reference to Fig.18 As described Fig.18 The normal intra prediction mode is converted into a candidate MIP mode (S2550).
[0390] Finally, the encoding apparatus and the decoding apparatus may generate a MIP list having the determined candidate MIP modes ( S2760 ).
[0391] As in Fig. 27 As in the method of , the encoding device and the decoding device should always check the sizes of the current block and the neighboring block in the process of determining the candidate MIP mode of the current block with reference to the neighboring block, and should perform the same as the reference when the prediction mode of the neighboring block is not the MIP mode. Fig.18 The described mapping increases the computational complexity.
[0392] In order to reduce computational complexity, the encoding apparatus and the decoding apparatus according to the embodiment may check whether a neighboring block is in the MIP mode when generating an MPM list of a current block encoded or decoded in the MIP mode, and determine a candidate MIP mode accordingly. Fig.28 1 is a flowchart illustrating a method for determining a candidate MIP mode by replacing the MIP prediction mode of a neighboring block with a predetermined MIP by an encoding device and a decoding device and generating an MPM list. Fig.28 Description and Fig. 27 difference.
[0393] For example, when the encoding or decoding mode of the neighboring block is the MIP mode, the encoding device and the decoding device may set the candidate MIP mode to mode #0 (S2711). Alternatively, when the encoding or decoding mode of the neighboring block is not the MIP mode, the encoding device and the decoding device may set the index of the candidate MIP mode to -1 (S2712). Therefore, since the encoding device and the decoding device only need to check whether the MIP mode is applied to the neighboring block, the algorithm for determining the candidate MIP mode can be further simplified, and when the neighboring block is in the normal intra prediction mode, the mapping process for converting it to the MIP mode can be skipped.
[0394] At the same time, the encoding device and the decoding device may determine the candidate MIP mode based on the size of the current block and the neighboring block to improve the prediction accuracy. For example, when the current block is in MIP mode, the MPM list is generated with reference to the neighboring block and the prediction mode of the neighboring block is MIP mode, the encoding device and the decoding device may refer to the following Table 7 to determine the candidate MIP mode as mipMpmCand[sizeId][0]. sizeId may mean the size of the neighboring block, sizeId 0 may mean a 4x4 luminance block, sizeId 1 may mean a 4x8, 8x4 or 8x8 luminance block, and sizeId 2 may mean a luminance block exceeding 8x8.
[0395] [Table 7]
[0396]
[0397] For example, the encoding device and the decoding device may set the candidate MIP mode to #17 when the size of the neighboring block is 4x4, set the candidate MIP mode to #0 when the size of the neighboring block is 4x8, 8x4 or 8x8, and set the candidate MIP mode to #1 in other blocks. The encoding device and the decoding device can improve the MPM mode accuracy by adaptively selecting a default candidate MIP mode according to the size of the neighboring block. Alternatively, in order to reduce the computational complexity, the encoding device and the decoding device according to the embodiment can select a candidate MIP mode without considering the encoding mode of the neighboring block and generate an MPM list by using it without change.
[0398] For example, when generating an MPM list for a MIP mode, the encoding device and the decoding device may determine the MPM list for the MIP mode (e.g., candMipModeList[]) fixedly as follows, regardless of the MIP mode of the neighboring block. For example, when three MIP MPM lists are generated, x may have a value of 0 to 2, so candMipModeList[x] may be configured with reference to Table 7 as follows. In this case, sizeId indicates the size of the neighboring block, but the encoding device and the decoding device may determine sizeId according to the size of the current block so as to skip the process of referring to information about the neighboring block.
[0399] candMipModeList[0]=mipMpmCand[sizeId][0]
[0400] candMipModeList[1]=mipMpmCand[sizeId][1]
[0401] candMipModeList[2]=mipMpmCand[sizeId][2]
[0402] Fig.29 The experimental data are shown. The experimental data show that when the Fig.25 The encoding rate when an image is encoded by generating an MPM list using a candidate MIP mode determined by the method of the present invention is compared to the encoding rate when an image is encoded by fixedly determining an MPM list for a MIP mode as described above without considering the encoding mode of a neighboring block according to the mapping method. Fig.29 As shown, it can be seen that there is no difference in the coding rate. That is, by applying the above method, the algorithm complexity can be reduced while minimizing the coding loss and reducing the use of the memory for the mapping table.
[0403] In another embodiment, when generating an MPM list for a MIP mode, the encoding device and the decoding device may determine the MPM list for the MIP mode (e.g., candMipModeList[]) fixedly based on the mode selection probability without considering the encoding mode of the neighboring block as follows. For example, when three MIP MPM lists are generated, x may have a value of 0 to 2, and candMipModeList[x] may be configured as follows relative to Table 8. In sortedmipMpmCand[sizeId][x], candidate MIP modes may be stored for each block size based on the MIP mode selection probability. For example, the candidate MIP mode with the highest selection frequency in the corresponding sizeId may be stored in sortedmipMpmCand[sizeId][0], and the candidate MIP mode with the second highest selection frequency in the corresponding sizeId may be stored in sortedmipMpmCand[sizeId][1]. In this case, sizeId indicates the size of the neighboring block, but the encoding device and the decoding device may determine sizeId based on the size of the current block so as to skip the process of referring to information about the neighboring block.
[0404] candMipModeList[0]=sortedmipMpmCand[sizeId][0]
[0405] candMipModeList[1]=sortedmipMpmCand[sizeId][1]
[0406] candMipModeList[2]=sortedmipMpmCand[sizeId][2]
[0407] [Table 8]
[0408]
[0409] Fig.30 is a flowchart illustrating an image encoding method performed by an encoding device according to an embodiment. First, the encoding device may partition an image and determine a current block (S3010). For example, the encoding device may partition an input image into one or more processing units by partitioning the image according to a partition result representing optimal coding efficiency. Here, the processing unit may be any one of the above-mentioned CU, PU, and TU. The object currently being encoded among the processing units may be the current block. Next, the encoding device may identify neighboring blocks located around the current block (S3020). Next, the encoding device may identify whether the prediction mode of the neighboring blocks is a matrix-based intra-frame prediction (MIP) mode (S3030).
[0410] Next, when the prediction mode of the neighboring block is the MIP mode, the encoding device may generate a candidate mode list of the current block based on a predetermined candidate mode (S3040). More specifically, when the prediction mode of the neighboring block is the MIP mode, the encoding device may determine the candidate mode based on the prediction mode of the neighboring block. In addition, a candidate mode list of the current block may be generated based on the candidate mode.
[0411] In an embodiment, when the prediction mode of the current block is the MIP mode, the encoding device may determine the predetermined candidate mode as the predetermined MIP mode. In this case, the predetermined candidate mode may be the MIP mode used with the highest frequency among the multiple MIP modes, and the predetermined candidate mode may be determined based on the size of the current block. In an embodiment, the predetermined candidate mode may be the MIP mode with index #0.
[0412] Meanwhile, when the prediction mode of the current block is the MIP mode and the prediction mode of the neighboring block is not the MIP mode, the encoding apparatus may determine the candidate mode as a mode specifying that the prediction mode of the neighboring block is not the MIP mode.
[0413] In addition, when the prediction mode of the current block is an intra prediction mode other than the MIP mode, the encoding device may determine the candidate mode as a predetermined intra prediction mode. In this case, the predetermined intra prediction mode may be any one of a planar mode, a DC mode, a vertical mode, and a horizontal mode.
[0414] Next, the encoding apparatus may encode a prediction mode of the current block based on the candidate mode list ( S3050 ).
[0415] In addition, in order to encode the intra prediction mode of the chroma block corresponding to the current block into the DM mode, the encoding device may determine the intra prediction mode specified by the DM mode. The encoding device may determine the reference prediction mode for encoding the intra prediction mode of the chroma block corresponding to the current block.
[0416] Here, the reference intra prediction mode may be determined based on the prediction mode of the luma block corresponding to the chroma block and may be identified by a parameter of lumaIntraPredMode or IntraPredModeY. For example, the reference intra prediction mode may be used in the same manner as the reference mode described above.
[0417] In an embodiment, the encoding device may determine the reference prediction mode depending on whether the encoding mode of the current block is the MIP mode. For example, when the current block is a luminance block to which the MIP mode is applied, the encoding device may determine the reference prediction mode to be the planar mode.
[0418] Alternatively, when the current block is a luminance block to which the MIP mode is not applied, the encoding device may determine the reference prediction mode based on the intra prediction mode of the current block. For example, the encoding device may determine the reference prediction mode as the intra prediction mode of the current block.
[0419] Next, the encoding device may determine the intra prediction mode of the chroma block specified by the DM mode as a reference prediction mode. Finally, the encoding device may select an optimal mode for performing intra prediction of the chroma block. When the intra prediction mode specified by the DM mode is selected as the optimal mode, the encoding device may encode the intra prediction mode information specifying the chroma block that has been encoded under the intra prediction mode specified by the DM mode, and generate a bitstream, thereby notifying the decoding device of the corresponding information with a signal.
[0420] Fig.31 is a flowchart illustrating an image decoding method performed by a decoding device according to an embodiment. First, the decoding device may obtain partition information of an image from a bitstream (S3110).
[0421] Next, the decoding device may partition the image based on the partition information and determine the current block (S3120). The decoding device may partition the input image into one or more processing units using the partition information obtained from the bitstream. Here, the processing unit may be any one of the above-mentioned CU, PU, and TU.
[0422] Next, the decoding apparatus may identify neighboring blocks located around the current block ( S3130 ).
[0423] Next, the decoding apparatus may identify whether the prediction mode of the neighboring block is a matrix-based intra prediction (MIP) mode ( S3140 ).
[0424] Next, when the prediction mode of the neighboring block is the MIP mode, the decoding device can generate a candidate mode list of the current block based on the predetermined candidate mode (S3150). More specifically, when the prediction mode of the neighboring block is the MIP mode, the decoding device can determine the candidate mode based on the prediction mode of the neighboring block. In addition, the candidate mode list of the current block can be generated based on the candidate mode.
[0425] In an embodiment, when the prediction mode of the current block is the MIP mode, the decoding device may determine the predetermined candidate mode as the predetermined MIP mode. In this case, the predetermined candidate mode may be the MIP mode used with the highest frequency among the multiple MIP modes, and the predetermined candidate mode may be determined based on the size of the current block. In an embodiment, the predetermined candidate mode may be the MIP mode with index #0.
[0426] Meanwhile, when the prediction mode of the current block is the MIP mode and the prediction mode of the neighboring block is not the MIP mode, the decoding apparatus may determine the candidate mode as a mode specifying that the prediction mode of the neighboring block is not the MIP mode.
[0427] In addition, when the prediction mode of the current block is an intra prediction mode other than the MIP mode, the decoding device may determine the candidate mode as a predetermined intra prediction mode. In this case, the predetermined intra prediction mode may be any one of a planar mode, a DC mode, a vertical mode, and a horizontal mode.
[0428] Next, the decoding apparatus may determine a prediction mode of the current block based on the candidate mode list ( S3160 ).
[0429] In addition, the decoding apparatus may determine an intra prediction mode of a chroma block corresponding to the current block. The decoding apparatus may determine a reference prediction mode for determining an intra prediction mode of a chroma block corresponding to the current block.
[0430] Here, the reference intra prediction mode may be determined based on the prediction mode of the luma block corresponding to the chroma block and may be identified by a parameter of lumaIntraPredMode or IntraPredModeY. For example, the reference intra prediction mode may be used in the same manner as the reference mode described above.
[0431] In an embodiment, the decoding device may determine the reference prediction mode depending on whether the encoding mode of the current block is the MIP mode. For example, when the current block is a luminance block to which the MIP mode is applied, the decoding device may determine the reference prediction mode as the planar mode.
[0432] Alternatively, when the current block is a luminance block to which an intra prediction mode other than the MIP mode is applied, the decoding apparatus may determine the reference prediction mode based on the intra prediction mode of the current block.
[0433] Finally, the decoding device may determine the intra prediction mode of the chrominance block based on the reference prediction mode. For example, the decoding device may determine the intra prediction mode of the chrominance block as the reference prediction mode.
[0434] Application Examples
[0435] Although for the sake of clarity of description, the exemplary method of the present disclosure described above is represented as a series of operations, it is not intended to limit the order of executing the steps, and these steps can be performed simultaneously or in different orders when necessary. In order to implement the method according to the present invention, the steps described may further include other steps, may include the remaining steps except some steps, or may include other additional steps except some steps.
[0436] In the present disclosure, an image encoding device or an image decoding device that performs a predetermined operation (step) may perform an operation (step) of confirming an execution condition or situation of the corresponding operation (step). For example, if it is described that a predetermined operation is performed when a predetermined condition is met, the image encoding device or the image decoding device may perform the predetermined operation after determining whether the predetermined condition is met.
[0437] The various embodiments of the present disclosure are not a list of all possible combinations and are intended to describe representative aspects of the present disclosure, and matters described in the various embodiments may be applied independently or in combination of two or more.
[0438] Various embodiments of the present disclosure may be implemented in hardware, firmware, software or a combination thereof. In the case of implementing the present disclosure in hardware, the present disclosure may be implemented in an application specific integrated circuit (ASIC), a digital signal processor (DSP), a digital signal processing device (DSPD), a programmable logic device (PLD), a field programmable gate array (FPGA), a general purpose processor, a controller, a microcontroller, a microprocessor, etc.
[0439] In addition, the image decoding device and the image encoding device to which the embodiments of the present disclosure are applied may be included in multimedia broadcast transmission and reception devices, mobile communication terminals, home theater video devices, digital theater video devices, surveillance cameras, video chat devices, real-time communication devices such as video communication, mobile streaming devices, storage media, cameras, video on demand (VoD) service providing devices, OTT video (over-the-top video) devices, Internet streaming service providing devices, three-dimensional (3D) video devices, video phone video devices, medical video devices, etc., and may be used to process video signals or data signals. For example, OTT video devices may include game consoles, Blu-ray players, Internet access televisions, home theater systems, smart phones, tablet PCs, digital video recorders (DVRs), etc.
[0440] Fig.29 is a view showing a content streaming system to which an embodiment of the present disclosure can be applied.
[0441] like Fig.29 As shown in , a content streaming system to which an embodiment of the present disclosure is applied may mainly include an encoding server, a streaming server, a network server, a media storage, a user device, and a multimedia input device.
[0442] The encoding server compresses the content input from the multimedia input device such as a smartphone, camera, camcorder, etc. into digital data to generate a bit stream and sends the bit stream to the streaming server. As another example, when the multimedia input device such as a smartphone, camera, camcorder, etc. directly generates the bit stream, the encoding server can be omitted.
[0443] A bitstream may be generated by applying the image encoding method or the image encoding device according to the embodiment of the present disclosure, and a streaming server may temporarily store the bitstream in the process of transmitting or receiving the bitstream.
[0444] The streaming server sends multimedia data to the user device based on the user's request through the network server, and the network server serves as a medium for notifying the user of the service. When the user requests the required service from the network server, the network server can deliver it to the streaming server, and the streaming server can send the multimedia data to the user. In this case, the content streaming system may include a separate control server. In this case, the control server serves as a command / response between devices in the control content streaming system.
[0445] The streaming server may receive content from a media storage and / or encoding server. For example, when content is received from an encoding server, the content may be received in real time. In this case, in order to provide a smooth streaming service, the streaming server may store the bitstream for a predetermined time.
[0446] Examples of user devices may include mobile phones, smart phones, laptop computers, digital broadcast terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation devices, tablet PCs, tablet computers, ultrabooks, wearable devices (e.g., smart watches, smart glasses, head-mounted displays), digital televisions, desktop computers, digital signage, etc.
[0447] Each server in the content streaming system may operate as a distributed server, in which case data received from each server may be distributed.
[0448] The scope of the present disclosure includes software or executable commands (e.g., operating systems, applications, firmware, programs, etc.) for enabling operations according to the methods of various embodiments to be performed on a device or computer, and a non-transitory computer-readable medium having such software or commands stored thereon and executable on a device or computer.
[0449] Industrial Applicability
[0450] The embodiments of the present disclosure may be used to encode or decode an image.
Claims
1. An image decoding method performed by an image decoding device, the image decoding method comprising: Obtaining partition information of an image from a bitstream; determining a current block by partitioning the image based on the partition information; identifying neighboring blocks located around the current block; Identify whether the prediction mode of the neighboring block is MIP (matrix-based intra prediction) mode; Based on the prediction mode of the neighboring block being the MIP mode and the prediction mode of the current block being an intra prediction mode other than the MIP mode, generating a candidate mode list for the current block based on predetermined candidate modes; as well as An intra prediction mode for the current block is determined based on the candidate mode list.
2. The image decoding method according to claim 1, wherein: The index specifying the predetermined candidate mode is 0.
3. The image decoding method according to claim 1, wherein: Based on that the prediction mode of the current block is the MIP mode, the predetermined candidate mode is determined as the predetermined MIP mode.
4. The image decoding method according to claim 3, wherein: The predetermined candidate mode is determined based on the size of the current block.
5. The image decoding method according to claim 3, wherein: The predetermined candidate mode is the MIP mode used with the highest frequency among a plurality of MIP modes.
6. The image decoding method according to claim 1, wherein: Based on the prediction mode of the current block being the MIP mode and the prediction mode of the neighboring block being not the MIP mode, the predetermined candidate mode is determined as a mode specifying that the prediction mode of the neighboring block is not the MIP mode.
7. The image decoding method according to claim 1, wherein: The predetermined candidate mode is a planar mode.
8. The image decoding method according to claim 1, comprising: Determining a reference prediction mode for determining an intra prediction mode of a chroma block corresponding to the current block; as well as determining an intra prediction mode of the chroma block based on the reference prediction mode, Wherein, based on the fact that the current block is a luminance block to which the MIP mode is applied, the reference prediction mode is determined to be a planar mode.
9. The image decoding method according to claim 8, wherein: The intra prediction mode of the chroma block is determined as the reference prediction mode.
10. The image decoding method according to claim 9, wherein: Based on the current block being a luminance block to which the MIP mode is not applied, the reference prediction mode is determined based on the intra prediction mode of the current block.
11. An image encoding method performed by an image encoding device, the image encoding method comprising: Determine the current block by partitioning the image; identifying neighboring blocks located around the current block; Identify whether the prediction mode of the neighboring block is MIP (matrix-based intra prediction) mode; Based on the prediction mode of the neighboring block being the MIP mode and the prediction mode of the current block being an intra prediction mode other than the MIP mode, generating a candidate mode list for the current block based on predetermined candidate modes; as well as The intra prediction mode of the current block is encoded based on the candidate mode list.
12. The image encoding method according to claim 11, wherein: The index of the predetermined candidate mode is 0.
13. A method for transmitting a bit stream, wherein the bit stream is generated by an image encoding method performed by an image encoding device, the image encoding method comprising: Determine the current block by partitioning the image; identifying neighboring blocks located around the current block; Identify whether the prediction mode of the neighboring block is MIP (matrix-based intra prediction) mode; Based on the prediction mode of the neighboring block being the MIP mode and the prediction mode of the current block being an intra prediction mode other than the MIP mode, generating a candidate mode list for the current block based on predetermined candidate modes; as well as The intra prediction mode of the current block is encoded based on the candidate mode list.
Citation Information
Patent Citations
Method and apparatus for encoding / decoding video signal
CN109417633A