Prediction device, encoding device, decoding device, and program
By dividing blocks into regions and determining synthesis methods based on similarity, the prediction device reduces the need for additional flags in TPM, enhancing coding efficiency and preventing edge blurring in video coding.
Patent Information
- Application Number
- JP2024045101
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2024-03-21
- Publication Date
- 2025-10-03
- Estimated Expiration
- 2040-02-10
AI Technical Summary
The introduction of multiple blending modes in Triangle Partitioning Mode (TPM) for video coding increases the number of flags to be signaled, leading to reduced coding efficiency.
A prediction device that divides blocks into regions, generates region prediction images, determines a synthesis method based on similarity information, and synthesizes these images without explicitly signaling the method to the decoding side, thereby reducing the need for additional flags.
This approach suppresses the increase in the number of flags signaled, maintaining coding efficiency even with multiple synthesis methods, and avoids edge blurring in sequences with flat regions and edges.
Smart Images

Figure 0007749052000001 
Figure 0007749052000002 
Figure 0007749052000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to a prediction device, an encoding device, a decoding device, and a program. [Background technology]
[0002] In a video (image) coding method, the coding device divides an original image into blocks, predicts the block to be coded by switching between inter-prediction, which utilizes temporal correlation between frames, and intra-prediction, which utilizes spatial correlation within a frame, and performs transformation, quantization, and entropy coding processes on the prediction residual, which represents the difference between the predicted block and the block to be coded, and outputs coded data in the form of a bitstream.
[0003] Versatile Video Coding (VVC), a next-generation coding method, employs Triangle Partitioning Mode (TPM) as one of the inter-prediction modes. TPM divides the coding target block diagonally, assigns a motion vector to each region, and performs motion compensation prediction.
[0004] In TPM, predicted images near region boundaries are blended using a weighted averaging process (called blending) that blends predicted images for each region based on their position, thereby suppressing discontinuities caused by motion prediction compensation for each region. In sequences that contain many flat regions and edges, such as screen content, blending can cause blurring of edges. For this reason, Non-Patent Document 1 introduces a non-blending mode in TPM prediction that combines predicted images without blending. [Prior art documents] [Non-patent literature]
[0005] [Non-Patent Document 1] JVET-O1172,“Non-CE4 / 8: On disabling blending process in TPM” DISCLOSURE OF THE INVENTION [Problem to be solved by the invention]
[0006] When multiple blending modes (multiple blending methods) are introduced in TPM as in Non-Patent Document 1, a flag indicating which mode is to be used needs to be signaled from the encoding side to the decoding side, which results in an increase in the number of flags to be signaled, resulting in a problem of reduced coding efficiency.
[0007] Therefore, an object of the present invention is to provide a prediction device, an encoding device, a decoding device, and a program that can suppress an increase in the amount of flags signaled even when multiple synthesis methods are introduced into split prediction. [Means for solving the problem]
[0008] A prediction device according to a first aspect is a prediction device that performs prediction in units of blocks obtained by dividing an image, and includes a division unit that divides a block to be predicted by straight lines and outputs a plurality of prediction regions, a generation unit that generates a plurality of region prediction images corresponding to the plurality of prediction regions, a determination unit that determines a synthesis method to be used for synthesizing the plurality of region prediction images from a plurality of methods, and a synthesis unit that synthesizes the plurality of region prediction images using the synthesis method determined by the determination unit, and outputs a prediction block corresponding to the block to be predicted.
[0009] The encoding device according to the second aspect is summarized as including the prediction device according to the first aspect.
[0010] A decoding device according to a third aspect includes the prediction device according to the first aspect.
[0011] A program according to a fourth aspect causes a computer to function as the prediction device according to the first aspect. [Effects of the Invention]
[0012] According to the present invention, it is possible to provide a prediction device, an encoding device, a decoding device, and a program that can suppress an increase in the amount of flags to be signaled even when multiple synthesis methods are introduced into split prediction. [Brief explanation of the drawings]
[0013] [Figure 1] FIG. 1 is a diagram illustrating a configuration of an encoding device according to an embodiment. [Figure 2] FIG. 2 is a diagram illustrating a configuration of a triangulation prediction unit of the encoding device according to the embodiment. [Figure 3] FIG. 10 is a diagram illustrating an operation of a dividing unit according to the embodiment. [Figure 4] FIG. 4 is a diagram illustrating the operation of a calculation unit and a determination unit according to the embodiment. [Figure 5] FIG. 10 is a diagram illustrating the operation of a synthesis unit according to the embodiment. [Figure 6] FIG. 1 is a diagram illustrating a configuration of a decoding device according to an embodiment. [Figure 7] FIG. 2 is a diagram illustrating a configuration of a triangular decomposition prediction unit of a decoding device according to an embodiment. [Figure 8] FIG. 10 is a diagram showing an operation flow of a triangulation prediction unit according to the embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0014] An encoding device and a decoding device according to an embodiment will be described with reference to the drawings. The encoding device and the decoding device according to the embodiment encode and decode moving images, respectively, as typified by MPEG. In the following description of the drawings, the same or similar parts are denoted by the same or similar reference numerals.
[0015] <Encoder Configuration> First, the configuration of an encoding device according to this embodiment will be described. Fig. 1 shows the configuration of an encoding device 1 according to this embodiment. The encoding device 1 is a device that performs encoding in units of blocks obtained by dividing an image.
[0016] As shown in FIG. 1, the encoding device 1 includes a block division unit 100, a subtraction unit 110, a transformation and quantization unit 120, an entropy encoding unit 130, an inverse quantization and inverse transform unit 140, a synthesis unit 150, a memory 160, and a prediction unit 170.
[0017] The block division unit 100 divides an input 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×32 pixels, 16×16 pixels, 8×8 pixels, or 4×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 (block to be coded) for coding by the coding device 1, and is a unit (block to be coded) for decoding by the decoding device. Such an image block is sometimes called a CU (Coding Unit).
[0018] The block division unit 100 divides the luminance signal and the color difference signal into blocks. In the following, we will mainly explain the case where the shape of the block division is the same for the luminance signal and the color difference signal, but it is also possible to control the division independently for the luminance signal and the color difference signal. When there is no particular distinction between the luminance block and the color difference block, they are simply referred to as the block to be coded.
[0019] The subtraction unit 110 calculates a prediction residual representing the difference (error) between the current block to be coded output by the block division unit 100 and a prediction block obtained by predicting the current block to be coded by the prediction unit 170. The subtraction unit 110 calculates the prediction residual by subtracting each pixel value of the prediction block from each pixel value of the block, and outputs the calculated prediction residual to the transformation and 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 residual output by the subtraction unit 110 to calculate a transform coefficient for each frequency component, and outputs the calculated transform coefficient to the quantization unit 122. The transform process (transform) refers to a process of converting a pixel domain signal into a frequency domain signal, and includes, for example, a discrete cosine transform (DCT), a discrete sine transform (DST), a Karhunen-Loeve transform (KLT), and transforms obtained by converting these to integers.
[0022] The quantization unit 122 quantizes the transform coefficients output by the transform unit 121 using a quantization parameter (Qp) 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 (Qp) is a parameter 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 transform coefficients output by the quantization unit 122, compresses the data, generates a coded stream (bit stream), and outputs the coded stream to the outside of the coding device 1. For entropy coding, Huffman coding, CABAC (Context-based Adaptive Binary Arithmetic Coding), etc. may be used. Note that the entropy coding unit 130 also obtains information such as the size and shape of each coding target block from the block division unit 100, obtains information related to prediction (for example, prediction mode and motion vector information) from the prediction unit 170, and encodes this information.
[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 restores the transform coefficients by inverse quantizing the transform coefficients output by the quantization unit 122 using a quantization parameter (Qp) and a quantization matrix, and outputs the restored transform coefficients to the inverse transform unit 142.
[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 DCT, the inverse transform unit 142 performs inverse DCT. The inverse transform unit 142 performs inverse transform processing on the transform coefficients output by the inverse quantization unit 141 to restore prediction residuals, and outputs restored prediction residuals, which are the restored prediction residuals, to the synthesis unit 150.
[0027] The synthesis unit 150 synthesizes, on a pixel-by-pixel basis, the reconstructed prediction residual output by the inverse transform unit 142 with 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 reconstruct (decode) the block to be coded, and outputs the reconstructed decoded image (reconstructed block) on a block-by-block basis to the memory 160.
[0028] The memory 160 accumulates the reconstructed blocks output by the synthesis unit 150 as decoded images on a frame-by-frame basis. The memory 160 outputs the stored decoded images to the prediction unit 170. Note that a loop filter may be interposed between the synthesis unit 150 and the memory 160.
[0029] The prediction unit 170 performs prediction processing on a block-by-block basis to generate a prediction block corresponding to the current block to be coded, and outputs the generated prediction block to the subtraction unit 110 and the synthesis unit 150. The current block to be coded on which prediction processing is performed is called a current block to be predicted.
[0030] The prediction unit 170 includes an intra prediction unit 171, an inter prediction unit 172, and a switching unit 173. In this embodiment, the inter prediction unit 172 corresponds to a prediction device that performs prediction processing on a block-by-block basis.
[0031] The intra prediction unit 171 selects an optimal intra prediction mode to be applied to the block to be predicted from among multiple intra prediction modes, and predicts the block to be predicted using the selected intra prediction mode. The intra prediction unit 171 generates an intra prediction block by referring to decoded pixel values adjacent to the block to be predicted in the decoded image stored in the memory 160, and outputs the generated intra prediction block to the switching unit 173. The intra prediction unit 171 also outputs information related to the selected intra prediction mode to the entropy coding unit 130.
[0032] The inter prediction unit 172 uses the decoded image stored in the memory 160 as a reference image to calculate a motion vector by a technique such as block matching, predicts the block to be predicted, generates an inter prediction block, and outputs the generated inter prediction block to the switching unit 173. The inter prediction unit 172 selects an optimal inter prediction method from inter prediction using multiple reference images (typically, bi-prediction) and inter prediction using one reference image (unidirectional prediction), and performs inter prediction using the selected inter prediction method. The inter prediction unit 172 outputs information related to the inter prediction (motion vector information, etc.) to the entropy coding unit 130.
[0033] In this embodiment, the inter prediction unit 172 has a triangulation prediction unit 172a that performs triangular partition prediction (TPM) (see FIG. 2). The triangulation prediction unit 172a assigns a motion vector to each of areas obtained by diagonally dividing a current block to be coded, and performs motion compensation prediction. When applying triangular partition prediction to a current block to be coded, the inter prediction unit 172 outputs a triangular partition prediction application flag indicating that triangular partition prediction is applied to the current block to the entropy coding unit 130, and transmits the triangular partition prediction application flag from the entropy coding unit 130 to the decoding side. Details of the triangular partition prediction unit 172a will be described later.
[0034] The switching unit 173 switches between the inter-predicted block output by the inter-prediction unit 172 and the intra-predicted block output by the intra-prediction unit 171, and outputs either the predicted block to the subtraction unit 110 and the synthesis unit 150.
[0035] Next, the triangular decomposition prediction unit 172a according to this embodiment will be described. Fig. 2 is a diagram showing the configuration of the triangular decomposition prediction unit 172a according to this embodiment.
[0036] As shown in FIG. 2, the triangulation prediction unit 172a includes a division unit 1721, a generation unit 1722, a calculation unit 1723, a determination unit 1724, and a synthesis unit 1725.
[0037] The division unit 1721 divides the block to be predicted along a diagonal line and outputs two triangular regions to the generation unit 1722. The triangular regions are an example of prediction regions obtained by dividing the block to be predicted along straight lines. There are two division methods: a method shown in FIG. 3(a) and a method shown in FIG. 3(b). In the method shown in FIG. 3(a), the division unit 1721 divides the block to be coded along a division line passing through the top left zenith position and the bottom right zenith position of the block to be coded. In the method shown in FIG. 3(b), the division unit 1721 divides the block to be coded along a division line passing through the top right zenith position and the bottom left zenith position of the block to be coded. The division unit 1721 outputs a division direction flag indicating whether the division direction is the diagonal direction shown in FIG. 3(a) or the diagonal direction shown in FIG. 3(b) to the entropy coding unit 130, and the division direction flag is transmitted from the entropy coding unit 130 to the decoding side.
[0038] The generation unit 1722 generates a region prediction image for each of the two triangular regions using a motion vector, and outputs the two region prediction images to the calculation unit 1723 and the synthesis unit 1725. Specifically, the generation unit 1722 assigns a motion vector to each region obtained by dividing the block to be predicted, and generates a prediction image for each region using the assigned motion vector. Here, the generation unit 1722 ranks multiple candidates to be used as reference sources for the motion vector in order of priority, and selects one motion vector for each triangular region from a certain number of top motion vectors. The generation unit 1722 outputs motion vector information indicating the selected motion vector to the entropy coding unit 130, and the motion vector information is transmitted from the entropy coding unit 130 to the decoding side.
[0039] The calculation unit 1723 calculates similarity information indicating the similarity between the two region prediction images generated by the generation unit 1722, and outputs the calculated similarity information to the determination unit 1724. For example, as shown in Fig. 4(a), the calculation unit 1723 calculates similarity information indicating the similarity between a boundary region R1 between region prediction image 1 and region prediction image 2, and a boundary region R2 between region prediction image 2 and region prediction image 1. The similarity information may be any information that indicates the similarity, and for example, the sum of absolute values of differences (SAD) can be used as the similarity information.
[0040] The calculation unit 1723 may calculate the SAD between pixel values (plural) in the boundary region R1 and the corresponding pixel values (plural) in the boundary region R2 as similarity information. A smaller SAD indicates a higher similarity, and a larger SAD indicates a lower similarity.
[0041] Calculating the similarity information may be calculating the similarity between two reference images corresponding to the two regional predicted images. The similarity between the reference images may be calculated as the SAD between pixel values in one reference image and corresponding pixel values in the other reference image.
[0042] The determination unit 1724 determines a combining method to be used for combining the two regional predicted images from among a plurality of methods based on the similarity information calculated by the calculation unit 1723, and outputs information indicating the determined combining method to the combination unit 1725. For example, the plurality of methods includes a first method (hereinafter referred to as the "blending method") that blends the boundary area between the two regional predicted images by weighted combining using a weighting coefficient for each pixel position. The determination unit 1724 determines whether to use the blending method as the combining method to be used for combining the two regional predicted images based on the similarity information calculated by the calculation unit 1723. The blending method can suppress discontinuity caused by motion prediction compensation for each region.
[0043] In this embodiment, the multiple methods further include a second method (hereinafter referred to as the "non-blending method") that does not blend boundary regions by weighted blending. The determination unit 1724 determines whether to use the blending method or the non-blending method as the blending method to be used for combining two region prediction images, based on the similarity information calculated by the calculation unit 1723. The non-blending method can avoid edge blurring that occurs with the blending method for sequences that include many flat regions and edges.
[0044] When switching between the blending method and the non-blending method is possible, it may be necessary to transmit a flag indicating whether the blending method or the non-blending method is to be applied to the decoding side. However, in background areas of an image (e.g., smooth areas such as the sky), the characteristics of the generated predicted image do not change whether the blending method or the non-blending method is used, and the coding efficiency is not affected regardless of which method is selected.
[0045] In this embodiment, the determination unit 1724 determines either the blending method or the non-blending method based on the similarity information calculated by the calculation unit 1723. Such similarity information can also be calculated on the decoding side, so a method common to both the encoding side and the decoding side can be implicitly determined without transmitting a flag indicating whether the blending method or the non-blending method is to be applied to the decoding side. This eliminates the need to transmit (signal) such a flag to the decoding side, and can suppress an increase in the number of flags to be signaled.
[0046] 4(b) and 4(c), the determination unit 1724 determines the blending scheme when the similarity indicated by the similarity information is lower than a threshold, and determines the non-blending scheme when the similarity indicated by the similarity information is higher than the threshold, based on the similarity information calculated by the calculation unit 1723. This threshold may be a predetermined fixed value, or may be a variable value transmitted from the encoding side to the decoding side.
[0047] The synthesizing unit 1725 synthesizes the two regional prediction images output by the generation unit 1722 using the synthesizing method determined by the determination unit 1724, and outputs a prediction block corresponding to the block to be predicted. In this embodiment, if the determination unit 1724 determines the blending method, the synthesizing unit 1725 synthesizes the two regional prediction images using the blending method, and if the determination unit 1724 determines the non-blending method, the synthesizing unit 1725 synthesizes the two regional prediction images using the non-blending method.
[0048] 5 is a diagram showing the operation of synthesizing two regional predicted images P1 and P2. As shown in FIG. 5(a), when synthesizing two regional predicted images P1 and P2 using a blending method, the synthesizing unit 1725 synthesizes the two regional predicted images P1 and P2 by weighted averaging using a weighting coefficient map according to the block size and block shape of the block to be predicted. As a result, the boundary regions R1 and R2 shown in FIG. 4(a) are adjusted to be continuous. On the other hand, as shown in FIG. 5(b), when synthesizing two regional predicted images P1 and P2 using a non-blending method, the synthesizing unit 1725 synthesizes the two regional predicted images P1 and P2 without weighted averaging.
[0049] <Configuration of the Decryption Device> Next, the configuration of a decoding device according to this embodiment will be described, focusing on the differences from the configuration of the encoding device described above. Fig. 6 is a diagram showing the configuration of a decoding device 2 according to this embodiment. The decoding device 2 is a device that decodes a current block from an encoded stream.
[0050] As shown in FIG. 6, 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.
[0051] The entropy decoding unit 200 decodes the coded stream generated by the coding device 1, obtains quantized transform coefficients, and outputs the obtained transform coefficients to the inverse quantization and inverse transform unit 210 (inverse quantization unit 211). The entropy decoding unit 200 also obtains various types of signaling information. For example, the entropy decoding unit 200 obtains information related to the prediction process to be applied to the block to be decoded, and outputs the obtained information to the prediction unit 240.
[0052] The inverse quantization and inverse transform unit 210 performs inverse quantization processing 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.
[0053] 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 decodes the quantized transform coefficients output by the entropy decoding unit 200 by inverse quantizing the quantized transform coefficients using a quantization parameter (Qp) and a quantization matrix. The inverse transform unit 212 reconstructs the transform coefficients of the block to be decoded and outputs the reconstructed transform coefficients to the inverse transform unit 212.
[0054] 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 restore prediction residuals, and outputs the restored prediction residuals (restored prediction residuals) to the synthesis unit 220.
[0055] The synthesis unit 220 reconstructs (decodes) the current block to be decoded by synthesizing the prediction residual output by the inverse transform unit 212 and the prediction block output by the prediction unit 240 on a pixel-by-pixel basis, and outputs the reconstructed block to the memory 230.
[0056] The memory 230 stores the reconstructed blocks output by the synthesis unit 220 as decoded images on a frame-by-frame basis. The memory 230 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 interposed between the synthesis unit 220 and the memory 230.
[0057] The prediction unit 240 performs prediction on a block-by-block basis and includes an intra prediction unit 241, an inter prediction unit 242, and a switching unit 243.
[0058] The intra prediction unit 241 refers to reference pixels adjacent to the block to be decoded in the decoded image stored in the memory 230, and predicts the block to be decoded by intra prediction based on the information output by the entropy decoding unit 200. The intra prediction unit 241 then generates an intra prediction block and outputs the generated intra prediction block to the switching unit 243.
[0059] The inter prediction unit 242 predicts the current block to be decoded by inter prediction, using the decoded image stored in the memory 230 as a reference image. The inter prediction unit 242 generates an inter prediction block by performing inter prediction using the motion vector information output by the entropy decoding unit 200, and outputs the generated inter prediction block to the switching unit 243.
[0060] In this embodiment, the inter prediction unit 242 has a triangular partition prediction unit 242a that performs triangular partition prediction (TPM) (see FIG. 7). When the entropy decoding unit 200 acquires a triangular partition prediction application flag indicating that triangular partition prediction is to be applied to the block to be predicted, the inter prediction unit 242 applies triangular partition prediction to the block to be predicted. Details of the triangular partition prediction unit 242a will be described later.
[0061] The switching unit 243 switches between the intra-predicted block output by the intra-prediction unit 241 and the inter-predicted block output by the inter-prediction unit 242, and outputs either the predicted block to the synthesis unit 220.
[0062] Next, the triangular decomposition prediction unit 242a according to this embodiment will be described. Fig. 7 is a diagram showing the configuration of the triangular decomposition prediction unit 242a according to this embodiment.
[0063] As shown in FIG. 7, the triangular decomposition prediction unit 242a includes a division unit 2421, a generation unit 2422, a calculation unit 2423, a determination unit 2424, and a synthesis unit 2425.
[0064] The dividing unit 2421 divides the block to be predicted diagonally based on the division direction flag acquired by the entropy decoding unit 200 , and outputs two triangular regions to the generating unit 2422 .
[0065] The generation unit 2422 generates a region prediction image for each of the two triangular regions based on the motion vector information acquired by the entropy decoding unit 200, and outputs the two region prediction images to the calculation unit 2423 and the synthesis unit 2425.
[0066] The calculation unit 2423 calculates similarity information indicating the similarity between the two regional predicted images generated by the generation unit 2422, and outputs the calculated similarity information to the determination unit 2424. The calculation method for the similarity information is the same as that on the encoding side, and the similarity information is calculated using a rule (algorithm) that is common to both the encoding side and the decoding side.
[0067] The determination unit 2424 determines a combining method to be used for combining the two regional predicted images from among a plurality of methods based on the similarity information calculated by the calculation unit 2423, and outputs information indicating the determined combining method to the combining unit 2425. In this embodiment, the determination unit 2424 determines whether to use the blending method or the non-blending method as the combining method to be used for combining the two regional predicted images based on the similarity information calculated by the calculation unit 2423. The method for determining the combining method is the same as that on the encoding side, and the combining method is determined using a rule that is common to the encoding side and the decoding side. In other words, the determination unit 2424 determines the combining method based on the similarity information, without based on a flag indicating whether to apply the blending method or the non-blending method.
[0068] The synthesizing unit 2425 synthesizes the two regional predicted images output by the generation unit 2422 using the synthesizing method determined by the determination unit 2424, and outputs a predicted block corresponding to the block to be predicted. In this embodiment, if the determination unit 2424 determines the blending method, the synthesizing unit 2425 synthesizes the two regional predicted images using the blending method, and if the determination unit 2424 determines the non-blending method, the synthesizing unit 2425 synthesizes the two regional predicted images using the non-blending method.
[0069] <Operation of the triangulation prediction unit> Next, the operation of the triangular decomposition prediction units 172a and 242a according to this embodiment will be described. Since the triangular decomposition prediction units 172a and 242a perform similar operations, the triangular decomposition prediction unit 242a will be used as an example for the description. Figure 8 is a diagram showing the operation flow of the triangular decomposition prediction unit 242a according to this embodiment.
[0070] As shown in FIG. 8, in step S1, the dividing unit 2421 divides the block to be predicted diagonally based on the division direction flag acquired by the entropy decoding unit 200, and outputs two triangular regions to the generating unit 2422.
[0071] In step S2, the generation unit 2422 generates a region prediction image for each of the two triangular regions based on the motion vector information acquired by the entropy decoding unit 200, and outputs the two region prediction images to the calculation unit 2423 and the synthesis unit 2425.
[0072] In step S3, the calculation unit 2423 calculates similarity information indicating the similarity between the two regional predicted images generated by the generation unit 2422, and outputs the calculated similarity information to the determination unit 2424.
[0073] In step S4, the determining unit 2424 determines, based on the similarity information calculated by the calculating unit 2423, whether to use the blending method or the non-blending method as the synthesis method used to synthesize the two regional predicted images.
[0074] In step S5, the synthesis unit 2425 synthesizes the two regional predicted images output by the generation unit 2422 using the synthesis method determined by the determination unit 2424, and outputs a predicted block corresponding to the block to be predicted.
[0075] As described above, according to this embodiment, a common method can be implicitly determined on the encoding side and the decoding side without transmitting a flag indicating whether the blending method or the non-blending method is to be applied to the decoding side. This eliminates the need to transmit (signal) a flag indicating the blending method to the decoding side even when multiple blending methods are introduced into triangulation prediction, thereby suppressing an increase in the number of flags to be signaled.
[0076] <Other embodiments> In the above-described embodiment, an example has been described in which, based on similarity information, it is determined whether to use the blending method or the non-blending method as the synthesis method used to synthesize two regional predicted images. However, when multiple blending methods are introduced, it may be determined, based on the similarity information, which of the multiple blending methods to use.
[0077] The multiple blending methods may have different parameters for blending the boundary regions. Here, the parameter may be at least one of the range of the boundary region and the set of weighting factors. For example, a first blending method is introduced in which the range of the boundary region to which the blending process is applied is a first range (narrow range) and a first set of weighting factors is used, and a second blending method is introduced in which the range of the boundary region to which the blending process is applied is a second range (wide range) and a second set of weighting factors is used. Here, the weighting factors constituting the second set are greater than those of the first set.
[0078] Under such a premise, the determination units 1724 and 2424 determine the second blending method when the similarity indicated by the similarity information calculated by the calculation units 1723 and 2423 is lower than a threshold value, and determine the first blending method when the similarity indicated by this similarity information is higher than a threshold value.
[0079] Alternatively, a first threshold and a second threshold greater than the first threshold may be introduced. The determination units 1724 and 2424 determine the Non-blending method when the similarity indicated by the similarity information calculated by the calculation units 1723 and 2423 is higher than the second threshold, determine the second Blending method when the similarity indicated by the similarity information is lower than the first threshold, and determine the first Blending method when the similarity indicated by the similarity information is within the range from the first threshold to the second threshold.
[0080] In the above-described embodiment, an example was described in which the block to be predicted is divided by a diagonal line to output two triangular regions. However, the division shape is not limited to a triangle, and any division shape formed by straight lines will suffice. The block to be predicted can also be divided into three or more regions. In this case, the similarity near the boundary between each pair of regions in the three or more prediction regions is calculated, and a weighting factor to be used for combining the pair of regions is determined based on this information.
[0081] A program may be provided that causes a computer to execute each process performed by the encoding device 1. A program may be provided that causes a computer to execute each process performed by the decoding device 2. The program may be recorded on a computer-readable medium. Using a computer-readable medium makes it 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.
[0082] The circuits that execute the processes performed by the encoding device 1 may be integrated, and the encoding device 1 may be configured as a semiconductor integrated circuit (chip set, SoC). The circuits that execute the processes performed by the decoding device 2 may be integrated, and the decoding device 2 may be configured as a semiconductor integrated circuit (chip set, SoC).
[0083] 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. [Explanation of symbols]
[0084] 1: Encoding device 2: Decryption device 100: Block division section 110: Subtraction section 120: Transformation and quantization unit 121: Conversion section 122: Quantization section 130: Entropy coding unit 140: Inverse quantization and inverse transformation unit 141: Inverse quantization section 142: Inverse conversion unit 150: Synthesis section 160: Memory 170: Prediction Department 171: Intra prediction unit 172: Inter prediction unit 172a: Triangulation prediction unit 173: Switching section 200: Entropy decoding unit 210: Inverse conversion unit 211: Inverse quantization section 212: Inverse conversion unit 220: Synthesis section 230: Memory 240: Prediction section 241: Intra prediction unit 242: Inter prediction unit 242a: Triangulation prediction unit 243: Switching section 1721 :Divided part 1722 :Generation part 1723: Calculation section 1724: Decision section 1725: Synthesis section 2421 :Divided part 2422 :Generation part 2423: Calculation section 2424: Decision section 2425: Synthesis section
Claims
1. A prediction device that performs prediction on a block-by-block basis by dividing an image, a division unit that divides a block to be predicted by a straight line and outputs at least two prediction regions; a generation unit that generates a region prediction image for each of the two prediction regions; a calculation unit that calculates similarity information indicating a similarity between the two region prediction images generated by the generation unit; a determination unit that determines a synthesis method to be used for synthesizing the two regional predicted images from among a plurality of methods based on the similarity information calculated by the calculation unit, without using flag information indicating a synthesis method to be used for synthesizing the two regional predicted images; a synthesis unit that synthesizes the two regional predicted images using the synthesis method determined by the determination unit and outputs a predicted block corresponding to the block to be predicted. Prediction device.
2. An encoding device comprising the prediction device according to claim 1.
3. A decoding device comprising the prediction device according to claim 1.
4. A program that causes a computer to function as the prediction device according to claim 1.
Citation Information
Patent Citations
Method and apparatus for video encoding and decoding of geometrically partitioned bidirectional predictive mode partitions
JP2011501508A
Encoder, decoder, and program
JP2018007079A