Image decoding device
Through geometric block segmentation and merging technology, the problem of difficulty in selecting block segmentation shapes in any direction of object boundaries in the prior art is solved, and the effect of reducing prediction errors and improving coding performance is achieved.
Patent Information
- Application Number
- CN202411393472.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2019-12-26
- Filing Date
- 2020-12-02
- Publication Date
- 2025-01-07
AI Technical Summary
The existing rectangular-based block segmentation technology is difficult to select a suitable block segmentation shape when the object boundary appears in any direction relative to the block boundary, resulting in high prediction errors and low encoding performance.
Using geometric block segmentation and merging technology, geometric block segmentation is performed on object blocks divided by rectangles. Through merge mode specification, geometric block segmentation method specification and merge list creation, select appropriate block segmentation shapes, reduce prediction errors and improve subjective picture quality. .
Through geometric block segmentation and merging, prediction errors are reduced, encoding performance and subjective image quality are improved, and are suitable for object boundaries in any direction.
Smart Images

Figure CN119277065A_ABST
Abstract
Description
[0001] This application is a divisional application of the invention patent application with the application date of December 2, 2020, application number 202080040283.6, and invention name "Image decoding device, image decoding method and program". Technical Field
[0002] The present invention relates to an image decoding device. Background Art
[0003] Non-Patent Documents 1 and 2 disclose a rectangle-based block partitioning technique (rectangular partitioning technique) called QTBTTT (Quad-Tree-Binary-Tree-Ternary-Tree).
[0004] [Prior technical literature]
[0005] (Non-patent literature)
[0006] Non-patent document 1: Versatile Video Coding (Draft 7), JVET-N1001
[0007] Non-patent document 2: ITU-T H.265 High Efficiency Video Coding Summary of the invention
[0008] [Problems to be solved by the invention]
[0009] However, if only the rectangular block partitioning in the above-mentioned prior art is used, there is the following problem: when the object boundary appears in an arbitrary direction relative to the block boundary, it may not be possible to select a suitable block partitioning for the object boundary. Therefore, the present invention is completed in view of the above-mentioned problem, and its purpose is to provide an image decoding device, which selects a suitable block partitioning shape for the object boundary appearing in any direction by applying geometric block partitioning merging to the object block partitioned by the rectangle, and as a result, it can achieve the effect of improving the encoding performance by reducing the prediction error and the effect of improving the subjective image quality by selecting a suitable block partitioning boundary for the object boundary.
[0010] [Technical means to solve the problem]
[0011] The main purpose of the first technical solution of the present invention is an image decoding device, comprising: a merging unit, configured to apply geometric block segmentation and merging to an object block divided into rectangles; and the merging unit includes: a merging mode specifying unit, configured to specify whether to apply the geometric block segmentation and merging; a geometric block segmenting unit, configured to specify a geometric block segmentation method, and use the specified geometric block segmentation method to further perform geometric block segmentation on the object block divided into rectangles; and a merge list creating unit, configured to create a merge list for the object block divided into geometric blocks, and decode motion information.
[0012] The second technical solution of the present invention is a method for decoding an image, comprising the steps of applying geometric block segmentation and merging to an object block divided by a rectangle, the steps comprising the following steps: specifying whether to apply the geometric block segmentation and merging; specifying a geometric block segmentation method, and using the specified geometric block segmentation method to further perform geometric block segmentation on the object block divided by a rectangle; and creating a merge list for the object block divided by the geometric blocks, and decoding the motion information.
[0013] The third technical solution of the present invention is a program that enables a computer to function as an image decoding device, wherein the image decoding device includes: a merging unit, configured to apply geometric block segmentation and merging to an object block divided into rectangles; and the merging unit includes: a merging mode specifying unit, configured to specify whether to apply the geometric block segmentation and merging; a geometric block segmenting unit, configured to specify a geometric block segmentation method, and use the specified geometric block segmentation method to further perform geometric block segmentation on the object block divided into rectangles; and a merge list creating unit, configured to create a merge list for the object block divided into geometric blocks and decode motion information.
[0014] Effects of the Invention
[0015] According to the present invention, an image decoding device can be provided, which selects a suitable block segmentation shape for an object boundary appearing in any direction by applying geometric block segmentation and merging to an object block divided by a rectangle. As a result, it can achieve the effect of improving the encoding performance by reducing the prediction error and the effect of improving the subjective picture quality by selecting a suitable block segmentation boundary for the object boundary. BRIEF DESCRIPTION OF THE DRAWINGS
[0016] Figure 1 It is a diagram showing an example of the configuration of an image processing system 1 according to one embodiment.
[0017] Figure 2 This is a diagram showing an example of a functional block of the image encoding device 100 according to one embodiment.
[0018] Figure 3FIG. 1 is a diagram showing an example of a functional block of the inter-frame prediction unit 111 of the image encoding device 100 according to one embodiment.
[0019] Figure 4 This is a diagram showing an example of a functional block of an image decoding device 200 according to an embodiment.
[0020] Figure 5 This is a diagram showing an example of a functional block of the inter prediction unit 241 of the image decoding device 200 according to one embodiment.
[0021] Figure 6 This is a diagram showing an example of a functional block of the merging unit 111A2 of the inter prediction unit 111 of the image encoding device 100 according to one embodiment.
[0022] Figure 7 This is a diagram showing an example of a functional block of the merging unit 241A2 of the inter prediction unit 241 of the image decoding device 200 according to one embodiment.
[0023] Figure 8 This is a flowchart showing an example of a method for specifying whether to apply geometric block partitioning and merging in the merge mode specifying unit 241A21 of the inter-frame prediction unit 241 of the image decoding device 200 according to one embodiment.
[0024] Fig. 9 This is a flowchart showing an example of a method for specifying whether to apply geometric block partitioning and merging in the merge mode specifying unit 241A21 of the inter-frame prediction unit 241 of the image decoding device 200 according to one embodiment.
[0025] Fig.10 This is a flowchart showing an example of a method for specifying whether to apply geometric block partitioning and merging in the merge mode specifying unit 241A21 of the inter-frame prediction unit 241 of the image decoding device 200 according to one embodiment.
[0026] Fig.11 A diagram showing an example of a prescribed method for dividing a geometric block in a modified example.
[0027] Fig.12 A diagram showing an example of an elevation angle φ of a predetermined geometric block partitioning method according to a modified example.
[0028] Fig.13 FIG. 1 is a diagram showing an example of the position (distance ρ) of a predetermined block division method according to a modified example.
[0029] Fig.14 This is a diagram showing an example of a method for defining the elevation angle φ and the distance ρ according to a modification example.
[0030] Fig.15This is a diagram showing an example of an index table indicating a combination of an elevation angle φ and a distance (position) ρ that specifies a method of dividing a geometric block according to a modified example.
[0031] Fig.16 This is a diagram for explaining an example of controlling a decoding method of “partition_idx” according to a block size or a block aspect ratio of a target block according to a modification example.
[0032] Fig.17 This is a flowchart showing an example of a process of registering motion information in a merge list and trimming the motion information in one embodiment.
[0033] Fig.18 This is a diagram showing an example of a merged list created as a result of motion information registration and clipping processing in a merged list according to one embodiment.
[0034] Fig.19 This is a diagram for explaining space integration according to one embodiment.
[0035] Fig. 20 This is a diagram for explaining time integration according to one embodiment.
[0036] Fig.21 This is a diagram for explaining an example of a motion vector scaling process used in temporal merging according to one embodiment.
[0037] Fig. 22 This is a diagram for explaining history merging according to one embodiment.
[0038] Fig.23 This is a diagram showing an example of a block division method in a target block when block division and merging is effective in a modified example, and an example of a positional relationship between spatial merging and temporal merging of the target block.
[0039] Fig.24 This is a diagram showing an example of a block division method in a target block when block division and merging is effective in a modified example, and an example of a positional relationship between spatial merging and temporal merging of the target block. DETAILED DESCRIPTION
[0040] The following is an explanation of the embodiments of the present invention with reference to the accompanying drawings. In addition, the constituent elements in the following embodiments may be appropriately replaced with existing constituent elements, etc., and various modifications including combinations with other existing constituent elements may be performed. Therefore, the content of the invention recorded in the claims should not be limited by the description of the following embodiments.
[0041] <First embodiment>
[0042] Below, reference Figures 1 to 10An image processing system 10 according to a first embodiment of the present invention will be described. Figure 1 1 is a diagram showing an image processing system 10 according to the present embodiment.
[0043] like Figure 1 As shown, the image processing system 10 of this embodiment includes an image encoding device 100 and an image decoding device 200 .
[0044] The image encoding device 100 is configured to generate encoded data by encoding an input image signal, and the image decoding device 200 is configured to generate an output image signal by decoding the encoded data.
[0045] The encoded data may be transmitted from the image encoding device 100 to the image decoding device 200 via a transmission path. The encoded data may also be provided from the image encoding device 100 to the image decoding device 200 after being stored in a storage medium.
[0046] (Image Coding Device 100)
[0047] Below, reference Figure 2 The image encoding device 100 according to this embodiment will be described. Figure 2 This is a diagram showing an example of functional blocks of the image encoding device 100 according to the present embodiment.
[0048] like Figure 2 As shown, the image encoding device 100 includes an inter-frame prediction unit 111, an intra-frame prediction unit 112, a subtractor 121, an adder 122, a transform and quantization unit 131, an inverse transform and inverse quantization unit 132, an encoding unit 140, a loop filter processing unit 150 and a frame buffer 160.
[0049] The inter-frame prediction unit 111 is configured to generate a prediction signal by inter-frame prediction.
[0050] Specifically, the inter-frame prediction unit 111 is configured to specify a reference block included in the reference frame by comparing a frame to be encoded (hereinafter referred to as a target frame) with a reference frame stored in the frame buffer 160, and determine a motion vector (mv) of the specified reference block.
[0051] The inter-frame prediction unit 111 is configured to generate a prediction signal included in a block to be coded (hereinafter referred to as a target block) for each target block based on the reference block and the motion vector. The inter-frame prediction unit 111 is configured to output the prediction signal to the subtractor 121 and the adder 122. Here, the reference frame is a frame different from the target frame.
[0052] The intra prediction unit 112 is configured to generate a prediction signal by intraframe prediction.
[0053] Specifically, the intra prediction unit 112 is configured to specify a reference block included in the target frame, and to generate a prediction signal for each target block based on the specified reference block. Furthermore, the intra prediction unit 112 is configured to output the prediction signal to the subtractor 121 and the adder 122 .
[0054] Here, the reference block is a block that the object block refers to. For example, the reference block is a block adjacent to the object block.
[0055] The subtractor 121 is configured to subtract the prediction signal from the input image signal and output a prediction residual signal to the transform and quantization unit 131. Here, the subtractor 121 is configured to generate a prediction residual signal which is a difference between a prediction signal generated by intra prediction or inter prediction and the input image signal.
[0056] The adder 122 is configured to add the prediction signal and the prediction residual signal output from the inverse transform and inverse quantization unit 132 to generate a pre-filtered decoded signal, and output the pre-filtered decoded signal to the intra prediction unit 112 and the loop filter processing unit 150 .
[0057] Here, the decoded signal before filtering constitutes a reference block used in the intra prediction unit 112 .
[0058] The transform and quantization unit 131 is configured to perform a transform process on the prediction residual signal and obtain a coefficient level value. In addition, the transform and quantization unit 131 may be configured to perform quantization on the coefficient level value.
[0059] Here, the transformation process is a process of transforming the prediction residual signal into a frequency component signal. In this transformation process, a base model (transformation matrix) corresponding to a discrete cosine transform (DCT) or a base model (transformation matrix) corresponding to a discrete sine transform (DST) can be used.
[0060] The inverse transform and inverse quantization unit 132 is configured to perform an inverse transform process on the coefficient level value output from the transform and quantization unit 131. Here, the inverse transform and inverse quantization unit 132 may be configured to perform an inverse quantization on the coefficient level value before the inverse transform process.
[0061] Here, the inverse transform process and the inverse quantization are performed in the reverse order of the transform process and the quantization performed by the transform and quantization unit 131 .
[0062] The encoding unit 140 is configured to encode the coefficient level value output from the transform and quantization unit 131 and output the encoded data.
[0063] Here, for example, the encoding is entropy encoding that assigns codes of different lengths based on the generation probability of coefficient level values.
[0064] Furthermore, the encoding unit 140 is configured to encode not only the coefficient level value but also the control data used in the decoding process.
[0065] Here, the control data may include size data such as the coding block (CU, Coding Unit) size, the prediction block (PU, Prediction Unit) size, and the transform block (TU, Transform Unit) size.
[0066] Furthermore, as described below, the control data may also include header information such as a sequence parameter set (SPS), a picture parameter set (PPS), and a slice header.
[0067] The loop filter processing unit 150 is configured to perform filtering on the pre-filtering decoded signal output from the adder 122 , and output the post-filtering decoded signal to the frame buffer 160 .
[0068] Here, the filtering process is, for example, a deblocking filtering process for reducing distortion generated at a boundary portion of a block (coding block, prediction block, or transform block).
[0069] The frame buffer 160 is configured to store reference frames used by the inter-frame prediction unit 111 .
[0070] Here, the decoded signal after the filtering process constitutes a reference frame used in the inter-frame prediction unit 111.
[0071] (Inter-frame prediction unit 111)
[0072] Below, reference Figure 3 The inter-frame prediction unit 111 of the image encoding device 100 according to this embodiment will be described. Figure 3 This is a diagram showing an example of a functional block of the inter-frame prediction unit 111 of the image encoding device 100 according to the present embodiment.
[0073] like Figure 3 As shown, the inter prediction unit 111 includes an mv deriving unit 111A, an AMVR unit 111B, an mv refinement unit 111B, and a prediction signal generating unit 111D.
[0074] The inter prediction unit 111 is an example of a prediction unit configured to generate a prediction signal included in a target block based on a motion vector.
[0075] like Figure 3As shown, the mv derivation unit 111A includes an AMVP (Adaptive Motion Vector Prediction) unit 111A1 and a merging unit 111A2 , and acquires a motion vector by taking a target frame and a reference frame from the frame buffer 160 as inputs.
[0076] The AMVP unit 111A1 is configured to specify a reference block included in the reference frame by comparing the target frame with the reference frame, and search for a motion vector of the specified reference block.
[0077] Then, the above-mentioned search process is performed on a plurality of candidate reference frames to determine a reference frame and a motion vector used for prediction in the target block, and output them to the prediction signal generator 111D at the next stage.
[0078] A maximum of two reference frames and motion vectors can be used for a block. The case where only one set of reference frames and motion vectors is used for a block is called unidirectional prediction, and the case where two sets of reference frames and motion vectors are used is called bidirectional prediction. In the following, the first set is called L0 and the second set is called L1.
[0079] In addition, when the motion vector determined as described above is finally transmitted to the image decoding device 200, in order to reduce the amount of coding, the AMVP unit 111A selects an MVP having a smaller difference with the motion vector of the object block, i.e., a motion vector difference (mvd), from among the candidates of motion vector predictors (mvp, motion vector predictor) derived based on adjacent encoded motion vectors.
[0080] The index indicating the mvp and mvd selected in this way and the index indicating the reference frame (hereinafter referred to as Refidx) are encoded by the encoding unit 140 and transmitted to the image decoding device 200. This process is generally called adaptive motion vector prediction encoding (AMVP).
[0081] In addition, regarding the above-mentioned motion vector search method, reference frame and motion vector determination method, MVP selection method, and MVD calculation method, known methods can be used, and therefore, their detailed descriptions are omitted.
[0082] Unlike the AMVP unit 111A1, the merge unit 111A2 does not search and derive the motion information of the target block, nor does it further transmit the differential mvd with the adjacent block. Instead, it is configured to take the target frame and the reference frame as input, take the adjacent block in the same frame as the target block or the block at the same position in a frame different from the target frame as the reference block, and directly use the motion information of the reference block. This process is generally called merge coding (hereinafter referred to as merge).
[0083] When the block is merged, a merge list for the block is first created. The merge list is a list of combinations of multiple reference frames and motion vectors. An index (hereinafter referred to as a merge index) is assigned to each combination, and the image encoding device 100 only encodes the above merge index and transmits it to the image decoding device 200 side instead of encoding the combined information of Refidx and motion vector (hereinafter referred to as motion information) alone.
[0084] By sharing the merge list creation method in advance on the image encoding device 100 side and the image decoding device 200 side, the image decoding device 200 side can decode motion information only from the merge index information. The merge list creation method and the geometric block partitioning method of the inter-frame prediction block of this embodiment will be described below.
[0085] The mv refinement unit 111B is configured to perform refinement processing for correcting the motion vector output from the merging unit 111A2. For example, as a refinement processing for correcting the motion vector, DMVR (Decoderside Motion Vector Refinement) described in Non-Patent Document 1 is known. In the present embodiment, as the refinement processing, the known method described in Non-Patent Document 1 can be used, so the description thereof is omitted.
[0086] The prediction signal generation unit 111C is configured to receive a reference frame and a motion vector as input and output an MC prediction image signal. The processing in the prediction signal generation unit 111C can use a known method described in Non-Patent Document 1, and thus the description thereof will be omitted.
[0087] (Image Decoding Device 200)
[0088] Below, reference Figure 4 The image decoding device 200 according to this embodiment is described. Figure 4 This is a diagram showing an example of functional blocks of the image decoding device 200 according to the present embodiment.
[0089] like Figure 4As shown, 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 loop filter processing unit 250 , and a frame buffer 260 .
[0090] The decoding unit 210 is configured to decode the encoded data generated by the image encoding device 100 and decode the coefficient level values.
[0091] Here, for example, decoding is entropy decoding in the reverse order to the entropy encoding performed by the encoding unit 140 .
[0092] Furthermore, the decoding unit 210 may be configured to acquire control data by decoding the encoded data.
[0093] In addition, as described above, the control data may include size data such as coding block size, prediction block size, and transform block size.
[0094] The inverse transform and inverse quantization unit 220 is configured to perform an inverse transform process on the coefficient level values output from the decoding unit 210. Here, the inverse transform and inverse quantization unit 220 may be configured to perform an inverse quantization on the coefficient level values before the inverse transform process.
[0095] Here, the inverse transform process and the inverse quantization are performed in the reverse order of the transform process and the quantization performed by the transform and quantization unit 131 .
[0096] The adder 230 is configured to add the prediction signal and the prediction residual signal output from the inverse transform and 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 loop filter processing unit 250 .
[0097] Here, the decoded signal before filtering constitutes a reference block used in the intra prediction unit 242 .
[0098] Similar to the inter-frame prediction unit 111 , the inter-frame prediction unit 241 is configured to generate a prediction signal by inter-frame prediction.
[0099] Specifically, the inter-frame prediction unit 241 is configured to generate a prediction signal for each prediction block based on a motion vector decoded from the coded data and a reference signal included in a reference frame. The inter-frame prediction unit 241 is configured to output the prediction signal to the adder 230 .
[0100] Similar to the intra prediction unit 112 , the intra prediction unit 242 is configured to generate a prediction signal by intra prediction (intraframe prediction).
[0101] Specifically, the intra prediction unit 242 is configured to designate a reference block included in the target frame, and to generate a prediction signal for each prediction block based on the designated reference block. The intra prediction unit 242 is configured to output the prediction signal to the adder 230 .
[0102] Similar to the loop filter processing unit 150 , the loop filter processing unit 250 is configured to perform filtering on the pre-filtering decoded signal output from the adder 230 and output the post-filtering decoded signal to the frame buffer 260 .
[0103] Here, the filtering process is, for example, a deblocking filtering process for reducing distortion generated at a boundary portion of a block (a coding block, a prediction block, a transform block, or a sub-block obtained by dividing these blocks).
[0104] Similar to the frame buffer 160 , the frame buffer 260 is configured to store reference frames used by the inter-frame prediction unit 241 .
[0105] Here, the filtered decoded signal constitutes a reference frame used in the inter-frame prediction unit 241 .
[0106] (Inter-frame prediction unit 241)
[0107] Below, reference Figure 5 The inter-frame prediction unit 241 of this embodiment will be described. Figure 5 This is a diagram showing an example of functional blocks of the inter-frame prediction unit 241 according to the present embodiment.
[0108] like Figure 5 As shown, the inter prediction unit 241 includes an mv decoding unit 241A, an mv refinement unit 241B, and a prediction signal generation unit 241C.
[0109] The inter prediction unit 241 is an example of a prediction unit configured to generate a prediction signal included in a prediction block based on a motion vector.
[0110] The mv decoding unit 241A is configured to include an AMVP unit 241A1 and a merging unit 241A2 , and acquires a motion vector by decoding a target frame and a reference frame input from the frame buffer 260 , and control data received from the image encoding device 100 .
[0111] The AMVP unit 241A1 is configured to receive the target frame and the reference frame, and the index Refidx indicating mvp and mvd from the image encoding device 100, and decode the motion vector. A known method can be used for decoding the motion vector, and thus detailed description thereof is omitted.
[0112] The merging unit 241A2 is configured to receive a merge index from the image encoding device 100 to decode the motion vector.
[0113] Specifically, the merging unit 241A2 is configured to create a merge list by the same method as the image coding apparatus 100, and to acquire a motion vector corresponding to the received merge index from the created merge list. The details of the method for creating a merge list will be described below.
[0114] Similar to the mv refinement unit 111B, the mv refinement unit 241B is configured to execute refinement processing for correcting the motion vector.
[0115] Similar to the prediction signal generating unit 111C, the prediction signal generating unit 241C is configured to generate a prediction signal based on a motion vector.
[0116] The details of the prediction signal generation process when the geometric block partitioning and merging is effective will be described below. Regarding the prediction signal generation process when other merging modes are effective, the known technology described in Non-Patent Document 1 can be used in this embodiment, so the description thereof is omitted.
[0117] (Merge Department)
[0118] Below, reference Figure 6 and Figure 7 , the merging unit 111A2 of the inter-frame prediction unit 111 of the image encoding device 100 and the merging unit 241A2 of the inter-frame prediction unit 241 of the image decoding device 200 according to this embodiment are described. Figure 6 and Figure 7 This is a diagram showing an example of functional blocks of the merging unit 111A2 of the inter prediction unit 111 of the image encoding device 100 and the merging unit 241A2 of the inter prediction unit 241 of the image decoding device 200 according to the present embodiment.
[0119] like Figure 6 As shown, the merging unit 111A2 includes a merging mode specifying unit 111A21, a geometric block partitioning unit 111A22 and a merging list creating unit 111A23.
[0120] And, if Figure 7 As shown, the merging unit 241A2 includes a merging mode specifying unit 241A21, a geometric block segmenting unit 241A22 and a merging list creating unit 241A23.
[0121] The difference between the merging unit 111A2 and the merging unit 241A2 is that in the merging mode specifying unit 111A21 and the merging mode specifying unit 241A21, the geometric block segmenting unit 111A22 and the geometric block segmenting unit 241A22, and the merging list creating unit 111A23 and the merging list creating unit 241A23, the input and output of the following various indexes are opposite.
[0122] That is, various indexes outputted from the merging unit 111A2 are inputted to the merging unit 241A2. In addition, since the function of the merging unit 111A2 is the same as that of the merging unit 241A2, the function of the merging unit 241A2 will be described as a representative function for simplicity of description.
[0123] The merge mode designation unit 241A21 is configured to designate whether to apply the geometry block merge mode to the object block divided into rectangular sections.
[0124] As merge modes, there are not only geometric block segmentation merge, but also normal merge, sub-block merge, MMVD (Merge mode with MVD), CIIP (Combined inter and intraprediction), IBC (Intra Block Copy) and the like adopted in non-patent document 1.
[0125] In this embodiment, not only these merging modes are applied, but also geometric block division merging is newly applied. Therefore, even if the object boundary appears in any direction relative to the object block divided by the rectangle, the appropriate block division shape can be selected through geometric block division. As a result, it can be expected that the encoding performance can be improved by reducing the prediction error and the subjective image quality near the object boundary can be improved.
[0126] The block partitioning unit 241A22 is configured to specify a block partitioning method for the target block partitioned into rectangles, and perform block partitioning on the target block using the specified partitioning method. The method of specifying the block partitioning method will be described in detail below.
[0127] The merge list creation unit 241A23 is configured to create a merge list for the target block and decode the motion information.
[0128] The creation process of the merge list consists of three stages: a process of confirming whether the motion information is available, a process of registering and clipping the motion information, and a process of decoding the motion information. The details of each stage will be described below.
[0129] (Method for specifying whether to apply block segmentation and merging in the merging mode specifying unit 241A21)
[0130] Below, reference Figures 8 to 10 The method of specifying whether to apply the geometric block segmentation and merging in the merge mode specifying unit 241A21 is described. Figures 8 to 10 This is a flowchart showing an example of a method for specifying whether to apply block segmentation and merging in the merge mode specifying unit 241A21.
[0131] like Figure 8As shown, the merge mode designation unit 241A21 is configured to designate the application of geometry block partitioning and merging (designate the merge mode of the object block as geometry block partitioning and merging) when normal merging and CIIP are not applied.
[0132] Specifically, if Figure 8 As shown, in step S7-1, the merge mode designation unit 241A21 designates whether to apply normal merge. When it is designated to apply normal merge, the process proceeds to step S7-5. When it is designated not to apply normal merge, the process proceeds to step S7-2.
[0133] In step S7-2, the merge mode designation unit 241A21 designates whether to apply CIIP. When it is designated to apply CIIP, the process proceeds to step S7-3. When it is designated not to apply CIIP, the process proceeds to step S7-4.
[0134] In addition, the merge mode designation unit 241A21 may skip step S7-2 and directly proceed to step S7-4, which means that when normal merging is not applied, the merging mode of the object block is designated as geometric block partition merging.
[0135] In step S7-3, the merge mode designation unit 241A21 designates application of CIIP to the target block (designates the merge mode of the target block as CIIP), and ends the present process.
[0136] In addition, the image encoding device 100 and the image decoding device 200 retain, as an internal parameter, a designation result of whether to apply geometric block partitioning and merging to the target block.
[0137] In step S7-4, the merge mode designation unit 241A21 designates the application of geometry block partitioning and merging to the object block (designates the merge mode of the object block as geometry block partitioning and merging), and ends this processing.
[0138] In step S7-5, the merging mode designation unit 241A2 designates application of normal merging to the target block (designates the merging mode of the target block as normal merging), and ends the present process.
[0139] In addition, Figure 8 In the flowchart, even if step S7-2 is replaced by a merge other than CIIP in the future, the merge mode designation unit 241A21 can also specify whether to apply the geometric block segmentation merge based on the judgment result of whether the replaced merge can be applied.
[0140] And, in Figure 8 In the flowchart, even if a merge other than CIIP is added between step S7-2 and step S7-4 in the future, the merge mode designation unit 241A21 can also specify whether to apply the geometric block segmentation merge based on the judgment result of whether the added merge can be applied.
[0141] Second, use Fig. 9 The judgment condition of whether normal merging is applied in step S7-1 is described.
[0142] like Fig. 9 As shown, in step S7-1-1, the merge mode designation unit 241A21 determines whether it is necessary to decode the normal merge flag.
[0143] The merge mode designation unit 241A21 enters step S7-1-2 when it determines that the judgment condition of step S7-1-1 is met, that is, normal merging needs to be decoded; and enters step S7-1-3 when it determines that the judgment condition of step S7-1-1 is not met, that is, normal merging does not need to be decoded.
[0144] Here, when the merge mode designation unit 241A21 determines that there is no need to decode the normal merge flag, it can infer the value of the normal merge flag based on the "general_merge_flag" indicating whether the object block is inter-frame predicted by merging and the sub-block merge flag indicating whether sub-block merging is applied, in the same way as the method described in non-patent document 1.
[0145] Regarding this estimation method, the same method as the method described in Non-Patent Document 1 can be used in this embodiment, so the description thereof is omitted.
[0146] The judgment condition of whether the normal merge flag needs to be decoded in step S7-1-1 is composed of the judgment condition of whether CIIP can be applied and the judgment condition of whether geometric block merging can be applied. Specifically, it is described as follows.
[0147] - Criteria for determining whether CIIP is applicable:
[0148] (1) The area of the target block is 64 pixels or more.
[0149] (2) The CIIP valid flag indicating the SPS level is valid (value is 1).
[0150] (3) The skip mode flag of the display object block is invalid (the value is 0).
[0151] (4) The width of the object block is less than 128 pixels.
[0152] (5) The height of the object block is less than 128 pixels.
[0153] - Whether the merging of geometric blocks can be applied:
[0154] (1) The area of the target block is 64 pixels or more.
[0155] (6) Displays that the SPS-level geometric block segmentation and merging valid flag is valid (the value is 1).
[0156] (7) The maximum number of merge indices that can be registered in the merge list for the block partitioning and merging (hereinafter referred to as the maximum number of candidates for the block partitioning and merging) is greater than 1.
[0157] (8) The width of the target block is 8 pixels or more.
[0158] (9) The height of the target block is 8 pixels or more.
[0159] (10) The slice type including the object block is a B slice (bidirectional prediction slice).
[0160] The merge mode designation unit 241A21 determines that CIIP is applicable when all of the above conditional expressions (1) to (5) are satisfied among the determination conditions of whether CIIP is applicable, and determines that CIIP is not applicable otherwise.
[0161] In addition, regarding each conditional expression of the judgment condition of whether CIIP is applicable, the same conditional expression as that described in Non-Patent Document 1 can be used in this embodiment, and therefore the description thereof is omitted.
[0162] Furthermore, when all of the above-mentioned conditional expressions (1) and (6) to (10) in the judgment conditions for whether the geometric block merging can be applied are satisfied, the merge mode designation unit 241A21 judges that the geometric block splitting and merging can be applied; otherwise, it judges that the geometric block splitting and merging cannot be applied.
[0163] The details of the conditional expressions (1) and (6) to (10) will be described below.
[0164] The merge mode designation unit 241A21 enters step S7-1-2 when any of the conditions in the judgment conditions of whether the normal merge flag needs to be decoded in step S7-1-1, including the judgment conditions of whether CIIP can be applied or whether the geometric block segmentation and merging can be applied, is met; when neither condition is met, the unit enters step S7-1-3.
[0165] In addition, in the judgment condition of whether the normal merge flag needs to be decoded in step S7-1-1, the judgment condition of whether CIIP can be applied can also be removed. This means that only the judgment condition of whether the geometric block partitioning and merging can be applied is added to the judgment condition of whether the normal merge flag needs to be decoded.
[0166] In step S7-1-2, the merge mode designation unit 241A21 decodes the normal merge flag and then proceeds to step S7-1-3.
[0167] In step S7-1-3, the merge mode designation unit 241A21 determines whether the value of the normal merge flag is 1. If it is 1, it proceeds to step S7-5; if it is not 1, it proceeds to step S7-2.
[0168] Next, use Fig.10 The determination condition of whether or not CIIP is applied in step S7-2 is described.
[0169] like Fig.10 As shown, in step S7-2-1, the merge mode designation unit 241A21 determines whether the CIIP flag needs to be decoded.
[0170] The merge mode designation unit 241A21 enters step S7-2-2 when it determines that step S7-2-1 is satisfied, i.e., the CIIP flag needs to be decoded; and enters step S7-2-3 when it determines that step S7-2-1 is not satisfied, i.e., the CIIP flag does not need to be decoded.
[0171] Here, when determining that the CIIP flag does not need to be decoded, the merge mode designation unit 241A21 estimates the value of the CIIP flag in the following manner.
[0172] The merge mode designation unit 241A21 considers that CIIP is valid, that is, the value of the CIIP flag is 1, when all of the following conditions are satisfied, and considers that CIIP is invalid, that is, the value of the CIIP flag is 0 in all other cases.
[0173] (1) The area of the target block is 64 pixels or more.
[0174] (2) The normal merge flag is 0.
[0175] (3) The CIIP valid flag indicating the SPS level is valid (value is 1).
[0176] (4) The skip mode flag of the display object block is valid (the value is 0).
[0177] (5) The width of the object block is less than 128 pixels.
[0178] (6) The height of the object block is less than 128 pixels.
[0179] (12) “general_merge_flag” is 1.
[0180] (13) The sub-block merge flag is 0.
[0181] The judgment condition of whether the CIIP flag needs to be decoded in step S7-2-1 is composed of the above-mentioned judgment condition of whether CIIP can be applied and the judgment condition of whether geometric block segmentation and merging can be performed.
[0182] The merge mode designation unit 241A21 enters step S7-2-2 when the conditions for determining whether CIIP can be applied and the conditions for determining whether geometric block segmentation and merging can be performed are both met; and enters step S7-2-3 when any of the conditions are not met.
[0183] Here, since conditional expression (1) has been determined to be satisfied in the judgment condition of whether the normal merge flag needs to be decoded before entering the judgment condition of whether the CIIP flag needs to be decoded, conditional expression (1) can also be removed from step S7-2-1.
[0184] In step S7-2-2, the merge mode designation unit 241A21 decodes the CIIP flag and proceeds to step S7-1-3.
[0185] In step S7-2-3, the merge mode designation unit 241A21 determines whether the value of the CIIP flag is 1. If it is 1, the process proceeds to step S7-3; if not, the process proceeds to step S7-4.
[0186] (Description of the judgment conditions for whether geometric block segmentation and merging can be performed)
[0187] The following describes in detail the conditions (1) and (6) to (10) for determining whether geometric block segmentation and merging can be performed.
[0188] (1) In order to limit the target blocks to which geometric block segmentation and merging can be applied to relatively large blocks, the area of the target block is set to be greater than 64 pixels.
[0189] (6) A flag indicating whether or not the block segmentation and merging can be applied is newly set at the SPS level. When this flag is invalid, it can be specified that the block segmentation and merging cannot be applied to the target block. Therefore, it is added to the judgment condition of whether or not the block segmentation and merging can be applied.
[0190] (7) In order to avoid being worse than the worst case of the memory bandwidth required for the inter-frame prediction block in the motion compensation prediction of Non-Patent Document 1, the lower limit of the width of the target block is set to 8 pixels or more.
[0191] (8) In order to avoid being worse than the worst case of the memory bandwidth required for motion compensation prediction of the inter-frame prediction block in Non-Patent Document 1, the lower limit of the height of the target block is set to 8 pixels or more.
[0192] (9) The object block to which geometric block partitioning and merging can be applied has two different motion information across the partition boundary. Therefore, when the object block is included in a B slice, it can be specified that geometric block partitioning and merging can be applied to the object block. On the other hand, when the object block is included in a slice other than a B slice, that is, when the object block does not have two different motion vectors, it can be specified that geometric block partitioning and merging cannot be applied to the object block.
[0193] (10) As described above, two different motion information are required for the geometric block segmentation and merging. In the merge list creation unit, the two different motion information are specified (decoded) based on the motion information associated with the two different merge indices registered in the merge list. Therefore, when the maximum number of candidates for the geometric block segmentation and merging is designed or specified to be less than 1, it can be specified that the geometric block segmentation and merging cannot be applied to the object block. Therefore, it is set to have a parameter for calculating the maximum number of candidates for the geometric block segmentation and merging inside the geometric block segmentation unit. The maximum number of candidates for the geometric block segmentation and merging can use the same value as the maximum number of merge indices that can be registered for the merge list for normal merging (hereinafter referred to as the maximum number of candidates for merging), or other values can be used. For example, a flag that specifies how many candidates are to be subtracted from the maximum number of candidates for merging is transmitted from the image encoding device 100 to the image decoding device 200, and the flag is decoded to calculate the other value.
[0194] [Change Example 1: Adding a judgment condition based on the block aspect ratio to the judgment condition of whether the geometric block division and merging can be performed]
[0195] Below, reference Fig.11 , Modification 1 of the present invention will be described focusing on the differences from the above-mentioned first embodiment.
[0196] In this modification example 1, the judgment conditions for whether the above-mentioned geometric block segmentation and merging can be performed can be supplemented with a judgment based on the block size (upper limit) or block aspect ratio of the object block, so as to further limit the application of geometric block segmentation and merging in the object block.
[0197] First, consider adding the following conditional expression: setting the upper limits of the height and width of the target block to which geometric block segmentation and merging can be applied to, for example, to 64 pixels or less.
[0198] The reason why the upper limits of the height and width are set to be less than or equal to 64 pixels is to avoid violation of constraints for maintaining pipeline processing units of the image decoding device 200 called virtual pipeline data units (VPDU) adopted in Non-Patent Document 1.
[0199] In non-patent document 1, since the size of VPDU is set to 64×64 pixels, the upper limit of the application object range of geometric block segmentation and merging is set to 64 pixels.
[0200] On the other hand, the upper limit may be set to a smaller upper limit such as 32 pixels or less, according to the designer's intention.
[0201] In geometric block partition merging, when generating an MC prediction image signal, a mixed mask table is generated. The mixed mask table is obtained by weighting the MC prediction image signal generated based on two different motion vectors across the geometric block partition boundary using the distance from the geometric block partition boundary.
[0202] If the upper limit of the width and height of the object block is reduced, the size of the mixed mask table can be reduced. In practice, it is more ideal to reduce the size of the mixed mask table that needs to be stored in the memory of the image encoding device 100 and the image decoding device 200, thereby reducing the recording capacity of the memory.
[0203] Second, consider adding the following conditional expression: setting the aspect ratio of the target block to which geometric block segmentation and merging can be applied to be set to, for example, 4 or less.
[0204] Such elongated rectangular blocks with an aspect ratio of 8 or more are difficult to be generated in natural images. Therefore, if the application of geometric block partitioning and merging to such rectangular blocks is prohibited, the following effects are achieved: the number of changes in the partitioning shape of the geometric block partitioning described below (the number of changes in the parameters that define the position and direction of the geometric block partitioning boundary within the rectangular block) can be reduced, and the storage capacity of the parameters for defining the changes can be reduced in the image encoding device 100 and the image decoding device 200.
[0205] (Method for defining the block division method in the block division unit)
[0206] Below, reference Fig.11 The method for specifying the block division method in the block division unit 241A22 of this embodiment is described. Fig.11 This is a diagram showing an example of a prescribed method for dividing geometric blocks in the present embodiment.
[0207] For example, Fig.11 As shown, the geometric block division method can be specified by the following two parameters: the position of the geometric block division boundary line, that is, the distance ρ from the center point of the object block divided by the rectangle (hereinafter referred to as the center point) to the geometric block division boundary line (hereinafter referred to as the division boundary line), and the elevation angle φ between the vertical line passing through the center point of the division boundary line and the horizontal direction.
[0208] Then, the combination of the distance ρ and the elevation angle φ can be transmitted from the image encoding device 100 (merging unit 111A2 ) to the image decoding device 200 (merging unit 241A2 ) using an index.
[0209] The more changes there are in the combinations of distance ρ and angle φ that specify the way the geometric blocks are divided, the more reductions in prediction error can be expected. However, on the other hand, there is a trade-off between the increase in processing time required to specify a combination of distance ρ and elevation angle φ and the increase in the code length of the index used to represent the combination. Therefore, quantized distance ρ and elevation angle φ can be used according to the designer's intention.
[0210] Here, the quantized distance ρ may be designed, for example, according to a specific pixel unit, and the quantized elevation angle φ may be designed, for example, according to an angle obtained by equally dividing 360 degrees.
[0211] [Change Example 2: Method for determining the elevation angle ρ]
[0212] Below, reference Fig.12 , focusing on the differences from the first embodiment and the first modification example, the second modification example of the present invention will be described. Fig.12 It is a diagram showing an example of changing the elevation angle φ that specifies the above-mentioned geometric block division method.
[0213] In the above-mentioned modification example 1, as an example of a method for defining the elevation angle φ, a method of defining the elevation angle φ using angles obtained by equally dividing 360 degrees is shown. However, in this modification example, the elevation angle φ may also be defined as follows: Fig.12 As shown in (b), the elevation angle φ is defined using the possible block aspect ratio of the target block and the horizontal and vertical directions.
[0214] For example Fig.12 As shown in (c), the elevation angle φ can be expressed using an inverse tangent function. Fig.12 (a) shows an example in which a total of 24 elevation angles φ are specified.
[0215] [Modification Example 3: Method for Determining the Position (Distance ρ) of the Division Boundary Line]
[0216] Below, reference Fig.13 , Modification 3 of the present invention will be described with a focus on the differences from the first embodiment and Modifications 1 to 2 described above. Fig.13 It is a diagram showing an example of changing the position (distance ρ) that specifies the above-mentioned geometric block division method.
[0217] In the above-mentioned modification examples 1 and 2, the distance ρ is defined as the perpendicular distance from the center point of the target block to the dividing boundary line. However, in this modification example, it may be defined as follows: Fig.13As shown in FIG. 1 , the distance ρ is defined as a specific distance (specific position) in the horizontal direction or the vertical direction from the center point including the center point.
[0218] exist Fig.13 In the example of , two distances ρ are specified according to the block aspect ratio of the target block.
[0219] First, as Fig.13 As shown in (a), for the horizontally long block, the distance ρ can be specified only in the horizontal direction.
[0220] Second, if Fig.13 As shown in (b), for a vertically long block, the distance ρ can be specified only in the vertical direction.
[0221] Here, as long as the elevation angle φ of the horizontal block is 0 degrees (180 degrees), and as long as the elevation angle of the vertical block is 90 degrees (270 degrees), the distances ρ in the vertical direction and the horizontal direction can be specified respectively.
[0222] In addition, for a square block, the distance ρ can be specified in either the horizontal direction or the vertical direction or in both directions. Fig.13 As shown in the figure, for a specific distance (specific position) obtained by dividing the width or height of the target block into eight equal parts, the distance ρ may be varied.
[0223] exist Fig.13 In the example, the distance ρ is defined as a distance (position) that is 0 / 8 times, 1 / 8 times, 2 / 8 times, or 3 / 8 times the width or height of the object block in the horizontal direction (left-right direction) or vertical direction (up-down direction) from the center point.
[0224] Here, except when the elevation angle of the horizontal block is 0 degrees (180 degrees) and the elevation angle of the vertical block is 90 degrees (270 degrees), the reason why the vertical and horizontal distances (distances in the short side direction) are not specified is that the effect of increasing the number of changes in the geometric block division method by specifying the distance ρ in the short side direction is smaller than the effect of increasing the number of changes in the geometric block division method by specifying the distance ρ in the long side direction.
[0225] like Fig.13 As shown, the division boundary line of the geometric block division can be designed as a perpendicular line relative to the elevation angle φ, and passes through the division boundary line and a point at a specific distance (specific position) ρ specified in the above manner.
[0226] In addition, this modification example 3 can be combined with the above-mentioned modification example 2, and the angle of 180 degrees in the elevation angle φ is the same as the vertical line relative to the above-mentioned distance ρ, that is, the dividing boundary line is the same.
[0227] So, for example Fig.13As shown, the elevation angle φ within the range of greater than 0 degrees and less than 180 degrees and the elevation angle φ within the range of greater than 180 degrees and less than 360 degrees are linearly symmetric about the center point. The duplication of the geometric block division method can be avoided by restricting the use of the distance ρ in the left and right directions or the up and down directions respectively.
[0228] The combination of the range of the elevation angle φ and the distance ρ in the horizontal direction (left-right direction) and the vertical direction (up-down direction) represents the same change in the geometric block division method even if it is reversed. Therefore, the implementation method can be freely changed according to the designer's intention.
[0229] [Change Example 4: Change or reduction of the method for defining the elevation angle φ and the position (distance) ρ]
[0230] Below, reference Figure 14 to Figure 15 , focusing on the differences from the first embodiment and modifications 1 to 3 described above, modification 4 of the present invention will be described. Fig.14 It is a diagram showing a modification example regarding the method of defining the elevation angle φ and the distance ρ.
[0231] In the above modification example 2, a method of defining the elevation angle φ using the block aspect ratio is described. In the above modification example 3, a method of defining the distance (position) ρ using specific distances (specific positions) in the horizontal and vertical directions from the center point is described.
[0232] In this modification, in order to simplify the implementation of the elevation angle φ and the distance (position) ρ, it is also possible to Fig.14 As shown in (a) to (c), the division boundary line itself is implemented by specifying a line passing through a point located at a specific distance (position) ρ and represented by an elevation angle φ.
[0233] Furthermore, in order to reduce the number of geometric block partitions, Fig.14 As shown in (a) to (c), the change in distance ρ and the change in elevation angle φ are reduced.
[0234] Specifically, in Fig.14 In (a) to (c), the change in the distance ρ shown in the above-mentioned modification example 3 is limited to two types: 0 / 8 times and 2 / 8 times the width or height of the target block.
[0235] And, in Fig.14 In the examples (a) to (c), the possible values of the change in the elevation angle φ are limited according to the position where the dividing boundary line passes and the aspect ratio of the target block. Fig.14 In the examples (a) to (c), the variations in the way the geometric blocks are divided are limited to a total of 16 types.
[0236] (How to specify the geometry partitioning method)
[0237] Below, reference Fig.15 This section explains how to specify the geometry block partitioning method. Fig.15 This is a diagram showing an example of an index table representing combinations of elevation angle φ and distance (position) ρ in the above-described predetermined geometric block partitioning method.
[0238] exist Fig.15 In the example, the elevation angle φ and distance ρ that specify the geometric block partitioning method are associated with "angle_idx" and "distance_idx" respectively, and their combination is specified by "partition_idx".
[0239] For example, Fig.12 As shown in the table, "angle_idx" and "distance_idx" are used with integers from 0 to 23 and 0 to 3 respectively to specify the elevation angle φ and distance ρ shown in the above-mentioned modification example 2 and modification example 3. By decoding the "partition_idx" representing the combination, the elevation angle φ and the distance ρ are uniquely determined. Therefore, the geometric block partitioning method can be uniquely specified.
[0240] The image encoding device 100 and the image decoding device 200 each maintain an index table representing the geometric block partitioning method. The image encoding device 100 transmits the "partition_idx" corresponding to the geometric block partitioning method with the lowest encoding cost when the geometric block partitioning is valid to the image decoding device 200, and the geometric block partitioning unit 241A22 of the image decoding device 200 decodes the "partition_idx".
[0241] [Modification Example 5: Control of the Decoding Method of “partition_idx” According to the Size or Aspect Ratio of the Target Block]
[0242] Below, reference Fig.16 , Modification 5 of the present invention will be described with a focus on the differences from the first embodiment and Modifications 1 to 4 described above. Fig.16 This is a diagram for explaining an example of controlling a decoding method of "partition_idx" according to the block size or block aspect ratio of the target block.
[0243] In the above example, as an example of a method for specifying a geometric block partitioning method, a method for decoding "partition_idx" independently of the block size or the aspect ratio of the target block (a method for specifying a geometric block partitioning method using a fixed index table) is shown.
[0244] On the other hand, in this modification example, the following consideration is given to a method of further improving the encoding efficiency by controlling the decoding method of "partition_idx" according to the block size or aspect ratio of the target block.
[0245] If we focus on the block size or aspect ratio of the target block, Fig.16 As shown, in a relatively small block such as an 8×8 pixel block and a relatively large block such as a 32×32 pixel block, even if the number of changes in the dividing boundary lines is the same, the density of the dividing boundary lines relative to the area of the block may be different.
[0246] Likewise, if Fig.16 As shown, it is considered that the density of the dividing boundary lines may be different in the horizontal and vertical directions of the horizontally long blocks and the vertically long blocks.
[0247] In this case, for example, the index table for specifying the elevation angle φ and the distance ρ based on “partition_idx” may be changed according to the block size or the block aspect ratio of the target block.
[0248] For example, for an object block with a smaller block size, an index table with fewer geometric block segmentation methods, that is, a smaller maximum value of "partition_idx", is used; for an object block with a larger block size, an index table with more geometric block segmentation methods, that is, a larger maximum value of "partition_idx", is used. As a result, compared with the above example using a fixed index table, the coding efficiency can be improved.
[0249] Furthermore, the correlation between the block size and the number of block partitioning methods (the proportional relationship between the block size and the number of block partitioning methods) may be reversed.
[0250] In other words, for object blocks with smaller block sizes, an index table with a larger number of geometric block partitioning methods, that is, a larger maximum value of "partition_idx", can be used; for object blocks with larger block sizes, an index table with a smaller number of geometric block partitioning methods, that is, a smaller maximum value of "partition_idx" can be used.
[0251] When the block size of the object block is proportional to the number of geometric block partitioning methods, the density of the partitioning boundary lines can be made uniform even if the block sizes of the object block are different.
[0252] Therefore, the following effect can be expected: the probability of aligning the division boundary line of the geometric block division with the object boundary generated in the object block can be made uniform for each block size.
[0253] On the other hand, when the block size of the object block is inversely proportional to the number of geometric block division methods, the above effect cannot be expected, but the following effect can be expected: the probability of aligning the division boundary line with the object boundary is further increased within a smaller block size.
[0254] Generally speaking, in natural images, areas with complex object boundaries (appearing in multiple arbitrary directions) are more likely to be encoded using smaller blocks. On the other hand, when object boundaries appear in directions close to the horizontal or vertical direction, they are more likely to be encoded using larger blocks because the error with rectangular block segmentation is smaller.
[0255] Therefore, based on this idea, by increasing the number of geometric block segmentation methods for smaller blocks, we can expect to further increase the probability of aligning the segmentation boundary line with the object boundary, and as a result, we can expect to achieve the effect of reducing the prediction error.
[0256] Similarly, for horizontally long blocks, the number of geometric block division methods can be increased in the horizontal direction, and conversely, the number of geometric block division methods can be reduced in the vertical direction.
[0257] On the other hand, for vertically long blocks, the number of geometric block division methods can be increased in the horizontal direction, and conversely, the number of geometric block division methods can be reduced in the vertical direction.
[0258] Furthermore, as shown in the above description of the block size and the number of block division methods, the correlation between the block aspect ratio and the number of block division methods may be reversed.
[0259] In other words, for horizontally long blocks, the number of ways to divide the geometric blocks can be reduced in the horizontal direction, and conversely, the number of ways to divide the geometric blocks can be increased in the vertical direction.
[0260] On the other hand, for vertically long blocks, the number of geometric block division methods can be reduced in the horizontal direction, and conversely, the number of geometric block division methods can be increased in the vertical direction.
[0261] The reason for reversing the correlation in this way is the same as the idea shown in the description of the correlation between the size of the block and the number of geometric block divisions mentioned above, so its description is omitted.
[0262] In addition, similar to the above case, the method of controlling the number of geometric block division methods based on the block aspect ratio can be achieved by changing the index table used.
[0263] As another embodiment, the following scheme may be considered: the index table itself is fixed, but the range of decodable "partition_idx" values on the index table is limited according to the block size or aspect ratio of the target block.
[0264] In this way, the code length state will not become shorter, which is not conducive to improving the coding efficiency. However, from the perspective of the image encoding device 100, unnecessary processes until the cost calculation in the geometric block division method can be omitted, which is conducive to speeding up the encoding process.
[0265] <Second embodiment>
[0266] Below, reference Figures 17 to 22 , a second embodiment of the present invention will be described focusing on the differences from the above-mentioned first embodiment.
[0267] (Confirmation of whether sports information is available)
[0268] Next, the motion information availability confirmation process according to the present embodiment will be described.
[0269] As described above, the confirmation process of whether the motion information is available is the first processing step constituting the merge list creation process.
[0270] Specifically, the motion information availability confirmation process is to confirm whether there is motion information in a reference block that is spatially or temporally adjacent to the target block. Here, regarding the motion information confirmation method, the known method described in Non-Patent Document 1 can be used in this embodiment, so its description is omitted.
[0271] (Registration and cutting of motion information in the merged list)
[0272] Below, reference Fig.17 The motion information registration and clipping process in the merge list according to this embodiment will be described.
[0273] Fig.17 This is a flowchart showing an example of the motion information registration and clipping process in the merge list according to the present embodiment.
[0274] like Fig.17 As shown, similarly to Non-Patent Document 1, the motion information registration and cropping process in the merge list of this embodiment may also be composed of a total of five motion information registration and cropping processes.
[0275] Specifically, the motion information registration and clipping process can be composed of spatial merging in step S14-1, temporal merging in step S14-2, historical merging in step S14-3, pairwise average merging in step S14-4, and zero merging in step S14-5. The details of each process will be described below.
[0276] Fig.181 is a diagram showing an example of a merge list created as a result of the motion information registration and cropping process in the merge list. As described above, the merge list is a list in which motion information corresponding to a merge index is registered.
[0277] Here, the maximum number of merge indexes is set to 5 in Non-Patent Document 1, but can be freely set according to the designer's intention.
[0278] and, Fig.18 mvL0, mvL1, RedldxL0, and RefldxL1 represent the motion vectors and reference image indexes of reference image lists L0 and L1, respectively.
[0279] Here, the reference image lists L0 and L1 represent lists in which reference frames are registered, and the reference frames are specified by Refldx.
[0280] In addition, Fig.18 The merge list shown shows motion vectors and reference image indexes for both L0 and L1, but sometimes a unidirectional prediction is used depending on the reference block.
[0281] In this case, one (unidirectional prediction) motion vector and one reference image index are registered in the list. In addition, when it is confirmed that there is no motion information in the reference block through the above-mentioned confirmation process of whether the motion information is available in the previous stage of each process from step S15-1 to step S15-4, each process is skipped.
[0282] (Space Merge)
[0283] Fig.19 It is a diagram used to illustrate space merging.
[0284] Spatial merging is a technique that inherits mv, Refldx, and hpellfldx from adjacent blocks existing in the same frame as the object block.
[0285] Specifically, the merge list creation unit 241A23 is configured to Fig.15 The above mv, Refidx, and hpelfldx are used in the adjacent blocks with the positional relationship shown in the figure and registered in the merge list. As in non-patent document 1, the processing order can be as follows: Fig.19 shown This order.
[0286] (Motion information clipping)
[0287] In addition, the motion information registration process in the merged list can be performed in the above-mentioned processing order. Similar to non-patent document 1, the motion information clipping process can also be implemented so that the motion information identical to the already registered motion information will not be registered in the merged list.
[0288] The purpose of implementing the motion information cropping process is to increase the variation of the motion information registered in the merge list. From the perspective of the image encoding device 100, the motion information with the minimum specific cost can be selected according to the image characteristics.
[0289] On the other hand, the image decoding device 200 can generate a prediction signal with high prediction accuracy using the motion information selected by the image encoding device 100, and as a result, it can be expected that the encoding performance will be improved.
[0290] In the motion information clipping process for spatial merging, for example, when a file corresponding to B is registered in the merging list 1 When the corresponding motion information is used, the next processing sequence is A 1 When registering the corresponding motion information, confirm that the registered 1 Here, the confirmation of the identity of the motion information refers to comparing whether mv and Refldx are the same. Here, if the identity is confirmed, then A 1 The corresponding motion information will not be registered in the merge list.
[0291] In addition, the structure is to be combined with B 0 The corresponding motion information and B 1 The corresponding motion information is compared with A 0 The corresponding motion information and A 1 The corresponding motion information is compared with B 2 The corresponding motion information and B 1 and A 1 In addition, when there is no corresponding motion information at the compared position, the confirmation of identity may be skipped and the corresponding motion information may be registered.
[0292] Furthermore, in Non-Patent Document 1, the maximum number of registrable merge indexes for spatial merging is set to 4. 2 , when four motion information have been registered in the merge list through the spatial merge processing so far, the adjacent block B is skipped 2 In this embodiment, as in non-patent document 1, the adjacent block B can also be determined based on the existing motion information registration number. 2 processing.
[0293] (Time Merge)
[0294] Fig. 20 It is a diagram for explaining time merging.
[0295] Temporal merging is a technique that combines the lower left neighboring blocks ( Fig.17 C 1 ) or a block at the same location ( Fig.17 C 0 ) is designated as the reference block, and the motion vector and reference image index are used.
[0296] When using the temporal merge list, the maximum number of registrations of motion information in the merge list is 1 in Non-Patent Document 1. In the present embodiment, the same value may be used or may be changed according to the designer's intention.
[0297] Also, the motion vectors used in temporal merging are scaled. Fig.21 is a diagram showing the scaling process.
[0298] Specifically, if Fig.21 As shown, based on the distance tb between the reference frame of the object block and the frame where the object frame is located and the distance td between the reference frame of the reference block and the reference frame of the reference block, the mv of the reference block is scaled as follows.
[0299] mv'=(td / tb)×mv
[0300] In the temporal merge, the scaled mv' is registered in the merge list as a motion vector corresponding to the merge index.
[0301] (Historical Merge)
[0302] Fig. 22 is a diagram used to illustrate historical merging.
[0303] Historical merging is a technology that records the motion information of the inter-frame prediction block that has been encoded before the object block in a recording area called the historical merging table in advance. When the number of motion information registered in the merge list has not reached the maximum number at the end of the processing of the above-mentioned spatial merging and temporal merging, the motion information registered in the historical merging table is registered in the merge list in sequence.
[0304] Fig. 22 2 is a diagram showing an example of a process of registering motion information in a merge list using a history merge table.
[0305] The motion information registered in the history merge table is managed by the history merge index, and the maximum number of registrations is 6 in non-patent document 1, and the same value can be used or changed according to the designer's intention.
[0306] Furthermore, the registration process of the motion information in the history merge table adopts FIFO processing in Non-Patent Document 1. That is, when the motion information registered in the history merge table reaches the maximum number of registrations, the motion information associated with the last registered history merge index is deleted, and the motion information associated with the new history merge index is registered in sequence.
[0307] In addition, similar to Non-Patent Literature 1, when the target block straddles CTUs, the motion information registered in the history merging table may be initialized (all motion information may be deleted from the history merging table).
[0308] (pairwise average merge)
[0309] The pairwise average merge is a technique of generating new motion information using motion information associated with two sets of merge indexes registered in the merge list, and registering the new motion information in the merge list.
[0310] As for the two sets of merge indexes used for pairwise average merge, the 0th and 1st merge indexes registered in the merge list may be fixedly used as in Non-Patent Document 1, or may be changed to another combination of two sets according to the designer's intention.
[0311] In the pairwise average merge, the motion information associated with two sets of merge indexes registered in the merge list is averaged to generate new motion information.
[0312] Specifically, for example, when there are two motion vectors corresponding to the two groups of combined indices (ie, when bidirectional prediction is used), the motion vectors mvL0P in the L0 and L1 directions are respectively 0 / mvL0P 1 、mvL1P 0 / mvL1P 1 , the pairwise average merged motion vectors mvL0Avg / mvL1Avg are calculated in the following manner.
[0313] mvL0Avg=(mvL0P 0 +mvL0P 1 ) / 2
[0314] mvL1Avg=(mvL1P 0 +mvL1P 1 ) / 2
[0315] Here, when mvL0P 0 and mvL1P 0 or mvL0P 1 and mvL1P 1 When any one of does not exist, the non-existent vector is set as a zero vector and calculated as follows.
[0316] At this time, in non-patent document 1, it is stipulated that the merge index P 0 The associated reference image index RefldxL0P 0 / RefldxL0P 1 as the reference image index associated with the pairwise average binning index.
[0317] (Zero Merge)
[0318] Zero merging is a process in which a zero vector is added to the merge list when the number of motion information registered in the merge list has not reached the maximum number of registrations at the time when the pairwise average merging process is completed. As for the registration method, the known method described in Non-Patent Document 1 can be used in this embodiment, so its description is omitted.
[0319] (Processing of decoding motion information from the merge list)
[0320] The merge list creation unit 241A23 is configured to decode the motion information from the merge list created after the motion information registration and cropping process are completed.
[0321] For example, the merge list creation unit 241A23 is configured to select, from the merge list, motion information corresponding to the merge index transmitted from the merge list creation unit 111A23 and decode the motion information.
[0322] On the other hand, although the method of selecting the merge index in the merge list creation unit 111A23 is not shown in the figure, it is configured to transmit the motion information with the minimum encoding cost to the merge list creation unit 241A23.
[0323] Here, regarding the merge index, the merge index with an earlier registration order in the merge list, that is, a smaller index number, has a shorter code length (lower encoding cost). Therefore, there is a tendency for the merge index with a smaller index number to be easily selected by the merge list creation unit 111A23.
[0324] Here, in the merge list creation unit 241A23, when the geometry block segmentation merge is invalid, a merge index is decoded for the object block, but when the geometry block merge is valid, for the object block, there are two areas m / n that cross the geometry block segmentation boundary, so two different merge indexes m / n are decoded respectively.
[0325] For example, by decoding the merge index m / n in the following manner, even if the merge index for m / n transmitted from the merge list creation unit 111A2 is assumed to be the same, a different merge index can be assigned to m / n.
[0326] m = merge_idx0[xCb][yCb]
[0327] n=merge_idx1[xCb][yCb]+(merge_idx1[xCb][yCb]>=m)? 1:0
[0328] Here, xCb and yCb are position information of the pixel value located at the upper leftmost position of the target block.
[0329] In addition, when the maximum number of merge candidates for block segmentation and merging is less than two, merge_idx1 may not be decoded. This is because when the maximum number of merge candidates for block segmentation and merging is less than two, the merge index in the merge list corresponding to merge_idx1 will be assigned a different merge index from the merge index in the merge list selected by merge_idx0.
[0330] [Change Example 6: Control of Merge List Creation when Block Split Merge is Valid]
[0331] Below, reference Fig.23 and Fig.24 , focusing on the differences from the above-mentioned second embodiment, the modification example 6 of the present invention is described. Specifically, referring to Fig.23 and Fig.24 , the control of creating a merge list when the geometric block splitting and merging is effective in this modification example is explained.
[0332] Fig.23 and Fig.24 This is a diagram showing an example of a block division method in a target block when block division and merging is effective, and an example of a positional relationship between spatial merging and temporal merging of the target block.
[0333] When the object block is Fig.23 When the geometric block partitioning method is shown, the adjacent block with motion information closest to the two regions m / n across the block partition boundary is B for m. 2 , for n, it is B 1 / A 1 / A 0 / B 0 / C 1 .
[0334] And, when the object block is Fig.21 When the geometric block partitioning method is shown, the adjacent block with motion information closest to the two regions m / n across the partition boundary is C 1 , for n is B 1 / A 0 / A 1 / B 0 / B 2 .
[0335] When geometric block partitioning is effective, the effect of improving prediction accuracy can be expected by easily registering the motion information of the adjacent block closest to the above m / n in the merge list.
[0336] Furthermore, from the perspective of improving prediction accuracy, by reducing B 1 / B 0 or A 1 / A 0 The registration priority of such motion information at similar spatial locations in the merge list is B 2 or C 1 By adding motion information at different spatial positions to the merge list, we can expect to further improve the prediction accuracy.
[0337] In addition, as described above, if the motion information of the closest neighboring block is registered in the merge list as a merge index with a smaller index number, the encoding efficiency can be improved.
[0338] For example, through the above configuration, when the motion information whose registration priority in the merge list is to be changed is B 0 and A 0 Even if it is confirmed that there is motion information at these positions in the motion information availability confirmation process, the motion information is considered unavailable, thereby improving the efficiency of the subsequent B. 0 and A 0 After B 2 and C 1 The probability that the corresponding motion information is registered in the merge list.
[0339] [Change Example 7: Other methods of changing registration priority of sports information]
[0340] Next, a modification example 7 of the present invention will be described with a focus on the differences from the second embodiment and modification example 6. In the modification example 6, the change process of the registration priority of motion information when the geometric block segmentation and merging is effective can be performed by, for example, even when there is motion information or when the identity with the already registered motion information is confirmed, a specific position in the spatial merging process, such as B 0 and A 0 The motion information of B is considered unusable to indirectly improve the subsequent spatially or temporally adjacent motion information, such as B 2 or C 1 (C 0 )’s motion information is registered (priority).
[0341] On the other hand, another method of changing the registration priority of the motion information will be described below.
[0342] For example, you can Fig.17 The processing order of the spatial merging of step S14-1 and the temporal merging of step S14-2 in the merging list shown in FIG. 1 is split, and the order of registering motion information is directly changed. For example, when applying geometric block segmentation merging, B in the spatial merging process 0 and A 0 Previously, the B that implemented the spatial merging 2 and the registered motion information C is merged by time 1 or C 0 (hereinafter referred to as Col).
[0343] For example, consider the following two embodiments.
[0344] Embodiment 1: A method for making a merge list of normal merges and a merge list branch according to whether to apply geometric block segmentation and merging
[0345] if(!merge_geo_flag)
[0346] i=0
[0347] if(availableFlagB1)
[0348] mergeCandList[i++]=B1
[0349] if(availableFlagA1)
[0350] mergeCandList[i++]=A1
[0351] if(availableFlagB0)
[0352] mergeCandList[i++]=B0
[0353] if(availableFlagA0)
[0354] mergeCandList[i++]=A0
[0355] if(availableFlagB2)
[0356] mergeCandList[i++]=B2
[0357] if(availableFlagC1)
[0358] mergeCandList[i++] = Col
[0359] else
[0360] i=0
[0361] if(availableFlagB1)
[0362] mergeCandList[i++]=B1
[0363] if(availableFlagA1)
[0364] mergeCandList[i++]=A1
[0365] if(availableFlagB2)
[0366] mergeCandList[i++]=B2
[0367] if(availableFlagC1
[0368] mergeCandList[i++] = Col
[0369] if(availableFlagB0)
[0370] mergeCandList[i++]=B0
[0371] if(availableFlagA0)
[0372] mergeCandList[i++]=A0
[0373] Here, merge_geo_flag is an internal parameter that carries the result of determining whether to apply geometric block segmentation and merging. When the parameter is 0, it indicates that geometric block segmentation and merging are not applied. When the parameter is 1, it indicates that geometric block segmentation and merging are applied.
[0374] In addition, availableFlag is an internal parameter that carries the result of the determination of whether the motion information of each merging candidate of spatial merging and temporal merging is available for confirmation processing. When the parameter is 0, it indicates that there is no motion information, and when the parameter is 1, it indicates that there is motion information.
[0375] In addition, mergeCandList indicates the registration process of motion information at each position. In the first if sentence, merge_geo_flag is used to determine whether to apply the geometric block segmentation and merging. If it is determined not to be applied, the merge list creation process similar to the normal merge is entered. If it is determined to be applied, the merge list creation process of the geometric block segmentation and merging of the motion information availability confirmation process and the motion information registration and clipping process is entered, replacing the normal merge with the motion information availability confirmation process.
[0376] Embodiment 2: Method for creating a merge list of partially shared normal merge and geometric block segmentation merge
[0377] i=0
[0378] if(availableFlagB1)
[0379] mergeCandList[i++]=B1
[0380] if(availableFlagA1)
[0381] mergeCandList[i++]=A1
[0382] if(availableFlagB0&&!merge_geo_flag)
[0383] mergeCandList[i++]=B0
[0384] if(availableFlagA0&&!merge_geo_flag)
[0385] mergeCandList[i++]=A0
[0386] if(availableFlagB2)
[0387] mergeCandList[i++]=B2
[0388] if(availableFlagC1)
[0389] mergeCandList[i++] = Col
[0390] if(availableFlagB0&&merge_geo_flag)
[0391] mergeCandList[i++]=B0
[0392] if(availableFlagA0&&merge_geo_flag)
[0393] mergeCandList[i++]=A0
[0394] In this second embodiment, the total number of processing levels increases compared to the first embodiment, but since the merge list for geometric block segmentation and merging is partially shared with the normal merge list, as described in the first embodiment, there is an advantage that there is no need to have completely independent merge list creation processing loop resources.
[0395] Furthermore, in the above configuration, it is shown that B 2 and Col has higher registration priority than B 0 and A 0 But it can also make B 2 and Col has higher registration priority than B 1 As another example, B 2 Or Col has a higher priority than B 0 and A 0 , or B 2 Or Col has a higher priority than B 1 and A 1 .
[0396] In addition, when B 2 In B 1 , A 1 , B 0 , A 0 If it was previously registered in the merge list, it is also possible to cancel the B shown above. 2 Same as B 1 , A 1 , B 0 , confirm the identity of the motion information corresponding to A (comparison condition). 1 and A 1 When the corresponding motion information is added, the same as B 2 The identity of the corresponding motion information is confirmed.
[0397] Furthermore, the above describes a method for changing the registration priority of motion information during the process of creating a merge list. However, the registration priority may be changed after the merge list is created using the method described below.
[0398] Specifically, when registering motion information in the merge list, whether the motion information corresponding to any merge process and any position is registered is saved in advance as an internal parameter until the motion vector is decoded (selected). 0 and A 0 The merge index number of the motion information for a specific merge process and a specific position and the merge index number of the temporal merge Col are changed in order, so that the priority of the temporal merge Col is higher than that of the spatial merge Col. 0 and A 0 (Association with a smaller merge index number can be achieved.) The same method can also be used to achieve the above-mentioned example of indirectly or directly changing the order of registration priority of motion information.
[0399] As described above, as a side effect of changing the registration priority of motion information after the merge list creation process, the merge list creation process when the block partitioning merge is effective and the merge list creation process in the normal merge can be shared.
[0400] Specifically, the processing order of the motion information availability confirmation process in the merge list creation process in the normal merge and the geometric block partition merge and the respective merge processes in the motion information registration and clipping processes can be shared.
[0401] [Change Example 8: Change in the order of creating a merge list according to the block size]
[0402] Next, Modification 8 of the present invention will be described focusing on the differences from the second embodiment and Modifications 6 and 7 described above.
[0403] In the above-mentioned modification examples 6 and 7, as a criterion for determining whether to change the registration priority of the motion information, a configuration is shown in which a determination is made based on whether to apply geometric block partitioning and merging.
[0404] On the other hand, in the present modification example, the judgment criterion may be based on the geometric block division method or the block size and aspect ratio of the target block.
[0405] According to this configuration, by confirming the degree of the geometric block division method and changing the registration priority of the motion information in the merge list, it is expected that the effect of further improving the prediction accuracy can be achieved.
[0406] (Two different motion information selection (decoding) methods)
[0407] Next, the method of selecting (decoding) two different motion information when the geometric block partitioning and merging is effective in this embodiment is described.
[0408] It is described above that when the geometric block segmentation and merging is effective, the object block has two different motion information across the segmentation boundary line. In addition, it is described above that for these two different motion information, the encoding device 100 selects the motion information with the minimum coding cost from the above merge list, uses two merge indexes merge_geo_idx0 and merge_geo_idx1 for each segment area m / n, to specify the merge index number of the merge list, and transmits it to the image decoding device 200 to decode the corresponding motion information.
[0409] On the other hand, when two motion information are registered under the specified merge index number, specifically, when the adjacent blocks registered in the above-mentioned merge processing are bidirectionally predicted (having motion information in L0 and L1 respectively), these two motion information may be registered under one merge index, so it is necessary to select any one motion information.
[0410] Next, an example of the selection method will be described.
[0411] For example, as a configuration example, a method of presetting the priority of motion information to be decoded according to the order of the merge index numbers of the merge list can be cited. Specifically, in the processing order of the merge index numbers, for example, if they are even numbers 0, 2, and 4, the motion information registered in L0 of the merge index is decoded first, and if they are odd numbers 1, 3, and 5, the motion information registered in L1 is decoded first.
[0412] In the above configuration example, when there is no motion information of L0 or L1 corresponding to each number sequence, the existing motion information may be decoded. Also, L0 and L1 corresponding to even numbers and odd numbers may be swapped.
[0413] Other configuration examples will be described below. For example, the distances between the target frame including the target block and the reference frames indicated by the reference indices corresponding to L0 and L1 may be compared, and the motion information of the reference frame including the closer distance may be preferentially decoded.
[0414] As described above, when geometric block segmentation and merging is effective, when two different motion information are registered in the merge list for the merge index of the segmented area, the motion information of the reference frame that is closer to the object frame is preferentially decoded, thereby expecting the effect of reducing the prediction error.
[0415] In addition, when the distance difference between the reference frame and the object frame corresponding to two different motion information is the same, as described above, the priority pre-set for the merge index number of the merge list can be adopted, that is, when it is an even number 0, 2, or 4, the motion information registered in L0 is given priority, and when it is an odd number 1, 3, or 5, the motion information registered in L1 is given priority.
[0416] According to the picture order count (POC) of the target frame, the distance difference with the reference frames included in L0 and L1 will be the same, so the priority can also be determined in the above manner.
[0417] Alternatively, the merge index number of the merge list may be used to select a list opposite to the list selected using the previous index number. For example, when L0 is selected using the 0th merge index, the opposite list L1 may be selected using the first merge index of the merge list. In addition, when the frame distance difference is the same in the 0th merge index of the merge list, L0 may also be referenced.
[0418] In the above, a configuration example is shown in which motion information whose distance between a target frame and a reference frame is close is preferentially decoded. Conversely, motion information whose distance between a target frame and a reference frame is far may be decoded.
[0419] Furthermore, two merge indexes merge_geo_idx0 and merge_geo_idx1 for each divided region m / n may be used to decode motion information of a shorter distance and motion information of a longer distance, thereby changing the decoding priority of the motion information.
[0420] (Prediction signal generation process in geometric block segmentation and merging)
[0421] Next, the prediction signal generation processing method when the geometric block segmentation and merging is effective in this embodiment is described.
[0422] It is described above that when the geometric block segmentation and merging is effective, the object block has two different motion information across the segmentation boundary. At this time, for the object block, the motion compensation prediction signals generated based on the two different motion vectors are weighted averaged (mixed) using a weight depending on the distance from the segmentation boundary, thereby expecting a smoothing effect of the pixel values at the segmentation boundary.
[0423] Regarding the above-mentioned weights, for example, for a geometric block partitioning method, the image encoding device 100 and the image decoding device 200 have a weight table (mixing table), whereby as long as the geometric block partitioning method can be specified, a mixing process suitable for the geometric block partitioning method can be implemented.
[0424] According to the above-mentioned embodiment, by applying geometric block segmentation and merging to the object blocks divided by rectangles, a suitable block segmentation shape is selected for the object boundaries appearing in any direction. As a result, it is possible to achieve the effect of improving the encoding performance by reducing the prediction error and the effect of improving the subjective image quality by selecting a suitable block segmentation boundary for the object boundary.
[0425] In addition, the merge list creation unit 111A2 may be configured to regard the motion information as unusable when confirming whether the motion information is usable, regardless of whether the motion information for a specific merge process exists, depending on whether the geometric block segmentation merge is applied.
[0426] Furthermore, the merge list creation unit 111A2 may also be configured to treat the motion information for a specific merge process as a clipping object regardless of its identity with the motion information already registered in the merge list, depending on whether geometric block segmentation and merging are applied. That is, the motion information will not be newly registered in the merge list during motion information registration and clipping processing.
[0427] The above-described image encoding apparatus 100 and image decoding apparatus 200 may be realized by a program that causes a computer to execute each function (each step).
[0428] In addition, in the above-mentioned embodiments, the application of the present invention to the image encoding device 100 and the image decoding device 200 is described as an example, but the present invention is not limited to this and can also be applied to an image encoding / decoding system having the functions of the image encoding device 100 and the image decoding device 200.
[0429] [Explanation of Symbols]
[0430] 10: Image processing system;
[0431] 100: an image encoding device;
[0432] 111, 241: inter-frame prediction unit;
[0433] 111A mv: export unit;
[0434] 111A1, 241A1: AMVP Department;
[0435] 111A2, 241A2: Merger Department;
[0436] 111B, 241B: mv refinement section;
[0437] 111C, 241C: prediction signal generating unit;
[0438] 111A21, 241A21: Merge mode designation unit;
[0439] 111A22, 241A22: geometric block segmentation unit;
[0440] 111A23, 241A23: Merge list creation department;
[0441] 112, 242: intra prediction unit;
[0442] 121: Subtractor;
[0443] 122, 230: adder;
[0444] 131: Transformation and Quantization Department;
[0445] 132, 220: inverse transform and inverse quantization unit;
[0446] 140: Coding department;
[0447] 150, 250: loop filter processing unit;
[0448] 160, 260: frame buffer;
[0449] 200: image decoding device;
[0450] 210: Decoding unit.
Claims
1. An image decoding device, characterized in that: The image decoding device comprises: a merging unit configured to apply geometric block partitioning and merging to the object block divided into rectangular blocks; The merging unit includes: a merging mode designating unit configured to designate whether to apply the geometric block segmentation and merging. The merge mode designation unit determines whether to apply the geometric block partitioning and merging according to the block aspect ratio of the object block.
2. The image decoding device according to claim 1, characterized in that The merge mode designation unit prohibits application of the geometric block partitioning and merging to the object block when the block aspect ratio of the object block is 8 or greater.