Intra prediction device, image decoding device, and program
The intra prediction device enhances prediction accuracy by performing weighted synthesis of directional and Planar prediction images, with weight coefficients adjusted based on pixel position to address the decreasing accuracy of directional prediction with distance from reference pixels.
Patent Information
- Application Number
- JP2024074533
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-03-15
- Filing Date
- 2024-05-01
- Publication Date
- 2025-06-26
- Estimated Expiration
- 2040-03-12
AI Technical Summary
Directional prediction in intra prediction methods has high accuracy for pixels near reference pixels but decreases as the distance from reference pixels increases, and existing prediction image synthesis methods do not adequately address this issue.
An intra prediction device that performs weighted synthesis of directional prediction images and Planar prediction images, where weight coefficients are determined based on pixel position to compensate for the decreasing accuracy of directional prediction with distance from reference pixels.
Improves the prediction accuracy of intra prediction by dynamically adjusting the weight of directional and Planar prediction images based on pixel position, thereby enhancing the overall prediction performance.
Smart Images

Figure 0007699266000001 
Figure 0007699266000002 
Figure 0007699266000003
Abstract
Description
Technical Field
[0001] The present invention relates to an intra prediction device, an image decoding device, and a program.
Background Art
[0002] Conventionally, research has been conducted on video coding methods to compress the data volume of still images and moving images during transmission or storage. In recent years, in video coding technology, the spread of ultra-high-definition video such as 8K-SHV has been progressing, and coding methods such as AVC / H.264 and HEVC / H.265 are known as methods for transmitting moving images with a huge data volume.
[0003] In the evaluation software (VTM) for VVC (Versatile Video Coding), which is the next-generation video coding method jointly standardized by MPEG and ITU, intra prediction (inter-frame prediction) using the spatial correlation within a frame is utilized (see Non-Patent Document 1). By using the decoded reference pixels around the coding unit (Coding Unit) to be coded, among a total of 67 prediction modes consisting of Planar prediction, DC prediction, and 65 directional predictions, the optimal mode is selected on the encoder side, and the selected information is sent to the decoder side.
[0004] As a method for improving the prediction accuracy of intra prediction, a prediction image synthesis method has been proposed in which prediction images are generated by two intra prediction modes respectively, and each pixel of the two prediction images is added together to generate a new prediction image (see Non-Patent Document 2). Specifically, a prediction image is generated by adding together a directional prediction image, which is a prediction image generated by any one of the above-mentioned 65 directional prediction modes, and a Planar prediction image, which is a prediction image generated by the Planar mode.
Prior Art Documents
Non-Patent Documents
[0005]
Non-Patent Document 1
Non-Patent Document 2
Summary of the Invention
Problems to be Solved by the Invention
[0006] By the way, directional prediction has a drawback that although the prediction accuracy of pixels near the reference pixels is high, the prediction accuracy may decrease as the distance from the reference pixels increases.
[0007] However, the prediction image synthesis method described in Non-Patent Document 2 merely averages the directional prediction image and the Planar prediction image on a pixel-by-pixel basis, without considering the drawbacks of directional prediction, and there is room for improvement in further enhancing the prediction accuracy of intra prediction.
[0008] Therefore, an object of the present invention is to provide an intra prediction device, an image decoding device, and a program that further enhance the prediction accuracy of intra prediction by a prediction image synthesis method.
Means for Solving the Problems
[0009] The intra prediction device according to the first aspect is provided in an image decoding device, and the intra prediction device that performs intra prediction on an image block obtained by dividing an original image includes a first image generation unit that predicts the image block by a first prediction process to generate a first image, a second image generation unit that predicts the image block by a second prediction process to generate a second image, a weight coefficient determination unit that determines a weight coefficient used when the first image and the second image are weighted and synthesized pixel by pixel based on the position of the pixel, and an image synthesis unit that weights and synthesizes the first image and the second image pixel by pixel using the weight coefficient determined pixel by pixel by the weight coefficient determination unit. The gist of the image synthesis unit is that even when a syntax indicating that the weighted synthesis is to be performed is not signaled from the encoding side, the weighted synthesis is always performed in response to a predetermined condition being satisfied.
[0010] The image encoding device according to the second aspect is characterized by including the intra prediction device according to the first aspect.
[0011] The image decoding device according to the third aspect is characterized by including the intra prediction device according to the first aspect.
[0012] The program according to the fourth aspect is characterized by causing a computer to function as the intra prediction device according to the first aspect.
Advantages of the Invention
[0013] According to the present invention, it is possible to provide an intra prediction device, an image encoding device, an image decoding device, and a program that further improve the prediction accuracy of intra prediction by a prediction image synthesis method.
Brief Description of the Drawings
[0014]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Embodiments for Carrying Out the Invention
[0015] With reference to the drawings, an image encoding apparatus and an image decoding apparatus according to the embodiment will be described. The image encoding apparatus and the image decoding apparatus according to the embodiment respectively perform encoding and decoding of moving images typified by MPEG. In the following description of the drawings, the same or similar parts are denoted by the same or similar reference numerals.
[0016] <Configuration of Image Encoding Apparatus> First, the image encoding apparatus according to the present embodiment will be described. FIG. 1 is a diagram showing the configuration of the image encoding apparatus 1 according to the present embodiment.
[0017] As shown in FIG. 1, the image encoding apparatus 1 includes a block division unit 100, a subtraction unit 110, a conversion / quantization unit 120, an entropy encoding unit 130, an inverse quantization / inverse conversion unit 140, a synthesis unit 150, a memory 160, and a prediction unit 170.
[0018] The block division unit 100 divides the 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 the division to the subtraction unit 110. The size of the image block is, for example, 32×32 pixels, 16×16 pixels, 8×8 pixels, or 4×4 pixels, etc. The shape of the image block is not limited to a square and may be a rectangle. The image block is a unit (encoding target block) for the image encoding device 1 to perform encoding, and is also a unit (decoding target block) for the image decoding device to perform decoding. Such an image block may be called a CU (Coding Unit).
[0019] The subtraction unit 110 calculates a prediction residual representing the difference (error) between the encoding target block input from the block division unit 100 and the predicted image obtained by the prediction unit 170 predicting the encoding target block. 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, and outputs the calculated prediction residual to the transformation / quantization unit 120.
[0020] The transformation / quantization unit 120 performs orthogonal transformation processing and quantization processing in block units. The transformation / quantization unit 120 includes a transformation unit 121 and a quantization unit 122.
[0021] The transformation unit 121 performs orthogonal transformation processing on the prediction residual input from the subtraction unit 110 to calculate orthogonal transformation coefficients, and outputs the calculated orthogonal transformation coefficients to the quantization unit 122. The orthogonal transformation refers to, for example, a discrete cosine transform (DCT), a discrete sine transform (DST), a Karhunen-Loeve transform (KLT), etc.
[0022] The quantization unit 122 quantizes the orthogonal transform coefficients input from the conversion unit 121 using a quantization parameter (Qp) and a quantization matrix, and outputs the quantized orthogonal transform coefficients to the entropy encoding unit 130 and the inverse quantization / inverse transform unit 140. Note that the quantization parameter (Qp) is a parameter that is commonly applied to each orthogonal transform coefficient within a block and determines the coarseness of quantization. The quantization matrix is a matrix having quantization values as elements when quantizing each orthogonal transform coefficient.
[0023] The entropy encoding unit 130 performs entropy encoding on the orthogonal transform coefficients input from the quantization unit 122, performs data compression to generate encoded data (bit stream), and outputs the encoded data to the outside of the image encoding apparatus 1. For entropy encoding, Huffman coding, CABAC (Context-based Adaptive Binary Arithmetic Coding), or the like can be used. Note that the entropy encoding unit 130 also performs entropy encoding of the input information regarding syntax and the like from the prediction unit 170.
[0024] The inverse quantization / inverse transform unit 140 performs inverse quantization processing and inverse orthogonal transform processing in block units. The inverse quantization / 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 restores the orthogonal transform coefficients by inverse quantizing the orthogonal transform coefficients input from the quantization unit 122 using the quantization parameter (Qp) and the quantization matrix, and outputs the restored orthogonal transform coefficients to the inverse transform unit 142.
[0026] The inverse transformation unit 142 performs an inverse orthogonal transformation process corresponding to the orthogonal transformation process performed by the transformation unit 121. For example, when the transformation unit 121 performs a discrete cosine transformation, the inverse transformation unit 142 performs an inverse discrete cosine transformation. The inverse transformation unit 142 performs an inverse orthogonal transformation process on the orthogonal transformation coefficients input from the inverse quantization unit 141 to restore the prediction residual, and outputs the restored prediction residual, which is the restored prediction residual, to the synthesis unit 150.
[0027] The synthesis unit 150 synthesizes the restored prediction residual input from the inverse transformation unit 142 and the prediction image input from the prediction unit 170 on a pixel-by-pixel basis. The synthesis unit 150 adds each pixel value of the restored prediction residual and each pixel value of the prediction image to reconstruct (decode) the block to be encoded, and outputs the decoded image in block units to the memory 160. Such a decoded image may be referred to as a reconstructed image.
[0028] The memory 160 stores the decoded image input from the synthesis unit 150. The memory 160 stores the decoded image in frame units. The memory 160 outputs the stored decoded image to the prediction unit 170. A loop filter may be provided between the synthesis unit 150 and the memory 160. A part of the memory 160 may be included in the prediction unit 170.
[0029] The prediction unit 170 performs prediction in block units. The prediction unit 170 includes an inter prediction unit 171, an intra prediction unit 172, and a switching unit 173.
[0030] The inter prediction unit 171 uses the decoded image stored in the memory 160 as a reference image, calculates a motion vector by a method such as block matching, predicts the block to be encoded, generates an inter prediction image, and outputs the generated inter prediction image to the switching unit 173.
[0031] The inter prediction unit 171 selects an optimal inter prediction method from among inter predictions using a plurality of reference images (typically, bi-prediction) and inter predictions using one reference image (uni-directional prediction), and performs inter prediction using the selected inter prediction method. The inter prediction unit 171 outputs information related to inter prediction (such as motion vectors) to the entropy encoding unit 130.
[0032] The intra prediction unit 172 generates an intra prediction image by referring to the decoded pixel values around the block to be encoded among the decoded images stored in the memory 160, and outputs the generated intra prediction image to the switching unit 173. Further, the intra prediction unit 172 outputs the syntax related to the selected prediction mode to the entropy encoding unit 130. Hereinafter, an image block to be subjected to intra prediction is referred to as an intra prediction target block.
[0033] The intra prediction unit 172 selects an optimal prediction mode to be applied to the intra prediction target block from among a plurality of prediction modes, and predicts the intra prediction target block using the selected prediction mode.
[0034] FIG. 2 is a diagram showing the prediction modes of intra prediction according to the present embodiment. As shown in FIG. 2, there are 67 prediction modes from 0 to 66. The mode "0" of the prediction mode is Planar prediction, the mode "1" of the prediction mode is DC prediction, and the modes "2" to "66" of the prediction mode are directional predictions. In the directional prediction, the direction of the arrow indicates the prediction 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 the prediction of this pixel to be predicted. The modes "2" to "18" are prediction modes that refer to only the reference pixels on the left side of the block to be subjected to intra prediction. On the other hand, the modes "50" to "66" are prediction modes that refer to only the reference pixels above the block to be subjected to intra prediction.
[0035] The switching unit 173 switches between the inter-prediction image input from the inter-prediction unit 171 and the intra-prediction image input from the intra-prediction unit 172, and outputs one of the prediction images to the subtraction unit 110 and the synthesis unit 150.
[0036] FIG. 3 is a diagram showing the configuration of the intra-prediction unit 172 according to the present embodiment. The intra-prediction unit 172 corresponds to an intra-prediction device provided in the image encoding apparatus 1.
[0037] As shown in FIG. 3, the intra-prediction unit 172 includes a memory 160a, a first prediction image generation unit 172a, a second prediction image generation unit 172b, a weight coefficient determination unit 172c, and an image synthesis unit 172d.
[0038] The memory 160a is a part of the memory 160 shown in FIG. 1. The memory 160a stores reference pixels that are decoded pixels referred to during intra-prediction.
[0039] The first prediction image generation unit 172a predicts an intra-prediction target block by a first intra-prediction mode that is a directional prediction, generates a directional prediction image (first prediction image), and outputs the generated directional prediction image to the image synthesis unit 172d. Specifically, the first prediction image generation unit 172a refers to the reference pixels stored in the memory 160a and generates a directional prediction image by one of 65 directional prediction modes.
[0040] The second prediction image generation unit 172b predicts an intra-prediction target block by a second intra-prediction mode that is a non-directional prediction, generates a prediction image (second prediction image), and outputs the generated prediction image to the image synthesis unit 172d. Specifically, the second prediction image generation unit 172b refers to the reference pixels stored in the memory 160a and generates a directional prediction image by a predetermined non-directional second intra-prediction mode.
[0041] The second intra prediction mode may be any prediction mode as long as it is a non-directional prediction mode. However, in this embodiment, an example where the second intra prediction mode is Planar prediction will be described.
[0042] The weight coefficient determination unit 172c determines a weight coefficient for each pixel position (coordinate) of the intra prediction target block, and outputs the determined weight coefficient to the image synthesis unit 172d. The weight coefficient output by the weight coefficient determination unit 172c is used when weighted-combining the directional prediction image generated by the first prediction image generation unit 172a and the Planar prediction image generated by the second prediction image generation unit 172b. Specifically, the weight coefficient determination unit 172c determines the weight coefficient used for weighted-combining the directional prediction image and the Planar prediction image for each pixel based on the position of the pixel.
[0043] The image synthesis unit 172d uses the weight coefficient input from the weight coefficient determination unit 172c to perform weighted combination of the directional prediction image input from the first prediction image generation unit 172a and the Planar prediction image input from the second prediction image generation unit 172b for each pixel, and outputs the prediction image after weighted combination as the intra prediction image.
[0044] FIG. 4 is a diagram showing an operation example of the intra prediction unit 172 according to this embodiment. In FIG. 4, an example where the intra prediction target block is a square shape of 8×8 pixels is illustrated, but the intra prediction target block does not have to be square. Also, in FIG. 4, the pixels indicated by circles represent reference pixels (decoded reference pixels).
[0045] As shown in FIG. 4(a), the second prediction image generation unit 172b predicts the intra prediction target block by Planar prediction and generates a Planar prediction image. Specifically, Planar prediction generates a predicted pixel value by interpolation prediction using the four upper, lower, left, and right reference pixels at the starting points of the four arrows in FIG. 4(a).
[0046] As shown in FIG. 4(b), the first predicted image generation unit 172a predicts an intra prediction target block in the directional prediction mode to generate a directional prediction image. Since the directional prediction generates a predicted pixel value by extrapolating reference pixels along the prediction direction, although the prediction accuracy is high for pixels at positions close to the reference pixels, there is a drawback that the prediction accuracy may decrease as the distance from the reference pixels increases.
[0047] The weight coefficient determination unit 172c determines the weight coefficients used when pixel-by-pixel weighted synthesis of the directional prediction image and the Planar prediction image based on the position of the pixel. In the present embodiment, the weight coefficient determination unit 172c determines a weight coefficient α (second weight coefficient) applied to the Planar prediction image and a weight coefficient β (first weight coefficient) applied to the directional prediction image.
[0048] As shown in FIG. 4(c), the image synthesis unit 172d applies the weight coefficient β(x, y) to each pixel (x, y) of the directional prediction image generated by the first predicted image generation unit 172a, and applies the weight coefficient α(x, y) to each pixel (x, y) of the Planar prediction image generated by the second predicted image generation unit 172b, and synthesizes the directional prediction image and the Planar prediction image in pixel units, and outputs the synthesized predicted image as an intra prediction image. Here, with reference to the upper left vertex of the prediction target block, x indicates the coordinate position in the horizontal direction, and y indicates the coordinate position in the vertical direction.
[0049] In the present embodiment, the image synthesis unit 172d multiplies the pixel pred α (x, y) of the Planar prediction image by the weight coefficient α(x, y), multiplies the pixel pred β (x, y) of the directional prediction image by the weight coefficient β(x, y), and outputs the predicted image obtained by synthesizing them as the pixel pred(x, y) of the intra prediction image.
[0050] pred(x,y)=(α(x,y)×pred α (x,y) + β(x,y)×pred β (x,y) + 32) >> 6 ···(1)
[0051] FIG. 5 is a diagram showing an operation example 1 of the weight coefficient determination unit 172c according to the present embodiment. In FIG. 5, an example in which the intra prediction target block is a square shape of 4×4 pixels is illustrated, but the intra prediction target block does not have to be square. Also, the pixels indicated by circles in FIG. 5 represent reference pixels (decoded reference pixels).
[0052] As shown in FIG. 5, the weight coefficient determination unit 172c determines a weight coefficient α(x, y) applied to the Planar prediction image and a weight coefficient β(x, y) applied to the directional prediction image based on the pixel position (x, y). Specifically, the weight coefficient determination unit 172c increases the ratio of β(x, y) to α(x, y) as the pixel position (x, y) is closer to the reference pixel. In other words, the weight coefficient determination unit 172c decreases the ratio of β(x, y) to α(x, y) as the pixel position (x, y) moves away from the reference pixel.
[0053] Directional prediction has a drawback that the prediction accuracy may decrease as the distance from the reference pixel increases. According to the present embodiment, since the ratio of the weight β(x, y) of the pixel in the directional prediction image to the weight α(x, y) of the pixel in the Planar prediction image is decreased as the distance from the reference pixel increases, the drawback of the directional prediction can be compensated for by the Planar prediction.
[0054] Also, directional prediction has an advantage that the prediction accuracy is high for pixels at positions close to the reference pixel. According to the present embodiment, since the ratio of the weight β(x, y) of the pixel in the directional prediction image to the weight α(x, y) of the pixel in the Planar prediction image is increased as the distance to the reference pixel decreases, the advantage of the directional prediction can be utilized.
[0055] For example, the weight coefficient determination unit 172c determines the weight coefficients α(x, y) and β(x, y) by the following formula (2).
[0056] α(x,y)= 64 - β(x,y) β(x,y) = 32 - (z << 5) >> shift z = min(x,y) shift = (log2(width) + log2(height) + 1) >> 1 ···(2)
[0057] However, width indicates the width of the block to be predicted, and height indicates the height of the block to be predicted.
[0058] As shown in Equation (2), the value of z changes according to the pixel position (x, y), and the values of the weight coefficient α(x, y) and the weight coefficient β(x, y) change according to the change in the value of z. Specifically, as the values of x and y increase, the value of z increases, and accordingly, the value of the weight coefficient β(x, y) decreases while the value of the weight coefficient α(x, y) increases.
[0059] In the example of FIG. 5, when x = 1 and y = 1, that is, at the pixel position closest to the reference pixel, α:β = 32:32, showing an example in which the pixel value of the Planar prediction image and the pixel value of the directional prediction image are combined at an equal ratio. However, it is not necessary for the pixel values of each pixel to be combined at the same ratio at the pixel position closest to the reference pixel, and it may be determined such that the ratio of the pixel value of the directional prediction image increases at the pixel position closest to the reference pixel.
[0060] FIG. 6 is a diagram showing an operation example 2 of the weight coefficient determination unit 172c according to the present embodiment. In FIG. 6, an example in which the intra prediction target block is a square shape of 4×4 pixels is illustrated, but the intra prediction target block may not be square. Also, the pixels indicated by circles in FIG. 6 represent reference pixels (decoded reference pixels).
[0061] As shown in FIG. 6, the weight coefficient determination unit 172c determines the weight coefficient α(x, y) applied to the Planar prediction image and the weight coefficient β(x, y) applied to the directional prediction image, taking into account not only the pixel position (x, y) but also the prediction direction in the directional prediction (that is, the prediction mode of the directional prediction).
[0062] Specifically, the weight coefficient determination unit 172c acquires the prediction mode used when the first prediction image generation unit 172a generates the directional prediction image, and varies the determination methods of the weight coefficients α(x, y) and β(x, y) according to this prediction mode.
[0063] As shown in FIG. 6(a), for the prediction modes “2” to “18” that refer to the reference pixels on the left side of the intra-prediction target block, the weight coefficient determination unit 172c reduces the ratio of the weight β(x, y) of the pixels in the directional prediction image to the weight α(x, y) of the pixels in the Planar prediction image as the distance from the left reference pixel increases.
[0064] For example, when the prediction mode is any one of “2” to “18”, the weight coefficient determination unit 172c determines the weight coefficients α(x, y) and β(x, y) according to the following formula (3).
[0065] α(x, y) = 64 - β(x, y) β(x, y) = 32 - (x << 5) >> shift shift = (log2(width) + log2(height) + 1) >> 1 ···(3)
[0066] As shown in formula (3), as the value of the horizontal pixel position x increases, the value of the weight coefficient β(x, y) decreases, and the value of the weight coefficient α(x, y) increases.
[0067] As shown in FIG. 6(c), for the prediction modes “50” to “66” that refer to the reference pixels above the intra-prediction target block, the weight coefficient determination unit 172c reduces the ratio of the weight β(x, y) of the pixels in the directional prediction image to the weight α(x, y) of the pixels in the Planar prediction image as the distance from the upper reference pixel increases.
[0068] For example, when the prediction mode is either "50" to "66", the weight coefficient determination unit 172c determines the weight coefficients α(x, y) and β(x, y) according to the following formula (4).
[0069] α(x,y) = 64 - β(x,y) β(x,y) = 32 - (y << 5) >> shift shift = (log2(width) + log2(height) + 1) >> 1 ···(4)
[0070] As shown in formula (4), as the value of the horizontal pixel position y increases, the value of the weight coefficient β(x, y) decreases, and the value of the weight coefficient α(x, y) increases.
[0071] As shown in FIG. 6(b), for the prediction modes "19" to "49" in which the weight coefficient determination unit 172c refers to the reference pixels on the left side and the upper side of the intra-prediction target block, the weight coefficients α(x, y) and β(x, y) are determined by the above-mentioned formula (2). That is, when the prediction mode is either "50" to "66", the method for determining the weight coefficients α(x, y) and β(x, y) is the same as in Operation Example 1.
[0072] In Operation Example 2, a case was divided into three patterns according to the prediction direction of the directional prediction, and an example was described in which the ratio of the pixel values of the Planar prediction image is increased as the distance from the reference pixels actually referred to in the directional prediction increases. However, the case may be divided into more than three patterns. Also, calculation formulas for determining the weight coefficients α(x, y) and β(x, y) may be defined for the number of directional predictions.
[0073] <Configuration of Image Decoding Device> Next, the image decoding device according to the present embodiment will be described. FIG. 7 is a diagram showing the configuration of the image decoding device 2 according to the present embodiment.
[0074] As shown in FIG. 7, the image decoding apparatus 2 includes an entropy decoding unit 200, an inverse quantization and inverse transformation unit 210, a synthesis unit 220, a memory 230, and a prediction unit 240.
[0075] The entropy decoding unit 200 decodes the encoded data generated by the image encoding apparatus 1 and outputs the quantized orthogonal transformation coefficients to the inverse quantization and inverse transformation unit 210. Further, the entropy decoding unit 200 acquires the syntax related to prediction (intra prediction and inter prediction) and outputs the acquired syntax to the prediction unit 240.
[0076] The inverse quantization and inverse transformation unit 210 performs inverse quantization processing and inverse orthogonal transformation processing in block units. The inverse quantization and inverse transformation unit 210 includes an inverse quantization unit 211 and an inverse transformation unit 212.
[0077] The inverse quantization unit 211 performs inverse quantization processing corresponding to the quantization processing performed by the quantization unit 122 of the image encoding apparatus 1. The inverse quantization unit 211 restores the orthogonal transformation coefficients of the block to be decoded by inverse quantizing the quantized orthogonal transformation coefficients input from the entropy decoding unit 200 using the quantization parameter (Qp) and the quantization matrix, and outputs the restored orthogonal transformation coefficients to the inverse transformation unit 212.
[0078] The inverse transformation unit 212 performs inverse orthogonal transformation processing corresponding to the orthogonal transformation processing performed by the transformation unit 121 of the image encoding apparatus 1. The inverse transformation unit 212 performs inverse orthogonal transformation processing on the orthogonal transformation coefficients input from the inverse quantization unit 211 to restore the prediction residual, and outputs the restored prediction residual (restored prediction residual) to the synthesis unit 220.
[0079] The synthesis unit 220 reconstructs (decodes) the original block by synthesizing the prediction residual input from the inverse transformation unit 212 and the prediction image input from the prediction unit 240 in pixel units, and outputs the decoded image in block units to the memory 230.
[0080] Memory 230 stores the decoded image input from the synthesis unit 220. Memory 230 stores the decoded image in units of frames. Memory 230 outputs the decoded image in units of frames to the outside of the image decoding apparatus 2. Note that a loop filter may be provided between the synthesis unit 220 and the memory 230. Also, a part of the memory 230 may be included in the prediction unit 240.
[0081] The prediction unit 240 performs prediction in units of blocks. The prediction unit 240 includes an inter prediction unit 241, an intra prediction unit 242, and a switching unit 243.
[0082] The inter prediction unit 241 uses the decoded image stored in the memory 230 as a reference image, and predicts the block to be decoded by inter prediction. The inter prediction unit 241 generates an inter prediction image by performing inter prediction according to the syntax and motion vector etc. input from the entropy decoding unit 200, and outputs the generated inter prediction image to the switching unit 243.
[0083] The intra prediction unit 242 refers to the decoded image stored in the memory 230, and generates an intra prediction image by predicting the block to be decoded by intra prediction based on the syntax input from the entropy decoding unit 200, and outputs the generated intra prediction image to the switching unit 243.
[0084] The switching unit 243 switches between the inter prediction image input from the inter prediction unit 241 and the intra prediction image input from the intra prediction unit 242, and outputs either prediction image to the synthesis unit 220.
[0085] FIG. 8 is a diagram showing the configuration of the intra prediction unit 242 according to the present embodiment. The intra prediction unit 242 corresponds to an intra prediction apparatus provided in the image decoding apparatus 2. The intra prediction unit 242 performs the same operation as the intra prediction unit 172 provided in the image encoding apparatus 1.
[0086] As shown in FIG. 8, the intra prediction unit 242 includes a memory 230a, a first prediction image generation unit 242a, a second prediction image generation unit 242b, a weight coefficient determination unit 242c, and an image synthesis unit 242d.
[0087] The memory 230a is a part of the memory 230 shown in FIG. 7. The memory 230a stores reference pixels that are decoded pixels referred to during intra prediction.
[0088] The first prediction image generation unit 242a predicts an intra prediction target block by a first intra prediction mode which is a directional prediction, generates a directional prediction image (first prediction image), and outputs the generated directional prediction image to the image synthesis unit 242d. Specifically, the first prediction image generation unit 242a refers to the reference pixels stored in the memory 230a, and generates a directional prediction image according to the directional prediction mode indicated by the syntax input from the entropy decoding unit 200.
[0089] The second prediction image generation unit 242b predicts an intra prediction target block by a second intra prediction mode which is a non - directional prediction, generates a prediction image (second prediction image), and outputs the generated prediction image to the image synthesis unit 242d. Specifically, the second prediction image generation unit 242b refers to the reference pixels stored in the memory 230a, and generates a directional prediction image according to a predetermined non - directional second intra prediction mode. In this embodiment, the second intra prediction mode is Planar prediction.
[0090] The weight coefficient determination unit 242c determines a weight coefficient used for weighted synthesis of the directional prediction image and the Planar prediction image for each pixel based on the position of the pixel, and outputs the determined weight coefficient to the image synthesis unit 242d. The operation of the weight coefficient determination unit 242c is the same as the operation examples 1 and 2 described above.
[0091] The image synthesis unit 242d uses the weight coefficients input from the weight coefficient determination unit 242c to perform weighted synthesis on the directional prediction image input from the first prediction image generation unit 242a and the Planar prediction image input from the second prediction image generation unit 242b, and outputs the prediction image after weighted synthesis as an intra prediction image. The image synthesis unit 242d performs the weighted synthesis process according to the above-described formula (1).
[0092] <Example of Intra Prediction Operation Flow> Next, an example of the operation flow of intra prediction according to this embodiment will be described. The operations of intra prediction in the image encoding device 1 and the image decoding device 2 are the same, but here, the operation of intra prediction (intra prediction unit 242) in the image decoding device 2 will be described. FIG. 9 is a diagram showing an example of the operation flow of the intra prediction unit 242. Note that the flow described below is merely an example, and the types of flags (syntax) and the sending order can be changed as appropriate.
[0093] First, the entropy decoding unit 200 decodes the syntax indicating the intra prediction mode selected by the image encoding device 1. When this syntax indicates a mode other than the directional prediction mode (DC prediction or Planar prediction) (step S1: NO), the intra prediction unit 242 performs the same intra prediction as in the prior art (step S7).
[0094] Second, the entropy decoding unit 200 decodes the syntax indicating whether to apply the prediction image synthesis method. When this syntax indicates not to apply the prediction image synthesis method (step S2: NO), the intra prediction unit 242 performs the same intra prediction as in the prior art. However, when the intra prediction mode selected by the image encoding device 1 is the directional prediction mode, it may always be assumed that the prediction image synthesis method is applied. In this case, signaling of the syntax indicating whether to apply the prediction image synthesis method is unnecessary.
[0095] Third, when the intra prediction mode selected by the image encoding apparatus 1 is a directional prediction (step S1: YES) and a prediction image synthesis method is applied (step S2: YES), the weight coefficient determination unit 242c determines weight coefficients α(x, y) and β(x, y) for each pixel position (x, y) in the intra prediction target block (step S3).
[0096] Fourth, the first prediction image generation unit 242a predicts the intra prediction target block by the directional prediction mode selected by the image encoding apparatus 1 to generate a directional prediction image (step S4). Also, the second prediction image generation unit 242b predicts the intra prediction target block by Planar prediction to generate a Planar prediction image (step S5).
[0097] Fifth, the image synthesis unit 242d uses the weight coefficients α(x, y) and β(x, y) determined in step S3 to perform weighted synthesis of the directional prediction image generated in step S4 and the Planar prediction image generated in step S5 for each pixel position (x, y), and outputs the prediction image after weighted synthesis as the intra prediction image (step S6).
[0098] <Summary of Embodiment> The image encoding apparatus 1 and the image decoding apparatus 2 according to the present embodiment determine weight coefficients α(x, y) and β(x, y) based on the pixel position (x, y) in the intra prediction target block, and perform weighted synthesis of the directional prediction image and the Planar prediction image for each pixel position (x, y) using the determined weight coefficients α(x, y) and β(x, y). Thereby, in the prediction image synthesis method, the prediction accuracy of the intra prediction can be improved as compared with the case where the directional prediction image and the Planar prediction image are simply averaged.
[0099] <Other Embodiments> In the above-described embodiment, an example in which the second intra prediction mode is Planar prediction has been mainly described. However, the second intra prediction mode may be Plane prediction as defined in the H.264 standard. When the second intra prediction mode is Plane prediction, the "Planar prediction" in the above-described embodiment may be read as "Plane prediction".
[0100] Alternatively, the second intra prediction mode may be DC prediction. When the second intra prediction mode is DC prediction, the "Planar prediction" in the above-described embodiment may be read as "DC prediction".
[0101] A program may be provided that causes a computer to execute each process performed by the image encoding device 1. A program may be provided that causes a computer to execute each process performed by the image decoding device 2. The program may be recorded on a computer-readable medium. By using a computer-readable medium, it is possible to install the program 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 a DVD-ROM.
[0102] The circuits that execute each process performed by the image encoding device 1 may be integrated, and the image encoding device 1 may be configured by a semiconductor integrated circuit (chipset, SoC). The circuits that execute each process performed by the image decoding device 2 may be integrated, and the image decoding device 2 may be configured by a semiconductor integrated circuit (chipset, SoC).
[0103] As described above, the embodiments have been described in detail with reference to the drawings, but the specific configuration is not limited to the above, and various design changes and the like can be made without departing from the gist.
Description of Reference Numerals
[0104] 1: Image encoding device 2: Image Decoding Device 100: Block Splitting Unit 110: Subtraction Unit 120: Transformation and Quantization Unit 121: Transformation Unit 122: Quantization Unit 130: Entropy Encoding Unit 140: Inverse Quantization and Inverse Transformation Unit 141: Inverse Quantization Unit 142: Inverse Transformation Unit 150: Synthesis Unit 160: Memory 160a: Memory 170: Prediction Unit 171: Inter-Prediction Unit 172: Intra-Prediction Unit 172a: First Predicted Image Generation Unit 172b: Second Predicted Image Generation Unit 172c: Weight Coefficient Determination Unit 172d: Image Synthesis Unit 173: Switching Unit 200: Entropy Decoding Unit 210: Inverse Quantization and Inverse Transformation Unit 211: Inverse Quantization Unit 212: Inverse Transformation Unit 220: Synthesis Unit 230: Memory 230a: Memory 240: Prediction Unit 241: Inter-Prediction Unit 242: Intra-Prediction Unit 242a: First Predicted Image Generation Unit 242b: Second Predicted Image Generation Unit 242c: Weight Coefficient Determination Unit 242d: Image Synthesis Unit 243: Switching Unit
Claims
1. An intra prediction device provided in an image decoding device, which performs intra prediction on image blocks obtained by dividing an original image, comprising: a first image generating unit configured to predict the image block by a first prediction process and generate a first image; a second image generating unit configured to predict the image block by a second prediction process and generate a second image; a weighting coefficient determination unit that determines a weighting coefficient used when weighting and synthesizing the first image and the second image for each pixel based on a position of the pixel; an image synthesis unit that weights and synthesizes the first image and the second image for each pixel by using the weighting coefficient determined for each pixel by the weighting coefficient determination unit, the image synthesis unit always performs the weighting synthesis in response to a predetermined condition being satisfied, even if a syntax indicating that the weighting synthesis is to be performed is not signaled from an encoding side; The intra prediction device, wherein the weighting factor determination unit changes a method of determining the weighting factor depending on a prediction mode of the first prediction process.
2. An image decoding device comprising the intra prediction device according to claim 1.
3. A program for causing a computer to function as the intra prediction device according to claim 1.
Citation Information
Patent Citations
Intra prediction device, image coding device, image decoding device, and program
JP2020137119A
Intra prediction in video coding
US20190007688A1
Video coding using hybrid intra prediction
US20190037213A1
Distance weighted BI-directional intra prediction
WO2018070896A1