Image encoding / decoding method and apparatus based on intra prediction mode conversion, and method of transmitting bitstream
By using matrix-based intra prediction modes to generate candidate mode lists in image encoding/decoding, the problem of increasing information volume in high-resolution and high-quality image encoding/decoding is solved, and more efficient encoding/decoding and bitstream processing is achieved.
Patent Information
- Application Number
- CN202510487656.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2019-06-13
- Filing Date
- 2020-06-15
- Publication Date
- 2025-08-15
AI Technical Summary
The prior art In the high resolution and high quality image encoding/decoding process, the increase in the amount of information leads to high transmission and storage costs and high prediction complexity.
A matrix-based intra prediction mode (MIP) is used to generate a list of candidate modes, and by replacing the intra prediction mode of neighboring blocks, the prediction complexity is reduced, and a predetermined prediction mode is applied during the image encoding/decoding process.
The encoding/decoding efficiency is improved, the prediction complexity is reduced, and the bitstream generated by the image encoding method can be effectively transmitted and stored.
Smart Images

Figure CN120499384A_ABST
Abstract
Description
[0001] This application is a divisional application of the patent application with application number 202080050962.1 (PCT / KR2020 / 007724) filed on January 13, 2022, with an international filing date of June 15, 2020, and the invention name being “Image encoding / decoding method and device based on intra-frame prediction mode conversion, and method for sending bit stream”. Technical Field
[0002] 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 bitstream generated by the image encoding method / apparatus of the present disclosure. Background Art
[0003] Recently, demand for high-resolution and high-quality images, such as high-definition (HD) and ultra-high-definition (UHD), is increasing across various fields. As the resolution and quality of image data improve, the amount of information or bits transmitted increases relative to existing image data. This increase in transmitted information or bits leads to increased transmission and storage costs.
[0004] 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
[0005] Technical issues
[0006] An object of the present disclosure is to provide an image encoding / decoding method and apparatus with improved encoding / decoding efficiency.
[0007] 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.
[0008] 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.
[0009] 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.
[0010] Another object of the present disclosure is to provide a recording medium storing a bit stream received and decoded by the image decoding apparatus according to the present disclosure and used to reconstruct an image.
[0011] The technical problems solved by the present disclosure are not limited to the above-mentioned technical problems, and other technical problems not described herein will become apparent to those skilled in the art from the following description.
[0012] Technical Solution
[0013] 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; generating a candidate mode list for the current block based on predetermined candidate modes based on the prediction mode of the neighboring blocks being the MIP mode; and determining a prediction mode for the current block based on the candidate mode list. The index of the predetermined candidate mode is designated as 0.
[0014] Based on the prediction mode of the current block being a 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 most frequently among the multiple MIP modes.
[0015] 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.
[0016] 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.
[0017] In addition, the image processing apparatus 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 determining the reference prediction mode as a planar mode based on the current block being a luma block to which the MIP mode is applied. The intra prediction mode of the chroma block may be determined as the reference prediction mode.
[0018] Meanwhile, based on the current block being 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.
[0019] In addition, an image decoding apparatus 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 the MIP mode, generate a candidate mode list for the current block based on a predetermined candidate mode, and determine a prediction mode for the current block based on the candidate mode list.
[0020] 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 for the current block based on predetermined candidate modes; 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.
[0021] In addition, a transmission method according to another aspect of the present disclosure may transmit a bit stream generated by the image encoding apparatus or the image encoding method of the present disclosure.
[0022] 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.
[0023] The features briefly summarized above with respect to the present disclosure are merely exemplary aspects of the following detailed description of the disclosure and do not limit the scope of the disclosure.
[0024] Beneficial effects
[0025] According to the present disclosure, an image encoding / decoding method and apparatus with improved encoding / decoding efficiency can be provided.
[0026] 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.
[0027] 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.
[0028] 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.
[0029] In addition, according to the present disclosure, a recording medium storing a bit stream received and decoded by the image decoding apparatus according to the present disclosure and used to reconstruct an image can be provided.
[0030] 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 based on the detailed description. BRIEF DESCRIPTION OF THE DRAWINGS
[0031] Figure 1 FIG. 1 is a diagram schematically illustrating a video coding system to which an embodiment of the present disclosure is applicable.
[0032] Figure 2 FIG2 is a diagram schematically showing an image encoding device to which an embodiment of the present disclosure is applicable.
[0033] Figure 3 FIG. 1 is a diagram schematically illustrating an image decoding device to which an embodiment of the present disclosure is applicable.
[0034] Figure 4 is a diagram illustrating a slice and tile structure according to an embodiment.
[0035] Figures 5 and 6 is a view illustrating a directional intra prediction mode according to an embodiment.
[0036] Figure 7 and Figure 8 is a reference view illustrating an MIP mode according to an embodiment.
[0037] Figure 9 is a view illustrating a mapping table for mapping a MIP mode to a normal intra prediction mode according to an embodiment.
[0038] Figures 10 to 12 is a view illustrating a syntax of a compilation unit according to an embodiment.
[0039] Figure 13 is a view illustrating a mapping table for mapping a normal intra prediction mode to a MIP mode according to an embodiment.
[0040] Figure 14 is a view illustrating an MPM list configured in a predetermined MIP intra prediction mode according to an embodiment.
[0041] Figure 15 is a flowchart illustrating a method of encoding an intra prediction mode using an MPM list according to an embodiment.
[0042] Figure 16 is a flowchart illustrating a method of performing decoding using an MPM list by a decoding apparatus according to an embodiment.
[0043] Figure 17 is a flowchart illustrating a method of generating an MPM list using a mapping method according to an embodiment.
[0044] Figure 18 is a flowchart illustrating a method of generating an MPM list using a mapping method according to another embodiment.
[0045] Figure 19 is a flowchart illustrating a method of generating an MPM list using a simplified mapping method according to an embodiment.
[0046] Figure 20 is a flowchart illustrating a method of generating an MPM list using a simplified mapping method by an encoding apparatus according to an embodiment.
[0047] Figure 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.
[0048] Figure 22 It is used as a graphic Figure 19 A simplified view of compiled performance data for mapping methods.
[0049] Figure 23 is a flowchart illustrating a method of generating an MPM list using a simplified mapping method according to another embodiment.
[0050] Figure 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.
[0051] Figure 25 is a flowchart illustrating another embodiment of generating an MPM list using a simplified mapping method by a decoding apparatus according to an embodiment.
[0052] Figure 26 It is used as a graphic Figure 23 A simplified view of compiled performance data for mapping methods.
[0053] Figure 27 is a flowchart illustrating a method of generating an MPM list using a mapping method according to another embodiment.
[0054] Figure 28 It is used as a graphic Figure 27 Flowchart of a method for generating a candidate pattern list using a simplified mapping method.
[0055] Figure 29 is a diagram illustrating compilation performance data using a simplified mapping method according to another embodiment.
[0056] Figure 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.
[0057] Figure 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.
[0058] Figure 32 is a diagram illustrating a content streaming system to which an embodiment of the present disclosure is applicable. DETAILED DESCRIPTION
[0059] 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.
[0060] 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, its detailed description will be omitted. In the drawings, parts not related to the description of the present disclosure are omitted, and like reference numerals are given to like parts.
[0061] In this 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 involving 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.
[0062] In this disclosure, the terms first, second, etc. are used only to distinguish one component from other components and do not limit the order or importance of the components unless otherwise specified. Accordingly, within the scope of this 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.
[0063] In this disclosure, components that are distinguished from each other are intended to clearly describe each feature and do not necessarily mean that the components must be separated. That is, multiple components can be integrated and implemented in a single hardware or software unit, or a single 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 this disclosure.
[0064] 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.
[0065] 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.
[0066] In this disclosure, a "picture" generally refers to a unit representing an image within a specific time period, while a slice / tile is a coding unit that constitutes a portion of a picture. A picture can be composed of one or more slices / tiles. In addition, a slice / tile can include one or more coding tree units (CTUs).
[0067] In the present disclosure, "pixel" or "picture element (pel)" may refer to the smallest 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 luma component or only a pixel / pixel value of a chroma component.
[0068] In this disclosure, a "unit" may refer to a basic unit of image processing. The unit may include at least one of a specific region of a picture and information related to the region. In some cases, the unit may be used interchangeably with terms such as "sample array," "block," or "region." 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.
[0069] In the present disclosure, "current block" may refer to 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 refer to "current prediction block" or "prediction target block". When transform (inverse transform) / quantization (dequantization) is performed, "current block" may refer to "current transform block" or "transform target block". When filtering is performed, "current block" may refer to "filtering target block".
[0070] In addition, 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 the chroma block such as "chroma block" or "current chroma block."
[0071] 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".
[0072] In the present disclosure, the term "or" should be interpreted to mean "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 mean "additionally or alternatively".
[0073] Video Compilation System Overview
[0074] Figure 1 is a diagram schematically illustrating a video coding system according to the present disclosure.
[0075] 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 stream.
[0076] The encoding device 10 according to an embodiment may include a video source generator 11, a coding unit 12, and a transmitter 13. The decoding device 20 according to an embodiment may include a receiver 21, a decoding unit 22, and a renderer 23. The coding unit 12 may be referred to as a video / image coding unit, and the decoding unit 22 may be referred to as 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.
[0077] The video source generator 11 can obtain video / images by capturing, synthesizing, or generating video / images. The video source generator 11 may include a video / image capture device and / or a video / image generation device. The video / image capture device may include, for example, one or more cameras, a video / image archive including previously captured videos / images, etc. The video / image generation device may include, for example, a computer, a tablet computer, and a smartphone, and may generate videos / images (electronically). For example, a virtual video / image may be generated by a computer, etc. In this case, the video / image capture process may be replaced by a process for generating relevant data.
[0078] 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 the encoded data (encoded video / image information) in the form of a bitstream.
[0079] Transmitter 13 can transmit the encoded video / image information or data output in the form of a bitstream to receiver 21 of decoding device 20 via a digital storage medium or network in the form of a file or stream. Digital storage media can include various storage media, such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. Transmitter 13 can include components for generating media files in a predetermined file format and can also include components for transmission via a broadcast / communication network. Receiver 21 can extract / receive the bitstream from the storage medium or network and transmit the bitstream to decoding unit 22.
[0080] The decoding unit 22 may decode a video / image by performing a series of processes corresponding to the operations of the coding unit 12 , such as dequantization, inverse transformation, and prediction.
[0081] The renderer 23 may render the decoded video / image. The rendered video / image may be displayed on a display.
[0082] Overview of Image Coding Device
[0083] Figure 2 FIG. 1 is a diagram schematically illustrating an image encoding device to which an embodiment of the present disclosure is applicable.
[0084] 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 further include a subtractor 115.
[0085] 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.
[0086] 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 largest coding unit (LCU) according to a quadtree, binary tree, or ternary tree (QT / BT / TT) structure. For example, a coding unit may be partitioned into multiple coding units of a greater depth based on a quadtree structure, a binary tree structure, and / or a ternary tree structure. For partitioning a coding unit, a quadtree structure may be applied first, followed by a binary tree structure and / or a ternary tree structure. The coding process according to the present disclosure may be performed based on a final coding unit that is no longer partitioned. The largest coding unit may be used as the final coding unit, or a coding unit of a greater depth obtained by partitioning the largest coding unit may be used as the final coding unit. Here, the coding process may include the prediction, transform, and reconstruction processes described later. As another example, the processing unit of the coding process may be a prediction unit (PU) or a transform 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 the transform coefficient.
[0087] 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.
[0088] The intra-frame prediction unit 185 can predict the current block by referring to samples in the current picture. Depending on the intra-frame prediction mode and / or intra-frame prediction technology, the reference samples can be located in the neighborhood of the current block or can be placed separately. The intra-frame 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 planar 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 merely an example, and more or fewer directional prediction modes may be used depending on the settings. The intra-frame prediction unit 185 may determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring blocks.
[0089] The inter-frame prediction unit 180 can derive a prediction block for the current block based on a reference block (reference sample array) specified by a motion vector in a reference picture. In this case, to reduce the amount of motion information transmitted in inter-frame prediction mode, motion information can be predicted in units of blocks, sub-blocks, or samples based on the correlation of motion information between neighboring blocks and the current block. Motion information can include a motion vector and a reference picture index. Motion information can also include information about the inter-frame prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter-frame prediction, neighboring blocks can include spatially neighboring blocks in the current picture and temporally neighboring blocks in the reference picture. The reference picture including the reference block and the reference picture including the temporally neighboring block can be the same or different. Temporally neighboring blocks can be referred to as collocated reference blocks, collocated CUs (colCUs), etc. A reference picture including temporally neighboring blocks can be referred to as collocated pictures (colPics). For example, the inter-frame prediction unit 180 can configure a motion information candidate list based on the neighboring blocks and generate information specifying which candidate to use to derive the motion vector and / or reference picture index for the current block. Inter-frame prediction can be performed based on various prediction modes. For example, in the case of skip mode and merge mode, the inter-frame prediction unit 180 can use the motion information of the neighboring block as the motion information of the current block. In the case of skip mode, unlike 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 a 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.
[0090] The prediction unit can generate a prediction signal based on various prediction methods and prediction techniques described below. For example, the prediction unit can apply not only intra prediction or inter prediction, but also both intra prediction and inter prediction simultaneously to predict the current block. A prediction method that simultaneously applies both intra prediction and inter prediction to predict the current block is referred to as combined inter and intra prediction (CIIP). Furthermore, the prediction unit can perform intra block copying (IBC) to predict the current block. Intra block copying can be used for content image / video coding, such as screen content coding (SCC), for gaming. IBC is a method that predicts the current picture using a previously reconstructed reference block in the current picture at a predetermined distance from the current block. When IBC is applied, the position of the reference block in the current picture can be encoded as a vector (block vector) corresponding to the predetermined distance. IBC essentially performs prediction within the current picture, but can be performed similarly to inter prediction because the reference block is derived within the current picture. That is, IBC can use at least one of the inter prediction techniques described in this disclosure. IBC essentially performs prediction within the current picture, but can 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.
[0091] The prediction signal generated by the prediction unit can be used to generate a reconstructed signal or 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.
[0092] 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 the 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 to blocks of variable size other than square.
[0093] 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 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.
[0094] The entropy encoder 190 can 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 can encode information required for video / image reconstruction (e.g., values of syntax elements, etc.) in addition to quantized transform coefficients, together or separately. The encoded information (e.g., encoded video / image information) can be transmitted or stored in the form of a bitstream in units of a network abstraction layer (NAL). The video / image information may also include information about various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, the video / image information may also include general constraint information. The signaled information, transmitted information, and / or syntax elements described in the present disclosure may be encoded through the above-mentioned encoding process and included in the bitstream.
[0095] The bitstream may be transmitted over a network or 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) for transmitting a signal output from the entropy encoder 190 and / or a storage unit (not shown) for storing the signal may be included as an internal / external element of the image encoding device 100. Alternatively, the transmitter may be provided as a component of the entropy encoder 190.
[0096] 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 transform to the quantized transform coefficients through the dequantizer 140 and the inverse transformer 150.
[0097] 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 the block to be processed has no residual, such as when skip mode is applied, the prediction block can be used as the 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 through filtering as described below.
[0098] 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 bitstream.
[0099] 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.
[0100] 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 was 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 spatially adjacent block or the motion information of the temporally adjacent block. The memory 170 may store the reconstructed samples of the reconstructed block in the current picture and may transmit the reconstructed samples to the intra-frame prediction unit 185.
[0101] Overview of Image Decoding Device
[0102] Figure 3 FIG. 1 is a diagram schematically illustrating an image decoding device to which an embodiment of the present disclosure is applicable.
[0103] like Figure 3As shown, the image decoding apparatus 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.
[0104] According to an embodiment, all or at least some of the 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.
[0105] The image decoding apparatus 200 having received a bit stream including video / image information may decode the image by performing the same operation as that performed by Figure 2 The image may be reconstructed by processing corresponding to the processing performed by the image encoding device 100. For example, the image decoding device 200 may perform decoding using the processing unit applied in the image encoding device. Therefore, the processing unit for 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).
[0106] The image decoding apparatus 200 may receive the image in the form of a bit stream from Figure 2The received signal can be decoded by the entropy decoder 210. For example, the entropy decoder 210 can parse the bitstream to derive information required for image reconstruction (or picture reconstruction) (e.g., video / image information). 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 signaled / received information and / or syntax elements described in the present disclosure can 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 the bin corresponding to each syntax element in the bitstream, use the decoding target syntax element information, the decoding information of the neighboring blocks 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 to generate the symbol corresponding to the value of each syntax element. In this case, after determining the context model, 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. 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 in 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 .
[0107] 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 the inter-frame prediction unit 160 or the intra-frame prediction unit 265.
[0108] The dequantizer 220 may dequantize the quantized transform coefficients and output the transform coefficients. The dequantizer 220 may rearrange the quantized transform coefficients in the form of two-dimensional blocks. In this case, the rearrangement may be performed based on the coefficient scanning order performed in the image encoding device. The dequantizer 220 may dequantize the quantized transform coefficients using quantization parameters (e.g., quantization step size information) and obtain the transform coefficients.
[0109] The inverse transformer 230 may inversely transform the transform coefficients to obtain a residual signal (residual block, residual sample array).
[0110] The prediction unit may perform prediction on the 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 to the current block based on the prediction information output from the entropy decoder 210, and may determine a specific intra / inter prediction mode (prediction technique).
[0111] 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.
[0112] 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.
[0113] The inter-frame prediction unit 260 can derive a prediction block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. In this case, to reduce the amount of motion information transmitted in inter-frame prediction mode, motion information can be predicted in units of blocks, sub-blocks, or samples based on the correlation of motion information between neighboring blocks and the current block. Motion information can include a motion vector and a reference picture index. Motion information can also include information on the inter-frame prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter-frame prediction, neighboring blocks can include spatial neighboring blocks in the current picture and temporal neighboring blocks in the reference picture. For example, the inter-frame prediction unit 260 can configure a motion information candidate list based on the neighboring blocks and derive the motion vector and / or reference picture index of the current block based on the received candidate selection information. Inter-frame prediction can be performed based on various prediction modes, and information about the prediction can include information indicating the inter-frame prediction mode of the current block.
[0114] 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 also applies to the adder 235. The adder 235 can be referred to as 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 through filtering as described below.
[0115] 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 image by applying various filtering methods to the reconstructed image, and store the modified reconstructed image 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.
[0116] The (modified) reconstructed picture stored in the DPB of the memory 250 can be used as a reference picture in the inter-frame prediction unit 260. The memory 250 can store the motion information of the block from which the motion information in the current picture was derived (or decoded) and / or the motion information of the reconstructed block in the picture. The stored motion information can be transmitted to the inter-frame prediction unit 260 to be used as the motion information of the spatially adjacent block or the motion information of the temporally adjacent block. The memory 250 can store the reconstructed samples of the reconstructed block in the current picture and transmit the reconstructed samples to the intra-frame prediction unit 265.
[0117] 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.
[0118] Partition structure
[0119] The image encoding / decoding method according to the present disclosure can 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 can be performed based on the CTU, CU (and / or TU or PU) derived based on the partition structure. The block partitioning process can be performed by the image partitioner 110 of the above-mentioned encoding device and the partition related information can 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 can 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.) can be performed for image decoding. The CU size and the TU size can be the same or multiple TUs can exist in the CU area. At the same time, the CU size can generally represent the luminance component (sample) CB size. The TU size can generally represent the luminance component (sample) TB size. The chroma component (sample) CB or TB size can be derived based on the luma component (sample) CB or TB size according to the component ratio of 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 the maxTbSize can be derived from the CU and transformation / inverse transformation can be performed in units of TUs (TBs). In addition, for example, when intra prediction is applied, the intra prediction mode / type can be derived in units of CUs (or CBs), and the neighboring reference sample derivation and prediction sample generation process can be performed in units of TUs (or TBs). 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.
[0120] 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 including CTUs in a specific row and column combination in a picture. A tile group may include an integer number of tiles according to a tile raster scan. A 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 the tiles or tile groups may be performed in parallel. Here, the tile group may have one of the tile group types including intra (I) tile group, predicted (P) tile group, and bi-predicted (B) tile group. For blocks in the I tile group, inter prediction may not be used and prediction may be performed using only intra prediction. Of course, even in this case, the original sample values may be encoded and signaled without prediction. For blocks in P-block 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-block groups, intra prediction or inter prediction can be used, and up to bi-prediction can be used when inter prediction is used.
[0121] 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 raster scan order, such as Figure 4 In rectangular slicing mode, a slice may be composed of tiles that exist in a picture in a rectangular shape. The tiles in a rectangular slice may be scanned within the slice according to a tile raster scan order.
[0122] In the encoding device, the tile / tile group, slice, and maximum and minimum coding unit sizes may be determined according to the characteristics of the 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 the bitstream.
[0123] In the decoder, information specifying that a slice, a tile / tile group, or a CTU in a tile of the current picture is partitioned into multiple coding units may be obtained. Efficiency may be improved if such information is obtained (sent) only under certain conditions.
[0124] A slice header or a tile group header (tile group header syntax) may include information / parameters that are commonly applicable to a slice or tile group. An APS (APS syntax) or a PPS (PPS syntax) may include information / parameters that are commonly applicable to one or more pictures. An SPS (SPS syntax) may include information / parameters that are commonly applicable to one or more sequences. A 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.
[0125] In addition, for example, information on the partitioning and construction of patches / patch 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.
[0126] 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 expressed as SINGLE_TREE. The case where the luminance and chrominance blocks in one CTU have separate block tree structures can be expressed as DUAL_TREE. In this case, the block tree type of the luminance component can be called DUAL_TREE_LUMA, and the block tree type of the chrominance component can be called DUAL_TREE_CHROMA. For P and B slices / tile groups, the luminance and chrominance CTBs in one CTU can be restricted to have the same coding tree structure. However, for I slices / tile 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 luma component or a coding block of two chroma 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.
[0127] Intra Prediction Overview
[0128] The following describes an intra prediction method according to an embodiment. Intra prediction may refer to a prediction that generates prediction samples for the current block based on reference samples 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, neighboring reference samples to be used for intra prediction of the current block may be derived. The neighboring reference samples of the current block may include samples adjacent to the left boundary of the current block (nWxnH size) and a total of 2xnH samples adjacent to the left bottom, samples adjacent to the top boundary of the current block and a total of 2xnW samples adjacent to the right top, and one 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. Additionally, the neighboring reference samples of the current block may include a total of nH samples adjacent to the right boundary of the current block (nWxnH size), a total of nW samples adjacent to the bottom boundary of the current block, and one sample adjacent to the right bottom of the current block. Furthermore, when ISP, which will be described later, is applied, the neighboring reference samples may be derived per subpartition.
[0129] On the other hand, some neighboring reference samples of the current block have not yet been decoded or may be unavailable. In this case, the decoding device can construct neighboring reference samples to be used for prediction by replacing unavailable samples with available samples. Alternatively, the neighboring reference samples to be used for prediction can be constructed by interpolation of available samples.
[0130] When neighboring reference samples are derived, (i) the prediction sample can be derived based on the average or interpolation of the neighboring reference samples of the current block, and (ii) the prediction sample can be derived based on a reference sample located in a specific (prediction) direction relative to the prediction sample from the neighboring reference samples of the current block. Case (i) is referred to as non-directional mode or non-angular mode, and case (ii) is referred to as directional mode or angular mode. Furthermore, the prediction sample can be generated by interpolation using a second neighboring sample and a first neighboring sample located in the opposite direction of the prediction direction of the intra prediction mode of the current block based on the prediction sample of the current block from the neighboring reference samples. This case is referred to as linear interpolation intra prediction (LIP). Furthermore, a linear model can be used to generate chroma prediction samples based on luma samples. This case is referred to as LM mode. Furthermore, the temporal prediction sample of the current block can be derived based on filtered neighboring reference samples, and the prediction sample of the current block can be derived by weighted summing the temporal prediction sample with at least one reference sample derived according to the intra prediction mode from the existing neighboring reference samples, i.e., an unfiltered neighboring reference sample. This case is referred to as position-dependent intra 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 prediction samples using reference samples located in the prediction direction in the corresponding line. In this case, intra-frame prediction encoding can be performed by indicating (signaling) the reference sample line to be used to the decoding device. This situation can be referred to as 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 adjacent reference samples can be derived and used on a sub-partition basis. That is, in this case, the intra-frame prediction mode of the current block is applied equally to the sub-partitions, and adjacent reference samples are derived and used on a sub-partition basis, thereby improving intra-frame prediction performance. Such a prediction method can be referred to as intra sub-partitioning (ISP) or ISP-based intra-frame prediction. In addition, when the prediction direction based on the prediction sample indicates the space between adjacent reference samples, that is, when the prediction direction indicates a 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 subsampled pixel set of the current block using reconstructed neighboring pixels located to the left and top of the current block, the generated prediction signal and neighboring sample values may be interpolated in the vertical and horizontal directions to generate a prediction signal having an original size, thereby applying matrix-weighted intra prediction (MIP) to perform intra prediction of the current block.
[0131] The intra prediction type may be referred to by 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. The 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.
[0132] At the same time, if necessary, post-filtering can be performed on the derived prediction samples. Specifically, the intra-frame prediction process may include an intra-frame prediction mode / type determination step, a neighboring reference sample deriving step, and a prediction sample deriving step based on the intra-frame prediction mode / type. In addition, if necessary, post-filtering can be performed on the derived prediction samples.
[0133] Hereinafter, a video / image encoding method based on intra-frame prediction will be described. First, the encoding device performs intra-frame prediction with respect 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 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 processes can be performed simultaneously or any one process can be performed before the other processes. At the same time, when performing the prediction sample filtering process described below, the intra-frame predictor 185 may also include a prediction sample filter. The encoding device can determine the mode / type applied to the current block among a plurality of intra-frame prediction modes / types. The encoding device can compare the rate-distortion (RD) costs of the intra-frame prediction modes / types and determine the optimal intra-frame prediction mode / type for the current block.
[0134] At the same time, the encoding device may perform a prediction sample filtering process. 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.
[0135] Next, the encoding apparatus may generate residual samples of the current block based on the predicted samples.The encoding apparatus may compare the original samples of the current block with the predicted samples in terms of phase and derive the residual samples.
[0136] Next, the encoding device may encode image information including information about intra-frame prediction (prediction information) and residual information about residual samples. The prediction information may include intra-frame prediction mode information and intra-frame prediction type information. The encoding device may output the encoded image information in the form of a bitstream. The output bitstream may be sent to the decoding device via a storage medium or a network.
[0137] 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.
[0138] 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 on 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 applied to the reconstructed picture.
[0139] Hereinafter, a video / image encoding method based on intra prediction will be described. The decoding apparatus may perform operations corresponding to those performed by the encoding apparatus.
[0140] First, the decoding device may derive the intra prediction mode / type for the current block based on the received prediction information (intra prediction mode / type information). The decoding device may also derive neighboring reference samples for the current block. The decoding device may generate prediction samples for 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. 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.
[0141] The decoding device may generate residual samples for the current block based on the received residual information. The decoding device may generate reconstructed samples for 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.
[0142] 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 further 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 further 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.
[0143] 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.
[0144] Intra prediction mode
[0145] 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, while the directional intra prediction modes may include the second intra prediction mode to the 66th intra prediction mode.
[0146] Meanwhile, in addition to the above-mentioned intra prediction modes, intra prediction modes may also include a cross-component linear model (CCLM) mode for chroma samples. The CCLM mode may be divided into L_CCLM, T_CCLM, and LT_CCLM depending on whether the left sample, the top 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.
[0147] [Table 1]
[0148] 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
[0149] Figure 6 FIG shows the intra prediction direction according to another embodiment. Here, the dotted 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, while 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 can be represented by INTRA_PLANAR, and the DC prediction mode can be represented by INTRA_DC. In addition, the directional intra prediction mode can be represented by INTRA_ANGULAR-14 to INTRA_ANGULAR-1 and INTRA_ANGULAR2 to INTRA_ANGULAR80.
[0150] At the same time, 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 split 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.
[0151] The coding method described in the present disclosure can be used to encode / decode the intra-frame prediction mode information and / or the intra-frame prediction type information. For example, the intra-frame prediction mode information and / or the intra-frame prediction type information can be encoded / decoded based on a truncated (Rice) binary code by entropy coding (e.g., CABAC, CAVLC).
[0152] When intra prediction is performed on the current block, the 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.
[0153] For example, the intra prediction mode for the chroma block can be specified based on the intra chroma prediction mode information, and the intra chroma prediction mode information can be signaled in the form of the intra_chroma_pred_mode syntax element. For example, the intra chroma prediction mode information can indicate one of planar mode, DC mode, vertical mode, horizontal mode, derived mode (DM), and CCLM. Here, planar mode can indicate intra prediction mode #0, DC mode can indicate intra prediction mode #1, vertical mode can indicate intra prediction mode #26, and horizontal mode can indicate intra prediction mode #10. DM can also be referred to as direct mode. CCLM can be referred to as LM.
[0154] Meanwhile, DM and CCLM are subordinate intra prediction modes for predicting chroma blocks using information about luma blocks. DM may indicate a mode in which the same intra prediction mode as the luma component is applied to the intra prediction mode for the chroma components. Additionally, CCLM may indicate an intra prediction mode in which samples derived by subsampling 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 are used as prediction samples for the chroma blocks.
[0155] Summary of Matrix-Based Intra Prediction
[0156] The matrix-based intra prediction (MIP) mode may also be referred to as the affine linear weighted intra prediction (ALWIP) mode, the linear weighted intra prediction (LWIP) mode, or the 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 the MIP mode.
[0157] 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 to derive prediction samples of the current block.
[0158] 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, while when Figure 7 As shown in (b), when the width and height of the current block are not 4 in pixel units, 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.
[0159] 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 the 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.
[0160] The horizontal / vertical interpolation step is a step of generating the prediction signal of the original block size from the subsampled prediction signal. Figure 8As shown, a prediction signal of the original block size can be generated by performing vertical and horizontal interpolation using the subsampled 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, as 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 shown in Figure 8 As shown in (a), 16 sample values can be generated at even coordinate positions. Figure 8 As shown in (b) of FIG, 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.
[0161] The intra-frame prediction mode for the MIP mode can be configured differently from the intra-frame prediction mode for the above-mentioned LIP, PDPC, MRL and ISP intra-frame prediction or normal intra-frame prediction. The intra-frame prediction mode for the MIP mode can be referred to as the MIP intra-frame prediction mode, the MIP prediction mode or the MIP mode. For example, the matrix and offset for the matrix-vector multiplication can be set differently according to the intra-frame prediction mode for the MIP. Here, the matrix can be referred to as the (MIP) weight matrix, and the offset can be referred to as the (MIP) offset vector or the (MIP) bias vector.
[0162] The 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 in the MPM list, and residual intra prediction mode information (e.g., intra_mip_mpm_remainder) that is used to directly specify the MIP mode when the MIP mode of the current block is not used in the MPM list.
[0163] 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 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.
[0164] For example, when the height and width of the current block are 4, it 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 can be referred to as block size type 1, and the other cases can be referred to as block size type 2. The number of intra-frame prediction modes used for MIP can be summarized as shown in the following table. However, this is an example, and the block size type and the number of available intra-frame prediction modes can be changed.
[0165] [Table 2]
[0166] 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
[0167] 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 derived implicitly 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.
[0168] Here, pred_mode_flag can specify the prediction mode of the current CU. For example, a value of 0 for pred_mode_flag can specify that the current CU is encoded in inter-frame prediction mode. A value of 1 for pred_mode_flag can specify that the current CU is encoded in intra-frame prediction mode.
[0169] pcm_flag[x0][y0] can specify whether the pulse coded modulation (PCM) mode is applied to the current block. When 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 / transform / quantization. For example, for the luma CU corresponding to the (x0, y0) position, pcm_flag[x0][y0] can specify whether the pcm_sample syntax is present and whether the transform_tree() syntax is not present. For example, a value of 1 for pcm_flag[x0][y0] can specify that the pcm_sample() syntax is present but the transform_tree() syntax is not present. A value of 0 for pcm_flag[x0][y0] can specify that the pcm_sample() syntax is present and the transform_tree() syntax is present.
[0170] 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.
[0171] 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, which are information specifying the MIP mode of the current block, may be further obtained from the bitstream. When a 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 for 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.
[0172] 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] that specifies whether to generate an MPM list for normal intra prediction may be obtained from the bitstream.
[0173] When an intra prediction mode is applied to a current block, an MPM list for it may be configured, and intra_luma_mpm_flag may specify that an intra prediction mode for the current block exists 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.
[0174] intra_luma_not_planar_flag can specify whether the intra prediction mode of the current block is planar mode. For example, the first value of intra_luma_not_planar_flag (e.g., 0) can specify that the intra prediction mode of the current block is planar mode. The second value of intra_luma_not_planar_flag (e.g., 1) can specify that the intra prediction mode of the current block is not planar mode.
[0175] 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 described 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 to be used in the intra prediction mode of the current block among the candidates included in the MPM list from which planar mode is excluded.
[0176] 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.
[0177] MPM List
[0178] 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 of 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).
[0179] 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-frame 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-frame prediction mode information may specify one of the remaining intra-frame prediction modes that is not included in the mpm list of all intra-frame prediction modes and be indexed in the order of the prediction mode number. The intra-frame prediction mode may be an intra-frame prediction mode for the luma component (sample). Hereinafter, the intra-frame 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-frame 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.
[0180] 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.
[0181] In an embodiment, in order to keep 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).
[0182] 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 use the prediction mode of a neighboring block to encode the prediction mode of the current block.
[0183] For example, when encoding a neighboring block in intra-frame prediction mode, the encoding device may confirm or derive the prediction mode of the neighboring block. For example, the encoding device may determine the prediction mode of the current block based on the prediction mode of the left neighboring block and the prediction mode of the top neighboring block. 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 can be expressed as enumerating MPM candidates or configuring an MPM list.
[0184] In an embodiment, the left neighboring block may specify the topmost block of neighboring blocks adjacent to the left boundary of the current block. In addition, the top neighboring block may specify the leftmost block of neighboring blocks 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.
[0185] 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 MPMs, 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 intra-frame plane mode, intra-frame DC mode and / or intra-frame vertical mode (intra-frame prediction mode #50).
[0186] 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.
[0187] 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.
[0188] Case 2: When the conditions of Case 1 are 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.
[0189] 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.
[0190] 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 The prediction mode is shown with a directionality indicating a block located at the bottom of the current block.
[0191] If the prediction mode of the left neighboring block is less than 2, the first MPM can be set to the intra planar mode, the second MPM can be set to the intra DC mode, and the third MPM can be set to the intra vertical mode (intra prediction mode #50).
[0192] Meanwhile, if the prediction mode of the left neighboring block is not less than 2, the first MPM may be set to the prediction mode of the left neighboring block, the second MPM may be set to (the prediction mode of the left neighboring block - 1), and the third MPM may be set to (the prediction mode of the left neighboring block + 1).
[0193] 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.
[0194] 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.
[0195] Case 2: When the conditions of Case 1 are not met, the MPM list may 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).
[0196] At the same time, an additional pruning process can be performed to remove repeated patterns so that only unique patterns are included. In addition, for entropy coding of the 64 non-MPM patterns other than the three MPMs, a 6-bit fixed-length code can be used. That is, the index indicating the 64 non-MPM patterns can be entropy coded into a 6-bit fixed-length code (6-bit FLC).
[0197] In addition, the encoding apparatus may determine whether the optimal intra prediction mode to be applied to the current block belongs to the MPM candidates configured above.
[0198] 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, whether the intra prediction mode of the current block belongs to an MPM). In addition, the MPM index may specify which MPM mode among the MPM candidates is applied as the intra prediction mode of the current block.
[0199] 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.
[0200] Meanwhile, in an embodiment, the encoding apparatus and the decoding apparatus 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.
[0201] Default 6MPM list = {A, Planar (0) or DC (1), Vertical (50), HOR (18), VER-4 (46), VER+4 (54)}
[0202] In addition, by performing a pruning process on the intra modes of two neighboring blocks, the default 6-MPM list can be updated to generate a 6-MPM list. For example, when the intra prediction modes of the two neighboring blocks are the same and the values of the intra prediction modes of the two neighboring blocks are greater than the value 1 of the intra DC mode, the 6-MPM list can include the intra prediction mode of the left neighboring block as the default mode, the intra planar mode, and the intra DC mode, and also include three derived modes derived by adding a predetermined offset value to the intra prediction mode of the neighboring block and performing a modulo operation with respect to the total number of intra prediction modes.
[0203] Meanwhile, when the intra prediction modes of neighboring blocks are different from each other, a 6-MPM list can be configured by including the intra prediction modes of the two neighboring blocks as the first two MPM modes. The remaining four MPM modes can be derived from the default mode and the intra prediction modes of the neighboring blocks.
[0204] 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 coded 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, mapping can be performed based on the block size type of the current block. For example, Figure 9 The illustrated mapping table according to the embodiment is used for mapping.
[0205] exist Figure 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 under 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 the other case may be referred to as block size type 2.
[0206] Here, the normal intra prediction mode is an intra prediction mode other than the MIP mode and may refer to 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.
[0207] 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.
[0208] The MPM list may be determined based on the intra-frame prediction mode of the neighboring blocks of the current block. For example, the MPM list may be determined based on the intra-frame prediction mode of the left neighboring block and the top neighboring block of the current block. For example, the encoding device and 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.
[0209] Here, the top neighboring block may be the rightmost block among the blocks adjacent to the top of the current block. The left neighboring block may be the bottommost block 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).
[0210] When the left neighboring block is not available, when the prediction mode of the left neighboring block is not an intra prediction mode, or when the prediction mode of the left neighboring block is a MIP mode, the encoding device and the decoding device may determine the value of the first intra prediction candidate as a value specifying an intra plane mode (e.g., 0). When the left neighboring block does not meet such conditions, 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.
[0211] In addition, when the top neighboring block is not available, when the mode of the top neighboring block is not an intra prediction mode, or when the prediction mode of the top neighboring block is a MIP mode, the encoding device and the decoding device may determine the value of the second intra prediction candidate as a value specifying an intra planar mode (e.g., 0). When the top neighboring block does not meet such conditions, 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.
[0212] 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.
[0213] 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.
[0214] candModeList[0]=candIntraPredModeA
[0215] candModeList[1]=2+((candIntraPredModeA+61)%64)
[0216] candModeList[2]=2+((candIntraPredModeA-1)%64)
[0217] candModeList[3]=2+((candIntraPredModeA+60)%64)
[0218] candModeList[4]=2+(candIntraPredModeA%64)
[0219] 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.
[0220] First, minAB and maxAB can be calculated as follows.
[0221] minAB=Min(candIntraPredModeA,candIntraPredModeB)
[0222] maxAB=Max(candIntraPredModeA,candIntraPredModeB)
[0223] 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.
[0224] candModeList[0]=candIntraPredModeA
[0225] candModeList[1]=candIntraPredModeB
[0226] In this case, when the value of maxAB-minAB is 1, candModeList[2] to candModeList[4] can be configured as follows.
[0227] candModeList[2]=2+((minAB+61)%64)
[0228] candModeList[3]=2+((maxAB-1)%64)
[0229] candModeList[4]=2+((minAB+60)%64)
[0230] Meanwhile, when the value of maxAB-minAB is equal to or greater than 62, candModeList[2] to candModeList[4] may be configured as follows.
[0231] candModeList[2]=2+((minAB-1)%64)
[0232] candModeList[3]=2+((maxAB+61)%64)
[0233] candModeList[4]=2+(minAB%64)
[0234] Meanwhile, when the value of maxAB-minAB is 2, candModeList[2] to candModeList[4] may be configured as follows.
[0235] candModeList[2]=2+((minAB-1)%64)
[0236] candModeList[3]=2+((minAB+61)%64)
[0237] candModeList[4]=2+((maxAB-1)%64)
[0238] Meanwhile, when the value of maxAB-minAB does not satisfy the above conditions, candModeList[2] to candModeList[4] can be configured as follows.
[0239] candModeList[2]=2+((minAB+61)%64)
[0240] candModeList[3]=2+((minAB-1)%64)
[0241] candModeList[4]=2+((maxAB+61)%64)
[0242] 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.
[0243] candModeList[0]=maxAB
[0244] candModeList[1]=2+((maxAB+61)%64)
[0245] candModeList[2]=2+((maxAB-1)%64)
[0246] candModeList[3]=2+((maxAB+60)%64)
[0247] candModeList[4]=2+(maxAB%64)
[0248] Case 3: When the conditions of Case 2 are not met, the MPM list candModeList[x] can be configured as follows.
[0249] candModeList[0]=INTRA_DC
[0250] candModeList[1]=INTRA_ANGULAR50
[0251] candModeList[2]=INTRA_ANGULAR18
[0252] candModeList[3]=INTRA_ANGULAR46
[0253] candModeList[4]=INTRA_ANGULAR54
[0254] MPM list configuration in matrix-based intra prediction mode
[0255] When a MIP is applied to the current block, the MPM list of the current block to which the MIP is applied can be configured separately. The MPM list can be referred to by 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 can also be referred to as MPM list.
[0256] 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 topmost block among the neighboring blocks adjacent to the left boundary of the current block. Additionally, the top neighboring block may indicate the leftmost block 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 bottommost block among the neighboring blocks adjacent to the left boundary of the current block. Additionally, the top neighboring block may be the rightmost block among the neighboring blocks adjacent to the top boundary of the current block.
[0257] When MIP is applied to the left neighboring block, the first candidate intra prediction mode can be set to be the same as the MIP intra prediction mode of the left neighboring block. Here, the first candidate intra prediction mode can be expressed as candMipModeA. In addition, for example, when MIP is applied to the top neighboring block, the second candidate intra prediction mode can be set to be the same as the MIP intra prediction mode of the top neighboring block. Here, the second candidate intra prediction mode can be expressed as candMipModeB.
[0258] At the same time, the candidate intra-frame prediction mode can be determined by comparing the sizes of the current block and the neighboring blocks. 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-frame prediction mode (e.g., candMipModeA) can be set to be the same as the MIP intra-frame 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-frame prediction mode (e.g., candMipModeB) can be set to be the same as the MIP intra-frame prediction mode of the top neighboring block.
[0259] 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 to which MIP is not applied (e.g., the left neighboring block or the top neighboring block) 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 being applied to the neighboring block to which MIP is not applied. For example, when MIP is not applied to the 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.
[0260] 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, Figure 13 A mapping table according to an embodiment is shown.
[0261] Figure 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. Figure 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 size of 4x4 pixels. Block size type 1 can indicate the case where the block has a size of 4x8, 8x4 or 8x8 pixels. Block size type 2 can indicate the case where the block size is larger than 8x8 pixels.
[0262] In an embodiment, a neighboring block (e.g., a left neighboring block / top neighboring block) may be unavailable because it is located outside the current picture or outside the current patch / slice, or even if MIP is applied, a MIP intra prediction mode that is not available for the current block may be applied depending on 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. Figure 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 Figure 14 The example generates a MIPMPM list based on the size of the current block.
[0263] 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.
[0264] The order of intra prediction candidates in the MIP list can be changed. For example, the MIP intra prediction mode of the top neighboring block can 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 can be included as the second candidate in the MIP MPM list (e.g., candMipModeList[1]).
[0265] As the third candidate intra prediction mode, we can use Figure 14 For example, you can Figure 14 The third candidate intra prediction mode is used as the second candidate of the MIP MPM list (e.g., candMipModeList[2]).
[0266] In another embodiment, the third candidate intra prediction mode may be determined to be different from the one that can be predicted based on Figure 14 The order of the MIP intra prediction modes shown is used to determine 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 Figure 14 When the first candidate intra prediction mode is Figure 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 Figure 15 When the second candidate intra prediction mode is Figure 14 The second candidate intra prediction mode is used as the third candidate of the MIP MPM list (e.g., candMipModeList[2]). Otherwise, Figure 13 The third candidate intra prediction mode is used as the third candidate of the MIP MPM list (e.g., candMipModeList[2]).
[0267] 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. Figure 15 The predetermined MIP intra prediction mode is shown in .
[0268] As described above, the MIP intra prediction mode of the current block can be derived based on the MIP MPM list. In this case, as described above, the MPM flag that can be included in the intra prediction mode information of the MIP can be referred to as intra_mip_mpm_flag, the MPM index can be referred to as intra_mip_mpm_idx, and the remaining intra prediction mode information can be referred to as intra_mip_mpm_remainder.
[0269] Using the MPM list to determine the intra prediction mode
[0270] The intra prediction mode signaling process of the encoding apparatus and the intra prediction mode determining process of the decoding apparatus may be performed, for example, as follows.
[0271] Figure 15 is a flowchart illustrating a method for 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).
[0272] 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 for 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 separately receiving the mpm flag.
[0273] 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 the intra plane mode by encoding information (e.g., intra_luma_not_planar_flag) specifying whether the intra prediction mode of the current block is the intra plane mode. When the intra prediction mode of the current block is the 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 the intra plane mode, the encoding device may set the value of intra_luma_not_planar_flag to a second value (e.g., 1).
[0274] Meanwhile, when the intra prediction mode of the current block is not intra planar mode, the encoding device may determine and signal the intra prediction mode based on whether block-based delta 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 based on 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 horizontal or vertical. In addition, in this case, the encoding device may signal the intra prediction mode of the current block by encoding and signaling information specifying whether BDPCM is applied to the current block (intra_bdpcm_flag) and information specifying the BDPCM application direction (intra_bdpcm_dir_flag). In this case, signaling of the mpm flag may be skipped.
[0275] Meanwhile, when the prediction mode of the current block is not an intra-frame planar 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 the 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.
[0276] Meanwhile, generally, when the intra prediction mode of the current block is one of the MPM candidates in the MPM list, the encoding apparatus 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 can 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], 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[] is determined as intra_luma_mpm_remainder.
[0277] Meanwhile, when the intra prediction mode of the current block is a MIP mode, the encoding apparatus 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.
[0278] Figure 16 2 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.
[0279] refer to Figure 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, mpm index, or remaining intra prediction modes as described above.
[0280] 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-frame prediction modes of neighboring blocks and also include a specific intra-frame prediction mode according to a predetermined method.
[0281] 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. Meanwhile, 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.
[0282] Meanwhile, when the intra prediction mode of the current block is not intra planar mode, the decoding apparatus may determine the intra prediction mode based on whether block-based delta 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 specifying whether BDPCM is applied to the current block specifies application of BDPCM, the decoding apparatus may determine at least one of the horizontal and vertical BDPCM application directions based on the information (intra_bdpcm_dir_flag) specifying the application direction of BDPCM obtained from the bitstream. Furthermore, the intra prediction mode may be determined as either horizontal or vertical in the same direction as the determined BDPCM application direction.
[0283] At the same time, when the prediction mode of the current block is not intra-frame planar mode and BDPCM is not applied, the decoding device can use the above method to generate an MPM list to determine the intra-frame prediction mode. For example, the MPM list can be determined based on the intra-frame prediction mode of the neighboring blocks of the current block. The decoding device can determine the MPM list based on the intra-frame prediction mode of the top neighboring block and the left neighboring block of the current block. For example, in an embodiment, the decoding device can 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.
[0284] 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 from 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 based on 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.
[0285] As another example, when the value of the mpm flag is 0, the decoding apparatus may derive the 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).
[0286] 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) that specifies 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 size of the intra prediction mode value, and while performing 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[].
[0287] 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.
[0288] Meanwhile, when the intra prediction mode of the current block is a MIP mode, the decoding apparatus 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 through intra_mip_mpm_idx, and the remaining intra prediction mode information may be obtained through intra_mip_mpm_remainder.
[0289] Matrix-based mapping between intra prediction modes and normal intra prediction modes
[0290] As described above, to determine the MIP mode or intra prediction mode of the current block, an MPM list for normal intra prediction mode or an MPM list for MIP can be generated based on information about neighboring blocks. In this case, the neighboring blocks may include the left neighboring block and the top neighboring block of the current block. Here, the normal intra prediction mode refers to an intra prediction mode other than the MIP mode. For example, the normal intra prediction mode may refer to the intra planar mode and the intra DC mode, which are non-directional intra prediction modes, as well as the directional intra prediction mode.
[0291] When the MIP mode is applied to the current block but an intra prediction mode other than the MIP mode (normal intra prediction mode) is applied to the neighboring block, it is necessary to map the intra prediction mode of the neighboring block 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, it is necessary to map the MIP mode of the neighboring block to the normal intra prediction mode to generate the MPM list of the current block using the prediction information of the neighboring block.
[0292] 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.
[0293] [Table 3]
[0294] Luma block size Number of MIP modes 4x4 luminance block 35 MIP modes 4x8, 8x4, 8x8 luminance blocks 19 MIP modes Other luminance blocks 11 MIP modes
[0295] Since the number of normal intra prediction modes and the number of MIP modes are different, in order to interpolate and map them, they can be obtained by Figure 9 and Figure 13The mapping table shown in FIG. 1 is used to perform mapping between MIP mode and normal intra prediction mode. For example, when generating the MPM list of the current block encoded in normal intra mode with reference to the neighboring blocks, if the intra prediction mode of the neighboring blocks is MIP mode, then in order to map the MIP mode of the neighboring blocks to the intra prediction mode, the following table should be used: Figure 17 More specifically, during encoding and decoding, the encoding apparatus and the decoding apparatus 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 apparatus and the decoding apparatus may check whether the neighboring block is a 4x4 luminance block (S1730). When the neighboring block is a 4x4 luminance block, the encoding apparatus and the decoding apparatus may determine whether the neighboring block is a 4x4 luminance block according to the MIP mode. Figure 9 The encoding apparatus and the decoding apparatus may determine a normal intra prediction mode corresponding to the MIP mode of the neighboring block by mapping 35 MIP modes to 67 intra modes (S1740). When the neighboring block is not a 4x4 luminance block, the encoding apparatus and the decoding apparatus 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 apparatus and the decoding apparatus may determine a normal intra prediction mode corresponding to the MIP mode of the neighboring block (S1740). Figure 9 The encoding apparatus and the decoding apparatus may determine a normal intra prediction mode corresponding to the MIP mode of the neighboring block by mapping 19 MIP modes to 67 intra modes (S1760). Alternatively, when the neighboring block is not a 4x8, 8x4 or 8x8 luminance block, the encoding apparatus and the decoding apparatus may determine a normal intra prediction mode corresponding to the MIP mode of the neighboring block by mapping 19 MIP modes to 67 intra modes. Figure 9 The encoding apparatus and the decoding apparatus may generate an MPM list for the current block using the determined normal intra prediction mode according to the above method (S1780).
[0296] In a similar manner, when referring to a neighboring block to generate an MPM list for a current block encoded in MIP mode, if the intra prediction mode of the neighboring block is normal intra prediction mode, then Figure 18 Steps S1810 to S1880 are performed as shown to map the intra prediction mode of the neighboring blocks to the MIP mode.
[0297] More specifically, during the encoding and decoding process, the encoding apparatus and the decoding apparatus 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 apparatus and the decoding apparatus 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 apparatus and the decoding apparatus may determine whether the neighboring block is a 4×4 luminance block according to the value of the 4×4 luminance block. Figure 13 The encoding apparatus and the decoding apparatus 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 apparatus and the decoding apparatus 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 apparatus and the decoding apparatus 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). Figure 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). Figure 13 The encoding apparatus and the decoding apparatus may generate an MPM list for the current block in the determined MIP mode according to the method of mapping the 67 normal intra prediction modes to 11 intra modes (S1870).
[0298] 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.
[0299] Matrix-based mapping of intra prediction modes to normal intra prediction modes
[0300] Hereinafter, a mapping method for reducing the complexity of a mapping algorithm and saving 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 an embodiment will be described.
[0301] When the MIP mode is mapped to the normal intra prediction mode, the encoding apparatus and the decoding apparatus according to an embodiment may determine the MIP mode as a predetermined intra prediction mode without using a block size and a mapping table.
[0302] For example, when the MIP mode is converted into the intra prediction mode, the encoding apparatus and the decoding apparatus according to an embodiment may map all MIP modes to the intra planar 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 MIP modes to the intra DC 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 vertical mode.
[0305] 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.
[0306] 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 derived as the intra-frame plane mode, thereby generating the current block MPM list.
[0307] At the same time, in the case where the current block (or coding unit) includes a luminance block and a chrominance block, when configuring the intra-frame 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-frame prediction mode specified by the DM (direct mode, using the luminance block intra-frame prediction mode corresponding to the chrominance block) of the chrominance block can be derived as the intra-frame plane mode.
[0308] 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 an MPM list based on the corresponding normal intra prediction mode when generating an MPM list when encoding or decoding the current block in the normal intra mode. Figure 19 Simplified reference as shown Figure 17 Describes the steps for generating the MPM list. Figure 19 , in reference Figure 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 can be any one of intra planar mode, intra DC mode, intra vertical mode, and intra horizontal mode.
[0309] Similarly, even if the above-mentioned intra prediction mode of the chroma block is determined, when the luminance block corresponding to the chroma block is in 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 size.
[0310] Below, we will refer to Figure 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 perform the following encoding method by the at least one processor.
[0311] According to an embodiment, the encoding device can 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 can 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 can 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 can 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 the first candidate intra-frame prediction mode (e.g., candIntraPredModeA) based on the intra-frame prediction mode of the left neighboring block and determine the second candidate intra-frame prediction mode (e.g., candIntraPredModeB) based on the intra-frame prediction mode of the top neighboring block.
[0312] 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 the intra-frame plane mode, the intra-frame DC mode, the intra-frame horizontal mode, and the 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 the intra-frame plane mode, the intra-frame DC mode, the intra-frame horizontal mode, and the 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 the intra-frame plane mode, the intra-frame DC mode, the intra-frame horizontal mode, and the intra-frame vertical mode.
[0313] 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 the 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 and a vertical mode.
[0314] Next, the encoding device may encode an intra-frame prediction mode indicator indicating the intra-frame prediction mode of the current block based on the candidate intra-frame prediction mode list (S2040). Here, the intra-frame 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-frame 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-frame prediction mode indicator and transmit it to the decoding device.
[0315] Below, we will refer to Figure 21 An image decoding method performed by a decoding apparatus according to an embodiment is described. The decoding apparatus according to an embodiment may include a memory and at least one processor and perform the following decoding method by the at least one processor.
[0316] First, the decoding apparatus according to an embodiment may identify a prediction mode of the current block (S2110). When the prediction mode of the current block is an intra prediction mode, the decoding apparatus may determine a candidate intra prediction mode for the current block based on the prediction modes of neighboring blocks located around the current block (S2120).
[0317] When the prediction mode of the neighboring block is 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 intra planar mode, intra DC mode, intra horizontal mode, and intra vertical mode.
[0318] The decoding apparatus 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 apparatus may obtain the MIP mode indicator from the bitstream.
[0319] The candidate intra prediction modes 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.
[0320] 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.
[0321] For example, when the intra prediction mode of the left neighboring block is the MIP mode, the decoding apparatus may determine the first candidate intra prediction mode (e.g., candIntraPredModeA) as any one of the intra planar mode, intra DC mode, intra horizontal mode, and intra vertical mode. Alternatively, when the intra prediction mode of the top neighboring block is the MIP mode, the decoding apparatus may determine the second candidate intra prediction mode (e.g., candIntraPredModeB) as any one of the intra planar mode, intra DC mode, intra horizontal mode, and intra vertical mode.
[0322] 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 and a vertical mode.
[0323] In addition, when the first candidate intra-frame prediction mode and the second candidate intra-frame prediction mode are the same and the first candidate intra-frame prediction mode is an intra-frame prediction mode having a value greater than the prediction mode value of the specified DC mode, the decoding device can generate a candidate intra-frame prediction mode list including the value of the first candidate intra-frame prediction mode.
[0324] 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.
[0325] In addition, the decoding apparatus may determine an intra prediction mode for the current block based on the candidate intra prediction mode list (S2140). The decoding apparatus may determine any one of the candidate intra prediction modes included in the candidate intra prediction mode list as the intra prediction mode for 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.
[0326] In addition, the encoding device according to the embodiment can encode the intra-frame prediction mode of the chroma block according to the mapping of the above-mentioned MIP mode. The encoding device according to the embodiment can use the DM mode to signal the intra-frame prediction mode of the chroma block. In this case, the encoding device can determine the intra-frame prediction mode applied according to the DM mode as the intra-frame prediction mode specified by the reference mode. Here, the reference mode can be determined based on the prediction mode of the luminance block corresponding to the chroma block, and the reference mode can be identified by the parameters of lumaIntraPredMode or IntraPredModeY.
[0327] 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.
[0328] In this case, when the luminance block is a luminance block to which the MIP mode is applied, the encoding device may determine the reference mode to be the planar mode instead of the MIP mode. Therefore, the encoding device may determine the intra prediction mode of the chrominance block that has been determined to be the DM mode to be the intra planar mode.
[0329] Alternatively, when the MIP mode is not applied to the luma block, the encoding device may determine the reference mode based on 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 to be the intra-frame DC mode. Here, the predetermined mode may include the IBC mode or other modes. Therefore, the encoding device may determine the intra-frame DC mode as the reference mode for the chroma block that has been determined to be the DM mode.
[0330] 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 planar mode as the optimal 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.
[0331] In addition, consistent with the encoding method, the decoding device according to the embodiment can determine the intra-frame prediction mode of the chroma block based on 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 chroma block based on the prediction mode of the luminance block corresponding to the chroma block. Here, the reference mode can be identified by the parameters of lumaIntraPredMode or IntraPredModeY.
[0332] 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.
[0333] Alternatively, when the MIP mode is not applied to the luma block, the decoding device may determine the reference mode based on 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 to be the intra DC mode. Therefore, the decoding device may determine the intra prediction mode of the chroma block that has been determined to be the DM mode to be the intra DC mode.
[0334] Alternatively, when the MIP mode is not applied to the luma block and the luma block is not predicted in the IBC mode or other predetermined mode, the decoding apparatus may determine the reference mode as the intra prediction mode of the luma block. Therefore, the decoding apparatus may determine the intra prediction mode of the chroma block that has been determined as the DM mode as the intra prediction mode of the luma block.
[0335] In addition, the decoding apparatus 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 apparatus may determine the intra prediction mode of the chroma block to be the intra prediction mode corresponding to the reference mode.
[0336] Therefore, even when the prediction mode of the luminance block or adjacent block referenced when encoding or decoding the current block in normal intra mode is the MIP mode, the encoding and decoding devices do not need to compare the sizes of the current block or adjacent blocks, thereby reducing computational complexity. In addition, since mapping using a mapping table is not required, memory space efficiency can be improved.
[0337] Figure 22 The experimental data are shown using Figure 17 The mapping table method shown is compared to the one when the MIP mode of the neighboring block is converted into the intra prediction mode according to Figure 19 The mapping method maps all MIP modes to the intra-plane modes to generate the coding rate of the MPM list of the current block. Figure 22As shown, it can be seen that there is no difference in the encoding rate. That is, by applying the above method, it is possible to reduce the algorithm complexity and the use of memory for the mapping table while minimizing the encoding loss.
[0338] Mapping of normal intra prediction mode to MIP intra prediction mode
[0339] Hereinafter, a mapping method according to another embodiment will be described for reducing the complexity of a mapping algorithm and saving memory for storing a mapping table by removing the correlation between a block size and an MIP mode and an intra prediction mode.
[0340] 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 predetermined MIP modes without using a block size and a mapping table.
[0341] 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.
[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 MIP mode #1.
[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 MIP mode #3.
[0344] 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.
[0345] 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. Figure 23 Simplified reference as shown Figure 18 Describes the steps for generating the MPM list. Figure 23 , in reference Figure 18In the MPM list generation step described, 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 a predetermined MIP mode, and step S1892 (S1892) of generating an MPM list using the determined MIP mode. Here, the predetermined MIP mode may be any one of #0, #1, and #3, or the MIP mode with the most likely selected rate during encoding or decoding.
[0346] Below, we will refer to Figure 24 An image encoding method performed by an image encoding apparatus according to an embodiment is described. The image encoding apparatus according to an embodiment may determine an MPM candidate for a current block based on prediction modes of neighboring blocks located around the current block (S2410).
[0347] 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.
[0348] 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.
[0349] In this case, the predetermined matrix-based intra prediction mode can be identified by specifying a predetermined index of the matrix-based intra prediction mode, and the predetermined index can represent the matrix-based intra prediction mode used with the highest frequency among the plurality of matrix-based intra prediction modes. For example, as described above, the predetermined matrix-based intra prediction mode can be any one of #0, #1, #3, and the matrix-based intra prediction mode having the most likely selection rate during encoding or decoding.
[0350] 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 apparatus 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.
[0351] 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 the multiple MPM candidates. In this case, when all prediction modes of the 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 candidates may include at least one of a DC mode and a vertical mode.
[0352] Next, the encoding apparatus may generate an MPM list of the current block based on the MPM candidates ( S2420 ).
[0353] Finally, the encoding apparatus may determine a prediction mode indicator specifying a prediction mode of the current block based on the MPM list ( S2430 ).
[0354] In addition, in order to encode the intra-frame prediction mode of the chroma block corresponding to the current block into the DM mode, the encoding device can determine the intra-frame prediction mode specified by the DM mode. The encoding device can determine the luma intra-frame prediction mode used to encode the intra-frame prediction mode of the chroma block corresponding to the current block.
[0355] 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.
[0356] In an embodiment, the encoding device may determine the luma intra prediction mode depending on whether the coding 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 the planar mode.
[0357] 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.
[0358] Next, the encoding device may determine the intra-frame prediction mode of the chroma block specified by the DM mode as the luma intra-frame prediction mode (e.g., reference mode). Finally, the encoding device may select the optimal mode for performing intra-frame prediction of the chroma block. When the intra-frame prediction mode specified by the DM mode is selected as the optimal mode, the encoding device may encode the intra-frame prediction mode information specifying the chroma block that has been encoded in the intra-frame prediction mode specified by the DM mode and generate a bitstream, thereby signaling the corresponding information to the decoding device.
[0359] Figure 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).
[0360] When the prediction mode of any one of the current block and the neighboring block is a matrix-based intra prediction mode (e.g., 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.
[0361] 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 apparatus 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.
[0362] In this case, the predetermined matrix-based intra prediction mode can be identified by specifying a predetermined index of the matrix-based intra prediction mode, and the predetermined index can represent the matrix-based intra prediction mode used most frequently among the plurality of matrix-based intra prediction modes. For example, as described above, the predetermined matrix-based intra prediction mode can be any one of #0, #1, #3, and the matrix-based intra prediction mode having the most likely selection rate during encoding or decoding.
[0363] 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 apparatus 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.
[0364] 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 the 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.
[0365] Next, the decoding apparatus may generate an MPM list of the current block based on the MPM candidates ( S2520 ).
[0366] 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 ).
[0367] 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 luma intra prediction mode used to determine an intra prediction mode of a chroma block corresponding to the current block.
[0368] 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.
[0369] In an embodiment, the decoding apparatus may determine the luma intra prediction mode depending on whether the coding 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 apparatus may determine the luma intra prediction mode to be the planar mode.
[0370] 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.
[0371] Finally, the decoding apparatus may determine the intra prediction mode of the chrominance block based on the luma intra prediction mode. For example, the decoding apparatus may determine the intra prediction mode of the chrominance block to be the luma intra prediction mode.
[0372] Figure 26 The experimental data are shown in Figure 2. Figure 18 The encoding rate when generating the MPM list 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 for the MIP mode of the current block. Figure 26 As shown, it can be seen that there is no difference in the encoding rate. That is, by applying the above method, it is possible to reduce the algorithm complexity and the use of memory for the mapping table while minimizing the encoding loss.
[0373] 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.
[0374] [Table 4]
[0375]
[0376] 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.
[0377] 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 an 8x8 luma block.
[0378] 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.
[0379] [Table 5]
[0380]
[0381] For example, the encoding apparatus and decoding apparatus according to the embodiment may 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 apparatus and decoding apparatus according to the embodiment may use a simplified mapping table as shown in Table 6 below to convert the normal intra prediction mode into the MIP mode.
[0382] [Table 6]
[0383]
[0384] For example, the encoding apparatus and decoding apparatus 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 of the current block (MipSizeId). The encoding apparatus and decoding apparatus according to the embodiment can reduce algorithm complexity by using a simplified mapping table, but in terms of block size comparison, 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.
[0385] Method for generating MPM list of MIP mode
[0386] 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. Figure 27 is a flowchart illustrating a candidate MIP mode determination method for configuring an MPM list of a current block according to an embodiment.
[0387] refer to Figure 27In an embodiment, even if the prediction mode of the neighboring block is a MIP mode (S2510), when the current block and the neighboring block have the same number of MIP modes, 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 a candidate MIP mode for configuring the MPM list of the current block (S2530). For example, even if the prediction mode of the neighboring block is a MIP mode (S2510), when the current block and the neighboring block have different numbers of MIP modes, that is, when the current block and the neighboring block have different sizes (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 of -1 of the candidate MIP mode may specify that the MIP mode value from the neighboring block cannot be used.
[0388] 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 Figure 18 As described Figure 18 The normal intra prediction mode is converted into a candidate MIP mode ( S2550 ).
[0389] Finally, the encoding apparatus and the decoding apparatus may generate a MIP list having the determined candidate MIP modes ( S2760 ).
[0390] As in Figure 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 blocks in the process of determining the candidate MIP mode of the current block with reference to the neighboring blocks, and should perform the same as the reference when the prediction mode of the neighboring block is not the MIP mode. Figure 18 The described mapping increases the computational complexity.
[0391] To reduce computational complexity, the encoding apparatus and the decoding apparatus according to an 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. Figure 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. Figure 28 Description and Figure 27 difference.
[0392] 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.
[0393] 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 Table 7 below 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 luma block, sizeId 1 may mean a 4x8, 8x4, or 8x8 luma block, and sizeId 2 may mean a luma block exceeding 8x8.
[0394] [Table 7]
[0395]
[0396] For example, the encoding and decoding devices 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 for other blocks. The encoding and decoding devices can improve MPM mode accuracy by adaptively selecting a default candidate MIP mode based on the size of the neighboring block. Alternatively, to reduce computational complexity, the encoding and decoding devices according to the embodiment may select a candidate MIP mode without considering the coding mode of the neighboring block and generate the MPM list by using it unchanged.
[0397] For example, when generating an MPM list for a MIP mode, the encoding apparatus and the decoding apparatus may fixedly determine the MPM list for the MIP mode (e.g., candMipModeList[]) as follows, regardless of the MIP mode of the neighboring block. For example, when generating three MIP MPM lists, x may have a value of 0 to 2, so candMipModeList[x] may be configured as follows with reference to Table 7. In this case, sizeId indicates the size of the neighboring block, but the encoding apparatus and the decoding apparatus may determine sizeId based on the size of the current block to skip the process of referring to information about the neighboring block.
[0398] candMipModeList[0]=mipMpmCand[sizeId][0]
[0399] candMipModeList[1]=mipMpmCand[sizeId][1]
[0400] candMipModeList[2]=mipMpmCand[sizeId][2]
[0401] Figure 29 The experimental data are shown. The experimental data show that when the Figure 25 The encoding rate when encoding an image by generating an MPM list based on the candidate MIP mode determined by the method is compared to the encoding rate when encoding an image by fixedly determining the MPM list for the MIP mode as described above without considering the encoding mode of the neighboring blocks according to the mapping method. Figure 29 As shown, it can be seen that there is no difference in the encoding rate. That is, by applying the above method, it is possible to reduce the algorithm complexity and the use of memory for the mapping table while minimizing the encoding loss.
[0402] In another embodiment, when generating an MPM list for a MIP mode, the encoding device and the decoding device may fixedly determine the MPM list for the MIP mode (e.g., candMipModeList[]) based on the mode selection probability without considering the coding mode of the neighboring block as follows. For example, when generating three MIP MPM lists, x may have a value of 0 to 2, and candMipModeList[x] may be configured as follows with respect 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 to skip the process of referring to information about the neighboring block.
[0403] candMipModeList[0]=sortedmipMpmCand[sizeId][0]
[0404] candMipModeList[1]=sortedmipMpmCand[sizeId][1]
[0405] candMipModeList[2]=sortedmipMpmCand[sizeId][2]
[0406] [Table 8]
[0407]
[0408] Figure 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 partitioning result representing optimal encoding 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 prediction (MIP) mode (S3030).
[0409] Next, when the prediction mode of the neighboring block is the MIP mode, the encoding device may generate a candidate mode list for the current block based on the 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, the candidate mode list for the current block may be generated based on the candidate mode.
[0410] In an embodiment, when the prediction mode of the current block is a 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 most frequently among 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.
[0411] 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.
[0412] 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.
[0413] Next, the encoding apparatus may encode the prediction mode of the current block based on the candidate mode list ( S3050 ).
[0414] 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 can determine the intra prediction mode specified by the DM mode. The encoding device can determine the reference prediction mode for encoding the intra prediction mode of the chroma block corresponding to the current block.
[0415] Here, the reference intra prediction mode may be determined based on the prediction mode of the luminance block corresponding to the chrominance 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.
[0416] 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.
[0417] Alternatively, when the current block is a luminance block to which the MIP mode is not applied, the encoding apparatus may determine the reference prediction mode based on the intra prediction mode of the current block. For example, the encoding apparatus may determine the reference prediction mode as the intra prediction mode of the current block.
[0418] Next, the encoding device may determine the intra-frame prediction mode of the chroma block specified by the DM mode as a reference prediction mode. Finally, the encoding device may select the optimal mode for performing intra-frame prediction of the chroma block. When the intra-frame prediction mode specified by the DM mode is selected as the optimal mode, the encoding device may encode the intra-frame prediction mode information specifying the chroma block that has been encoded in the intra-frame prediction mode specified by the DM mode, and generate a bitstream, thereby signaling the corresponding information to the decoding device.
[0419] Figure 31 is a flowchart illustrating an image decoding method performed by a decoding apparatus according to an embodiment. First, the decoding apparatus may obtain partition information of an image from a bitstream (S3110).
[0420] Next, the decoding device may partition the image based on the partition information and determine the current block (S3120). The decoding device may use the partition information obtained from the bitstream to partition the input image into one or more processing units. Here, the processing unit may be any of the above-mentioned CU, PU, and TU.
[0421] Next, the decoding apparatus may identify neighboring blocks located around the current block ( S3130 ).
[0422] Next, the decoding apparatus may identify whether the prediction mode of the neighboring block is a matrix-based intra prediction (MIP) mode ( S3140 ).
[0423] Next, when the prediction mode of the neighboring block is the MIP mode, the decoding device may generate a candidate mode list for 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 may determine the candidate mode based on the prediction mode of the neighboring block. In addition, a candidate mode list for the current block may be generated based on the candidate mode.
[0424] In an embodiment, when the prediction mode of the current block is a MIP mode, the decoding apparatus may determine the predetermined candidate mode as the predetermined MIP mode. In this case, the predetermined candidate mode may be the MIP mode most frequently used among 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.
[0425] 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.
[0426] In addition, when the prediction mode of the current block is an intra prediction mode other than the MIP mode, the decoding apparatus 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.
[0427] Next, the decoding apparatus may determine a prediction mode of the current block based on the candidate mode list ( S3160 ).
[0428] 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.
[0429] Here, the reference intra prediction mode may be determined based on the prediction mode of the luminance block corresponding to the chrominance 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.
[0430] In an embodiment, the decoding apparatus may determine the reference prediction mode depending on whether the coding 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 apparatus may determine the reference prediction mode as the planar mode.
[0431] 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.
[0432] Finally, the decoding apparatus may determine the intra prediction mode of the chroma block based on the reference prediction mode. For example, the decoding apparatus may determine the intra prediction mode of the chroma block as the reference prediction mode.
[0433] Application Examples
[0434] Although the exemplary method of the present disclosure is shown as a series of operations for the sake of clarity of description, it is not intended to limit the order in which the steps are performed, and these steps can be performed simultaneously or in a different order if 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 in addition to some steps, or may include other additional steps in addition to some steps.
[0435] In the present disclosure, an image encoding device or image decoding device that performs a predetermined operation (step) may perform an operation (step) of confirming the execution conditions or circumstances of the corresponding operation (step). For example, if it is described that a predetermined operation is performed when a predetermined condition is satisfied, the image encoding device or image decoding device may perform the predetermined operation after determining whether the predetermined condition is satisfied.
[0436] 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.
[0437] 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, or the like.
[0438] 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 providers, OTT video (over-the-top video) devices, Internet streaming service providers, 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-connected TVs, home theater systems, smartphones, tablet PCs, digital video recorders (DVRs), etc.
[0439] Figure 29 is a diagram illustrating a content streaming system to which an embodiment of the present disclosure can be applied.
[0440] like Figure 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.
[0441] The encoding server compresses content input from multimedia input devices such as smartphones, cameras, and camcorders into digital data to generate a bitstream and sends the bitstream to the streaming server. As another example, when multimedia input devices such as smartphones, cameras, and camcorders directly generate the bitstream, the encoding server can be omitted.
[0442] A bitstream may be generated by applying the image encoding method or the image encoding apparatus 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.
[0443] A streaming server transmits multimedia data to a user device based on a user's request via a network server. The network server also serves as an intermediary for notifying users of services. When a user requests a desired service from the network server, the network server delivers it to the streaming server, which then transmits 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 controls the commands and responses between devices in the content streaming system.
[0444] The streaming server can receive content from a media storage and / or encoding server. For example, when receiving content from an encoding server, the content can be received in real time. In this case, in order to provide a smooth streaming service, the streaming server can store the bitstream for a predetermined time.
[0445] 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.
[0446] Each server in the content streaming system may operate as a distributed server, in which case the data received from each server may be distributed.
[0447] 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.
[0448] Industrial Applicability
[0449] The embodiments of the present disclosure may be used to encode or decode an image.
Claims
1. A decoding device for image decoding, the decoding device comprising: Memory; as well as at least one processor connected to the memory, the at least one processor configured to: Obtaining image partition information 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 the prediction mode of the neighboring block is MIP (Matrix-based Intra Prediction) mode; generating a candidate mode list for the current block based on predetermined candidate modes, based on that the prediction mode of the neighboring block is the MIP mode and that the prediction mode of the current block is an intra prediction mode other than the MIP mode; and An intra prediction mode for the current block is determined based on the candidate mode list.
2. The decoding device according to claim 1, wherein: The index specifying the predetermined candidate mode is 0.
3. The decoding device according to claim 1, wherein: Based on the prediction mode of the current block being the MIP mode, the predetermined candidate mode is determined to be the predetermined MIP mode.
4. The decoding device according to claim 3, wherein: The predetermined candidate mode is determined based on the size of the current block.
5. The decoding device according to claim 3, wherein: The predetermined candidate mode is the MIP mode used with the highest frequency among a plurality of MIP modes. The decoding device 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 not being 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 decoding device according to claim 1, wherein: The predetermined candidate mode is a planar mode.
8. The decoding device according to claim 1, wherein: The at least one processor is further configured to: determining a reference prediction mode for determining an intra prediction mode of a chroma block corresponding to the current block; and determining an intra prediction mode for 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 decoding device according to claim 8, wherein: The intra prediction mode of the chroma block is determined as the reference prediction mode.
10. The decoding device according to claim 9, wherein: Based on the current block being a luma block to which the MIP mode is not applied, the reference prediction mode is determined based on an intra prediction mode of the current block.
11. A coding apparatus for image coding, the coding apparatus comprising: Memory; as well as at least one processor connected to the memory, the at least one processor configured to: Determine the current block by partitioning the image; identifying neighboring blocks located around the current block; Identifying 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; and The intra prediction mode of the current block is encoded based on the candidate mode list.
12. The encoding device according to claim 11, wherein The index of the predetermined candidate mode is 0.
13. An apparatus for transmitting data for an image, the apparatus comprising: at least one processor configured to obtain a bitstream generated by an encoding method performed by an encoding apparatus for image encoding; as well as a transmitter configured to transmit the bit stream, The encoding method includes: Determine the current block by partitioning the image; identifying neighboring blocks located around the current block; Identifying whether the prediction mode of the neighboring block is MIP (Matrix-based Intra Prediction) mode; generating a candidate mode list for the current block based on predetermined candidate modes, based on that the prediction mode of the neighboring block is the MIP mode and that the prediction mode of the current block is an intra prediction mode other than the MIP mode; and The intra prediction mode of the current block is encoded based on the candidate mode list.