Image decoding device, image decoding method and program

By integrating an intra prediction mode signaling method and appropriate prediction mode specification within the Geometric Partitioning Mode (GPM) in image decoding, the solution addresses the limitations of existing GPM technologies, resulting in improved coding performance.

JP7665450B2Active Publication Date: 2025-04-21KDDI CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2021109715
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-06-30
Publication Date
2025-04-21
Estimated Expiration
2041-06-30

AI Technical Summary

Technical Problem

The existing Geometric Partitioning Mode (GPM) in image decoding is limited to the merge mode, leading to suboptimal coding performance.

Method used

An image decoding device and method that specify a signaling method for adding an intra prediction mode to GPM, and properly specify the type of prediction mode for each division region, allowing for improved coding performance.

Benefits of technology

The proposed solution enhances coding performance by enabling the use of intra prediction modes with GPM, leading to more efficient image decoding.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007665450000001
    Figure 0007665450000001
  • Figure 0007665450000002
    Figure 0007665450000002
  • Figure 0007665450000003
    Figure 0007665450000003
Patent Text Reader

Abstract

To further improve the coding performance with GPM.SOLUTION: An image decoding device 200 according to the present invention includes a decoding unit 210 configured to decode a first syntax that controls whether a geometric partitioning mode is applied to a decoding target sequence, and control whether to decode a second syntax that controls whether the intra prediction mode can be applied to a geometric partitioning mode of the decoding target sequence depending on the value of the first syntax.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

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

[0002] Non-Patent Document 1 discloses GPM (Geometric Partitioning Mode).

[0003] GPM divides a rectangular block diagonally into two and motion compensates each of them. Specifically, in GPM, the two divided regions are motion compensated using merge mode motion vectors and then combined using weighted averaging. There are 64 diagonal division patterns available, depending on the angle and position. [Prior art documents] [Non-patent literature]

[0004] [Non-Patent Document 1] ITU-T H.266 / VVC Summary of the Invention [Problem to be solved by the invention]

[0005] However, the GPM disclosed in Non-Patent Document 1 is limited to the merge mode, and therefore has a problem that there is room for improvement in encoding performance. Therefore, the present invention has been made in consideration of the above-mentioned problems, and aims to provide an image decoding device, an image decoding method, and a program that can be expected to further improve encoding performance by GPM by specifying a signaling method when adding an intra prediction mode to GPM, thereby appropriately specifying whether or not GPM can be applied to a block to be decoded and the type of prediction mode for each divided area when GPM is applied. [Means for solving the problem]

[0006] A first feature of the present invention is an image decoding device including a decoding unit configured to decode a first syntax that controls whether or not a geometric partitioning mode of a sequence to be decoded is applicable, and to control whether or not to decode a second syntax that controls whether or not an intra prediction mode is applicable to the geometric partitioning mode of the sequence to be decoded, depending on the value of the first syntax.

[0007] A second feature of the present invention is an image decoding method comprising the steps of: decoding a first syntax that controls whether or not a geometric partitioning mode of a sequence to be decoded is applicable; and controlling whether or not to decode a second syntax that controls whether or not an intra prediction mode is applicable to the geometric partitioning mode of the sequence to be decoded, depending on a value of the first syntax.

[0008] A third feature of the present invention is a program for causing a computer to function as an image decoding device, the image decoding device being configured to decode a first syntax that controls whether or not a geometric partitioning mode of a sequence to be decoded is applicable, and to control whether or not to decode a second syntax that controls whether or not an intra prediction mode is applicable to the geometric partitioning mode of the sequence to be decoded, depending on the value of the first syntax. Effect of the Invention

[0009] According to the present invention, by specifying a signaling method for adding an intra-prediction mode to a GPM, it is possible to provide an image decoding device, an image decoding method and a program that can be expected to further improve encoding performance using GPM, by appropriately identifying whether or not GPM can be applied to a block to be decoded and the type of prediction mode for each divided area when GPM is applied. [Brief description of the drawings]

[0010] [Figure 1] FIG. 1 is a diagram showing an example of a configuration of an image processing system 1 according to an embodiment. [Diagram 2]FIG. 2 is a diagram illustrating an example of functional blocks of the image encoding device 100 according to an embodiment. [Diagram 3] FIG. 3 is a diagram showing an example of functional blocks of an image decoding device 200 according to an embodiment. [Figure 4] FIG. 4 is a diagram showing an example of a case in which a rectangular block to be decoded is divided into two geometrically shaped division areas 0 and 1 by a division line in the geometric division mode using the geometric division mode disclosed in non-patent document 1. [Diagram 5] FIG. 5 is a diagram showing an example of application of intra prediction modes to the GPM according to the present embodiment. [Figure 6] FIG. 6 is a diagram showing an example of the structure of encoded data received by the decoding unit 210 disclosed in Non-Patent Document 1. [Figure 7] FIG. 7 is a flowchart showing an example of a method in which the decoding unit 210 determines whether or not a GPM can be applied and whether or not an intra prediction mode can be applied to the GPM based on a GPM-related flag in units of an SPS. [Figure 8] FIG. 8 is a modification of FIG. [Figure 9] FIG. 9 is a flowchart showing an example of a method by which the decoding section 210 determines whether or not GPM is applied to a block to be decoded. [Figure 10] FIG. 10 is a flowchart showing an example of a method by which the decoding unit 210 determines the GPM partition mode (type of partition line) for each block of a block to be decoded. [Figure 11] FIG. 11 is a flowchart showing a method for determining whether or not to apply the intra prediction mode to the divided region 0 by the decoding unit 210. [Figure 12] FIG. 12 is a flowchart showing a method for determining whether or not to apply an intra prediction mode to the divided region 1 by the decoding unit 210. [Figure 13] FIG. 13 is a flowchart showing an example of a method for identifying a prediction mode in divided region 0 when the decoding unit 210 has one type of GPM-applied intra prediction mode. [Figure 14]FIG. 14 is a flowchart showing an example of a method for identifying a prediction mode in a divided region 1 when the decoding section 210 has one type of GPM-applied intra prediction mode. [Figure 15] FIG. 15 is a flowchart showing an example of a method for identifying a prediction mode in the divided region 0 by the decoding unit 210 when there are two or more types of GPM-applied intra prediction modes. [Figure 16] FIG. 16 is a flowchart showing an example of a method for identifying a prediction mode in a divided region 1 by the decoding section 210 when there are two or more types of GPM-applied intra prediction modes. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0011] Hereinafter, the embodiments of the present invention will be described with reference to the drawings. Note that the components in the following embodiments can be appropriately replaced with existing components, and various variations including combinations with other existing components are possible. Therefore, the description of the following embodiments does not limit the content of the invention described in the claims.

[0012] First Embodiment An image processing system 10 according to a first embodiment of the present invention will be described below with reference to Figures 1 to 16. Figure 1 is a diagram showing an image processing system 10 according to this embodiment.

[0013] (Image Processing System 10) As shown in FIG. 1, an image processing system 10 according to this embodiment includes an image encoding device 100 and an image decoding device 200.

[0014] The image coding device 100 is configured to generate coded data by coding an input image signal (picture). The image decoding device 200 is configured to generate an output image signal by decoding the coded data.

[0015] Here, the encoded data may be transmitted from the image encoding device 100 to the image decoding device 200 via a transmission path. Alternatively, the encoded data may be provided from the image encoding device 100 to the image decoding device 200 after being stored in a storage medium.

[0016] (Image encoding device 100) The image encoding device 100 according to this embodiment will be described below with reference to Fig. 2. Fig. 2 is a diagram showing an example of functional blocks of the image encoding device 100 according to this embodiment.

[0017] As shown in FIG. 2, the image encoding device 100 includes an inter prediction unit 111, an intra prediction unit 112, a synthesis unit 113, a subtractor 121, an adder 122, a transformation and quantization unit 131, an inverse transformation and inverse quantization unit 132, an encoding unit 140, an in-loop filter processing unit 150, and a frame buffer 160.

[0018] The inter prediction unit 111 is configured to generate an inter prediction signal by inter prediction (inter-frame prediction).

[0019] Specifically, the inter prediction unit 111 is configured to identify a reference block included in a reference frame by comparing a frame to be coded (target frame) with a reference frame stored in the frame buffer 160, and to determine a motion vector (MV) for the identified reference block. Here, the reference frame is a frame different from the target frame.

[0020] Furthermore, the inter prediction unit 111 is configured to generate, for each current block to be coded (hereinafter, current block), an inter prediction signal included in the current block, based on the reference block and the motion vector.

[0021] Furthermore, the inter prediction unit 111 is configured to output the inter prediction signal to the synthesis unit 113.

[0022] In addition, although not shown in Figure 2, the inter prediction unit 111 is configured to output information regarding the control of inter prediction (specifically, information such as the inter prediction mode, motion vector, reference frame list, reference frame number, etc.) to the encoding unit 140.

[0023] The intra prediction unit 112 is configured to generate an intra prediction signal by intra prediction (intra-frame prediction).

[0024] Specifically, the intra prediction unit 112 is configured to identify a reference block included in a target frame, and generate an intra prediction signal for each target block based on the identified reference block. Here, the reference block is a block referenced for the target block. For example, the reference block is a block adjacent to the target block.

[0025] Moreover, the intra prediction unit 112 is configured to output the intra prediction signal to the synthesis unit 113 .

[0026] Although not shown in FIG. 2, the intra prediction unit 112 is configured to output information relating to control of intra prediction (specifically, information such as the intra prediction mode) to the encoding unit 140.

[0027] The synthesis unit 113 is configured to synthesize the inter prediction signal input from the inter prediction unit 111 and / or the intra prediction signal input from the intra prediction unit 112 using a preset weighting coefficient, and output the synthesized prediction signal (hereinafter collectively referred to as prediction signal) to the subtractor 121 and the adder 122.

[0028] Here, with regard to the synthesis process of the synthesizing unit 113 for the inter-prediction signal and / or the intra-prediction signal, a configuration similar to that of Non-Patent Document 1 can be adopted in the present embodiment, and therefore a description thereof will be omitted.

[0029] The subtractor 121 is configured to subtract the prediction signal from the input image signal, and output the prediction residual signal to the transformation and quantization unit 131. Here, the subtractor 121 is configured to generate a prediction residual signal that is the difference between the prediction signal generated by intra prediction or inter prediction and the input image signal.

[0030] The adder 122 is configured to add the prediction signal output from the synthesis unit 113 to the prediction residual signal output from the inverse transformation / inverse quantization unit 132 to generate a pre-filtered decoded signal, and to output the pre-filtered decoded signal to the intra prediction unit 112 and the in-loop filter processing unit 150.

[0031] Here, the unfiltered decoded signal forms a reference block used by the intra prediction unit 112 .

[0032] The transform / quantization unit 131 is configured to perform a transform process on the prediction residual signal and to obtain a coefficient level value. Furthermore, the transform / quantization unit 131 may be configured to quantize the coefficient level value.

[0033] Here, the transform process is a process of transforming a prediction residual signal into a frequency component signal. For such a transform process, a basis pattern (transformation matrix) corresponding to a discrete cosine transform (hereinafter, abbreviated as DCT) may be used, or a basis pattern (transformation matrix) corresponding to a discrete sine transform (hereinafter, abbreviated as DST) may be used.

[0034] As a transform process, MTS (Multiple Transform Selection), which is disclosed in Non-Patent Document 1 and enables selection of a transform base suitable for the bias of coefficients of a prediction residual signal from among a plurality of transform bases for each horizontal and vertical direction, or LFNST (Low Frequency Non-Separable Transform), which improves coding performance by concentrating transform coefficients after a primary transform in a further low frequency region, may be used.

[0035] The inverse transform / inverse quantization unit 132 is configured to perform an inverse transform process on the coefficient level values ​​output from the transform / quantization unit 131. Here, the inverse transform / inverse quantization unit 132 may be configured to perform inverse quantization of the coefficient level values ​​prior to the inverse transform process.

[0036] Here, the inverse transformation process and inverse quantization are performed in the reverse order to the transformation process and quantization performed by the transformation and quantization unit 131 .

[0037] The encoding unit 140 is configured to encode the coefficient level values ​​output from the transform / quantization unit 131, and output encoded data.

[0038] Here, for example, the coding is entropy coding, which assigns codes of different lengths based on the probability of occurrence of coefficient level values.

[0039] The encoding unit 140 is also configured to encode control data for use in the decoding process in addition to the coefficient level values.

[0040] Here, the control data may include information (flags and indexes) regarding block sizes such as an encoding block size, a prediction block size, and a transform block size.

[0041] The control data may also include information (flags and indexes) necessary for controlling the inverse transform / inverse quantization process of the inverse transform / inverse quantization unit 220 in the image decoding device 200 described later, the inter prediction signal generation process of the inter prediction unit 241, the intra prediction signal generation process of the intra prediction unit 242, the synthesis process of the inter prediction signal and / or intra prediction signal of the synthesis unit 243, and the filtering process of the in-loop filter processing unit 250.

[0042] In Non-Patent Document 1, this control data is called syntax, and its definition is called semantics.

[0043] The control data may also include header information such as a sequence parameter set (SPS), a picture parameter set (PPS), a picture header (PH), and a slice header (SH), which will be described later.

[0044] The in-loop filtering unit 150 is configured to perform filtering on the unfiltered decoded signal output from the adder 122 , and to output the filtered decoded signal to the frame buffer 160 .

[0045] Here, for example, the filter processing is a deblocking filter processing that reduces distortion occurring at the boundary portions of blocks (encoding blocks, prediction blocks, or transformation blocks), or an adaptive loop filter processing that switches filters based on filter coefficients and filter selection information transmitted from the image encoding device 100, local properties of the image pattern, etc.

[0046] The frame buffer 160 is configured to store reference frames used by the inter prediction unit 111 .

[0047] Here, the filtered decoded signal forms a reference frame used in the inter prediction unit 111.

[0048] (Image Decoding Device 200) Hereinafter, the image decoding device 200 according to this embodiment will be described with reference to Fig. 3. Fig. 3 is a diagram showing an example of functional blocks of the image decoding device 200 according to this embodiment.

[0049] As shown in FIG. 3, the image decoding device 200 includes a decoding unit 210, an inverse transform / inverse quantization unit 220, an adder 230, an inter prediction unit 241, an intra prediction unit 242, a synthesis unit 243, an in-loop filtering unit 250, and a frame buffer 260.

[0050] The decoding unit 210 is configured to decode the coded data generated by the image coding device 100, and to decode the coefficient level values.

[0051] Here, the decoding is, for example, entropy decoding that is the reverse procedure of the entropy encoding performed by the encoding unit 140.

[0052] The decoding unit 210 may also be configured to obtain the control data by decoding the encoded data.

[0053] Here, the control data may include information regarding the block size of the above-mentioned decoded block (synonymous with the encoding target block in the above-mentioned image encoding device 100; hereinafter, collectively referred to as the target block).

[0054] The control data may also include information (flags and indexes) necessary for controlling the inverse transform / inverse quantization process of the inverse transform / inverse quantization unit 220, the predicted pixel generation process of the inter prediction unit 241 and the intra prediction unit 242, the filtering process of the in-loop filtering unit 250, etc.

[0055] The control data may also include header information such as the above-mentioned sequence parameter set (SPS: Sequence Parameter Set), picture parameter set (PPS: Picture Parameter Set), picture header (PH: Picture Header), and slice header (SH: Slice Header).

[0056] The inverse transform / inverse quantization unit 220 is configured to perform an inverse transform process on the coefficient level values ​​output from the decoding unit 210. Here, the inverse transform / inverse quantization unit 220 may be configured to perform an inverse quantization process on the coefficient level values ​​prior to the inverse transform process.

[0057] Here, the inverse transformation process and inverse quantization are performed in the reverse order to the transformation process and quantization performed by the transformation and quantization unit 131 .

[0058] The adder 230 is configured to add the prediction signal to the prediction residual signal output from the inverse transform / inverse quantization unit 220 to generate a pre-filtered decoded signal, and output the pre-filtered decoded signal to the intra prediction unit 242 and the in-loop filter processing unit 250.

[0059] Here, the unfiltered decoded signal forms a reference block used by the intra prediction unit 242 .

[0060] Similar to the inter prediction unit 111, the inter prediction unit 241 is configured to generate an inter prediction signal by inter prediction (inter-frame prediction).

[0061] Specifically, the inter prediction unit 241 is configured to generate an inter prediction signal based on a motion vector decoded from encoded data and a reference signal included in a reference frame. The inter prediction unit 241 is configured to output the inter prediction signal to the synthesis unit 243.

[0062] Similar to the intra prediction unit 112, the intra prediction unit 242 is configured to generate an intra prediction signal by intra prediction (intra-frame prediction).

[0063] Specifically, the intra prediction unit 242 is configured to identify a reference block included in the target frame, and generate an intra prediction signal for each prediction block based on the identified reference block. The intra prediction unit 242 is configured to output the intra prediction signal to the synthesis unit 243.

[0064] The synthesis unit 243, like the synthesis unit 113, is configured to synthesize the inter prediction signal input from the inter prediction unit 111 and / or the intra prediction signal input from the intra prediction unit 112 using a preset weighting coefficient, and output the synthesized prediction signal (hereinafter collectively referred to as the prediction signal) to the adder 122.

[0065] The adder 122 is configured to add the prediction signal output from the synthesis unit 243 to the prediction residual signal output from the inverse transform / inverse quantization unit 220 to generate a pre-filtered decoded signal, and output the pre-filtered decoded signal to the in-loop filter processing unit 250.

[0066] Similar to in-loop filter processing unit 150, in-loop filter processing unit 250 is configured to perform filtering on the unfiltered decoded signal output from adder 230, and to output the filtered decoded signal to frame buffer 260.

[0067] Here, for example, the filter processing is a deblocking filter processing that reduces distortion occurring at the boundary parts of blocks (encoding blocks, prediction blocks, transformation blocks, or subblocks obtained by dividing them), or an adaptive loop filter processing that switches filters based on filter coefficients, filter selection information, and local properties of the image pattern transmitted from the image encoding device 100.

[0068] Similar to the frame buffer 160, the frame buffer 260 is configured to store reference frames used by the inter prediction unit 241.

[0069] Here, the filtered decoded signal forms a reference frame used by the inter prediction unit 241.

[0070] (Geometry division mode) Below, using Figures 4 and 5, we will explain the application of the geometric partitioning mode disclosed in Non-Patent Document 1 relating to the decoding unit 210, the inter prediction unit 241, and the intra prediction unit 242 to the intra prediction mode and the first geometric partitioning mode (GPM) in this embodiment.

[0071] FIG. 4 shows an example of a case in which a rectangular block to be decoded is divided into two geometrically shaped division areas 0 and 1 by a division line L1 in the geometric division mode disclosed in Non-Patent Document 1.

[0072] Here, the dividing line L1 in the geometric division mode disclosed in Non-Patent Document 1 has 64 patterns prepared depending on the angle and position.

[0073] Furthermore, the GPM according to Non-Patent Document 1 applies a normal merge mode, which is a type of inter prediction, to each of divided regions 0 and 1, and generates inter prediction (motion compensation) pixels.

[0074] Specifically, in this GPM, a merge candidate list as disclosed in Non-Patent Document 1 is constructed, and based on this merge candidate list and a merge index transmitted from the image encoding device 100, a motion vector and a reference frame for each divided area 0 / 1 are derived, and a reference block, i.e., an inter-prediction (or motion compensation) block, is generated, and finally, the inter-prediction pixels of each divided area 0 / 1 are weighted-averaged using a preset weight and synthesized.

[0075] As for the method of constructing such a merge candidate list, the method disclosed in Non-Patent Document 1 can be applied to this patent, and therefore a detailed description thereof will be omitted.

[0076] FIG. 5 illustrates an example of application of intra prediction modes to the GPM according to the present embodiment.

[0077] The predicted pixel generation of the GPM according to Non-Patent Document 1 is limited to a normal merge mode, which is a type of inter prediction (motion compensation), and therefore there is room for improvement in the coding performance.

[0078] In contrast, the first GPM according to this embodiment proposes improving the coding performance by applying an intra prediction mode in addition to a normal merge mode to generate predicted pixels of the GPM.

[0079] Here, in the first GPM, either normal merge mode or intra prediction mode can be applied to each divided region 0 / 1, and the type of intra prediction mode is further limited according to the division shape (division line) of the block to be decoded.

[0080] In addition, in the second GPM according to this embodiment, a method for determining whether or not a GPM that additionally applies an intra prediction mode to a block to be decoded can be applied and a method for identifying the prediction mode type in each divided area 0 / 1 when the GPM is applied is proposed.

[0081] As a result, the GPM to which an intra prediction mode is additionally applied is appropriately applied to the block to be decoded, and the optimal prediction mode is identified, thereby achieving room for further improvement in encoding performance.

[0082] In the following, we will explain whether or not GPM can be applied in the second GPM of this embodiment, and the method of identifying the prediction mode type in each divided area 0 / 1 when GPM is applied (or the signaling method, as it is commonly called) from two perspectives: the encoded data (encoded bitstream) itself decoded by the decoding unit 210, and a method of identification based on control data (syntax) included in the encoded data in the decoding unit 210.

[0083] (Encoded data decoded by the decoding unit 210) The encoded data decoded by the decoding unit 210 will be described below with reference to Fig. 6. Fig. 6 is a diagram showing an example of the structure of encoded data received by the decoding unit 210 disclosed in Non-Patent Document 1.

[0084] As shown in Fig. 6, the coded data may include an SPS 211 at the beginning of the stream. The SPS 211 is a set of control data for each sequence (a set of pictures). Each SPS 211 includes at least SPS id information for identifying each SPS when there are multiple SPSs.

[0085] As shown in Fig. 6, the coded data may include a PPS 212 following an SPS 211. Here, the PPS 212 is a set of control data in units of pictures (a set of slices). Each PPS 212 includes at least PPS id information for identifying each PPS 212 when there are multiple PPSs 212. Each PPS 212 also includes at least SPS id information for specifying the SPS 211 corresponding to the PPS 212.

[0086] As shown in Fig. 6, the coded data may include a picture header 213 following a PPS 212. The picture header 213 is also a collection of control data for each picture (a collection of slices). A single PPS 212 can be shared by a plurality of pictures. On the other hand, the picture header 213 is always transmitted for each picture. The picture header 213 includes at least PPS id information for specifying the PPS 212 corresponding to each picture.

[0087] As shown in Fig. 6, the encoded data may include a slice header 214A following the picture header 213. The slice header 214A is a collection of control data for each slice. The slice header 214A may also include the information of the picture header 213 described above as a part of the slice header.

[0088] 6, the encoded data may include slice data 215A following a slice header 214A. The slice data 215A may include the above-mentioned coefficient level values, size data, and the like.

[0089] As described above, a slice header, a picture header, a PPS, and an SPS correspond to each slice data 215A / 215B. As described above, the picture header 213 specifies which PPS 212 to refer to by the PPS id, and further specifies which SPS 211 the PPS 212 refers to by the SPS id, so that common SPS 211 and PPS 212 can be used for multiple slice data 215A / 215B.

[0090] In other words, it is not necessary to transmit the SPS 211 and the PPS 212 for each picture and each slice. For example, as shown in Fig. 6, a stream may be configured such that the SPS 211 and the PPS 212 are not coded immediately before the slice headers 214A / 214B.

[0091] It should be noted that the configuration shown in Fig. 6 is merely an example. As long as the slice data 215A / 215B is configured to correspond to the control data specified in the slice header 214A / 214B, picture header 213, PPS 212, and SPS 211, elements other than these may be added as components of the stream. Similarly, the data may be shaped into a different configuration from that shown in Fig. 6 when transmitted.

[0092] (How to determine whether or not GPM can be applied to a sequence) Hereinafter, a method for determining whether or not the GPM can be applied based on control data at the decoding target sequence level by the decoding unit 210 and whether or not the intra prediction mode can be applied to the GPM will be described with reference to FIGS.

[0093] FIG. 7 is a flowchart showing an example of a method in which the decoding unit 210 determines whether or not a GPM can be applied and whether or not an intra prediction mode can be applied to the GPM based on a GPM-related flag in units of an SPS.

[0094] As shown in FIG. 7, in step S200-HLS-01, the decoding unit 210 determines whether the value of sps_gpm_enabled_flag is 1 or not.

[0095] If the value of sps_gpm_enabled_flag is 1, the decoding unit 210 proceeds to step S200-HLS-02, and if the value of sps_gpm_enabled_flag is not 1, the decoding unit 210 proceeds to step S200-HLS-03.

[0096] Here, sps_gpm_enabled_flag is a syntax (first syntax) that controls whether or not the geometric partitioning mode is applied to the sequence to be decoded, and when the value of sps_gpm_enabled_flag is 1, it indicates that GPM is enabled, and when the value of sps_gpm_enabled_flag is 0, it indicates that GPM is disabled.

[0097] It should be noted that the decoding unit 210 can determine the value of sps_gpm_enabled_flag in step S200-HLS-01 by decoding sps_gpm_enabled_flag before step S200-HLS-01.

[0098] Furthermore, if sps_gpm_enabled_flag does not exist, the decoding unit 210 may estimate the value of sps_gpm_enabled_flag to be 0.

[0099] In step S200-HLS-02, the decoding unit 210 decodes sps_gpm_intra_enabled_flag, and ends this process.

[0100] On the other hand, in step S200-HLS-03, the decoding unit 210 does not decode sps_gpm_intra_enabled_flag, and ends this process.

[0101] Here, sps_gpm_intra_enabled_flag is a syntax (second syntax) that controls whether or not intra prediction mode can be applied to the geometric partitioning mode of the decoded sequence, and when the value of sps_gpm_intra_enabled_flag is 1, it indicates that intra prediction mode can be applied to the GPM, and when the value of sps_gpm_intra_enabled_flag is 0, it indicates that intra prediction mode cannot be applied to the GPM.

[0102] If sps_gpm_intra_enabled_flag does not exist, the decoding unit 210 may estimate the value of sps_gpm_intra_enabled_flag to be 0.

[0103] The reason why the decoding unit 210 does not decode sps_gpm_intra_enabled_flag in step S200-HLS-03 is that the value of sps_gpm_enabled_flag is 0, i.e., it has been determined in the previous stage that GPM cannot be applied to the sequence to be decoded, so there is no point in decoding sps_gpm_intra_enabled_flag, and by taking this method, unnecessary decoding (encoding) of sps_gpm_intra_enabled_flag can be avoided.

[0104] Figure 8 is a modification of Figure 7. Specifically, Figure 8 differs from Figure 7 in that, when there are multiple intra prediction modes that can be additionally applied to the GPM, steps S200-HLS-04, S200-HLS-05, and S200-HLS-06 are added that relate to decoding determination of a syntax (sps_max_num_gpm_intra_cand, a third syntax described later) that specifies which intra prediction mode can be selected in a divided area of ​​a block to be decoded and the maximum number of candidates (number of types).

[0105] As shown in FIG. 8, in step S200-HLS-04, the decoding unit 210 determines whether the value of sps_gpm_intra_enabled_flag is 1, and if the value of sps_gpm_intra_enabled_flag is 1, proceeds to step S200-HLS-05, and if the value of sps_gpm_intra_enabled_flag is 0, proceeds to step S200-HLS-06.

[0106] In step S200-HLS-05, the decoding unit 210 decodes sps_max_num_gpm_intra_cand, and ends this process.

[0107] On the other hand, in step S200-HLS-06, the decoding unit 210 does not decode sps_max_num_gpm_intra_cand, and ends this process.

[0108] In step S200-HLS-06, since it has been determined in step S200-HLS-05 based on sps_gpm_intra_enabled_flag that application of the intra prediction mode to GPM is not possible, unnecessary decoding (encoding) of sps_max_num_gpm_intra_cand is avoided.

[0109] Here, the value of sps_max_num_gpm_intra_cand may be set to the maximum number of intra prediction mode types to be applied to GPM. Note that, if sps_max_num_gpm_intra_cand does not exist, the decoding unit 210 may estimate the value of sps_max_num_gpm_intra_cand to be 0.

[0110] The types of intra prediction modes applied to the GPM are configured with intra prediction modes according to a division line in the first GPM (for example, division line L1 shown in FIG. 4).

[0111] For example, the type of intra prediction mode applied to the GPM may include an angular mode parallel to the division line L1 in the GPM and / or an angular mode perpendicular to the division line L1 in the GPM. Alternatively, the type of intra prediction mode applied to the GPM may include an angular mode near these angular modes.

[0112] In addition, if there are two or more angular modes parallel or perpendicular to the division line L1 (for example, if the division line L1 is at the same angle as the diagonal of the square block), the type of intra prediction mode applied to the GPM may be limited to one of them.

[0113] For example, by limiting the processing order of adjacent decoded blocks from the block to be decoded, that is, by limiting the direction in which reference pixels are obtained from adjacent blocks to the left or above the block to be decoded rather than adjacent blocks to the right or below, the dependency of the decoding process between blocks when generating predicted pixels can be reduced.

[0114] In addition, the types of intra prediction modes applied to the GPM may include, in addition to the angular mode, intra prediction modes that do not depend on the division line L1, such as the planar mode and / or the DC mode.

[0115] In the above, it has been explained that the need for decoding is determined at the sequence level for the syntax that controls whether or not intra prediction mode can be applied to the geometric partitioning mode and the syntax that specifies the maximum number of candidates for the intra prediction mode type to be applied to the GPM. However, in order to control at a finer granularity, decoding may be performed, for example, at the level of the PPS, picture header, or slice header.

[0116] However, making the control unit finer increases the amount of code in the syntax to be decoded (encoded). Therefore, the designer may design the system by evaluating the trade-off between the improvement in prediction performance due to finer control units and the increased amount of code in the syntax, as desired.

[0117] (Method of determining whether or not GPM is applicable on a block basis) Hereinafter, whether or not to apply GPM to the block to be decoded by the decoding unit 210 will be described with reference to Fig. 9. Fig. 9 is a flowchart showing an example of a method by which the decoding unit 210 determines whether or not to apply GPM to the block to be decoded.

[0118] As shown in FIG. 9, in step S200-01, decoding section 210 determines whether the value of sps_gpm_intra_enabled_flag is 1, and if the value of sps_gpm_intra_enabled_flag is 1, proceeds to step S200-2, and if the value of sps_gpm_intra_enabled_flag is 0, proceeds to step S200-03.

[0119] In step S200-03, decoding section 210 determines whether or not predetermined condition 1 (or a first predetermined condition) is satisfied, and if predetermined condition 1 is satisfied, proceeds to step S200-06, and if predetermined condition 1 is not satisfied, proceeds to step S200-07. Details of predetermined condition 1 will be described later.

[0120] In step S200-06, decoding section 210 specifies the value of GpmFlag as 1 and ends this process. In step S200-06, decoding section 210 specifies the value of GpmFlag as 0 and ends this process.

[0121] Here, GpmFlag is an internal parameter (first internal parameter or second internal parameter) that specifies (controls) whether or not GPM is applied to the block to be decoded. When the value of GpmFlag is 1, it indicates that GPM is applied to the block to be decoded (GPM is enabled), and when the value of GpmFlag is 0, it indicates that GPM is not applied to the block to be decoded (GPM is disabled).

[0122] In other words, GpmFlag can be said to be an internal parameter (first internal parameter) that controls whether or not the geometric partitioning mode of the block to be decoded is applied according to the predetermined condition 1.

[0123] Since the predetermined condition 1 is a condition for determining whether or not to apply GPM in which intra prediction mode is not applied, the same condition disclosed in Non-Patent Document 1 may be used. Specifically, all of the following conditions are satisfied. The value of sps_gpm_enabled_flag is 1. sh_slice_type is B. The value of general_merge_flag is 1. The width of the block to be decoded is 8 pixels or more. The height of the block to be decoded is 8 pixels or more. - The width of the block to be decoded is less than 128 pixels. The height of the block to be decoded is less than 128 pixels. The width of the block to be decoded is less than eight times the height of the block to be decoded. The height of the block to be decoded is less than eight times the width of the block to be decoded. The value of regular_merge_flag is 1. - The value of merge_subblock_flag is 0. The value of clip_flag is 0.

[0124] Here, sh_slice_type is a syntax (fourth syntax) that indicates the type of slice to be decoded. In non-patent document 1, two different merge vectors are used to generate predicted pixels for each divided region for a GPM-applied block, and therefore GPM is only applicable to B slices, where it is self-evident that there are two motion vectors in the entire slice (conversely, this means that GPM cannot be applied to P slices, where it is self-evident that there is only one motion vector in the entire slice).

[0125] Here, the conditions relating to general_merge_flag, regular_merge_flag, merge_subblock_flag, and clip_flag can have the same configuration as in Non-Patent Document 1, so the description will be omitted.

[0126] In addition, the condition that the width and height of the block to be decoded are 8 pixels or more is aimed at reducing the worst case of the number of reference pixels (memory bandwidth) required for motion compensation, and was introduced in Non-Patent Document 1. Specifically, in Non-Patent Document 1, the lower limit value of the block size of a uni-predictive block having one motion vector is set to 4×8 / 8×4 pixels, and the lower limit value of the block size of a bi-predictive block having two motion vectors is set to 8×8 pixels. Therefore, the same lower limit value is also considered as an application condition for a GPM-applied block, which is a type of bi-predictive block.

[0127] The condition that the width and height of the block to be decoded are less than 128 pixels is imposed from the viewpoint of making GPM inapplicable to blocks with a low rate of application of GPM in order to reduce the number of provisional encoding processes that evaluate whether or not GPM should be applied in the image encoding device 100, and thus to reduce the amount of encoding processing.

[0128] The condition that the width (or height) of the block to be decoded is less than eight times the height (or width) of the block to be decoded is restricted from the viewpoint of making GPM inapplicable to blocks with a low rate of application of GPM in order to reduce the number of provisional encoding processes that evaluate whether or not GPM is applied in the image encoding device 100, and thus to reduce the amount of encoding processing.

[0129] In contrast to step S200-03 described above, in step S200-02, the decoding unit 210 determines whether or not the predetermined condition 2 (or the second predetermined condition) is satisfied, and if the predetermined condition 2 is satisfied, the process proceeds to step S200-04, and if the predetermined condition 1 is not satisfied, the process proceeds to step S200-05. Details of the predetermined condition 2 will be described later.

[0130] In other words, GpmFlag can be said to be an internal parameter (second internal parameter) that controls whether or not the geometric partitioning mode of the block to be decoded is applied according to the predetermined condition 2.

[0131] In step S200-04, decoding section 210 specifies the value of GpmFlag as 1 and ends this process, and in step S200-05, specifies the value of GpmFlag as 0 and ends this process.

[0132] Here, since the predetermined condition 2 is a condition for determining whether or not to apply a GPM in which an intra prediction mode is applied, the following condition included in the predetermined condition 1 may be abolished. sh_slice_type is B. The width of the block to be decoded is 8 pixels or more. The height of the block to be decoded is 8 pixels or more. The width of the block to be decoded is less than eight times the height of the block to be decoded. The height of the block to be decoded is less than eight times the width of the block to be decoded.

[0133] First, the elimination of the condition regarding sh_slice_type makes it possible to apply GPM to I slices and P slices other than B slices due to the intra prediction mode for GPM. As a result, the number of blocks to which GPM can be applied increases, which is expected to improve coding performance.

[0134] For example, a GPM in which an intra prediction mode is applied to both of the divided regions can be applied to an I slice, and a GPM in which a merge mode is applied to one of the divided regions and an intra prediction mode is applied to the other divided region can be applied to a P slice.

[0135] Secondly, regarding the elimination of the condition that the width and height of the block to be decoded are 8 pixels or more, when an intra prediction mode is applied to at least one of the divided regions of the GPM, the lower limit of the block size (8×8 pixels) that was set in consideration of the worst-case memory bandwidth of a bi-predictive block can be relaxed to the lower limit of the block size of a uni-predictive block (4×8 / 8×4 pixels). As a result, the GPM can be applied to small-sized blocks to which the GPM could not be applied in Non-Patent Document 1, and the number of blocks to which the GPM is applied can be increased, which is expected to improve the coding performance.

[0136] It is anticipated that the block size lower limit value for unidirectional prediction blocks and bidirectional prediction blocks may be relaxed in the future due to improvements in the memory bandwidth of hardware decoders. However, even in such a case, GPM using intra prediction mode as described above can relax the block size limit (lower limit value) that takes into account the worst-case memory bandwidth of bidirectional prediction blocks in conventional GPM to the block size limit (lower limit value) in unidirectional prediction.

[0137] Thirdly, with regard to the elimination of the condition regarding the aspect ratio of the block to be decoded (= the elimination of the condition that the width (or height) of the block to be decoded is less than 8 times the height (or width) of the block to be decoded), if this is relaxed to limit it to small-sized blocks where the prediction performance of the intra prediction mode is relatively high by introducing intra prediction mode into GPM, the number of blocks to which GPM is applied can be increased, and improvement in encoding performance can be expected.

[0138] For example, in Non-Patent Document 1, the restriction may be lifted for 4×16 / 16×4 pixel blocks and / or 4×32 / 32×4 pixel blocks and / or 8×64 / 64×8 pixel blocks to which GPM is not applicable.

[0139] In addition, the condition that the width and height of the decoding target block are less than 128 pixels in the predetermined condition 1 and the predetermined condition 2 may be relaxed in the future due to improvements in the performance of the encoder, but even in such a case, the same condition (upper block size value) for the GPM to which the intra prediction mode is applied may be maintained. This is because, as the block size of the intra prediction mode increases, the distance from the adjacent reference pixels to the left and above of the decoding target block increases, and the prediction accuracy is likely to decrease.

[0140] (How to determine the GPM division mode (type of division line L1) for each block) Hereinafter, a method for determining the GPM partition mode (type of division line L1) for each block by the decoding unit 210 will be described with reference to Fig. 10. Fig. 10 is a flowchart showing an example of a method for determining the GPM partition mode (type of division line L1) for each block of a block to be decoded by the decoding unit 210.

[0141] As shown in FIG. 10, in step S200-08, decoding section 210 determines whether the value of the above-mentioned GpmFlag is 1, and if the value of GpmFlag is 1, proceeds to step S200-09, and if the value of GpmFlag is 0, proceeds to step S200-10.

[0142] In step S200-09, the decoding unit 210 decodes gpm_partition_idx included in the control data, and ends this process.

[0143] In step S200-10, decoding section 210 ends this process without decoding gpm_partition_idx included in the control data.

[0144] Here, gpm_partition_idx is a syntax (fifth syntax) that specifies the partition shape (direction of partition line L1) of the geometric partition mode of the block to be decoded.

[0145] In non-patent document 1, the values ​​of gpm_partition_idx ranging from 0 to 63 correspond to the 64 directions of the partition line L1 mentioned above, so the decoding unit 210 can identify (estimate) the value of gpm_partition_idx to identify the partition shape (direction of the partition line L1) of the geometric partition mode of the block to be decoded.

[0146] In step S200-10, decoding unit 210 terminates this process without decoding gpm_partition_idx included in the control data. However, since the determination of GpmFlag in step S200-08 has determined that GPM is not applied to the block to be decoded, the aim is to avoid unnecessary decoding of gpm_partition_idx (to reduce the amount of transmitted code).

[0147] (Method of determining whether or not to apply intra prediction mode to division area 0) Hereinafter, a method of determining whether or not to apply an intra prediction mode to the divided region 0 by the decoding unit 210 will be described with reference to Fig. 11. Fig. 11 is a flowchart showing a method of determining whether or not to apply an intra prediction mode to the divided region 0 by the decoding unit 210.

[0148] 11, in step S200-11, decoding unit 210 determines whether the value of the above-mentioned GpmFlag is 1 and sps_gpm_intra_enabled_flag is 1. If these conditions are met, decoding unit 210 proceeds to step S200-12, and if these conditions are not met, decoding unit 210 proceeds to step S200-13.

[0149] In step S200-12, decoding section 210 decodes gpm_r0_intra_flag included in the control data, and then ends this process.

[0150] In step S200-13, decoding section 210 ends this process without decoding gpm_r0_intra_flag included in the control data.

[0151] Here, gpm_r0_intra_flag is a syntax element (sixth syntax element) that specifies whether or not the prediction mode of the partitioned region 0 into which the block to be decoded is divided in the geometric partitioning mode is an intra prediction mode.

[0152] The decoding unit 210 can determine that if the value of gpm_r0_intra_flag is 1, the intra prediction mode is applied (valid) to the division area 0, and can determine that if the value of gpm_r0_intra_flag is 0, the intra prediction mode is not applied (invalid) to the division area 0.

[0153] If gpm_r0_intra_flag does not exist, decoding section 210 may estimate the value of gpm_r0_intra_flag to be 0.

[0154] In step S200-13, decoding unit 210 terminates this process without decoding gpm_r0_intra_flag included in the control data. However, since it has been determined in step S200-11 that GPM is not applied to the block to be decoded, or that even if GPM is applied, the intra prediction mode is not applied to GPM in divided area 0, the aim is to avoid unnecessary decoding of gpm_r0_intra_flag (to reduce the amount of transmitted code).

[0155] (Method of determining whether or not to apply intra prediction mode to divided area 1) Hereinafter, a method of determining whether or not to apply an intra prediction mode to the divided region 1 by the decoding unit 210 will be described with reference to Fig. 12. Fig. 12 is a flowchart showing a method of determining whether or not to apply an intra prediction mode to the divided region 1 by the decoding unit 210.

[0156] 12, in step S200-11, decoding unit 210 determines whether the value of the above-mentioned GpmFlag is 1 and whether sps_gpm_intra_enabled_flag is 1. If this condition is met, decoding unit 210 proceeds to step S200-14, and if this condition is not met, decoding unit 210 proceeds to step S200-15.

[0157] In step S200-14, decoding unit 210 determines whether gpm_r0_intra_flag is 1 and MaxNumIntraCand is greater than 1. If this condition is met, decoding unit 210 proceeds to step S200-16, and if this condition is not met, decoding unit 210 proceeds to step S200-17.

[0158] Here, MaxNumIntraCand is an internal parameter (third internal parameter) that indicates the maximum number of intra type candidates that can be applied to the geometric partitioning mode.

[0159] This maximum number may be a fixed value calculated from the maximum number of intra type candidates applicable to the geometric partitioning mode and set in advance in both the image encoding device 100 and the image decoding device 200, or a variable value may be dynamically set on a per-sequence-to-be-decoded-sequence basis based on sps_max_num_gpm_intra_cand transmitted from the image encoding device 100 to the image decoding device 200.

[0160] In step S200-15, decoding unit 210 terminates this processing without decoding gpm_r1_intra_flag included in the control data, in step S200-16, decoding unit 210 decodes gpm_r1_intra_flag included in the control data and terminates this processing, and in step S200-17, decoding unit 210 terminates this processing without decoding gpm_r1_intra_flag included in the control data.

[0161] Here, gpm_r1_intra_flag is a syntax element (seventh syntax element) that specifies whether or not the prediction mode of the partitioned region 1 into which the block to be decoded is divided in the geometric partitioning mode is an intra prediction mode.

[0162] The decoding unit 210 can determine that if the value of gpm_r1_intra_flag is 1, the intra prediction mode is applied (enabled) to the divided area 1, and if the value of gpm_r1_intra_flag is 0, the decoding unit 210 can determine that the intra prediction mode is not applied (disabled) to the divided area 1.

[0163] If gpm_r1_intra_flag does not exist, decoding section 210 may estimate the value of gpm_r1_intra_flag to be 0.

[0164] In steps S200-15 and S200-17, the decoding unit 210 terminates this process without decoding gpm_r1_intra_flag included in the control data. However, since it has been determined in steps S200-11 and S200-16 that GPM is not applied to the block to be decoded, or that even if GPM is applied, the intra prediction mode is not applied to GPM in divided area 1, the aim is to avoid unnecessary decoding of gpm_r1_intra_flag (to reduce the amount of transmitted code).

[0165] (Method of identifying prediction mode in segmentation area 0 when there is one type of GPM-applied intra prediction mode) A method for identifying a prediction mode in divided region 0 by the decoding unit 210 when there is one type of GPM-applied intra prediction mode will be described below with reference to Fig. 13. Fig. 13 is a flowchart showing an example of a method for identifying a prediction mode in divided region 0 by the decoding unit 210 when there is one type of GPM-applied intra prediction mode.

[0166] 13, in step SR0-01, decoding unit 210 determines whether the value of the above-mentioned gpm_r0_intra_flag is 1. If this condition is satisfied, decoding unit 210 proceeds to step SR0-02, and if this condition is not satisfied, decoding unit 210 proceeds to step SR0-03.

[0167] In step SR0-02, the decoding unit 210 specifies the intra prediction mode of the divided region 0 as one type of intra prediction mode applicable to the GPM, and ends this process.

[0168] In step SR0-03, the decoding unit 210 judges whether the value of MaxNumMergeCand is greater than 1. If this condition is satisfied, the decoding unit 210 proceeds to step SR0-04, and if this condition is not satisfied, the decoding unit 210 proceeds to step SR0-05.

[0169] Here, MaxNumMergeCand is an internal parameter (fourth internal parameter) that indicates the maximum number of merge candidates in the normal merge mode. The maximum number can be set in the same manner as disclosed in Non-Patent Document 1 in the present embodiment, so detailed description will be omitted.

[0170] In step SR0-04, the decoding unit 210 decodes merge_gpm_idx0 to identify merge candidates for the divided area 0, and then ends this process.

[0171] In step SR0-05, the decoding unit 210 does not decode merge_gpm_idx0, but identifies a merge candidate for the divided area 0, and ends this process.

[0172] Here, merge_gpm_idx0 is an index (merge index) that identifies a merge candidate for divided area 0.

[0173] If merge_gpm_idx0 does not exist, decoding section 210 may estimate the value of merge_gpm_idx0 to be 0.

[0174] Here, in step SR0-05, the decoding unit 210 terminates this process without decoding merge_gpm_idx0. However, in step SR0-03, it can be determined that MaxNumMergeCand is 1, that is, it can be determined that there are 0 merge candidates for split area 0, so the aim is to avoid unnecessary decoding of merge_gpm_idx0 (to reduce the amount of transmission code).

[0175] (Method of determining prediction mode in divided area 1 when there is one type of GPM-applied intra prediction mode) A method for identifying a prediction mode in a divided region 1 by the decoding unit 210 when there is one type of GPM-applied intra prediction mode will be described below with reference to Fig. 14. Fig. 14 is a flowchart showing an example of a method for identifying a prediction mode in a divided region 1 by the decoding unit 210 when there is one type of GPM-applied intra prediction mode.

[0176] 14, in step SR1-01, the decoding unit 210 determines whether the value of the above-mentioned gpm_r0_intra_flag is 1. If this condition is satisfied, the decoding unit 210 proceeds to step SR1-02, and if this condition is not satisfied, the decoding unit 210 proceeds to step SR1-03.

[0177] In step SR1-02, the decoding unit 210 decodes merge_gpm_idx1 to identify merge candidates for the divided area 1, and then ends this process.

[0178] In step SR1-03, the decoding unit 210 judges whether the value of gpm_r1_intra_flag is 1. If this condition is satisfied, the decoding unit 210 proceeds to step SR1-04, and if this condition is not satisfied, the decoding unit 210 proceeds to step SR1-05.

[0179] In step SR1-04, the decoding unit 210 specifies the intra prediction mode of the divided region 1 as one type of intra prediction mode applicable to the GPM, and ends this process.

[0180] In step SR1-05, the decoding unit 210 judges whether the value of MaxNumMergeCand is greater than 2. If this condition is satisfied, the decoding unit 210 proceeds to step SR1-06, and if this condition is not satisfied, the decoding unit 210 proceeds to step SR1-07.

[0181] In step SR1-06, the decoding unit 210 decodes merge_gpm_idx1 to identify merge candidates for the divided area 1, and then ends this process.

[0182] In step SR1-07, the decoding unit 210 does not decode merge_gpm_idx1, but identifies a merge candidate for the divided area 1, and ends this process.

[0183] Here, merge_gpm_idx1 is an index (merge index) that identifies a merge candidate for divided area 1.

[0184] If merge_gpm_idx1 does not exist, decoding section 210 may estimate the value of merge_gpm_idx1 to be 0.

[0185] Here, in step SR1-07, decoding unit 210 terminates this process without decoding merge_gpm_idx1. However, in step SR1-05, it can be determined that the value of MaxNumMergeCand is 2, that is, it can be determined that the merge candidate for split area 1 is, of the two merge candidates, a different merge candidate from the merge candidate for split area 0 determined based on merge_gpm_idx0. Therefore, the aim is to avoid unnecessary decoding of merge_gpm_idx1 (to reduce the amount of transmitted code).

[0186] (Method of identifying prediction mode in division area 0 when there are two or more types of GPM-applied intra prediction modes) A method for identifying a prediction mode in divided region 0 by the decoding unit 210 when there are two or more types of GPM-applied intra prediction modes will be described below with reference to Fig. 13 and Fig. 15. Fig. 15 is a flowchart showing an example of a method for identifying a prediction mode in divided region 0 by the decoding unit 210 when there are two or more types of GPM-applied intra prediction modes.

[0187] Here, the differences between the flowchart shown in FIG. 13 and the flowchart shown in FIG. 15 are only steps SR0-02 and SR0-02A, and therefore only the differences between these two steps will be described.

[0188] In the flowchart shown in Figure 13, it is assumed that there is only one type of GPM-applied intra-prediction mode, so in step SR0-02, if the decoding unit 210 can identify that the prediction mode of divided area 0 is an intra-prediction mode in step SR001, it can uniquely identify that the type of intra-prediction mode is one type of GPM-applied intra-prediction mode.

[0189] On the other hand, the flowchart shown in Figure 15 assumes that there are two or more types of GPM-applied intra-prediction modes, so in step SR0-02A, even if the prediction mode of division area 0 can be identified as an intra-prediction mode in step SR0-01, the decoding unit 210 is configured to decode intra_gpm_idx0 because the type of intra-prediction mode of division area 0 cannot be identified without decoding intra_gpm_idx0.

[0190] Here, intra_gpm_idx0 is a syntax (syntax number 8) for specifying (controlling) the type of intra prediction mode in divided region 0.

[0191] The variation of the value of intra_gpm_idx0 may be set according to the number of types of intra prediction modes that can be applied to the GPM.

[0192] In addition, the type of intra prediction mode corresponding to the value of intra_gpm_idx0 may be set based on the selection rate of the intra prediction mode in GPM.

[0193] For example, if there are two types of intra prediction modes, a parallel angular mode with respect to the GPM dividing line L1 and a vertical angular mode with respect to the GPM dividing line L1, the parallel angular mode, which has a higher selection rate, may be set to a value of 0 for intra_gpm_idx0, and the vertical angular mode, which has a lower selection rate, may be set to a value of 1 for intra_gpm_idx0.

[0194] As another example, if there are three types of intra prediction modes, namely, parallel angular mode with respect to the GPM dividing line L1, vertical angular mode with respect to the GPM dividing line L1, and planar mode, the parallel angular mode may be set to the value of intra_gpm_idx0 of 0, the planar mode may be set to the value of intra_gpm_idx0 of 1, and the vertical angular mode may be set to the value of intra_gpm_idx0 of 2, in order of highest selection rate.

[0195] The above-mentioned selection rates are based on values ​​confirmed by simulation experiments conducted by the inventors using reference software corresponding to the technology disclosed in Non-Patent Document 1, and may be changed by the designer depending on the software used, the simulation conditions, or the target video sequence.

[0196] (Method of determining prediction mode in divided area 1 when there are two or more types of GPM-applied intra prediction modes) A method for identifying a prediction mode in a divided region 1 by the decoding unit 210 when there are two or more types of GPM-applied intra prediction modes will be described below with reference to Fig. 14 and Fig. 16. Fig. 16 is a flowchart showing an example of a method for identifying a prediction mode in a divided region 1 by the decoding unit 210 when there are two or more types of GPM-applied intra prediction modes.

[0197] Here, the difference between the flowchart shown in Fig. 14 and the flowchart shown in Fig. 16 is that step SR1-02 in the flowchart shown in Fig. 14 is replaced by steps SR1-07 to SR1-11 in the flowchart shown in Fig. 16. Only this difference will be described.

[0198] In the flowchart shown in Figure 14, it is assumed that there is only one type of GPM-applied intra-prediction mode. Therefore, in step SR1-02, if the decoding unit 210 can identify that the prediction mode of division area 0 is an intra-prediction mode in step SR1-01, it can be determined that intra-prediction mode is clearly not applied to division area 1, and therefore, merge candidates are identified using merge_gpm_idx1.

[0199] On the other hand, in the flowchart shown in Figure 16, it is assumed that there are two or more types of GPM-applied intra-prediction modes. Therefore, even if the decoding unit 210 can identify in step SR1-01 that the prediction mode of division area 0 is an intra-prediction mode, it cannot determine whether the prediction mode of division area 1 is an intra-prediction mode or not unless it further determines in step SR1-07 whether the value of gpm_r1_intra_flag is 1.

[0200] Therefore, in step SR1-07, the decoding section 210 judges whether the value of gpm_r1_intra_flag is 1, and if the value of gpm_r1_intra_flag is 1, the process proceeds to step SR1-08, and if the value of gpm_r1_intra_flag is 0, the process proceeds to step SR1-09.

[0201] In step SR1-09, the decoding unit 210 decodes merge_gpm_idx1 to identify merge candidates for the divided area 1, and then ends this process.

[0202] In step SR1-08, the decoding unit 210 MaxNumGpmIntraCand It is determined whether the value of is greater than 2. If this condition is met, the process proceeds to step SR1-10, and if this condition is not met, the process proceeds to step SR1-11.

[0203] In step SR1-10, the decoding unit 210 decodes intra_gpm_idx1 to identify the type of intra prediction mode for the divided area 1, and then ends this process.

[0204] In step SR1-11, the decoding unit 210 identifies the type of intra prediction mode for the divided area 1 without decoding intra_gpm_idx1, and ends this process.

[0205] In step SR1-11, decoding unit 210 identifies the type of intra prediction mode for split area 1 without decoding intra_gpm_idx1. This is intended to avoid unnecessary decoding of merge_gpm_idx1 (reducing the amount of transmitted code) because it can be identified in step SR1-08 that the value of MaxNumMergeCand is 2, i.e., it can be identified that the merge candidate for split area 1 is, of the two merge candidates, a different merge candidate from the merge candidate for split area 0 identified based on merge_gpm_idx0.

[0206] Here, intra_gpm_idx1 is a syntax (syntax 9) for specifying the type of intra prediction mode in the divided region 1.

[0207] The value of intra_gpm_idx1 may vary depending on the number of types of intra prediction modes that can be applied to the GPM.

[0208] In addition, the type of intra prediction mode corresponding to the value of intra_gpm_idx1 may be set based on the selection rate of the intra prediction mode in GPM.

[0209] For example, if there are two types of intra prediction modes, a parallel angular mode relative to the GPM dividing line L1 and a vertical angular mode relative to the GPM dividing line L1, the parallel angular mode, which has a higher selection rate, may be set to a value of 0 for intra_gpm_idx1, and the vertical angular mode, which has a lower selection rate, may be set to a value of 1 for intra_gpm_idx1.

[0210] As another example, if there are three types of intra prediction modes, namely, parallel angular mode relative to the GPM dividing line L1, vertical angular mode relative to the GPM dividing line L1, and planar mode, the parallel angular mode may be set to the value of intra_gpm_idx1 being 0, the planar mode may be set to the value of intra_gpm_idx1 being 1, and the vertical angular mode may be set to the value of intra_gpm_idx1 being 2, in order of highest selection rate.

[0211] The above-mentioned selection rates are based on values ​​confirmed by simulation experiments conducted by the inventors using reference software corresponding to the technology disclosed in Non-Patent Document 1, and may be changed by the designer depending on the software used, the simulation conditions, or the target video sequence.

[0212] The decoding unit 210 sends the following information on the sequence to be decoded and the block to be decoded, identified by the method described above in Figures 7 to 16, to the inter prediction unit 241, intra prediction unit 242, and synthesis unit 243, so that the image decoding device 200 can appropriately identify whether or not GPM can be applied to the block to be decoded and the type of prediction mode for each divided area when GPM is applied, and further improvement in encoding performance using GPM can be expected. Information on whether GPM can be applied to each sequence -Information on whether GPM is applied on a block basis -Information about the GPM division mode in blocks (type of division line L1) -Information on whether intra prediction mode is applied to segmentation area 0 A method for determining whether or not to apply intra prediction mode to division area 1 How to identify prediction mode in segmentation area 0 when there is only one GPM-applied intra prediction mode How to determine the prediction mode for segmentation area 1 when there is only one type of GPM-applied intra prediction mode How to identify the prediction mode in segmentation area 0 when there are two or more GPM-applied intra prediction modes How to determine the prediction mode for segmentation area 1 when there are two or more GPM-applied intra prediction modes In the above, we have referred to a case in which a rectangular block is divided into two geometric shapes by the GPM, and explained the signaling method when applying an intra-prediction mode to the GPM in that case. However, the signaling method described in this embodiment can also be applied with a similar concept to a case in which a rectangular block is divided into three or more geometric shapes by the GPM.

[0213] The above-described image encoding device 100 and image decoding device 200 may be realized as a program that causes a computer to execute each function (each process).

[0214] In each of the above-described embodiments, the present invention has been described by taking as an example its application to the image encoding device 100 and the image decoding device 200. However, the present invention is not limited to this, and can be similarly applied to an image encoding system and an image decoding system having the functions of the image encoding device 100 and the image decoding device 200. [Explanation of symbols]

[0215] 10. Image processing system 100...Image encoding device 111, 241…Inter prediction section 112, 242...Intra prediction section 113, 243…synthetic section 121…Subtractor 122, 230…Adder 131...Transformation and quantization section 132, 220...Inverse transform and inverse quantization unit 140...encoding section 150, 250...In-loop filter processing section 160, 260... frame buffer 200...Image decoding device 210…Decoding section

Claims

1. An image decoding device, comprising: An image decoding device characterized by having a decoding unit configured to decode a first syntax that controls whether or not a geometric partitioning mode of a sequence to be decoded is applied, and to control whether or not to decode a second syntax that controls whether or not an intra prediction mode is applied to the geometric partitioning mode of the sequence to be decoded, depending on the value of the first syntax.

2. The decoding unit is configured to decode the second syntax when the value of the first syntax is 1; 2 . The image decoding device according to claim 1 , wherein the image decoding device is configured not to decode the second syntax when the value of the first syntax is not 1. 3 .

3. The decoding unit is When the value of the second syntax is 1, a third syntax is configured to decode a number of types of intra prediction modes applicable to a geometric partitioning mode of the decoding target sequence, 3. The image decoding device according to claim 1, wherein the image decoding device is configured not to decode the third syntax when the value of the second syntax is not 1.

4. The decoding unit is When the value of the second syntax is not 1, a value of a first internal parameter that controls whether or not a geometric partitioning mode is applied to the block to be decoded is estimated based on a first predetermined condition; The image decoding device according to any one of claims 1 to 3, characterized in that, when the value of the second syntax is 1, the image decoding device is configured to estimate the value of a second internal parameter that controls whether or not to apply a geometric partitioning mode to the block to be decoded based on a second predetermined condition.

5. The image decoding device according to claim 4 , wherein the second predetermined condition includes a condition that a fourth syntax indicating a type of the slice to be decoded is a B slice or a P slice.

6. The decoding unit is When the value of the first internal parameter or the second internal parameter is 1, a fifth syntax that specifies a partition shape of a geometric partition mode of the block to be decoded is decoded; 6. The image decoding device according to claim 4, wherein the image decoding device is configured not to decode the fifth syntax when the value of the first internal parameter or the value of the second internal parameter is not 1.

7. The decoding unit is When the first internal parameter or the second internal parameter is valid and the value of the second syntax is 1, a sixth syntax is configured to decode whether or not a prediction mode of a divided region 0 into which the geometric partition mode of the block to be decoded is divided is an intra prediction mode; The image decoding device described in claim 6, characterized in that if the condition that the first internal parameter or the second internal parameter is valid and the value of the second syntax is 1 is not satisfied, the image decoding device is configured not to decode a sixth syntax that specifies whether the prediction mode of the divided division area 0 into which the geometric division mode of the block to be decoded is divided is an intra prediction mode.

8. The decoding unit is When the first internal parameter or the second internal parameter is valid and the value of the second syntax is 1, When the sixth syntax is valid and a third internal parameter indicating a maximum number of intra types of a geometric partition mode is greater than 1, a seventh syntax is decoded, the seventh syntax specifying whether or not a prediction mode of a partitioned region 1 into which the geometric partition mode of the block to be decoded is divided is an intra prediction mode; configured not to decode the seventh syntax when the sixth syntax is valid and the third internal parameter is not greater than 1; The image decoding device according to claim 7, characterized in that it is configured not to decode the seventh syntax if the condition that the first internal parameter or the second internal parameter is valid and the value of the second syntax is 1 is not satisfied.

9. The decoding unit is A case in which there is one type of intra prediction mode applicable to the geometric partition mode of the block to be decoded, When a value of the sixth syntax element is 1, a prediction mode of the divided region 0 is estimated to be the one type of intra prediction mode, If the value of the sixth syntax is not 1, When a value of a fourth internal parameter indicating a maximum number of merging candidates for a block to be decoded is greater than 1, a merging index for the division region 0 is decoded to identify merging candidates for the division region 0; 8. The image decoding device according to claim 7, characterized in that, when a value of the fourth internal parameter is equal to or less than 1, a merge index for the division region 0 is not decoded, and a merge candidate for the division region 0 is identified.

10. The decoding unit is A case in which there is one type of intra prediction mode applicable to the geometric partition mode of the block to be decoded, When the value of the sixth syntax is 1, a prediction mode of a partitioned region 1 into which the geometric partition mode of the block to be decoded is divided is estimated to be an inter prediction mode, and a merge index for the partitioned region 1 is decoded to identify a merge candidate for the partitioned region 1; If the value of the sixth syntax is not 1, When a value of a seventh syntax for specifying whether or not a prediction mode of a partitioned region 1 into which the decoding target block is divided in a geometric partition mode is an intra prediction mode, the prediction mode of the partitioned region 1 is specified as the one type of intra prediction mode, If the value of the seventh syntax is not 1, When the maximum number of merging candidates for the current block is greater than two, a merging index for the division region 1 is decoded to identify merging candidates for the division region 1; 10. The image decoding device according to claim 9, further comprising: a decoding unit configured to decode a merge index for the divided area 1 and to estimate merge candidates for the divided area 1 when the maximum number of merge candidates for the block to be decoded is two or less.

11. The decoding unit is A case in which there are two or more types of intra prediction modes applicable to the geometric partition mode of the block to be decoded, When the value of the sixth syntax is 1, an eighth syntax for controlling a type of an intra prediction mode of the division region 0 is decoded to specify the intra prediction mode of the division region 0, If the value of the sixth syntax is not 1, When a value of a fourth internal parameter indicating a maximum number of merging candidates for the current block is greater than 1, a merging index for the division region 0 is decoded to identify merging candidates for the division region 0; 9. The image decoding device according to claim 8 , wherein when the value of the fourth internal parameter is equal to or less than 1, a merge index for the division area 0 is not decoded, and a merge candidate for the division area 0 is identified.

12. The decoding unit is A case in which there are two or more types of intra prediction modes applicable to the geometric partition mode of the block to be decoded, When the value of the sixth syntax is 1, When the value of the seventh syntax is 1 and the value of the third internal parameter is greater than 2, a ninth syntax for controlling a type of an intra prediction mode of the divided region 1 is decoded to identify the intra prediction mode of the divided region 1; When the third internal parameter is equal to or less than 2, the ninth syntax is not decoded, and an intra prediction mode of the divided region 1 is identified; When the value of the seventh syntax element is not 1, a merge index for the divided region 1 is decoded to identify a merge candidate for the divided region 1; If the value of the sixth syntax is not 1, When the value of the seventh syntax is 1, the ninth syntax is decoded to specify an intra prediction mode of the divided region 1; If the value of the seventh syntax is not 1, When a value of a fourth internal parameter indicating a maximum number of merging candidates for a block to be decoded is greater than 2, a merging index for the divided region 1 is decoded to identify merging candidates for the divided region 1; 12. The image decoding device according to claim 8, wherein when the value of the fourth internal parameter is 2 or less, a merge index for the divided area 1 is not decoded, and a merge candidate for the divided area 1 is identified.

13. 1. An image decoding method, comprising: Decoding a first syntax for controlling whether or not a geometric partitioning mode is applicable to a sequence to be decoded; An image decoding method comprising: a step of controlling whether or not to decode a second syntax that controls whether or not to apply an intra-prediction mode to the geometric partitioning mode of the sequence to be decoded depending on the value of the first syntax.

14. A program for causing a computer to function as an image decoding device, The image decoding device comprises: A program comprising a decoding unit configured to decode a first syntax that controls whether or not a geometric partitioning mode of a sequence to be decoded is applicable, and to control whether or not to decode a second syntax that controls whether or not an intra prediction mode is applicable to the geometric partitioning mode of the sequence to be decoded, depending on the value of the first syntax.

Citation Information

Patent Citations

  • ITTH.266/