Image encoding device, image decoding device, and image decoding method
By dynamically selecting orthogonal transformation types based on the position of adjacent decoded pixels in intercomponent intra prediction, the image encoding and decoding devices improve coding efficiency and address the issue of biased energy distribution in color difference blocks.
Patent Information
- Application Number
- JP2024005816
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2018-08-15
- Filing Date
- 2024-01-18
- Publication Date
- 2025-03-21
- Estimated Expiration
- 2039-08-09
AI Technical Summary
The existing image encoding and decoding devices face reduced coding efficiency when using intercomponent intra prediction modes like CCIP_A and CCIP_L, due to biased energy distribution trends in color difference blocks.
The proposed solution involves an image encoding device and an image decoding device that dynamically select appropriate orthogonal transformation types for prediction residuals based on the position of adjacent decoded pixels used in intercomponent intra prediction. This is achieved through a candidate generation unit that suggests orthogonal transformation types such as DCT-2, DCT-5, DCT-8, and DST-7, and a transform unit that applies these transformations to improve energy concentration and coding efficiency.
This approach enhances coding efficiency by optimizing the orthogonal transformation process according to the energy distribution trends in prediction residuals, thereby improving the accuracy of color difference prediction and reducing bitstream size.
Smart Images

Figure 0007649886000003 
Figure 0007649886000004 
Figure 0007649886000005
Abstract
Description
[Technical field]
[0001] The present invention relates to an image encoding device, an image decoding device, and an image decoding method. [Background technology]
[0002] Intra prediction, which utilizes spatial correlation within a frame, is widely used in image coding technology. Intra prediction generates a predicted image by predicting pixel values in a block to be predicted by referring to adjacent decoded pixels adjacent to the block.
[0003] The image coding device calculates a prediction residual that represents the error of the predicted image for the block, performs an orthogonal transform process on the prediction residual to generate transform coefficients, and quantizes and entropy codes the transform coefficients to output coded data (bit stream).
[0004] For example, Patent Document 1 discloses an image coding device using an intra predictor that determines an intra prediction mode of a color difference signal for each block of an image, and that can improve coding efficiency of the intra prediction mode of the color difference signal (see Patent Document 1). As an orthogonal transform type applied to the orthogonal transform process, DCT type 2 (DCT-2) has been widely used.
[0005] Furthermore, HEVC described in Non-Patent Document 1 specifies that DST type 7 (DST-7) should be applied instead of DCT-2 to blocks of a specified size or less to which intra prediction is applied. Unlike DCT-2, DST-7 is an orthogonal transform with an asymmetric impulse response, in which the coefficients at one end point are small and the coefficients at the other end point are large.
[0006] Since intra prediction predicts a block by referring to adjacent decoded pixels adjacent to the block, it is highly likely that the prediction accuracy will be high in the area close to the adjacent decoded pixels in the block and low in the area far from the adjacent decoded pixels. By applying DST-7 to prediction residuals with such characteristics, it is possible to concentrate the energy of the prediction residuals more efficiently.
[0007] Meanwhile, as an intra prediction mode, cross-component intra prediction (CCIP: Cross-Component Intra Prediction) is known, which predicts a pixel value of chrominance (Chroma) using adjacent decoded pixels of luminance (Luma).
[0008] Specifically, in inter-component intra prediction, a linear model of luminance and chrominance of a chrominance block is calculated by referring to the luminance decoded pixels and chrominance decoded pixels adjacent to the upper and left sides of the chrominance block, and the calculated linear model is used to predict the pixel values of chrominance in the block. Note that inter-component intra prediction is also called CCLM (Cross-Component Linear Model) prediction.
[0009] In inter-component intra prediction, the signal distribution relationship of adjacent decoded pixels of luminance and chrominance on the upper and left sides of a block can be approximated to the signal distribution relationship of the luminance and chrominance of the block, making it possible to predict the chrominance signal with high accuracy. However, since adjacent decoded pixels on the upper and left sides are always used, if the signal distribution relationship of luminance and chrominance differs between the upper and left sides, a correct linear model cannot be calculated, resulting in a decrease in the prediction accuracy of chrominance.
[0010] In view of such problems, Non-Patent Document 2 describes CCIP_A mode and CCIP_L mode as new intra prediction modes for chrominance. CCIP_A mode is an intra prediction mode in which a linear model is calculated using adjacent decoded pixels of luminance and chrominance only on the upper side, instead of using adjacent decoded pixels of luminance and chrominance on the upper and left sides. CCIP_L mode is an intra prediction mode in which a linear model is calculated using adjacent decoded pixels of luminance and chrominance only on the left side. Note that Non-Patent Document 3 also describes a similar intra prediction mode, but CCIP_A is called LM-top and CCIP_L is called LM-left.
[0011] Furthermore, Non-Patent Document 2 describes that in the orthogonal transform processing for the prediction residual of a chrominance block to which CCIP mode, CCIP_A mode, or CCIP_L mode is applied, DCT-2 is applied to the vertical and horizontal directions, or DCT-8 or DST-7 is selectively applied to each of the vertical and horizontal directions. [Prior art documents] [Patent documents]
[0012] [Patent Document 1] JP 2018-078409 A [Non-patent literature]
[0013] [Non-Patent Document 1] Recommendation ITU-T H.265,(12 / 2016), "High efficiency video coding", International Telecommunication Union [Non-Patent Document 2] JVET-J0025, "Description of SDR, HDR and 360° video coding technology proposed by Qualcomm and Technicolor medium complexity version", retrieved May 22, 2018, Internet<URL:http: / / phenix.it-sudparis.eu / jvet / doc_end_user / documents / 10_San%20Diego / wg11 / JVET-J0025-v4.zip> [Non-Patent Document 3] JVET-J0018, "Description of SDR video coding technology proposal by MediaTek," [Retrieved May 22, 2018], Internet<URL:http: / / phenix.it-sudparis.eu / jvet / doc_end_user / documents / 10_San%20Diego / wg11 / JVET-J0018-v2.zip> DISCLOSURE OF THEINVENTION [Problem to be solved by the invention]
[0014] However, the prediction residual of a chrominance block to which the CCIP_A mode or CCIP_L mode is applied is likely to have a biased energy distribution tendency.
[0015] For example, when CCIP_A mode is applied, the prediction accuracy of the upper edge region of the block is likely to be high because the upper luminance and chrominance adjacent decoded pixels are used to calculate the linear model. On the other hand, the prediction accuracy of the lower edge region, which is far from the adjacent decoded pixels used to calculate the linear model, is likely to be low. If DCT-8 is applied in the vertical direction to a prediction residual having such characteristics, the energy of the prediction residual is not concentrated, resulting in a problem of reduced coding efficiency.
[0016] Similarly, when CCIP_L mode is applied, the prediction accuracy of the left edge region of chrominance of the block is likely to be high because the adjacent decoded pixels of luminance and chrominance on the left side are used for linear model calculation, but the prediction accuracy of the right edge region far from the adjacent decoded pixels used for linear model calculation is likely to be low. If DCT-8 is applied horizontally to prediction residuals having such characteristics, the energy of the prediction residuals is not concentrated, resulting in a problem of reduced coding efficiency.
[0017] Therefore, an object of the present invention is to provide an image encoding device, an image decoding device, and a program that improve the encoding efficiency when inter-component intra prediction is used. [Means for solving the problem]
[0018] An image encoding device according to a first feature includes an inter-component intra prediction unit that generates a predicted block of a second component by inter-component intra prediction to predict a block of a second component by referring to decoded pixels of a first component and decoded pixels of a second component as adjacent decoded pixels adjacent to the block of a second component to be encoded, a candidate generation unit that generates candidates of an orthogonal transform type to be applied to an orthogonal transform processing on a prediction residual representing an error of the predicted block of the second component with respect to the block of the second component, and a transform unit that performs an orthogonal transform processing on the prediction residual by using an orthogonal transform type selected from the candidates generated by the candidate generation unit, wherein the candidate generation unit generates the candidates of the orthogonal transform type based on positions of the adjacent decoded pixels referred to in the inter-component intra prediction.
[0019] An image decoding device according to a second feature includes an inter-component intra prediction unit that generates a predicted block of a second component by inter-component intra prediction to predict a block of a second component by referring to decoded pixels of a first component and decoded pixels of a second component as adjacent decoded pixels adjacent to the block of a second component to be decoded, a candidate generation unit that generates candidates of an orthogonal transform type to be applied to an inverse orthogonal transform process on transform coefficients of the second component corresponding to a prediction residual representing an error of the predicted block of the second component with respect to the block of the second component, and an inverse transform unit that performs an inverse orthogonal transform process on the transform coefficients of the second component using an orthogonal transform type selected from the candidates generated by the candidate generation unit, and the candidate generation unit generates the candidates of the orthogonal transform type based on positions of the adjacent decoded pixels referred to in the inter-component intra prediction.
[0020] A program according to the third aspect causes a computer to function as the image encoding device according to the first aspect.
[0021] A program according to the fourth aspect causes a computer to function as the image decoding device according to the second aspect. Effect of the Invention
[0022] According to the present invention, it is possible to provide an image encoding device, an image decoding device, and a program that improve the encoding efficiency when inter-component intra prediction is used. [Brief description of the drawings]
[0023] [Figure 1] FIG. 1 is a diagram showing a configuration of an image encoding device according to an embodiment. [Diagram 2] FIG. 1 illustrates a normal CCIP mode. [Diagram 3] FIG. 1 is a diagram showing CCIP_A mode. [Figure 4] FIG. 1 is a diagram illustrating CCIP_L mode. [Diagram 5] FIG. 2 is a diagram showing a configuration of an image decoding device according to an embodiment. [Figure 6]FIG. 2 is a diagram showing an example of the operation of an image encoding device according to an embodiment. [Figure 7] FIG. 11 is a diagram showing an example of the operation of an image decoding device according to an embodiment. [Figure 8] FIG. 11 is a diagram illustrating an example of the operation of an image encoding device according to a first modified example of the embodiment. [Figure 9] FIG. 11 is a diagram illustrating an example of the operation of an image decoding device according to a first modified example of the embodiment. [Figure 10] FIG. 11 is a diagram illustrating an example of the operation of an image encoding device according to a second modification of the embodiment. [Figure 11] FIG. 11 is a diagram illustrating an example of the operation of an image decoding device according to a second modification of the embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0024] 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 present embodiment 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.
[0025] <1. Configuration of the image encoding device> FIG. 1 is a diagram showing the configuration of an image encoding device 1 according to this embodiment.
[0026] As shown in FIG. 1, the image encoding device 1 includes a block division unit 100, a subtraction unit 110, a transform / quantization unit 120, an entropy encoding unit 130, an inverse quantization / inverse transform unit 140, a synthesis unit 150, a memory 160, a prediction unit 170, and a transformation control unit 180.
[0027] The block division unit 100 divides an input image, which is a frame (or picture) unit that constitutes a moving image, into small block-shaped regions, and outputs the blocks obtained by division to the subtraction unit 110. Each pixel in the input image consists of luminance (Y) and color difference (Cb, Cr).
[0028] The size of a block is, for example, 32×32 pixels, 16×16 pixels, 8×8 pixels, or 4×4 pixels. The shape of a block is not limited to a square and may be a rectangle. A block is a unit for encoding by the image encoding device 1 and a unit for decoding by the image decoding device 2.
[0029] In this embodiment, the block division unit 100 divides an input image into blocks called CUs (Coding Units). One CU includes a luminance block and a chrominance block. The image encoding device 1 is capable of separately encoding the luminance block and the chrominance block constituting one CU. Similarly, the image decoding device 2 is capable of separately decoding the luminance block and the chrominance block constituting one CU.
[0030] The subtraction unit 110 calculates a prediction residual representing an error in pixel units between the block input from the block division unit 100 and a predicted image (predicted block) obtained by predicting the block by the prediction unit 170. Specifically, the subtraction unit 110 calculates the prediction residual by subtracting each pixel value of the predicted image from each pixel value of the block input from the block division unit 100, and outputs the calculated prediction residual to the transformation / quantization unit 120.
[0031] 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.
[0032] Under the control of the transformation control unit 180, the transformation unit 121 performs an orthogonal transformation process on the prediction residual input from the subtraction unit 110 to calculate a transformation coefficient, and outputs the calculated transformation coefficient to the quantization unit 122. The orthogonal transformation process refers to, for example, a discrete cosine transform (DCT), a discrete sine transform (DST), a Karhunen-Loeb transform (KLT), or the like.
[0033] In this embodiment, the transform unit 121 performs orthogonal transform processing in the horizontal and vertical directions using an orthogonal transform type selected by the transform control unit 180 from among DCT type 2 (DCT-2), DCT type 5 (DCT-5), DCT type 8 (DCT-8), and DST type 7 (DST-7). Note that these orthogonal transform types themselves are well known to those skilled in the art, and therefore explanations of the mathematical expressions and the like for each orthogonal transform type will be omitted.
[0034] The quantization unit 122 quantizes the transform coefficients input from the transform unit 121 using a quantization parameter (Qp) and a quantization matrix to generate quantized transform coefficients. The quantization parameter (Qp) is a parameter commonly applied to each transform coefficient in a block, and is a parameter that determines the coarseness of quantization. The quantization matrix is a matrix having, as elements, quantization values used when quantizing each transform coefficient. The quantization unit 122 outputs the quantized transform coefficients to the entropy coding unit 130 and the inverse quantization and inverse transform unit 140.
[0035] The entropy coding unit 130 performs entropy coding on the transform coefficients input 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.
[0036] Note that the entropy coding unit 130 receives control information related to prediction from the prediction unit 170, and receives control information related to the conversion process from the conversion control unit 180. The entropy coding unit 130 also performs entropy coding of this control information.
[0037] 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.
[0038] 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 transform coefficients by inverse quantizing the quantized transform coefficients input from the quantization unit 122 using a quantization parameter (Qp) and a quantization matrix, and outputs the restored transform coefficients to the inverse transform unit 142.
[0039] The inverse transform unit 142 performs inverse orthogonal transform processing corresponding to the orthogonal transform processing performed by the transform unit 121 under the control of the transform control unit 180. For example, when the transform unit 121 performs orthogonal transform processing using DCT-2, the inverse transform unit 142 performs inverse orthogonal transform processing using DCT-2. The inverse transform unit 142 performs inverse orthogonal transform processing in the horizontal and vertical directions on the transform coefficients input from the inverse quantization unit 141 to restore prediction residuals, and outputs the restored prediction residuals to the synthesis unit 150.
[0040] The synthesis unit 150 synthesizes the reconstructed prediction residual input from the inverse transform unit 142 with the predicted image input from the prediction unit 170 on a pixel-by-pixel basis. The synthesis unit 150 adds each pixel value of the reconstructed prediction residual to each pixel value of the predicted image to reconstruct (decode) a block, and outputs the decoded image on a block-by-block basis to the memory 160. Such a decoded image may be referred to as a reconstructed image. Note that a loop filter may be provided between the synthesis unit 150 and the memory 160.
[0041] The memory 160 stores the decoded image input from the synthesis unit 150. The memory 160 stores the decoded image on a frame-by-frame basis.
[0042] The prediction unit 170 performs prediction on a block-by-block basis. The prediction unit 170 includes an intra prediction unit 171, an inter prediction unit 172, and a switching unit 173.
[0043] The intra prediction unit 171 performs intra prediction on a block basis obtained by dividing an original image on a frame basis. The intra prediction unit 171 generates an intra prediction image by referring to adjacent decoded pixels adjacent to the block to be predicted among the decoded images stored in the memory 160, and outputs the generated intra prediction image to the switching unit 173.
[0044] Moreover, the intra prediction unit 171 selects an optimal intra prediction mode to be applied to the current block from among a plurality of intra prediction modes, and performs intra prediction using the selected intra prediction mode. The intra prediction unit 171 outputs an index indicating the selected intra prediction mode to the entropy coding unit 130. Note that the intra prediction modes include planar prediction, DC prediction, and directional prediction.
[0045] The intra prediction unit 171 can select inter-component intra prediction (CCIP) as an intra prediction mode to be applied to a chrominance block of a CU to be predicted. Specifically, the intra prediction unit 171 includes an inter-component intra prediction unit 171a that predicts a chrominance block of a CU by CCIP using a decoded image (decoded pixel value) of a luminance block of the CU.
[0046] Specifically, the inter-component intra prediction unit 171a generates a predicted chrominance block by inter-component intra prediction, which predicts a chrominance block to be coded by referring to luminance decoded pixels and chrominance decoded pixels as adjacent decoded pixels adjacent to the chrominance block to be coded.
[0047] Note that, when inter-component intra prediction (CCIP) is applied, the intra prediction unit 171 performs intra prediction of the luminance block of the CU first, and the memory 160 stores a decoded image of the luminance block of the CU.
[0048] The inter-component intra prediction unit 171a generates a predicted chrominance block by inter-component intra prediction (CCIP) and outputs the predicted chrominance block to the subtraction unit 110 via the switching unit 173. The subtraction unit 110 calculates a chrominance prediction residual representing an error of the predicted chrominance block with respect to the chrominance block input from the block division unit 100, and outputs the calculated chrominance prediction residual to the conversion unit 121. The conversion unit 121 performs an orthogonal transform process on the chrominance prediction residual input from the subtraction unit 110.
[0049] In this embodiment, CCIP includes three modes: normal CCIP, CCIP_A, and CCIP_L. Figure 2 shows the normal CCIP mode, Figure 3 shows the CCIP_A mode, and Figure 4 shows the CCIP_L mode.
[0050] As shown in FIG. 2, in the case of the normal CCIP mode, the inter-component intra prediction unit 171a calculates a linear model of luma and chroma for the CU using the luma decoded pixels and chroma decoded pixels adjacent to the upper and left sides of the CU, and predicts the pixel values of the chroma block of the CU using the calculated linear model.
[0051] In the normal CCIP mode, the signal distribution relationship of the adjacent decoded pixels of luminance and chrominance on the upper and left sides of a CU can be approximated to the signal distribution relationship of the luminance and chrominance of the CU, and thus the chrominance signal can be predicted with high accuracy. Note that the adjacent decoded pixels may be a concept including the next adjacent decoded pixels.
[0052] The inter-component intra prediction unit 171a calculates a predicted pixel value predc(i,j) of the chrominance (Cb) of a CU by the following equation (1), as described in the above-mentioned non-patent documents and, for example, in JVET-G1001-V1.
[0053]
number
[0054] Here, recL(i,j) represents the downsampled reconstructed luma samples of the CU.
[0055] In addition, α and β are calculated using the following formulas (2) and (3).
[0056]
number
[0057] where L(n) represents the top and left neighbouring reconstructed luma samples, and C(n) represents the top and left neighbouring reconstructed chroma samples.
[0058] In this way, since normal CCIP always uses adjacent decoded pixels above and to the left of a CU, if the relationship between the luminance and chrominance signal distributions differs between the top and left sides, a correct linear model cannot be calculated, resulting in reduced chrominance prediction accuracy. CCIP_A mode and CCIP_L mode are suitable modes when the relationship between the luminance and chrominance signal distributions differs between the top and left sides of a CU.
[0059] As shown in FIG. 3, in the case of CCIP_A mode, the inter-component intra prediction unit 171a calculates a linear model using adjacent decoded pixels of luma and chroma only above the CU, instead of using adjacent decoded pixels of luma and chroma above and to the left of the CU.
[0060] When the CCIP_A mode is applied, the prediction accuracy is likely to be high in an area close to the adjacent decoded pixels used in the linear model calculation (i.e., the upper end area of the chrominance block), whereas the prediction accuracy is likely to be low in an area far from the adjacent decoded pixels used in the linear model calculation (i.e., the lower end area of the chrominance block).
[0061] As shown in FIG. 4, in the case of CCIP_L mode, the inter-component intra prediction unit 171a calculates a linear model using adjacent decoded pixels of luma and chroma only to the left of the CU, instead of using adjacent decoded pixels of luma and chroma above and to the left of the CU.
[0062] When the CCIP_L mode is applied, the prediction accuracy is likely to be high in areas far from the adjacent decoded pixels used in calculating the linear model (i.e., the left end area of the chrominance block), but the prediction accuracy is likely to be low in areas far from the adjacent decoded pixels used in calculating the linear model (i.e., the right end area of the chrominance block).
[0063] When any of the normal CCIP mode, CCIP_A mode, and CCIP_L mode is selected as the intra prediction mode to be applied to the chrominance block, the inter-component intra prediction unit 171a outputs an index indicating the selected mode to the entropy coding unit 130 and the transformation control unit 180.
[0064] The inter prediction unit 172 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 a block to be predicted, generates an inter prediction image, and outputs the generated inter prediction image to the switching unit 173. The inter prediction unit 172 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.
[0065] The switching unit 173 switches between the intra-predicted image input from the intra-prediction unit 171 and the inter-predicted image input from the inter-prediction unit 172, and outputs either of the predicted images to the subtraction unit 110 and the synthesis unit 150.
[0066] The transform control unit 180 controls the orthogonal transform process performed by the transform unit 121 and the inverse orthogonal transform process performed by the inverse transform unit 142. In this embodiment, when any one of the normal CCIP mode, the CCIP_A mode, and the CCIP_L mode is selected as the intra prediction mode to be applied to a chrominance block, the transform control unit 180 controls the transform process (the orthogonal transform process and the inverse orthogonal transform process) corresponding to the chrominance block.
[0067] The conversion control unit 180 includes a candidate generation unit 181 and a type selection unit 182 .
[0068] The candidate generation unit 181 generates candidates for orthogonal transform types to be applied to the orthogonal transform processing on the chrominance prediction residual, based on the index of the intra prediction mode input from the inter-component intra prediction unit 171a, and outputs the generated candidates to the type selection unit 182. For example, the candidates for the orthogonal transform types are at least one of DCT-2, DCT-5, DCT-8, and DST-7.
[0069] Specifically, the candidate generating unit 181 generates candidates of orthogonal transform type depending on whether the position of the adjacent decoded pixel referenced in the inter-component intra prediction (CCIP) is only one of the above, below, left, or right of the chrominance block.
[0070] In this embodiment, the inter-component intra prediction unit 171a performs inter-component intra prediction using a mode selected from a plurality of modes including a first mode (normal CCIP mode) and a second mode (CCIP_A mode or CCIP_L mode). The first mode is a mode in which a chrominance block is predicted by referring to adjacent decoded pixels both above and to the left of the chrominance block. The second mode is a mode in which a chrominance block is predicted by referring to adjacent decoded pixels only above or only to the left of the chrominance block.
[0071] When the first mode is selected, the candidate generation unit 181 generates a first candidate consisting of one or more orthogonal transform types as candidates for the orthogonal transform type. When the second mode is selected, the candidate generation unit 181 generates a second candidate different from the first candidate as a candidate for the orthogonal transform type. That is, the candidate generation unit 181 generates candidates of orthogonal transform types different from each other between the first mode (normal CCIP mode) and the second mode (CCIP_A mode or CCIP_L mode).
[0072] Here, each of the first candidate and the second candidate includes a horizontal candidate consisting of one or more orthogonal transform type candidates to be applied to the horizontal transform process, and a vertical candidate consisting of one or more orthogonal transform type candidates to be applied to the vertical transform process. In the first candidate, the horizontal candidate and the vertical candidate may be the same. On the other hand, in the second candidate, the horizontal candidate and the vertical candidate are different from each other.
[0073] The type selection unit 182 selects an orthogonal transform type to be applied to the orthogonal transform processing on the chrominance prediction residual from among the candidates input from the candidate generation unit 181, and outputs an index (flag) indicating the selected orthogonal transform type to the transform unit 121, the inverse transform unit 142, and the entropy coding unit 130. For example, the type selection unit 182 may calculate an RD (Rate Distortion) cost for each of the candidates input from the candidate generation unit 181, and select an orthogonal transform type from among the candidates based on the calculated RD cost.
[0074] Specifically, the type selection unit 182 selects an orthogonal transform type to be applied to the horizontal transformation processing from the horizontal candidates input from the candidate generation unit 181, and outputs an index (flag) indicating the selected horizontal orthogonal transform type to the transformation unit 121, the inverse transformation unit 142, and the entropy coding unit 130.
[0075] However, when the horizontal candidates input from the candidate generation unit 181 consist of only one orthogonal transform type, the orthogonal transform type to be applied to the horizontal transform processing is uniquely determined, so that it is not necessary to output an index (flag) indicating the horizontal orthogonal transform type to the entropy coding unit 130.
[0076] In addition, the type selection unit 182 selects an orthogonal transform type to be applied to the vertical transform processing from the vertical candidates input from the candidate generation unit 181, and outputs an index (flag) indicating the selected vertical orthogonal transform type to the transform unit 121, the inverse transform unit 142, and the entropy coding unit 130.
[0077] However, when the vertical candidates input from the candidate generation unit 181 consist of only one orthogonal transform type, the orthogonal transform type to be applied to the vertical transform processing is uniquely determined, so that it is not necessary to output an index (flag) indicating the vertical orthogonal transform type to the entropy coding unit 130.
[0078] <2. Configuration of the image decoding device> FIG. 5 is a diagram showing the configuration of an image decoding device 2 according to this embodiment.
[0079] As shown in FIG. 5, the image decoding device 2 includes an entropy code decoding unit 200, an inverse quantization and inverse transform unit 210, a synthesis unit 220, a memory 230, a prediction unit 240, and a transformation control unit 250.
[0080] The entropy code decoding unit 200 decodes the coded data generated by the image coding device 1, and outputs the quantized transformation coefficients to the inverse quantization and inverse transform unit 210. In addition, the entropy code decoding unit 200 obtains control information related to prediction (intra prediction and inter prediction), and outputs the obtained control information to the prediction unit 240.
[0081] In this embodiment, the entropy encoding / decoding unit 200 obtains an index of an intra-prediction mode (specifically, a CCIP mode) and an index of each of the horizontal and vertical orthogonal transform types, outputs the index of the intra-prediction mode to the intra-prediction unit 241 and the type selection unit 252, and outputs the index of the orthogonal transform type to the type selection unit 252.
[0082] 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.
[0083] The inverse quantization unit 211 performs an inverse quantization process corresponding to the quantization process performed by the quantization unit 122 of the image encoding device 1. The inverse quantization unit 211 restores the transform coefficients by inverse quantizing the quantized transform coefficients input from the entropy encoding / decoding unit 200 using a quantization parameter (Qp) and a quantization matrix, and outputs the restored transform coefficients to the inverse transform unit 212.
[0084] The inverse transform unit 212, under the control of the transform control unit 250, 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 in the horizontal and vertical directions on the transform coefficients input from the inverse quantization unit 211 to restore prediction residuals, and outputs the restored prediction residuals to the synthesis unit 220.
[0085] The synthesis unit 220 synthesizes the prediction residual input from the inverse transform unit 212 and the prediction image (prediction block) input from the prediction unit 240 in units of pixels to reconstruct (decode) the original block, and outputs the decoded image in units of blocks to the memory 230. Note that a loop filter may be provided between the synthesis unit 220 and the memory 230.
[0086] The memory 230 stores the decoded image input from the synthesis unit 220. The memory 230 stores the decoded image on a frame-by-frame basis. The memory 230 outputs the decoded image on a frame-by-frame basis to outside the image decoding device 2.
[0087] The prediction unit 240 performs prediction on a block-by-block basis. The prediction unit 240 includes an intra prediction unit 241, an inter prediction unit 242, and a switching unit 243.
[0088] The intra prediction unit 241 generates an intra prediction image by referring to adjacent decoded pixels adjacent to the block to be predicted among the decoded images stored in the memory 230, and outputs the generated intra prediction image to the switching unit 243. In addition, the intra prediction unit 241 selects an intra prediction mode from among a plurality of intra prediction modes based on the index of the intra prediction mode input from the entropy encoding / decoding unit 200, and performs intra prediction using the selected intra prediction mode.
[0089] The intra prediction unit 241 includes an inter-component intra prediction unit 241a that predicts a chrominance block of a CU by inter-component intra prediction (CCIP) using a decoded image (decoded pixel value) of a luminance block of the CU. Specifically, the inter-component intra prediction unit 241a generates a predicted chrominance block by inter-component intra prediction that predicts the chrominance block by referring to luminance decoded pixels and chrominance decoded pixels as adjacent decoded pixels adjacent to the chrominance block to be decoded.
[0090] Note that, when inter-component intra prediction (CCIP) is applied, the intra prediction unit 241 performs intra prediction of the luminance block of the CU first, and the memory 230 stores a decoded image of the luminance block of the CU.
[0091] The inter-component intra prediction unit 241a generates a predicted chrominance block by inter-component intra prediction (CCIP) and outputs the predicted chrominance block to the synthesis unit 220 via the switching unit 243. The synthesis unit 220 reconstructs (decodes) the original chrominance block by synthesizing the chrominance prediction residual input from the inverse transform unit 212 and the predicted chrominance block input from the inter-component intra prediction unit 241a on a pixel-by-pixel basis, and outputs a decoded image on a block-by-block basis to the memory 230.
[0092] In this embodiment, CCIP includes three modes: normal CCIP, CCIP_A, and CCIP_L. When any one of the normal CCIP mode, CCIP_A mode, and CCIP_L mode is selected as the intra prediction mode to be applied to the chrominance block, the inter-component intra prediction unit 241a outputs an index indicating the selected mode to the conversion control unit 250.
[0093] The inter prediction unit 242 performs inter prediction to predict a block to be predicted by using a decoded image stored in the memory 230 as a reference image. The inter prediction unit 242 generates an inter prediction image by performing inter prediction according to control information (motion vector information, etc.) input from the entropy encoding / decoding unit 200, and outputs the generated inter prediction image to the switching unit 243.
[0094] The switching unit 243 switches between the intra-predicted image input from the intra-prediction unit 241 and the inter-predicted image input from the inter-prediction unit 242 , and outputs either of the predicted images to the synthesis unit 220 .
[0095] The transform control unit 250 controls the inverse orthogonal transform process performed by the inverse transform unit 212. In this embodiment, when any one of the normal CCIP mode, CCIP_A mode, and CCIP_L mode is selected as the intra prediction mode to be applied to the chrominance block, the transform control unit 250 controls the transform process (inverse orthogonal transform process) corresponding to the chrominance block. The transform control unit 250 includes a candidate generation unit 251 and a type selection unit 252.
[0096] The candidate generation unit 251 generates candidates for orthogonal transform types to be applied to the inverse orthogonal transform process performed by the inverse transform unit 212, based on the index of the intra prediction mode input from the inter-component intra prediction unit 241a, and outputs the generated candidates to the type selection unit 252. For example, the candidates for the orthogonal transform types are at least one of DCT-2, DCT-5, DCT-8, and DST-7.
[0097] Specifically, the candidate generation unit 251 generates candidates of orthogonal transform type depending on whether the position of the adjacent decoded pixel referenced in the inter-component intra prediction (CCIP) is only one of the above, below, left, or right of the chrominance block.
[0098] In this embodiment, the inter-component intra prediction unit 241a performs inter-component intra prediction using a mode selected from a plurality of modes including a first mode (normal CCIP mode) and a second mode (CCIP_A mode or CCIP_L mode). The first mode is a mode in which a chrominance block is predicted by referring to adjacent decoded pixels both above and to the left of the chrominance block. The second mode is a mode in which a chrominance block is predicted by referring to adjacent decoded pixels only above or only to the left of the chrominance block.
[0099] When the first mode is selected, the candidate generation unit 251 generates a first candidate consisting of one or more orthogonal transform types as candidates for the orthogonal transform type. When the second mode is selected, the candidate generation unit 251 generates a second candidate different from the first candidate as a candidate for the orthogonal transform type. That is, the candidate generation unit 251 generates candidates of orthogonal transform types different from each other for the first mode (normal CCIP mode) and the second mode (CCIP_A mode or CCIP_L mode).
[0100] Here, each of the first candidate and the second candidate includes a horizontal candidate consisting of one or more orthogonal transform type candidates to be applied to the horizontal transform process, and a vertical candidate consisting of one or more orthogonal transform type candidates to be applied to the vertical transform process. In the first candidate, the horizontal candidate and the vertical candidate may be the same. On the other hand, in the second candidate, the horizontal candidate and the vertical candidate are different from each other.
[0101] The type selection unit 252 selects an orthogonal transform type to be applied to the inverse orthogonal transform process (horizontal direction, vertical direction) from among the candidates input from the candidate generation unit 251, according to the index (horizontal direction, vertical direction) of the orthogonal transform type input from the entropy coding / decoding unit 200. Specifically, the index of the orthogonal transform type input from the entropy coding / decoding unit 200 specifies one of the candidates generated by the candidate generation unit 251. The type selection unit 252 outputs an index (flag) indicating the selected orthogonal transform type to the inverse transform unit 212.
[0102] <3. Example of operation> An example of the operation of the image encoding device 1 and the image decoding device 2 according to this embodiment will be described below.
[0103] <3.1. Example of operation of image encoding device> FIG. 6 is a diagram showing an example of the operation of the image encoding device 1 according to this embodiment.
[0104] As shown in Fig. 6, in step S101, the intra prediction unit 171 selects an intra prediction mode for a chrominance block. Here, it is assumed that any one of the normal CCIP mode, the CCIP_A mode, and the CCIP_L mode is selected. The inter-component intra prediction unit 171a performs inter-component intra prediction according to the selected mode to generate a predicted chrominance block. The subtraction unit 110 calculates a chrominance prediction residual that represents an error between the original chrominance block and the predicted chrominance block.
[0105] (Normal CCIP mode) If the normal CCIP mode is selected (step S102: YES), in step S103, the candidate generator 181 generates candidates consisting of DCT-2, DCT-8, and DST-7 as horizontal candidates, and generates candidates consisting of DCT-2, DCT-8, and DST-7 as vertical candidates.
[0106] In step S107, the type selection unit 182 determines whether to apply DCT-2 to the vertical and horizontal directions, or to selectively apply DCT-8 or DCT-7 to each of the vertical and horizontal directions.
[0107] In step S108, the transform unit 121 performs orthogonal transform processing (horizontal direction, vertical direction) on the color difference prediction residual using the orthogonal transform type selected by the type selection unit 182 to generate transform coefficients.
[0108] In step S109, the entropy coding unit 130 codes the quantized transform coefficients and an index indicating the normal CCIP mode.
[0109] In step S109, the entropy coding unit 130 codes an index indicating the selected orthogonal transform type. For example, the index includes a first flag and a second flag. Specifically, when DCT-2 is applied horizontally and horizontally, the first flag is coded and transmitted as "1". When DCT-8 or DST-7 is selectively applied vertically and horizontally, the first flag is coded and transmitted as "0", and then the second flag indicating whether the horizontal orthogonal transform type is DCT-8 or DST-7 is coded and output by the bit stream. Similarly, the second flag indicating whether the vertical orthogonal transform type is DCT-8 or DST-7 is coded and output by the bit stream.
[0110] (CCIP_L mode) When the CCIP_L mode is selected (step S104: YES), in step S105, the candidate generation unit 181 generates candidates consisting of only DST-7 as horizontal candidates. In addition, the candidate generation unit 181 generates candidates consisting of DCT-8 and DST-7 as vertical candidates. As described above, when the CCIP_L mode is applied to a chrominance block, the energy of the left region of the prediction residual tends to be small, and the energy of the right region of the prediction residual tends to be large. Therefore, the candidate generation unit 181 generates candidates consisting of only DST-7 as horizontal candidates.
[0111] In step S107, type selection unit 182 selects either DCT-8 or DST-7 for the vertical direction. Since DST-7 is the only candidate for the horizontal direction, type selection unit 182 selects DST-7 for the horizontal direction.
[0112] In step S108, the transform unit 121 performs orthogonal transform processing (horizontal direction, vertical direction) on the color difference prediction residual using the orthogonal transform type selected by the type selection unit 182 to generate transform coefficients.
[0113] In step S109, the entropy coding unit 130 codes the quantized transform coefficients and an index indicating the CCIP_L mode.
[0114] Furthermore, in step S109, the entropy coding unit 130 codes an index indicating the selected orthogonal transform type. However, since there is only one orthogonal transform candidate in the horizontal direction, the entropy coding unit 130 does not entropy code the flag indicating the orthogonal transform type to be applied in the horizontal direction, but entropy codes the flag indicating the orthogonal transform type to be applied in the vertical direction (the first flag and the second flag described above). Since it is not necessary to entropy code the flag indicating the orthogonal transform type to be applied in the horizontal direction, the number of flags to be transmitted to the image decoding device 2 can be reduced.
[0115] (CCIP_A mode) If the CCIP_A mode is selected (step S104: NO), in step S106, the candidate generation unit 181 generates candidates consisting of only DST-7 as vertical candidates. In addition, the candidate generation unit 181 generates candidates consisting of DCT-8 and DST-7 as horizontal candidates. As described above, when the CCIP_A mode is applied to a chrominance block, the energy of the upper region of the prediction residual tends to be small, and the energy of the lower region of the prediction residual tends to be large. Therefore, the candidate generation unit 181 generates candidates consisting of only DST-7 as vertical candidates.
[0116] In step S107, type selection unit 182 selects either DCT-8 or DST-7 for the horizontal direction. Since DST-7 is the only candidate for the vertical direction, type selection unit 182 selects DST-7 for the horizontal direction.
[0117] In step S108, the transform unit 121 performs orthogonal transform processing (horizontal direction, vertical direction) on the color difference prediction residual using the orthogonal transform type selected by the type selection unit 182 to generate transform coefficients.
[0118] In step S109, the entropy coding unit 130 codes the quantized transform coefficients and an index indicating the CCIP_A mode.
[0119] Furthermore, in step S109, the entropy coding unit 130 codes an index indicating the selected orthogonal transform type. However, since there is only one orthogonal transform candidate in the vertical direction, the entropy coding unit 130 does not entropy code the flag indicating the orthogonal transform type to be applied in the vertical direction, but entropy codes the flag indicating the orthogonal transform type to be applied in the horizontal direction (the first flag and the second flag described above). Since it is not necessary to entropy code the flag indicating the orthogonal transform type to be applied in the vertical direction, the number of flags to be transmitted to the image decoding device 2 can be reduced.
[0120] <3.2. Example of operation of image decoding device> FIG. 7 is a diagram showing an example of the operation of the image decoding device 2 according to this embodiment.
[0121] As shown in FIG. 7, in step S201, the entropy code decoding unit 200 decodes the coded data generated by the image coding device 1, and outputs the quantized transform coefficients to the inverse quantization and inverse transform unit 210. The entropy code decoding unit 200 also acquires an index of an intra prediction mode and an index of an orthogonal transform type (horizontal direction, vertical direction). Here, the description will proceed on the assumption that the index of the intra prediction mode indicates any one of the normal CCIP mode, the CCIP_A mode, and the CCIP_L mode. The inter-component intra prediction unit 241a performs inter-component intra prediction according to the mode indicated by the index, and generates a predicted chroma block.
[0122] (Normal CCIP mode) In the normal CCIP mode (step S202: YES), in step S203, the candidate generator 251 generates candidates consisting of DCT-2, DCT-8, and DST-7 as horizontal candidates, and generates candidates consisting of DCT-2, DCT-8, and DST-7 as vertical candidates.
[0123] In step S207, the type selection unit 252 selects an orthogonal transform type (horizontal direction, vertical direction) to be applied to the inverse orthogonal transform processing on the transform coefficients from the candidates (horizontal direction, vertical direction) generated by the candidate generation unit 251 based on the orthogonal transform type index (horizontal direction, vertical direction) input from the entropy encoding / decoding unit 200.
[0124] In step S208, the inverse transform unit 212 restores the chrominance prediction residual by performing inverse orthogonal transform processing (horizontal direction, vertical direction) on the transform coefficients using the orthogonal transform type selected by the type selection unit 252. Thereafter, the synthesis unit 220 synthesizes the restored chrominance prediction residual and the predicted chrominance block generated by the inter-component intra prediction unit 241a to restore (decode) the original chrominance block.
[0125] (CCIP_L mode) In the CCIP_L mode (step S204: YES), in step S205, the candidate generator 251 generates candidates consisting of only DST-7 as horizontal candidates, and generates candidates consisting of DCT-8 and DST-7 as vertical candidates.
[0126] In step S207, the type selection unit 252 selects either DCT-8 or DST-7 for the vertical direction based on the index (vertical direction) of the orthogonal transform type input from the entropy coder / decoder 200. Since DST-7 is the only candidate for the horizontal direction, the type selection unit 252 selects DST-7 for the horizontal direction.
[0127] In step S208, the inverse transform unit 212 restores the chrominance prediction residual by performing inverse orthogonal transform processing (horizontal direction, vertical direction) on the transform coefficients using the orthogonal transform type selected by the type selection unit 252. Thereafter, the synthesis unit 220 synthesizes the restored chrominance prediction residual and the predicted chrominance block generated by the inter-component intra prediction unit 241a to restore (decode) the original chrominance block.
[0128] (CCIP_A mode) In the case of CCIP_A mode (step S204: NO), in step S206, the candidate generator 251 generates candidates consisting of only DST-7 as vertical candidates, and generates candidates consisting of DCT-8 and DST-7 as horizontal candidates.
[0129] In step S207, the type selection unit 252 selects either DCT-8 or DST-7 for the horizontal direction based on the index (horizontal direction) of the orthogonal transform type input from the entropy coder / decoder 200. Since only DST-7 is a candidate for the vertical direction, the type selection unit 252 selects DST-7 for the horizontal direction.
[0130] In step S208, the inverse transform unit 212 restores the chrominance prediction residual by performing inverse orthogonal transform processing (horizontal direction, vertical direction) on the transform coefficients using the orthogonal transform type selected by the type selection unit 252. Thereafter, the synthesis unit 220 synthesizes the restored chrominance prediction residual and the predicted chrominance block generated by the inter-component intra prediction unit 241a to restore (decode) the original chrominance block.
[0131] <4. Summary of the embodiment> As described above, according to the image encoding device and image decoding device 2 of this embodiment, even if the position of the adjacent decoded pixel referenced in inter-component intra prediction is only one of the top, bottom, left, or right of the chrominance block (i.e., in the case of CCIP_A mode or CCIP_L mode), it is possible to perform transformation processing (orthogonal transformation processing and inverse orthogonal transformation processing) using an orthogonal transformation type suitable for the energy distribution tendency of the prediction residual, thereby improving the encoding efficiency.
[0132] According to the image encoding device 1 and image decoding device 2 of this embodiment, by generating different orthogonal transform type candidates for the first mode (normal CCIP mode) and the second mode (CCIP_A mode or CCIP_L mode), it is possible to perform transform processing (orthogonal transform processing and inverse orthogonal transform processing) using an orthogonal transform type that is suitable for the energy distribution tendency of the prediction residual in the second mode, thereby improving encoding efficiency.
[0133] According to the image encoding device 1 and image decoding device 2 of this embodiment, when the second mode is selected, different candidates for orthogonal transform types are generated for horizontal transform processing and vertical transform processing, so that transform processing can be performed using an orthogonal transform type suitable for the energy distribution tendency of the prediction residual in each of the horizontal and vertical directions, thereby improving encoding efficiency.
[0134] <5. Change Example 1> In the operation example according to the embodiment described above, an example has been described in which DST-7 is generated as an orthogonal transform candidate when generating only one candidate as a horizontal or vertical orthogonal transform type candidate. However, any orthogonal transform having an asymmetric impulse response similar to DST-7 and a small coefficient at one end point and a large coefficient at the other end point may be used, and the type is not limited to DST-7. For example, DCT-5 having similar characteristics to DST-7 may be used instead of DST-7.
[0135] Alternatively, DCT-5 and DST-7 may be selectively applied. Fig. 8 is a diagram showing an example of operation of the image encoding device 1 according to this modified example. Fig. 9 is a diagram showing an example of operation of the image decoding device 2 according to this modified example. Here, differences from the example of operation according to the above-mentioned embodiment will be described.
[0136] 8, in the case of CCIP_L (step S104: YES), in step S105a, the candidate generation unit 181 generates candidates consisting of DCT-5 and DST-7 as horizontal direction candidates. Also, the candidate generation unit 181 generates candidates consisting of DCT-8 and DST-7 as vertical direction candidates. In this case, in step S107, the type selection unit 182 selects either DCT-5 or DST-7 for the horizontal direction, and selects either DCT-8 or DST-7 for the vertical direction.
[0137] On the other hand, in the case of CCIP_A (step S104: NO), in step S106a, the candidate generator 181 generates candidates consisting of DCT-5 and DST-7 as vertical direction candidates, and generates candidates consisting of DCT-8 and DST-7 as horizontal direction candidates.
[0138] In step S107, the type selection unit 182 selects either DCT-5 or DST-7 for the vertical direction, and selects either DCT-8 or DST-7 for the horizontal direction.
[0139] 9, in the case of CCIP_L mode (step S204: YES), in step S205a, the candidate generator 251 generates candidates consisting of DCT-5 and DST-7 as horizontal candidates, and generates candidates consisting of DCT-8 and DST-7 as vertical candidates.
[0140] In step S207, the type selection unit 252 selects either DCT-5 or DST-7 for the horizontal direction based on the index (horizontal direction) of the orthogonal transform type input from the entropy coding / decoding unit 200, and selects either DCT-8 or DST-7 for the vertical direction based on the index (vertical direction) of the orthogonal transform type input from the entropy coding / decoding unit 200.
[0141] On the other hand, in the case of CCIP_A mode (step S204: NO), in step S206a, the candidate generator 251 generates candidates consisting of DCT-5 and DST-7 as vertical direction candidates, and generates candidates consisting of DCT-8 and DST-7 as horizontal direction candidates.
[0142] In step S207, the type selection unit 252 selects either DCT-5 or DST-7 for the vertical direction based on the index (vertical direction) of the orthogonal transform type input from the entropy coding / decoding unit 200, and selects either DCT-8 or DST-7 for the horizontal direction based on the index (horizontal direction) of the orthogonal transform type input from the entropy coding / decoding unit 200.
[0143] In this modified example, an example has been described in which DST-7 and DCT-5 are generated as orthogonal transform candidates. However, the present invention is not limited to DST-7 and DCT-5 as long as the transform has an asymmetric impulse response with similar characteristics to DST-7 and DCT-5.
[0144] <6. Change Example 2> In the above-described embodiment and modification example 1, the number of orthogonal transform candidates when the CCIP_L mode and the CCIP_A mode are applied is made smaller than the number of orthogonal transform candidates in the normal CCIP mode, thereby making it possible to reduce the bit length of the flag transmitted from the image encoding device 1 to the image decoding device 2. However, the following configuration may also be used.
[0145] Specifically, in this modification, when CCIP_A mode is applied, application of DCT-8 in the vertical direction is prohibited, and DCT-8 is not included in the vertical direction candidates. When CCIP_L mode is applied, application of DCT-8 in the horizontal direction is prohibited, and DCT-8 is not included in the horizontal direction candidates. Other orthogonal transform candidates are the same as those in the normal CCIP mode.
[0146] Next, Fig. 10 is a diagram showing an example of operation of the image encoding device 1 according to this modified example. Also, Fig. 11 is a diagram showing an example of operation of the image decoding device 2 according to this modified example, and a difference from the example of operation according to the above-mentioned embodiment will be described.
[0147] As shown in FIG. 10, when the CCIP_L mode is applied, the candidate generation unit 181 generates candidates consisting of DCT-2 and DST-7 as horizontal direction candidates, and generates candidates consisting of DCT-2, DCT-8, and DST-7 as vertical direction candidates (step S105b).
[0148] In step S107, the type selection unit 182 selects either DCT-2 or DST-7 for the horizontal direction, and selects either DCT-2, DCT-8, or DST-7 for the vertical direction.
[0149] On the other hand, when the CCIP_A mode is applied, the candidate generation unit 181 generates candidates consisting of DCT-2 and DST-7 as vertical direction candidates, and generates candidates consisting of DCT-2, DCT-8, and DST-7 as horizontal direction candidates (step S106b).
[0150] In step S107, the type selection unit 182 selects either DCT-2 or DST-7 for the vertical direction, and selects either DCT-2, DCT-8, or DST-7 for the horizontal direction.
[0151] As shown in FIG. 11, when the CCIP_L mode is applied, the candidate generation unit 251 generates candidates consisting of DCT-2 and DST-7 as horizontal direction candidates, and generates candidates consisting of DCT-2, DCT-8, and DST-7 as vertical direction candidates (step S205b).
[0152] In step S207, the type selection unit 252 selects one of DCT-2 and DST-7 for the horizontal direction based on the index (horizontal direction) of the orthogonal transform type input from the entropy code decoding unit 200. Then, the type selection unit 252 selects one of DCT-2, DCT-8, and DST-7 for the vertical direction based on the index (vertical direction) of the orthogonal transform type input from the entropy code decoding unit 200. When applying the CCIP_A mode, the candidate generation unit 251 generates candidates consisting of T-2 and DST-7 as vertical direction candidates, and generates candidates consisting of DCT-2, DCT-8, and DST-7 as horizontal direction candidates.
[0153] In step S207, the type selection unit 252 selects either DCT-2 or DST-7 for the vertical direction based on the index (vertical direction) of the orthogonal transform type input from the entropy coding / decoding unit 200, and selects either DCT-2, DCT-8, or DST-7 for the horizontal direction based on the index (horizontal direction) of the orthogonal transform type input from the entropy coding / decoding unit 200.
[0154] <7. Other embodiments> In the above-described embodiment, an example has been described in which a CCIP mode in which a chrominance block is predicted by referring to adjacent luminance and chrominance decoded pixels above and to the left of the chrominance block is used as a normal CCIP mode. However, instead of such a mode, a mode in which a chrominance block is predicted by referring to adjacent luminance and chrominance decoded pixels below and to the right of the chrominance block may be used.
[0155] In addition, in the above-mentioned embodiment, an example of using CCIP_A mode to predict a chrominance block by referring to adjacent luminance and chrominance decoded pixels only on the upper side of the chrominance block has been described. However, instead of such a mode, a mode in which the chrominance block is predicted by referring to adjacent luminance and chrominance decoded pixels only on the lower side of the chrominance block may be used.
[0156] In addition, in the above-mentioned embodiment, an example of using CCIP_L mode to predict a chrominance block by referring to adjacent luminance and chrominance decoded pixels only on the left side of the chrominance block has been described. However, instead of such a mode, a mode in which the chrominance block is predicted by referring to adjacent luminance and chrominance decoded pixels only on the right side of the chrominance block may be used.
[0157] In the above-described embodiment, the orthogonal transform candidates may include a transform skip that does not apply a transform to the residual signal. The transform skip scales the residual signal to obtain transform coefficients without applying a transform such as DCT or DST.
[0158] In the above-described embodiment, an example has been described in which the components constituting the video signal are luminance and color difference components (YCbCr), but the components constituting the video signal may be three primary color components (RGB).
[0159] A program for causing a computer to execute each process performed by the image encoding device 1 and a program for causing a computer to execute each process performed by the image decoding device 2 may be provided. 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. Furthermore, a circuit for executing each process performed by the image encoding device 1 may be integrated, and the image encoding device 1 may be configured as a semiconductor integrated circuit (chip set, SoC). Similarly, a circuit for executing each process performed by the image decoding device 2 may be integrated, and the image decoding device 2 may be configured as a semiconductor integrated circuit.
[0160] 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.
[0161] This application claims priority from Japanese Patent Application No. 2018-152988 (filed August 15, 2018), the entire contents of which are incorporated herein by reference.
Claims
1. an inter-component prediction unit that generates a predicted block of the second component by inter-component prediction that predicts a block of the second component by referring to decoded pixels of the first component and decoded pixels of the second component; a candidate generator for generating candidates of an orthogonal transform type to be applied to an orthogonal transform process for a prediction residual representing an error of a prediction block of the second component with respect to the block of the second component; a transform unit that performs an orthogonal transform process on the prediction residual by using an orthogonal transform type selected from the candidates generated by the candidate generation unit, The image coding device according to claim 1, wherein the candidate generation unit generates the orthogonal transform type candidates based on a mode indicating a type of the inter-component prediction process.
2. the first component is a luminance component; 2. The image encoding device according to claim 1, wherein the second component is a color difference component.
3. The image encoding device according to claim 1 or 2, characterized in that the candidate generation unit generates the candidates for the orthogonal transform type depending on whether the position of the adjacent decoded pixel referenced in the inter-component prediction is only one of above, below, left, or right of the block of the second component.
4. the inter-component prediction unit performs the inter-component prediction using a mode selected from a plurality of modes including a first mode and a second mode; The first mode is a mode in which the block of the second component is predicted by referring to the adjacent decoded pixels on both the upper side and the left side of the block of the second component; The second mode is a mode in which the block of the second component is predicted by referring to the adjacent decoded pixels only on the upper side or only on the left side of the block of the second component, The candidate generation unit When the first mode is selected, a first candidate of one or more orthogonal transform types is generated as a candidate of the orthogonal transform type; 4. The image encoding device according to claim 3, wherein, when the second mode is selected, a second candidate different from the first candidate is generated as the candidate for the orthogonal transform type.
5. the second candidates include horizontal candidates consisting of one or more orthogonal transform type candidates to be applied to a horizontal orthogonal transform process, and vertical candidates consisting of one or more orthogonal transform type candidates to be applied to a vertical orthogonal transform process; 5. The image encoding apparatus according to claim 4, wherein the horizontal candidates and the vertical candidates are at least partially different from each other.
6. an inter-component prediction unit that generates a predicted block of the second component by inter-component prediction that predicts a block of the second component by referring to decoded pixels of the first component and decoded pixels of the second component; a candidate generator configured to generate candidates for an orthogonal transform type to be applied to an inverse orthogonal transform process on a transform coefficient of a second component corresponding to a prediction residual representing an error of a prediction block of the second component with respect to the block of the second component; an inverse transform unit that performs an inverse orthogonal transform process on the transform coefficients of the second component by using an orthogonal transform type selected from the candidates generated by the candidate generation unit, The image decoding device, wherein the candidate generation unit generates the orthogonal transform type candidates based on a mode indicating a type of the inter-component prediction process.
7. the first component is a luminance component; 7. The image decoding device according to claim 6, wherein the second component is a color difference component.
8. The image decoding device according to claim 6 or 7, characterized in that the candidate generation unit generates the candidates for the orthogonal transform type depending on whether the position of the adjacent decoded pixel referenced in the inter-component prediction is only one of above, below, left, or right of the block of the second component.
9. the inter-component prediction unit performs the inter-component prediction using a mode selected from a plurality of modes including a first mode and a second mode; The first mode is a mode in which the block of the second component is predicted by referring to the adjacent decoded pixels on both the upper side and the left side of the block of the second component; The second mode is a mode in which the block of the second component is predicted by referring to the adjacent decoded pixels only on the upper side or only on the left side of the block of the second component, The candidate generation unit When the first mode is selected, a first candidate of one or more orthogonal transform types is generated as a candidate of the orthogonal transform type; 9. The image decoding device according to claim 8, wherein, when the second mode is selected, a second candidate different from the first candidate is generated as the candidate for the orthogonal transform type.
10. the second candidates include horizontal candidates consisting of one or more orthogonal transform type candidates to be applied to a horizontal inverse orthogonal transform process, and vertical candidates consisting of one or more orthogonal transform type candidates to be applied to a vertical inverse orthogonal transform process; 10. The image decoding apparatus according to claim 9, wherein the horizontal candidates and the vertical candidates are at least partially different from each other.
11. An image decoding method executed by an image decoding device, comprising: generating a predicted block of the second component by inter-component prediction for predicting the block of the second component with reference to decoded pixels of the first component and decoded pixels of the second component; generating candidates of orthogonal transform types to be applied to an inverse orthogonal transform process on transform coefficients of the second component corresponding to a prediction residual representing an error of a prediction block of the second component with respect to the block of the second component; performing an inverse orthogonal transform process on the transform coefficients of the second component using an orthogonal transform type selected from the generated candidates; 2. An image decoding method, comprising: generating candidates for the orthogonal transform type based on a mode indicating a type of inter-component prediction processing;
Citation Information
Patent Citations
Data encoding and decoding
JP2015515236A
Encoding method, decoding method, and apparatus utilizing the same
JP2015515821A
Intra-predictor, image coding device, image decoding device, and program
JP2018078409A