Intra prediction device and program
By spatially grouping reference pixels and deriving multiple prediction models for intra prediction, the proposed method addresses the limitations of existing methods in accurately predicting color difference components, resulting in improved prediction accuracy and video coding quality.
Patent Information
- Application Number
- PCT/JP2024/034471
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-09-29
- Filing Date
- 2024-09-26
- Publication Date
- 2025-04-03
AI Technical Summary
Existing intra prediction methods in video coding, such as CCLM and MMLM, face challenges in accurately predicting color difference components due to the assumption of a single tendency in luminance and color difference component distributions within a block, which can lead to reduced approximation accuracy, especially when object boundaries are present.
The proposed solution involves an intra prediction device that spatially groups decoded reference pixels of luminance and chrominance components into multiple reference pixel groups and derives multiple prediction models for each group. These models are used to predict color difference blocks from decoded luminance blocks, allowing for improved prediction accuracy by utilizing spatial features of the reference pixels.
This approach enhances the prediction accuracy of intra prediction by accounting for spatial features and varying tendencies within the image blocks, thereby improving the overall quality of video coding, especially in regions with complex structures like object boundaries.
Smart Images

Figure JP2024034471_03042025_PF_FP_ABST
Abstract
Description
Intra prediction device and program
[0001] The present disclosure relates to an intra prediction device and a program.
[0002] In video coding methods such as High Efficiency Video Coding (HEVC) and / or Versatile Video Coding (VVC), a coding device predicts coding blocks (CUs: Coding Units) obtained by dividing an original image into block units to generate prediction blocks, and then transforms, quantizes, and entropy-codes the prediction residual, which is the difference between the coding block of the original image and the prediction block, before transmitting the prediction residual.
[0003] The International Video Coding Standardization Working Group (JVET) (ISO / IEC JTC1 SC29 WG5) is currently studying the Enhanced Compression Model (ECM), a next-generation video coding technology. In the ECM, the introduction of a color difference prediction mode called the Multi Model Linear Model (MMLM) is being considered as an intra-prediction mode that takes into account correlation within a frame.
[0004] MMLM is an extension technique of the cross component linear model (CCLM) used in VVC. CCLM is a mode in which a decoded luminance block is used to predict a corresponding chrominance block to be predicted, and the chrominance block to be predicted is predicted using a linear model (also referred to as a "prediction model") from a decoded luminance block at a corresponding position. Here, a reduced block obtained by downsampling the decoded luminance block is used according to the chrominance format.
[0005] Such a prediction model is a linear model calculated by least mean squares using decoded pixels (reference pixels for the chrominance component) adjacent to a block to be predicted for the chrominance component and decoded pixels (reference pixels for the luminance component) adjacent to the corresponding decoded block for the luminance component. In VVC, the reference pixels for the luminance component and the chrominance component used in calculating the linear model are limited to only some pixel positions, thereby reducing the processing load.
[0006] CCLM is based on the premise that there is a certain trend in the distribution of luminance and chrominance components within a block, and therefore there is a problem that the approximation accuracy drops significantly when the distribution of luminance and chrominance components includes multiple trends, such as when an object boundary exists within a block. Therefore, the MMLM described in Non-Patent Document 1 prevents a drop in approximation accuracy by assuming multiple distributions, clustering the distribution of luminance and chrominance components using the average value of the luminance reference pixels as a threshold, and calculating a linear model for each cluster.
[0007] Specifically, in the MMLM described in Non-Patent Document 1, reference pixels are divided into two groups (two clusters) based on a threshold value, and two linear models are derived from the two groups. Then, the linear model used to predict the chrominance block is selected for each pixel depending on whether the pixel value of the decoded luminance block corresponding to the chrominance block to be predicted is greater than the threshold. In this way, each predicted pixel of the chrominance block to be predicted is generated while switching the linear model for each pixel of the decoded luminance block corresponding to the chrominance block to be predicted.
[0008] JVET-D0110 “Enhanced Cross-component Linear Model Intra-prediction”
[0009] An intra prediction device according to a first aspect performs intra prediction on a block-by-block basis obtained by dividing an image including a luminance component and a chrominance component. The intra prediction device includes: a grouping unit that determines multiple reference pixel groups by spatially grouping decoded reference pixels for the luminance component and the chrominance component according to their positions; and a model derivation unit that derives multiple prediction models by calculating, for each of the multiple reference pixel groups, a prediction model for predicting a block to be predicted for the chrominance component from the decoded block for the luminance component.
[0010] A program according to the second aspect causes a computer to function as the intra prediction device according to the first aspect.
[0011] 1 is a diagram illustrating a configuration of an encoding device according to an embodiment. FIG. 2 is a diagram illustrating an example of an intra prediction mode according to an embodiment. FIG. 3 is a diagram illustrating a configuration of an inter-component prediction unit of an intra prediction unit on an encoding side according to an embodiment. FIG. 4 is a diagram illustrating an operation of the inter-component prediction unit of an intra prediction unit according to an embodiment. FIG. 5 is a diagram illustrating an example of the operation of the inter-component prediction unit of an intra prediction unit according to an embodiment. FIG. 6 is a diagram illustrating an example of the operation of the inter-component prediction unit of an intra prediction unit according to an embodiment. FIG. 7 is a diagram illustrating an example of the operation of the inter-component prediction unit of an intra prediction unit according to an embodiment. FIG. 8 is a diagram illustrating an example of the operation of the inter-component prediction unit of an intra prediction unit according to an embodiment. FIG. 9 is a diagram illustrating an example of the operation of the inter-component prediction unit of an intra prediction unit according to an embodiment.
[0012] Conventional CCLM creates one linear model for each block to be coded, and the same linear model is used for all pixels in the block to be coded. However, this is a prediction that does not use the spatial characteristics of the reference pixels when creating the linear model. Furthermore, the MMLM described in Non-Patent Document 1 uses multiple linear models, but this also creates multiple linear models according to a threshold value for the luminance reference pixel value, and does not create a prediction that uses the spatial characteristics of the reference pixels. Both of these methods have room for improvement in terms of improving the prediction accuracy in intra prediction.
[0013] Therefore, an object of the present disclosure is to improve prediction accuracy in intra prediction using inter-component prediction.
[0014] An encoding device and a decoding device including an intra prediction device according to an embodiment will be described with reference to the drawings. The encoding device and the decoding device respectively encode and decode video (i.e., moving images) represented by MPEG. In the following description of the drawings, identical or similar parts are denoted by identical or similar reference numerals.
[0015] (1) Encoding Device The encoding device according to this embodiment will be described with reference to FIGS.
[0016] (1.1) Configuration of the Encoding Device First, the configuration of an encoding device 1 according to this embodiment will be described with reference to Fig. 1. The encoding device 1 is a device that encodes an input image to generate a bitstream and outputs the bitstream. The 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, and a prediction unit 170.
[0017] 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 blocks is, for example, 32 x 32 pixels, 16 x 16 pixels, 8 x 8 pixels, or 4 x 4 pixels. The shape of the image blocks is not limited to squares and may be rectangular (non-square). An image block is a unit for encoding by the encoding device 1 and a unit for decoding by the decoding device. Such an image block is also called a coding block (CU).
[0018] Each pixel in the input image is composed of a luminance component (Y) and chrominance components (Cb, Cr). The encoding device 1 supports three chrominance formats, for example, 4:4:4, 4:2:2, and 4:2:0. The block division unit 100 performs block division on the luminance component to output a luminance block, and performs block division on the chrominance component to output a chrominance block. The shape of the block division may be the same for the luminance component and the chrominance component. Alternatively, the shape of the block division may be independently controllable for the luminance component and the chrominance component.
[0019] The subtraction unit 110 calculates a prediction residual that represents the difference (error) between the coded block output by the block division unit 100 and a predicted block obtained by predicting the coded block by the prediction unit 170. Specifically, the subtraction unit 110 calculates the prediction residual by subtracting each pixel value of the predicted block from each pixel value of the block, and outputs the calculated prediction residual to the transformation / quantization unit 120.
[0020] The transform / quantization unit 120 performs 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.
[0021] The transform unit 121 performs a transform process on the prediction residuals output by the subtraction unit 110 to calculate transform coefficients, and outputs the calculated transform coefficients to the quantization unit 122. The transform refers to, for example, a discrete cosine transform (DCT) and / or a discrete sine transform (DST), a Karhunen-Loeve transform (KLT), etc. The transform process includes a transform skip in which no transform process is performed. The transform skip also includes a transform that applies a horizontal-only transform process and / or a vertical-only transform process. The transform unit 121 may also perform a secondary transform process in which a further transform process is applied to the transform coefficients obtained by the transform process. The secondary transform process may be applied to only a partial region of the transform coefficients.
[0022] The quantization unit 122 quantizes the transform coefficients output by the transform unit 121 using a quantization parameter and a quantization matrix, and outputs the quantized transform coefficients to the entropy coding unit 130 and the inverse quantization and inverse transform unit 140. The quantization parameter is a parameter that is commonly applied to each transform coefficient in a block and determines the coarseness of quantization. The quantization matrix is a matrix whose elements are quantization values used when quantizing each transform coefficient.
[0023] The entropy coding unit 130 performs entropy coding on the quantized transform coefficients output by the quantization unit 122, performs data compression to generate a bitstream, and outputs the bitstream to the outside of the coding device 1. For entropy coding, Huffman coding and / or CABAC (Context-based Adaptive Binary Arithmetic Coding) or the like can be used. Note that the entropy coding unit 130 receives input of prediction-related information (syntax such as flags and / or indexes) from the prediction unit 170, and also encodes the input information and outputs a bitstream.
[0024] The inverse quantization and inverse transform unit 140 performs inverse quantization processing and inverse 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.
[0025] The inverse quantization unit 141 performs inverse quantization processing corresponding to the quantization processing performed by the quantization unit 122. Specifically, the inverse quantization unit 141 reconstructs the transform coefficients by inverse quantizing the quantized transform coefficients output by the quantization unit 122 using a quantization parameter and a quantization matrix, and outputs the reconstructed transform coefficients to the inverse transform unit 142.
[0026] The inverse transform unit 142 performs inverse transform processing corresponding to the transform processing performed by the transform unit 121. For example, if 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 transform processing on the transform coefficients output by the inverse quantization unit 141 to reconstruct prediction residuals, and outputs the reconstructed prediction residuals to the synthesis unit 150.
[0027] The synthesis unit 150 synthesizes the reconstructed prediction residual output by the inverse transform unit 142 by adding it pixel by pixel to the predicted block output by 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, and outputs the reconstructed block to the memory 160. Hereinafter, the reconstructed block is also referred to as a decoded block.
[0028] The memory 160 stores the reconstructed blocks output by the synthesis unit 150 and accumulates the reconstructed blocks as decoded images on a frame-by-frame basis. The memory 160 outputs the stored reconstructed 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.
[0029] The prediction unit 170 performs prediction on a block-by-block basis and includes an inter prediction unit 171, an intra prediction unit 172, and a switching unit 173. In this embodiment, the intra prediction unit 172 constitutes an intra prediction device.
[0030] The inter prediction unit 171 uses a decoded image stored in the memory 160 as a reference image to calculate a motion vector by a technique such as block matching, predicts a coding block to generate 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 / or 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 vectors, etc.) to the entropy coding unit 130.
[0031] The intra prediction unit 172 generates an intra prediction block by referring to decoded pixels surrounding a block in the decoded image stored in the memory 160, and outputs the generated intra prediction block to the switching unit 173. Generally, the intra prediction unit 172 selects an intra prediction mode to be applied to a predicted coding block of intra prediction from among multiple intra prediction modes, and predicts the coding block of intra prediction using the selected intra prediction mode. The intra prediction unit 172 outputs information related to the selected intra prediction mode to the entropy coding unit 130. The intra prediction unit 172 according to this embodiment includes an inter-component prediction unit 10a that performs inter-component prediction. Details of the inter-component prediction unit 10a will be described later.
[0032] The switching unit 173 switches between the inter-predicted block output by the inter-prediction unit 171 and the intra-predicted block output by the intra-prediction unit 172 , and outputs either the predicted block to the subtraction unit 110 and the synthesis unit 150 .
[0033] 2 is a diagram illustrating an example of intra prediction modes according to this embodiment. The intra prediction unit 172 performs intra prediction on a coding block. In the example shown, the candidate intra prediction modes for a luminance block are planar prediction, DC prediction, and 65 directional predictions, for a total of 67 intra prediction modes.
[0034] Prediction mode mode 0 is planar prediction, prediction mode mode 1 is DC prediction, and prediction modes 2 to 66 are directional prediction (intra angular). In directional prediction, the direction of the arrow indicates the prediction direction (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 used for predicting this pixel to be predicted (also referred to as "reference pixel position"). A total of 65 modes of directional prediction are prepared, and the selectable prediction direction is determined by the shape (aspect ratio) of the block. Note that in the illustrated example, directional prediction is assumed to be in 65 directions, but the number of directional prediction directions may be more than 65 directions or less than 65 directions.
[0035] As prediction directions parallel to a diagonal line passing through the upper right vertex and the lower left vertex of a block, there are mode 2, which is a prediction mode that references the lower left direction, and mode 66, which is a prediction mode that references the upper right direction, and mode numbers are assigned clockwise from mode 2 to mode 66 at predetermined angles. Mode 34 is a prediction mode that references the upper left direction. Specifically, when the horizontal direction is 0°, the prediction direction of mode 2 is −45°, the prediction direction of mode 18 is 0°, the prediction direction of mode 34 is 45°, the prediction direction of mode 50 is 90°, and the prediction direction of mode 66 is 135°. Note that mode 18 is also referred to as horizontal prediction, and mode 50 is also referred to as vertical prediction.
[0036] Here, the directional predictions below mode 34, i.e., modes 2 to 33, are directional predictions that refer to the left side of the coding block, and the prediction direction is toward the left of the coding block. On the other hand, the directional predictions above mode 34, i.e., modes 35 to 66, are directional predictions that refer to the upper side of the coding block, and the prediction direction is toward the upper side of the coding block.
[0037] On the other hand, the number of candidate intra prediction modes for chrominance blocks is smaller than the number of candidate intra prediction modes for luminance blocks. Specifically, in intra prediction of a chrominance block, the intra prediction unit 172 determines the intra prediction mode used for intra prediction of a luminance block located 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 an intra prediction mode to be used for 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 predetermined as second candidate modes overlaps with the first candidate mode (DM), the intra prediction unit 172 may determine an alternative mode to be used as the second candidate mode in place of the overlapping default mode. Here, the default modes are planar mode (mode 0), vertical mode (mode 50), horizontal mode (mode 18), and 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 a luminance block located at a position corresponding to a chrominance block (also referred to as a "luminance block corresponding to a chrominance block") refers to a luminance block located at the same position as the chrominance block when the luminance block and the chrominance block have the same block division shapes. However, when the block division shapes of luminance and chrominance can be controlled independently, a luminance block located at a position corresponding to a chrominance block refers to a luminance block that includes coordinates corresponding to a predetermined pixel position within the chrominance block (e.g., the coordinates of the upper left corner of the chrominance block). Here, the coordinates corresponding to the predetermined pixel position within the chrominance block are not necessarily the same because the sizes of the luminance and chrominance components may differ in a chrominance format such as 4:2:0.
[0040] Furthermore, there is inter-component prediction as an intra prediction mode specific to chrominance blocks. In inter-component prediction, a linear model is derived from decoded reference pixels for the luminance component and the chrominance component surrounding a block to be predicted for the chrominance component, and the block to be predicted for the chrominance component is predicted using the linear model from a decoded block for the luminance component corresponding to the block to be predicted for the chrominance component. In inter-component prediction according to this embodiment, the CCLM used in VVC is extended to derive multiple linear models for one block to be predicted, and the block to be predicted for the chrominance component is predicted using the multiple linear models.
[0041] (1.2) Configuration of the Inter-Component Prediction Unit Next, the configuration of the inter-component prediction unit 10a of the intra prediction unit 172 according to this embodiment will be described with reference to Figures 3 and 4. The intra prediction unit 172 corresponds to an intra prediction device that performs intra prediction on a block-by-block basis obtained by dividing an image including each of the luminance and chrominance components. The inter-component prediction unit 10a includes a grouping unit 11a, a model derivation unit 12a, and a prediction unit 13a.
[0042] As shown in Fig. 3, the grouping unit 11a determines multiple reference pixel groups by spatially grouping the decoded reference pixels of each of the luminance component and the chrominance component according to their positions. In this embodiment, as shown in Fig. 4, the reference pixels are spatially grouped into two reference pixel groups (reference pixel group A and reference pixel group B) according to a predetermined rule, but the reference pixels may also be spatially grouped into three or more reference pixel groups.
[0043] In the MMLM described in Non-Patent Document 1, the reference pixels are divided into two groups using the average value of the reference pixels for the luminance component as a threshold, so the reference pixels within each group may be spatially dispersed. In contrast, in this embodiment, the reference pixels are spatially grouped according to their positions, so the reference pixels within each group can be spatially continuous (aggregated). Specifically, in this embodiment, each of the multiple reference pixel groups consists of multiple reference pixels that are spatially adjacent. This makes it possible to perform prediction using the spatial characteristics of the reference pixels.
[0044] The model derivation unit 12a derives multiple prediction models by calculating a prediction model for predicting a chrominance component block to be predicted from a decoded luminance component block for each of the multiple reference pixel groups determined by the grouping unit 11a. That is, the model derivation unit 12a derives multiple prediction models by calculating a prediction model for each reference pixel group. Note that in this embodiment, linear models are used as the prediction models. For example, as shown in FIG. 4 , the model derivation unit 12a derives linear model A from reference pixel group A and linear model B from reference pixel group B.
[0045] The prediction unit 13 a predicts a block to be predicted of a chrominance component from a decoded block of a luminance component using a plurality of prediction models (a plurality of linear models) derived by the model derivation unit 12 a, and outputs a predicted block corresponding to the block to be predicted. The prediction unit 13 a includes a generation unit 14 a, a weight determination unit 15 a, and a synthesis unit 16 a.
[0046] The generation unit 14a uses the multiple linear models derived by the model derivation unit 12a to generate multiple chrominance prediction blocks from a decoded luminance component block corresponding to a chrominance component prediction target block. That is, the generation unit 14a applies each linear model derived by the model derivation unit 12a to the decoded luminance component block, and generates a chrominance prediction block for each linear model. For example, as shown in FIG. 4 , the generation unit 14a applies linear model A to the decoded luminance component block to generate a chrominance prediction block A, and applies linear model B to the decoded luminance component block to generate a chrominance prediction block B.
[0047] The weight determination unit 15a determines, for each pixel, a weighting factor to be used when combining multiple chrominance prediction blocks using weighted combining. In this embodiment, the weight determination unit 15a determines the weighting factor for each pixel based on the position of the pixel. However, the weight determination unit 15a may use a predetermined fixed weighting factor regardless of the pixel's position. For example, the weight determination unit 15a may determine a weighting factor of 0.5 so as to combine the chrominance component prediction block A and the chrominance component prediction block B equally. Alternatively, the weight determination unit 15a may adaptively derive the weighting factor for each pixel based on the grouping status of the reference pixels and / or the shape and / or size of the block to be coded. The weight determination unit 15a may transmit (signal) information about the weighting factor to the decoding side via the entropy coding unit 130.
[0048] The combining unit 16a combines the multiple chrominance prediction blocks generated by the generating unit 14a by weighted combining, and outputs a chrominance prediction block corresponding to the chrominance prediction block to be predicted. For example, as shown in FIG. 4 , the combining unit 16a combines a chrominance prediction block A and a chrominance prediction block B by weighted combining, and outputs the combined block.
[0049] In the MMLM described in Non-Patent Document 1, two linear models are selectively applied for each pixel depending on whether the pixel value of the decoded block of the luminance component is greater than a threshold. In this case, a different linear model may be applied for each pixel, which may cause discontinuity between the generated predicted pixels and lead to deterioration of image quality. In contrast, in this embodiment, two linear models are used to generate two predicted blocks and the two predicted blocks are combined using weighted combining, which prevents such discontinuity and reduces image quality degradation.
[0050] (1.3) Example of Operation of Inter-Component Prediction Unit Next, with reference to FIGS. 5 to 8, an example of operation of the inter-component prediction unit 10a of the intra prediction unit 172 according to this embodiment will be described.
[0051] 5 , the grouping unit 11a spatially groups the decoded reference pixels for the luminance component and the chrominance component according to their positions, thereby determining a plurality of reference pixel groups. In this embodiment, the grouping unit 11a determines the reference pixels on the left side of the block to be predicted for the chrominance component and the reference pixels on the left side of the corresponding decoded block for the luminance component as reference pixel group A, and determines the reference pixels above the block to be predicted for the chrominance component and the reference pixels above the corresponding decoded block for the luminance component as reference pixel group B. Note that, in the example shown in the figure, the block to be predicted for the chrominance component has a square shape of 8×8 pixels, but the block to be predicted for the chrominance component may also have a non-square shape.
[0052] As shown in FIG. 6 , inter-component prediction is a mode in which a chrominance component block to be predicted ( FIG. 6( a) ) is predicted using a decoded luminance component block ( FIG. 6( b) ), and each pixel of the chrominance component block to be predicted is predicted using a linear model from the corresponding pixel of the decoded luminance component block. Depending on the chrominance format, a reduced block obtained by downsampling the decoded luminance component block may be used. For example, when the chrominance format is 4:2:0, the luminance component has an area twice as large vertically and horizontally as the chrominance component, and therefore a reduced block obtained by downsampling the decoded luminance component block by half vertically and horizontally is used.
[0053] As shown in FIG. 7 , the model derivation unit 12 a derives a linear model A from reference pixel group A, and derives a linear model B from reference pixel group B. The linear model corresponds to a regression line calculated for each reference pixel group by least mean squares. Here, the linear model can be expressed, for example, as Pred_c = a × Rec_y + b, where Prec_c represents a predicted pixel of the chrominance component, and Rec_y represents a decoded pixel of the corresponding luminance component. a and b are coefficients, and the model derivation unit 12 a can set different values for a and b for linear model A and linear model B, respectively. To calculate the coefficients a and b, the model derivation unit 12 a may use chrominance reference pixels (Ref_c) adjacent to the block to be predicted of the chrominance component and luminance reference pixels (Ref_l) at positions corresponding to the chrominance reference pixels to calculate the coefficients a and b such that arg min_{a, b}[Ref_c-(a×Ref_l+b)], thereby deriving linear model A and linear model B.
[0054] The generation unit 14a applies linear model A to the decoded block of the luminance component to generate a predicted block A of the chrominance component, and applies linear model B to the decoded block of the luminance component to generate a predicted block B of the chrominance component.
[0055] The weight determination unit 15a determines, for each pixel, a weighting coefficient used when combining the chrominance component prediction block A and the chrominance component prediction block B by weighted combining, based on the position of the pixel. Fig. 8 is a diagram showing an example of weighting coefficients to be applied to the chrominance component prediction block A generated using linear model A. In the example shown, the weight determination unit 15a determines, for each prediction pixel of the chrominance component prediction block A, a weight that is larger the closer the pixel is to the position of reference pixel group A (to the left of the block), and a weight that is smaller the closer the pixel is to the position of reference pixel group B (to the top of the block). Therefore, the weighting coefficients to be applied to the chrominance component prediction block A are determined so that the weighting coefficients decrease from the bottom left to the top right of the chrominance component prediction block A.
[0056] On the other hand, for each predicted pixel of the chrominance component prediction block B generated using the linear model B, the weight determiner 15a determines a larger weight the closer the pixel is to the position of the reference pixel group B (upper side of the block), and determines a smaller weight the closer the pixel is to the position of the reference pixel group A (left side of the block). Therefore, the weight coefficients to be applied to the chrominance component prediction block B are determined so that the weight coefficients increase from the lower left to the upper right of the chrominance component prediction block B.
[0057] The synthesis unit 16a uses the weighting coefficients determined by the weight determination unit 15a to synthesize the color difference component prediction block A and the color difference component prediction block B by weighted synthesis and outputs the result.
[0058] (2) Decoding Device Next, the decoding device 2 according to this embodiment will be described with reference to FIGS.
[0059] 9 is a diagram showing the configuration of a decoding device 2 according to this embodiment. The decoding device 2 is a device that derives and outputs a decoded image from an input bitstream. The 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.
[0060] The entropy decoding unit 200 decodes the bitstream generated by the encoding device 1 and outputs the quantized 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 may obtain a flag indicating that inter-component prediction is applied and output the flag to the prediction unit 240. The entropy decoding unit 200 may obtain information on weighting factors and output the information to the prediction unit 240.
[0061] The inverse quantization and inverse transform unit 210 performs inverse quantization and inverse 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.
[0062] The inverse quantization unit 211 performs inverse quantization processing corresponding to the quantization processing performed by the quantization unit 122 of the encoding device 1. The inverse quantization unit 211 reconstructs the transform coefficients of the coding block by inverse quantizing the quantized transform coefficients output by the entropy decoding unit 200 using the quantization parameter and the quantization matrix, and outputs the reconstructed transform coefficients to the inverse transform unit 212.
[0063] The inverse transform unit 212 performs inverse transform processing corresponding to the transform processing performed by the transform unit 121 of the encoding device 1. The inverse transform unit 212 performs inverse transform processing on the transform coefficients output by the inverse quantization unit 211 to reconstruct prediction residuals, and outputs the reconstructed prediction residuals to the synthesis unit 220. The inverse transform processing includes transform skip, in which the inverse transform processing is not performed. The inverse transform unit 212 may also perform inverse secondary transform processing in which further inverse transform processing is applied to the components obtained by the inverse transform processing.
[0064] The synthesis unit 220 synthesizes the prediction residual output by the inverse transform unit 212 and the prediction block output by the prediction unit 240 by adding them together pixel by pixel, decodes (reconstructs) the original block, and outputs the reconstructed block to the memory 230.
[0065] The memory 230 stores the reconstructed blocks output by the synthesis unit 220 and accumulates the reconstructed blocks as decoded images on a frame-by-frame basis. The memory 230 outputs the reconstructed 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 decoding device 2. Note that a loop filter may be provided between the synthesis unit 220 and the memory 230.
[0066] The prediction unit 240 performs prediction on a block-by-block basis and includes an inter prediction unit 241, an intra prediction unit 242, and a switching unit 243. In this embodiment, the intra prediction unit 242 constitutes an intra prediction device.
[0067] The inter prediction unit 241 predicts a coded block 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 in accordance with the motion vector information output by the entropy decoding unit 200, and outputs the generated inter prediction block to the switching unit 243.
[0068] The intra prediction unit 242 generates an intra prediction block by referring to decoded pixels surrounding a block to be predicted (encoded block) 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 172 according to this embodiment has an inter-component prediction unit 10b that performs inter-component prediction.
[0069] The switching unit 243 switches between the inter-predicted block output by the inter-prediction unit 241 and the intra-predicted block output by the intra-prediction unit 242 , and outputs either the predicted block to the synthesis unit 220 .
[0070] FIG. 10 is a diagram showing the configuration of the inter-component prediction section 10b of the intra prediction section 242 according to this embodiment.
[0071] The inter-component prediction unit 10b includes a grouping unit 11b, a model derivation unit 12b, and a prediction unit 13b. The prediction unit 13b includes a generation unit 14b, a weight determination unit 15b, and a synthesis unit 16b.
[0072] The grouping unit 11b, model derivation unit 12b, and prediction unit 13b (generation unit 14b, weight determination unit 15b, synthesis unit 16b) perform the same processing as the grouping unit 11a, model derivation unit 12a, and prediction unit 13a (generation unit 14a, weight determination unit 15a, synthesis unit 16a) of the inter-component prediction unit 10a on the encoding side, respectively.
[0073] (3) Example Operation Flow of Inter-Component Prediction Next, an example operation flow of inter-component prediction according to this embodiment will be described with reference to Fig. 11 . Here, the operation of the inter-component prediction unit 10b on the decoding side will be described as an example, but the inter-component prediction unit 10a on the encoding side also performs the same operation as the inter-component prediction unit 10b on the decoding side. When a flag indicating that inter-component prediction is to be applied to the chrominance block to be decoded is signaled from the encoding side, the inter-component prediction unit 10b on the decoding side performs the following operation.
[0074] In step S1, the grouping unit 11b spatially groups the decoded reference pixels of the luminance component and the chrominance component according to their positions, thereby determining a plurality of reference pixel groups.
[0075] In step S2, the model derivation unit 12b calculates a linear model for predicting a chrominance component block to be predicted from a decoded luminance component block for each of the reference pixel groups determined by the grouping unit 11b, thereby deriving a plurality of linear models. That is, the model derivation unit 12b derives a plurality of linear models by calculating a linear model for each reference pixel group.
[0076] In step S3, the generation unit 14b generates a plurality of chrominance prediction blocks from the decoded luminance block corresponding to the chrominance block to be predicted, using the plurality of linear models derived by the model derivation unit 12b. That is, the generation unit 14b applies each linear model derived by the model derivation unit 12b to the decoded luminance block, and generates a chrominance prediction block for each linear model.
[0077] In step S4, the combining unit 16b combines the multiple chrominance prediction blocks generated by the generating unit 14b using weighted combining to output a chrominance prediction block corresponding to the chrominance prediction block to be predicted. Here, the weight determining unit 15a determines a weighting factor to be used for the weighted combining for each pixel. In this embodiment, the weight determining unit 15a determines a weighting factor for each pixel based on the position of the pixel.
[0078] (4) Summary of the Embodiment The inter-component prediction unit 10 (10a, 10b) according to the embodiment includes a grouping unit 11 (11a, 11b) that determines multiple reference pixel groups by spatially grouping decoded reference pixels of the luminance component and the chrominance component according to their positions, and a model derivation unit 12 (12a, 12b) that derives multiple linear models by calculating, for each of the multiple reference pixel groups, a linear model for predicting a chrominance component prediction target block from a decoded luminance component block. In this way, because the reference pixels are spatially grouped according to their positions, the reference pixels within each reference pixel group can be spatially continuous (aggregated). In this embodiment, each of the multiple reference pixel groups consists of multiple spatially adjacent reference pixels. This enables prediction using the spatial characteristics of the reference pixels.
[0079] The inter-component prediction unit 10 (10a, 10b) according to the embodiment further includes a prediction unit 13 (13a, 13b) that predicts a chrominance component block to be predicted from a decoded luminance component block using a plurality of linear models. The prediction unit 13 (13a, 13b) includes a generation unit 14 (14a, 14b) that generates a plurality of chrominance prediction blocks from a decoded luminance component block using a plurality of linear models, and a synthesis unit 16 (16a, 16b) that synthesizes the plurality of chrominance prediction blocks using weighted synthesis and outputs a prediction block corresponding to the chrominance component block to be predicted. Because a plurality of prediction blocks are generated using a plurality of linear models and then synthesized using weighted synthesis, discontinuity between predicted pixels is less likely to occur, and image quality is less likely to deteriorate, compared to when prediction models are switched and applied selectively on a pixel-by-pixel basis.
[0080] The prediction unit 13 (13a, 13b) further includes a weight determination unit 15 (15a, 15b) that determines, for each pixel, a weight coefficient to be used in weighted synthesis. The weight determination unit 15 (15a, 15b) determines a weight coefficient for each pixel based on the position of the pixel. This allows the weight determination unit 15 (15a, 15b) to determine, for a chrominance prediction block, a larger weight coefficient for a prediction pixel that is close to the position of a reference pixel group used when generating the chrominance prediction block (i.e., a prediction pixel that is estimated to have high prediction accuracy), and a smaller weight coefficient for a prediction pixel that is far from the position of the reference pixel group (i.e., a prediction pixel that is estimated to have low prediction accuracy). This allows further utilization of the spatial characteristics of the reference pixels.
[0081] (5) First Modification Next, a first modification of the above-described embodiment will be described with reference to FIGS.
[0082] In the above-described embodiment, the grouping unit 11 (11a, 11b) spatially groups the reference pixels into two reference pixel groups (reference pixel group A on the left and reference pixel group B on the upper side) according to a predetermined rule. However, the grouping unit 11 (11a, 11b) may spatially group the reference pixels into three or more reference pixel groups.
[0083] The number of reference pixel groups resulting from grouping may also be variable. In this case, the grouping unit 11a on the encoding side may transmit (signal) information indicating the number of reference pixel groups resulting from grouping to the decoding side via the entropy encoding unit 130. On the decoding side, the entropy decoding unit 200 may acquire information indicating the number of reference pixel groups resulting from grouping, and the grouping unit 11b on the decoding side may determine the number of reference pixel groups resulting from grouping based on the acquired information. Alternatively, the grouping unit 11 (11a, 11b) may determine the number of reference pixel groups resulting from grouping (or its upper limit) based on the block size of the current block (the block to be encoded, the block to be decoded). For example, the grouping unit 11 (11a, 11b) may determine the number of reference pixel groups resulting from grouping (or its upper limit) to be increased as the block size increases.
[0084] 12, the grouping unit 11 (11a, 11b) spatially groups the reference pixels into three reference pixel groups (reference pixel groups A to C). Specifically, the grouping unit 11 (11a, 11b) groups five reference pixels within a range from the lower left of the block in the horizontal direction into group A, five reference pixels within a range from the vertical direction to the upper right of the block into group B, and the remaining six reference pixels into group C.
[0085] 12, the block to be predicted for the chrominance component is 8x8 in size, but for other block sizes, the grouping unit 11 (11a, 11b) determines the reference pixels that constitute each reference pixel group in accordance with the relative positional relationship of each reference pixel group with respect to the block. Therefore, once the number of reference pixel groups based on grouping is determined, the grouping unit 11 (11a, 11b) can determine the reference pixels that constitute each reference pixel group in common on the encoding side and the decoding side.
[0086] The grouping unit 11 (11a, 11b) may change the boundary positions between the reference pixel groups by performing grouping based on the correlation of pixel values between the reference pixels.
[0087] 12 , if the difference in pixel value between the uppermost reference pixel RL4 in reference pixel group A and the lowermost reference pixel RL3 in reference pixel group C is smaller than the difference in pixel value between the uppermost reference pixel RL4 and the second-highest reference pixel RL5 in reference pixel group A, the grouping unit 11 (11a, 11b) may include reference pixel RL4 in reference pixel group C. In this case, the boundary position between reference pixel group A and reference pixel group C is shifted downward by one pixel.
[0088] For the reference pixel RL3 located at the bottom of the reference pixel group C, if the difference in pixel value between the reference pixel RL3 located at the top of the reference pixel group A and the reference pixel RL4 located at the top of the reference pixel group C is smaller than the difference in pixel value between the reference pixel RL3 located at the bottom of the reference pixel group C and the reference pixel RL2 located at the second bottom of the reference pixel group C, the grouping unit 11 (11a, 11b) may include the reference pixel RL3 in the reference pixel group A. In this case, the boundary position between the reference pixel group A and the reference pixel group C is shifted upward by one pixel.
[0089] If the difference in pixel value between the leftmost reference pixel RT4 in reference pixel group B and the rightmost reference pixel RT3 in reference pixel group C is smaller than the difference in pixel value between the leftmost reference pixel RT4 and the second-from-the-left reference pixel RT5 in reference pixel group B, the grouping unit 11 (11a, 11b) may include reference pixel RT4 in reference pixel group C. In this case, the boundary position between reference pixel group A and reference pixel group C is shifted by one pixel to the right.
[0090] If the difference in pixel value between the rightmost reference pixel RT3 in reference pixel group C and the leftmost reference pixel RT4 in reference pixel group B is smaller than the difference in pixel value between the rightmost reference pixel RT3 and the leftmost reference pixel RT4 in reference pixel group C, the grouping unit 11 (11a, 11b) may include reference pixel RT3 in reference pixel group B. In this case, the boundary position between reference pixel group A and reference pixel group C is shifted by one pixel to the left.
[0091] The grouping unit 11 (11a, 11b) is not limited to grouping based on the correlation (difference) of pixel values between adjacent reference pixels as described above, but may also calculate a statistical value (e.g., variance) by statistical processing of the pixel values of each reference pixel and perform grouping based on the calculated statistical value. The grouping unit 11 (11a, 11b) is not limited to grouping based on the correlation of pixel values of reference pixels for the chrominance component as described above, but may also perform grouping based on the correlation of pixel values of reference pixels for the luminance component. The grouping unit 11 (11a, 11b) may also perform grouping based on the correlation of pixel values of reference pixels for both the luminance component and the chrominance component.
[0092] As shown in Fig. 13, the model derivation unit 12 (12a, 12b) derives three linear models by calculating a linear model for each of the reference pixel groups A to C shown in Fig. 12. Specifically, the model derivation unit 12 (12a, 12b) calculates linear model A from reference pixel group A, linear model B from reference pixel group B, and linear model C from reference pixel group C, thereby deriving linear models A to C.
[0093] The generation unit 14 (14a, 14b) then generates three chrominance prediction blocks from the decoded luminance component block using three linear models. Specifically, the generation unit 14 (14a, 14b) generates chrominance prediction block A from the decoded luminance component block using linear model A, generates chrominance prediction block B from the decoded luminance component block using linear model B, and generates chrominance prediction block C from the decoded luminance component block using linear model C.
[0094] The synthesis unit 16 (16a, 16b) synthesizes three chrominance prediction blocks (chrominance prediction blocks A to C) using weighted synthesis, and outputs a prediction block corresponding to a chrominance component prediction target block. Here, the weight determination unit 15 (15a, 15b) determines a weighting coefficient for each pixel based on the position of the pixel. In the example of FIG. 14 , the weight determination unit 15 (15a, 15b) divides the chrominance component prediction block into four regions (regions 1 to 4) and assigns different weights to each region. Such regions may be referred to as sub-blocks.
[0095] For example, first, the weight determination unit 15 (15a, 15b) sets a rectangular region (sub-block) 1 adjacent to the reference pixel group C, and for each predicted pixel in the region 1, determines the weight coefficient of the color difference prediction block C to be larger than the weight coefficients of the color difference prediction blocks A and B. In this case, for each predicted pixel Prec_c in the region 1, the weight determination unit 15 (15a, 15b) may determine the weight coefficient of the color difference prediction block C to be 0.6, and the weight coefficient of each of the color difference prediction blocks A and B to be 0.2. The synthesis unit 16 (16a, 16b) performs weighted synthesis for each predicted pixel in the region 1 as follows: Pred_c=0.2×Pred_c_A+0.2×Pred_c_B+0.2×Pred_c_C
[0096] Here, Pred_c_A is a predicted pixel of the color difference prediction block A, Pred_c_B is a predicted pixel of the color difference prediction block B, and Pred_c_C is a predicted pixel of the color difference prediction block C.
[0097] Note that the weight determination unit 15 (15a, 15b) may determine the weighting coefficient of the color difference prediction block C to be 1 and the weighting coefficients of the color difference prediction blocks A and B to be 0 for each predicted pixel Prec_c in region 1. In this case, region 1 is entirely composed of color difference prediction blocks C. However, performing such weighting may cause discontinuity between regions.
[0098] Second, the weight determination unit 15 (15a, 15b) sets a rectangular region (sub-block) 2 adjacent to the reference pixel group A, and determines, for each predicted pixel in the region 2, the weight coefficient of the color difference prediction block A to be larger than the weight coefficients of the color difference prediction blocks B and C. In this case, the weight determination unit 15 (15a, 15b) may determine, for each predicted pixel Prec_c in the region 2, the weight coefficient of the color difference prediction block A to be 0.6, and the weight coefficient of each of the color difference prediction blocks B and C to be 0.2. The synthesis unit 16 (16a, 16b) performs weighted synthesis for each predicted pixel in the region 2 as follows: Pred_c=0.6×Pred_c_A+0.2×Pred_c_B+0.2×Pred_c_C.
[0099] Third, the weight determination unit 15 (15a, 15b) sets a rectangular region (sub-block) 3 adjacent to the reference pixel group B, and determines, for each predicted pixel in the region 3, the weighting coefficient of the color difference prediction block B to be larger than the weighting coefficients of the color difference prediction blocks A and C. In this case, the weight determination unit 15 (15a, 15b) may determine, for each predicted pixel Prec_c in the region 2, the weighting coefficient of the color difference prediction block B to be 0.6, and the weighting coefficients of the color difference prediction blocks A and C to be 0.2. The synthesis unit 16 (16a, 16b) performs weighted synthesis for each predicted pixel in the region 3 as follows: Pred_c=0.2×Pred_c_A+0.6×Pred_c_B+0.2×Pred_c_C.
[0100] Fourth, the weight determination unit 15 (15a, 15b) sets a rectangular region (sub-block) 4 that is not adjacent to any of the reference pixel groups A to C, and determines the weight coefficients of each color difference prediction block for each predicted pixel in the region 4 so that they are equal or nearly equal. In this case, the weight determination unit 15 (15a, 15b) may determine the weight coefficients of each color difference prediction block A and B for each predicted pixel Prec_c in the region 4 to be 0.34, and the weight coefficient of the color difference prediction block C to be 0.32. The synthesis unit 16 (16a, 16b) performs weighted synthesis for each predicted pixel in the region 4 as follows: Pred_c=0.34×Pred_c_A+0.34×Pred_c_B+0.32×Pred_c_C.
[0101] The above weighting coefficient values are merely examples and may be changed as appropriate. For example, the weighting coefficient values may be changed according to the block size.
[0102] Furthermore, when performing sub-block division as shown in FIG. 14 , the generation unit 14 (14a, 14b) may generate chrominance prediction sub-blocks as follows: Region 1: Using linear model C, generate chrominance prediction sub-block 1 of the size of region 1 from the decoded block of the luminance component of region 1; Region 2: Using linear model A, generate chrominance prediction sub-block 2 of the size of region 2 from the decoded block of the luminance component of region 2; Region 3: Using linear model B, generate chrominance prediction sub-block 3 of the size of region 3 from the decoded block of the luminance component of region 3; Region 4: Using linear models A to C, generate three chrominance prediction sub-blocks 4 of the size of region 4 from the decoded block of the luminance component of region 4.
[0103] In this case, the synthesis unit 16 (16a, 16b) performs weighted synthesis as described above for each predicted pixel in region 4. The synthesis unit 16 (16a, 16b) may also perform filtering on each predicted pixel in a boundary region between regions. Here, the weight determination unit 15 (15a, 15b) may determine a filter coefficient (weighting coefficient) for each predicted pixel in the boundary region between regions. For example, the weight determination unit 15 (15a, 15b) may determine a larger weighting coefficient for each predicted pixel closer to the boundary between regions.
[0104] (6) Second Modification Next, a second modification of the above-described embodiment will be described with reference to Figures 15 and 16. In this modification, the weight determination unit 15 (15a, 15b) determines a weight coefficient for each pixel based on the prediction direction of the intra prediction mode applied to the decoded block of the luminance component.
[0105] In the example of Figure 15, the grouping unit 11 (11a, 11b) forms reference pixel group A using reference pixels RL3 to RL8, and forms reference pixel group B using reference pixels RL1 and RL2 and reference pixels RT1 to RT8. Here, it is assumed that the intra prediction mode applied to the decoded luminance component block corresponding to the current chrominance component prediction block is mode 18 (i.e., horizontal prediction). In this case, the weight determination unit 15 (15a, 15b) sets the boundary line between region 1 and region 2 to match the prediction direction of the intra prediction mode.
[0106] Then, the weight determination unit 15 (15a, 15b) determines the weighting coefficient of the color difference prediction block B to be larger than the weighting coefficient of the color difference prediction block A for each prediction pixel in region 1 adjacent to reference pixel group B. In this case, the weight determination unit 15 (15a, 15b) may determine the weighting coefficient of the color difference prediction block B to be 0.7 and the weighting coefficient of the color difference prediction block A to be 0.3 for each prediction pixel Prec_c in region 1. The synthesis unit 16 (16a, 16b) performs weighted synthesis for each prediction pixel in region 1 as follows: Pred_c = 0.3 × Pred_c_A + 0.7 × Pred_c_B.
[0107] On the other hand, the weight determination unit 15 (15a, 15b) determines the weighting coefficient of chrominance prediction block A to be larger than the weighting coefficient of chrominance prediction block B for each prediction pixel in region 2 adjacent to reference pixel group A. In this case, the weight determination unit 15 (15a, 15b) may determine the weighting coefficient of chrominance prediction block A to be 0.7 and the weighting coefficient of chrominance prediction block B to be 0.3 for each prediction pixel Prec_c in region 2. The synthesis unit 16 (16a, 16b) performs weighted synthesis for each prediction pixel in region 2 as follows: Pred_c = 0.7 × Pred_c_A + 0.3 × Pred_c_B.
[0108] In the example of Figure 16, the grouping unit 11 (11a, 11b) configures reference pixel group A using reference pixels RL3 to RL8, and configures reference pixel group B using reference pixels RL1 and RL2 and reference pixels RT1 to RT8, as in Figure 15. Here, it is assumed that the intra prediction mode applied to the decoded block of the luminance component corresponding to the block to be predicted of the chrominance component is mode 34 (i.e., 45-degree directional prediction). In this case, the weight determination unit 15 (15a, 15b) sets the boundary line between region 1 and region 2 to a 45-degree direction in accordance with the prediction direction of the intra prediction mode.
[0109] Then, the weight determination unit 15 (15a, 15b) determines the weighting coefficient of the color difference prediction block B to be larger than the weighting coefficient of the color difference prediction block A for each prediction pixel in region 1 adjacent to reference pixel group B. In this case, the weight determination unit 15 (15a, 15b) may determine the weighting coefficient of the color difference prediction block B to be 0.7 and the weighting coefficient of the color difference prediction block A to be 0.3 for each prediction pixel Prec_c in region 1. The synthesis unit 16 (16a, 16b) performs weighted synthesis for each prediction pixel in region 1 as follows: Pred_c = 0.3 × Pred_c_A + 0.7 × Pred_c_B.
[0110] On the other hand, the weight determination unit 15 (15a, 15b) determines the weighting coefficient of chrominance prediction block A to be larger than the weighting coefficient of chrominance prediction block B for each prediction pixel in region 2 adjacent to reference pixel group A. In this case, the weight determination unit 15 (15a, 15b) may determine the weighting coefficient of chrominance prediction block A to be 0.7 and the weighting coefficient of chrominance prediction block B to be 0.3 for each prediction pixel Prec_c in region 2. The synthesis unit 16 (16a, 16b) performs weighted synthesis for each prediction pixel in region 2 as follows: Pred_c = 0.7 × Pred_c_A + 0.3 × Pred_c_B.
[0111] Although the above description deals with an example in which the weighting coefficients are determined uniformly for each prediction pixel in each region, the weighting coefficients may be variably determined depending on the distance from the boundary line between the regions. For example, in the example of FIG. 15 , for prediction pixels in a horizontal prediction pixel line adjacent to region 2 within region 1 (i.e., the prediction pixel line to the right of reference pixel RL2), the weight determination unit 15 (15a, 15b) may determine the weighting coefficient of chrominance prediction block B to be 0.7 and the weighting coefficient of chrominance prediction block A to be 0.3. On the other hand, for prediction pixels in a horizontal prediction pixel line not adjacent to region 2 within region 1 (i.e., the prediction pixel line to the right of reference pixel RL1), the weight determination unit 15 (15a, 15b) may determine the weighting coefficient of chrominance prediction block B to be 0.9 and the weighting coefficient of chrominance prediction block A to be 0.1. Similarly, for region 2, the weight determination unit 15 (15a, 15b) may determine the weight coefficients so that the weight of color difference prediction block B decreases and the weight of color difference prediction block A increases as the block moves away from the boundary line between regions 1 and 2. This method of determining weight coefficients can also be applied to the first modified example described above.
[0112] (7) Third Modification Next, a third modification of the above-described embodiment will be described with reference to Fig. 17 to Fig. 19. In this modification, a scenario is assumed in which split prediction is applied to a block of a luminance component corresponding to a block to be predicted of a chrominance component.
[0113] For example, a luminance component block (luminance block) corresponding to a chrominance component prediction target block may be divided into a plurality of small regions (also referred to as "sub-blocks" or "sub-partitions") and predicted for each sub-block. Such partition prediction may be ISP (Intra Sub-Partition), which divides a luminance block into sub-partitions and performs intra prediction for each sub-partition. Alternatively, partition prediction may be BDOF (Bi-Directional Optical-Flow) or DMVR (Decoder-Side Motion Vector Refinement), which divides a luminance block into sub-blocks and performs inter prediction correction processing for each sub-block. BDOF is a technique for correcting inter-predicted images on a sub-block basis, and DMVR is a technique for correcting motion vectors on a sub-block basis. Alternatively, partition prediction is not limited to a prediction technique for dividing a luminance block into rectangular small regions, but may also be a prediction technique for dividing a luminance block into non-rectangular small regions. For example, the partition prediction may be a geometric partitioning mode (GPM) in which a luminance block is divided into non-rectangular small regions and inter prediction is performed for each non-rectangular small region.
[0114] 17A and 17B are diagrams illustrating an example in which GPM is applied to a luminance block corresponding to a chrominance component prediction target block. A chrominance format such as 4:2:0 is assumed here. As shown in FIG. 17A, an 8×8 luminance block is divided into non-rectangular regions 1 and 2 by GPM, and each of regions 1 and 2 is predicted by inter prediction. As shown in FIG. 17B, in inter-component prediction, the luminance block is down-converted to match the size of the chrominance component prediction target block, and the 8×8 luminance block is converted into a 4×4 luminance block.
[0115] When such split prediction is applied to a luminance block, the small regions obtained by dividing the luminance block are considered to have different spatial characteristics. Therefore, by taking the shape (and boundary) of each small region into consideration in the inter-component prediction according to the above-described embodiment, the prediction accuracy of intra prediction can be improved.
[0116] In the scenario of this modified example, the grouping unit 11 (11a, 11b) may determine the reference pixel groups based on the split prediction shape applied to the luminance block corresponding to the block to be predicted for the chrominance component, as shown in FIG. 18 . That is, the grouping unit 11 (11a, 11b) determines the reference pixel groups taking into account the shapes of the small regions (boundaries between small regions) obtained by dividing the luminance block. In the example of FIG. 18 , the grouping unit 11 (11a, 11b) divides the reference pixels at positions corresponding to the boundaries between regions 1 and 2 shown in FIG. 17( b) to determine reference pixel groups A and B. This makes it possible to more appropriately determine the reference pixel groups when split prediction is applied to the luminance block.
[0117] In the scenario of this modified example, the weight determination unit 15 (15a, 15b) may determine a weighting factor for each pixel based on the split prediction shape applied to the luminance block, as shown in FIG. 19 . That is, the weight determination unit 15 (15a, 15b) determines a weighting factor for each pixel by taking into account the shapes of the small regions (boundaries between the small regions) obtained by splitting the luminance block. In the example of FIG. 18 , the weight determination unit 15 (15a, 15b) changes the weighting at positions corresponding to the boundaries between regions 1 and 2. The specific method for determining the weighting factor for each region is the same as in the above-described embodiment and its modified example. This makes it possible to achieve more appropriate weighted synthesis when split prediction is applied to the luminance block.
[0118] (8) Other Embodiments In the above embodiment, an example has been described in which the model derivation unit 12 derives a linear model as the prediction model. In this case, the model derivation unit 12 derives a linear model as the prediction model, assuming that the correlation between the reference pixels for the luminance component and the reference pixels for the chrominance component is linear. However, the model derivation unit 12 may derive a nonlinear model as the prediction model, assuming that the correlation between the reference pixels for the luminance component and the reference pixels for the chrominance component is curved. For example, the model derivation unit 12 may derive a nonlinear model using a quadratic curve as the prediction model.
[0119] A program may be provided that causes a computer to execute each process performed by the image processing device (intra prediction device, encoding device 1, decoding device 2). The program may be recorded on a computer-readable medium. Using the computer-readable medium, the program can be installed on a computer. Here, the computer-readable medium on which the program is recorded may be a non-transitory recording medium. The non-transitory recording medium is not particularly limited, and may be, for example, a recording medium such as a CD-ROM or DVD-ROM. Circuits that execute each process performed by the image processing device (intra prediction device, encoding device 1, decoding device 2) may be integrated, and the image processing device may be configured as a semiconductor integrated circuit (chip set, SoC: System on a chip).
[0120] The functions performed by the image processing devices (intra prediction device, encoding device 1, decoding device 2) may be implemented in circuitry or processing circuitry, including general-purpose processors, application-specific processors, integrated circuits, ASICs (Application Specific Integrated Circuits), CPUs (Central Processing Units), conventional circuits, and / or combinations thereof, programmed to perform the described functions. A processor includes transistors and other circuits and is considered to be circuitry or processing circuitry. A processor may also be a programmed processor that executes a program stored in memory. In this specification, circuitry, units, and means refer to hardware that is programmed to perform the described functions or hardware that executes them. The hardware may be any hardware disclosed herein or any hardware known to be programmed or capable of performing the described functions. If the hardware is a processor, the circuitry, means, or unit is a combination of hardware and software used to configure the hardware and / or processor.
[0121] As used in this disclosure, the terms "based on" and "depending on / in response to" do not mean "based only on" or "depending only on," unless expressly stated otherwise. The term "based on" means both "based only on" and "based at least in part on." Similarly, the term "depending on" means both "depending only on" and "depending at least in part on." The terms "include," "comprise," and variations thereof do not mean including only the listed items, but may mean including only the listed items or may include additional items in addition to the listed items. Additionally, the term "or," as used in this disclosure, is not intended to mean an exclusive or. Furthermore, any reference to elements using designations such as "first," "second," etc., as used in this disclosure does not generally limit the quantity or order of those elements. These designations may be used herein as a convenient method of distinguishing between two or more elements. Thus, a reference to a first and a second element does not imply that only two elements may be employed therein or that the first element must precede the second element in some way. In this disclosure, where articles are added by translation, such as a, an, and the in English, these articles shall include the plural unless the context clearly indicates otherwise.
[0122] 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 can be made within the scope that does not deviate from the gist of the invention.
[0123] This application claims priority from Japanese Patent Application No. 2023-170492 (filed September 29, 2023), the entire contents of which are incorporated herein by reference.
[0124] (9) Supplementary Notes The following are additional notes regarding the features of the above-described embodiment.
[0125] (Supplementary Note 1) An intra prediction device (172, 242) that performs intra prediction on a block-by-block basis obtained by dividing an image including each of a luminance component and a chrominance component, the intra prediction device comprising: a grouping unit (11a, 11b) that determines a plurality of reference pixel groups by spatially grouping decoded reference pixels of the luminance component and the chrominance component according to their positions; and a model derivation unit (12a, 12b) that derives a plurality of prediction models by calculating, for each of the plurality of reference pixel groups, a prediction model for predicting a block to be predicted of the chrominance component from the decoded block of the luminance component.
[0126] (Supplementary Note 2) The intra prediction device according to Supplementary Note 1, wherein the grouping unit determines the reference pixel group further based on a split prediction shape applied to the decoded block of the luminance component.
[0127] (Supplementary Note 3) The intra prediction device according to Supplementary Note 1 or 2, further comprising a prediction unit (13a, 13b) that predicts the block to be predicted of the chrominance component from the decoded block of the luminance component using the plurality of prediction models, wherein the prediction unit includes: a generation unit (14a, 14b) that generates a plurality of chrominance prediction blocks from the decoded block of the luminance component using the plurality of prediction models; and a synthesis unit (16a, 16b) that synthesizes the plurality of chrominance prediction blocks by weighted synthesis and outputs a prediction block corresponding to the block to be predicted of the chrominance component.
[0128] (Supplementary Note 4) The intra prediction device according to Supplementary Note 3, wherein the prediction unit further includes a weight determination unit (15a, 15b) that determines, for each pixel, a weight coefficient to be used in the weighted synthesis, and the weight determination unit determines the weight coefficient for each pixel based on a position of the pixel.
[0129] (Supplementary Note 5) The intra prediction device according to Supplementary Note 4, wherein the weight determination unit determines the weight coefficient for each pixel further based on a partitioned prediction shape applied to the decoded block of the luminance component.
[0130] (Supplementary Note 6) The intra prediction device according to Supplementary Note 4 or 5, wherein the weight determination unit determines the weight coefficient for each pixel further based on a prediction direction of an intra prediction mode applied to the decoded block of the luminance component.
[0131] (Supplementary Note 7) The intra prediction device according to any one of Supplementary Notes 1 to 6, wherein each of the plurality of reference pixel groups is made up of a plurality of spatially adjacent reference pixels.
[0132] (Supplementary Note 8) The intra prediction device according to Supplementary Note 7, wherein the grouping unit changes a boundary position between the reference pixel groups by performing the grouping based on a correlation of pixel values between the reference pixels.
[0133] (Supplementary Note 9) A program that causes a computer to function as the intra prediction device according to any one of Supplementary Notes 1 to 8.
[0134] 1: Encoding device 2: Decoding device 10a: Inter-component prediction unit 10b: Inter-component prediction unit 11a: Grouping unit 11b: Grouping unit 12a: Model derivation unit 12b: Model derivation unit 13a: Prediction unit 13b: Prediction unit 14a: Generation unit 14b: Generation unit 15a: Weight determination unit 15b: Weight determination unit 16a: Synthesis unit 16b: Synthesis unit 100: Block division unit 110: Subtraction unit 120: Transformation and quantization unit 121: Transformation unit 122: Quantization unit 130: Entropy coding unit 140: Inverse quantization and inverse transformation unit 141: Inverse quantization unit 142: Inverse transformation unit 150: Synthesis unit 160: Memory 170 : Prediction unit 171 : Inter prediction unit 172 : Intra prediction unit 173 : Switching unit 200 : Entropy decoding unit 210 : Inverse quantization and inverse transform unit 211 : Inverse quantization unit 212 : Inverse transform unit 220 : Combining unit 230 : Memory 240 : Prediction unit 241 : Inter prediction unit 242 : Intra prediction unit 243 : Switching unit
Claims
1. An intra prediction device that performs intra prediction on a block-by-block basis obtained by dividing an image including each of a luminance component and a chrominance component, comprising: a grouping unit that determines a plurality of reference pixel groups by spatially grouping the decoded reference pixels of the luminance component and the chrominance component according to their positions; and a model derivation unit that derives a plurality of prediction models by calculating a prediction model for predicting a block to be predicted of the chrominance component from the decoded block of the luminance component for each of the plurality of reference pixel groups.
2. The intra prediction device according to claim 1, wherein the grouping section determines the reference pixel group further based on a partitioned prediction shape applied to the decoded block of the luminance component.
3. The intra prediction device of claim 1 or 2, further comprising a prediction unit that predicts a block to be predicted of the chrominance component from the decoded block of the luminance component using the multiple prediction models, the prediction unit including: a generation unit that generates multiple chrominance prediction blocks from the decoded block of the luminance component using the multiple prediction models; and a synthesis unit that synthesizes the multiple chrominance prediction blocks by weighted synthesis and outputs a prediction block corresponding to the block to be predicted of the chrominance component.
4. The intra prediction device according to claim 3, wherein the prediction unit further comprises a weight determination unit that determines a weighting coefficient to be used for the weighted synthesis for each pixel, and the weight determination unit determines the weighting coefficient for each pixel based on the position of the pixel.
5. The intra prediction device according to claim 4, wherein the weight determination unit determines the weight coefficient for each pixel further based on a partitioned prediction shape applied to the decoded block of the luminance component.
6. The intra prediction device according to claim 4, wherein the weight determination section determines the weight coefficient for each pixel further based on a prediction direction of an intra prediction mode applied to the decoded block of the luminance component.
7. The intra prediction device according to claim 1, wherein each of the plurality of reference pixel groups is made up of a plurality of spatially adjacent reference pixels.
8. The intra prediction device according to claim 7, wherein the grouping section changes a boundary position between the reference pixel groups by performing the grouping based on a correlation between pixel values of the reference pixels.
9. A program for causing a computer to function as the intra prediction device according to claim 1.
Citation Information
Patent Citations
Fluid controller and manufacturing method thereof
JP2023170492A
Cross-component depth-LUMA coding
WO2023057501A1