Intra prediction device, image encoding device, image decoding device, and program

JP2025029101A5Pending Publication Date: 2026-05-08NIPPON HOSO KYOKAI
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
NIPPON HOSO KYOKAI
Filing Date
2024-12-03
Publication Date
2026-05-08

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

To provide an intra prediction device, an image encoding device, an image decoding device, and a program that can prevent an increase of additional information to be transmitted even when applying a cross-component linear model prediction (CCLM) thereto.SOLUTION: An intra prediction device performs intra prediction of a luminance block and a color difference block generated by dividing an image, and comprises a cross-component linear model prediction unit that predicts a color difference block from a decoded luminance block at a position corresponding to the position of the color difference block, by using a linear model calculated from reference pixels of the luminance and color difference of the periphery of the color difference block. The cross-component linear model prediction unit includes a reference pixel position selection unit that selects a linear model calculation pixel position that is the position of a reference pixel used for calculation of a linear model on the basis of a luminance intra prediction mode that is an intra prediction mode applied to intra prediction of the decoded luminance block.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to an intra prediction device, an image encoding device, an image decoding device, and a program. [Background technology]

[0002] Research has been conducted into video coding methods to compress the data volume of still images and moving images during transmission and storage. In recent years, the spread of ultra-high resolution video, such as 8K-SHV, has progressed in video coding technology, and coding methods such as AVC / H.264 and HEVC / H.265 are known as methods for transmitting huge amounts of moving image data.

[0003] Versatile Video Coding (VVC), a next-generation coding method jointly standardized by MPEG, which was jointly established by ISO (International Organization for Standardization) and IEC (International Electrotechnical Commission), and ITU (International Telecommunication Union), uses intra-prediction that exploits spatial correlation within a frame. In intra-prediction, the image coding device uses decoded reference pixels around the target block of intra-prediction to select the most appropriate intra-prediction mode from among intra-prediction modes consisting of planar prediction, DC prediction, and multiple directional predictions, and transmits information indicating the selected intra-prediction mode to the image decoding device.

[0004] It is generally known that the spatial characteristics of the luminance and chrominance components that compose an image are similar. Under this premise, cross-component linear model prediction (CCLM) for predicting chrominance blocks is introduced into VVC (see Non-Patent Document 1).

[0005] CCLM predicts a chrominance block from a decoded luminance block at a position corresponding to the position of the chrominance block, using a linear model calculated from luminance and chrominance reference pixels surrounding the chrominance block.

[0006] When applying CCLM to a chrominance block, it is possible to select one of three CCLM modes, which differ in the positions of the luminance and chrominance reference pixels used to calculate the linear model, and the image encoding device transmits CCLM mode information indicating which of the three CCLM modes has been selected to the image decoding device. [Prior art documents] [Non-patent literature]

[0007] [Non-Patent Document 1] JVET-N1001 Versatile Video Coding (Draft 5) DISCLOSURE OF THEINVENTION

[0008] However, when CCLM is applied, although it is possible to improve the prediction accuracy for chrominance blocks, CCLM mode information needs to be transmitted from the image encoding device to the image decoding device for each chrominance block, which increases the amount of additional information to be transmitted and may reduce encoding efficiency.

[0009] Therefore, an object of the present invention is to provide an intra prediction device, an image encoding device, an image decoding device, and a program that are capable of suppressing an increase in additional information to be transmitted even when CCLM is applied.

[0010] An intra prediction device according to a first aspect predicts a luminance block and a chrominance block obtained by dividing an image by intra prediction. The intra prediction device includes an inter-component linear model prediction unit that predicts the chrominance block from a decoded luminance block at a position corresponding to the position of the chrominance block, using a linear model calculated from luminance and chrominance reference pixels surrounding the chrominance block. The inter-component linear model prediction unit controls the calculation of the linear model based on a luminance intra prediction mode that is an intra prediction mode applied to the intra prediction of the decoded luminance block.

[0011] An image encoding device according to a second aspect includes the intra prediction device according to the first aspect.

[0012] An image decoding device according to a third aspect includes the intra prediction device according to the first aspect.

[0013] A program according to a fourth aspect causes a computer to function as the intra prediction device according to the first aspect.

[0014] According to the present invention, it is possible to provide an intra prediction device, an image encoding device, an image decoding device, and a program that are capable of suppressing an increase in additional information to be transmitted even when CCLM is applied. [Brief description of the drawings]

[0015] [Figure 1] FIG. 1 is a diagram showing a configuration of an image encoding device according to an embodiment. [Diagram 2] FIG. 11 is a diagram showing candidates of intra prediction modes for a luminance block according to the embodiment. [Diagram 3] FIG. 2 is a diagram showing three CCLM modes according to an embodiment. [Figure 4] FIG. 2 is a diagram illustrating a configuration of an inter-component linear model prediction unit of an image encoding device according to an embodiment. [Diagram 5] FIG. 2 is a diagram showing a configuration of an image decoding device according to an embodiment. [Figure 6] 1 is a diagram illustrating a configuration of an inter-component linear model prediction unit of an image decoding device according to an embodiment. [Figure 7] FIG. 11 is a diagram showing an operation of intra prediction in the image decoding device according to the embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0016] An image encoding device and an image decoding device according to an embodiment will be described with reference to the drawings. The image encoding device and the image decoding device according to the embodiment respectively encode and decode moving images as represented by MPEG. In the following description of the drawings, the same or similar parts are denoted by the same or similar reference numerals.

[0017] <Configuration of the image encoding device> First, the configuration of an image coding device according to this embodiment will be described. Fig. 1 is a diagram showing the configuration of an image coding device 1 according to this embodiment.

[0018] As shown in FIG. 1, the image encoding device 1 includes a block division unit 100, a subtraction unit 110, a transformation and quantization unit 120, an entropy encoding unit 130, an inverse quantization and inverse transform unit 140, a synthesis unit 150, a memory 160, and a prediction unit 170.

[0019] The block division unit 100 divides an original image, which is an input image in units of frames (or pictures) constituting a moving image, into a plurality of image blocks, and outputs the image blocks obtained by division to the subtraction unit 110. The size of the image block is, for example, 32×32 pixels, 16×16 pixels, 8×8 pixels, or 4×4 pixels. The shape of the image block is not limited to a square, but may be a rectangle (non-square). The image block is a unit for encoding by the image encoding device 1 (i.e., a block to be encoded) and a unit for decoding by the image decoding device (i.e., a block to be decoded). Such an image block may be called a CU (Coding Unit).

[0020] The input image is composed of a luminance signal (Y) and a color difference signal (Cb, Cr), and each pixel in the input image is composed of a luminance component (Y) and a color difference component (Cb, Cr). The image encoding device 1 supports three color difference formats, for example, 4:4:4, 4:2:2, and 4:2:0. The block division unit 100 outputs a luminance block by performing block division on the luminance signal, and outputs a color difference block by performing block division on the color difference signal. In the following, a case where the shape of the block division is the same for the luminance signal and the color difference signal will be mainly described, but the division may be independently controlled for the luminance signal and the color difference signal. When the luminance block and the color difference block are not particularly distinguished, they are simply called the block to be encoded.

[0021] The subtraction unit 110 calculates a prediction residual representing a difference (error) between a current block to be coded output from the block division unit 100 and a prediction block obtained by predicting the current block to be coded by the prediction unit 170. Specifically, the subtraction unit 110 calculates the prediction residual by subtracting each pixel value of the prediction block from each pixel value of the block, and outputs the calculated prediction residual to the transformation / quantization unit 120.

[0022] The transform / quantization unit 120 performs orthogonal transform processing and quantization processing on a block-by-block basis. The transform / quantization unit 120 includes a transform unit 121 and a quantization unit 122.

[0023] The transform unit 121 performs an orthogonal transform process on the prediction residual output from the subtraction unit 110 to calculate an orthogonal transform coefficient, and outputs the calculated orthogonal transform coefficient to the quantization unit 122. The orthogonal transform refers to, for example, a discrete cosine transform (DCT), a discrete sine transform (DST), a Karhunen-Loeve transform (KLT), or the like.

[0024] The quantization unit 122 quantizes the orthogonal transform coefficients output from the transformation unit 121 using a quantization parameter (Qp) and a quantization matrix, and outputs the quantized orthogonal transform coefficients to the entropy coding unit 130 and the inverse quantization / inverse transform unit 140. Note that the quantization parameter (Qp) is a parameter commonly applied to each orthogonal transform coefficient in a block, and is a parameter that determines the coarseness of quantization. The quantization matrix is ​​a matrix whose elements are quantization values ​​used when quantizing each orthogonal transform coefficient.

[0025] The entropy coding unit 130 performs entropy coding on the orthogonal transform coefficients output from the quantization unit 122, performs data compression to generate coded data (bit stream), and outputs the coded data to the outside of the image coding device 1. For the entropy coding, Huffman codes, CABAC (Context-based Adaptive Binary Arithmetic Coding), etc. can be used. Note that information such as a flag and an identifier related to prediction is input from the prediction unit 170 to the entropy coding unit 130, and the entropy coding is also performed on the input information.

[0026] The inverse quantization and inverse transform unit 140 performs inverse quantization processing and inverse orthogonal transform processing on a block-by-block basis. The inverse quantization and inverse transform unit 140 includes an inverse quantization unit 141 and an inverse transform unit 142.

[0027] The inverse quantization unit 141 performs an inverse quantization process corresponding to the quantization process performed by the quantization unit 122. Specifically, the inverse quantization unit 141 restores the orthogonal transform coefficients by inverse quantizing the orthogonal transform coefficients output from the quantization unit 122 using a quantization parameter (Qp) and a quantization matrix, and outputs the restored orthogonal transform coefficients to the inverse transform unit 142.

[0028] The inverse transform unit 142 performs inverse orthogonal transform processing corresponding to the orthogonal transform processing performed by the transform unit 121. For example, when the transform unit 121 performs discrete cosine transform, the inverse transform unit 142 performs inverse discrete cosine transform. The inverse transform unit 142 performs inverse orthogonal transform processing on the orthogonal transform coefficients output from the inverse quantization unit 141 to restore prediction residuals, and outputs restored prediction residuals, which are the restored prediction residuals, to the synthesis unit 150.

[0029] The synthesis unit 150 synthesizes, on a pixel-by-pixel basis, the reconstructed prediction residual output from the inverse transform unit 142 with the predicted block output from the prediction unit 170. The synthesis unit 150 adds each pixel value of the reconstructed prediction residual to each pixel value of the predicted block to decode (reconstruct) the block to be coded, and outputs the decoded block to the memory 160. Note that the decoded block may also be called a reconstructed block.

[0030] The memory 160 stores the decoded blocks output from the synthesis unit 150, and accumulates the decoded blocks as decoded images on a frame-by-frame basis. The memory 160 outputs the stored decoded blocks or decoded images to the prediction unit 170. Note that a loop filter may be provided between the synthesis unit 150 and the memory 160.

[0031] The prediction unit 170 performs prediction on a block-by-block basis. The prediction unit 170 includes an inter prediction unit 171, an intra prediction unit 172, and a switching unit 173. In this embodiment, the intra prediction unit 172 corresponds to an intra prediction device provided in the image encoding device 1.

[0032] The inter prediction unit 171 uses the decoded image stored in the memory 160 as a reference image, calculates a motion vector by a method such as block matching, predicts the block to be coded, generates an inter prediction block, and outputs the generated inter prediction block to the switching unit 173. Here, the inter prediction unit 171 selects an optimal inter prediction method from inter prediction using multiple reference images (typically, bi-prediction) and inter prediction using one reference image (unidirectional prediction), and performs inter prediction using the selected inter prediction method. The inter prediction unit 171 outputs information related to the inter prediction (motion vector, etc.) to the entropy coding unit 130.

[0033] The intra prediction unit 172 generates an intra prediction block by referring to decoded pixels around the block to be coded among the decoded images stored in the memory 160, and outputs the generated intra prediction block to the switching unit 173. In general, the intra prediction unit 172 selects an intra prediction mode to be applied to a block to be predicted for intra prediction from among a plurality of intra prediction modes, and predicts the block to be predicted for intra prediction using the selected intra prediction mode. The intra prediction unit 172 outputs information about the selected intra prediction mode to the entropy coding unit 130.

[0034] The switching unit 173 switches between the inter predicted block output from the inter prediction unit 171 and the intra predicted block output from the intra prediction unit 172, and outputs either the predicted block to the subtraction unit 110 and the synthesis unit 150.

[0035] In the image encoding device 1 configured in this manner, the intra prediction unit 172 performs intra prediction on a luminance block and a chrominance block. Here, candidates for the intra prediction mode of the luminance block are planar prediction, DC prediction, and 65 types of directional prediction, and there are a total of 67 types of intra prediction modes.

[0036] FIG. 2 is a diagram showing candidates of intra prediction modes for a luminance block according to the present embodiment. In this figure, candidates of intra prediction modes used for a luminance block among blocks to be coded are shown. As shown in FIG. 2, there are 67 prediction modes from 0 to 66. The prediction mode mode "0" is planar prediction, the prediction mode mode "1" is DC prediction, and the prediction mode modes "2" to "66" are directional prediction. In directional prediction, the direction of the arrow indicates the reference direction, the starting point of the arrow indicates the position of the pixel to be predicted, and the end point of the arrow indicates the position of the reference pixel to be used for predicting the pixel to be predicted. As reference directions parallel to the diagonal line passing through the upper right vertex and the lower left vertex of the block, there are mode "2" which is a prediction mode that refers to the lower left direction, and mode "66" which is a prediction mode that refers to the upper right direction, and mode numbers are assigned at predetermined angles from mode "2" to mode "66" in a clockwise direction.

[0037] On the other hand, the number of candidates for the intra prediction mode of the chrominance block is smaller than the number of candidates for the intra prediction mode of the luminance block. Specifically, in the intra prediction of the chrominance block, the intra prediction unit 172 determines the intra prediction mode used for the intra prediction of the luminance block at a position corresponding to the position of the chrominance block as a first candidate mode, determines a second candidate mode that does not overlap with the first candidate mode, and selects the intra prediction mode to be used for the intra prediction of the chrominance block from among these candidate modes. Such a first candidate mode is called DM (Direct Mode or Derived Mode).

[0038] Furthermore, when any of the default modes predefined as the second candidate modes overlaps with the first candidate mode (DM), the intra prediction unit 172 determines an alternative mode to be used as the second candidate mode instead of the overlapping default mode. Here, the default modes are the planar mode (mode 0), the vertical mode (mode 50), the horizontal mode (mode 18), and the DC mode (mode 1). As the alternative mode, a fixed intra prediction mode other than the default mode, for example, mode 66, is used.

[0039] Note that the luminance block at a position corresponding to the position of the chrominance block refers to a luminance block at the same position as the chrominance block when the block division shapes of the luminance block and the chrominance block are the same. However, when the block division shapes of the luminance block and the chrominance block can be controlled independently, the luminance block at a position corresponding to the position of the chrominance block refers to a luminance block including coordinates corresponding to a predefined pixel position in the chrominance block (e.g., the coordinates of the upper left corner of the chrominance block). Here, the coordinates corresponding to the predefined pixel position in the chrominance block are not necessarily the same coordinates because the sizes of luminance and chrominance may differ in a chrominance format such as 4:2:0.

[0040] Furthermore, as an intra prediction mode specific to chrominance blocks, there is a component-by-component linear model prediction (CCLM) that predicts a chrominance block from a decoded luminance block at a position corresponding to the position of the chrominance block by using a linear model calculated from luminance and chrominance reference pixels around the chrominance block to be predicted. In CCLM, it is possible to select from three CCLM modes that differ in the positions of the luminance and chrominance reference pixels used in calculating the linear model (hereinafter referred to as "linear model calculation pixel positions").

[0041] Fig. 3 is a diagram showing three CCLM modes according to this embodiment, in which an example is shown in which linear model calculation pixel positions are four pixel positions.

[0042] The LT_CCLM mode shown in Fig. 3(a) is a CCLM mode in which both the upper and left positions of the chrominance block to be predicted are linear model calculation pixel positions. When the LT_CCLM mode is selected, that is, when both the upper and left positions of the chrominance block to be predicted are selected as linear model calculation pixel positions, the intra prediction unit 172 calculates a linear model using the upper and left reference pixels #1 to #4 shown in Fig. 3(a).

[0043] The T_CCLM mode shown in Fig. 3(b) is a CCLM mode in which the upper position of the chrominance block to be predicted is the linear model calculation pixel position. When the T_CCLM mode is selected, that is, when the upper position of the chrominance block to be predicted is selected as the linear model calculation pixel position, the intra prediction unit 172 calculates a linear model using the upper reference pixels #1 to #4 shown in Fig. 3(b).

[0044] The L_CCLM mode shown in Fig. 3(c) is a CCLM mode in which the left position of the chrominance block to be predicted is the linear model calculation pixel position. When the T_CCLM mode is selected, that is, when the left position of the chrominance block to be predicted is selected as the linear model calculation pixel position, the intra prediction unit 172 calculates a linear model using the reference pixels #1 to #4 on the left side shown in Fig. 3(c).

[0045] The intra prediction unit 172 has an inter-component linear model prediction unit 1721 that predicts a chrominance block to be predicted using CCLM. Fig. 4 is a diagram showing the configuration of the inter-component linear model prediction unit 1721 according to this embodiment.

[0046] As shown in FIG. 4, the inter-component linear model prediction unit 1721 has a luma intra prediction mode acquisition unit 1721a, a reference pixel position selection unit 1721b, a reference pixel acquisition unit 1721c, a linear model calculation unit 1721d, and a chrominance predicted pixel generation unit 1721e.

[0047] The luma intra prediction mode acquisition unit 1721a acquires a luma intra prediction mode, which is an intra prediction mode applied to a decoded luma block located at a position corresponding to the position of a chroma block to be predicted, from the memory 160. Specifically, the luma intra prediction mode acquisition unit 1721a acquires a mode number (any of 0 to 66) of the luma intra prediction mode, and outputs the acquired mode number to the reference pixel position selection unit 1721b.

[0048] However, if inter prediction has been applied to a decoded luminance block located at a position corresponding to the position of the chrominance block to be predicted, or if the luminance block located at a position corresponding to the position of the chrominance block to be predicted has not been decoded (i.e., is undecoded), the luminance intra prediction mode acquisition unit 1721a outputs information to that effect to the reference pixel position selection unit 1721b.

[0049] The reference pixel position selection unit 1721b selects a linear model calculation pixel position, which is the position of a reference pixel used in calculating a linear model, based on the luma intra prediction mode acquired by the luma intra prediction mode acquisition unit 1721a. In this embodiment, the reference pixel position selection unit 1721b selects one CCLM mode to be applied to the chroma block to be predicted from the above-mentioned three CCLM modes based on the mode number of the luma intra prediction mode output from the luma intra prediction mode acquisition unit 1721a, and outputs CCLM mode information indicating the selected CCLM mode to the reference pixel acquisition unit 1721c.

[0050] In this manner, in this embodiment, focusing on the fact that the spatial characteristics of the luminance component and the chrominance component at the same position in the image are similar, the linear model calculation pixel position is selected based on the luminance intra prediction mode. For example, when an intra prediction mode is applied in which intra prediction is performed using only reference pixels located on the left side of a luminance block, it is highly likely that a CCLM mode (i.e., L_CCLM mode) in which a linear model is calculated using only reference pixels on the left side is also used for intra prediction of the corresponding chrominance block.

[0051] Here, the luma intra prediction mode is information that can be used in both the image encoding device 1 and the image decoding device. Therefore, in both the image encoding device 1 and the image decoding device, by implicitly selecting the linear model calculation pixel position based on the luma intra prediction mode, it becomes unnecessary to transmit CCLM mode information from the image encoding device to the image decoding device. Therefore, it is possible to suppress an increase in additional information to be transmitted, and to improve the coding efficiency.

[0052] In this embodiment, when the luminance intra prediction mode is an intra prediction mode that refers to both the upper and left reference pixels of the luminance block, the reference pixel position selection unit 1721b selects both the upper and left positions of the chrominance block to be predicted as linear model calculation pixel positions. In other words, when the luminance intra prediction mode is an intra prediction mode that refers to both the upper and left reference pixels of the luminance block, the reference pixel position selection unit 1721b selects the LT_CCLM mode.

[0053] A case where the luminance intra prediction mode is an intra prediction mode that references both reference pixels above and to the left of the luminance block refers to a case where, for example, assuming a square luminance block in VVC, the mode number of the luminance intra prediction mode is 0 (planar prediction mode), 1 (DC prediction mode), or any of the directional prediction modes from 19 to 49.

[0054] Also, when the luma intra prediction mode is an intra prediction mode that does not refer to the reference pixels on the left side of the luma block but refers to the reference pixels on the upper side of the luma block, the reference pixel position selection unit 1721b selects the upper position of the chroma block to be predicted as the linear model calculation pixel position. In other words, when the luma intra prediction mode is an intra prediction mode that does not refer to the reference pixels on the left side of the luma block but refers to the reference pixels on the upper side of the luma block, the reference pixel position selection unit 1721b selects the T_CCLM mode.

[0055] An intra-prediction mode that references the reference pixels above the luminance block without reference to the reference pixels to the left of the luminance block refers to a case where the mode number of the luminance intra-prediction mode is any of 50 to 66, assuming a square luminance block in VVC, for example.

[0056] Furthermore, when the luma intra prediction mode is an intra prediction mode that does not refer to the reference pixels on the upper side of the luma block but refers to the reference pixels on the left side of the luma block, the reference pixel position selection unit 1721b selects the position on the left side of the chroma block to be predicted as the linear model calculation pixel position. In other words, when the luma intra prediction mode is an intra prediction mode that does not refer to the reference pixels on the upper side of the luma block but refers to the reference pixels on the left side of the luma block, the reference pixel position selection unit 1721b selects the L_CCLM mode.

[0057] An intra-prediction mode that references the reference pixels to the left of the luminance block without reference to the reference pixels above the luminance block refers to a case where the mode number of the luminance intra-prediction mode is any of 2 to 18, assuming a square luminance block in VVC, for example.

[0058] In this way, according to this embodiment, by utilizing the property that the spatial characteristics of the luminance component and the chrominance component at the same position in an image are similar, an appropriate CCLM mode can be selected from three CCLM modes based on the luminance intra prediction mode.

[0059] However, when inter prediction is applied to the decoded luminance block, or when a luminance block at a position corresponding to the position of the chrominance block has not been decoded, the reference pixel position selection unit 1721b selects a predetermined reference pixel position as a linear model calculation pixel position. For example, when inter prediction is applied to the decoded luminance block, or when a luminance block at a position corresponding to the position of the chrominance block has not been decoded, the reference pixel position selection unit 1721b selects the LT_CCLM mode.

[0060] The reference pixel acquisition unit 1721c acquires, from the memory 160, luminance and chrominance reference pixels located at the linear model calculation pixel positions selected by the reference pixel position selection unit 1721b based on the CCLM mode information output from the reference pixel position selection unit 1721b, and outputs each of the acquired reference pixels to the linear model calculation unit 1721d.

[0061] For example, assuming that the size of the chrominance block to be predicted is W×H, the reference pixel acquisition unit 1721c acquires four adjacent chrominance pixels and their corresponding downsampled luminance pixels. Specifically, the reference pixel acquisition unit 1721c determines the positions of the four adjacent pixels by the following formula (1).

[0062] When LT_CCLM mode applies: S[W' / 4,-1], S[3W' / 4,-1], S[-1,H' / 4], S[-1,3H' / 4] When T_CCLM mode applies: S[W' / 8,-1], S[3W' / 8,-1], S[5W' / 8,-1], S[7W' / 8,-1] When L_CCLM mode applies: S[-1,H' / 8], S[-1,3H' / 8], S[-1,5H' / 8], S[-1,7H' / 8] (1)

[0063] However, when the LT_CCLM mode is applied, W'=W and H'=H, when the T_CCLM mode is applied, W'=W+H, and when the L_CCLM mode is applied, H'=H+W.

[0064] The linear model calculation unit 1721d calculates a linear model using the reference pixels (specifically, the four chrominance reference pixels and the four luminance reference pixels corresponding to these) output from the reference pixel acquisition unit 1721c.

[0065] For example, the linear model calculation unit 1721d compares four luminance reference pixels with each other, identifies two small values ​​(x0A, x1A) and two large values ​​(x0B, x1B), and identifies the corresponding chrominance reference pixels as y0A, y1A, y0B, and y1B.

[0066] Then, the linear model calculation unit 1721d calculates Xa, Xb, Ya, and Yb according to the following equation (2).

[0067] Xa=(x0A + x1A+1)>>1 Xb=(x0B+ x1B+1)>>1 Ya=(y0A+ y1A+1)>>1 Yb=(y0B+ y1B+1)>>1 (2)

[0068] Finally, the linear model calculation unit 1721d calculates the parameters α and β of the linear model by the following equation (3), and outputs the calculated parameters α and β of the linear model to the color difference predicted pixel generation unit 1721e.

[0069]

number

[0070] The chrominance predicted pixel generation unit 1721e generates predicted pixels in a chrominance block to be predicted by using the linear model (parameters α and β) calculated by the linear model calculation unit 1721d, and outputs a chrominance predicted block including the generated predicted pixels. For example, the chrominance predicted pixel generation unit 1721e calculates each predicted pixel predC(i,j) of chrominance by the following equation (4).

[0071]

number

[0072] where i, j are horizontal and vertical coordinate positions, respectively, and recL'(i, j) is a filtered downsampled decoded pixel in the decoded luma block at a position corresponding to the chroma block to be predicted.

[0073] In this way, the intra prediction unit 172 outputs a chrominance prediction block. When the intra prediction unit 172 applies CCLM to the chrominance block to be predicted, it is sufficient for the intra prediction unit 172 to output information indicating that CCLM has been applied to the entropy coding unit 130, and it is not necessary for the intra prediction unit 172 to output CCLM mode information indicating which mode of CCLM has been selected to the entropy coding unit 130.

[0074] <Configuration of the image decoding device> Next, a configuration of an image decoding device according to this embodiment will be described below. Fig. 5 is a diagram showing the configuration of an image decoding device 2 according to this embodiment.

[0075] As shown in FIG. 5, the image decoding device 2 includes an entropy decoding unit 200, an inverse quantization and inverse transform unit 210, a synthesis unit 220, a memory 230, and a prediction unit 240.

[0076] The entropy decoding unit 200 decodes the encoded data generated by the image encoding device 1, and outputs the quantized orthogonal transform coefficients to the inverse quantization and inverse transform unit 210. The entropy decoding unit 200 also obtains information related to prediction (intra prediction and inter prediction), and outputs the obtained information to the prediction unit 240. In this embodiment, the entropy decoding unit 200 obtains information indicating that CCLM has been applied to the chrominance block, and outputs the obtained information to the prediction unit 240 (intra prediction unit 242).

[0077] The inverse quantization and inverse transform unit 210 performs inverse quantization processing and inverse orthogonal transform processing on a block-by-block basis. The inverse quantization and inverse transform unit 210 includes an inverse quantization unit 211 and an inverse transform unit 212.

[0078] The inverse quantization unit 211 performs inverse quantization processing corresponding to the quantization processing performed by the quantization unit 122 of the image encoding device 1. The inverse quantization unit 211 reconstructs the orthogonal transform coefficients of the block to be decoded by inverse quantizing the quantized orthogonal transform coefficients output from the entropy decoding unit 200 using a quantization parameter (Qp) and a quantization matrix, and outputs the reconstructed orthogonal transform coefficients to the inverse transform unit 212.

[0079] The inverse transform unit 212 performs inverse orthogonal transform processing corresponding to the orthogonal transform processing performed by the transform unit 121 of the image encoding device 1. The inverse transform unit 212 performs inverse orthogonal transform processing on the orthogonal transform coefficients output from the inverse quantization unit 211 to restore the prediction residual, and outputs the restored prediction residual (restored prediction residual) to the synthesis unit 220.

[0080] The synthesis unit 220 decodes (reconstructs) the original block by synthesizing the prediction residual output from the inverse transform unit 212 and the prediction block output from the prediction unit 240 on a pixel-by-pixel basis, and outputs the decoded block to the memory 230.

[0081] The memory 230 stores the decoded blocks output from the synthesis unit 220, and accumulates the decoded blocks as decoded images on a frame-by-frame basis. The memory 230 outputs the decoded blocks or the decoded images to the prediction unit 240. The memory 230 also outputs the decoded images on a frame-by-frame basis to the outside of the image decoding device 2. Note that a loop filter may be provided between the synthesis unit 220 and the memory 230.

[0082] The prediction unit 240 performs prediction on a block-by-block basis. The prediction unit 240 has an inter prediction unit 241, an intra prediction unit 242, and a switching unit 243. In this embodiment, the intra prediction unit 242 corresponds to an intra prediction device provided in the image decoding device 2.

[0083] The inter prediction unit 241 predicts a current block to be decoded by inter prediction using a decoded image stored in the memory 230 as a reference image. The inter prediction unit 241 generates an inter prediction block by performing inter prediction according to the motion vector information output from the entropy decoding unit 200 and outputs the generated inter prediction block to the switching unit 243.

[0084] The intra prediction unit 242 generates an intra prediction block by referring to decoded pixels in the periphery of a block to be predicted (a current block to be decoded) among the decoded images stored in the memory 230, and outputs the generated intra prediction block to the switching unit 243. The intra prediction unit 242 corresponds to an intra prediction device provided in the image decoding device 2. The intra prediction unit 242 includes an inter-component linear model prediction unit 2421.

[0085] The switching unit 243 switches between the inter-predicted block output from the inter-prediction unit 241 and the intra-predicted block output from the intra-prediction unit 242 , and outputs either the predicted block to the synthesis unit 220 .

[0086] FIG. 6 is a diagram showing the configuration of the inter-component linear model prediction unit 2421 of the image decoding device 2 according to this embodiment.

[0087] As shown in FIG. 6, the inter-component linear model prediction unit 2421 has a luminance intra prediction mode acquisition unit 2421a, a reference pixel position selection unit 2421b, a reference pixel acquisition unit 2421c, a linear model calculation unit 2421d, and a chrominance predicted pixel generation unit 2421e.

[0088] The luminance intra prediction mode acquisition unit 2421a, the reference pixel position selection unit 2421b, the reference pixel acquisition unit 2421c, the linear model calculation unit 2421d, and the chrominance predicted pixel generation unit 2421e perform operations similar to those of the luminance intra prediction mode acquisition unit 1721a, the reference pixel position selection unit 1721b, the reference pixel acquisition unit 1721c, the linear model calculation unit 1721d, and the chrominance predicted pixel generation unit 1721e shown in Figure 4, respectively.

[0089] <Example of intra prediction operation flow> Next, an example of an operation flow of intra prediction according to this embodiment will be described. Although the operation of intra prediction is the same in the image encoding device 1 and the image decoding device 2, here, the operation of intra prediction (intra prediction unit 242) in the image decoding device 2 will be described.

[0090] FIG. 7 is a diagram showing the operation of intra prediction (the intra prediction unit 242) in the image decoding device 2 according to this embodiment.

[0091] Prior to the operation shown in Figure 7, the intra prediction unit 242 generates a candidate intra prediction mode for a certain chrominance block based on the intra prediction mode IntraPredModeY of the luminance block located at the position [xCb][yCb] of the chrominance block and the corresponding position [xCb+cbWidth / 2][yCb+cbHeight / 2], as shown in Table 1.

[0092] [Table 1]

[0093] Here, X corresponds to DM and Y corresponds to CCLM.

[0094] As described above, in this embodiment, CCLM mode information for identifying the three CCLM modes is not transmitted. Therefore, the image encoding device 1 does not transmit CCLM mode information to the image decoding device 2, but transmits information intra_chroma_pred_mode indicating the intra prediction mode applied to the chrominance block.

[0095] Here, in intra_chroma_pred_mode, as shown in Table 2, the shortest symbol length is assigned to DM, and the next shortest symbol length is assigned to CCLM.

[0096] [Table 2]

[0097] In the following operational flow, the explanation will be given on the assumption that the information intra_chroma_pred_mode indicating the intra prediction mode applied to the chrominance block is "4", that is, a value indicating CCLM.

[0098] 7, in step S1, the luma intra prediction mode acquisition unit 2421a determines whether intra prediction has been applied to a decoded luma block at a position corresponding to the position of the chroma block to be predicted. If inter prediction has been applied to a decoded luma block at a position corresponding to the position of the chroma block to be predicted, or if the luma block at a position corresponding to the position of the chroma block to be predicted has not been decoded (i.e., has not been decoded), the process proceeds to step S8.

[0099] If intra prediction has been applied to a decoded luminance block located at a position corresponding to the position of the chrominance block to be predicted (step S1: YES), in step S2, the luminance intra prediction mode acquisition unit 2421a acquires from the memory 230 the luminance intra prediction mode, which is the intra prediction mode applied to the decoded luminance block located at a position corresponding to the position of the chrominance block to be predicted.

[0100] Specifically, the luminance intra prediction mode acquisition unit 2421a acquires a mode number (any one of 0 to 66) of the luminance intra prediction mode, and outputs the acquired mode number to the reference pixel position selection unit 2421b. However, in VVC, when the aspect ratio of the luminance block is not 1:1, the mode number of the intra prediction mode is reinterpreted by WAIP (Wide Angle Intra Prediction). Therefore, the mode number after this reinterpretation is set as the mode number of the luminance intra prediction mode.

[0101] In step S3, the reference pixel position selection unit 2421b determines whether the luminance intra prediction mode is an intra prediction mode that references both the upper and left reference pixels of the luminance block. If the answer is "YES" in step S3 (step S3: YES), in step S4, the reference pixel position selection unit 2421b selects both the upper and left positions of the chrominance block to be predicted as linear model calculation pixel positions, that is, selects the LT_CCLM mode.

[0102] If the answer is "NO" in step S3, in step S5, the reference pixel position selection unit 2421b determines whether the luma intra prediction mode is an intra prediction mode that does not refer to the reference pixels on the left side of the luma block, but refers to the reference pixels on the upper side of the luma block. If the answer is "YES" in step S5, in step S6, the reference pixel position selection unit 2421b selects the upper position of the chroma block to be predicted as the linear model calculation pixel position, that is, selects the T_CCLM mode.

[0103] If the answer is “NO” in step S5, specifically, if the luminance intra prediction mode is an intra prediction mode that does not refer to reference pixels above the luminance block but refers to reference pixels to the left of the luminance block, in step S7, the reference pixel position selection unit 2421b selects a position to the left of the chrominance block to be predicted as the linear model calculation pixel position, i.e., selects the L_CCLM mode.

[0104] Here, to summarize the operations of steps S3 to S7, this is equivalent to the reference pixel position selection unit 2421b selecting Y (CCLM mode) in Table 1 above according to Table 3.

[0105] [Table 3]

[0106] On the other hand, if the result is "NO" in step S1, in step S8, the reference pixel position selection unit 2421b selects predetermined reference pixel positions as linear model calculation pixel positions, for example, selects the LT_CCLM mode.

[0107] After the linear model calculation pixel position (CCLM mode) is selected, in step S9, the reference pixel acquisition unit 2421c acquires from the memory 230 the luminance and chrominance reference pixels at the linear model calculation pixel position selected by the reference pixel position selection unit 2421b using the above equation (1), and outputs each acquired reference pixel to the linear model calculation unit 2421d.

[0108] In step S10, the linear model calculation unit 2421d calculates a linear model using the above equations (2) and (3) using each reference pixel (specifically, four chrominance reference pixels and their corresponding four luminance reference pixels) output from the reference pixel acquisition unit 2421c.

[0109] In step S11, the chrominance prediction pixel generation unit 2421e uses the linear model (parameters α and β) calculated by the linear model calculation unit 2421d to generate prediction pixels in the chrominance block to be predicted according to the above equation (4), and outputs a chrominance prediction block consisting of the generated prediction pixels.

[0110] <Summary of the embodiment> As described above, the reference pixel position selection unit 1721b (and 2421b) selects a linear model calculation pixel position, which is the position of a reference pixel used in calculating a linear model, based on the luma intra prediction mode acquired by the luma intra prediction mode acquisition unit 1721a (and 2421a). Specifically, the reference pixel position selection unit 1721b (and 2421b) selects one CCLM mode to be applied to the chroma block to be predicted from among the three CCLM modes, based on the mode number of the luma intra prediction mode output from the luma intra prediction mode acquisition unit 1721a (and 2421a).

[0111] In this way, in both the image encoding device 1 and the image decoding device 2, the linear model calculation pixel position is implicitly selected based on the luma intra prediction mode, so that there is no need to transmit CCLM mode information from the image encoding device 1 to the image decoding device 2. In addition, in this embodiment, by focusing on the fact that the spatial characteristics of the luma component and the chroma component at the same position in the image are similar, it is possible to select an appropriate linear model calculation pixel position according to the luma intra prediction mode. Therefore, it is possible to accurately predict the chroma block by CCLM while suppressing an increase in additional information to be transmitted, and therefore it is possible to improve the coding efficiency.

[0112] <Other embodiments> A program may be provided that causes a computer to execute each process performed by the image encoding device 1. A program may be provided that causes a computer to execute each process performed by the image decoding device 2. The program may be recorded in a computer-readable medium. Using the computer-readable medium, it is possible to install the program in a computer. Here, the computer-readable medium on which the program is recorded may be a non-transient recording medium. The non-transient recording medium is not particularly limited, and may be, for example, a recording medium such as a CD-ROM or a DVD-ROM.

[0113] The image encoding device 1 may be configured as a semiconductor integrated circuit (chip set, SoC) by integrating circuits that execute the processes performed by the image encoding device 1. The image decoding device 2 may be configured as a semiconductor integrated circuit (chip set, SoC) by integrating circuits that execute the processes performed by the image decoding device 2.

[0114] The above describes the embodiments in detail with reference to the drawings, but the specific configuration is not limited to that described above, and various design changes, etc. are possible without departing from the spirit of the invention.

[0115] This application claims priority to Japanese Patent Application No. 2019-210881 (filed November 21, 2019), the entire contents of which are incorporated herein by reference.

Claims

1. An intra-prediction device that predicts luminance blocks and chrominance blocks obtained by dividing an image using intra-prediction, The system includes an inter-component prediction model prediction unit that predicts the color difference block from the position of the color difference block and the corresponding decoded luminance block, using a prediction model calculated from the respective reference pixels of luminance and color difference around the color difference block. The component-inter-prediction model prediction unit determines a mode for calculating the prediction model based on the luminance intra-prediction mode, which is the intra-prediction mode applied to the intra-prediction of the decoded luminance block. The intra-prediction device is characterized in that, when inter-prediction is applied to the decoded luminance block, the inter-component prediction model prediction unit determines the mode for calculating the prediction model to a predetermined mode.

2. An image coding device characterized by comprising the intra-prediction device described in claim 1.

3. An image decoding device characterized by comprising the intra-prediction device described in claim 1.

4. A program characterized by causing a computer to function as an intra-prediction device as described in claim 1.