Image decoding device, image decoding method, and program

The image decoding device and method address the inefficiency in inter prediction by generating chained motion vectors within the decoded picture buffer, enhancing coding efficiency and accuracy.

WO2025215919A1PCT designated stage Publication Date: 2025-10-16KDDI CORP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2025/002832
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-04-09
Filing Date
2025-01-29
Publication Date
2025-10-16

AI Technical Summary

Technical Problem

Existing image decoding technologies in inter prediction are limited by the restriction of motion vector candidates to spatially or temporally adjacent blocks, leading to suboptimal coding efficiency.

Method used

The proposed solution involves an image decoding device and method that generates chained motion vectors by re-searching for new motion vectors within a collocated picture stored in the decoded picture buffer, allowing only motion vectors spatially or temporally adjacent to the block to be decoded, and performs chained motion vector prediction to derive these vectors as candidates.

Benefits of technology

This approach enhances coding efficiency by utilizing chained motion vectors, improving the accuracy and efficiency of image decoding.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2025002832_16102025_PF_FP_ABST
    Figure JP2025002832_16102025_PF_FP_ABST
Patent Text Reader

Abstract

In an image decoding device 200 according to the present invention, an inter-prediction unit 205 adds all motion vectors derived by re-searching for a new motion vector by limiting to only motion vectors in a co-located picture, the reference destinations of which are stored in a decode picture buffer 207, among motion vectors at positions spatially or temporally adjacent to or close to a block to be decoded that is stored in a merge candidate list for storing candidate motion vectors, thereby generating a chained motion vector, and performing a chained motion vector prediction for deriving the chained motion vector as a candidate motion vector for the block to be decoded.
Need to check novelty before this filing date? Find Prior Art

Description

Image decoding device, image decoding method, and program

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

[0002] Non-Patent Documents 1 and 2 disclose inter prediction.

[0003] In inter prediction, predicted pixels for a block to be decoded are generated from decoded pixels (reference pixels) in a decoded picture (reference picture) that is different from the picture to be decoded.

[0004] In addition, inter prediction uses control information to select a motion vector for the block to be decoded, which is required to generate predicted pixels for the block to be decoded, from multiple motion vector candidates located spatially or temporally adjacent or close to the block to be decoded.

[0005] ITU-T H.266 / VVCM. Coban et al., Algorithm description of Enhanced Compression Model 10 (ECM 10), JVET-AE2025, 2023

[0006] In Non-Patent Document 1 and Non-Patent Document 2, the motion vector candidates that can be selected for inter prediction are limited to motion vectors that are spatially or temporally adjacent or close to the block to be decoded, which poses a problem that there is room for improvement in coding efficiency.

[0007] 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 with high coding efficiency.

[0008] A first feature of the present invention is an image decoding device including: a decoding unit that performs variable-length decoding on coded information and outputs quantized values ​​and control information; an inverse quantization unit that performs inverse quantization on the quantized values ​​and outputs transform coefficients; an inverse transform unit that performs inverse transform on the transform coefficients and outputs predicted residual pixels; an intra prediction unit that generates intra predicted pixels from the control information and decoded pixels; a decoded picture buffer that stores the decoded pixels; an inter prediction unit that generates inter predicted pixels from the control information and the decoded pixels stored in the decoded picture buffer; and an adder that adds one of the motion vectors to generate the decoded pixel, and the inter prediction unit generates a chained motion vector by re-searching for new motion vectors, limiting the search to only motion vectors whose reference destination is within a collocated picture stored in the decoding picture buffer, among motion vectors that are spatially or temporally adjacent or close to the block to be decoded and are stored in a merge candidate list that stores motion vector candidates, and adding all of the derived motion vectors, and performs chained motion vector prediction to derive the chained motion vectors as candidates for the motion vector of the block to be decoded.

[0009] A second aspect of the present invention is an image decoding method, comprising: a step A of variable-length decoding code information to output quantized values ​​and control information; a step B of inversely quantizing the quantized values ​​to output transform coefficients; a step C of inversely transforming the transform coefficients to output predicted residual pixels; a step D of generating intra-predicted pixels from the control information and decoded pixels; a step E of storing the decoded pixels in a decoded picture buffer; a step F of generating inter-predicted pixels from the control information and the decoded pixels stored in the decoded picture buffer; and a step F of decoding the predicted residual pixels to at least one of the intra-predicted pixels and the inter-predicted pixels. and step G of adding together the motion vectors to generate the decoded pixel, and in step F, a daisy chain motion vector is generated by re-searching for new motion vectors, limited to only those motion vectors whose reference destination is within the collocated picture stored in the decoding picture buffer, among the motion vectors located spatially or temporally adjacent or close to the block to be decoded, which are stored in a merge candidate list storing motion vector candidates, and adding all of the derived motion vectors, and a daisy chain motion vector prediction is performed in which the daisy chain motion vectors are derive as candidates for the motion vector of the block to be decoded.

[0010] A third aspect of the present invention is a program for causing a computer to function as an image decoding device, the image decoding device including a decoding unit that performs variable-length decoding on coded information and outputs quantized values ​​and control information, an inverse quantization unit that performs inverse quantization on the quantized values ​​and outputs transform coefficients, an inverse transform unit that performs inverse transform on the transform coefficients and outputs predicted residual pixels, an intra prediction unit that generates intra predicted pixels from the control information and decoded pixels, a decoded picture buffer that stores the decoded pixels, an inter prediction unit that generates inter predicted pixels from the control information and the decoded pixels stored in the decoded picture buffer, and an adder that adds at least one of the inter-predicted pixels to generate the decoded pixel, and the inter-prediction unit generates a chained motion vector by re-searching for new motion vectors, limiting the search to only motion vectors whose reference destination is within a collocated picture stored in the decoding picture buffer, among motion vectors that are spatially or temporally adjacent or close to the block to be decoded and are stored in a merge candidate list that stores motion vector candidates, and adding all of the derived motion vectors, and performs chained motion vector prediction to derive the chained motion vectors as candidates for the motion vector of the block to be decoded.

[0011] According to the present invention, it is possible to provide an image decoding device, an image decoding method, and a program with high coding efficiency.

[0012] FIG. 1 is a diagram illustrating an example of functional blocks of an image decoding device 200 according to an embodiment. FIG. 2 is a diagram illustrating a concept of inter prediction. FIG. 3 is a diagram illustrating reference pixel values ​​that are referenced when a picture outside the current picture being decoded and stored in the decoded picture buffer 207, as disclosed in Non-Patent Document 1 and Non-Patent Document 2, is referenced from a future block to be decoded. FIG. 4 is a conceptual diagram illustrating generation of the inter prediction padding area described in FIG. 3. FIG. 5 is a diagram illustrating an example of a merge candidate list, which is a method of deriving motion vectors in the inter prediction unit 205. FIG. 6 is a diagram illustrating an example of the names of multiple types of merge candidates and the order in which these merge candidates are derived in regular merge disclosed in Non-Patent Document 1 and Non-Patent Document 2. FIG. 7 is a diagram illustrating an example of search positions for spatial merge candidates and TMVP candidates in a block to be decoded. FIG. 8 is a diagram illustrating an example of a method of deriving linked motion vectors in linked motion vector prediction. FIG. 9 is a diagram illustrating an example of a method of deriving linked motion vectors in linked motion vector prediction.

[0033] Fig. 10 is a diagram showing an example of a recursive search for motion vectors including bi-prediction. Fig. 11 is a diagram showing an example of a daisy-chain motion vector derived by a recursive search for motion vectors including bi-prediction. Fig. 12 is a diagram showing an example of a search for a daisy-chain motion vector prediction candidate after searching for multiple types of merge candidates for a normal merge disclosed in Non-Patent Document 1 and Non-Patent Document 2. Fig. 13 is a diagram showing an example of a search for a daisy-chain motion vector prediction candidate after searching for multiple types of merge candidates for a normal merge disclosed in Non-Patent Document 1 and Non-Patent Document 2. Fig. 14 is a diagram showing an example of merge candidates from which a daisy-chain motion vector prediction candidate is derived and positions (index numbers) in a merge candidate list to which the daisy-chain motion vector prediction candidate is added. Fig. 15 is a diagram showing an example of merge candidates from which a daisy-chain motion vector prediction candidate is derived and positions (index numbers) in a merge candidate list to which the daisy-chain motion vector prediction candidate is added. FIG. 16 is a diagram showing an example of merge candidates from which a daisy-chain motion vector predictor candidate is derived and positions (index numbers) in the merge candidate list to which the daisy-chain motion vector predictor candidate is added.Fig. 17 is a diagram showing an example of merge candidates from which daisy-chained motion vector prediction candidates are derived, and the positions (index numbers) in the merge candidate list to which the daisy-chained motion vector prediction candidates are added. Fig. 18 is a diagram showing an example of pruning processing when the inter prediction unit 205 of the image decoding device 200 according to an embodiment adds merge candidates corresponding to daisy-chained motion vectors derived by daisy-chained motion vector prediction to the merge candidate list. Fig. 19 is a diagram showing an example of a method for controlling a reference source when deriving daisy-chained motion vectors in daisy-chained motion vector prediction by the inter prediction unit 205 of the image decoding device 200 according to an embodiment. Fig. 20 is a diagram showing an example of a method for controlling a reference destination when deriving daisy-chained motion vectors in daisy-chained motion vector prediction by the inter prediction unit 205 of the image decoding device 200 according to an embodiment. Fig. 21 is a diagram showing an example of a method for controlling a reference source and a reference destination when deriving a daisy-chained motion vector in daisy-chained motion vector prediction by the inter prediction unit 205 of an image decoding device 200 according to an embodiment in a case where GDR is applied. Fig. 22 is a diagram showing an example of a method for controlling a reference source when deriving a daisy-chained motion vector in daisy-chained motion vector prediction. Fig. 23 is a diagram showing an example of processing by the decoding unit 201 of the image decoding device 200 according to an embodiment, determining whether or not to decode sps_chained_mvp_enabled_flag based on sps_temporal_mvp_enabled_flag. Fig. 24 is a diagram showing an example of a control point motion vector cpMv derived by the inter prediction unit 205 of the image decoding device 200 according to an embodiment. Fig. 25 is a diagram showing an example of a method for deriving a motion vector prediction using adaptive motion vector prediction in the inter prediction unit 205 of the image decoding device 200 according to an embodiment.

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

[0014] First Embodiment An image decoding device 200 according to this embodiment will be described below with reference to FIGS.

[0015] The image decoding device 200 according to the first embodiment of the present invention is adapted to process a variety of image signals (hereinafter referred to as images). For example, the image decoding device 200 according to this embodiment is adapted to process YUV (YCbCr) images composed of luminance pixels and chrominance pixels, RGB images composed of RGB pixels, and monochrome images. Here, the pixels constituting each image have discrete values ​​(pixel values) with a predetermined bit width.

[0016] FIG. 1 is a diagram showing an example of functional blocks of an image decoding device 200 according to this embodiment.

[0017] 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, an inter prediction unit 205, an adder 206, a decoded picture buffer 207, and an image output unit 220.

[0018] In the following descriptions of the functions of each part, the word "pixel" may refer to a block (unit) made up of pixels, a tree block which is the maximum size of a block, or a slice, tile, or image (picture) larger than a tree block.

[0019] Although not shown in FIG. 1, the image decoding device 200 may also include an in-loop filter between the adder 206 and the decoded picture buffer 207 that modifies pixel values ​​of decoded pixels.

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

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

[0022] Here, the quantized value is sent to the inverse quantization unit 202, and the control information is sent to the decoded picture buffer 207, the intra prediction unit 204, and the inter prediction unit 205. Note that this control information (syntax) includes information necessary for controlling the decoded picture buffer 207, the intra prediction unit 204, the inter prediction unit 205, etc., and may include header information such as a sequence parameter set, a picture parameter set, a picture header, and a slice header.

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

[0024] The inverse transform unit 203 is configured to inversely 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.

[0025] The intra prediction unit 204 is configured to generate intra-predicted pixels based on decoded pixels and control information sent from the decoding unit 201. Here, the decoded pixels are obtained via the adder 206 and stored in the decoded picture buffer 207. The intra-predicted pixels are predicted pixels to be added to the prediction residual in the adder 206. The intra-predicted pixels are sent to the adder 206.

[0026] Here, the prediction performed by the intra prediction unit 204 may be the intra prediction disclosed in Non-Patent Document 1 and Non-Patent Document 2. Alternatively, the prediction performed by the intra prediction unit 204 may be the intra block copy or intra template matching prediction disclosed in Non-Patent Document 1 and Non-Patent Document 2.

[0027] The decoded picture buffer 207 cumulatively stores the decoded pixels sent from the adder 206 and the inter prediction information corresponding to the decoded pixels sent from the inter prediction unit 205 .

[0028] Here, the decoded pixels stored in the decoded picture buffer 207 and the inter prediction information corresponding to the decoded pixels are referenced by the inter prediction unit 205. The inter prediction information will be described in detail later.

[0029] The inter prediction unit 205 is configured to generate inter prediction pixels based on decoded pixels and inter prediction information obtained by referring to the decoded picture buffer 207 and control information sent from the decoding unit 201.

[0030] Furthermore, the inter prediction unit 205 sends the generated inter predicted pixels to the adder unit 206, and sends the inter prediction information used to generate the inter predicted pixels to the decoded picture buffer 207 as information corresponding to the pixel to be decoded.

[0031] Here, the prediction performed by the inter prediction unit 205 may be the inter prediction disclosed in Non-Patent Document 1 and Non-Patent Document 2. Alternatively, the prediction performed by the inter prediction unit 205 may be the intra block copy disclosed in Non-Patent Document 1 and Non-Patent Document 2.

[0032] The adder 206 is configured to calculate decoded pixels by adding the prediction residual sent from the inverse transform unit 203 to at least one of the input intra-predicted pixels and inter-predicted pixels. The decoded pixels are sent to the image output unit 220, the decoded picture buffer 207, and the intra-prediction unit 204.

[0033] The image output unit 220 is configured to output the decoded pixels sent from the adder 206 .

[0034] Hereinafter, the roles of the inter prediction unit 205 and the decoded picture buffer 207, which are characteristic components of the image decoding device 200 according to this embodiment, will be explained using the example in which the prediction performed by the inter prediction unit 205 is inter prediction.

[0035] <Basic Roles of the Inter Prediction Unit 205 and the Decoded Picture Buffer 207> The basic role of the inter prediction unit 205 is to derive one or more motion vectors (Mv: Motion vector) for the block to be decoded, in order to predict the block to be decoded with high accuracy in the adder 206 at the subsequent stage, and to predict pixels (hereinafter, reference pixels) of a decoded block (hereinafter, reference block) referenced by Mv in a decoded picture (hereinafter, reference picture) different from the picture to be decoded to which the block to be decoded belongs, i.e., to perform inter prediction.

[0036] 2 is a conceptual diagram of inter prediction. Specifically, in inter prediction, in order to generate inter predicted pixels of a block to be decoded (CurBlk) in a picture to be decoded (CurPic), MvL0 of two motion vectors derived by the inter prediction unit 205 is used. k and MvL1 k Two different reference pictures (RerPicL0) are k and RerPicL1 k ) in the reference block (RerBlkL0 k and RerBlkL1 k ) is referenced.

[0037] Here, L0 and L1 indicate the numbers of a list (reference picture list) that describes reference pictures that can be referenced from the picture to be decoded, and k corresponds to the value of control information (index) for identifying a motion vector, which will be explained in the motion vector derivation method described below.

[0038] The image decoding device 200 according to this embodiment may derive two different reference picture lists, List 0 (L0) and List 1 (L1), for each picture to be decoded, as in Non-Patent Documents 1 and 2.

[0039] Here, the decoded picture buffer 207 may derive a reference picture list for each picture to be decoded based on the control information decoded by the decoding unit 201 .

[0040] For example, the control information may include information such as the number of reference pictures to be included in a reference picture list, candidate reference pictures for the current picture to be decoded (picture reference structure), and the like.

[0041] Details of the method for deriving a motion vector in the inter prediction unit 205 will be described later. The outline of the method for generating inter predicted pixels in the inter prediction unit 205 is as follows.

[0042] The inter prediction unit 205 may generate inter predicted pixels from a single reference block, or may generate inter predicted pixels using two reference blocks as shown in Figure 2, or may generate inter predicted pixels using two or more reference blocks.

[0043] Here, the inter prediction unit 205 may apply the following method as a method for generating inter predicted pixels using two reference blocks.

[0044] As an example, the inter prediction unit 205 may generate an inter predicted pixel by simply averaging pixel values ​​of two reference blocks.

[0045] As another example, the inter prediction unit 205 may generate an inter predicted pixel by weighting the pixel values ​​of two reference blocks on a block-by-block basis using a predetermined weight value.

[0046] The inter prediction unit 205 may apply block-based weighted bi-prediction (BCW: Bi-prediction with CU-level Weights) disclosed in Non-Patent Document 1 and Non-Patent Document 2 as a technique for such block-based weighted averaging.

[0047] In Non-Patent Documents 1 and 2, in BCW, a simple average, i.e., a plurality of weight values ​​including a 1:1 weight value, can be selected, and such weight value is specified by the value of an internal parameter (bcwIdx, third internal parameter).

[0048] Here, the inter prediction unit 205 derives bcwIdx by inheriting it from the control information or the decoded picture buffer 207. Details of inheritance will be described later.

[0049] As another example, the inter prediction unit 205 may generate inter prediction pixels by dividing the block to be decoded into two parts by a predetermined straight line, and taking a weighted average of the pixel values ​​of the reference block corresponding to each of the divided areas using a weight value according to the distance from the dividing line.

[0050] The inter prediction unit 205 may apply the geometric partitioning mode (GPM) disclosed in Non-Patent Document 1 and Non-Patent Document 2 as a technique for weighted averaging for each region obtained by dividing the block into two by a straight line.

[0051] Here, when the motion vector references a sub-pel precision position within the reference block, the inter prediction unit 205 may generate an inter prediction pixel using an interpolation filter to derive the reference pixel value of the sub-pel precision position from the reference pixel values ​​at integer pel precision positions above, below, left, and right of the sub-pel position.

[0052] Furthermore, when generating inter-predicted pixels, the inter-prediction unit 205 may adaptively apply two interpolation filters with different cutoff frequencies for inter-prediction, as disclosed in Non-Patent Document 1 and Non-Patent Document 2.

[0053] Of these two interpolation filters, the one with the lower cutoff frequency is called a switchable interpolation filter (SIF).

[0054] As in Non-Patent Document 1 and Non-Patent Document 2, the inter prediction unit 205 may apply SIF when the motion vector refers to a half-pixel precision position and when an internal parameter (hpelIfIdx, first internal parameter) that specifies whether or not SIF is to be applied indicates that SIF is to be applied.

[0055] The inter prediction unit 205 derives hpelIfIdx by inheriting it from the control information or the decoded picture buffer 207. Details of inheritance will be described later.

[0056] On the other hand, when a motion vector references a fractional pixel precision position, the inter prediction unit 205 may round (clip) the reference of the motion vector to the integer pixel precision position nearest to the fractional pixel precision position, and generate an inter prediction pixel without applying an interpolation filter.

[0057] Furthermore, the inter prediction unit 205 may apply local illumination compensation (LIC) disclosed in Non-Patent Document 2 when generating final inter predicted pixels.

[0058] LIC is a technique for correcting reference pixel values ​​in a reference block by linear prediction based on decoded pixels adjacent to the current block and the reference block.

[0059] As in Non-Patent Document 1 and Non-Patent Document 2, the inter prediction unit 205 may apply LIC when an internal parameter (licFlag, second internal parameter) that controls whether or not LIC is applied indicates that LIC is to be applied.

[0060] The inter prediction unit 205 derives the licFlag by inheriting it from the control information or the decoded picture buffer 207. Details of inheritance will be described later.

[0061] Furthermore, the inter prediction unit 205 may apply multi-hypothesis prediction (MHP) disclosed in Non-Patent Document 2 when generating the final inter predicted pixel.

[0062] Specifically, the inter prediction unit 205 may generate a final inter prediction pixel using at least one or more finally derived chained motion vectors and one motion vector that was the source (reference source) of the chained motion vectors.

[0063] Here, Non-Patent Document 2 discloses multi-hypothesis prediction (MHP) as a means for generating three or more inter-predicted pixels.

[0064] Based on the MHP algorithm, the inter prediction unit 205 may generate a final inter predicted pixel using at least one or more of the finally derived chained motion vectors and one motion vector that was the source (reference source) of the chained motion vectors. Specific procedures are described below.

[0065] First, the inter prediction unit 205 stores, in addition to one or more chained motion vectors in the merge candidate list, one motion vector that is the source (reference source) of the chained motion vectors as a motion vector for MHP.

[0066] Next, the decoded picture buffer 207 stores the MHP motion vector as the third motion vector (motion information).

[0067] Next, in generating the final inter-predicted pixel using MHP, the inter-prediction unit 205 may generate the final inter-predicted pixel value by combining (weighted averaging) up to two motion vectors corresponding to the merge candidates stored in the merge candidate list and the MHP motion vector as follows:

[0068] P Final = (1-α) P Merge +αP MHP (Equation 0) where P Final , P Merge , P MHP and α are the final inter-predicted pixel, the reference pixel of the motion vector corresponding to the merge candidate, the reference pixel of the MHP motion vector, and the MHP weighting coefficient, respectively.

[0069] The MHP weighting coefficient may be a constant. For example, the MHP weighting coefficient may be fixed to 1 / 4 or −1 / 8 as disclosed in Non-Patent Document 2. Alternatively, the decoding unit 201 may decode or estimate control information that specifies the value of the MHP weighting coefficient, and derive the MHP weighting coefficient.

[0070] MHP is a technique for generating a final inter-predicted pixel from reference pixel values ​​of at least three or more reference blocks by weighted averaging.

[0071] As in Non-Patent Document 2, the inter prediction unit 205 may apply MHP when an internal parameter (mhpFlag, fourth internal parameter) that specifies whether or not MHP is applied indicates that MHP is to be applied.

[0072] The inter prediction unit 205 derives mhpFlag by inheriting it from the control information or the decoded picture buffer 207. Details of inheritance will be described later.

[0073] The inter prediction unit 205 sends inter prediction pixels for the block to be decoded to the adder 206, and also sends to the decoded picture buffer 207 the motion vector used to generate the inter prediction pixels, an index (reference index) for identifying the reference picture referenced by the motion vector in the reference picture list, and a counter (POC: Picture Order Count) indicating the picture output order of the reference picture corresponding to the reference index. Hereinafter, the motion vector used to generate these inter prediction pixels, the reference index, and the POC corresponding to the reference index will be referred to as inter prediction information. Furthermore, the inter prediction unit 205 may send the inter prediction information including at least one or all of bcwIdx, hpelIfIdx, licFlag, or mhpFlag, which are internal parameters that change the method of generating the inter prediction pixels.

[0074] The decoded picture buffer 207 accumulates the decoded pixels of the block to be decoded sent from the adder 206, as well as inter prediction information of the block to be decoded that corresponds to the decoded pixels.

[0075] The decoded picture buffer 207 may store the inter prediction information in a predetermined size (number of pixels). For example, the decoded picture buffer 207 may store the inter prediction information in units of the minimum size (4 × 4 pixels) of a block to be decoded as disclosed in Non-Patent Document 1 and Non-Patent Document 2.

[0076] By having the decoded picture buffer 207 store such inter-prediction information at the minimum size of the block to be decoded, the accuracy of inter-prediction can be improved when such inter-prediction information is referenced by the block to be decoded in the future.

[0077] The decoded picture buffer 207 accumulates decoded pixels in units of current pictures to be decoded. Alternatively, the decoded picture buffer 207 may accumulate decoded pixels in units of current slices to be decoded. Hereinafter, a case where decoded pixels are accumulated in units of current pictures to be decoded will be described as an example.

[0078] When it is determined that the decoded pixels of the current picture buffer 207 and the inter prediction information corresponding to the decoded pixels stored therein will not be referenced as reference pictures or reference blocks by future current pictures or current blocks, the decoded picture buffer 207 may sequentially delete the decoded pixels of the current picture buffer 207 and the inter prediction information corresponding to the decoded pixels. With this configuration, the amount of information stored in the current picture buffer 207 can be reduced.

[0079] The decoded picture buffer 207 may derive the number of pictures to be decoded and the reference picture structure between the pictures to be decoded based on the control information decoded by the decoding unit 201 .

[0080] As a modified example, when inter-predicted pixels exist in a predetermined area outside the picture to be decoded in addition to the picture to be decoded, the decoded picture buffer 207 may additionally store such inter-predicted pixels.

[0081] Figure 3 is a diagram explaining the reference pixel values ​​that are referenced when a picture other than the picture to be decoded stored in the decoded picture buffer 207 disclosed in each of Non-Patent Documents 1 and 2 is referenced from a future block to be decoded.

[0082] As shown in Figure 3, in Non-Patent Document 1 (VVC: Versatile Video Coding), when a pixel value is referenced from a future block to be decoded within a predetermined range outside the picture to be decoded, the reference pixel value is generated by duplicating the pixel value at the nearest boundary of the picture to be decoded.

[0083] In VVC, the predetermined range (padding area) is specified as a range obtained by adding 16 pixels to the maximum width (number of pixels) of the block to be decoded.

[0084] In Non-Patent Document 2 (ECM: Enhanced Compression Model), as shown in FIG. 3 , only a predetermined range is stored between the outside of the picture to be decoded and the padding area as an area (inter-prediction padding area) where inter-predicted pixel values ​​of the block to be decoded can be referenced from a future block to be decoded.

[0085] As a result, even if a picture outside the current picture to be decoded is referenced from a future block to be decoded, the inter-prediction pixel values ​​of the block to be decoded are available, and therefore the accuracy of inter-prediction of the future block to be decoded is improved.

[0086] FIG. 4 is a conceptual diagram showing how the inter-prediction padding area described with reference to FIG. 3 is generated.

[0087] As shown in Figure 4, if an adjacent block of a reference block corresponding to a block to be decoded has inter-predicted pixels, even if the block to be decoded is adjacent to the picture to be decoded, inter-predicted pixels can be generated outside the picture to be decoded, and therefore the decoded picture buffer 207 can accumulate the inter-predicted padding area shown in Figure 3.

[0088] <Motion Vector Deriving Method in Inter Prediction Unit> Hereinafter, a motion vector deriving method in the inter prediction unit 205 of the image decoding device 200 according to this embodiment will be described with reference to FIGS.

[0089] FIG. 5 is a diagram showing an example of a merge candidate list, which is a method for deriving a motion vector in the inter prediction unit 205. In FIG.

[0090] The merge candidate list is a list that stores candidates for inter-prediction information (i.e., merge candidates) that the inter-prediction unit 205 constructs to derive a motion vector in the merge (merge mode) disclosed in Non-Patent Document 1 and Non-Patent Document 2.

[0091] The inter prediction unit 205 extracts a merge candidate from the multiple merge candidates in the merge candidate list based on an index (merge_idx) for identifying the merge candidate in the merge candidate list sent from the decoding unit 201, and uses this as inter prediction information to be used for generating inter prediction pixels.

[0092] The upper limit of the number of merging candidates stored in the merging candidate list may be a fixed value or a variable value. If it is a variable value, for example, as in Non-Patent Documents 1 and 2, control information can be provided in a sequence parameter set or the like, and the variable value can be set based on the control information.

[0093] The inter prediction unit 205 identifies, from the merge candidate list, inter prediction information to be used for generating inter predicted pixels, based on one or more merge_idx sent from the decoding unit 201 .

[0094] For example, for the above-described GPM, the inter prediction unit 205 may derive inter prediction information by decoding merge_idx one by one for each area obtained by dividing the current block into two areas by a straight line.

[0095] As shown in FIG. 5 , the inter prediction unit 205 stores inter prediction information (merge candidates) corresponding to L0 and L1 in the merge candidate list.

[0096] In the example of Figure 5, the inter prediction unit 205 only describes the motion vector and reference index as inter prediction information, but in addition to these, it may also store at least one or all of bcwIdx, hpelIfIdx, licFlag, or mhpFlag, which are internal parameters that change the method of generating the above-mentioned inter prediction pixels.

[0097] The inter prediction unit 205 may search for and add inter prediction information, that is, inter prediction information at a position spatially or temporally adjacent or close to the current block to be decoded, as a merge candidate, to the merge candidate list.

[0098] As an example, the inter prediction unit 205 may apply a combination of searches for multiple types of merging candidates as disclosed in Non-Patent Documents 1 and 2.

[0099] FIG. 6 shows the names of multiple types of merge candidates in the regular merge disclosed in Non-Patent Document 1 and Non-Patent Document 2, and the order in which these merge candidates are derived.

[0100] Specifically, in Non-Patent Document 1 (VVC), the inter prediction unit 205 checks whether or not to use merge candidates in the following order: spatial merge candidates, temporal motion vector prediction (TMVP) candidates, history-based motion vector prediction (HMVP) candidates, and pairwise merge candidates.

[0101] In Non-Patent Document 2 (ECM), the inter prediction unit 205 checks whether or not non-adjacent (NA) spatial merge candidates (NA-spatial merge candidates) are used between the spatial merge candidates and the TMVP candidates, in addition to the merge candidates described above in Non-Patent Document 1.

[0102] The outline of each merge candidate is as follows:

[0103] FIG. 7 is a diagram showing search positions for spatial merge candidates and TMVP candidates in a block to be decoded.

[0104] As shown in Figure 7, for spatial merge candidates, inter prediction information is searched for at each of the positions adjacent to the block to be decoded (CurBlk): bottom left (A0), left (A1), top right (B0), top (B1), and top left (B2).

[0105] That is, for spatial merge candidates, inter prediction information at a position spatially adjacent to the current block (CurBlk) is used.

[0106] In addition, in the TMVP candidate, inter-prediction information is searched for at each position in the bottom right (Col) of the center of the block to be decoded (CurBlk) and the bottom right (H) outside the block to be decoded (CurBlk) shown in Figure 7 in a picture (reference picture) different from the block to be decoded.

[0107] That is, in the TMVP candidate, inter prediction information at a position temporally adjacent to the current block is used.

[0108] For HMVP candidates and non-adjacent spatial merge candidates, inter prediction information at a position spatially distant (close) to the current block is used.

[0109] In particular, the HMVP candidate constructs a table capable of storing inter-prediction information in a FIFO manner, and each time new inter-prediction information is searched for, the oldest inter-prediction information is discarded from the table and the new inter-prediction information is added to the table.

[0110] The inter prediction unit 205 of the image decoding device 200 according to this embodiment can design the position for searching for inter prediction information and the size of the table for HMVP candidates, similar to the HMVP candidates and non-adjacent spatial merge candidates disclosed in Non-Patent Document 1 and Non-Patent Document 2.

[0111] In addition, when searching for merge candidates in the above-mentioned normal merge, the inter prediction unit 205 may re-search for a new reference block position from the surrounding pixels of the reference block of the inter prediction information to be searched, and modify the inter prediction information (motion vector) so that the difference (hereinafter referred to as the template matching cost) between the decoded pixels (template of the reference block) adjacent to the reference block based on the inter prediction information to be searched for and the decoded pixels (template of the block to be decoded) adjacent to the block to be decoded is small.

[0112] As an example of this, the inter prediction unit 205 may apply the template matching merge disclosed in Non-Patent Documents 1 and 2.

[0113] In addition, when selecting a merge candidate from the merge candidate list in the above-mentioned normal merge, the inter prediction unit 205 may derive the inter prediction information of L0 from the control information, and select as the merge candidate for L1 the merge candidate that has the smallest difference between the template of the reference block based on the inter prediction information of L0 derived from such control information and the template of the reference block based on the inter prediction information stored in L1 of the merge candidate list.

[0114] The inter prediction unit 205 can derive merge candidates (i.e., inter prediction information) for L1 based on the L0 inter prediction information derived from such control information, and therefore does not require decoding of merge_idx to derive the L1 inter prediction information in addition to the control information required to derive the L0 inter prediction information.

[0115] As an example, the inter prediction unit 205 may apply the adaptive motion vector prediction-merge mode disclosed in Non-Patent Document 1 and Non-Patent Document 2.

[0116] As a modification, the inter predictor 205 may reverse L0 and L1 in the above example, i.e., the inter predictor 205 may derive the inter prediction information for L1 from the control information and the inter prediction information for L0 from the merge candidate list.

[0117] Additionally, the inter prediction unit 205 may construct a merge candidate list for merging, which derives inter prediction information for each sub-block obtained by dividing the current block to be decoded, and derive inter prediction information.

[0118] As an example, the inter prediction unit 205 may derive inter prediction information by constructing a merge candidate list for sub-block TMVP (SbTMVP) or affine merge disclosed in Non-Patent Document 1 and Non-Patent Document 2.

[0119] <1. Basic Concept of Chained Motion Vector Prediction (Derivation of Chained Motion Vector)> The above-described methods of deriving inter prediction information (hereinafter, for the sake of simplicity, referred to as motion vector) by the inter prediction unit are all limited to information stored in a position that is spatially or temporally adjacent or close to the block to be decoded.

[0120] To further improve the coding efficiency, the inter prediction unit 205 may derive a motion vector for the block to be decoded by adding a motion vector derived by recursively searching for motion vectors stored in the decoded picture buffer 207 to motion vectors at positions spatially or temporally adjacent or close to the block to be decoded.

[0121] Here, the technique of generating a new motion vector (chained motion vector) by recursively (chaining) motion vectors stored in the decoded picture buffer 207 starting from a motion vector at a position spatially or temporally adjacent or close to the block to be decoded is referred to in this specification as "chained motion vector prediction (CMVP)." The technical content of such chained motion vector prediction will be described in detail below.

[0122] A method for deriving a chained motion vector in chained motion vector prediction will be described with reference to FIGS.

[0123] FIG. 8 is a diagram showing an example of a method for deriving a chained motion vector in chained motion vector prediction.

[0124] As shown in FIG. 8 , the inter prediction unit 205 predicts the L0 motion vector MvL0 corresponding to any merge candidate stored in the merge candidate list. k A new motion vector is generated by recursively searching for motion vectors stored in the decoded picture buffer 207 starting from (0) and the reference index.

[0125] For example, the inter prediction unit 205 predicts the reference picture RefPicL0 as shown in (Equation 1) and (Equation 2). k A new motion vector and reference picture generated by daisy chain motion vector prediction for the reference block RefBlk of (m) can be derived.

[0126] MvL0 k / m = MvL0 k (0) + MvL0 k (1) + MvL0 k (2) +…+MvL0 k (m) (Formula 1) RefPicL0 k / m =RefPicL0 k (m) (Equation 2) That is, the new motion vector MvL0 generated by chained motion vector prediction k / m can be calculated by recursively (chaining) the motion vectors stored in the decoded picture buffer 207 and adding up all the motion vectors derived.

[0127] Furthermore, the new reference picture generated by the chained motion vector prediction is MvL0 k / m is the reference picture that is referred to.

[0128] FIG. 9 is a diagram showing an example of a method for deriving a chained motion vector in chained motion vector prediction.

[0129] As shown in FIG. 9, in daisy-chain motion vector prediction, the inter prediction unit 205 may add block vectors (vectors indicating reference destinations within the same picture) to the recursive search targets in addition to searching for motion vectors.

[0130] For example, if a block vector (Bv) is added to the reference picture RefPicL0, k As shown in (Equation 3), Bv is added to the equation for deriving a new motion vector generated by daisy-chain motion vector prediction for the reference block RefBlk of (m).

[0131] MvL0 k / m = MvL0 k (0) + Bv k (0) + MvL0 k (1) + MvL0 k (2) +…+MvL0 k (m) (Equation 3) As a modification of the method of deriving the daisy chain motion vector shown in Figures 8 and 9, the inter prediction unit 205 may use a block vector as a vector (initial vector) that serves as the starting point for searching for the daisy chain motion vector.

[0132] Specifically, as shown in the following (Equation 4), the first vector (initial vector) on the right side may be Bvk(0).

[0133] MvL0k / m = Bvk(0) + MvL0k(1) + MvL0k(2) + ... + MvL0k(m) (Equation 4) Compared to camera-captured image materials, screen image materials and game image materials are more likely to have block vectors in the picture to be decoded. Therefore, if a block vector can be selected as the initial vector for deriving a chained motion vector, it will be easier to derive a chained motion vector for screen image materials and game image materials, which is expected to result in improved coding performance.

[0134] As a modified example, the inter prediction unit 105 may use control information for each sequence to control whether or not a block vector can be used as an initial vector for daisy-chain motion vector prediction.

[0135] Specifically, the decoding unit 201 decodes a flag (sps_cmvp_initial_bv_enabled_flag) that specifies whether the inter prediction unit 205 can use a block vector as an initial vector for daisy chain motion vector prediction for each sequence to be decoded, and the inter prediction unit 205 may control whether the block vector can be used as an initial vector for daisy chain motion vector prediction based on the decoding result.

[0136] 10 is a diagram showing an example of a recursive search of motion vectors including bi-prediction (i.e., inter-prediction using two different motion vectors for L0 and L1). FIG. 11 is a diagram showing an example of a chained motion vector derived by a recursive search of motion vectors including bi-prediction.

[0137] As shown in FIGS. 10 and 11 , in the daisy chain motion vector prediction, the inter prediction unit 205 newly searches and derives one or more (up to two in the examples of FIGS. 10 and 11 ) motion vectors from one reference source motion vector using each search list number (L0 or L1) and each search depth (or each search count) of the motion vectors stored in the decoded picture buffer 207, and then adds all the motion vectors that have already been derived to each of the one or more newly derived motion vectors to obtain a daisy chain motion vector MvL0. k / m Generate.

[0138] 12 and 13 are diagrams showing an example of searching for daisy-chain motion vector prediction candidates after searching for multiple types of merge candidates in the normal merge disclosed in Non-Patent Documents 1 and 2. FIG.

[0139] As shown in FIGS. 12 and 13, the inter prediction unit 205 may search for predetermined merge candidates and then search for chained motion vector prediction candidates.

[0140] For example, as shown in FIG. 12, in VVC, the inter prediction unit 205 may search for daisy-chain motion vector prediction candidates after searching for TMVP candidates.

[0141] Due to the nature of chained motion vector prediction, which searches for a new motion vector using the motion vector of a reference picture rather than the picture to be decoded stored in the decoded picture buffer 207, it will not be effective unless TMVP is effective in the sequence to be decoded, the group of pictures to be decoded, the picture to be decoded, or the slice to be decoded.

[0142] Therefore, searching for TMVP candidates and then searching for chained motion vector prediction candidates can be said to be a natural design method for deriving a motion vector.

[0143] As a modification of FIG. 12, the inter prediction unit 205 may search for daisy-chain motion vector prediction candidates after searching for HMVP candidates in VVC and ECM, as shown in FIG.

[0144] Due to the nature of daisy-chain motion vector prediction, which generates a new motion vector by recursively searching for motion vectors, it must be applied in a state where at least one merge candidate is stored in the merge candidate list.

[0145] As shown in Figure 13, by searching for HMVP candidates that are expected to store one or more motion vector candidates in the merge candidate list and then searching for chained motion vector prediction candidates, the possibility of generating a new motion vector using chained motion vectors is increased.

[0146] As another modification, the inter prediction unit 205 may search for daisy-chain motion vector prediction candidates after searching for spatial merge candidates in the ECM, as shown in FIG. 12 .

[0147] Figure 7 shows the search positions for spatial merge candidates. However, for example, if the search positions for spatial merge candidates are increased, the likelihood of storing one or more motion vector candidates in the merge candidate list increases, making it easier to generate new motion vector candidates by chaining merge candidates.

[0148] 14 to 17 are diagrams showing examples of merge candidates from which a daisy-chain motion vector predictor candidate is derived and positions (index numbers) in the merge candidate list to which the daisy-chain motion vector predictor candidate is added.

[0149] In addition, in order to simplify the description of the technical content, Figures 14 to 17 only show motion vectors as inter prediction information stored in the merge candidate list, but the above-mentioned reference indexes are also stored.

[0150] Furthermore, the inter prediction unit 205 may store, in addition to the motion vectors and reference indices, bcwIdx, hpelIfIdx, licFlag, and mhpFlag, which are internal parameters for changing the inter prediction pixel generation method described above.

[0151] As shown in FIG. 14 , the inter prediction unit 205 may store a predetermined number of merge candidates in a merge candidate list, and then apply daisy-chain motion vector prediction to each merge candidate stored in the merge candidate list, starting with the first merge candidate stored in the merge candidate list, and store all new merge candidates generated by the daisy-chain motion vector prediction for each merge candidate in the merge candidate list in sequence.

[0152] Here, the specified merge candidate may be any of the multiple types of merge candidates in the normal merge described using Figures 12 and 13, or may be a specified number of merge candidates (specified numbers of merge_idx).

[0153] Such a predetermined number may be set as a fixed value, or may be set as a variable value for each sequence to be decoded, each group of pictures to be decoded, each picture to be decoded, or each slice to be decoded, using control information for the sequence to be decoded, each group of pictures to be decoded, each picture to be decoded, or each slice to be decoded.

[0154] As a modification of Figure 14, as shown in Figure 15, the inter prediction unit 205 may store specified merge candidates in a merge candidate list, and then apply daisy chain motion vector prediction in order starting from the first merge candidate stored in the merge candidate list, and store new daisy chain motion vectors (i.e., merge candidates) generated at each search depth of the daisy chain motion vector prediction for each merge candidate in order in the merge candidate list.

[0155] As a modification of Figures 14 and 15, as shown in Figure 16, after the first merge candidate is stored in the merge candidate list, the inter prediction unit 205 may apply daisy chain motion vector prediction starting from that merge candidate, and store all of the new daisy chain motion vectors (i.e., merge candidates) generated by the daisy chain motion vector prediction for each merge candidate in the merge candidate list in sequence.

[0156] As a modification of Figures 14 to 16, as shown in Figure 17, after the first merge candidate is stored in the merge candidate list, the inter prediction unit 205 may apply daisy-chain motion vector prediction in order starting from that merge candidate, and store new daisy-chain motion vectors (i.e., merge candidates) generated at each search depth of the daisy-chain motion vector prediction for each merge candidate in order in the merge candidate list.

[0157] As a modified example of Figures 14 to 17, the inter prediction unit 205 may generate a new merge candidate by combining a daisy chain motion vector generated using each search depth of the daisy chain motion vector prediction for each merge candidate list with a daisy chain motion vector generated at a search depth different from each of the search depths.

[0158] As a modified example of Figures 14 to 17, the inter prediction unit 205 may generate a new merge candidate by combining a daisy chain motion vector generated using each search list number or each search depth of the daisy chain motion vector prediction for each merge candidate list with a daisy chain motion vector generated using a search list number or search depth different from each search list number or each search depth.

[0159] 2. Pruning Process of Chained Motion Vector Prediction Candidates> Using FIG. 18 , a pruning process will be described when the inter prediction unit 205 of the image decoding device 200 according to this embodiment adds a merge candidate (the above-mentioned chained motion vector prediction candidate) corresponding to a chained motion vector derived by chained motion vector prediction to a merge candidate list.

[0160] Figure 18 is a diagram showing an example of a pruning process in which the inter prediction unit 205 of the image decoding device 200 of this embodiment adds a merge candidate corresponding to a daisy chain motion vector derived by daisy chain motion vector prediction to a merge candidate list.

[0161] The inter prediction unit 205 determines whether to add a merge candidate corresponding to the chained motion vector derived by chained motion vector prediction based on a predetermined condition.

[0162] Specifically, as shown in FIG. 18, if the inter prediction unit 205 determines in step S000 that a predetermined condition is satisfied, it determines in step S002 not to add a merge candidate corresponding to the daisy-chain motion vector derived by the daisy-chain motion vector prediction.

[0163] On the other hand, if it is determined in step S000 that the predetermined condition is not satisfied, the inter prediction unit 205 determines in step S001 to add a merge candidate corresponding to the daisy chain motion vector derived by the daisy chain motion vector prediction.

[0164] Here, for example, the specified condition may be that the reference picture and motion vector associated with at least one merge candidate stored in the merge candidate list and the merge candidate corresponding to the derived chained motion vector are identical.

[0165] When the inter prediction unit 205 determines that the reference picture and motion vector associated with at least one merge candidate stored in the merge candidate list and the merge candidate corresponding to the derived daisy-chain motion vector match, it decides not to add the merge candidate corresponding to the daisy-chain motion vector to the merge candidate list, i.e., to prune (target for pruning) the merge candidate corresponding to the daisy-chain motion vector, thereby preventing two or more of the same motion vectors from being stored in the merge candidate list, reducing the amount of code for merge_idx (merge index) sent to the image decoding device 200, and improving coding efficiency.

[0166] Alternatively, the specified condition may be that at least one merge candidate stored in the merge candidate list and one or more reference pictures and motion vectors associated with each merge candidate corresponding to the derived chained motion vector all match.

[0167] Alternatively, the specified condition may be that the reference pictures and motion vectors of merge candidate list number 0 (L0) and merge candidate list number 1 (L1) associated with at least one merge candidate stored in the merge candidate list and the merge candidate corresponding to the derived chained motion vector all match.

[0168] Furthermore, the specified condition may be that the reference pictures associated with at least one merge candidate stored in the merge candidate list and the merge candidate corresponding to the derived daisy-chain motion vector match, and the error (Euclidean distance) of the reference position of the motion vector associated with at least one merge candidate stored in the merge candidate list and the merge candidate corresponding to the derived daisy-chain motion vector is less than a specified threshold.

[0169] This strengthens the pruning process of merge candidates corresponding to chained motion vectors, and more effectively prevents cases where two or more similar motion vectors are stored in the merge candidate list, reducing the amount of code for merge_idx sent to the image decoding device 200 and improving coding efficiency.

[0170] As a further control, the inter prediction unit 205 may set the predetermined threshold when one motion vector is compared to be larger than the predetermined threshold when two motion vectors are compared.

[0171] In this way, by setting the predetermined threshold value when there is one motion vector to be compared to a value greater than the predetermined threshold value when there are two motion vectors to be compared, pruning processing can be performed with higher accuracy.

[0172] Here, the inter prediction unit 205 may set the predetermined threshold to 1.5 pixels when there is one motion vector to be compared.

[0173] Alternatively, the inter prediction unit 205 may set the predetermined threshold to 1.0 pixel or 2.0 pixel when there is one motion vector to be compared.

[0174] Furthermore, the inter prediction unit 205 may set the predetermined threshold to 1.0 pixel when there are two motion vectors to be compared.

[0175] Alternatively, the inter prediction unit 205 may set the predetermined threshold to 0.5 pixels or 1.5 pixels when there are two motion vectors to be compared.

[0176] Furthermore, the above-mentioned specified condition may be that the reference pictures and motion vectors associated with at least one merge candidate stored in the merge candidate list and the merge candidate corresponding to the derived chained motion vector, as well as the internal parameters that change the method of generating the specified inter-predicted pixels, are consistent.

[0177] Alternatively, the specified condition may be that the reference picture, motion vector, and internal parameter (hpelIfIdx) that specifies whether or not to apply a switching interpolation filter associated with at least one merge candidate stored in the merge candidate list and the merge candidate corresponding to the derived chained motion vector match.

[0178] Alternatively, the specified condition may be that the reference picture, motion vector, and internal parameter (licFlag) that controls whether or not to apply local luminance compensation associated with at least one merge candidate stored in the merge candidate list and the merge candidate corresponding to the derived chained motion vector match.

[0179] Furthermore, the specified condition may be that the reference picture, motion vector, and block-based weighted bi-prediction weight value associated with at least one merge candidate stored in the merge candidate list and the merge candidate corresponding to the derived chained motion vector are consistent.

[0180] By including the above-mentioned internal parameters in the specified conditions, the inter prediction unit 205 can generate inter prediction pixels using different methods when the internal parameters are different, even if the reference picture and motion vector to be compared are the same, thereby leaving room for improving inter prediction accuracy and expected to improve coding efficiency.

[0181] 3. Control of reference source and reference destination when deriving daisy-chain motion vectors> Using Figures 19 to 22, we will explain a method for controlling reference sources and reference destinations when the inter prediction unit 205 of the image decoding device 200 according to this embodiment derives daisy-chain motion vectors in daisy-chain motion vector prediction.

[0182] First, a method of controlling reference sources when deriving daisy-chain motion vectors in daisy-chain motion vector prediction will be described with reference to FIG.

[0183] FIG. 19 is a diagram showing an example of a method for controlling a reference source when deriving a daisy chain motion vector in daisy chain motion vector prediction by the inter prediction unit 205. In FIG.

[0184] When deriving daisy chain motion vectors in daisy chain motion vector prediction, the inter prediction unit 205 may set the starting point of the first motion vector constituting the daisy chain motion vectors to part or all of the block to be decoded.

[0185] As an example of setting it to a part of the block to be decoded, as shown in Figure 19, when deriving a daisy chain motion vector in daisy chain motion vector prediction, the inter prediction unit 205 may set the starting point of the first motion vector that constitutes the daisy chain motion vector to the center (C) of the block to be decoded (CurBlk).

[0186] Alternatively, as shown in Figure 19, when deriving a daisy-chain motion vector in daisy-chain motion vector prediction, the inter prediction unit 205 may set the starting point of the first motion vector that constitutes the daisy-chain motion vector to a predetermined position of the block to be decoded (CurBlk) in addition to the center (C) of the block to be decoded (CurBlk), and search for whether a motion vector is stored at the reference destination of the motion vector in a predetermined order.

[0187] Specifically, as shown in Figure 19, when deriving a daisy-chain motion vector in daisy-chain motion vector prediction, the inter prediction unit 205 may set the starting point of the first motion vector that constitutes the daisy-chain motion vector to the four corners of the block to be decoded (CurBlk) in addition to the center (C) of the block to be decoded (CurBlk), and may search for whether a motion vector is stored in the reference destination of the motion vector in a predetermined order of the center (C), upper left (TL), upper right (TR), lower left (BL), and lower right (BR) of the block to be decoded.

[0188] The inter prediction unit 205 may generate a chain of motion vectors for each motion vector derived by searching at each point.

[0189] As a modified example, the inter prediction unit 205 may compare the difference between adjacent decoded pixel values ​​of the reference block of each motion vector derived by searching at each point and the block to be decoded, and generate a chain of motion vectors limited to at least one motion vector with a small difference.

[0190] As another modification, the inter prediction unit 205 may derive a new motion vector for generating a chained motion vector by weighting and averaging the motion vectors derived by searching for each point.

[0191] Specifically, when calculating the weighted average of each motion vector, the inter prediction unit 205 may generate a new motion vector by scaling each motion vector based on the distance of the reference picture of each motion vector from the current block to be decoded. The scaling destination may be set to the reference picture that is the shortest distance from the current block to be decoded.

[0192] When deriving a daisy chain motion vector, the inter prediction unit 205 sets the starting point of the first motion vector that constitutes the daisy chain motion vector to the four corners of the block to be decoded in addition to the center of the block to be decoded, which increases the likelihood of deriving a daisy chain motion vector and is expected to result in improved coding efficiency.

[0193] As further control, when deriving a daisy chain motion vector in daisy chain motion vector prediction, the inter prediction unit 205 may control the starting point of the first motion vector that constitutes the daisy chain motion vector according to the block size or block aspect ratio of the block to be decoded.

[0194] For example, when deriving a daisy chain motion vector in daisy chain motion vector prediction, the inter prediction unit 205 may set the starting point of the first motion vector that constitutes the daisy chain motion vector only to the center of the block to be decoded if the block size of the block to be decoded is equal to or smaller than a first size.

[0195] When the block size of the block to be decoded is equal to or smaller than a first size, when deriving a chained motion vector, the first motion vector that constitutes the chained motion vector is likely to be the same at the center of the block to be decoded and at the four corners of the block to be decoded.

[0196] Therefore, when the block size of the block to be decoded is equal to or smaller than the first size, the amount of processing required to search for the daisy-chain motion vector can be reduced by setting the starting point of the first motion vector that constitutes the daisy-chain motion vector only to the center of the block to be decoded (without adding the four corners of the block to be decoded).

[0197] Alternatively, when deriving a daisy chain motion vector in daisy chain motion vector prediction, the inter prediction unit 205 may set the starting point of the first motion vector that constitutes the daisy chain motion vector to the four corners of the block to be decoded in addition to the center of the block to be decoded if the block size of the block to be decoded is larger than the first size, and search whether a motion vector is stored at the reference destination of the motion vector in a predetermined order of the center of the block to be decoded, top left, top right, bottom left, and bottom right.

[0198] If the block size of the block to be decoded is larger than the first size, when deriving a chained motion vector, the first motion vector that constitutes the chained motion vector is likely to be different at the center of the block to be decoded and the four corners of the block to be decoded.

[0199] Therefore, if the block size of the block to be decoded is larger than the first size, when deriving a daisy chain motion vector, the starting point of the first motion vector that constitutes the daisy chain motion vector is set to the four corners of the block to be decoded in addition to the center of the block to be decoded, thereby generating different daisy chain motion vectors and expected to improve coding efficiency.

[0200] Here, since it is assumed that the block to be decoded may be non-square, the block size (number of pixels in the block) of the block to be decoded may be replaced with the width and height of the block to be decoded to perform the above-mentioned control.

[0201] Specifically, when deriving a daisy chain motion vector in daisy chain motion vector prediction, the inter prediction unit 205 may set the starting point of the first motion vector that constitutes the daisy chain motion vector to the four corners of the block to be decoded in addition to the center of the block to be decoded if the width or height of the block to be decoded is greater than a predetermined number of pixels, and may search for whether a motion vector is stored at the reference destination of the motion vector in a predetermined order: center of the block to be decoded, top left, top right, bottom left, and bottom right.

[0202] The inter prediction unit 205 may set the predetermined number of pixels to any one of 8 pixels, 16 pixels, and 32 pixels.

[0203] Alternatively, when deriving a daisy chain motion vector in daisy chain motion vector prediction, the inter prediction unit 205 may set the starting point of the first motion vector that constitutes the daisy chain motion vector to the center of the block to be decoded as well as the bottom left and top right of the block to be decoded if the aspect ratio of the block to be decoded is greater than a predetermined ratio, and search for whether a motion vector is stored at the reference destination of the motion vector in a predetermined order of the center, bottom left, and top right of the block to be decoded.

[0204] The inter prediction unit 205 may set any one of 4, 8, and 16 as the predetermined ratio.

[0205] Secondly, an example of a method for controlling reference destinations when deriving daisy-chain motion vectors in daisy-chain motion vector prediction will be described with reference to FIGS. 20 and 21. FIG.

[0206] FIG. 20 is a diagram showing an example of a method for controlling reference destinations when deriving daisy-chain motion vectors in daisy-chain motion vector prediction by the inter prediction unit 205. In FIG.

[0207] As shown in Figure 20, in the recursive motion vector search process when deriving a chained motion vector, if the reference position of each motion vector references outside the reference picture, the inter prediction unit 205 may search for the motion vector in the storage location of the motion vector in the reference picture nearest to such reference position.

[0208] Even if the reference position of a motion vector refers to a position outside the reference picture, the motion vectors linked to the motion vector may be in different reference pictures, so that the linked motion vectors can be newly generated.

[0209] Alternatively, as shown in Figure 20, the inter prediction unit 205 may terminate the generation of the daisy chain motion vector if, during the recursive motion vector search process when deriving the daisy chain motion vector, the reference position of each motion vector references a picture outside the reference picture.

[0210] When the reference position of a motion vector references a picture outside the reference picture, there is a high possibility that the motion vectors chained from that motion vector will also reference a different reference picture outside the reference picture, so the amount of decoding processing can be reduced by terminating the generation of the chained motion vectors.

[0211] Alternatively, if the decoded picture buffer 207 stores an inter-prediction padding area outside the reference picture, the above-mentioned description "outside the reference picture" may be replaced with the description "outside the inter-prediction padding area," and the inter-prediction unit 205 may perform similar processing.

[0212] Figure 21 is a diagram showing an example of a method for controlling the reference source and reference destination when deriving a daisy chain motion vector in daisy chain motion vector prediction by the inter prediction unit 205 in a case where Gradual Decoding Refresh (GDR), which is disclosed in Non-Patent Document 1 and is known as an encoding / decoding technology for low-latency video transmission, is applied to a group of pictures to be decoded.

[0213] GDR is a technology that reduces the processing delay of video encoding and decoding at a certain bit rate compared to video encoding and decoding using a random access configuration including intra pictures, which are widely used in video transmission, by updating only a portion of the screen by encoding and decoding using intra prediction (hereinafter referred to as intra update) and moving this portion of the screen for each picture to be decoded.

[0214] FIG. 21 illustrates an intra update region as a slice, and shows an example in which the slice moves from the top to the bottom of the picture to be decoded.

[0215] In this specification, the three partitioned regions according to GDR in the picture to be decoded are referred to as a region after intra-update, a region during intra-update, and a region before intra-update.

[0216] As shown in Figure 21, when sequential decoder updates are applied to a group of pictures to be decoded, the inter prediction unit 205 may limit the recursive motion vector search of the daisy chain motion vector prediction so as not to exceed the area during the intra update.

[0217] For example, as shown in Figure 21, when decoder updates are applied sequentially to a group of pictures to be decoded and the block to be decoded is included in an area after intra-update, the inter prediction unit 205 may limit the area that can be referenced in each recursive motion vector search of the daisy-chain motion vector prediction to only the area after intra-update in the reference picture to be searched.

[0218] Alternatively, when decoder updates are applied sequentially to a group of pictures to be decoded and the block to be decoded is included in an area before the intra update, the inter prediction unit 205 may limit the area that can be referenced in each recursive motion vector search of the daisy chain motion vector prediction to only the area before the intra update in the reference picture to be searched.

[0219] In this way, when the inter prediction unit 205 applies sequential decoder updates to a group of pictures to be decoded, it is possible to generate daisy-chain motion vectors with high prediction accuracy by limiting the recursive motion vector search of the daisy-chain motion vector prediction so as not to exceed the area being intra-updated.

[0220] Figure 22 is a diagram showing an example of controlling the reference destination when the inter prediction unit 205 derives a daisy chain motion vector in daisy chain motion vector prediction in a case where Reference Picture Resampling (RPR) disclosed in Non-Patent Document 1 is applied, in which reference of a motion vector to a reference picture with a resolution (sampling ratio) different from that of the decoding picture in the block to be decoded is allowed.

[0221] In RPR, the inter prediction unit 205 calculates the ratio of the width and height of the decoded picture to the width and height of the reference picture, respectively, and scales the pixel positions and motion vector lengths of the reference picture relative to the decoded picture according to the ratio to generate inter predicted pixels.

[0222] Therefore, for example, as shown in Figure 22, if the width and height of the reference picture are 0.5 times the width and height of the decoded picture, the pixel positions and motion vector lengths of the reference picture relative to the decoded picture are scaled by 0.5 times.

[0223] On the other hand, when generating a chained motion vector, the inter prediction unit 205 needs to chain the motion vectors at the same scale as the decoded picture.

[0224] Therefore, as shown in Figure 22, when the inter prediction unit 205 refers to a motion vector for a reference picture with a different resolution (sampling ratio) than the picture to be decoded, and recursively searches for a motion vector from such reference picture to generate a daisy-chain motion vector, the lengths of the recursively derived motion vectors may be inversely scaled according to the ratio between the width and height of the picture to be decoded and the width and height of each reference picture, and then added together to generate the daisy-chain motion vector.

[0225] As a modified example, when it is permitted for a sequence or group of pictures to be decoded to refer to a motion vector for a reference picture with a resolution (sampling ratio) different from that of the picture to be decoded, the inter prediction unit 205 may apply a daisy chain motion vector only to reference pictures with the same sampling ratio as the picture to be decoded.

[0226] In other words, when it is permissible for a sequence or group of pictures to be decoded to refer to a motion vector for a reference picture with a resolution (sampling ratio) different from that of the picture to be decoded, the inter prediction unit 205 may not apply a chained motion vector to a reference picture that does not have the same sampling ratio as the picture to be decoded.

[0227] 4. Inheritance of Inter Prediction Information in Dice Motion Vector Prediction When deriving merge candidates using diced motion vector prediction, the inter prediction unit 205 may control whether to inherit a predetermined internal parameter that changes the method of generating inter predicted pixels.

[0228] (Switching interpolation filter) As an example, when deriving merge candidates using daisy-chain motion vector prediction, the inter prediction unit 205 may not inherit the internal parameter (hpelIfIdx) that specifies whether or not to apply a switching interpolation filter associated with each recursively searched motion vector, but may always set the internal parameter (hpelIfIdx) that specifies whether or not to apply a switching interpolation filter corresponding to the merge candidate derived by daisy-chain motion vector prediction to indicate that a switching interpolation filter is not to be applied.

[0229] Alternatively, when deriving merge candidates using daisy-chain motion vector prediction, the inter prediction unit 205 may inherit, from the internal parameters (hpelIfIdx) that specify whether or not to apply a switching interpolation filter associated with each motion vector recursively searched for, the internal parameter (hpelIfIdx) that specifies whether or not to apply a switching interpolation filter associated with the first or last motion vector that constitutes the daisy-chain motion vectors, as the internal parameter (hpelIfIdx) that specifies whether or not to apply a switching interpolation filter corresponding to the merge candidate derived by daisy-chain motion vector prediction.

[0230] Alternatively, when deriving merge candidates using daisy-chain motion vector prediction, if at least one of the internal parameters (hpelIfIdx) that specify whether or not to apply a switching interpolation filter associated with each recursively searched motion vector indicates that a switching interpolation filter is to be applied, the inter prediction unit 205 may set the internal parameter (hpelIfIdx) that specifies whether or not to apply a switching interpolation filter corresponding to the merge candidate derived by daisy-chain motion vector prediction to indicate that a switching interpolation filter is to be applied.

[0231] Furthermore, when a daisy chain motion vector generated by daisy chain motion vector prediction is composed of at least one or more block vectors, the inter prediction unit 205 may always set an internal parameter (hpelIfIdx) that specifies whether or not to apply a switching interpolation filter corresponding to a merge candidate derived by daisy chain motion vector prediction to indicate that a switching interpolation filter is not to be applied.

[0232] (Local luminance compensation) As an example, when deriving merge candidates using daisy-chain motion vector prediction, the inter prediction unit 205 may not inherit the internal parameter (licFlag) that controls whether or not to apply local luminance compensation associated with each recursively searched motion vector, but may always set the internal parameter (licFlag) that controls whether or not to apply local luminance compensation corresponding to the merge candidates derived by daisy-chain motion vector prediction to indicate that local luminance compensation is not applied.

[0233] Alternatively, when deriving merge candidates using daisy-chain motion vector prediction, the inter prediction unit 205 may inherit an internal parameter (licFlag) that controls whether or not to apply local luminance compensation associated with each recursively searched motion vector, the internal parameter (licFlag) that controls whether or not to apply local luminance compensation associated with the first or last motion vector that constitutes the daisy-chain motion vector, as the internal parameter (licFlag) that controls whether or not to apply local luminance compensation corresponding to the merge candidate derived by daisy-chain motion vector prediction.

[0234] Alternatively, when deriving merge candidates using daisy-chain motion vector prediction, if at least one of the internal parameters (licFlag) that control whether or not to apply local luminance compensation associated with each recursively searched motion vector indicates that local luminance compensation is to be applied, the inter prediction unit 205 may set the internal parameter (licFlag) that controls whether or not to apply local luminance compensation corresponding to the merge candidate derived by daisy-chain motion vector prediction to indicate that local luminance compensation is to be applied.

[0235] Furthermore, when a daisy chain motion vector generated by daisy chain motion vector prediction is composed of at least one or more block vectors, the inter prediction unit 205 may always set an internal parameter (licFlagg) that controls whether or not to apply local luminance compensation corresponding to a merge candidate derived by daisy chain motion vector prediction to indicate that local luminance compensation is not applied.

[0236] As a modified example, the inter prediction unit 205 may re-determine the value of an internal parameter (licFlag) that controls whether or not to apply local luminance compensation inherited by a daisy-chain motion vector by comparing a sum of absolute differences (SAD) that can be calculated from adjacent pixel values ​​of the block to be decoded and the reference block with a mean-removed sum of absolute differences (MR-SAD).

[0237] Specifically, when MR-SAD is greater than or equal to SAD, the inter prediction unit 205 may set the value of an internal parameter (licFlag) that controls whether or not local luminance compensation is applied to a value that specifies that local luminance compensation is not applied, and on the other hand, when MR-SAD is smaller than SAD, the inter prediction unit 205 may set the value of the internal parameter (licFlag) that controls whether or not local luminance compensation is applied to a value that specifies that local luminance compensation is applied.

[0238] As a further modification, the inter prediction unit 205 may reset the value based on control information (cu_merge_lic_revert_flag) for each block to be decoded, which controls whether to maintain or invert the value of an internal parameter (licFlag) that controls whether or not to apply local luminance compensation inherited by the daisy chain motion vector.

[0239] (Block-based weighted bi-prediction) As an example, when deriving merge candidates using daisy-chain motion vector prediction, the inter prediction unit 205 may not inherit the internal parameter (bcwIdx) that specifies the weight values ​​of block-based weighted bi-prediction associated with each motion vector recursively searched, but may always set the internal parameter (bcwIdx) that specifies the weight values ​​of block-based weighted bi-prediction corresponding to the merge candidates derived by daisy-chain motion vector prediction to indicate that the weight values ​​of block-based weighted bi-prediction are a simple average.

[0240] Alternatively, when deriving merge candidates using daisy-chain motion vector prediction, the inter prediction unit 205 may inherit, from the internal parameters (bcwIdx) that specify the weight values ​​of block-based weighted bi-prediction associated with each motion vector recursively searched for, the internal parameter (bcwIdx) that specifies the weight value of block-based weighted bi-prediction associated with the first or last motion vector that constitutes the daisy-chain motion vectors, as the internal parameter (bcwIdx) that specifies the weight value of block-based weighted bi-prediction corresponding to the merge candidate derived by daisy-chain motion vector prediction.

[0241] As a modified example, when deriving merge candidates using daisy-chain motion vector prediction, if at least one of the internal parameters (bcwIdx) specifying the weight values ​​of block-based weighted bi-prediction associated with each motion vector recursively searched for indicates that the weight values ​​of block-based weighted bi-prediction are specified as a simple average, the inter prediction unit 205 may set the internal parameter (bceIdx) specifying the weight values ​​of block-based weighted bi-prediction corresponding to the merge candidate derived by daisy-chain motion vector prediction to indicate that the weight values ​​of block-based weighted bi-prediction are specified as a simple average.

[0242] (Multiple hypothesis prediction) As an example, when deriving merge candidates using daisy-chain motion vector prediction, the inter prediction unit 205 may not inherit the internal parameter (mhpFlag, fourth internal parameter) that controls whether or not to apply multiple hypothesis prediction associated with each recursively searched motion vector, but may always set the internal parameter (mhpFlag) that controls whether or not to apply multiple hypothesis prediction corresponding to the merge candidate derived by daisy-chain motion vector prediction to indicate that multiple hypothesis prediction is not applied.

[0243] As a modified example, when deriving merge candidates using daisy-chain motion vector prediction, the inter prediction unit 205 may indicate that, among the internal parameters (mhpFlag) that control whether or not to apply multiple hypothesis prediction linked to each motion vector recursively searched for, the internal parameter (mhpFlag) that controls whether or not to apply multiple hypothesis prediction linked to the first or last motion vector that constitutes the daisy-chain motion vector is inherited as the internal parameter (mhpFlag) that controls whether or not to apply multiple hypothesis prediction corresponding to the merge candidate derived by daisy-chain motion vector prediction.

[0244] As a modified example, when deriving merge candidates using daisy-chain motion vector prediction, if at least one of the internal parameters (mhpFlag) that control whether or not to apply multiple hypothesis prediction associated with each recursively searched motion vector indicates that multiple hypothesis prediction is to be applied, the inter prediction unit 205 may set the internal parameter (mhpFlag) that controls whether or not to apply multiple hypothesis prediction corresponding to the merge candidate derived by daisy-chain motion vector prediction to indicate that multiple hypothesis prediction is to be applied.

[0245] As a further modification, when a daisy chain motion vector generated by daisy chain motion vector prediction is composed of at least one or more block vectors, the inter prediction unit 205 may always set an internal parameter (mhpFlag) that controls whether or not to apply multiple hypothesis prediction corresponding to the merge candidate derived by daisy chain motion vector prediction to indicate that multiple hypothesis prediction is not applied.

[0246] As described above, if the internal parameters that change the method of generating inter-predicted pixels are not always inherited in daisy-chain motion vector prediction, the amount of code of inter-predicted information that needs to be stored in the decoded picture buffer 207 is reduced.

[0247] On the other hand, as described above, if the internal parameters that change the method of generating inter-predicted pixels are inherited by daisy-chain motion vector prediction, the inter-predicted pixels using merge candidates generated by daisy-chain motion vector prediction may become more accurate, and improved coding efficiency can be expected.

[0248] Furthermore, when the above-mentioned internal parameters are inherited, if the daisy-chain motion vector is composed of at least one or more block vectors, there is little need to change the method of generating inter-predicted pixels, so by not inheriting such internal parameters, i.e., by setting the method of generating inter-predicted pixels not to be changed, improvement in coding efficiency can be expected.

[0249] 5. Reordering of Merge Candidates Including Chained Motion Vector Prediction Candidates and Vector Correction (Reordering of Merge Candidates) The later a chained motion vector prediction candidate is derived relative to other merge candidates, the less likely the chained motion vector prediction candidate is to be stored in the merge candidate list.

[0250] As a method for solving this problem, the inter prediction unit 205 may calculate the template matching costs of all of the merge candidates stored in the merge candidate list, including the merge candidates derived by daisy-chain motion vector prediction, and rearrange the storage positions of each merge candidate in the merge candidate list in ascending order of template matching cost.

[0251] As an example, the inter prediction unit 205 may use Adaptive Reordering Merge Candidate (ARMC) disclosed in Non-Patent Document 2 as a technique for rearranging the storage positions of each merge candidate in the merge candidate list based on the template matching cost of each merge candidate.

[0252] Furthermore, since daisy-chain motion vector prediction recursively generates new motion vectors, as described above, if other merge candidates are derived after the daisy-chain motion vector prediction candidate is derived, the other merge candidates may not be stored in the merge candidate list.

[0253] To solve this problem, the inter prediction unit 205 may calculate the template matching costs of all unpruned merge candidates, including merge candidates derived by daisy-chain motion vector prediction, and store them in ascending order of template matching cost in the merge candidate list.

[0254] Alternatively, the inter prediction unit 205 may perform a series of processes a predetermined number of times, including calculating the template matching costs of all unpruned merge candidates, including merge candidates derived by daisy-chain motion vector prediction, and storing the merge candidates in ascending order of template matching cost in the merge candidate list. For example, the predetermined number of times may be two or three.

[0255] As a result, merge candidates that can generate inter-predicted pixels with high accuracy are arranged in the merge candidate list, and improvement in coding efficiency can be expected.

[0256] (Vector Correction) The inter prediction unit 205 may correct the motion vectors associated with the merge candidates derived by the chained motion vector prediction using a predetermined method.

[0257] As an example, the inter prediction unit 205 may correct the motion vectors associated with the merge candidates derived by chained motion vector prediction using template matching.

[0258] Here, the inter prediction unit 205 may apply a technique similar to the template matching disclosed in Non-Patent Document 2 as the template matching.

[0259] As an example, the inter prediction unit 205 may correct the motion vectors associated with the merge candidates derived by chained motion vector prediction using bilateral matching.

[0260] Here, as such bilateral matching, the inter prediction unit 205 may apply a technique similar to the bilateral matching disclosed in Non-Patent Document 1 and Non-Patent Document 2. For example, the inter prediction unit 205 may apply decoder-side motion vector refinement (DMVR) disclosed in Non-Patent Document 1.

[0261] As an example, the inter prediction unit 205 may correct the motion vector associated with the merge candidate derived by chained motion vector prediction by adding a motion vector difference derived from the control information.

[0262] Here, the inter prediction unit 205 may apply a technique similar to the merge with motion vector difference (MMVD) disclosed in Non-Patent Document 1 and Non-Patent Document 2 as control information indicating the motion vector difference.

[0263] The inter prediction unit 205 corrects the motion vectors associated with the merge candidates derived by the chained motion vector prediction using a predetermined method, thereby improving the accuracy of inter prediction and improving the coding efficiency.

[0264] 6. Various Restrictions on Dice Motion Vector Prediction (Whether Applied, Number of Pictures, Number of Merge Candidates)> Various restriction methods on diced motion vector prediction performed by the decoding unit 201 and the inter prediction unit 205 of the image decoding device 200 according to this embodiment will be described with reference to FIG. 23 .

[0265] (Whether or not daisy chain motion vector prediction is applied) First, regarding whether or not daisy chain motion vector prediction is applied (whether or not it is applicable), as described above, when TMVP is applicable, daisy chain motion vector prediction is applicable due to its nature. In other words, when TMVP is not applicable, daisy chain motion vector prediction is not applicable.

[0266] Therefore, whether or not the daisy-chain motion vector prediction is applicable can be controlled according to control information (syntax) that controls whether or not the temporal motion vector prediction TMVP is applicable.

[0267] That is, the inter prediction unit 205 may control whether or not to apply daisy chain motion vector prediction based on control information sent from the decoding unit 201 that controls whether or not to apply temporal motion vector prediction (TMVP).

[0268] Here, non-patent document 1 specifies the syntax for controlling whether TMVP is applicable, including a syntax for a sequence unit to be decoded (sps_temporal_mvp_enabled_flag, first control information, first syntax) and a syntax for a picture unit to be decoded (ph_temporal_mvp_enabled_flag, second control information, second syntax).

[0269] That is, whether or not the chained motion vector prediction is applicable can be controlled in the same units as TMVP or in units lower than TMVP.

[0270] For example, the inter prediction unit 205 controls whether or not the daisy chain motion vector prediction is applicable in units of a current block to be decoded in the following manner.

[0271] The inter prediction unit 205 may control whether or not to apply daisy chain motion vector prediction to the block to be decoded based on control information that controls whether or not to apply temporal motion vector prediction (TMVP) to the sequence to be decoded, which is sent from the decoding unit 201.

[0272] More specifically, when the control information that controls whether or not temporal motion vector prediction (TMVP) is applicable to the sequence unit to be decoded, sent from the decoding unit 201, specifies that temporal motion vector prediction is applicable, the inter prediction unit 205 specifies that daisy-chain motion vector prediction is applicable to the block to be decoded.

[0273] On the other hand, if the above-mentioned control information specifies that temporal motion vector prediction is not applicable, the inter prediction unit 205 specifies that daisy-chain motion vector prediction is not applicable to the current block to be decoded.

[0274] Alternatively, the inter prediction unit 205 may control whether or not to apply daisy-chain motion vector prediction to the block to be decoded based on control information that controls whether or not to apply temporal motion vector prediction (TMVP) to each picture to be decoded, which is sent from the decoding unit 201.

[0275] More specifically, when the control information that controls whether or not temporal motion vector prediction (TMVP) is applicable to the picture to be decoded, sent from the decoding unit 201, specifies that temporal motion vector prediction is applicable, the inter prediction unit 205 specifies that daisy-chain motion vector prediction is applicable to the block to be decoded.

[0276] On the other hand, if the above-mentioned control information specifies that temporal motion vector prediction is not applicable, the inter prediction unit 205 specifies that daisy-chain motion vector prediction is not applicable to the current block to be decoded.

[0277] The inter prediction unit 205 may control whether or not to apply daisy chain motion vector prediction on a decoding target sequence unit or a decoding target unit smaller than the decoding target sequence based on control information that controls whether or not to apply temporal motion vector prediction (TMVP) on a decoding target sequence unit basis sent from the decoding unit 201.

[0278] Alternatively, the inter prediction unit 205 may control whether or not to apply daisy-chain motion vector prediction on a picture to be decoded or a unit to be decoded that is smaller than the picture to be decoded, based on control information that controls whether or not to apply temporal motion vector prediction (TMVP) on a picture to be decoded basis sent from the decoding unit 201.

[0279] Alternatively, before the inter prediction unit 205 controls whether or not to apply daisy chain motion vector prediction on a block-to-be-decoded basis, the decoding unit 201 may control whether or not to apply daisy chain motion vector prediction based on control information that controls whether or not to apply temporal motion vector prediction (TMVP).

[0280] Figure 23 is a diagram showing an example of a process in which a syntax (sps_chained_mvp_enabled_flag) is specified that controls whether or not chained motion vector prediction can be applied on a per-sequence basis to be decoded, and the decoding unit 201 determines whether or not to decode sps_chained_mvp_enabled_flag based on a syntax (sps_temporal_mvp_enabled_flag) that controls whether or not temporal motion vector prediction (TMVP) can be applied on a per-sequence basis to be decoded.

[0281] As shown in Figure 23, if the decoding unit 201 determines in step S100 that the syntax (sps_temporal_mvp_enabled_flag) that controls whether or not temporal motion vector prediction (TMVP) can be applied on a per-sequence basis to be decoded is 1, then in step S101, it decodes the syntax (sps_chained_mvp_enabled_flag, third syntax) that controls whether or not chained motion vector prediction can be applied on a per-sequence basis to be decoded.

[0282] On the other hand, if the decoding unit 201 determines in step S100 that the syntax (sps_temporal_mvp_enabled_flag) that controls whether or not temporal motion vector prediction (TMVP) can be applied on a per-sequence basis to be decoded is not 1, then in step S102, it does not decode the syntax (sps_chained_mvp_enabled_flag) that controls whether or not chained motion vector prediction can be applied on a per-sequence basis to be decoded.

[0283] Here, when the value of sps_temporal_mvp_enabled_flag is 1, the decoding unit 201 determines that temporal motion vector prediction (TMVP) is applicable to the sequence to be decoded; when the value of sps_temporal_mvp_enabled_flag is 0, the decoding unit 201 determines that temporal motion vector prediction (TMVP) is not applicable to the sequence to be decoded; and when sps_temporal_mvp_enabled_flag is not decoded, the decoding unit 201 estimates the value of sps_temporal_mvp_enabled_flag to be 0.

[0284] In addition, when the value of sps_chained_mvp_enabled_flag is 1, the decoding unit 201 determines that daisy-chained motion vector prediction is applicable to the sequence to be decoded, and when the value of sps_chained_mvp_enabled_flag is 0, the decoding unit 201 determines that daisy-chained motion vector prediction is not applicable to the sequence to be decoded, and when sps_chained_mvp_enabled_flag is not decoded, the decoding unit 201 estimates the value of sps_chained_mvp_enabled_flag to be 0.

[0285] In this way, by determining whether or not to decode sps_chained_mvp_enabled_flag based on the value of sps_temporal_mvp_enabled_flag, in cases where it is obvious that decoding of sps_chained_mvp_enabled_flag is not necessary, it is possible to reduce the amount of coding.

[0286] When the daisy chain motion vector prediction is used in combination with the above-described sorting of merge candidates based on comparison of template matching costs (ARMC: Adaptive Reordering Merge Candidate), further improvement in coding efficiency can be expected.

[0287] Therefore, as a modified example of the method for controlling whether or not to apply daisy-chain motion vector prediction based on whether or not to apply TMVP described above, the inter prediction unit 205 may control whether or not to apply daisy-chain motion vector prediction based on both whether or not to apply TMVP and whether or not to apply ARMC.

[0288] Specifically, the inter prediction unit 205 may determine that daisy-chain motion vector prediction is applicable when TMVP is applicable and ARMC is applicable. In addition, in other cases, the inter prediction unit 205 may determine that daisy-chain motion vector prediction is not applicable.

[0289] In addition, whether or not ARMC is applicable may be determined based on the value of control information similar to that of TMVP.

[0290] (Number of Reference Pictures and Search Depth in Dice Motion Vector Prediction) Hereinafter, a method for limiting the number of reference pictures or search depth that can be referred to when recursively searching for motion vectors in daisy chain motion vector prediction will be described.

[0291] First, a method for limiting the number of reference pictures that can be referred to when recursively searching for motion vectors in daisy-chain motion vector prediction will be described.

[0292] As an example, the inter prediction unit 205 may limit the recursive motion vector search of the daisy chain motion vector prediction to only at least one reference picture included in the reference picture list of the current block to be decoded.

[0293] By the inter prediction unit 205 limiting the recursive motion vector search of the chained motion vector prediction to only one or more reference pictures included in the reference picture list of the block to be decoded, the amount of decoding processing can be reduced compared to when such a restriction is not imposed (for example, when the inter prediction unit 205 searches all of the reference pictures stored in the decoded picture buffer 207).

[0294] Alternatively, the inter prediction unit 205 may limit the recursive motion vector search of the daisy chain motion vector prediction to only the reference pictures referred to by the motion vector of the current block to be decoded.

[0295] In other words, the inter prediction unit 205 re-searches only for block vectors in the reference picture referred to by the motion vector of the current block to be decoded, and generates a chained motion vector by chained motion vector prediction.

[0296] As a modified example, the inter prediction unit 205 may limit the recursive motion vector search of the daisy chain motion vector prediction to only reference pictures, commonly known as collocated pictures, that the current block can refer to in temporal motion vector prediction (TMVP).

[0297] Specifically, the inter prediction unit 205 may generate a chained motion vector by re-searching for new motion vectors, limiting the search to only motion vectors whose reference destination is within a collocated picture stored in the decoding picture buffer, among motion vectors that are spatially or temporally adjacent or close to the block to be decoded and are stored in a merge candidate list that stores motion vector candidates, and adding up all the derived motion vectors.

[0298] Here, when there are two or more collocated pictures, the inter prediction unit 205 may search for a chained motion vector using all of the collocated pictures.

[0299] Alternatively, when there are two or more collocated pictures, the inter prediction unit 205 may select a collocated picture to be searched for based on the difference in distance (Picture Order Count (POC)) from the block to be decoded. For example, the inter prediction unit 205 may search for only collocated pictures with small POCs.

[0300] Alternatively, when there are two or more collocated pictures, the inter predictor 205 may select a collocated picture based on the magnitude of the quantization parameter of the collocated picture. For example, the inter predictor 205 may search only for collocated pictures with a large quantization parameter.

[0301] Alternatively, when there are two or more collocated pictures, the inter prediction unit 205 may search only for collocated pictures in list L0.

[0302] As a modified example (even stronger restriction), the inter prediction unit 205 may limit the search area for recursive motion vectors in the daisy chain motion vector prediction to an area of ​​a predetermined number of rows of a coding tree unit (CTU), commonly known as a collocated CTU, that includes a reference block at the same pixel position as the block to be decoded in the collocated picture.

[0303] Here, the predetermined number of lines may be one line, or two lines, or four lines.

[0304] By limiting the recursive motion vector search area of ​​the daisy chain motion vector prediction to only one row of the collocated picture or collocated CTU, the amount of inter prediction information required for searching the daisy chain motion vector in the decoded picture buffer 207 can be reduced.

[0305] Second, a method for limiting the search depth of recursive motion vectors in daisy-chain motion vector prediction will be described.

[0306] As an example, the inter prediction unit 205 may limit the search depth of recursive motion vectors in daisy-chain motion vector prediction for the current block to be decoded, based on the control information.

[0307] Specifically, the inter prediction unit 205 may limit the search depth of the recursive motion vectors in the daisy chain motion vector prediction in the block to be decoded based on control information (sps_max_num_my_chains) that sets an upper limit on the search depth of the recursive motion vectors in the daisy chain motion vector prediction for each sequence to be decoded sent from the decoding unit.

[0308] Here, the control information for the sequence unit to be decoded may be control information for picture units or slice units, which is lower level control information than the sequence unit to be decoded, or may be hierarchical control information that combines these.

[0309] Alternatively, the inter prediction unit 205 may set a predetermined fixed value for the search depth of recursive motion vectors in daisy-chain motion vector prediction. The inter prediction unit 205 may set the predetermined fixed value to 1, 2, or 3.

[0310] By limiting the search depth of daisy chain motion vector prediction in this way, the amount of decoding processing required to derive daisy chain motion vectors can be reduced compared to when no limit is imposed.

[0311] (Number of Merge Candidates in Dice Motion Vector Prediction) Hereinafter, a method for limiting the number of merge candidates derived by daisy-chain motion vector prediction will be described.

[0312] As an example, the inter prediction unit 205 may limit the number of merge candidates derived by daisy-chain motion vector prediction for the current block to be decoded, based on the control information.

[0313] Specifically, the inter prediction unit 205 may limit the number of merge candidates derived by daisy chain motion vector prediction in the block to be decoded based on control information (sps_max_num_cmvp_cand) that sets an upper limit on the search depth of the number of merge candidates derived by daisy chain motion vector prediction for each sequence to be decoded sent from the decoding unit.

[0314] Here, the control information for the sequence unit to be decoded may be control information for picture units or slice units, which is lower level control information than the sequence unit to be decoded, or may be hierarchical control information that combines these.

[0315] Alternatively, the inter prediction unit 205 may set a predetermined fixed value to the number of merge candidates derived by daisy-chain motion vector prediction.

[0316] (Limitation of Block Vector Search in Chained Motion Vector Prediction) As described above, a search for a block vector may be included in the recursive motion vector search for chained motion vector prediction. However, while block vectors that refer to the same picture are easy to find in screen images or game images that include characters or computer-generated graphics (CG), they are difficult to find in images captured by a camera.

[0317] Therefore, it is desirable to be able to limit the search for block vectors in daisy-chain motion vector prediction according to the characteristics of the image.

[0318] As an example, the inter prediction unit 205 may limit the block vector search based on control information specifying whether or not a block vector search is possible in daisy-chain motion vector prediction for the current block to be decoded.

[0319] Specifically, the inter prediction unit 205 may restrict whether or not block vectors can be searched for in daisy-chain motion vector prediction for the block to be decoded based on control information (sps_cmvp_bv_search_enabled_flag) that specifies whether or not block vectors can be searched for in daisy-chain motion vector prediction for each sequence to be decoded sent from the decoding unit 201.

[0320] Here, the control information for the sequence unit to be decoded may be control information for picture units or slice units, which is lower level control information than the sequence unit to be decoded, or may be hierarchical control information that combines these.

[0321] (Restriction on Reference Sources in Chained Motion Vector Prediction) In the recursive motion vector search for chained motion vector prediction, the method of adding the starting point of the first motion vector to the center of the block to be decoded and adding the four corners of the block to be decoded has been described above.

[0322] However, compared to screen images and game images in which pixel values ​​tend to change suddenly on a pixel-by-pixel basis, images captured by a camera are less susceptible to change.

[0323] Therefore, it is desirable to be able to limit the starting point of the first motion vector in the recursive motion vector search of the chained motion vector prediction according to the characteristics of the image.

[0324] For example, the inter prediction unit 205 may limit reference sources for the daisy chain motion vector prediction based on control information that specifies whether to add at least one or more predetermined positions in the block to be decoded in addition to the center of the block to be decoded as the starting point of the first motion vector in the daisy chain motion vector prediction for the block to be decoded. Such predetermined positions may be the four corners of the block to be decoded.

[0325] Specifically, based on sps_cmvp_multi_position_flag, the inter prediction unit 205 may restrict whether to add the starting point of the first motion vector in the chained motion vector prediction for the block to be decoded to the center of the block to be decoded and to add at least one or more specified positions of the block to be decoded.

[0326] Here, sps_cmvp_multi_position_flag is control information that specifies whether to add at least one or more predetermined positions of the block to be decoded in addition to the center of the block to be decoded as the starting point of the first motion vector in daisy-chain motion vector prediction for the block to be decoded.

[0327] Here, the control information for the sequence unit to be decoded may be control information for picture units or slice units, which is lower level control information than the sequence unit to be decoded, or may be hierarchical control information that combines these.

[0328] (Limitation on application of daisy-chain motion vectors based on quantization parameters) Daisy-chain motion vectors are likely to be applied when the quantization parameter of the reference block corresponding to the reference source vector is large. When the quantization parameter is large, quantization noise (encoding degradation) is likely to occur, so daisy-chain motion vectors are generated to avoid generating predicted pixels containing such noise.

[0329] Therefore, the inter prediction unit 205 can efficiently apply the daisy chain motion vectors by controlling whether or not to apply the daisy chain motion vectors depending on the quantization parameter of the reference block.

[0330] Specifically, if the quantization parameter of the reference block corresponding to the reference source vector for which the daisy chain motion vector is to be generated is smaller than a predetermined quantization parameter, the inter prediction unit 205 determines not to apply the daisy chain motion vector to the block to be decoded.

[0331] On the other hand, if the quantization parameter of the reference block corresponding to the reference source vector for which the daisy chain motion vector is to be generated is greater than a predetermined quantization parameter, the inter prediction unit 205 determines not to apply the daisy chain motion vector to the block to be decoded.

[0332] Here, the predetermined quantization parameter may be a quantization parameter of the block to be decoded, or may be a slice to be decoded that includes the block to be decoded, or may be a picture to be decoded that includes the block to be decoded.

[0333] As a modified example, the inter prediction unit 205 may determine whether or not to apply a daisy chain motion vector based on whether or not the difference between the quantization parameter of the reference block and a predetermined quantization parameter is greater than a predetermined threshold value. Here, the predetermined threshold value may be 6, 12, 18, or 24.

[0334] As a modified example, the inter prediction unit 205 may control whether or not to apply daisy-chain motion vector prediction depending on the POC.

[0335] As another modification, the inter prediction unit 205 may control whether or not to apply daisy-chain motion vector prediction depending on the depth of the picture reference structure (the value of Temporal_id).

[0336] Specifically, the inter prediction unit 205 may determine not to apply the daisy chain motion vector if the Temporal_id of the reference picture used as the reference source for the daisy chain motion vector is smaller than a predetermined value, and may determine to apply the daisy chain motion vector prediction if the Temporal_id of the reference picture used as the reference source for the daisy chain motion vector is greater than or equal to a predetermined value.

[0337] Generally, the greater the depth of the picture reference structure (the value of Temporal_id), the greater the quantization parameter offset that is applied. Therefore, when the depth of the picture reference structure (the value of Temporal_id) is equal to or greater than a predetermined value, applying daisy-chain motion vector prediction allows inter-predicted pixels to be generated from reference pictures with less coding degradation, thereby improving coding performance.

[0338] Conversely, if the depth of the picture reference structure (the value of Temporal_id) is smaller than a predetermined value, the motion vector search processing time for the daisy chain motion vector prediction can be reduced by not applying the daisy chain motion vector prediction.

[0339] Here, the predetermined value may be a value obtained by multiplying the maximum value of Temporal_id by at least one of 0.5, 0.25, or 0.125 and rounding down to an integer. Alternatively, the predetermined value may be a fixed value. For example, the predetermined value may be at least one of 0, 1, 2, 3, 4, and 5.

[0340] 7. Targets for Application of Chained Motion Vector Prediction The following describes technical features when chained motion vector prediction is applied to merges other than the normal merge disclosed in Non-Patent Document 1 and Non-Patent Document 2. (MMVD, GPM, TM Merge) First, the MMVD, GPM, and template matching merge (TM merge) disclosed in Non-Patent Document 1 and Non-Patent Document 2 construct merge lists in the same way as the normal merge, but in Non-Patent Document 2, the pruning of merge candidates when constructing these merge candidate lists is strengthened compared to the normal merge, and these merge candidate lists are unlikely to be identical to the merge candidates stored in the merge candidate list for the normal merge.

[0341] Therefore, when the merge candidate list for a normal merge is not reused in an MMVD, GPM, or TM merge, in addition to applying daisy-chain motion vector prediction to the merge candidates in the merge candidate list for a normal merge, applying daisy-chain motion vector prediction to the merge candidates in each of the merge candidate lists for an MMVD, GPM, and TM merge can be expected to improve coding efficiency.

[0342] Therefore, in addition to applying daisy-chain motion vector prediction to merge candidates in the merge candidate list for normal merge, the inter prediction unit 205 may also apply daisy-chain motion vector prediction to merge candidates in the merge candidate list for merge mode motion vector differential.

[0343] Furthermore, in addition to applying daisy-chain motion vector prediction to merge candidates in the merge candidate list for normal merge, the inter prediction unit 205 may also apply daisy-chain motion vector prediction to merge candidates in the merge candidate list for geometric partitioning mode.

[0344] Furthermore, in addition to applying daisy-chain motion vector prediction to merge candidates in the merge candidate list for normal merge, the inter prediction unit 205 may also apply daisy-chain motion vector prediction to merge candidates in the merge candidate list for template matching merge.

[0345] Here, the inter prediction unit 205 may apply pruning processing when storing the merge candidate list, motion vector correction, and reordering of merge candidates (motion vectors) to the merge mode motion vector differentials, the chained motion vectors generated for the geometric partitioning mode, and the template matching merge, in the same manner as for normal merge.

[0346] (Adaptive Motion Vector Prediction-Merge Mode) In the adaptive motion vector prediction-merge mode disclosed in the above-mentioned Non-Patent Documents 1 and 2, the motion vector of either list 0 (L0) or list 1 (L1) of the reference picture list is derived by adaptive motion vector prediction (AMVP), i.e., control information. Therefore, if the target of application of the daisy chain motion vector prediction is applied to merge candidates in the merge candidate list of reference picture list numbers that are not derived by AMVP, the number of merge candidates selectable in the adaptive motion vector prediction-merge mode increases, and therefore, improved inter-prediction accuracy and improved coding efficiency can be expected.

[0347] Therefore, in the adaptive motion vector prediction merge mode, the inter predictor 205 may apply daisy chain motion vector prediction to merge candidates in the merge candidate list that have reference picture list numbers that have not been derived by adaptive motion vector prediction.

[0348] Furthermore, in adaptive motion vector prediction-merge mode, when applying daisy chain motion vector prediction to a merge candidate with a reference picture list number in a merge candidate list that has not been derived by adaptive motion vector prediction, the inter prediction unit 205 may restrict the generated daisy chain motion vector so that it does not refer to a reference picture of a motion vector derived by adaptive motion vector prediction.

[0349] Here, the inter prediction unit 205 may apply pruning processing when storing the merge candidate list, motion vector correction, and reordering of merge candidates (motion vectors) to the chained motion vectors generated for the adaptive motion vector prediction-merge mode, as with normal merging.

[0350] (Sub-block Merge Mode) The affine merge disclosed in the above-mentioned Non-Patent Document 1 and Non-Patent Document 2 derives a motion vector for each sub-block in a block to be decoded by affine transformation, and as shown in FIG. 24 , in the case of single prediction (either L0 or L1), two or three control point motion vectors cpMv are derived, and in the case of bi-prediction (both L0 and L1), four or six control point motion vectors cpMv are derived.

[0351] Note that the control point motion vectors of L0 and L1 in uni-prediction or bi-prediction all refer to the same reference picture.

[0352] In affine merging, as disclosed in Non-Patent Documents 1 and 2, these control point motion vectors are derived from merge candidates stored in a merge candidate list for affine merging.

[0353] The inter prediction unit 205 may derive merge candidates to be stored in the merge candidate list for affine merge, similar to the methods for deriving merge candidates for affine merge disclosed in Non-Patent Document 1 and Non-Patent Document 2.

[0354] For example, if two or three control point motion vectors are stored in positions spatially adjacent or close to the block to be decoded, the inter prediction unit 205 may add them to the merge candidate list for affine merging of the block to be decoded.

[0355] Alternatively, if multiple motion vectors are accumulated at positions spatially adjacent or close to the block to be decoded, the inter prediction unit 205 may generate a control point motion vector for the block to be decoded based on these and add it to the merge candidate list for affine merge.

[0356] Therefore, in affine merge mode, the inter prediction unit 205 may recursively search for motion vectors for at least two or more control point motion vectors stored in the merge candidate list, and add the derived motion vectors to each of the initial control point motion vectors to generate chained control point motion vectors, which may then be stored in the merge candidate list.

[0357] Furthermore, in affine merge mode, when the inter prediction unit 205 recursively searches for motion vectors for at least two or more control point motion vectors stored in the merge candidate list, the inter prediction unit 205 may limit the reference picture searched for for each control point motion vector to the same reference picture.

[0358] Alternatively, in affine merge mode, when the inter prediction unit 205 recursively searches for motion vectors for at least two or more control point motion vectors of L0 and L1 stored in the merge candidate list, the inter prediction unit 205 may limit the reference pictures searched for each control point motion vector of L0 and L1 to the same reference picture.

[0359] Here, the inter prediction unit 205 may apply pruning processing when storing the merge candidate list, motion vector correction, and sorting of merge candidates (motion vectors) to the chained control point motion vectors generated for affine merge, as with normal merge.

[0360] (Application of daisy chain motion vector prediction to adaptive motion vector prediction) The inter prediction unit 205 may apply daisy chain motion vector prediction to adaptive motion vector prediction, as disclosed in Non-Patent Document 1. A specific method will be described below.

[0361] In adaptive motion vector prediction, motion vectors accumulated at spatially or temporally adjacent positions as candidates for the motion vector of the block to be decoded are stored in a motion vector candidate list of adaptive motion vectors (hereinafter referred to as the adaptive motion vector candidate list).

[0362] Here, as shown in Figure 25, in adaptive motion vector prediction, unlike the merge candidate list, a list is constructed that stores motion vector candidates for each reference picture stored in each of the reference picture lists L0 and L1.

[0363] The method of deriving a motion vector candidate (MVP: motion vector prediction) from the adaptive motion vector candidate list in the inter prediction unit 205 is as follows.

[0364] First, the decoding unit 201 decodes the indices (ref_idx_l0, ref_idx_l1) for identifying reference pictures for deriving motion vector candidates from each of the reference picture lists L0 and L1, and the inter prediction unit 205 identifies the reference pictures based on the values ​​of the indices.

[0365] Next, the decoding unit 201 decodes flags (mvp_l0_flag, mvp_l1_flag) for deriving motion vector candidates from the motion vector candidate list corresponding to the identified L0 and L1 reference pictures, and the inter prediction unit 205 identifies a motion vector based on the value of the flag.

[0366] Finally, the inter prediction unit 205 adds the motion vector differentials (MVDs) of L0 and L1 transmitted from the encoding device to the derived MVPs of L0 and L1, respectively, to finally derive the motion vectors of L0 and L1.

[0367] Here, in the present invention, daisy-chain motion vector prediction is applied to the generation of motion vector candidates to be stored in the adaptive motion vector candidate list.

[0368] Specifically, in adaptive motion vector prediction, as described above, for each reference picture, a motion vector referencing that reference picture is stored. Therefore, a motion vector that refers to each reference picture is searched for among motion vectors stored in positions spatially or temporally adjacent to the block to be decoded, and whether to store the motion vector in the adaptive motion vector candidate list is determined based on whether the motion vector refers to the reference picture to be searched, which is specified by ref_idx_l0 and ref_idx_l1.

[0369] In other words, if the searched motion vector refers to the reference picture to be searched identified by ref_idx_l0 and ref_idx_l1, the inter prediction unit 205 determines to store the searched motion vector in the adaptive motion vector candidate list, and if the searched motion vector does not refer to the above-mentioned reference picture, it determines not to store the searched motion vector in the adaptive motion vector candidate list.

[0370] Here, the inter prediction unit 205 holds motion vectors that were not stored in the adaptive motion vector candidate list during the motion vector search process, and applies daisy chain motion vector prediction to the motion vectors.

[0371] Then, the inter prediction unit 205 determines that if the motion vector (daisy chain motion vector) finally derived as a result of applying the daisy chain motion vector prediction references the reference picture being searched for, it will store the daisy chain motion vector in the adaptive motion vector candidate list, and if it does not reference the above-mentioned reference picture, it will determine that it will not store the daisy chain motion vector in the adaptive motion vector candidate list.

[0372] When there are two reference picture lists (i.e., L0 and L1), the inter predictor 205 may derive motion vector candidates using reference pictures in each of the reference picture lists L0 and L1.

[0373] As described above, the inter prediction unit 205 may apply chained motion vector prediction to a motion vector derived using an adaptive motion vector to derive a new motion vector.

[0374] Here, Non-Patent Document 1 discloses adaptive motion vector resolution (AMVR) that quantizes the pixel precision of a motion vector as a technique for reducing the amount of transmission code of a motion vector difference that constitutes a motion vector finally derived by an adaptive motion vector.

[0375] When AMVR is enabled, the inter prediction unit 205 may align (round) the final motion vector derived from the chained motion vector to the pixel precision of the motion vector quantized by AMVR.

[0376] Alternatively, when AMVR is enabled, the inter prediction unit 205 may, during the recursive motion vector search process when deriving a daisy chain motion vector, align (round) the pixel precision of the searched motion vector to the pixel precision of the motion vector quantized by AMVR.

[0377] Non-Patent Document 1 discloses a flag that controls whether or not AMVR is applied for each block to be decoded, and an index that specifies the pixel precision of a motion vector by AMVR.

[0378] If the decoding unit 201 determines from these flags and indexes that AMVR is applied and the pixel precision of the motion vector is quantized, the inter prediction unit 205 may change the pixel precision of the motion vector when searching for a new motion vector by applying a chained motion vector to the motion vector derived using the adaptive motion vector to the pixel precision quantized by AMVR.

[0379] Alternatively, as a modified example, the inter prediction unit 205 may not match the pixel accuracy of the motion vector quantized by AMVR during the process of searching for a motion vector using daisy chain motion vector prediction, but may match the pixel accuracy of the motion vector finally derived by daisy chain motion vector prediction to the pixel accuracy of the motion vector quantized by AMVR.

[0380] (Application of daisy chain motion vector prediction to bilateral merge mode) The inter prediction unit 205 may apply daisy chain motion vector prediction to the bilateral merge mode disclosed in Non-Patent Document 2. A specific method will be described below.

[0381] In the bilateral merge mode (BM), similarly to the normal merge mode described above, the inter prediction unit 205 constructs a merge candidate list and derives a motion vector.

[0382] However, in bilateral merge mode, unlike normal merge mode, the reference pictures of the motion vectors stored in the merge candidate lists of L0 and L1 refer to different time directions (one in the past direction and the other in the future direction from the picture to be decoded that contains the block to be decoded), and the distances of each reference picture from the picture to be decoded are the same (BM condition) are stored, and two motion vectors that do not satisfy the BM condition are pruned without being stored.

[0383] Here, in the present invention, the inter prediction unit 205 retains motion vectors that do not satisfy the BM condition, applies chained motion vector prediction to search for new motion vectors, and if a motion vector that satisfies the BM condition is found, it may be stored in the merge candidate list.

[0384] As a modified example, the inter prediction unit 205 may construct a merge candidate list for storing new motion vectors that do not satisfy the BM condition but are generated by daisy-chain motion vector prediction and that satisfy the BM condition, in addition to the merge candidate list that stores only motion vectors that satisfy the BM condition.

[0385] According to the image decoding device of this embodiment, the inter prediction unit 205 recursively searches for motion vectors stored in the decoding picture buffer 207 for motion vectors at positions spatially or temporally adjacent or close to the block to be decoded, and adds up all the derived motion vectors to generate a motion vector, which is then used as the motion vector for the block to be decoded.This increases the number of motion vectors available for selection in inter prediction, improving inter prediction accuracy and encoding efficiency.

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

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

[0388] 200... Image decoding device 201... Decoding unit 202... Inverse quantization unit 203... Inverse transform unit 204... Intra prediction unit 205... Inter prediction unit 206... Adder 207... Decoded picture buffer 210... Code input unit 220... Image output unit

Claims

1. An image decoding device comprising: a decoding unit that performs variable-length decoding on coded information and outputs quantized values ​​and control information; an inverse quantization unit that performs inverse quantization on the quantized values ​​and outputs transform coefficients; an inverse transform unit that performs inverse transform on the transform coefficients and outputs predicted residual pixels; an intra prediction unit that generates intra predicted pixels from the control information and decoded pixels; a decoded picture buffer that stores the decoded pixels; an inter prediction unit that generates inter predicted pixels from the control information and the decoded pixels stored in the decoded picture buffer; and an adder that adds at least one of the intra predicted pixels and the inter predicted pixels to the predicted residual pixels to generate the decoded pixels, The image decoding device is characterized in that the inter prediction unit performs daisy chain motion vector prediction, in which a new motion vector is re-searched for, limited to motion vectors that are spatially or temporally adjacent or close to the block to be decoded and that are stored in a merge candidate list that stores motion vector candidates, and only motion vectors whose reference destination is within a co-located picture stored in the decoding picture buffer, and all derived motion vectors are added to generate a daisy chain motion vector, and derive the daisy chain motion vector as a candidate motion vector for the block to be decoded.

2. The image decoding device described in claim 1, characterized in that the inter prediction unit limits the search area of ​​the recursive motion vector of the daisy chain motion vector prediction to an area of ​​one row of a coding tree unit that includes a reference block at the same pixel position as the block to be decoded in the co-located picture.

3. An image decoding method comprising: step A of variable-length decoding code information to output quantized values ​​and control information; step B of inversely quantizing the quantized values ​​to output transform coefficients; step C of inversely transforming the transform coefficients to output predicted residual pixels; step D of generating intra-predicted pixels from the control information and decoded pixels; step E of storing the decoded pixels in a decoded picture buffer; step F of generating inter-predicted pixels from the control information and the decoded pixels stored in the decoded picture buffer; and step G of generating the decoded pixels by adding at least one of the intra-predicted pixels and the inter-predicted pixels to the predicted residual pixels, In the step F, a daisy chain motion vector is generated by re-searching for new motion vectors, limited to only those motion vectors whose reference destination is within a collocated picture stored in the decoding picture buffer, that are located spatially or temporally adjacent or close to the block to be decoded and that are stored in a merge candidate list storing motion vector candidates, and adding all of the derived motion vectors, and the daisy chain motion vector is then performed to perform daisy chain motion vector prediction, in which the daisy chain motion vector is derived as a candidate motion vector for the block to be decoded.

4. A program that causes a computer to function as an image decoding device, the image decoding device comprising: a decoding unit that performs variable-length decoding on coded information and outputs quantized values ​​and control information; an inverse quantization unit that performs inverse quantization on the quantized values ​​and outputs transform coefficients; an inverse transform unit that performs inverse transform on the transform coefficients and outputs predicted residual pixels; an intra prediction unit that generates intra predicted pixels from the control information and decoded pixels; a decoded picture buffer that stores the decoded pixels; an inter prediction unit that generates inter predicted pixels from the control information and the decoded pixels stored in the decoded picture buffer; and an adder that adds at least one of the intra predicted pixels and the inter predicted pixels to the predicted residual pixels to generate the decoded pixels, The inter prediction unit performs a daisy chain motion vector prediction by re-searching for new motion vectors, limiting the search to only motion vectors that are spatially or temporally adjacent or close to the block to be decoded and that are stored in a merge candidate list that stores motion vector candidates, and adding all of the derived motion vectors, to generate a daisy chain motion vector, and deriving the daisy chain motion vector as a candidate motion vector for the block to be decoded.

Citation Information

Patent Citations

  • Motion compensation considering out-of-boundary conditions in video coding

    WO2023076700A1

  • Method, apparatus, and medium for video processing

    WO2023098899A1