Image decoding device, image decoding method, and program

The image decoding device optimizes motion vector candidate selection in GPM by considering block partition shapes, reducing coding overhead and improving encoding efficiency.

JP7735228B2Active Publication Date: 2025-09-08KDDI CORP
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2022107167
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-07-01
Publication Date
2025-09-08
Estimated Expiration
2042-07-01

Smart Images

  • Figure 0007735228000001
    Figure 0007735228000001
  • Figure 0007735228000002
    Figure 0007735228000002
  • Figure 0007735228000003
    Figure 0007735228000003
Patent Text Reader

Abstract

To improve encoding efficiency in GPM.SOLUTION: An image decoding device 200 comprises a selection unit 205 which on the basis of control information and moving vector candidates, determines a moving vector as movement information. The selection unit 205 selects a moving vector candidate from among moving vectors in a block in the vicinity of a decoding object block on the basis of the control information.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

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

[0002] Non-Patent Documents 1 and 2 disclose a geometric partitioning mode (GPM). In GPM, a rectangular block is divided diagonally into two parts, and each part is motion compensated. Specifically, the divided small areas are motion compensated using a motion vector and then combined using a weighted average. [Prior art documents] [Non-patent literature]

[0003] [Non-Patent Document 1] ITU-T H.266 / VVC [Non-patent document 2] CE4:Summary report on Inter prediction with geometric partitioning, JVET-Q0024 Summary of the Invention [Problem to be solved by the invention]

[0004] In Non-Patent Document 1 and Non-Patent Document 2, motion vector candidates are selected from neighboring blocks without considering the positional relationship or shape of the divided small regions, so there is room for improvement in encoding performance. Therefore, the present invention has been made in consideration of the above-mentioned problems, and an object of the present invention is to provide an image decoding device, an image decoding method, and a program that can improve encoding efficiency in GPM. [Means for solving the problem]

[0005] a selection unit that determines a motion vector based on the control information and a motion vector candidate and sets the motion vector as motion information; a motion compensation unit that generates a second predicted pixel based on the decoded pixels, the motion information, and the control information; a synthesis unit that generates a third predicted pixel based on the first predicted image, the second predicted pixel, and the control information; and an adder that adds one of the first to third predicted pixels and the prediction residual to obtain a decoded pixel, wherein the selection unit selects the motion vector candidate from motion vectors of blocks neighboring a block to be decoded based on the control information.

[0006] a step of determining a motion vector based on the control information and a motion vector candidate to obtain motion information; a step of generating a second predicted pixel based on the decoded pixels, the motion information, and the control information; a step of generating a third predicted pixel based on the first predicted image, the second predicted pixel, and the control information; and a step of obtaining a decoded pixel by adding one of the first to third predicted pixels to the prediction residual, wherein in the step F, the motion vector candidate is selected from motion vectors of blocks neighboring a block to be decoded based on the control information.

[0007] a selection unit that determines a motion vector based on the control information and a motion vector candidate and sets the motion vector as motion information; a motion compensation unit that generates a second predicted pixel based on the decoded pixels, the motion information, and the control information; a synthesis unit that generates a third predicted pixel based on the first predicted image, the second predicted pixel, and the control information; and an adder that adds one of the first to third predicted pixels and the prediction residual to obtain a decoded pixel, and the selection unit selects the motion vector candidate from motion vectors of blocks neighboring a block to be decoded based on the control information. [Effects of the Invention]

[0008] According to the present invention, it is possible to provide an image decoding device, an image decoding method, and a program that can improve the coding efficiency in GPM. [Brief explanation of the drawings]

[0009] [Figure 1] FIG. 1 is a diagram showing an example of functional blocks of an image decoding device 200 according to an embodiment. [Figure 2] FIG. 2 is a diagram showing an example of a case where a rectangular unit block is divided into two small regions A and B by a dividing boundary. [Figure 3] FIG. 3 is a diagram showing an example of neighboring blocks of a current block to be decoded. [Figure 4] FIG. 4 is a diagram showing an example of a case where neighboring blocks above a block to be decoded are divided into small regions. [Figure 5] FIG. 5 is a flowchart showing an example of the operation of the image decoding device 200 according to an embodiment. [Figure 6]FIG. 6 is a flowchart showing an example of the operation of the image decoding device 200 according to an embodiment. DETAILED DESCRIPTION OF THE INVENTION

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

[0011] First Embodiment An image decoding device 200 according to this embodiment will be described below with reference to Figures 1 to 6. Figure 1 is a diagram showing an example of functional blocks of the image decoding device 200 according to this embodiment.

[0012] As shown in FIG. 1, the image decoding device 200 includes a code input unit 210, a decoding unit 201, an inverse quantization unit 202, an inverse transform unit 203, an intra prediction unit 204, a selection unit 205, an adder 206, a storage unit 207, a motion compensation unit 208, a synthesis unit 209, and an image output unit 220.

[0013] The code input unit 210 is configured to obtain code information coded by an image coding device.

[0014] The decoding unit 201 is configured to decode the control information and the quantized value from the code information input from the code input unit 210. For example, the decoding unit 201 is configured to output the control information and the quantized value by performing variable length decoding on the code information.

[0015] Here, the quantized value is sent to the inverse quantization unit 202, and the control information is sent to the intra prediction unit 204, the selection unit 205, the motion compensation unit 208, and the synthesis unit 209. Note that this control information includes information necessary for controlling the intra prediction unit 204, the selection unit 205, the motion compensation unit 208, the synthesis unit 209, etc., and may also include header information such as a sequence parameter set, a picture parameter set, a picture header, or a slice header.

[0016] The inverse quantization unit 202 is configured to inverse quantize the quantized values ​​sent from the decoding unit 201 to generate decoded transform coefficients. The transform coefficients are sent to the inverse transform unit 203.

[0017] The inverse transform unit 203 is configured to inverse transform the transform coefficients sent from the inverse quantization unit 202 to generate decoded prediction residuals. The prediction residuals are sent to an adder 206.

[0018] The intra prediction unit 204 is configured to generate a first predicted pixel based on the decoded pixel and the control information sent from the decoding unit 201. Here, the decoded pixel is obtained via the adder 206 and stored in the storage unit 207. The first predicted pixel is a predicted pixel that is an approximation of an input pixel in a small region set by the synthesis unit 207. The first predicted pixel is sent to the adder 206 or the synthesis unit 209.

[0019] The storage unit 207 is configured to cumulatively store the decoded pixels sent from the adder 206. The motion compensation unit 208 references these decoded pixels via the storage unit 207.

[0020] The motion compensation unit 208 is configured to generate second predicted pixels based on the decoded pixels stored in the storage unit 207 and the motion information sent from the selection unit 205. Here, the second predicted pixels are predicted pixels as approximations of input pixels in the small regions set by the synthesis unit 207. The second predicted pixels are sent to the adder 206 or the synthesis unit 209.

[0021] The adder 206 is configured to obtain a decoded pixel by adding any one of the first to third predicted pixels generated from the decoded pixels, etc., to the prediction residual sent from the inverse transform unit 203. The decoded pixel is sent to the image output unit 220, the accumulation unit 207, and the intra prediction unit 204.

[0022] The synthesis unit 209 is configured to divide the block to be decoded into a plurality of shapes, synthesize a plurality of prediction pixels corresponding to the respective shapes, and generate a third prediction pixel to be added to the prediction residual in the adder 206, based on the first prediction pixel sent from the intra prediction unit, the second prediction pixel sent from the motion compensation unit 208, and control information (for example, shape information indicating the division shape of the block to be decoded) sent from the selection unit 205. The generated third prediction pixel is sent to the adder 206.

[0023] Any method can be used for dividing and combining the block to be decoded into a plurality of shapes (small regions) in the combining unit 209, but the following describes the case where the geometric partitioning mode (GPM) is used as an example.

[0024] An example of a method for selecting a plurality of motion vector candidates by the selection unit 205, which is a characteristic component of the image decoding device 200 according to this embodiment, will be described below.

[0025] The selection unit 205 is configured to determine a motion vector based on the control information and the motion vector candidates, and set the determined motion vector as motion information.

[0026] Specifically, the selection unit 205 is configured to select motion vector candidates from motion vectors of blocks neighboring the current block based on the control information. As a result, it is possible to determine a motion vector using a small amount of data, cu_mv_idx.

[0027] The example in Fig. 2 shows a case where unit blocks are distributed in a diagonal shape. In the example in Fig. 2, a rectangular unit block (a block to be decoded) is divided into two small regions A and B by a division boundary.

[0028] In each of the small regions A and B, the second predicted pixel is generated by motion compensation. In this case, in order to reduce the amount of coding of the motion vector itself used for motion compensation, a conventional method can be used in which the motion vector of a block adjacent to the block to be decoded is used.

[0029] According to this method, the amount of code required to represent the neighboring blocks that use the motion vector to be used is smaller than the amount of code required to represent the motion vector itself, thereby improving coding efficiency.

[0030] Specifically, as shown in Figure 3, there are multiple neighboring blocks, such as above, to the left, and above left, so a motion vector candidate list is constructed by listing the motion vectors of available neighboring blocks and eliminating similar motion vectors.

[0031] Then, only the index corresponding to the motion vector of the neighboring block used by the motion compensation unit 208 is decoded as control information (cu_mv_idx), and the motion vector is determined based on this control information.

[0032] However, since the motion vectors of multiple neighboring blocks are not selected with equal probability, there is a problem that the coding efficiency cannot be improved.

[0033] For example, small area A shown in FIG. 2 often has the same pixel distribution characteristics spread out to the left, so the neighboring blocks of the motion vectors used by small area B are more likely to be on the upper side than on the left side.

[0034] To solve this problem, the selection unit 205 may be configured to limit the above-mentioned motion vector candidates according to the partition shape of the block to be decoded.

[0035] FIG. 3 shows five neighboring blocks (upper left, left, lower left, upper, and upper right) of the block to be decoded.

[0036] In the example of FIG. 3, since small region B directly borders the neighboring block above, the selection unit 205 may be configured to add the motion vector of the neighboring block above to the motion vector candidates.

[0037] Furthermore, although small region B does not directly contact the neighboring block to the upper right, the selection unit 205 may be configured to assume that the same characteristics as small region B continue, and add the motion vector of the neighboring block to the motion vector candidates.

[0038] The selection unit 205 may be configured not to add motion vectors of the other neighboring blocks, such as the upper left, left, and lower left blocks, to the motion vector candidates, assuming that the pixel distribution characteristics are different.

[0039] Since the motion vector candidates for small area B are selected into two, the motion vector of the neighboring block above and the motion vector of the neighboring block to the upper right, the selection unit 205 is configured to determine the motion vector to be used by the motion compensation unit 208 from the selected motion vector candidates based on the control information.

[0040] If no limit is placed on the motion vector candidates, the motion vectors of all neighboring blocks become motion vector candidates, resulting in a large amount of coding required for the control information used to determine the motion vector to be used. However, by limiting the number to a small number of candidates that are likely to be selected, the amount of coding required for the control information can be reduced.

[0041] On the other hand, since small region A has a different adjacent region (neighboring block or small region) from small region B, the selection unit 205 can construct a motion vector candidate that is different from that of small region B, that is, can construct a different motion vector candidate for each small region.

[0042] Since sub-region A directly borders the neighboring block above and the neighboring block to the left, the culler 205 may be configured to add the motion vectors of both neighboring blocks to the motion vector candidates.

[0043] Furthermore, although small area A does not directly contact the neighboring blocks at the upper left and lower left, the selection unit 205 may be configured to assume that the neighboring blocks continue to have characteristics equivalent to those of small area A, and add the motion vectors of these neighboring blocks to the motion vector candidates.

[0044] As in the example above, there may be overlapping motion vectors of neighboring blocks among the motion vector candidates for each small area (small area A: left, top, top left, bottom left / small area B: top, top right), or the motion vector candidates for each small area may be constructed exclusively by adding the motion vectors of neighboring blocks that overlap among the motion vector candidates for each small area to the motion vector candidate with the fewer candidates (small area A: left, top left, bottom left / small area B: top, top right).

[0045] Alternatively, for the sake of simplicity, the selection unit 205 may be configured to select motion vector candidates only when the small region contacts only one of the upper neighboring block or the left neighboring block.

[0046] The selection unit 205 does not limit the motion vector candidates for small areas that border both the upper and left neighboring blocks (small area A: left, upper, upper left, lower left, upper right / small area B: upper, upper right), thereby eliminating additional processing.

[0047] Conversely, to improve accuracy, the selection unit 205 may be configured to generate a new motion vector and add it to the motion vector candidates when the number of selected motion vector candidates is less than a predetermined number.

[0048] For example, in the small area B shown in Figure 3, the motion vector candidates are limited to two, the motion vectors of the neighboring blocks above and to the right, so in order to compensate for the reduced number of motion vector candidates, new motion vectors can be derived from the motion vectors of the neighboring blocks above and to the right, thereby expanding the motion vector candidates.

[0049] A new motion vector can be derived by taking a weighted average of a plurality of motion vector candidates.

[0050] The weights can be the inverse of the cost obtained by template matching of the neighboring regions, or fixed weights can be assigned (for example, small region B: top, top right, (top + top right) / 2, (top + 3 * top right) / 4, (3 * top + top right) / 4, etc.).

[0051] In addition, in the case of a small region that is not adjacent to either the left neighboring block or the upper neighboring block, the selection unit 205 may not limit the motion vector candidates, or may be configured to limit specific motion vector candidates depending on the division shape.

[0052] For example, the selection unit 205 may limit the motion vector candidates to the top N in descending order of the shortest distance between the coordinates of the neighboring blocks included in the motion vector candidates and the division line.

[0053] In addition, although GPM does not allow bidirectional prediction in small regions, the selection unit 205 may be configured to determine two motion vectors from the selected motion vector candidates using control information, even when bidirectional prediction is possible in small regions.

[0054] Furthermore, when both the block to be decoded and the neighboring block are divided into small regions, the selection unit 205 may be configured to add the motion vector of the small region of the neighboring block that has a longer length of contact with the small region of the block to be decoded to the motion vector candidates.

[0055] FIG. 4 shows an example of a case where neighboring blocks above the current block are divided into small regions.

[0056] 4, the length of the side where small region A meets small region Y on the right side of the neighboring block above is shorter than the length of the side where small region A meets small region X on the left side of the neighboring block above. In this case, the selection unit 205 may be configured to add the motion vector of small region X to the motion vector candidates.

[0057] According to this configuration, by selecting motion vectors that are likely to be selected as motion vector candidates, it is expected that the coding efficiency can be improved.

[0058] Furthermore, the selection unit 205 may be configured to change the order (arrangement) of the motion vector candidates depending on the division shape.

[0059] For example, in small area A in Figure 3, if there are motion vector candidates for four neighboring blocks: above, above-left, left, and below-left, the probability (selection probability) of selecting the motion vector for the left neighboring block is higher than the motion vector for the upper neighboring block, so it is desirable to arrange the motion vector candidates in the order of motion vector for the left neighboring block → motion vector for the upper neighboring block.

[0060] That is, by arranging the motion vector candidates in order of the highest selection probability, the average code length of the control information can be shortened.

[0061] Specifically, the selection unit 205 may be configured to prioritize the motion vectors of neighboring blocks that directly contact the block to be decoded over the motion vectors of neighboring blocks that indirectly contact the block to be decoded when sorting the motion vector candidates.

[0062] The selection unit 205 may also be configured to prioritize the order of motion vector candidates, in which small regions obtained by dividing the current block to be decoded have longer sides that contact neighboring blocks (or small regions).

[0063] Alternatively, the selection unit 205 can arrange the motion vector candidates in ascending order of costs obtained by template matching of nearby regions (neighboring blocks or small regions).

[0064] The coded information input to the decoding unit 201 may include a sequence parameter set (SPS) that summarizes control information for each sequence. The coded information may also include a picture parameter set (PPS) or a picture header (PH) that summarizes control information for each picture. The coded information may also include a slice header (SH) that summarizes control information for each slice.

[0065] An example of a method for selecting motion vector candidates in units of sequences will be described below with reference to FIGS.

[0066] As shown in FIG. 5, in step S101, the decoding unit 201 determines whether sps_div_enabled_flag is 1 in the SPS.

[0067] Here, sps_div_enabled_flag is a syntax that controls whether or not split mode is enabled. When sps_div_enabled_flag is 1, it indicates that split mode is enabled, and when sps_div_enabled_flag is 0, it indicates that split mode is disabled.

[0068] If Yes (if 1), the operation proceeds to step S102, and if No (if 0), the operation ends without applying the technology according to this embodiment.

[0069] In step S102, the decoding unit 201 decodes sps_div_selecting_flag and determines whether sps_div_selecting_flag is 1 or not.

[0070] Here, sps_div_selecting_flag is a syntax that controls whether or not to select motion vector candidates. When sps_div_selecting_flag is 1, it indicates that selection of motion vector candidates is enabled, and when sps_div_selecting_flag is 0, it indicates that selection of motion vector candidates is disabled.

[0071] If Yes (if 1), the operation proceeds to step S103, and if No (if 0), the operation ends without applying the technology according to this embodiment.

[0072] In step S103, the decoding unit 201 decodes sps_div_selecting_mode.

[0073] Here, sps_div_selecting_mode is a syntax that controls the method of selecting motion vector candidates.

[0074] By using sps_div_selecting_mode, the setting of the motion vector candidate selection method according to the image characteristics can be changed on a sequence-by-sequence basis, which is expected to maximize coding efficiency.

[0075] For example, for a sequence consisting of images with complex motion, it is possible to set motion vector candidates for each small region to be allowed to overlap, and for a sequence consisting of images with monotonous motion, it is possible to set motion vector candidates for each small region exclusively, thereby maximizing coding efficiency.

[0076] When the motion vector candidate selection method is set on a picture-by-picture basis, the decoding unit 201 decodes pps_div_enabled_flag, pps_div_selecting_flag, and pps_div_selecting_mode in the picture parameter set or picture header in the same manner as in the operation of FIG.

[0077] By using pps_div_selecting_mode, the setting of the motion vector candidate selection method according to the image characteristics can be changed on a picture-by-picture basis, which is expected to maximize coding efficiency.

[0078] For example, for image pictures with complex motion, it is possible to allow overlapping of motion vector candidates for each small region, and for pictures with monotonous motion, it is possible to set exclusive motion vector candidates for each small region, thereby maximizing coding efficiency.

[0079] Furthermore, when the motion vector candidate selection method is set on a slice-by-slice basis, the decoding unit 201 decodes sh_div_enabled_flag, sh_div_selecting_flag, and sh_div_selecting_mode in the slice header in the same manner as in the operation of FIG.

[0080] By using sh_div_selecting_mode, the setting of the motion vector candidate selection method according to the image characteristics can be changed on a slice-by-slice basis, which is expected to maximize coding efficiency.

[0081] For example, for slice areas containing partial images with complex motion, it is possible to allow overlapping of motion vector candidates for each small area, and for slice areas containing partial images with monotonous motion, it is possible to set exclusive motion vector candidates for each small area, thereby maximizing coding efficiency.

[0082] By setting the motion vector candidate selection method only in the upper layer, it is possible to suppress an increase in the amount of coding, and by setting the motion vector candidate selection method in the lower layer as well and then prioritizing the setting in the lower layer, adaptive control is possible.

[0083] Alternatively, if the method for selecting motion vector candidates is set in advance, the decoding of the method for selecting motion vector candidates can be omitted.

[0084] In the above example, a method for setting a motion vector candidate selection method on a sequence basis, a picture basis, or a slice basis has been described. However, instead of setting these motion vector candidate selection methods, a pattern for directly selecting motion vector candidates on a block basis may be selected, as will be described later.

[0085] In this case, the number of weighting coefficient patterns and the degree of freedom in setting the pattern types are reduced, but the increase in the header information described above can be avoided.

[0086] A method for selecting motion vector candidates on a block-by-block basis will be described below with reference to FIG.

[0087] As shown in FIG. 6, in step S201, the decoding unit 201 determines whether any one of sps_div_enabled_flag, pps_div_enabled_flag, and sh_div_enabled_flag is 1 or not.

[0088] If neither is 1, the operation proceeds to step S202 and ends without applying the technology according to this embodiment.

[0089] If either of them is 1, in step S203, the decoding unit 201 determines whether the current block to be decoded is in the partition mode.

[0090] If the block to be decoded is not in the divided mode, the operation proceeds to step S202 and ends without applying the technology according to this embodiment.

[0091] If the current block is in the division mode, in step S204, the decoding unit 201 decodes cu_div_mode, which is a control signal indicating the division mode.

[0092] In step S205, the decoding unit 201 determines, based on cu_div_mode, whether the small region to be decoded is in motion compensation mode.

[0093] If No, the operation proceeds to step S206 and ends without applying the technology according to this embodiment.

[0094] If the answer is YES, in step S207, the decoding unit 201 decodes cu_mv_idx, which is a control signal that specifies a motion vector from among the motion vector candidates.

[0095] The example in Figure 6 shows a case where one cu_mv_idx is decoded, but if two small regions are in motion compensation mode or one small region is in bidirectional motion compensation mode, the decoding unit 201 may decode both cu_mv_idx0 and cu_mv_idx1.

[0096] cu_mv_idx is decoded to identify one of the motion vector candidates selected by the div_selecting_mode at the lowest layer applied to the block to be decoded.

[0097] According to the image decoding device 200 of this embodiment, coding efficiency can be improved by adaptively dividing blocks and decoding motion vectors according to the division shape.

[0098] The above-described image decoding device 200 may be realized as a program that causes a computer to execute each function (each step). [Industrial Applicability]

[0099] According to this embodiment, for example, it is possible to improve the overall service quality in video communication, which will contribute to the achievement of Goal 9 of the United Nations-led Sustainable Development Goals (SDGs), which is to "Develop resilient infrastructure, promote sustainable industrialization and foster innovation." [Explanation of symbols]

[0100] 200...Image decoding device 201...Decoding unit 202...Inverse quantization section 203...Inverse conversion unit 204...Intra prediction unit 205...Sorting Department 206...adder 207...Storage section 208...Motion compensation unit 209...Synthesis section 210...Code input section 220...Image output unit

Claims

1. An image decoding device, a decoding unit that decodes the control information and the quantized value; an inverse quantization unit that inversely quantizes the quantized values ​​to generate transform coefficients; an inverse transform unit that inversely transforms the transform coefficients to generate prediction residuals; an intra prediction unit that generates a first predicted pixel based on a decoded pixel and the control information; a storage unit that stores the decoded pixels; a selection unit that determines a motion vector based on the control information and the motion vector candidates, and sets the motion vector as motion information; a motion compensation unit that generates a second predicted pixel based on the decoded pixel, the motion information, and the control information; a synthesis unit that generates a third predicted pixel based on the first predicted pixel, the second predicted pixel, and the control information; an adder that adds any one of the first to third predicted pixels and the prediction residual to obtain a decoded pixel, the selection unit selects the motion vector candidates from motion vectors of neighboring blocks of a current block to be decoded based on the control information; The image decoding device is characterized in that the selection unit selects the motion vector candidates only when a small area obtained by dividing the block to be decoded is adjacent to only one of the blocks above or to the left.

2. An image decoding device, a decoding unit that decodes the control information and the quantized value; an inverse quantization unit that inversely quantizes the quantized values ​​to generate transform coefficients; an inverse transform unit that inversely transforms the transform coefficients to generate prediction residuals; an intra prediction unit that generates a first predicted pixel based on a decoded pixel and the control information; a storage unit that stores the decoded pixels; a selection unit that determines a motion vector based on the control information and the motion vector candidates, and sets the motion vector as motion information; a motion compensation unit that generates a second predicted pixel based on the decoded pixel, the motion information, and the control information; a synthesis unit that generates a third predicted pixel based on the first predicted pixel, the second predicted pixel, and the control information; an adder that adds any one of the first to third predicted pixels and the prediction residual to obtain a decoded pixel, the selection unit selects the motion vector candidates from motion vectors of neighboring blocks of a current block to be decoded based on the control information; The image decoding device is characterized in that, when both the block to be decoded and the neighboring block are divided into small regions, the selection unit adds the motion vector of the small region of the neighboring block that has a longer side length adjacent to the small region of the block to be decoded to the motion vector candidates.

3. An image decoding device, a decoding unit that decodes the control information and the quantized value; an inverse quantization unit that inversely quantizes the quantized values ​​to generate transform coefficients; an inverse transform unit that inversely transforms the transform coefficients to generate prediction residuals; an intra prediction unit that generates a first predicted pixel based on a decoded pixel and the control information; a storage unit that stores the decoded pixels; a selection unit that determines a motion vector based on the control information and the motion vector candidates, and sets the motion vector as motion information; a motion compensation unit that generates a second predicted pixel based on the decoded pixel, the motion information, and the control information; a synthesis unit that generates a third predicted pixel based on the first predicted pixel, the second predicted pixel, and the control information; an adder that adds any one of the first to third predicted pixels and the prediction residual to obtain a decoded pixel, the selection unit selects the motion vector candidates from motion vectors of neighboring blocks of a current block to be decoded based on the control information; the selection unit changes an order of the motion vector candidates according to a division shape of the block to be decoded; The image decoding device is characterized in that, in terms of the order of the motion vector candidates, the selection unit prioritizes motion vectors of neighboring blocks that directly contact the block to be decoded over motion vectors of neighboring blocks that indirectly contact the block to be decoded.

4. 4. The image decoding device according to claim 1, wherein the selection unit limits the motion vector candidates in accordance with a division shape of the block to be decoded.

5. 4. The image decoding device according to claim 1, wherein the selection unit generates different motion vector candidates for each small region obtained by dividing the block to be decoded.

6. An image decoding method, comprising: a step A of decoding control information and quantization values; step B of dequantizing the quantized values ​​to obtain transform coefficients; a step C of inversely transforming the transform coefficients to obtain prediction residuals; a step D of generating a first predicted pixel based on the decoded pixel and the control information; a step E of storing said decoded pixels; a step F of determining a motion vector based on the control information and the motion vector candidate, and setting the motion vector as motion information; a step G of generating a second predicted pixel based on the decoded pixel, the motion information, and the control information; a step H of generating a third predicted pixel based on the first predicted pixel, the second predicted pixel, and the control information; a step I of adding any one of the first to third predicted pixels and the prediction residual to obtain a decoded pixel, In the step F, the motion vector candidate is selected from motion vectors of neighboring blocks of the block to be decoded based on the control information; An image decoding method characterized in that in step F, the motion vector candidates are selected only when a small area obtained by dividing the block to be decoded is adjacent to only one of the blocks above or to the left.

7. An image decoding method, comprising: a step A of decoding control information and quantization values; step B of dequantizing the quantized values ​​to obtain transform coefficients; a step C of inversely transforming the transform coefficients to obtain prediction residuals; a step D of generating a first predicted pixel based on the decoded pixel and the control information; a step E of storing said decoded pixels; a step F of determining a motion vector based on the control information and the motion vector candidate, and setting the motion vector as motion information; a step G of generating a second predicted pixel based on the decoded pixel, the motion information, and the control information; a step H of generating a third predicted pixel based on the first predicted pixel, the second predicted pixel, and the control information; a step I of adding any one of the first to third predicted pixels and the prediction residual to obtain a decoded pixel, In the step F, the motion vector candidate is selected from motion vectors of neighboring blocks of the block to be decoded based on the control information; In the step F, when both the block to be decoded and the neighboring block are divided into small regions, the motion vector of the small region of the neighboring block having the longer side adjacent to the small region of the block to be decoded is added to the motion vector candidates.

8. An image decoding method, comprising: a step A of decoding control information and quantization values; step B of dequantizing the quantized values ​​to obtain transform coefficients; a step C of inversely transforming the transform coefficients to obtain prediction residuals; a step D of generating a first predicted pixel based on the decoded pixel and the control information; a step E of storing said decoded pixels; a step F of determining a motion vector based on the control information and the motion vector candidate, and setting the motion vector as motion information; a step G of generating a second predicted pixel based on the decoded pixel, the motion information, and the control information; a step H of generating a third predicted pixel based on the first predicted pixel, the second predicted pixel, and the control information; a step I of adding any one of the first to third predicted pixels and the prediction residual to obtain a decoded pixel, In the step F, the motion vector candidate is selected from motion vectors of neighboring blocks of the block to be decoded based on the control information; In the step F, the order of the motion vector candidates is changed according to the division shape of the block to be decoded; An image decoding method characterized in that in step F, in terms of the order of the motion vector candidates, motion vectors of neighboring blocks that directly contact the block to be decoded are given priority over motion vectors of neighboring blocks that indirectly contact the block to be decoded.

9. A program that causes a computer to function as an image decoding device, The image decoding device comprises: a decoding unit that decodes the control information and the quantized value; an inverse quantization unit that inversely quantizes the quantized values ​​to generate transform coefficients; an inverse transform unit that inversely transforms the transform coefficients to generate prediction residuals; an intra prediction unit that generates a first predicted pixel based on a decoded pixel and the control information; a storage unit that stores the decoded pixels; a selection unit that determines a motion vector based on the control information and the motion vector candidates, and sets the motion vector as motion information; a motion compensation unit that generates a second predicted pixel based on the decoded pixel, the motion information, and the control information; a synthesis unit that generates a third predicted pixel based on the first predicted pixel, the second predicted pixel, and the control information; an adder that adds any one of the first to third predicted pixels and the prediction residual to obtain a decoded pixel, the selection unit selects the motion vector candidates from motion vectors of neighboring blocks of a current block to be decoded based on the control information; The program is characterized in that the selection unit selects the motion vector candidates only when a small area obtained by dividing the block to be decoded is adjacent to only one of the blocks above or to the left.

10. A program for causing a computer to function as an image decoding device, comprising: The image decoding device comprises: a decoding unit that decodes the control information and the quantized value; an inverse quantization unit that inversely quantizes the quantized values ​​to generate transform coefficients; an inverse transform unit that inversely transforms the transform coefficients to generate prediction residuals; an intra prediction unit that generates a first predicted pixel based on a decoded pixel and the control information; a storage unit that stores the decoded pixels; a selection unit that determines a motion vector based on the control information and the motion vector candidates, and sets the motion vector as motion information; a motion compensation unit that generates a second predicted pixel based on the decoded pixel, the motion information, and the control information; a synthesis unit that generates a third predicted pixel based on the first predicted pixel, the second predicted pixel, and the control information; an adder that adds any one of the first to third predicted pixels and the prediction residual to obtain a decoded pixel, the selection unit selects the motion vector candidates from motion vectors of neighboring blocks of a current block to be decoded based on the control information; The program is characterized in that, when both the block to be decoded and the neighboring block are divided into small regions, the selection unit adds the motion vector of the small region of the neighboring block that has a longer side length adjacent to the small region of the block to be decoded to the motion vector candidates.

11. A program that causes a computer to function as an image decoding device, comprising: The image decoding device comprises: a decoding unit that decodes the control information and the quantized value; an inverse quantization unit that inversely quantizes the quantized values ​​to generate transform coefficients; an inverse transform unit that inversely transforms the transform coefficients to generate prediction residuals; an intra prediction unit that generates a first predicted pixel based on a decoded pixel and the control information; a storage unit that stores the decoded pixels; a selection unit that determines a motion vector based on the control information and the motion vector candidates, and sets the motion vector as motion information; a motion compensation unit that generates a second predicted pixel based on the decoded pixel, the motion information, and the control information; a synthesis unit that generates a third predicted pixel based on the first predicted pixel, the second predicted pixel, and the control information; an adder that adds any one of the first to third predicted pixels and the prediction residual to obtain a decoded pixel, the selection unit selects the motion vector candidates from motion vectors of neighboring blocks of a current block to be decoded based on the control information; the selection unit changes an order of the motion vector candidates according to a division shape of the block to be decoded; The program is characterized in that, in arranging the motion vector candidates, the selection unit prioritizes motion vectors of neighboring blocks that directly contact the block to be decoded over motion vectors of neighboring blocks that indirectly contact the block to be decoded.

Citation Information

Patent Citations

  • ITTH.266/

  • Video decoding method and apparatus using block division structure in a video coding system

    JP2021514162A

  • Encoding device and encoding method

    JP2022051735A