Image decoding device, image decoding method, and program

By controlling the application of geometric partitioning and intra prediction modes in the image decoding process, the image decoding apparatus improves coding performance by optimizing GPM usage.

JP2025100672AActive Publication Date: 2025-07-03KDDI CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2025064651
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-04-09
Publication Date
2025-07-03
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 apparatus that decodes a first syntax to control the application of a geometric partitioning mode and a second syntax to control the application of an intra prediction mode, allowing for more flexible and efficient use of GPM in decoding.

Benefits of technology

This approach enables improved coding performance by appropriately specifying the applicability of GPM and the type of prediction mode for each divided region, enhancing encoding efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025100672000001_ABST
    Figure 2025100672000001_ABST
Patent Text Reader

Abstract

To expect a further improvement in encoding performance in a GPM.SOLUTION: An image decoding device 200 according to the present invention comprises a decoding unit 210 configured to decode a first syntax that controls whether or not a geometric partitioning mode in a decoding target sequence can be applied, and according to the value of the first syntax, control the presence or absence of decoding of a second syntax that controls whether or not an intra-prediction mode can be applied to a geometric partitioning mode in a decoding target picture.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 apparatus, an image decoding method, and a program.

Background Art

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

[0003] GPM divides a rectangular block diagonally into two parts and performs motion compensation on each part. Specifically, in GPM, the two divided regions are motion-compensated by the motion vectors in the merge mode and synthesized by weighted averaging. As diagonal division patterns, 64 patterns are prepared according to the angle and position.

Prior Art Documents

Non-Patent Documents

[0004]

Non-Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0005] However, since GPM disclosed in Non-Patent Document 1 is limited to the merge mode, there is a problem that there is room for improvement in coding performance. Therefore, the present invention has been made in view of the above problems, and by defining a signaling method when adding an intra prediction mode to GPM, it is possible to appropriately specify the applicability of GPM in the decoding target block and the type of prediction mode for each divided region when GPM is applied, and an object of the present invention is to provide an image decoding apparatus, an image decoding method, and a program that can expect further improvement in coding performance by GPM.

Means for Solving the Problems

[0006] A first feature of the present invention is an image decoding apparatus, which decodes a first syntax for controlling whether or not to apply a geometric partitioning mode of a sequence to be decoded, and according to a value of the first syntax, controls whether or not to decode a second syntax for controlling whether or not to apply an intra prediction mode to a geometric partitioning mode of a picture to be decoded, and is characterized by including a decoding unit configured as such.

[0007] A second feature of the present invention is an image decoding method, which includes a step of decoding a first syntax for controlling whether or not to apply a geometric partitioning mode of a sequence to be decoded, and a step of controlling whether or not to decode a second syntax for controlling whether or not to apply an intra prediction mode to a geometric partitioning mode of a picture to be decoded according to a value of the first syntax, and is characterized by having these steps.

[0008] A third feature of the present invention is a program for causing a computer to function as an image decoding apparatus, where the image decoding apparatus decodes a first syntax for controlling whether or not to apply a geometric partitioning mode of a sequence to be decoded, and according to a value of the first syntax, controls whether or not to decode a second syntax for controlling whether or not to apply an intra prediction mode to a geometric partitioning mode of a picture to be decoded, and is characterized by including a decoding unit configured as such.

Advantages of the Invention

[0009] According to the present invention, by defining a signaling method when adding an intra prediction mode to GPM, the applicability of GPM in a block to be decoded and the type of prediction mode for each divided region when GPM is applied can be appropriately specified, and thus an image decoding apparatus, an image decoding method, and a program capable of expecting further improvement in coding performance by GPM can be provided.

Brief Description of the Drawings

[0010]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Figure 14

Figure 15

Figure 16

Embodiments for Carrying Out the Invention

[0011] Hereinafter, 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, etc., 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> Hereinafter, with reference to FIGS. 1 to 16, the image processing system 10 according to the first embodiment of the present invention will be described. FIG. 1 is a diagram showing the image processing system 10 according to the present embodiment.

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

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

[0015] Here, such 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 stored in a storage medium and then provided from the image encoding device 100 to the image decoding device 200.

[0016] (Image encoding device 100) Hereinafter, with reference to FIG. 2, the image encoding device 100 according to the present embodiment will be described. FIG. 2 is a diagram showing an example of the functional blocks of the image encoding device 100 according to the present 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 transform / quantization unit 131, an inverse transform / 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 the reference frame by comparing the frame to be encoded (target frame) with the reference frames stored in the frame buffer 160, and to determine a motion vector (MV: Motion Vector) for the identified reference block. Here, the reference frame is a frame different from the target frame.

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

[0021] Also, 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 FIG. 2, the inter prediction unit 111 is configured to output information related to 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 reference blocks included in the target frame and generate an intra prediction signal for each target block based on the identified reference blocks. Here, the reference block is a block referred to for the target block. For example, the reference block is a block adjacent to the target block.

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

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

[0027] The synthesis unit 113 synthesizes the inter prediction signal input from the inter prediction unit 111 or / and the intra prediction signal input from the intra prediction unit 112 using preset weight coefficients, and outputs the synthesized prediction signal (hereinafter collectively referred to as the prediction signal) to the subtractor 121 and the adder 122.

[0028] Here, regarding the synthesis process of the inter prediction signal or / and the intra prediction signal by the synthesis unit 113, since the same configuration as in Non-Patent Document 1 can also be adopted in this embodiment, the description is 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 transform 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 adds the prediction signal output from the synthesis unit 113 to the prediction residual signal output from the inverse transform and inverse quantization unit 132 to generate a decoded signal before filter processing, and is configured to output such a decoded signal before filter processing to the intra prediction unit 112 and the in-loop filter processing unit 150.

[0031] Here, the decoded signal before filter processing constitutes a reference block used in the intra prediction unit 112.

[0032] The transform and quantization unit 131 is configured to perform transform processing on the prediction residual signal and obtain coefficient level values. Further, the transform and quantization unit 131 may be configured to perform quantization of the coefficient level values.

[0033] Here, the transform processing is processing for converting the prediction residual signal into a frequency component signal. As such transform processing, a basis pattern (transformation matrix) corresponding to the discrete cosine transform (hereinafter referred to as DCT) may be used, or a basis pattern (transformation matrix) corresponding to the discrete sine transform (hereinafter referred to as DST) may be used.

[0034] Also, as the transform processing, MTS (Multiple Transform Selection) that enables selection of a transform basis suitable for the bias of the coefficients of the prediction residual signal from a plurality of transform bases disclosed in Non-Patent Document 1 for each of the horizontal and vertical directions, or LFNST (Low Frequecny Non-Separable Transform) that improves the coding performance by further concentrating the transform coefficients after the first-order transform in the low-frequency region may be used.

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

[0036] Here, the inverse transformation process and inverse quantization are performed in a procedure opposite 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 value output from the transformation and quantization unit 131 and output encoded data.

[0038] Here, for example, the encoding is entropy encoding that assigns codes of different lengths based on the occurrence probability of the coefficient level value.

[0039] Also, the encoding unit 140 is configured to encode control data used in the decoding process in addition to the coefficient level value.

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

[0041] Also, the control data may include information (flags and indexes) necessary for controlling the inverse transformation and inverse quantization process of the inverse transformation and inverse quantization unit 220, 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 or / and intra-prediction signal by the synthesis unit 243, and the filter process of the in-loop filter processing unit 250 in the image decoding apparatus 200 described later.

[0042] Note that in Non-Patent Document 1, these control data are referred to as syntax, and its definition is referred to as 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), a slice header (SH), etc., which will be described later.

[0044] The in-loop filter processing unit 150 is configured to perform filter processing on the pre-filtering decoded signal output from the adder 122 and output the post-filtering decoded signal to the frame buffer 160.

[0045] Here, for example, the filter processing is deblocking filter processing for reducing distortion occurring at the boundary of a block (encoded block, prediction block, or transform block), or adaptive loop filter processing for switching the filter based on filter coefficients, filter selection information transmitted from the image encoding apparatus 100, local properties of the pattern of the image, and the like.

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

[0047] Here, the post-filtering decoded signal constitutes the reference frames used by the inter prediction unit 111.

[0048] (Image decoding apparatus 200) Hereinafter, with reference to FIG. 3, the image decoding apparatus 200 according to the present embodiment will be described. FIG. 3 is a diagram showing an example of the functional blocks of the image decoding apparatus 200 according to the present embodiment.

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

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

[0051] Here, the decoding is, for example, entropy decoding in a procedure reverse to the entropy encoding performed by the encoding unit 140.

[0052] Also, the decoding unit 210 may be configured to acquire control data by decoding the encoded data.

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

[0054] Also, the control data may include information (flags and indexes) necessary for controlling the inverse transform and inverse quantization processing of the inverse transform and inverse quantization unit 220, the prediction pixel generation processing of the inter prediction unit 241 and the intra prediction unit 242, and the filter processing of the in-loop filter processing unit 250.

[0055] Also, the control data may include header information such as the above-described sequence parameter set (SPS), picture parameter set (PPS), picture header (PH), and slice header (SH).

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

[0057] Here, the inverse transform processing and inverse quantization are performed in a procedure reverse to the transform processing and quantization performed by the transform and quantization unit 131.

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

[0059] Here, the pre-filtering decoded signal constitutes a reference block used in 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 the motion vector decoded from the encoded data and the reference signal included in the 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 the 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] Similar to the synthesis unit 113, the synthesis unit 243 synthesizes the inter prediction signal input from the inter prediction unit 111 or / and the intra prediction signal input from the intra prediction unit 112 using a preset weight coefficient, and outputs 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 transformation / inverse quantization unit 220 to generate a pre-filtering decoded signal, and output such a pre-filtering decoded signal to the in-loop filter processing unit 250.

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

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

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

[0069] Here, the post-filtering decoded signal constitutes the reference frames used in the inter prediction unit 241.

[0070] (Geometric partitioning mode) Hereinafter, with reference to FIGS. 4 and 5, the application of the geometric partitioning mode disclosed in Non-Patent Document 1 related to the decoding unit 210, the inter prediction unit 241, and the intra prediction unit 242 and the first geometric partitioning mode (GPM) according to the present embodiment to the intra prediction mode will be described.

[0071] FIG. 4 shows an example of a case where a rectangular decoding target block is divided into two geometric shape divided regions 0 and 1 by a division line L1 of the geometric partitioning mode according to the geometric partitioning mode disclosed in Non-Patent Document 1.

[0072] Here, 64 patterns of the division line L1 of the geometric division mode disclosed in Non-Patent Document 1 are prepared according to the angle and position.

[0073] Also, in the GPM according to Non-Patent Document 1, for each of the division region 0 and the division region 1, a normal merge mode which is one type of inter prediction is applied to generate inter prediction (motion compensation) pixels.

[0074] Specifically, in such GPM, a merge candidate list disclosed in Non-Patent Document 1 is constructed, and based on such merge candidate list and the merge index transmitted from the image encoding apparatus 100, the motion vector and the reference frame of each division region 0 / 1 are derived to generate a reference block, that is, an inter prediction (or motion compensation) block, and finally the inter prediction pixels of each division region 0 / 1 are weighted and averaged and synthesized by a preset weight.

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

[0076] FIG. 5 shows an example of the application of the intra prediction mode to the GPM according to this embodiment.

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

[0078] In contrast, the first GPM according to this embodiment proposes an improvement in the encoding performance by applying the intra prediction mode in addition to the normal merge mode to the prediction pixel generation of the GPM.

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

[0080] Also, in the second GPM according to this embodiment, a proposal is made regarding the applicability of the GPM with additional application of the intra prediction mode in the block to be decoded and the method for specifying the prediction mode type in each divided region 0 / 1 when the GPM is applied.

[0081] As a result, the GPM with additional application of the intra prediction mode is appropriately applied to the block to be decoded, and by specifying the optimal prediction mode, it is possible to further improve the encoding performance.

[0082] Hereinafter, regarding the applicability of the GPM in the second GPM according to this embodiment and the method for specifying the prediction mode type in each divided region 0 / 1 when the GPM is applied (or the signaling method generally called), two viewpoints of the specifying method based on the encoded data (encoded bit stream) itself decoded by the decoding unit 210 and the control data (syntax) included in the encoded data in the decoding unit 210 will be described.

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

[0084] As shown in FIG. 6, the encoded data may include SPS 211 at the head of the stream. SPS 211 is a set of control data in units of sequences (sets of pictures). Each SPS 211 includes at least SPS id information for identifying each individual when there are a plurality of SPSs.

[0085] As shown in FIG. 6, the encoded data may include a PPS 212 following the SPS 211. Here, the PPS 212 is a set of control data in units of pictures (sets of slices). Each PPS 212 includes at least PPS id information for identifying each individual when there are multiple PPS 212s. Further, it includes at least SPS id information for specifying the SPS 211 corresponding to each PPS 212.

[0086] As shown in FIG. 6, the encoded data may include a picture header 213 following the PPS 212. The picture header 213 is also a set of control data in units of pictures (sets of slices). The PPS 212 can be shared by a single PPS 212 for multiple pictures. On the other hand, the picture header 213 is necessarily 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 set of control data in units of slices. The slice header 214A can also include the information of the above-mentioned picture header 213 as part of the slice header.

[0088] As shown in FIG. 6, the encoded data may include slice data 215A following the slice header 214A. The slice data 215A may include the above-mentioned coefficient level values, size data, etc.

[0089] As described above, each slice data 215A / 215B corresponds to one slice header, picture header, PPS, and SPS respectively. As described above, in the picture header 213, the PPS id is used to specify which PPS 212 to refer to, and further, the SPS id is used to specify which SPS 211 such a PPS 212 refers to. Therefore, a common SPS 211 and PPS 212 can be used for multiple slice data 215A / 215B.

[0090] In other words, SPS211 and PPS212 do not necessarily need to be transmitted for each picture and each slice. For example, as shown in FIG. 6, a stream configuration can be adopted in which SPS211 and PPS212 are not encoded immediately before slice headers 214A / 214B.

[0091] Note that the configuration shown in FIG. 6 is merely an example. As long as the control data specified by slice headers 214A / 214B, picture header 213, PPS212, and SPS211 corresponds to each slice data 215A / 215B, other elements may be added as components of the stream. Similarly, the stream may be formatted into a configuration different from that in FIG. 6 during transmission.

[0092] (Method for Specifying Applicability of GPM at Sequence Unit) Hereinafter, with reference to FIGS. 7 and 8, a method for specifying the applicability of GPM based on control data at the decoding target sequence level by the decoding unit 210 and the applicability of the intra prediction mode for GPM will be described.

[0093] FIG. 7 is a flowchart showing an example of a method for the decoding unit 210 to specify the applicability of GPM and the applicability of the intra prediction mode for GPM based on a GPM-related flag at the SPS unit.

[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.

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

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

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

[0098] Also, when the sps_gpm_enabled_flag does not exist, the decoding unit 210 may assume the value of the sps_gpm_enabled_flag to be 0.

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

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

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

[0102] Note that when the sps_gpm_intra_enabled_flag does not exist, the decoding unit 210 may presume the value of the sps_gpm_intra_enabled_flag to be 0.

[0103] The reason why the decoding unit 210 does not decode the sps_gpm_intra_enabled_flag in step S200-HLS-03 is that since it has been determined in the previous stage that the value of the sps_gpm_enabled_flag is 0, that is, GPM is not applicable to the sequence to be decoded, there is no meaning in decoding the sps_gpm_intra_enabled_flag. By adopting this method, unnecessary decoding (encoding) of the sps_gpm_intra_enabled_flag can be avoided.

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

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

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

[0107] In step S200-HLS-06, the decoding unit 210 ends this process without decoding sps_max_num_gpm_intra_cand.

[0108] In step S200-HLS-06, since it can be determined by the sps_gpm_intra_enabled_flag in step S200-HLS-05 that the 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 applied to GPM. In addition, 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 as 0.

[0110] The types of intra prediction modes applied to GPM are composed of intra prediction modes corresponding to the dividing line (for example, the dividing line L1 shown in FIG. 4) in the first GPM.

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

[0112] In addition, when there are two or more Angular modes parallel or perpendicular to the dividing line L1 (for example, when the dividing line L1 has the same angle as the diagonal of a square block), the types of intra prediction modes applied to GPM may be limited to either one of them.

[0113] For example, from the perspective of the block to be decoded, it is limited by the processing order of adjacent decoded blocks, that is, for the block to be decoded, a method is adopted to limit the direction of obtaining reference pixels from adjacent blocks on the left or above rather than adjacent blocks on the right or below, so that the dependency relationship of the decoding process between blocks during the generation of predicted pixels can be reduced.

[0114] In addition, the types of intra prediction modes applicable to GPM may include, in addition to the Angular mode, intra prediction modes that do not depend on the dividing line L1, such as the Planar mode or / and the DC mode, etc.

[0115] Note that in the above, regarding the syntax for controlling the applicability of intra prediction modes to the geometric partitioning mode and the syntax for defining the maximum number of candidate intra prediction mode types applicable to GPM, it has been explained that the necessity of decoding is determined at the sequence level. However, for more fine-grained control, for example, decoding may be performed at the level of PPS, picture header, or slice header.

[0116] However, when the control unit is made finer, the amount of code of the syntax to be decoded (encoded) increases. Therefore, according to the designer's intention, the trade-off between the improvement of prediction performance due to the refinement of the control unit and the increase in the amount of code of the syntax may be evaluated and designed.

[0117] (Method for determining the applicability of GPM in block units) Hereinafter, with reference to FIG. 9, the applicability of GPM to the block to be decoded by the decoding unit 210 will be described. FIG. 9 is a flowchart showing an example of a method for determining the applicability of GPM to the block to be decoded by the decoding unit 210.

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

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

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

[0121] Here, GpmFlag is an internal parameter (a first internal parameter or a second internal parameter) that specifies (controls) the application of GPM 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 valid). When the value of GpmFlag is 0, it indicates that GPM is not applied to the block to be decoded (GPM is invalid).

[0122] That is, it can be said that GpmFlag is an internal parameter (a first internal parameter) that controls the application of the geometric partitioning mode of the block to be decoded according to the predetermined condition 1.

[0123] Since the predetermined condition 1 is a condition for determining the application of GPM when the intra prediction mode is not applied, the same condition disclosed in Non-Patent Document 1 may be used. Specifically, it is that all of the following conditions are satisfied. · The value of sps_gpm_enabled_flag is 1. · The 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 8 times the height of the block to be decoded. · The height of the block to be decoded is less than 8 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 (the fourth syntax) indicating the type of the slice to be decoded. In Non-Patent Document 1, since two different merge vectors are used for generating predicted pixels in each divided region for the GPM application block, it is applicable only to the B slice where it is obvious that there are two motion vectors for the whole slice (conversely, it means that GPM cannot be applied to the P slice where it is obvious that there is only one motion vector for the whole slice).

[0125] Here, regarding the various conditions related to general_merge_flag, regular_merge_flag, merge_subblock_flag, and clip_flag, since the same configuration as in Non-Patent Document 1 can be adopted, the description is omitted.

[0126] In addition, the condition that the width and height of the block to be decoded are 8 pixels or more aims to reduce 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 of the block size of a unidirectional prediction block having one motion vector is set to 4×8 / 8×4 pixels, and the lower limit of the block size of a bidirectional prediction block having two motion vectors is set to 8×8 pixels. Therefore, the same lower limit is considered as an application condition for the GPM application block which is a type of bidirectional prediction block.

[0127] The condition that the width and height of the block to be decoded are less than 128 pixels is restricted from the viewpoint of reducing the number of times of the temporary encoding process for evaluating the applicability of GPM in the image encoding apparatus 100, and thus making GPM inapplicable to blocks with a low GPM application rate in order to reduce the encoding processing amount.

[0128] 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 is restricted from the viewpoint of reducing the number of times of the temporary encoding process for evaluating the applicability of GPM in the image encoding apparatus 100, and thus making GPM inapplicable to blocks with a low GPM application rate in order to reduce the encoding processing amount.

[0129] Regarding the above step S200-03, in step S200-02, the decoding unit 210 determines whether a predetermined condition 2 (or a second predetermined condition) is satisfied. If the predetermined condition 2 is satisfied, the process proceeds to step S200-04. 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] That is, it can be said that GpmFlag is an internal parameter (second internal parameter) that controls the applicability of the geometric division mode of the block to be decoded according to the predetermined condition 2.

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

[0132] Here, since the predetermined condition 2 is a condition for determining the presence or absence of application of GPM to which the intra prediction mode is applied, the following conditions included in the predetermined condition 1 may be abolished. · sh_slice_type is B. · The width of the decoding target block is 8 pixels or more. · The height of the decoding target block is 8 pixels or more. · The width of the decoding target block is less than 8 times the height of the decoding target block. · The height of the decoding target block is less than 8 times the width of the decoding target block.

[0133] First, regarding the abolition of the condition related to sh_slice_type, due to the intra prediction mode for GPM, GPM can also be applied to I slices and P slices other than B slices. As a result, the number of GPM application blocks increases, and an improvement in coding performance can be expected.

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

[0135] Second, regarding the abolition of the condition that the width and height of the block to be decoded are 8 pixels or more, when the intra prediction mode is applied to at least one of the divided regions of the GPM, the lower limit value (8×8 pixels) of the block size set in consideration of the worst-case memory bandwidth of the dual-prediction block can be relaxed to the lower limit value (4×8 / 8×4 pixels) of the block size of the single-prediction block. As a result, for small-size blocks for which GPM was not applicable in Non-Patent Document 1, GPM can be applied, so the number of blocks to which GPM is applied increases, and an improvement in coding performance can be expected.

[0136] Note that although it is assumed that the lower limit values of the block sizes of the single-prediction block and the dual-prediction block themselves may be relaxed in the future due to an improvement in the memory bandwidth of the hardware decoder, even in such a case, as described above, GPM by applying the intra prediction mode can relax the block size limit (lower limit value) considering the worst-case memory bandwidth of the dual-prediction block in the conventional GPM to the block size limit (lower limit value) in single prediction.

[0137] Third, regarding the abolition of the condition regarding the aspect ratio of the block to be decoded (= abolition 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 it is relaxed only for small-size blocks with relatively high prediction performance of the intra prediction mode by introducing the intra prediction mode into the GPM, the number of blocks to which GPM is applied increases, and an improvement in coding performance can be expected.

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

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

[0140] (Determination method of GPM division mode (type of division line L1) in block units) Hereinafter, with reference to FIG. 10, a method for determining the GPM division mode (type of division line L1) in block units by the decoding unit 210 will be described. FIG. 10 is a flowchart showing an example of a method for determining the GPM division mode (type of division line L1) in block units of a decoding target block by the decoding unit 210.

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

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

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

[0144] Here, the gpm_partition_idx is a syntax (the fifth syntax) that specifies the division shape (direction of the division line L1) of the geometric division mode of the decoding target block.

[0145] In Non-Patent Document 1, since the values of 0 to 63 of this gpm_partition_idx correspond to the directions of the above-mentioned 64 types of division lines L1, the decoding unit 210 can specify the division shape (the direction of the division line L1) of the geometric division mode of the block to be decoded by specifying (estimating) the value of gpm_partition_idx.

[0146] Note that in step S200-10, the decoding unit 210 ends this process without decoding gpm_partition_idx included in the control data. However, since it has been determined in the determination of GpmFlag in step S200-08 that GPM is not applied to the block to be decoded, there is an intention to avoid unnecessary decoding of gpm_partition_idx (reduce the amount of transmission code).

[0147] (Method for determining whether to apply the intra prediction mode in division area 0) Hereinafter, with reference to FIG. 11, a method for determining whether to apply the intra prediction mode in division area 0 by the decoding unit 210 will be described. FIG. 11 is a flowchart showing a method for determining whether to apply the intra prediction mode in division area 0 by the decoding unit 210.

[0148] As shown in FIG. 11, in step S200-11, the decoding unit 210 determines whether the value of the above-mentioned GpmFlag is 1 and whether sps_gpm_intra_enabled_flag is 1. When such conditions are satisfied, the decoding unit 210 proceeds to step S200-12, and when such conditions are not satisfied, the decoding unit 210 proceeds to step S200-13.

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

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

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

[0152] When the value of gpm_r0_intra_flag is 1, the decoding unit 210 can specify that the intra prediction mode is applied (valid) to the divided region 0, and when the value of gpm_r0_intra_flag is 0, the decoding unit 210 can specify that the intra prediction mode is not applied (invalid) to the divided region 0.

[0153] Note that when gpm_r0_intra_flag does not exist, the decoding unit 210 may estimate the value of gpm_r0_intra_flag as 0.

[0154] In step S200-13, the decoding unit 210 ends this process without decoding gpm_r0_intra_flag included in the control data. However, since it has been determined in the determination 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 the divided region 0 by GPM, there is an aim to avoid unnecessary decoding of gpm_r0_intra_flag (reduce the amount of transmission code).

[0155] (Method for determining whether the intra prediction mode is applied in the divided region 1) Hereinafter, with reference to FIG. 12, a method for determining whether the intra prediction mode is applied in the divided region 1 by the decoding unit 210 will be described. FIG. 12 is a flowchart showing a method for determining whether the intra prediction mode is applied in the divided region 1 by the decoding unit 210.

[0156] As shown in FIG. 12, in step S200-11, the decoding unit 210 determines whether the value of the above-mentioned GpmFlag is 1 and whether sps_gpm_intra_enabled_flag is 1. When such conditions are satisfied, the decoding unit 210 proceeds to step S200-14; when such conditions are not satisfied, the decoding unit 210 proceeds to step S200-15.

[0157] In step S200-14, the decoding unit 210 determines whether gpm_r0_intra_flag is 1 and whether MaxNumIntraCand is greater than 1. When such conditions are satisfied, the decoding unit 210 proceeds to step S200-16; when such conditions are not satisfied, the decoding unit 210 proceeds to step S200-17.

[0158] Here, MaxNumIntraCand is an internal parameter (the third internal parameter) representing the maximum number of intra type candidates applicable to the geometric division mode.

[0159] Such a maximum number may be a fixed value calculated from the maximum number of intra type candidates applicable to the geometric division mode and preset for both the image encoding device 100 and the image decoding device 200, or a variable value may be dynamically set in the decoding target sequence unit 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, the decoding unit 210 ends this process without decoding gpm_r1_intra_flag included in the control data. In step S200-16, the decoding unit 210 decodes gpm_r1_intra_flag included in the control data and ends this process. In step S200-17, the decoding unit 210 ends this process without decoding gpm_r1_intra_flag included in the control data.

[0161] Here, gpm_r1_intra_flag is a syntax (seventh syntax) for specifying whether the prediction mode of division region 1 into which the geometric division mode of the block to be decoded is divided is an intra prediction mode or not.

[0162] When the value of gpm_r1_intra_flag is 1, the decoding unit 210 can specify that the intra prediction mode is applied (valid) to division region 1, and when the value of gpm_r1_intra_flag is 0, the decoding unit 210 can specify that the intra prediction mode is not applied (invalid) to division region 1.

[0163] In addition, when gpm_r1_intra_flag does not exist, the decoding unit 210 may estimate the value of gpm_r1_intra_flag as 0.

[0164] In steps S200-15 and S200-17, the decoding unit 210 ends 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 division region 1 by GPM, there is an aim to avoid unnecessary decoding of gpm_r1_intra_flag (reduce the amount of transmission code).

[0165] (Method for Specifying Prediction Mode in Division Region 0 When There Is One Type of GPM-Applied Intra Prediction Mode) Hereinafter, with reference to FIG. 13, a method for specifying the prediction mode in division region 0 when there is one type of GPM-applied intra prediction mode by the decoding unit 210 will be described. FIG. 13 is a flowchart showing an example of a method for specifying the prediction mode in division region 0 when there is one type of GPM-applied intra prediction mode by the decoding unit 210.

[0166] As shown in FIG. 13, in step SR0-01, the decoding unit 210 determines whether the value of the above-described gpm_r0_intra_flag is 1. If the decoding unit 210 satisfies such a condition, it proceeds to step SR0-02, and if such a condition is not satisfied, it 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 GPM, and ends this process.

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

[0169] Here, MaxNumMergeCand is an internal parameter (the fourth internal parameter) representing the maximum number of merge candidates in the normal merge mode. Since such a maximum number can adopt the setting method disclosed in Non-Patent Document 1 with the same configuration in this embodiment, detailed description thereof is omitted.

[0170] In step SR0-04, the decoding unit 210 decodes merge_gpm_idx0, specifies the merge candidate for the divided region 0, and ends this process.

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

[0172] Here, merge_gpm_idx0 is an index (merge index) for specifying the merge candidate for the divided region 0.

[0173] Note that when merge_gpm_idx0 does not exist, the decoding unit 210 may estimate the value of merge_gpm_idx0 as 0.

[0174] Here, in step SR0-05, the decoding unit 210 ends this process without decoding merge_gpm_idx0. However, since it can be determined that MaxNumMergeCand is 1 in step SR0-03, that is, it can be determined that the merge candidate for the division area 0 is 0, there is an intention to avoid unnecessary decoding of merge_gpm_idx0 (reduce the amount of transmission code).

[0175] (Method for specifying prediction mode in division area 1 when there is one type of GPM application intra prediction mode) Hereinafter, with reference to FIG. 14, a method for specifying the prediction mode in division area 1 when there is one type of GPM application intra prediction mode by the decoding unit 210 will be described. FIG. 14 is a flowchart showing an example of a method for specifying the prediction mode in division area 1 when there is one type of GPM application intra prediction mode by the decoding unit 210.

[0176] As shown in FIG. 14, in step SR1-01, the decoding unit 210 determines whether the value of the above-described gpm_r0_intra_flag is 1. If such a condition is satisfied, the decoding unit 210 proceeds to step SR1-02, and if such a 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, specifies the merge candidate for the division area 1, and ends this process.

[0178] In step SR1-03, the decoding unit 210 determines whether the value of gpm_r1_intra_flag is 1. If such a condition is satisfied, the decoding unit 210 proceeds to step SR1-04, and if such a 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 area 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 determines whether the value of MaxNumMergeCand is greater than 2. When such a condition is satisfied, the decoding unit 210 proceeds to step SR1-06, and when such a 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, specifies the merge candidate for the divided area 1, and ends this process.

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

[0183] Here, merge_gpm_idx1 is an index (merge index) for specifying the merge candidate for the divided area 1.

[0184] Note that when merge_gpm_idx1 does not exist, the decoding unit 210 may estimate the value of merge_gpm_idx1 as 0.

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

[0186] (Method for specifying prediction mode in division area 0 when there are two or more GPM-applied intra prediction modes) Hereinafter, with reference to FIGS. 13 and 15, a method for specifying a prediction mode in division area 0 when there are two or more GPM-applied intra prediction modes by the decoding unit 210 will be described. FIG. 15 is a flowchart showing an example of a method for specifying a prediction mode in division area 0 when there are two or more GPM-applied intra prediction modes by the decoding unit 210.

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

[0188] In the flowchart shown in FIG. 13, on the premise that there is one type of GPM-applied intra prediction mode, in step SR0-02, if the decoding unit 210 can specify that the prediction mode of division area 0 is the intra prediction mode in step SR001, it can be uniquely specified that the type of the intra prediction mode is one type of GPM-applied intra prediction mode.

[0189] On the other hand, in the flowchart shown in FIG. 15, on the premise that there are two or more GPM-applied intra prediction modes, in step SR0-02A, even if the decoding unit 210 can specify that the prediction mode of division area 0 is the intra prediction mode in step SR0-01, without decoding intra_gpm_idx0, the type of the intra prediction mode of division area 0 cannot be specified. Therefore, it is configured to decode intra_gpm_idx0.

[0190] Here, intra_gpm_idx0 is a syntax (eighth syntax) for specifying (controlling) the type of the intra prediction mode in division area 0.

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

[0192] Also, the type of intra prediction mode corresponding to the value of intra_gpm_idx0 may be set from the selection rate of the intra prediction mode in GPM.

[0193] For example, when there are two types of intra prediction modes, namely the parallel Angular mode with respect to the dividing line L1 of GPM and the perpendicular angular mode with respect to the dividing line L1 of GPM, the parallel angular mode with a high selection rate may be set to 0 of the value of intra_gpm_idx0, and the perpendicular angular mode with a low selection rate may be set to 1 of the value of intra_gpm_idx0.

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

[0195] Note that the above selection rate is referred to the value confirmed by the simulation experiment using the reference software corresponding to the technology disclosed in Non-Patent Document 1 implemented by the inventors, and the designer may change it according to the software used, the simulation conditions, or the target video sequence.

[0196] (Method for specifying the prediction mode in division region 1 when there are two or more GPM-applied intra prediction modes) Hereinafter, with reference to FIGS. 14 and 16, a method for specifying a prediction mode in the divided area 1 when there are two or more GPM application intra prediction modes by the decoding unit 210 will be described. FIG. 16 is a flowchart showing an example of a method for specifying a prediction mode in the divided area 1 when there are two or more GPM application intra prediction modes by the decoding unit 210.

[0197] Here, the difference between the flowchart shown in FIG. 16 and the flowchart shown in FIG. 14 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 FIG. 14, on the premise that there is one type of GPM application intra prediction mode, in step SR1-02, if the decoding unit 210 can specify that the prediction mode of the divided area 0 is the intra prediction mode in step SR1-01, it can be specified that the intra prediction mode is clearly not applied to the divided area 1. Therefore, the merge candidate is specified by merge_gpm_idx1.

[0199] On the other hand, in the flowchart shown in FIG. 16, on the premise that there are two or more types of GPM application intra prediction modes, in step SR1-01, even if the decoding unit 210 can specify that the prediction mode of the divided area 0 is the intra prediction mode, in step SR1-07, it is necessary to further determine whether the value of gpm_r1_intra_flag is 1. Otherwise, it cannot be specified whether the prediction mode of the divided area 1 is the intra prediction mode.

[0200] Therefore, in step SR1-07, the decoding unit 210 determines whether the value of gpm_r1_intra_flag is 1. If the value of gpm_r1_intra_flag is 1, it proceeds to step SR1-08. If the value of gpm_r1_intra_flag is 0, it proceeds to step SR1-09.

[0201] In step SR1-09, the decoding unit 210 decodes merge_gpm_idx1, identifies a merge candidate for partition area 1, and ends this process.

[0202] In step SR1-08, the decoding unit 210 determines whether the value of MaxNumMergeCand is greater than 2. If this condition is satisfied, it proceeds to step SR1-10; if this condition is not satisfied, it proceeds to step SR1-11.

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

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

[0205] In step SR1-11, the decoding unit 210 identifies the type of intra prediction mode for partition area 1 without decoding intra_gpm_idx1. This is because it can be determined in step SR1-08 that the value of MaxNumMergeCand is 2, that is, the merge candidate for partition area 1 is a merge candidate different from the merge candidate for partition area 0 identified based on merge_gpm_idx0 among the two merge candidates. Therefore, there is an intention to avoid unnecessary decoding of merge_gpm_idx1 (reduce the amount of transmission code).

[0206] Here, intra_gpm_idx1 is a syntax (the ninth syntax) for identifying the type of intra prediction mode in partition area 1.

[0207] The variation of the value of intra_gpm_idx1 may be set according to the number of types of intra prediction modes applicable to GPM.

[0208] Also, 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, when there are two types of intra prediction modes, namely the parallel Angular mode with respect to the division line L1 of GPM and the vertical angular mode with respect to the division line L1 of GPM, the parallel angular mode with a higher selection rate may be set to 0 of the value of intra_gpm_idx1, and the vertical angular mode with a lower selection rate may be set to 1 of the value of intra_gpm_idx1.

[0210] As another example, when there are three types of intra prediction modes, namely the parallel angular mode with respect to the division line L1 of GPM, the vertical angular mode with respect to the division line L1 of GPM, and the Planar mode, the parallel angular mode may be set to 0 of the value of intra_gpm_idx1, the Planar mode may be set to 1 of the value of intra_gpm_idx1, and the vertical angular mode may be set to 2 of the value of intra_gpm_idx1 in descending order of the selection rate.

[0211] Note that for the above selection rate, the values confirmed by the simulation experiment using the reference software corresponding to the technology disclosed in Non-Patent Document 1 implemented by the inventors are referred to, and the designer may change them depending on the software used, the simulation conditions, or the target video sequence.

[0212] The decoding unit 210 sends the following information in the decoding target sequence and the decoding target block specified by the method described in FIGS. 7 to 16 above to the inter prediction unit 241, the intra prediction unit 242, and the synthesis unit 243, so that in the image decoding apparatus 200, the applicability of GPM in the decoding target block and the type of prediction mode for each division region at the time of GPM application can be appropriately specified, and further improvement in coding performance by GPM can be expected. · Information regarding the applicability of GPM at the sequence level · Information on whether GPM is applied in block units · Information on the GPM division mode (type of division line L1) in block units · Information on whether the intra prediction mode is applied in division area 0 · Determination method for whether the intra prediction mode is applied in division area 1 · Method for specifying the prediction mode in division area 0 when there is one type of GPM-applied intra prediction mode · Method for specifying the prediction mode in division area 1 when there is one type of GPM-applied intra prediction mode · Method for specifying the prediction mode in division area 0 when there are two or more types of GPM-applied intra prediction modes · Method for specifying the prediction mode in division area 1 when there are two or more types of GPM-applied intra prediction modes Note that in the above description, with reference to the case where a rectangular block is geometrically divided into two parts by GPM, the signaling method when applying the intra prediction mode to GPM in that case was explained. However, in the case where a rectangular block is geometrically divided into three or more parts by GPM, the signaling method described in this embodiment can be applied with the same concept.

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

[0214] Note that in each of the above embodiments, the present invention was described by taking the application to the image encoding device 100 and the image decoding device 200 as an example. 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 each function of the image encoding device 100 and the image decoding device 200.

Explanation of Signs

[0215] 10… Image processing system 100… Image encoding device 111, 241… Inter prediction unit 112, 242… Intra prediction unit 113, 243... Synthesis section 121... Subtractor 122, 230... Adder 131... Conversion and quantization section 132, 220... Inverse conversion and inverse quantization section 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 apparatus, comprising: a decoding unit configured to decode a first syntax for controlling whether or not to apply a geometric partitioning mode of a sequence to be decoded, and to control whether or not to decode a second syntax for controlling whether or not to apply an intra prediction mode to a geometric partitioning mode of a picture to be decoded according to a 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; and not decode the second syntax when the value of the first syntax is not 1. The image decoding apparatus according to claim 1.

3. The decoding unit is configured to: decode a third syntax for controlling the number of types of intra prediction modes applicable to a geometric partitioning mode of the picture to be decoded when the value of the second syntax is 1; and not decode the third syntax when the value of the second syntax is not 1. The image decoding apparatus according to claim 1 or 2.

4. An image decoding method, comprising: a step of decoding a first syntax for controlling whether or not to apply a geometric partitioning mode of a sequence to be decoded; and a step of controlling whether or not to decode a second syntax for controlling whether or not to apply an intra prediction mode to a geometric partitioning mode of a picture to be decoded according to a value of the first syntax.

5. A program for causing a computer to function as an image decoding apparatus, wherein the image decoding apparatus comprises: a decoding unit configured to decode a first syntax for controlling whether or not to apply a geometric partitioning mode of a sequence to be decoded, and to control whether or not to decode a second syntax for controlling whether or not to apply an intra prediction mode to a geometric partitioning mode of a picture to be decoded according to a value of the first syntax.

Citation Information

Patent Citations

  • ITTH.266/