Image decoding device, image decoding method, and program

The image decoding device enhances encoding performance by specifying intra-prediction modes within GPM, addressing limitations of existing GPM methods to improve encoding efficiency.

JP7815515B2Active Publication Date: 2026-02-17KDDI CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2025064651
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2025-04-09
Publication Date
2026-02-17
Estimated Expiration
2041-06-30

AI Technical Summary

Technical Problem

The existing Geometric Partitioning Mode (GPM) in image decoding is limited to merge mode, which restricts encoding performance improvement.

Method used

An image decoding device and method that allows for the specification of an intra-prediction mode in GPM, determining whether GPM can be applied and the type of prediction mode for each divided region, enhancing encoding performance by applying intra prediction modes in addition to normal merge modes.

Benefits of technology

Improves encoding performance by appropriately identifying when and how to apply GPM to blocks, optimizing prediction modes for each divided area.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007815515000001
    Figure 0007815515000001
  • Figure 0007815515000002
    Figure 0007815515000002
  • Figure 0007815515000003
    Figure 0007815515000003
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 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 parts and motion compensates each part. Specifically, in GPM, the two divided parts 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 merge mode, which leaves room for improvement in encoding performance. The present invention has been made in light 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 using GPM by specifying a signaling method for 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 region 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 can be applied to a sequence to be decoded, and to control whether or not to decode a second syntax that controls whether or not an intra prediction mode can be applied to the geometric partitioning mode of a picture 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 can be applied to a sequence to be decoded; and controlling whether or not to decode a second syntax that controls whether or not an intra prediction mode can be applied to the geometric partitioning mode of a picture to be decoded, depending on the value of the first syntax.

[0008] A third feature of the present invention is a program that causes a computer to function as an image decoding device, wherein the image decoding device includes a decoding unit configured to decode a first syntax that controls whether or not a geometric partitioning mode can be applied to a sequence to be decoded, and to control whether or not to decode a second syntax that controls whether or not an intra prediction mode can be applied to the geometric partitioning mode of a picture to be decoded, depending on the value of the first syntax. [Effects 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 explanation of the drawings]

[0010] [Figure 1] FIG. 1 is a diagram showing an example of the configuration of an image processing system 1 according to an embodiment. [Figure 2]FIG. 2 is a diagram showing an example of functional blocks of the image encoding device 100 according to an embodiment. [Figure 3] FIG. 3 is a diagram illustrating an example of functional blocks of an image decoding device 200 according to an embodiment. [Figure 4] Figure 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. [Figure 5] FIG. 5 is a diagram showing an example of application of intra prediction modes to GPM according to this 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. In FIG. [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 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 unit 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 by which the decoding unit 210 determines whether or not to apply an intra prediction mode to the divided region 0. [Figure 12] FIG. 12 is a flowchart showing a method by which the decoding unit 210 determines whether or not to apply an intra prediction mode to the divided region 1. [Figure 13] FIG. 13 is a flowchart showing an example of a method by which the decoding unit 210 identifies a prediction mode for the divided region 0 when there is one type of GPM-applied intra prediction mode. [Figure 14]FIG. 14 is a flowchart showing an example of a method by which the decoding unit 210 identifies a prediction mode for the divided region 1 when there is 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 for the divided region 0 when there are two or more types of GPM-applied intra prediction modes by the decoding unit 210. [Figure 16] FIG. 16 is a flowchart showing an example of a method by which the decoding unit 210 identifies a prediction mode for the divided region 1 when there are two or more types of GPM-applied intra prediction modes. DETAILED DESCRIPTION OF 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 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 the 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 coded data may be transmitted from the image coding device 100 to the image decoding device 200 via a transmission path. Alternatively, the coded data may be stored in a storage medium and then provided from the image coding device 100 to the image decoding device 200.

[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 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 a reference frame by comparing a current frame to be coded (current 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 current 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 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 (prediction within a frame).

[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 also 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 the prediction signal) to the subtractor 121 and the adder 122.

[0028] Here, the composition process of the composition unit 113 for the inter-prediction signal and / or the intra-prediction signal can have the same configuration as that in Non-Patent Document 1 in this 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 transform / 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 transform / inverse quantization unit 132 to generate a pre-filter decoded signal, and to output the pre-filter 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 coefficient level values. Furthermore, the transform / quantization unit 131 may be configured to quantize the coefficient level values.

[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 (transform matrix) corresponding to a discrete cosine transform (hereinafter referred to as DCT) or a basis pattern (transform matrix) corresponding to a discrete sine transform (hereinafter referred to as DST) may be used.

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

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

[0036] Here, the inverse transform processing and inverse quantization are performed in the reverse order to the transform processing and quantization performed by the transform / 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 that 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 used in the decoding process in addition to the coefficient level values.

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

[0041] The control data may also include information (flags and indexes) necessary for controlling the inverse transform and inverse quantization processing of the inverse transform and inverse quantization unit 220 in the image decoding device 200 described later, the inter prediction signal generation processing of the inter prediction unit 241, the intra prediction signal generation processing of the intra prediction unit 242, the synthesis processing of the inter prediction signal and / or intra prediction signal of the synthesis unit 243, and the filtering processing 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 characteristics 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) The image decoding device 200 according to this embodiment will be described below 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, which 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 decoding block (synonymous with the block to be coded in the above-mentioned image coding device 100; hereinafter, collectively referred to as the current block).

[0054] The control data may also 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 predicted pixel generation processing of the inter prediction unit 241 and the intra prediction unit 242, the filtering processing of the in-loop filtering processing unit 250, etc.

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

[0056] The inverse transform / 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 / inverse quantization unit 220 may be configured to perform inverse quantization on the coefficient level values ​​prior to the inverse transform processing.

[0057] Here, the inverse transform processing and inverse quantization are performed in the reverse order to the transform processing and quantization performed by the transform / 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 (prediction within a frame).

[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] Similar to the synthesis unit 113, the synthesis unit 243 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-filtering decoded signal, and output the 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 filtering on the unfiltered decoded signal output from the adder 230 and to output the filtered decoded signal to the frame buffer 260.

[0067] 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, transform blocks, or sub-blocks obtained by dividing them), or an adaptive loop filter processing that switches filters based on filter coefficients, filter selection information, and local characteristics 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) relating to this embodiment.

[0071] Figure 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 using the geometric division mode disclosed in Non-Patent Document 1.

[0072] Here, the division 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 division area 0 and division area 1, and generates inter-predicted (motion compensated) pixels.

[0074] Specifically, in such a GPM, a merge candidate list as disclosed in Non-Patent Document 1 is constructed, and based on the merge candidate list and a merge index transmitted from the image encoding device 100, a motion vector and reference frame for each divided area 0 / 1 are derived to generate a reference block, i.e., an inter-prediction (or motion compensation) block, 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 the present patent, and therefore a detailed description thereof will be omitted.

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

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

[0078] In contrast, the first GPM according to this embodiment proposes to improve 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 division area 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] Furthermore, the second GPM according to this embodiment proposes whether or not to apply a GPM that additionally applies an intra prediction mode to a block to be decoded, and a method for identifying the prediction mode type in each divided area 0 / 1 when the GPM is applied.

[0081] This allows the GPM with an additional intra prediction mode to be appropriately applied to the block to be decoded, and the optimal prediction mode to be identified, thereby achieving room for further improvement in coding 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 coded data (coded bitstream) itself decoded by the decoding unit 210, and a method of identification based on control data (syntax) included in the coded data in the decoding unit 210.

[0083] (Encoded data decoded by the decoding unit 210) The coded 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 coded data received by the decoding unit 210 disclosed in Non-Patent Document 1.

[0084] As shown in Figure 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 (sets 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 that 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 multiple 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] 6, the coded data may include a slice header 214A following a 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 part of the slice header.

[0088] 6, the coded data may include slice header 214A followed by slice data 215A. The slice data 215A may include the coefficient level values ​​and size data described above.

[0089] As described above, one slice header, one picture header, one PPS, and one SPS correspond to each slice data 215A / 215B. As described above, the PPS 212 to be referenced is specified by the PPS id in the picture header 213, and the SPS 211 to be referenced by the PPS 212 is further specified by the SPS id, so that a common SPS 211 and PPS 212 can be used for multiple slice data 215A / 215B.

[0090] In other words, the SPS 211 and the PPS 212 do not necessarily need to be transmitted 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] Note that the configuration shown in Fig. 6 is merely an example. As long as the control data specified in the slice headers 214A / 214B, picture header 213, PPS 212, and SPS 211 correspond to each slice data 215A / 215B, elements other than these may be added as stream components. Similarly, the stream may be reshaped into a configuration different from that shown in Fig. 6 when transmitted.

[0092] (How to determine whether or not GPM is applicable to a sequence) Hereinafter, a method for determining whether or not the GPM can be applied and whether or not the intra prediction mode can be applied to the GPM based on control data at the decoding target sequence level by the decoding unit 210 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 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. If the value of sps_gpm_enabled_flag is 1, it indicates that GPM is enabled, and if the value of sps_gpm_enabled_flag is 0, it indicates that GPM is disabled.

[0097] Note 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 then ends this processing.

[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 if the value of sps_gpm_intra_enabled_flag is 1, it indicates that intra prediction mode can be applied to the GPM, and if 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 steps S200-HLS-04, S200-HLS-05, and S200-HLS-06 are added to determine which intra prediction modes can be selected in a divided area of ​​a block to be decoded when there are multiple intra prediction modes that can be additionally applied to the GPM, and steps S200-HLS-06 are added to determine which intra prediction modes can be selected in a divided area of ​​a block to be decoded (sps_max_num_gpm_intra_cand, a third syntax, which will be described later).

[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 then ends this processing.

[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, unnecessary decoding (encoding) of sps_max_num_gpm_intra_cand is avoided because 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.

[0109] Here, the value of sps_max_num_gpm_intra_cand may be set to the maximum number of intra prediction mode types that can 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 as intra prediction modes according to the division line in the first GPM (for example, division line L1 shown in FIG. 4).

[0111] For example, the types of intra prediction modes applied to the GPM may include an angular mode parallel to the dividing line L1 in the GPM and / or an angular mode perpendicular to the dividing line L1 in the GPM. Alternatively, the types of intra prediction modes applied to the GPM may include angular modes 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, an intra prediction mode that does 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 modes can be applied to geometric partitioning modes and the syntax that specifies the maximum number of candidates for intra prediction mode types to be applied to GPM. However, in order to control at a finer granularity, decoding may also be performed, for example, at the PPS, picture header, or slice header level.

[0116] However, since making the control unit finer increases the amount of code required for the syntax to be decoded (encoded), the designer may evaluate the trade-off between the improvement in prediction performance due to finer control units and the increase in the amount of code required for the syntax, as desired, and then design the system accordingly.

[0117] (Method for 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 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-2, and if the value of sps_gpm_intra_enabled_flag is 0, proceeds to step S200-03.

[0119] In step S200-03, decoding unit 210 determines whether predetermined condition 1 (or 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] That is, GpmFlag can be said to be an internal parameter (first internal parameter) that controls whether or not the geometric partitioning mode is applied to the block to be decoded according to predetermined condition 1.

[0123] Since the predetermined condition 1 is a condition for determining whether or not to apply a GPM in which an intra prediction mode is not applied, the same condition disclosed in Non-Patent Document 1 may be used. Specifically, all of the following conditions must be 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, so GPM can only be applied to B slices, where it is obvious that there are two motion vectors in the entire slice (conversely, this means that GPM cannot be applied to P slices, where it is obvious that there is only one motion vector in the entire slice).

[0125] Here, the conditions related to general_merge_flag, regular_merge_flag, merge_subblock_flag, and clip_flag can be configured in the same way as in Non-Patent Document 1, and therefore a description thereof will be omitted.

[0126] Furthermore, the condition that the width and height of the block to be decoded are 8 pixels or more is intended to reduce the worst-case number of reference pixels (memory bandwidth) required for motion compensation, and was introduced in Non-Patent Document 1. Specifically, Non-Patent Document 1 sets the lower limit of the block size of a unidirectionally predicted block having one motion vector to 4×8 / 8×4 pixels, and the lower limit of the block size of a bidirectionally predicted block having two motion vectors to 8×8 pixels. Therefore, the same lower limit is also considered as an application condition for a GPM-applied block, which is a type of bidirectionally predicted 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 making GPM inapplicable to blocks with a low rate of GPM application in order to reduce the number of preliminary encoding processes that evaluate whether or not GPM should be applied in the image encoding device 100, and ultimately 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 GPM application in order to reduce the number of preliminary encoding processes that evaluate whether or not GPM should be applied in the image encoding device 100, and ultimately to reduce the amount of encoding processing.

[0129] In contrast to the above-mentioned step S200-03, in step S200-02, the decoding unit 210 determines whether or not predetermined condition 2 (or second predetermined condition) is satisfied, and if predetermined condition 2 is satisfied, the process proceeds to step S200-04, and if predetermined condition 1 is not satisfied, the process proceeds to step S200-05. Details of 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 is applied to the block to be decoded according to 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 removal of the condition regarding sh_slice_type means that the intra prediction mode for GPM allows GPM to be applied to I slices and P slices in addition to B slices. 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] Second, regarding the elimination of the condition that the width and height of the block to be decoded must be 8 pixels or more, when an intra-prediction mode is applied to at least one division area of ​​the GPM, the lower limit of the block size (8×8 pixels), which was set in consideration of the worst-case memory bandwidth of bi-predictive blocks, can be relaxed to the lower limit of the block size of uni-predictive blocks (4×8 / 8×4 pixels). This makes it possible to apply GPM to small-sized blocks, which was not applicable to GPM in Non-Patent Document 1, and therefore increases the number of blocks to which GPM can be applied, which is expected to improve coding performance.

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

[0137] Third, with regard to the removal of the condition regarding the aspect ratio of the block to be decoded (i.e., removal 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 the requirement is relaxed to limit it to small-sized blocks with relatively high prediction performance of the intra prediction mode by introducing intra prediction mode into GPM, the number of blocks to which GPM is applied can be increased, and improvement in coding 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] Furthermore, the condition that the width and height of the block to be decoded in predetermined condition 1 and predetermined condition 2 are less than 128 pixels may be relaxed in the future due to improvements in encoder performance, but even in such a case, the same condition (upper block size limit value) may be maintained for GPMs to which intra prediction mode is applied. 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 block to be decoded increases, and therefore prediction accuracy is likely to decrease.

[0140] (How to determine the GPM division mode (type of division line L1) for each block) A method for determining the GPM partition mode (type of division line L1) for each block by the decoding unit 210 will be described below 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 unit 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 the gpm_partition_idx included in the control data, and then ends this processing.

[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 the partition line L1) of the geometric partition mode of the block to be decoded.

[0145] In non-patent document 1, the values ​​0 to 63 of gpm_partition_idx 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, the decoding unit 210 ends this process without decoding the 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) A method by which the decoding unit 210 determines whether or not to apply an intra prediction mode to the divided region 0 will be described below with reference to Fig. 11. Fig. 11 is a flowchart showing a method by which the decoding unit 210 determines whether or not to apply an intra prediction mode to the divided region 0.

[0148] 11, 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 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 divided 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 (enabled) to the division area 0, and if the value of gpm_r0_intra_flag is 0, the decoding unit 210 can determine that the intra prediction mode is not applied (disabled) 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, the decoding unit 210 ends this process without decoding gpm_r0_intra_flag included in the control data. However, since the determination in step S200-11 has determined 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) A method by which the decoding unit 210 determines whether or not to apply an intra prediction mode to the divided region 1 will be described below with reference to Fig. 12. Fig. 12 is a flowchart showing a method by which the decoding unit 210 determines whether or not to apply an intra prediction mode to the divided region 1.

[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 these conditions are met, decoding unit 210 proceeds to step S200-14, and if these conditions are 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 for each sequence to be decoded 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 terminates this processing without decoding the gpm_r1_intra_flag included in the control data, in step S200-16, the decoding unit 210 decodes the gpm_r1_intra_flag included in the control data and terminates this processing, and in step S200-17, the decoding unit 210 terminates this processing without decoding the 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 divided region 1 into which the block to be decoded is divided in the geometric division 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 ends this process without decoding the gpm_r1_intra_flag included in the control data, but since the determination in steps S200-11 and S200-16 has determined 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 segmented region 0 when there is one type of GPM-applied intra prediction mode) A method for specifying a prediction mode for divided region 0 when there is one type of GPM-applied intra prediction mode by the decoding unit 210 will be described below with reference to Fig. 13. Fig. 13 is a flowchart showing an example of a method for specifying a prediction mode for divided 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-mentioned gpm_r0_intra_flag is 1. If this condition is met, the decoding unit 210 proceeds to step SR0-02, and if this condition is not met, the 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 determines whether the value of MaxNumMergeCand is greater than 1. If this condition is met, the decoding unit 210 proceeds to step SR0-04, and if this condition is not met, 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 normal merge mode. This maximum number can be set in the same manner as in Non-Patent Document 1, and therefore detailed description thereof will be omitted.

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

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

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

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

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

[0175] (Method of identifying prediction mode in divided area 1 when there is one type of GPM-applied intra prediction mode) A method for specifying a prediction mode for divided region 1 when there is one type of GPM-applied intra prediction mode by the decoding unit 210 will be described below with reference to Fig. 14. Fig. 14 is a flowchart showing an example of a method for specifying a prediction mode for divided region 1 when there is one type of GPM-applied 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-mentioned gpm_r0_intra_flag is 1. If this condition is met, the decoding unit 210 proceeds to step SR1-02, and if this condition is not met, 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 determines whether the value of gpm_r1_intra_flag is 1. If this condition is met, the decoding unit 210 proceeds to step SR1-04, and if this condition is not met, 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 determines whether the value of MaxNumMergeCand is greater than 2. If this condition is met, the decoding unit 210 proceeds to step SR1-06, and if this condition is not met, the decoding unit 210 proceeds to step SR1-07.

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

[0182] In step SR1-07, the decoding unit 210 does not decode merge_gpm_idx1, but identifies merge candidates 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, the decoding unit 210 may estimate the value of merge_gpm_idx1 to be 0.

[0185] Here, in step SR1-07, the decoding unit 210 ends this process without decoding merge_gpm_idx1, but 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 division area 1 is, of the two merge candidates, a different merge candidate from the merge candidate for division area 0 identified based on merge_gpm_idx0, so the aim is to avoid unnecessary decoding of merge_gpm_idx1 (reducing the amount of transmitted code).

[0186] (Method of identifying prediction mode in division area 0 when there are two or more GPM-applied intra prediction modes) 13 and 15, a method for specifying a prediction mode for 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. Fig. 15 is a flowchart showing an example of a method for specifying a prediction mode for divided region 0 by the decoding unit 210 when there are two or more types of GPM-applied intra prediction modes.

[0187] Here, the only differences between the flowchart shown in FIG. 13 and the flowchart shown in FIG. 15 are steps SR0-02 and SR0-02A, respectively, 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 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 divided 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 divided area 0 cannot be identified without decoding intra_gpm_idx0.

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

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

[0192] Alternatively, 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 the GPM.

[0193] 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 the value 0 of intra_gpm_idx0, and the vertical angular mode, which has a lower selection rate, may be set to the value 1 of intra_gpm_idx0.

[0194] As another example, if there are three types of intra prediction modes: 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 0 of intra_gpm_idx0, the planar mode may be set to the value 1 of intra_gpm_idx0, and the vertical angular mode may be set to the value 2 of intra_gpm_idx0, 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 identifying prediction mode in divided area 1 when there are two or more GPM-applied intra prediction modes) 14 and 16, a method for specifying a prediction mode for 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. Fig. 16 is a flowchart showing an example of a method for specifying a prediction mode for 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 explained.

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

[0199] On the other hand, the flowchart shown in Figure 16 assumes 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 divided area 0 is an intra-prediction mode, it cannot identify whether the prediction mode of divided area 1 is an intra-prediction mode 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 unit 210 determines whether the value of gpm_r1_intra_flag is 1, and if the value of gpm_r1_intra_flag is 1, proceeds to step SR1-08, and if the value of gpm_r1_intra_flag is 0, 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 determines whether the value of MaxNumMergeCand 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 region 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 region 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 division 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 determined in step SR1-08 that the value of MaxNumMergeCand is 2, i.e., it can be determined that the merge candidate for division area 1 is a different merge candidate from the merge candidate for division area 0 identified based on merge_gpm_idx0, out of the two merge candidates.

[0206] Here, intra_gpm_idx1 is a syntax (syntax No. 9) for specifying the type of intra prediction mode in division area 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] Alternatively, 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 the 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: 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 as 0, the planar mode may be set to the value of intra_gpm_idx1 as 1, and the vertical angular mode may be set to the value of intra_gpm_idx1 as 2, in descending order of 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 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-by-block basis -Information about the GPM division mode (type of division line L1) in blocks Information on whether intra prediction mode is applied to segmentation area 0 -Method of determining whether or not to apply intra prediction mode to division area 1 How to identify the prediction mode for segmentation area 0 when there is only one GPM-applied intra prediction mode How to identify the prediction mode for segmentation area 1 when there is one GPM-applied intra prediction mode How to identify the prediction mode for segmentation area 0 when there are two or more GPM-applied intra prediction modes Method for identifying prediction mode in segmented region 1 when there are two or more GPM-applied intra prediction modes Note that the above describes a case where a rectangular block is divided into two geometric shapes by the GPM, and explains 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 where a rectangular block is divided into three or more geometric shapes by the GPM.

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

[0214] In each of the above-described embodiments, the present invention has been described as being applied to the image encoding device 100 and the image decoding device 200, but the present invention is not limited to this and can be similarly applied to image encoding systems and image decoding systems that have 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...composite section 121...Subtractor 122, 230...adder 131...Transformation and quantization unit 132, 220...Inverse transform and inverse quantization units 140...encoding section 150, 250...In-loop filter processing section 160, 260...frame buffer 200...Image decoding device 210...Decoding unit

Claims

1. An image decoding device, 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 can be applied to a sequence to be decoded, and to control whether or not to decode a second syntax that controls whether or not an intra prediction mode can be applied to the geometric partitioning mode of a picture to be decoded, depending on the value of the first syntax.

2. The decoding unit 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. The decoding unit When the value of the second syntax is 1, the decoding device is configured to decode a third syntax that controls the number of types of intra prediction modes that can be applied to a geometric partitioning mode of the current picture; 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. An image decoding method, comprising: Decoding a first syntax that controls whether or not a geometric partitioning mode is applicable to a sequence to be decoded; An image decoding method characterized by having 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 picture to be decoded, depending on the value of the first syntax.

5. A program that causes a computer to function as an image decoding device, The image decoding device comprises: A program characterized by comprising a decoding unit configured to decode a first syntax that controls whether or not a geometric partitioning mode can be applied to a sequence to be decoded, and to control whether or not to decode a second syntax that controls whether or not an intra prediction mode can be applied to the geometric partitioning mode of a picture to be decoded, depending on the value of the first syntax.

Citation Information

Patent Citations

  • ITTH.266/