Image encoding / decoding method and apparatus, and recording medium for storing bit stream

By using the deduced chroma mode and intra prediction mode, the image encoding/decoding efficiency is improved, the problem of increased high-resolution image data transmission and storage costs is solved, and more efficient chroma intra prediction encoding is achieved.

CN119156813APending Publication Date: 2024-12-17HYUNDAI MOTOR CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380038568.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-04-11
Filing Date
2023-04-10
Publication Date
2024-12-17

AI Technical Summary

Technical Problem

As image data becomes higher in terms of resolution and quality, existing image encoding/decoding technologies are difficult to effectively improve encoding/decoding efficiency, resulting in increased transmission and storage costs.

Method used

A chromaticity mode based on the derivation is adopted to generate a chromaticity mode list, a chromaticity intra prediction mode is derived, and a prediction block is generated based on the mode to improve image encoding/decoding efficiency.

Benefits of technology

Improved image encoding/decoding efficiency, especially in chroma intra prediction, is achieved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119156813A_ABST
    Figure CN119156813A_ABST
Patent Text Reader

Abstract

Provided are an image encoding / decoding method and apparatus, a recording medium storing a bitstream, and a transmission method. The image decoding method includes generating a chroma mode list of a current chroma block, deriving a chroma intra prediction mode of the current chroma block based on the chroma mode list, and generating a prediction block of the current chroma block based on the chroma intra prediction mode. Wherein the chroma mode list may include at least one of a default mode, a derived-based chroma mode, or a direct mode.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to an image encoding / decoding method and apparatus and a recording medium for storing a bit stream. More particularly, the present invention relates to an image encoding / decoding method and apparatus using a derivation-based chrominance mode and a recording medium for storing a bit stream. Background Art

[0002] Recently, in various application fields, the demand for high-resolution, high-quality images such as ultra-high definition (UHD) images is increasing. As image data becomes higher in resolution and quality, the amount of data increases relatively compared to existing image data. Therefore, when image data is transmitted using a medium such as existing wired and wireless broadband lines or stored using existing storage media, transmission and storage costs increase. In order to solve these problems that arise as image data becomes higher in resolution and quality, efficient image encoding / decoding technology for images with higher resolution and quality is required. Summary of the invention

[0003] Technical issues

[0004] An object of the present invention is to provide an image encoding / decoding method and apparatus with improved encoding / decoding efficiency.

[0005] Another object of the present invention is to provide a recording medium for storing a bit stream generated by the image decoding method or apparatus according to the present invention.

[0006] Technical Solution

[0007] The image decoding method according to the embodiment of the present invention may include: generating a chroma mode list of a current chroma block, deriving a chroma intra prediction mode of the current chroma block based on the chroma mode list, and generating a prediction block of the current chroma block based on the chroma intra prediction mode. The chroma mode list may include at least one of a default mode, a derived chroma mode, or a direct mode.

[0008] In the image decoding method, the derived chrominance mode may be derived using reconstructed pixels of a corresponding luminance block at a corresponding position of a current chrominance block.

[0009] In the image decoding method, the reconstructed pixels of the corresponding luminance block may be pixels selected by sampling.

[0010] In the image decoding method, the reconstructed neighboring reference pixels of the current chrominance block may be used to derive the derived chrominance mode.

[0011] In the image decoding method, the neighboring reference pixels may be pixels directly adjacent to the current chroma block.

[0012] In the image decoding method, the neighboring reference pixels may include at least one of neighboring reference pixels adjacent to the current chroma block or a neighboring reference block adjacent to a corresponding block of the current chroma block.

[0013] In the image decoding method, the chroma mode list may be configured in the order of a direct mode, a derivation-based chroma mode, and a default mode.

[0014] In the image decoding method, the chroma mode list may be configured in an order determined based on a gradient histogram used to derive the derived chroma mode.

[0015] In the image decoding method, when the direct mode and the derivation-based chroma mode are the same intra prediction mode, the chroma intra prediction mode of the current chroma block may be set to the same intra prediction mode.

[0016] In the image decoding method, when there is a default mode having the same intra prediction mode as a direct mode or a derivation-based chroma mode, the default mode may be replaced with a predefined chroma intra prediction mode.

[0017] The image encoding method according to the embodiment of the present invention may include: generating a chroma mode list of a current chroma block, deriving a chroma intra prediction mode of the current chroma block based on the chroma mode list, and generating a prediction block of the current chroma block based on the chroma intra prediction mode. The chroma mode list may include at least one of a default mode, a derived chroma mode, or a direct mode.

[0018] A non-volatile computer-readable recording medium according to an embodiment of the present invention may store a bitstream generated by an image encoding method, the image encoding method comprising: generating a chroma mode list of a current chroma block, deriving a chroma intra prediction mode of the current chroma block based on the chroma mode list, and generating a prediction block of the current chroma block based on the chroma intra prediction mode. The chroma mode list may include at least one of a default mode, a derived chroma mode, or a direct mode.

[0019] A method for transmitting a bitstream generated by an image encoding method according to an embodiment of the present invention may include transmitting the bitstream. The image encoding method may include generating a chroma mode list for a current chroma block, deriving a chroma intra prediction mode for the current chroma block based on the chroma mode list, and generating a prediction block for the current chroma block based on the chroma intra prediction mode. The chroma mode list may include at least one of a default mode, a derived chroma mode, or a direct mode.

[0020] The features briefly summarized above with respect to the present invention are merely exemplary aspects of the following detailed description of the invention and do not limit the scope of the invention.

[0021] Beneficial Effects

[0022] According to the present invention, an image encoding / decoding method and apparatus with improved encoding / decoding efficiency can be provided.

[0023] In addition, according to the present invention, a chroma mode derivation method based on derivation, a chroma intra prediction mode derivation method, and a method of generating a final chroma prediction block based on weighted sum can be provided.

[0024] In addition, according to the present invention, the encoding efficiency in chroma intra prediction can be improved.

[0025] Those skilled in the art will understand that the effects that can be achieved by the present invention are not limited to the contents that have been specifically described above, and other advantages of the present invention will be more clearly understood from the detailed description. BRIEF DESCRIPTION OF THE DRAWINGS

[0026] Figure 1 is a block diagram showing the configuration of an encoding device according to an embodiment of the present invention.

[0027] Figure 2 is a block diagram showing the configuration of a decoding device according to an embodiment of the present invention.

[0028] Figure 3 FIG. 1 is a schematic diagram schematically showing a video coding system to which the present invention can be applied.

[0029] Figure 4 is a schematic diagram for explaining a method of deriving a DIMD chrominance mode based on a corresponding luminance block according to an embodiment of the present invention.

[0030] Figure 5 and Figure 6 is a schematic diagram for explaining a method of deriving a DIMD chrominance mode based on adjacent reference pixels according to an embodiment of the present invention.

[0031] Figure 7 is a flowchart illustrating a method for deriving a chroma intra prediction mode using a DIMD chroma mode according to an embodiment of the present invention.

[0032] Figure 8 is a flowchart illustrating a method of deriving a chroma intra prediction mode according to an embodiment of the present invention.

[0033] Figures 9 to 12 is a schematic diagram for explaining a method of generating a chromaticity mode list according to an embodiment of the present invention.

[0034] Fig.13 is a flowchart illustrating a method of deriving a chroma intra prediction mode according to an embodiment of the present invention.

[0035] Fig.14 is a flowchart illustrating a method of generating a final chroma prediction block based on a weighted sum of a plurality of chroma prediction blocks according to an embodiment of the present invention.

[0036] Fig.15 is a flowchart illustrating an image decoding method according to an embodiment of the present invention.

[0037] Fig.16 A content streaming system to which an embodiment according to the present invention is applicable is exemplarily shown. DETAILED DESCRIPTION

[0038] The present invention may have various modifications and embodiments, and specific embodiments are shown in the drawings and described in detail in the detailed specification. However, this is not intended to limit the present invention to specific embodiments, but should be understood to include all modifications, equivalents or alternatives contained in the spirit and technical scope of the present invention. The same figure marks in the drawings indicate the same or similar functions in various aspects. For a clearer description, the shapes and sizes of the elements in the drawings can be provided by way of example. The detailed description of the exemplary embodiments described below refers to the drawings, which show specific embodiments by way of example. These embodiments are described in full detail to enable those skilled in the art to practice the embodiments. It should be understood that various embodiments are different from each other, but not necessarily mutually exclusive. For example, without departing from the spirit and scope of the present invention with reference to an embodiment, the specific shapes, structures and features described herein can be implemented in other embodiments. It should also be understood that without departing from the spirit and scope of the embodiment, the position or arrangement of each component in each disclosed embodiment can be changed. Accordingly, the detailed description set forth below is not intended to be restrictive, and the scope of the exemplary embodiments is limited only by the full range of equivalent forms assigned by the attached claims and these claims (if appropriately described).

[0039] In the present invention, the terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are only used for the purpose of distinguishing one component from another component. For example, without departing from the scope of the present invention, a first component may be referred to as a second component, and similarly, a second component may also be referred to as a first component. The terms and / or include a combination of multiple related descriptive items or any item in multiple related descriptive items.

[0040] The components shown in the embodiments of the present invention are depicted independently to indicate different characteristic functions, and do not represent that each component is formed as a separate hardware or software configuration unit. That is, for ease of explanation, each component is listed and included as a separate component, and at least two of the components can be combined to form a single component, or one component can be divided into multiple components to perform functions, as long as it does not depart from the essence of the present invention, the embodiment in which the components are integrated and the embodiment in which each component is divided are also included in the scope of the present invention.

[0041] The terms used in the present invention are only used to describe specific embodiments and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In addition, some components of the present invention are not necessary components for performing necessary functions in the present invention, and can be optional components that are only used to improve performance. The present invention can be realized by only including necessary components for realizing the gist of the present invention and not including components that are only used to improve performance, and the structure that only includes necessary components and does not include optional components that are only used to improve performance is also included in the scope of the present invention.

[0042] In an embodiment, the term "at least one" may refer to one of a number greater than or equal to 1, such as 1, 2, 3, and 4. In an embodiment, the term "plurality" may refer to one of a number greater than or equal to 2, such as 2, 3, and 4.

[0043] Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. When describing the embodiments of the present specification, if it is determined that the detailed description of the related known configuration or function will obscure the subject of the present specification, the detailed description will be omitted, the same figure numerals will be used for the same components in the drawings, and the repeated description of the same components will be omitted.

[0044] Description of terms

[0045] Hereinafter, "image" may refer to a picture constituting a video, and may also refer to the video itself. For example, "encoding and / or decoding of an image" may refer to "encoding and / or decoding of a video", and may also refer to "encoding and / or decoding of one of the images constituting the video".

[0046] Hereinafter, "moving image" and "video" may be used with the same meaning and may be used interchangeably. In addition, the target image may be an encoding target image as a target of encoding and / or a decoding target image as a target of decoding. In addition, the target image may be an input image input to an encoding device, and may be an input image input to a decoding device. Here, the target image may have the same meaning as the current image.

[0047] Hereinafter, an encoder and an image encoding device may be used with the same meaning and may be used interchangeably.

[0048] Hereinafter, a decoder and an image decoding device may be used with the same meaning and may be used interchangeably.

[0049] Hereinafter, “image”, “picture”, “frame” and “screen” may be used with the same meaning and may be used interchangeably.

[0050] Hereinafter, a "target block" may be an encoding target block as a target of encoding and / or a decoding target block as a target of decoding. In addition, a target block may be a current block as a target of current encoding and / or decoding. For example, "target block" and "current block" may be used with the same meaning and may be used interchangeably.

[0051] In the following, "block" and "unit" may be used with the same meaning and may be used interchangeably. In addition, a "unit" may be represented as including a luma component block and a chroma component block corresponding thereto, so as to distinguish it from a block. For example, a coding tree unit (CTU) may consist of a luma component (Y) coding tree block (CTB) and two chroma component (Cb, Cr) coding tree blocks associated therewith.

[0052] Hereinafter, "sample", "picture element", and "pixel" may be used with the same meaning and may be used interchangeably. Herein, a sample may represent a basic unit constituting a block.

[0053] Hereinafter, “inter-frame” and “inter-screen” may be used with the same meaning and may be used interchangeably.

[0054] Hereinafter, “intra-frame” and “intra-screen” may be used with the same meaning and may be used interchangeably.

[0055] Figure 1 is a block diagram showing the configuration of an encoding device according to an embodiment of the present invention.

[0056] The encoding device 100 may be an encoder, a video encoding device, or an image encoding device. A video may include one or more images. The encoding device 100 may sequentially encode one or more images.

[0057] refer to Figure 1The encoding device 100 may include: an image partitioning unit 110, an intra-frame prediction unit 120, a motion prediction unit 121, a motion compensation unit 122, a switch 115, a subtractor 125, a transform unit 130, a quantization unit 140, an entropy encoding unit 150, an inverse quantization unit 160, an inverse transform unit 170, an adder 117, a filtering unit 180 and a reference picture buffer 190.

[0058] In addition, the encoding device 100 may generate a bitstream including information encoded by encoding the input image, and output the generated bitstream. The generated bitstream may be stored in a computer-readable recording medium, or may be streamed through a wired / wireless transmission medium.

[0059] The image partitioning unit 110 can partition the input image into various forms to improve the efficiency of video encoding / decoding. That is, the input video consists of multiple pictures, and for compression efficiency, parallel processing, etc., a picture can be hierarchically partitioned and processed. For example, a picture can be partitioned into one or more tiles or slices, and then partitioned into multiple codec tree units (CTUs) again. Alternatively, a picture can first be partitioned into multiple sub-pictures defined as rectangular slice groups, and each sub-picture can be partitioned into tiles / slices. Here, sub-pictures can be used to support the function of partially independently encoding / decoding and transmitting pictures. Since multiple sub-pictures can be reconstructed separately, this has the advantage of easy editing in applications where multi-channel inputs are configured as one picture. In addition, tiles can be divided horizontally to generate bricks. Here, bricks can be used as basic units for parallel processing within a picture. In addition, a CTU can be recursively partitioned into a quad tree (quad tree, QT), and the terminal node of the partition can be defined as a coding unit (Coding Unit, CU). The CU can be partitioned into a PU (Prediction Unit) as a prediction unit and a TU (Transform Unit) as a transform unit to perform prediction and partitioning. On the other hand, the CU can be used as a prediction unit and / or a transform unit itself. Here, for flexible partitioning, each CTU can be recursively partitioned into multi-type trees (MTT) and quadtrees (QT). Partitioning the CTU into multi-type trees can start from the terminal node of the QT, and the MTT can be composed of a binary tree (BT) and a triple tree (TT). For example, the MTT structure can be classified into a vertical binary split mode (SPLIT_BT_VER), a horizontal binary split mode (SPLIT_BT_HOR), a vertical ternary split mode (SPLIT_TT_VER), and a horizontal ternary split mode (SPLIT_TT_HOR). In addition, during partitioning, the minimum block size (MinQTSize) of the quadtree of the luma block can be set to 16×16, the maximum block size (MaxBtSize) of the binary tree can be set to 128×128, and the maximum block size (MaxTtSize) of the ternary tree can be set to 64×64. In addition, the minimum block size (MinBtSize) of the binary tree and the minimum block size (MinTtSize) of the ternary tree can be specified as 4×4, and the maximum depth (MaxMttDepth) of the multi-type tree can be specified as 4. In addition, in order to improve the coding efficiency of the I slice, a dual tree that uses the CTU partition structure of the luma component and the chroma component differently can be applied.On the other hand, in P slices and B slices, the luma and chroma coding tree blocks (CTBs) within a CTU can be partitioned into a single tree that shares the coding tree structure.

[0060] The encoding device 100 may perform encoding on the input image in intra mode and / or inter mode. Alternatively, the encoding device 100 may perform encoding on the input image in a third mode other than intra mode and inter mode (e.g., IBC mode, palette mode, etc.). However, if the third mode has functional characteristics similar to those of the intra mode or inter mode, it may be classified as the intra mode or inter mode for ease of explanation. In the present invention, the third mode is classified and described separately only when a specific description of the third mode is required.

[0061] When the intra mode is used as the prediction mode, the switch 115 can switch to the intra mode, and when the inter mode is used as the prediction mode, the switch 115 can switch to the inter mode. Here, the intra mode can represent the intra prediction mode, and the inter mode can represent the inter prediction mode. The encoding device 100 can generate a prediction block for an input block of an input image. In addition, the encoding device 100 can encode a residual block using the residual of the input block and the prediction block after generating the prediction block. The input image can be referred to as the current image as the current encoding target. The input block can be referred to as the current block or the encoding target block as the current encoding target.

[0062] When the prediction mode is intra mode, the intra prediction unit 120 may use samples of the already encoded / decoded blocks around the current block as reference samples. The intra prediction unit 120 may perform spatial prediction of the current block by utilizing the reference samples, or generate prediction samples of the input block by spatial prediction. In this article, intra prediction may refer to intra-picture prediction.

[0063] As the intra prediction method, non-directional prediction modes such as DC mode and planar mode and directional prediction modes (for example, 65 directions) may be applied. Here, the intra prediction method may be expressed as an intra prediction mode or an intra-screen prediction mode.

[0064] When the prediction mode is the inter mode, the motion prediction unit 111 can retrieve the area that best matches the input block from the reference image in the motion prediction process, and derive the motion vector by using the retrieved area. In this case, the search area can be used as the area. The reference image can be stored in the reference picture buffer 190. Here, when encoding / decoding of the reference image is performed, it can be stored in the reference picture buffer 190.

[0065] The motion compensation unit 112 may generate a prediction block of the current block by performing motion compensation using a motion vector. Herein, inter prediction may mean inter prediction or motion compensation.

[0066] When the value of the motion vector is not an integer, the motion prediction unit 111 and the motion compensation unit 112 may generate a prediction block by applying an interpolation filter to a partial area of ​​the reference picture. In order to perform inter-frame prediction or motion compensation, it may be determined based on the codec unit whether the motion prediction and motion compensation mode of the prediction unit included in the codec unit is one of the skip mode, merge mode, advanced motion vector prediction (AMVP) mode, and intra block copy (IBC) mode, and inter-frame prediction or motion compensation may be performed according to each mode.

[0067] In addition, based on the above-mentioned inter-frame prediction method, the affine (AFFINE) mode based on sub-PU prediction, the sub-block-based temporal motion vector prediction (SbTMVP) mode, the PU-based prediction and MVD merge (Merge with MVD, MMVD) mode and the geometric partitioning mode (Geometric Partitioning Mode, GPM) mode can be applied. In addition, in order to improve the performance of each mode, history based MVP (HMVP), pairwise average MVP (PAMVP), combined intra / inter prediction (CIIP), adaptive motion vector resolution (AMVR), bi-directional optical flow (BDOF), bi-predictive with CU Weights (BCW), local illumination compensation (LIC), template matching (TM), overlapped block motion compensation (OBMC), etc. can be applied.

[0068] Among them, the affine mode is a technology used in both AMVP and MERGE modes, and also has high coding efficiency. In existing video codec standards, since motion compensation (MC) is performed by considering only the parallel movement of blocks, it has the disadvantage of not being able to properly compensate for the motion that occurs in reality (e.g., zooming in / out and rotation). To supplement this, a four-parameter affine motion model using two control point motion vectors (CPMV) and a six-parameter affine motion model using three control point motion vectors can be used and applied to inter-frame prediction. Here, CPMV is a vector representing an affine motion model of one of the upper left, upper right, and lower left sides of the current block. The affine mode is divided into AMVP or MERGE mode for CPMV encoding. On the other hand, considering the computational complexity of video codecs, affine motion compensation can be performed in units of 4×4 blocks instead of pixel-by-pixel affine motion compensation. That is, when viewed in units of 4×4 blocks, it is the same as the existing motion compensation, but from the perspective of the entire PU, it can be regarded as affine motion compensation.

[0069] The subtractor 113 may generate a residual block by utilizing the difference between the input block and the prediction block. The residual block may be referred to as a residual signal. The residual signal may represent the difference between the original signal and the prediction signal. Alternatively, the residual signal may be a signal generated by transforming or quantizing, or transforming and quantizing the difference between the original signal and the prediction signal. The residual block may be a residual signal of a block unit.

[0070] The transform unit 130 may generate a transform coefficient by performing a transform on the residual block, and output the generated transform coefficient. Herein, the transform coefficient may be a coefficient value generated by performing a transform on the residual block. When the transform skip mode is applied, the transform unit 130 may skip the transform of the residual block.

[0071] The quantization level may be generated by applying quantization to a transform coefficient or a residual signal. Hereinafter, the quantization level may also be referred to as a transform coefficient in an embodiment.

[0072] For example, a 4×4 luminance residual block generated by intra prediction is transformed using a base vector based on a discrete sine transform (DST), and the remaining residual block can be transformed using a base vector based on a discrete cosine transform (DCT). In addition, the transform block is partitioned into a quadtree shape of a block using a residual quad tree (RQT) technique, and after transforming and quantizing each transform block partitioned by the RQT, a coded block flag (cbf) can be transmitted when all coefficients become 0 to improve coding efficiency.

[0073] As another alternative, a Multiple Transform Selection (MTS) technique that selectively uses multiple transform bases to perform transforms can be applied. That is, instead of partitioning the CU into TUs through RQT, a function similar to TU partitioning can be performed through a sub-block transform (SBT) technique. Specifically, SBT is only applied to inter-prediction blocks, and unlike RQT, the current block can be partitioned into a size of 1 / 2 or 1 / 4 in the vertical or horizontal direction, and then the transform can be performed only on one of the blocks. For example, if the current block is partitioned vertically, the transform can be performed on the leftmost or rightmost block, and if the current block is partitioned horizontally, the transform can be performed on the topmost or bottommost block.

[0074] In addition, a low frequency non-separable transform (LFNST) can be applied, which is a secondary transform technique that additionally transforms the transformed residual signal into the frequency domain by DCT or DST. LFNST additionally performs a transform on a 4×4 or 8×8 low frequency region on the upper left side so that the residual coefficients can be concentrated on the upper left side.

[0075] The quantization unit 140 may generate a quantization level by quantizing the transform coefficient or the residual signal according to a quantization parameter (QP), and output the generated quantization level. Herein, the quantization unit 140 may quantize the transform coefficient by using a quantization matrix.

[0076] For example, a quantizer using a QP value of 0 to 51 may be used. Alternatively, if the image size is large and high coding efficiency is required, a QP of 0 to 63 may be used. In addition, a dependent quantization (DQ) method using two quantizers instead of one quantizer may be applied. DQ performs quantization using two quantizers (e.g., Q0 and Q1), but even if there is no signaling information about the use of a specific quantizer, the quantizer used for the next transform coefficient may be selected based on the current state through a state transition model.

[0077] The entropy encoding unit 150 may generate a bit stream by performing entropy encoding on the value calculated by the quantization unit 140 or the encoding parameter value calculated when encoding is performed according to the probability distribution, and output the bit stream. The entropy encoding unit 150 may perform entropy encoding on information about samples of an image and information for decoding an image. For example, the information for decoding an image may include a syntax element.

[0078] When entropy coding is applied, the symbol is represented so that a smaller number of bits are assigned to symbols with a high probability of occurrence and a larger number of bits are assigned to symbols with a low probability of occurrence, so the size of the bit stream for the symbol to be encoded can be reduced. The entropy coding unit 150 can use coding methods such as exponential Golomb, context-adaptive variable length coding (context-adaptive variable length coding, CAVLC), context-adaptive binary arithmetic coding (context-adaptive binary arithmetic coding, CABAC) for entropy coding. For example, the entropy coding unit 150 can perform entropy coding by using a variable length coding / code (variable length coding / code, VLC) table. In addition, the entropy coding unit 150 can derive a binarization method of the target symbol and a probability model of the target symbol / binary, and perform arithmetic coding and decoding by using the derived binarization method and context model.

[0079] In this regard, when CABAC is applied, in order to reduce the size of the probability table stored in the decoding device, the table probability update method can be changed to a table update method using a simple equation and applied. In addition, two different probability models can be used to obtain more accurate symbol probability values.

[0080] In order to encode the transformation coefficient level (quantization level), the entropy encoding unit 150 may change the coefficients in a two-dimensional block form into a one-dimensional vector form through a transformation coefficient scanning method.

[0081] The coding and decoding parameters may include information (flags, indexes, etc.) encoded in the encoding device 100 and signaled to the decoding device 200, such as syntax elements, and information derived during the encoding or decoding process, and may represent information required when encoding or decoding an image.

[0082] Herein, signaling a flag or an index may mean that in an encoder, the corresponding flag or index is entropy encoded and included in a bitstream, and may mean that in a decoder, the corresponding flag or index is entropy decoded from the bitstream.

[0083] The encoded current image can be used as a reference image for another image to be processed later. Therefore, the encoding device 100 can reconstruct or decode the encoded current image again and store the reconstructed or decoded image in the reference picture buffer 190 as a reference image.

[0084] The quantization level may be dequantized in the dequantization unit 160 or may be inversely transformed in the inverse transform unit 170. The dequantized and / or inversely transformed coefficients may be added to the prediction block by the adder 117. Herein, the dequantized and / or inversely transformed coefficients may represent coefficients on which at least one of dequantization and inverse transformation is performed, and may represent a reconstructed residual block. The dequantization unit 160 and the inverse transform unit 170 may be performed as inverse processes of the quantization unit 140 and the transform unit 130.

[0085] The reconstructed block may pass through the filtering unit 180. The filtering unit 180 may apply a deblocking filter, a sample adaptive offset (SAO) filter, an adaptive loop filter (ALF), a bilateral filter (BIF), a luma mapping with chroma scaling (LMCS) filter, etc. to the reconstructed sample, the reconstructed block, or the reconstructed image using all or some filtering techniques. The filtering unit 180 may be referred to as an in-loop filter. In this case, the in-loop filter may also be used as a name that does not include LMCS.

[0086] The deblocking filter can remove block distortion generated in the boundary between blocks. In order to determine whether to apply the deblocking filter, it can be determined whether to apply the deblocking filter to the current block based on samples included in several rows or columns included in the block. When the deblocking filter is applied to the block, different filters can be applied according to the required deblocking filter strength.

[0087] In order to compensate for the coding error using sample adaptive offset, an appropriate offset value may be added to the sample value. Sample adaptive offset can correct the offset from the original image in sample units for the deblocked image. A method of partitioning the samples included in the image into a predetermined number of regions, determining the region to which the offset is applied, and applying the offset to the determined region, or a method of applying the offset in consideration of edge information about each sample may be used.

[0088] The bilateral filter (BIF) can also correct the deviation from the original image on a sample-by-sample basis for the image on which deblocking has been performed.

[0089] The adaptive loop filter may perform filtering based on the comparison result of the reconstructed image with the original image. The samples included in the image may be partitioned into predetermined groups, the filter to be applied to each group may be determined, and differential filtering may be performed on each group. Information on whether the ALF is applied may be signaled by a codec unit (CU), and the form and coefficients of the adaptive loop filter to be applied to each block may vary.

[0090] In luma mapping with chroma scaling (LMCS), luma mapping (LM) means remapping luma values ​​by a piecewise linear model, and chroma scaling (CS) means a technique for scaling the residual values ​​of chroma components according to the average luma value of a prediction signal. In particular, LMCS can be used as an HDR correction technique that reflects the characteristics of a High Dynamic Range (HDR) image.

[0091] The reconstructed block or the reconstructed image that has passed through the filtering unit 180 may be stored in the reference picture buffer 190. The reconstructed block that has passed through the filtering unit 180 may be part of the reference image. That is, the reference image is a reconstructed image composed of the reconstructed block that has passed through the filtering unit 180. The stored reference image may be used for inter-frame prediction or motion compensation later.

[0092] Figure 2 is a block diagram showing the configuration of a decoding device according to an embodiment of the present invention.

[0093] The decoding device 200 may be a decoder, a video decoding device, or an image decoding device.

[0094] refer to Figure 2The decoding device 200 may include: an entropy decoding unit 210, an inverse quantization unit 220, an inverse transform unit 230, an intra-frame prediction unit 240, a motion compensation unit 250, an adder 201, a switch 203, a filtering unit 260 and a reference picture buffer 270.

[0095] The decoding device 200 may receive a bit stream output from the encoding device 100. The decoding device 200 may receive a bit stream stored in a computer-readable recording medium, or may receive a bit stream streamed through a wired / wireless transmission medium. The decoding device 200 may decode the bit stream in an intra-frame mode or an inter-frame mode. In addition, the decoding device 200 may generate a reconstructed image or a decoded image generated by decoding, and output the reconstructed image or the decoded image.

[0096] When the prediction mode for decoding is the intra mode, the switch 203 may switch to the intra mode. Alternatively, when the prediction mode for decoding is the inter mode, the switch 203 may switch to the inter mode.

[0097] The decoding device 200 can obtain a reconstructed residual block by decoding the input bit stream and generate a prediction block. When the reconstructed residual block and the prediction block are obtained, the decoding device 200 can generate a reconstructed block that becomes a decoding target by adding the reconstructed residual block and the prediction block. The decoding target block can be called a current block.

[0098] The entropy decoding unit 210 may generate symbols by entropy decoding the bit stream according to the probability distribution. The generated symbols may include symbols in the form of quantization levels. In this article, the entropy decoding method may be an inverse process of the above entropy encoding method.

[0099] The entropy decoding unit 210 may change the coefficients of the one-dimensional vector shape into coefficients of the two-dimensional block shape through a transform coefficient scanning method to decode the transform coefficient level (quantization level).

[0100] The quantization level may be inversely quantized in the inverse quantization unit 220 or inversely transformed in the inverse transform unit 230. The quantization level may be a result of inverse quantization and / or inverse transformation and may be generated as a reconstructed residual block. Herein, the inverse quantization unit 220 may apply a quantization matrix to the quantization level. The inverse quantization unit 220 and the inverse transform unit 230 applied to the decoding device may apply the same technology as the inverse quantization unit 160 and the inverse transform unit 170 applied to the aforementioned encoding device.

[0101] When the intra mode is used, the intra prediction unit 240 can generate a prediction block by performing spatial prediction on the current block, which uses sample values ​​of blocks that have been decoded around the decoding target block. The intra prediction unit 240 applied to the decoding device can apply the same technology as the intra prediction unit 120 applied to the aforementioned encoding device.

[0102] When the inter-frame mode is used, the motion compensation unit 250 can generate a prediction block by performing motion compensation using a motion vector and a reference image stored in the reference picture buffer 270 on the current block. When the value of the motion vector is not an integer value, the motion compensation unit 250 can generate a prediction block by applying an interpolation filter to a partial area within the reference image. In order to perform motion compensation, it can be determined based on the codec unit whether the motion compensation mode of the prediction unit included in the corresponding codec unit is a skip mode, a merge mode, an AMVP mode, or a current picture reference mode, and motion compensation can be performed according to each mode. The motion compensation unit 250 applied to the decoding device can apply the same technology as the motion compensation unit 122 applied to the above-mentioned encoding device.

[0103] The adder 201 may generate a reconstructed block by adding the reconstructed residual block and the prediction block. The filtering unit 260 may apply at least one of an inverse LMCS, a deblocking filter, a sample adaptive offset, and an adaptive loop filter to the reconstructed block or the reconstructed image. The filtering unit 260 applied to the decoding device may apply the same filtering technique as the filtering unit 180 applied to the aforementioned encoding device.

[0104] The filtering unit 260 may output a reconstructed image. The reconstructed block or the reconstructed image may be stored in the reference picture buffer 270 and used for inter-frame prediction. The reconstructed block that has passed through the filtering unit 260 may be part of the reference image. That is, the reference image may be a reconstructed image composed of the reconstructed blocks that have passed through the filtering unit 260. The stored reference image may be used for inter-frame prediction or motion compensation later.

[0105] Figure 3 FIG. 1 is a schematic diagram schematically showing a video coding system to which the present invention can be applied.

[0106] The video coding system according to the embodiment may include an encoding device 10 and a decoding device 20. The encoding device 10 may transmit the encoded video and / or image information or data to the decoding device 20 in the form of a file or streaming through a digital storage medium or a network.

[0107] The encoding device 10 according to the embodiment may include a video source generating unit 11, an encoding unit 12, and a transmitting unit 13. The decoding device 20 according to the embodiment may include a receiving unit 21, a decoding unit 22, and a rendering unit 23. The encoding unit 12 may be referred to as a video / image encoding unit, and the decoding unit 22 may be referred to as a video / image decoding unit. The transmitting unit 13 may be included in the encoding unit 12. The receiving unit 21 may be included in the decoding unit 22. The rendering unit 23 may include a display unit, and the display unit may be configured as a separate device or an external component.

[0108] The video source generation unit 11 can obtain the video / image by capturing, synthesizing or generating the video / image process. The video source generation unit 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, a smart phone, etc., and may (electronically) generate the video / image. For example, a virtual video / image may be generated by a computer, etc., in which case the video / image capture process may be replaced by a process for generating relevant data.

[0109] The encoding unit 12 may encode the input video / image. For compression and encoding efficiency, the encoding unit 12 may perform a series of processes such as prediction, transformation, and quantization. The encoding unit 12 may output the encoded data (encoded video / image information) in the form of a bit stream. The detailed configuration of the encoding unit 12 may also be the same as described above. Figure 1 The encoding device 100 is configured in the same manner.

[0110] The sending unit 13 may send the encoded video / image information or data output in the form of a bit stream to the receiving unit 21 of the decoding device 20 through a digital storage medium or a network in the form of a file or streaming. The digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The sending unit 13 may include an element for generating a media file in a predetermined file format, and may include an element for transmission through a broadcast / communication network. The receiving unit 21 may extract / receive a bit stream from a storage medium or a network and send it to the decoding unit 22.

[0111] The decoding unit 22 can decode the video / image by performing a series of processes such as inverse quantization, inverse transformation, and prediction corresponding to the operations of the encoding unit 12. The detailed configuration of the decoding unit 22 can also be similar to Figure 2 The above-mentioned decoding device 200 is configured in the same manner.

[0112] The rendering unit 23 may render the decoded video / image. The rendered video / image may be displayed by the display unit.

[0113] In the following, reference Figures 4 to 15 , a DIMD chroma mode derivation method, a chroma intra prediction mode derivation method, and a method for generating a final chroma difference prediction block based on a weighted sum of multiple chroma prediction blocks according to an embodiment of the present invention will be described in detail. Here, the DIMD chroma mode means a chroma intra prediction mode derived based on a decoder-side intra mode, and can be referred to as a "derived intra prediction mode".

[0114] Figure 4 is a schematic diagram for explaining a method of deriving a DIMD chrominance mode based on a corresponding luminance block according to an embodiment of the present invention.

[0115] refer to Figure 4 The method of deriving the DIMD chrominance mode based on the corresponding luminance block derives the DIMD chrominance mode by using the reconstructed pixels of the corresponding luminance block 415 in the luminance image 410 at the corresponding position of the current chrominance block 405 of the chrominance image 400.

[0116] Specifically, the encoder / decoder applies a Sobel filter to the reconstructed pixels of the corresponding luminance block 415 to calculate the gradient of the corresponding pixel, and generates a gradient histogram (Histogram of gradient, HoG) based on the calculated gradient. Then, the encoder / decoder selects the gradient with the maximum value from the gradient histogram and maps it to the intra prediction mode to derive the intra prediction mode of the chrominance block. The derived intra prediction mode of the chrominance block can be defined as a DIMD chrominance mode.

[0117] On the other hand, when a gradient histogram is generated using reconstructed pixels of a corresponding luminance block, in order to reduce complexity, the encoder / decoder may perform sampling instead of using all reconstructed pixels in the corresponding luminance block to select and use pixels at a specific position. For example, the encoder / decoder may select pixels by sampling ×2 (in units of 2 pixels) or sampling ×4 (in units of 4 pixels) in the vertical direction, or by sampling ×2 (in units of 2 pixels) or sampling ×4 (in units of 4 pixels) in the horizontal direction. Alternatively, the encoder / decoder may select pixels by sampling ×2 (in units of 2 pixels) or sampling ×4 (in units of 4 pixels) in the vertical and horizontal directions. Although sampling of ×2 (in units of 2 pixels) or ×4 (in units of 4 pixels) is mentioned in the present embodiment, pixels may be selected by sampling of any multiple.

[0118] Figure 5 and Figure 6is a schematic diagram for explaining a method of deriving a DIMD chrominance mode based on adjacent reference pixels according to an embodiment of the present invention.

[0119] The method for deriving the DIMD chromaticity mode based on adjacent reference pixels utilizes adjacent reference pixels of the current chromaticity block to derive the DIMD chromaticity mode. Here, the adjacent reference pixels may include adjacent adjacent reference pixels of the current chromaticity block and adjacent reference pixels of the corresponding luminance block of the current chromaticity block.

[0120] refer to Figure 5 The method of deriving the DIMD chrominance mode based on adjacent reference pixels can utilize the adjacent adjacent reference pixels 501 and 502 of the current chrominance block 500 to derive the DIMD chrominance mode.

[0121] Specifically, the encoder / decoder applies a Sobel filter to adjacent adjacent reference pixels 501 and 502 of the current chroma block 500 to calculate the gradient of the corresponding pixel, and generates a gradient histogram (HoG) based on this. In addition, the encoder / decoder selects the gradient with the maximum value from the gradient histogram and maps it to the intra prediction mode to derive the intra prediction mode of the chroma block. The derived intra prediction mode of the chroma block can be defined as a DIMD chroma mode.

[0122] On the other hand, when the encoder / decoder generates a gradient histogram using adjacent neighboring reference pixels of the current chroma block 500, the adjacent reference pixels may be the reconstructed upper left reference pixel AL, the upper reference pixel 501, and the left reference pixel 502. For example, the upper reference pixel 501 for deriving the DIMD chroma mode may be A0 to A7, and the left reference pixel 502 for deriving the DIMD chroma mode may be L0 to L7. As another example, the upper reference pixel 501 for deriving the DIMD chroma mode may be A0 to A15, and the left reference pixel 502 for deriving the DIMD chroma mode may be L0 to L15.

[0123] On the other hand, in order to reduce complexity, only selected pixels may be used as adjacent reference pixels for deriving the DIMD chrominance mode, rather than all of the upper reference pixels 501 and the left reference pixels 502. For example, the upper reference pixels 501 used to derive the DIMD chrominance mode may be A0, A2, A4, and A6, and the left reference pixels 502 used to derive the DIMD chrominance mode may be L0, L2, L4, and L6.

[0124] Figure 6 It is a schematic diagram explaining an implementation scheme of using all adjacent adjacent reference pixels of a current chrominance block and adjacent reference pixels of a corresponding luminance block of the current chrominance block as adjacent reference pixels in a method of deriving a DIMD chrominance mode based on adjacent reference pixels.

[0125] refer to Figure 6 , the method of deriving the DIMD chrominance mode based on adjacent reference pixels can derive the DIMD chrominance mode by utilizing at least one of the adjacent adjacent reference pixels 601 and 602 of the current chrominance block 600 or the adjacent adjacent reference pixels 611 and 612 of the corresponding luminance block 610 of the current chrominance block.

[0126] Specifically, the encoder / decoder applies a Sobel filter to at least one of the adjacent adjacent reference pixels 601 and 602 of the current chroma block 600 or the adjacent adjacent reference pixels 611 and 612 of the corresponding luminance block 610 of the current chroma block to calculate the gradient of the corresponding pixel, and generates a gradient histogram (HoG) based on the gradient. Then, the encoder / decoder selects the gradient with the maximum value from the gradient histogram and maps it to the intra prediction mode to derive the intra prediction mode of the chroma block. The derived intra prediction mode of the chroma block can be defined as a DIMD chroma mode.

[0127] On the other hand, when the encoder / decoder generates a gradient histogram using adjacent neighboring reference pixels of the current chroma block 600, the adjacent reference pixels may be the reconstructed upper left reference pixel AL, upper reference pixel 601, and left reference pixel 602 adjacent to the current chroma block 600, or the reconstructed upper left reference pixel AL, upper reference pixel 611, and left reference pixel 612 adjacent to the corresponding luminance block 610 of the current chroma block.

[0128] Here, if Figure 5 As described in , the upper reference pixels 601 and 611 for deriving the DIMD chroma mode may be A0 to A7, and the left reference pixels 602 and 612 for deriving the DIMD chroma mode may be L0 to L7. As another example, the upper reference pixels 601 and 611 for deriving the DIMD chroma mode may be A0 to A15, and the left reference pixels 602 and 612 for deriving the DIMD chroma mode may be L0 to L15.

[0129] On the other hand, in order to reduce complexity, only selected pixels may be used as adjacent reference pixels for deriving the DIMD chrominance mode, rather than all of the upper reference pixels 601 and 611 and the left reference pixels 602 and 612. For example, the upper reference pixels 601 and 611 used to derive the DIMD chrominance mode may be A0, A2, A4, and A6, and the left reference pixels 602 and 612 used to derive the DIMD chrominance mode may be L0, L2, L4, and L6.

[0130] Figure 7is a flowchart illustrating a method for deriving a chroma intra prediction mode using a DIMD chroma mode according to an embodiment of the present invention.

[0131] refer to Figure 7 , the encoder / decoder can derive the DIMD chrominance mode (S710). Here, it can be referred to Figure 4 Described method or reference for deriving DIMD chrominance mode based on corresponding luminance blocks Figures 5 and 6 A method for deriving a DIMD chrominance mode based on adjacent reference pixels is described to derive a DIMD chrominance mode.

[0132] In addition, the encoder / decoder may generate a chroma mode list including the derived DIMD chroma mode (S720). Figures 9 to 12 A specific method for generating a chromaticity mode list is described.

[0133] In addition, the encoder / decoder may derive a chroma intra prediction mode of the current chroma block based on the chroma mode list (S730). Specifically, the encoder / decoder may derive a chroma intra prediction mode of the current chroma block based on at least one chroma intra prediction mode candidate of the chroma mode list.

[0134] According to one embodiment of the present invention, the encoder may transmit information indicating the chroma intra prediction mode of the current chroma block in the chroma mode list, and the decoder may parse the information indicating the chroma intra prediction mode to derive the chroma intra prediction mode of the current chroma block. Here, the information indicating the chroma intra prediction mode may be intra_chroma_pred_mode.

[0135] Figure 8 is a flowchart illustrating a method of deriving a chroma intra prediction mode according to an embodiment of the present invention.

[0136] refer to Figure 8 , the encoder / decoder may determine the corresponding luminance block (S810) and derive the DIMD chrominance mode based on the pixels in the determined corresponding luminance block (S820). Figure 4 The method described for deriving the DIMD chromaticity mode corresponding to brightness is used to perform steps S810 and S820.

[0137] In addition, the encoder / decoder may derive DM from the intra prediction mode of the corresponding luma block (S830). Here, direct mode (DM) may be defined as the intra prediction mode of the corresponding luma block at the corresponding position of the current chroma block.

[0138] In addition, the encoder / decoder may determine whether the DIMD chroma mode and DM are the same (S840).

[0139] If the DIMD chroma mode and DM are the same (S840-Yes), the encoder / decoder can generate a chroma mode list including DM (S850). In step S850, since the DM and DIMD chroma modes are the same, any mode can be selected. For example, the chroma mode list can be configured in the order of list [0], list [1], list [2], list [3] and DM, and intra_chroma_pred_mode can indicate each in the order of indexes 0, 1, 2, 3 and 4. Here, list [0] to list [3] can be default modes, list [0] can be a plane mode, list [1] can be 50 (i.e., vertical mode), list [2] can be 18 (i.e., horizontal mode), and list [3] can be a DC mode. In addition, the overlap of the default mode in the chroma mode list with DM is checked, and if DM is the same as the default mode in the chroma mode list, the default mode can be replaced with mode 66.

[0140] On the contrary, if the DIMD chroma mode and the DM are not the same (S840-No), the encoder / decoder may generate a chroma mode list including the DIMD chroma mode and the DM (S860). Figures 9 to 12 A method of generating a chroma mode list including a DIMD chroma mode and a DM is described.

[0141] On the other hand, although Figure 8 In step S850 of the method, it is described that when the DIMD chroma mode and DM are the same, a chroma mode list including DM may be generated, but according to another embodiment of the present invention, DM or DIMD chroma mode may be derived as the chroma intra prediction mode of the current chroma block without generating the chroma mode list. Therefore, information indicating the chroma intra prediction mode of the current chroma block in the chroma mode list (e.g., intra_chroma_pred_mode) may not be signaled (i.e., transmitted or parsed).

[0142] On the other hand, although Figure 8 In the embodiment, step S820 of deriving the DIMD chrominance mode is described as being performed before step S830 of deriving the DM, but according to another embodiment of the present invention, step S830 of deriving the DM may be performed before step S820 of deriving the DIMD chrominance mode.

[0143] Figures 9 to 12 is a schematic diagram for explaining a method of generating a chromaticity mode list according to an embodiment of the present invention.

[0144] Fig. 9 is a schematic diagram for explaining a method of generating a chroma mode list having a predefined order.

[0145] refer to Fig. 9 , the chroma mode list may be configured in the order of list [0], list [1], list [2], list [3], DIMD chroma mode, and DM, and intra_chroma_pred_mode may indicate each in the order of index 0, 1, 2, 3, 4, and 5. In this case, the binary string of intra_chroma_pred_mode for the mode in the chroma mode list may be implemented with 4 bits.

[0146] On the other hand, in a method of generating a chromaticity mode list in a predefined order, such as in Fig. 9 As shown in , intra_chroma_pred_mode binarization can always be performed in the order of DM, DIMD chroma mode and default mode (list [0], list [1], list [2] and list [3]).

[0147] Fig.10 It is a schematic diagram for explaining a method for generating a chromaticity mode list based on a gradient histogram (HoG) generated in the process of deriving a DIMD chromaticity mode. Specifically, the order of the DIMD chromaticity mode and DM in the chromaticity mode list can be determined based on the gradient histogram generated in the process of deriving the DIMD chromaticity mode.

[0148] If, in the gradient histogram generated during the derivation of the DIMD chrominance mode, the gradient value reversely mapped to the DIMD chrominance mode is greater than the gradient value reversely mapped to the DM, then Fig.10 As shown, the chroma mode list may be configured in the order of list [0], list [1], list [2], list [3], DM, and DIMD chroma modes, and intra_chroma_pred_mode may indicate each in the order of indexes 0, 1, 2, 3, 4, and 5. That is, if, in a gradient histogram generated in the process of deriving the DIMD chroma mode, a gradient value reversely mapped to the DIMD chroma mode is greater than a gradient value reversely mapped to the DM, intra_chroma_pred_mode binarization may be performed in the order of the DIMD chroma mode and the DM.

[0149] If the gradient histogram generated in the process of deriving the DIMD chroma mode has a gradient value reversely mapped to DM that is greater than the gradient value reversely mapped to the DIMD chroma mode, the chroma mode list can be configured in the order of list [0], list [1], list [2], list [3], DIMD chroma mode, and DM, such as Fig. 9As shown, intra_chroma_pred_mode may indicate each in the order of indexes 0, 1, 2, 3, 4, and 5. That is, if the gradient value reversely mapped to DM in the gradient histogram generated in the process of deriving the DIMD chroma mode is greater than the gradient value reversely mapped to the DIMD chroma mode, intra_chroma_pred_mode binarization may be performed in the order of DM and DIMD chroma mode.

[0150] Fig.11 It is a schematic diagram for explaining a method for generating a chromaticity mode list based on a gradient histogram generated during a DIMD chromaticity mode derivation process. Specifically, the order of excluding the DIMD chromaticity mode and the default mode of DM in the chromaticity mode list can be determined based on the gradient histogram generated during the DIMD chromaticity mode derivation process.

[0151] Using the gradient histogram generated during the DIMD chroma mode derivation process, the gradient values ​​of the default mode excluding the DIMD chroma mode and DM can be derived and compared, and the chroma mode list can be constructed in the order of the mode with the smaller gradient. In other words, intra_chroma_pred_mode binarization can be performed in the order of the mode with the larger gradient.

[0152] If the gradient value of the default mode in the chroma mode list is list[3]>list[1]>list[0]>list[2], then Fig.11 The chroma mode list is constructed as shown in , and different bits can be allocated to each mode in the chroma mode list to improve coding efficiency. On the other hand, although Fig.11 An example in which the chroma mode list is constructed in the order of the DM and DIMD chroma modes is shown, but the order of the DM and DIMD chroma modes may be arbitrarily changed.

[0153] Fig.12 It is a schematic diagram for explaining a method for generating a chroma mode list based on a gradient histogram generated in a DIMD chroma mode derivation process. Specifically, the order of all modes in the chroma mode list can be determined based on the gradient histogram generated in the DIMD chroma mode derivation process.

[0154] Using the gradient histogram generated during the DIMD chroma mode derivation process, the gradient values ​​of all modes in the chroma mode list can be derived and compared to construct the chroma mode list in the order of modes with smaller gradients. In other words, intra_chroma_pred_mode binarization can be performed in the order of modes with larger gradients.

[0155] If the gradient values ​​of the modes in the chroma mode list are DM>list[3]>DIMD chroma mode>list[1]>list[0]>list[2], then Fig.12 The chroma mode list is constructed as shown in , and different bits can be allocated to each mode in the chroma mode list to improve encoding efficiency.

[0156] On the other hand, in the above-described method of generating a chroma pattern list, overlapping patterns may be checked, and if there are overlapping patterns, they may be replaced with any other specific pattern.

[0157] For example, if there is a mode overlapping with the DM or DIMD chroma mode in List[0], List[1], List[2], and List[3] of the chroma mode list, the overlapping mode may be replaced with mode 66.

[0158] As another example, the modes overlapping with the DM mode in list [0], list [1], list [2], and list [3] of the chroma mode list may be replaced with mode n, and the modes overlapping with the DIMD chroma mode may be replaced with mode m. Here, n and m are different positive integers and may be 66 and 34, respectively.

[0159] Fig.13 is a flowchart illustrating a method of deriving a chroma intra prediction mode according to an embodiment of the present invention.

[0160] refer to Fig.13 , the encoder / decoder may derive the DIMD chrominance mode based on the neighboring reference pixels of the current chrominance block (S1310). Figure 5 or Figure 6 The method of deriving the DIMD chrominance mode from adjacent reference pixels is described to perform step S1310.

[0161] In addition, the encoder / decoder may derive a DM (Direct Mode) from the intra prediction mode of the corresponding luma block (S1320).

[0162] In addition, the encoder / decoder may determine whether the DIMD chroma mode and DM are the same (S1330).

[0163] If the DIMD chroma mode and DM are the same (S1330-Yes), the encoder / decoder may generate a chroma mode list including the DM or DIMD chroma mode (S1340). Here, since the DM and DIMD chroma modes are the same, any mode may be selected.

[0164] On the contrary, if the DIMD chroma mode and DM are not the same (S1330-No), the encoder / decoder may generate a chroma mode list including the DIMD chroma mode and DM (S1350). Figures 9 to 12 A method of generating a chroma mode list including a DIMD chroma mode and a DM is described, and repeated description will be omitted.

[0165] On the other hand, although Fig.13 In step S1340 of the embodiment, it is described that when the DIMD chroma mode and DM are the same, a chroma mode list including DM can be generated, but according to another embodiment of the present invention, DM or DIMD chroma mode can be derived as the chroma intra prediction mode of the current chroma block without generating the chroma mode list. Therefore, information indicating the chroma intra prediction mode of the current chroma block in the chroma mode list (e.g., intra_chroma_pred_mode) may not be signaled (i.e., transmitted or parsed).

[0166] On the other hand, although Fig.13 Step S1340 describes that step S1310 of deriving the DIMD chrominance mode is performed before step S1320 of deriving the DM, but according to another embodiment of the present invention, step S1320 of deriving the DM may be performed before step S1310 of deriving the DIMD chrominance mode.

[0167] Fig.14 is a flowchart illustrating a method of generating a final chroma prediction block based on a weighted sum of a plurality of chroma prediction blocks according to an embodiment of the present invention.

[0168] refer to Fig.14 , the encoder / decoder may derive a first chroma intra prediction mode (S1410) and derive a second chroma intra prediction mode (S1420).

[0169] Specifically, the first chroma intra prediction mode and the second chroma intra prediction mode can be determined from a default mode, a direct mode (DM), a DIMD chroma mode, a cross component linear model (CCLM) mode, and a multi-model linear model (MMLM) mode.

[0170] Here, the default mode may be a planar mode, a mode 50 (ie, a vertical mode), a mode 18 (ie, a horizontal mode), a DC mode, such as Figures 9 to 12The CCLM mode is a cross-component linear model mode, which is a mode for predicting chrominance blocks using a linear model that calculates the correlation between reconstructed luminance component samples at corresponding positions of chrominance component samples. The MMLM mode is a multi-model linear model mode, which is a mode for predicting chrominance blocks using multiple linear models.

[0171] Then, the encoder / decoder can respectively generate a first chroma prediction block based on the first chroma intra prediction mode and a second chroma prediction block based on the second chroma intra prediction mode (S1430), and generate a final chroma prediction block based on the weighted sum of the first chroma prediction block and the second chroma prediction block (S1440).

[0172] [Equation 1]

[0173] Chroma_pred=w0×pred0+w1×pred1

[0174] According to Equation 1, the first weight w0 and the second weight w1 may be applied to the first chroma prediction block pred0 and the second chroma prediction block pred1, respectively, to generate a final chroma prediction block Chroma_pred. Here, the sum of the first weight w0 and the second weight w1 is 1.

[0175] In the method of generating the final chroma prediction block based on the weighted sum, the first chroma intra prediction mode and the second chroma intra prediction mode may be determined from the first chroma intra prediction mode candidate set and the second chroma intra prediction mode candidate set, respectively.

[0176] Table 1 shows various implementations of the first chroma intra prediction mode candidate set and the second chroma intra prediction mode candidate set.

[0177] [Table 1]

[0178]

[0179] According to the first combination of Table 1, the first chroma intra prediction mode candidate set and the second chroma intra prediction mode candidate set can equally include the default mode, DM, DIMD chroma mode, CCLM mode and MMLM mode. In the case of the first combination of Table 1, it can be implemented with a syntax transmission / parsing structure as in Table 2.

[0180] [Table 2]

[0181]

[0182]

[0183] In Table 2, chroma_weight_pred_flag is a syntax for determining whether to use a method based on weighted sum to generate a final chroma prediction block. Therefore, if the chroma_weight_pred_flag syntax is true, the final chroma prediction block can be generated according to the weighted sum of prediction blocks generated based on multiple chroma intra prediction modes. Specifically, intra_chroma_pred_mode_pred0 and intra_chroma_pred_mode_pred1 syntaxes can be transmitted / parsed to generate a first chroma prediction block pred0 and a second chroma prediction block pred1, and the final chroma prediction block Chroma_pred can be derived. Here, intra_chroma_pred_mode_pred0 and intra_chroma_pred_mode_pred1 can be a syntax indicating a first chroma intra prediction mode and a syntax indicating a second chroma intra prediction mode. In Table 2, if the chroma_weight_pred_flag syntax is false, the final chroma prediction block Chroma_pred can be generated from one chroma intra prediction mode. Here, intra_chroma_pred_mode is a syntax indicating a chroma intra prediction mode, and pred means a chroma prediction block generated based on intra_chroma_pred_mode.

[0184] On the other hand, the second to sixth combinations of Table 1 may also be implemented with the syntax transmission / parsing structure as shown in Table 2. In this case, intra_chroma_pred_mode_pred0 and intra_chroma_pred_mode_pred1 may be syntax indicating a first chroma intra prediction mode in a first chroma intra prediction mode candidate set and syntax indicating a second chroma intra prediction mode in a second chroma intra prediction mode candidate set.

[0185] According to the second combination of Table 1, the first chroma intra prediction mode candidate set may include only CCLM, and the second chroma intra prediction mode candidate set may include the default mode, DM, DIMD chroma mode, and MMLM mode. According to the third combination of Table 1, the first chroma intra prediction mode candidate set may include only CCLM, and the second chroma intra prediction mode candidate set may include the default mode, DM, and DIMD chroma mode. For the second and third combinations of Table 1, it can be implemented with a syntax transmission / parsing structure as in Table 3.

[0186] [Table 3]

[0187]

[0188]

[0189] In Table 3, intra_chroma_pred_mode_pred0 and intra_chroma_pred_mode_pred1 are syntax indicating a first chroma intra prediction mode and syntax indicating a second chroma intra prediction mode, and chroma_weight_pred_flag is syntax determining whether to use a method of generating a final chroma prediction block based on a weighted sum.

[0190] According to Table 3, the intra_chroma_pred_mode_pred0 syntax may be transmitted / parsed to generate the first chroma prediction block pred0. If the first chroma prediction block pred0 is not a CCLM predicted block, the final chroma prediction block Chroma_pred may be set to the first chroma prediction block pred0. Conversely, if the first chroma prediction block pred0 is a CCLM predicted block, the chroma_weight_pred_flag syntax may be transmitted / parsed. If the chroma_weight_pred_flag syntax is false, the final chroma prediction block Chroma_pred may be set to the CCLM predicted block pred_CCLM (i.e., the first chroma prediction block pred0). If the chroma_weight_pred_flag syntax is true, the intra_chroma_pred_mode_pred1 syntax may be transmitted / parsed and the final chroma prediction block Chroma_pred may be generated based on intra_chroma_pred_mode_pred1 by the weighted sum of the CCLM predicted block pred_CCLM (ie, the first chroma prediction block pred0) and the second chroma prediction block pred1.

[0191] According to the fourth combination of Table 1, the first chroma intra prediction mode candidate set may include only MMLM, and the second chroma intra prediction mode candidate set may include a default mode, DM, DIMD chroma mode, and CCLM mode. According to the fifth combination of Table 1, the first chroma intra prediction mode candidate set may include only MMLM, and the second chroma intra prediction mode candidate set may include a default mode, DM, and DIMD chroma mode. For the fourth and fifth combinations of Table 1, it can be implemented with a syntax transmission / parsing structure as in Table 4.

[0192] [Table 4]

[0193]

[0194]

[0195] In Table 4, intra_chroma_pred_mode_pred0 and intra_chroma_pred_mode_pred1 are syntax indicating a first chroma intra prediction mode and syntax indicating a second chroma intra prediction mode, and chroma_weight_pred_flag is syntax determining whether to use a method of generating a final chroma prediction block based on a weighted sum.

[0196] According to Table 4, the intra_chroma_pred_mode_pred0 syntax may be transmitted / parsed to generate the first chroma prediction block pred0. If the first chroma prediction block pred0 is not a block predicted by MMLM, the final chroma prediction block Chroma_pred may be set to the first chroma prediction block pred0. Conversely, if the first chroma prediction block pred0 is a block predicted by MMLM, the chroma_weight_pred_flag syntax may be transmitted / parsed. If the chroma_weight_pred_flag syntax is false, the final chroma prediction block Chroma_pred may be set to the block pred_MMLM predicted by MMLM (i.e., the first chroma prediction block pred0). If the chroma_weight_pred_flag syntax is true, the intra_chroma_pred_mode_pred1 syntax may be transmitted / parsed and a final chroma prediction block Chroma_pred may be generated based on intra_chroma_pred_mode_pred1 by a weighted sum of the MMLM predicted block pred_MMLM (ie, the first chroma prediction block pred0) and the second chroma prediction block pred1.

[0197] According to the sixth combination of Table 1, the first chroma intra prediction mode candidate set may include CCLM and MMLM, and the second chroma intra prediction mode candidate set may include the default mode, DM and DIMD chroma modes. For the sixth combination of Table 1, it can be implemented with a syntax transmission / parsing structure as in Table 5.

[0198] [Table 5]

[0199]

[0200] In Table 5, intra_chroma_pred_mode_pred0 and intra_chroma_pred_mode_pred1 are syntax indicating a first chroma intra prediction mode and syntax indicating a second chroma intra prediction mode, and chroma_weight_pred_flag is syntax determining whether to use a method of generating a final chroma prediction block based on a weighted sum.

[0201] According to Table 5, the intra_chroma_pred_mode_pred0 syntax may be transmitted / parsed to generate the first chroma prediction block pred0. If the first chroma prediction block pred0 is not a block predicted by CCLM or MMLM, the final chroma prediction block Chroma_pred may be set to the first chroma prediction block pred0. Conversely, if the first chroma prediction block pred0 is a block predicted by CCLM or MMLM, the chroma_weight_pred_flag syntax may be transmitted / parsed. If the chroma_weight_pred_flag syntax is false, the final chroma prediction block Chroma_pred may be set to the first chroma prediction block pred0. If the chroma_weight_pred_flag syntax is true, the intra_chroma_pred_mode_pred1 syntax may be transmitted / parsed, and the final chroma prediction block Chroma_pred may be generated by the weighted sum of the first chroma prediction block pred0 and the second chroma prediction block pred1 based on the intra_chroma_pred_mode_pred1.

[0202] On the other hand, despite Fig.14 Tables 1 to 5 describe a method of generating a final chroma prediction block by a weighted sum of two chroma prediction blocks, but the final chroma prediction block may be generated by a weighted sum of N chroma prediction blocks generated from any N chroma intra prediction modes. In this case, the sum of the weights used in the weighted sum may be 1 (w0+w1+...+wN=1).

[0203] On the other hand, in the above-mentioned method of generating the final chrominance prediction block based on the weighted sum, the weights can be predetermined by weight information (e.g., w0=0.5, w1=0.5) or adaptively determined. For example, the weight information can be derived by an implicit method derived from neighboring blocks or an explicit method signaled by a bitstream.

[0204] Fig.15 is a flowchart illustrating an image decoding method according to an embodiment of the present invention. Fig.15 The image decoding method can be performed by an image decoding device.

[0205] refer to Fig.15 , the image decoding apparatus may generate a chroma mode list of the current chroma block (S1510). Here, the chroma mode list may include at least one of a default mode, a derived chroma mode, and a direct mode.

[0206] The derived chroma mode is the aforementioned DIMD chroma mode, which can be derived using reconstructed pixels of a corresponding luminance block at a corresponding position of the current chroma block, or can be derived using reconstructed adjacent reference pixels of the current chroma block.

[0207] When the reconstructed pixels of the corresponding block are used to derive the derivation-based chrominance mode, the reconstructed pixels of the corresponding block may be pixels selected by sampling among pixels in the corresponding luma block.

[0208] When the reconstructed adjacent reference pixels are used to derive the derived chroma mode, the adjacent reference pixels may include at least one of adjacent reference pixels adjacent to the current chroma block or adjacent reference pixels adjacent to the corresponding luminance block of the current chroma block. Alternatively, the adjacent reference pixels may be pixels directly adjacent to the current chroma block.

[0209] exist Figure 4 and Figures 5 and 6 The derivation of the chromaticity mode based on inference is described in detail in .

[0210] On the other hand, according to one embodiment of the present invention, the chroma mode list may be constructed in the order of a direct mode, a derived chroma mode, and a default mode.

[0211] Alternatively, the chroma mode list may be constructed in an order determined based on a gradient histogram used to derive the chroma mode.

[0212] On the other hand, according to an embodiment of the present invention, if the direct mode and the derived chroma mode are the same intra prediction mode, the chroma intra prediction mode of the current chroma block may be set to the same intra prediction mode.

[0213] On the other hand, according to one embodiment of the present invention, if there is a default mode with the same intra prediction mode as the direct mode or the derived chroma mode, the default mode can be replaced by a predefined chroma intra prediction mode. Here, the predefined chroma intra prediction mode can be the last directional intra prediction mode (e.g., mode 66).

[0214] In addition, the image decoding apparatus may derive a chroma intra prediction mode of the current chroma block based on the chroma mode list generated in step S1510 (S1520). Specifically, the image decoding apparatus may derive a chroma intra prediction mode of the current chroma block based on at least one chroma intra prediction mode candidate in the chroma mode list.

[0215] According to one embodiment of the present invention, the encoder may transmit information indicating the chroma intra prediction mode of the current chroma block in the chroma mode list, and the decoder may parse the information indicating the chroma intra prediction mode to derive the chroma intra prediction mode of the current chroma block. Here, the information indicating the chroma intra prediction mode may be intra_chroma_pred_mode.

[0216] In addition, the image decoding apparatus may generate a prediction block of the current chroma block based on the chroma intra prediction mode derived in step S1520 ( S1530 ).

[0217] On the other hand, it can be performed in the same manner as in the image encoding method Fig.15 Alternatively, you can include Fig.15 The image encoding method of the steps described in the above is used to generate a bit stream. The bit stream can be stored in a non-volatile computer-readable recording medium and can also be transmitted (or streamed).

[0218] Fig.16 A content streaming system to which an embodiment according to the present invention can be applied is exemplarily shown.

[0219] like Fig.16 As shown, the content streaming system to which the embodiment of the present invention is applied may mainly include an encoding server, a streaming server, a network server, a media storage device, a user device and a multimedia input device.

[0220] The encoding server compresses the content received from the multimedia input device such as a smartphone, a camera, a CCTV, etc. into digital data to generate a bit stream and transmits it to the streaming server. As another example, if the multimedia input device such as a smartphone, a camera, a CCTV, etc. directly generates a bit stream, the encoding server can be omitted.

[0221] A bitstream may be generated by the image encoding method and / or the image encoding device to which the embodiments of the present invention are applied, and a streaming server may temporarily store the bitstream in the process of transmitting or receiving the bitstream.

[0222] The streaming server sends multimedia data to the user device based on a user request via the network server, and the network server can act as an intermediary to notify the user of any available services. When the user requests a desired service from the network server, the network server sends it to the streaming server, and the streaming server can send the multimedia data to the user. At this time, the content streaming system may include a separate control server, and in this case, the control server can control the command / response between the devices within the content streaming system.

[0223] The streaming server can receive content from a media storage device and / or an 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 stable streaming service, the streaming server can store the bitstream for a period of time.

[0224] 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 PCs, ultrabooks, wearable devices (e.g., smart watches, smart glasses, HMDs), digital televisions, desktop computers, digital signage, etc.

[0225] Each server in the above-described content streaming system may operate as a distributed server, in which case data received from each server may be distributed and processed.

[0226] The above-mentioned embodiments may be performed in the same or corresponding manner in the encoding device and the decoding device. In addition, an image may be encoded / decoded using at least one or a combination of at least one of the above-mentioned embodiments.

[0227] The order of applying the above-described embodiments may be different in the encoding device and the decoding device. Alternatively, the order of applying the above-described embodiments may be the same in the encoding device and the decoding device.

[0228] The above-described embodiments may be performed on each of the luminance signal and the chrominance signal. Alternatively, the above-described embodiments of the luminance signal and the chrominance signal may be performed identically.

[0229] In the above-mentioned embodiment, the method is described based on a flow chart with a series of steps or units, but the present invention is not limited to the order of the steps, on the contrary, some steps can be performed simultaneously with other steps or in different orders. In addition, it should be understood by those of ordinary skill in the art that the steps in the flow chart are not mutually exclusive, and other steps can be added to the flow chart or some steps can be deleted from the flow chart without affecting the scope of the present invention.

[0230] The embodiments can be implemented in the form of program instructions, which can be executed by various computer components and recorded in a computer-readable recording medium. The computer-readable recording medium may include independent program instructions, data files, data structures, etc., or a combination thereof. The program instructions recorded in the computer-readable recording medium may be specially designed and constructed for the present invention, or are well known to those of ordinary skill in the field of computer software technology.

[0231] The bit stream generated by the encoding method according to the above-mentioned embodiment can be stored in a non-volatile computer-readable recording medium. In addition, the bit stream stored in the non-volatile computer-readable recording medium can be decoded by the decoding method according to the above-mentioned embodiment.

[0232] Examples of computer-readable recording media include: magnetic recording media such as hard disks, floppy disks, and magnetic tapes; optical data storage media such as CD-ROMs or DVD-ROMs; magneto-optical media such as floppy disks; and hardware devices such as read-only memory (ROM), random access memory (RAM), flash memory, etc., which are specially configured to store and execute program instructions. Examples of program instructions include not only machine language codes formatted by a compiler, but also high-level language codes that can be implemented by a computer using an interpreter. The hardware device can be configured to be operated by one or more software modules or vice versa to perform the process according to the present invention.

[0233] Although the present invention has been described in terms of specific items such as detailed elements and limited embodiments and drawings, they are provided only to help a more comprehensive understanding of the present invention, and the present invention is not limited to the above embodiments. It will be appreciated by those skilled in the art that various modifications and changes can be made based on the above description.

[0234] Therefore, the spirit of the present invention should not be limited to the above-described embodiments, and the full scope of the appended claims and their equivalents will fall within the scope and spirit of the present invention.

[0235] Industrial Applicability

[0236] The present invention can be used in an apparatus for encoding / decoding an image and a recording medium for storing a bit stream.

Claims

1. An image decoding method, include: Generate a chroma mode list for the current chroma block; Derives a chroma intra prediction mode of a current chroma block based on the chroma mode list; as well as Generate a prediction block for the current chroma block based on the chroma intra prediction mode, The chroma mode list includes at least one of a default mode, a derived chroma mode, or a direct mode.

2. The image decoding method according to claim 1, in, The derived chroma mode is derived using reconstructed pixels of the corresponding luma block at corresponding positions of the current chroma block.

3. The image decoding method according to claim 2, in, The reconstructed pixels of the corresponding luminance block are the pixels selected by sampling.

4. The image decoding method according to claim 1, in, The derived chroma mode is derived using reconstructed neighboring reference pixels of the current chroma block.

5. The image decoding method according to claim 4, in, The neighboring reference pixels are pixels directly adjacent to the current chroma block.

6. The image decoding method according to claim 4, in, The neighboring reference pixels include at least one of neighboring reference pixels neighboring the current chroma block or a neighboring reference block neighboring a corresponding block of the current chroma block.

7. The image decoding method according to claim 1, in, The chroma mode list is configured in the order of direct mode, derivation-based chroma mode, and default mode.

8. The image decoding method according to claim 1, in, The chroma mode list is configured in an order determined based on a gradient histogram used to derive the derived chroma mode.

9. The image decoding method according to claim 1, in, When the direct mode and the derivation-based chroma mode are the same intra prediction mode, the chroma intra prediction mode of the current chroma block is set to the same intra prediction mode.

10. The image decoding method according to claim 1, in, When there is a default mode with the same intra prediction mode as the direct mode or the derived-based chroma mode, the default mode is replaced with the predefined chroma intra prediction mode.

11. A method for encoding an image, include: Generate a chroma mode list for the current chroma block; Derives a chroma intra prediction mode of a current chroma block based on the chroma mode list; as well as Generate a prediction block for the current chroma block based on the chroma intra prediction mode, The chroma mode list includes at least one of a default mode, a derived chroma mode, or a direct mode.

12. A non-volatile computer-readable recording medium for storing a bit stream generated by an image encoding method, the image encoding method include: Generate a chroma mode list for the current chroma block; Derives a chroma intra prediction mode of a current chroma block based on the chroma mode list; as well as Generate a prediction block for the current chroma block based on the chroma intra prediction mode, The chroma mode list includes at least one of a default mode, a derived chroma mode, or a direct mode.

13. A method for transmitting a bit stream generated by an image encoding method, the method include: Transmit bit stream, Wherein, the image encoding method comprises: Generate a chroma mode list for the current chroma block; Derives a chroma intra prediction mode of a current chroma block based on the chroma mode list; and Generate a prediction block for the current chroma block based on the chroma intra prediction mode, The chroma mode list includes at least one of a default mode, a derived chroma mode, or a direct mode.