Image decoding device, image decoding method, and program
The image decoding device uses chained motion vector prediction to expand the search space for motion vectors within the decoded picture buffer, enhancing coding efficiency by deriving new motion vectors from collocated pictures, thus improving image decoding accuracy and efficiency.
Patent Information
- Application Number
- JP2024063019
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-04-09
- Publication Date
- 2025-10-22
AI Technical Summary
Existing inter prediction methods in image decoding are limited by the selection of motion vectors that are spatially or temporally adjacent or close to the block to be decoded, leading to suboptimal coding efficiency.
The image decoding device employs a chained motion vector prediction method that re-searches for new motion vectors within a collocated picture stored in the decoded picture buffer, allowing for the derivation of chained motion vectors as candidates for the motion vector of the block to be decoded.
This approach enhances coding efficiency by expanding the search space for motion vectors, improving the accuracy and efficiency of image decoding.
Smart Images

Figure 2025160045000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to an image decoding device, an image decoding method, and a program. [Background technology]
[0002] Non-Patent Documents 1 and 2 disclose 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 necessary 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. [Prior art documents] [Non-patent literature]
[0005] [Non-Patent Document 1] ITU-T H.266 / VVC [Non-patent document 2] M.Coban et al., Algorithm description of Enhanced Compression Model 10 (ECM 10), JVET-AE2025, 2023 Summary of the Invention [Problem to be solved by the invention]
[0006] In Non-Patent Document 1 and Non-Patent Document 2, the motion vector candidates that can be selected in 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. [Means for solving the problem]
[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 to derive the daisy chain motion vectors 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. [Effects of the Invention]
[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. [Brief explanation of the drawings]
[0012] [Figure 1] FIG. 1 is a diagram showing an example of functional blocks of an image decoding device 200 according to an embodiment. [Figure 2] FIG. 2 is a diagram illustrating a concept of inter prediction. [Figure 3]Figure 3 is a diagram for explaining reference pixel values that are referenced when a picture other than the current picture to be decoded stored in the decoded picture buffer 207 disclosed in each of Non-Patent Document 1 and Non-Patent Document 2 is referenced from a future block to be decoded. [Figure 4] FIG. 4 is a conceptual diagram illustrating how the inter-prediction padding area described with reference to FIG. 3 is generated. [Figure 5] 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. [Figure 6] FIG. 6 is a diagram showing an example of 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. [Figure 7] FIG. 7 is a diagram showing an example of search positions for spatial merge candidates and TMVP candidates in a block to be decoded. [Figure 8] FIG. 8 is a diagram showing an example of a method for deriving a chained motion vector in chained motion vector prediction. [Figure 9] FIG. 9 is a diagram showing an example of a method for deriving a chained motion vector in chained motion vector prediction. [Figure 10] FIG. 10 is a diagram showing an example of recursive search of motion vectors including bi-prediction. [Figure 11] FIG. 11 is a diagram showing an example of a chain of motion vectors derived by a recursive search for motion vectors including bi-prediction. [Figure 12] FIG. 12 is a diagram showing an example of searching for chained motion vector predictor candidates after searching for multiple types of merge candidates in the normal merge disclosed in Non-Patent Documents 1 and 2. In FIG. [Figure 13] FIG. 13 is a diagram showing an example of searching for chained motion vector predictor candidates after searching for multiple types of merge candidates in the normal merge disclosed in Non-Patent Documents 1 and 2. In FIG. [Figure 14]FIG. 14 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. [Figure 15] FIG. 15 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. [Figure 16] 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. [Figure 17] FIG. 17 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. [Figure 18] 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 according to one embodiment adds a merge candidate corresponding to a daisy chain motion vector derived by daisy chain motion vector prediction to a merge candidate list. [Figure 19] FIG. 19 is a diagram showing an example of a method for controlling reference sources when deriving daisy-chain motion vectors in daisy-chain motion vector prediction by the inter prediction unit 205 of the image decoding device 200 according to one embodiment. [Figure 20] 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 of the image decoding device 200 according to one embodiment. [Figure 21] 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 of an image decoding device 200 according to one embodiment in a case where GDR is applied. [Figure 22]FIG. 22 is a diagram showing an example of a method for controlling reference sources when deriving daisy-chain motion vectors in daisy-chain motion vector prediction. [Figure 23] FIG. 23 is a diagram illustrating an example of processing in which the decoding unit 201 of the image decoding device 200 according to one embodiment determines whether or not to decode sps_chained_mvp_enabled_flag based on sps_temporal_mvp_enabled_flag. [Figure 24] 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 one embodiment. [Figure 25] FIG. 25 is a diagram showing an example of a method for deriving motion vector prediction using adaptive motion vector prediction in the inter prediction unit 205 of the image decoding device 200 according to one embodiment. DETAILED DESCRIPTION OF THE INVENTION
[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 The 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 a YUV (YCbCr) image composed of luminance pixels and chrominance pixels, an RGB image composed of RGB pixels, or a monochrome image. 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 an 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 inverse transform the transform coefficients sent from the inverse quantization unit 202 to generate decoded prediction residuals. The prediction residuals are sent to an adder 206.
[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. Details of the inter prediction information will be described 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 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 described using an 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 downstream adder 206, and to predict pixels (hereinafter referred to as reference pixels) of a decoded block (hereinafter referred to as reference block) referenced by Mv in a decoded picture (hereinafter referred to as reference picture) other than the picture to be decoded to which the block to be decoded belongs, i.e., to perform inter prediction.
[0036] Fig. 2 shows a conceptual diagram of inter prediction. Specifically, Fig. 2 shows a diagram illustrating the MvL0 of two motion vectors derived by the inter prediction unit 205 in order to generate inter predicted pixels of a block to be decoded (CurBlk) in a picture to be decoded (CurPic). k and MvL1 k Two different reference pictures (RerPicL0) based on k and RerPicL1 k ) in the reference block (RerBlkL0 k and RerBlkL1 k ) is referenced as follows:
[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 list 0 (L0) and list 1 (L1) as two different reference picture lists 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, reference picture candidates 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 calculating a weighted average of 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 area 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 predicted 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 to apply SIF 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 predicted 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 that corrects reference pixel values in a reference block by linear prediction based on decoded pixels adjacent to the block to be decoded 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 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 predicted pixel using at least one or more finally derived daisy chain motion vectors and one motion vector that was the source (reference source) of the daisy chain 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 prediction pixel using at least one or more finally derived chained motion vectors and one motion vector that is 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 daisy-chained motion vectors in the merge candidate list, one motion vector that is the derivation source (reference source) of the daisy-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 (Formula 0) where P Final , P Merge , P MHPand α 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 coefficients may be constants. For example, the MHP weighting coefficients 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 values of the MHP weighting coefficients, and derive the MHP weighting coefficients.
[0070] MHP is a technique for generating a final inter-predicted pixel by weighted averaging from reference pixel values of at least three or more reference blocks.
[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 picture order count (POC) indicating the picture output order of the reference picture corresponding to the reference index. Hereinafter, the motion vector used to generate the inter prediction pixels, the reference index, and the POC corresponding to the reference index are 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, and 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 storing such inter-prediction information in the decoded picture buffer 207 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. This configuration makes it possible to reduce the amount of information stored in the current picture buffer 207.
[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 decoder 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 for explaining reference pixel values that are referenced when a picture other than the current picture to be decoded stored in the decoded picture buffer 207 disclosed in each of Non-Patent Document 1 and Non-Patent Document 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 pixel value at the nearest boundary of the picture to be decoded is copied to generate the reference pixel value.
[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 Figure 3, only a certain 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 future blocks 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 illustrating 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, so the decoded picture buffer 207 can accumulate the inter-predicted padding area shown in Figure 3.
[0088] <Method of deriving motion vectors in inter prediction section> Hereinafter, a method for deriving a motion vector in the inter predictor 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 the extracted merge candidate 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 Document 1 and Non-Patent Document 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 values 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 predictor 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 motion vectors and reference indices 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 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), in addition to the merge candidates described above in Non-Patent Document 1, the inter prediction unit 205 checks whether or not non-adjacent (NA) spatial merge candidates are used between the spatial merge candidates and the TMVP candidates.
[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 to be decoded (CurBlk) is used.
[0106] In addition, for TMVP candidates, inter-prediction information is searched for at the center bottom right (Col) 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 candidates, 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, in the HMVP candidate, a table capable of storing inter-prediction information in a FIFO manner is constructed, 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 for, and modify the inter prediction information (motion vector) so that the difference (hereinafter referred to as 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 template matching merging disclosed in Non-Patent Document 1 and Non-Patent Document 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 L1 merge candidates (i.e., inter prediction information) based on the L0 inter prediction information derived from such control information, and therefore does not need to decode merge_idx to derive L1 inter prediction information in addition to the control information required to derive 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 modified example, 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 predictor 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 of this, 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 Vectors)> The methods of deriving inter-prediction information (hereinafter referred to as motion vectors for the sake of simplicity) by the above-mentioned inter-prediction unit are all limited to information stored in positions that are 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 calculates 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 =MvL0k (0)+MvL0 k (1)+MvL0 k (2)+…+MvL0 k (m) (Formula 1) RefPicL0 k / m =RefPicL0 k (m) (Formula 2) In other words, 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] In addition, the new reference picture generated by 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, the reference picture RefPicL0 k As shown in (Equation 3), Bv is added to the derivation formula for 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) (Formula 3) As a modification of the method of deriving the daisy chain motion vector shown in FIGS. 8 and 9, the inter prediction unit 205 may use a block vector as a vector (initial vector) that is 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) (Formula 4) Compared with 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 an 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 modification, the inter predictor 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] Fig. 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 for and derives one or more (up to two in the examples of FIGS. 10 and 11 ) motion vectors from one reference 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 chained motion vector predictor 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 predictor 205 may search for daisy-chain motion vector prediction candidates after searching for predetermined merge 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 daisy-chain 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 considered a natural design method for deriving motion vectors.
[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 when 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 daisy-chained motion vector prediction candidates, the possibility of generating a new motion vector using daisy-chained motion vectors is increased.
[0146] As another modification, the inter predictor 205 may search for daisy-chain motion vector prediction candidates in the ECM after searching for spatial merge candidates, as shown in FIG.
[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 order to simplify the description of the technical details, in FIGS. 14 to 17, only motion vectors are shown 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 indexes, 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, after storing a predetermined merge candidate in a merge candidate list, the inter prediction unit 205 may apply daisy-chain motion vector prediction to the 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 new merge candidates by combining daisy chain motion vectors generated using each search depth of the daisy chain motion vector prediction for each merge candidate list with daisy chain motion vectors 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 of chained motion vector prediction candidates> Using Figure 18, we will explain the pruning process when the inter prediction unit 205 of the image decoding device 200 of this embodiment adds a merge candidate (the above-mentioned daisy chain motion vector prediction candidate) corresponding to the daisy chain motion vector derived by daisy chain motion vector prediction to the 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 according to 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 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 are identical.
[0165] When the inter prediction unit 205 determines 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 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 positions of the motion vectors 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 predictor 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 when there is one motion vector to be compared to a larger value than the predetermined threshold 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 local luminance compensation is applied are consistent with each other for at least one merge candidate stored in the merge candidate list and the merge candidate corresponding to the derived chained motion vector.
[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 match.
[0180] By including the above-mentioned internal parameters in the specified conditions, the inter prediction unit 205 can generate inter prediction pixels in different ways 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. Controlling the reference source and reference destination when deriving chained motion vectors> 19 to 22, 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 will be described.
[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-chained motion vectors in daisy-chained motion vector prediction, the inter prediction unit 205 may set the starting point of the first motion vector constituting the daisy-chained motion vectors to a part or all of the current 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 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 chained motion vector 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 daisy chain motion vector limited to at least one or more motion vectors with small such differences.
[0190] As another modification, the inter predictor 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 one of 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] If the block size of the block to be decoded is equal to or smaller than the 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 including 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 daisy chain motion vector, the first motion vector that constitutes the daisy chain 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 can be set to one of the four corners of the block to be decoded in addition to the center of the block to be decoded, thereby generating a different daisy chain motion vector 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 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 of the 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 daisy chain 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 vectors if, during the recursive motion vector search process when deriving the daisy chain motion vectors, 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 daisy-chain motion vectors in daisy-chain motion vector prediction by the inter prediction unit 205 in a case where Gradual Decoding Refresh (GDR) disclosed in Non-Patent Document 1, which 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 is 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 updating) 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 based on the 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 FIG. 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 go beyond the area being intra-updated.
[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 each 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: Reference Picture Resampling) 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 reference picture to the width and height of the decoded 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 daisy-chain motion vector, the inter prediction unit 205 needs to connect 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 a motion vector is allowed to be referenced to a reference picture with a different resolution (sampling ratio) than the picture to be decoded for the sequence or group of pictures 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 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 rate) different from that of the picture to be decoded, the inter prediction unit 205 may not apply a daisy-chain motion vector to a reference picture that does not have the same sampling rate as the picture to be decoded.
[0227] <4. Inheritance of Inter-Prediction Information in Chained Motion Vector Prediction> When deriving merge candidates using daisy-chain motion vector prediction, the inter prediction unit 205 may control whether or not to inherit a predetermined internal parameter that changes the method of generating inter prediction 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 recursively searched motion vector, 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 vector, 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 applied.
[0232] (Local Brightness 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, among the internal parameters (licFlag) that control whether or not to apply local luminance compensation associated with each motion vector recursively searched for, 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 candidates 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 the daisy chain motion vector by comparing the sum of absolute differences (SAD) that can be calculated from adjacent pixel values of the block to be decoded and the reference block with the mean-removal 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 value of block-based weighted bi-prediction associated with each recursively searched motion vector, but may always set 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 to indicate that the weight value of block-based weighted bi-prediction is a simple average.
[0240] Alternatively, when deriving merge candidates using daisy-chain motion vector prediction, the inter prediction unit 205 may inherit, from among 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 by 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 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 associated with each motion vector recursively searched for, the internal parameter (mhpFlag) that controls whether or not to apply multiple hypothesis prediction associated with 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-prediction 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. Therefore, 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> (sorting merge candidates) The later a daisy-chain motion vector predictor candidate is derived relative to other merge candidates, the less likely the daisy-chain motion vector predictor 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 merge candidates stored in the merge candidate list, including merge candidates derived by daisy-chain motion vector prediction, and sort 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 the 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, such as 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 costs 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, the inter prediction unit 205 may apply, as such bilateral matching, 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 vectors associated with the merge candidates derived by chained motion vector prediction by adding motion vector differences 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 chained motion vector prediction (application / non-application, number of pictures, number of merge candidates)> Various methods of limiting daisy-chain 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. (Whether or not chained motion vector prediction is applied) First, regarding whether or not daisy-chain motion vector prediction is applicable (applicable or not), as described above, daisy-chain motion vector prediction is applicable when TMVP is applicable due to its nature. In other words, when TMVP is not applicable, daisy-chain motion vector prediction is not applicable.
[0265] 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.
[0266] 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).
[0267] Here, non-patent document 1 specifies the syntax for controlling whether TMVP can be applied, which is the syntax for the sequence unit to be decoded (sps_temporal_mvp_enabled_flag, first control information, first syntax) and the syntax for the picture unit to be decoded (ph_temporal_mvp_enabled_flag, second control information, second syntax).
[0268] That is, whether or not daisy-chain motion vector prediction is applicable can be controlled in the same units as TMVP or in units lower than TMVP.
[0269] For example, the inter prediction unit 205 controls whether or not the daisy chain motion vector prediction is applicable in units of a block to be decoded as follows.
[0270] 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 sent from the decoding unit 201 that controls whether or not to apply temporal motion vector prediction (TMVP) for each sequence to be decoded.
[0271] 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.
[0272] 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.
[0273] 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 sent from the decoding unit 201 that controls whether or not to apply temporal motion vector prediction (TMVP) to the picture to be decoded.
[0274] 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.
[0275] 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.
[0276] 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.
[0277] 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.
[0278] 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).
[0279] Figure 23 specifies a 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, and shows an example of a process in which the decoding unit 201 determines whether or not to decode sps_chained_mvp_enabled_flag based on 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.
[0280] 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.
[0281] 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 basis 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 basis.
[0282] 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 has not been decoded, the decoding unit 201 estimates the value of sps_temporal_mvp_enabled_flag to be 0.
[0283] 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.
[0284] 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.
[0285] When the daisy chain motion vector prediction is used in combination with the above-mentioned adaptive reordering merge candidate (ARMC) based on comparison of template matching costs of merge candidates, further improvement in coding efficiency can be expected.
[0286] 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.
[0287] Specifically, the inter prediction unit 205 may determine that daisy-chain motion vector prediction is applicable when TMVP and ARMC are applicable. In other cases, the inter prediction unit 205 may determine that daisy-chain motion vector prediction is not applicable.
[0288] Whether ARMC is applicable or not may be determined based on the value of control information similar to that of TMVP.
[0289] (Number of reference pictures and search depth for chained motion vector prediction) A method for limiting the number of reference pictures that can be referred to or the search depth when recursively searching for motion vectors in daisy-chain motion vector prediction will be described below.
[0290] 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.
[0291] As an example, the inter prediction unit 205 may limit the recursive motion vector search of the daisy chain motion vector prediction to at least one reference picture included in the reference picture list of the current block to be decoded.
[0292] By the inter prediction unit 205 limiting 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 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).
[0293] 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.
[0294] 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.
[0295] 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 block to be decoded can refer to using temporal motion vector prediction (TMVP).
[0296] Specifically, the inter prediction unit 205 may generate a chained motion vector by re-searching for new motion vectors, limiting the search to motion vectors that are spatially or temporally adjacent or close to the block to be decoded and stored in a merge candidate list that stores motion vector candidates, and adding up all the derived motion vectors.
[0297] Here, when there are two or more collocated pictures, the inter predictor 205 may search for a daisy-chain motion vector using all of the collocated pictures.
[0298] 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 (POC: Picture Order Count) from the block to be decoded. For example, the inter prediction unit 205 may search for only collocated pictures with small POC.
[0299] 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 for only collocated pictures with large quantization parameters.
[0300] Alternatively, when there are two or more collocated pictures, the inter predictor 205 may search only the collocated pictures in list L0.
[0301] As a modified example (even stronger restriction), the inter prediction unit 205 may limit the search area for the recursive motion vector of 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.
[0302] Here, the predetermined number of lines may be one line, or two lines, or four lines.
[0303] By limiting the recursive motion vector search area of daisy chain motion vector prediction to only one row of the collocated picture or collocated CTU, the amount of inter prediction information required for daisy chain motion vector search in the decoded picture buffer 207 can be reduced.
[0304] Second, a method for limiting the search depth of recursive motion vectors in daisy-chain motion vector prediction will be described.
[0305] 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 based on the control information.
[0306] Specifically, the inter prediction unit 205 may limit the search depth of the recursive motion vectors in the chained 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 chained motion vector prediction for each sequence to be decoded sent from the decoding unit.
[0307] 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.
[0308] 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.
[0309] 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.
[0310] (Number of merge candidates for chained motion vector prediction) A method for limiting the number of merge candidates derived by chained motion vector prediction will be described below.
[0311] 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.
[0312] 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.
[0313] 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.
[0314] 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.
[0315] (Block Vector Search Limitations in Chained Motion Vector Prediction) As mentioned above, the recursive motion vector search of chained motion vector prediction may include a search for block vectors. However, block vectors that refer to the same picture are easy to find in screen images containing characters or computer-generated graphics (CG) or game images, but are difficult to find in images captured by a camera.
[0316] 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.
[0317] 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.
[0318] 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.
[0319] 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.
[0320] (Restriction on reference sources for chained motion vector prediction) In the recursive motion vector search of daisy-chain 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.
[0321] 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.
[0322] 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 chain motion vector prediction according to the characteristics of the image.
[0323] For example, the inter prediction unit 205 may limit reference sources for the daisy chain motion vector prediction based on control information specifying whether to add at least one or more predetermined positions 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.
[0324] 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 daisy chain 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.
[0325] 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.
[0326] 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.
[0327] (Applicability restrictions of chained motion vectors based on quantization parameters) The daisy chain motion vector is likely to be applied when the quantization parameter of the reference block corresponding to the reference vector is large. When the quantization parameter is large, quantization noise (encoding degradation) is likely to occur, so the daisy chain motion vector is generated to avoid generating predicted pixels containing such noise.
[0328] 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.
[0329] 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.
[0330] 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.
[0331] 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.
[0332] As a modification, the inter prediction unit 205 may determine whether or not to apply a daisy-chain motion vector based on whether 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.
[0333] As a modification, the inter predictor 205 may control whether or not to apply daisy-chain motion vector prediction depending on the POC.
[0334] As another modification, the inter predictor 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).
[0335] 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.
[0336] Generally, the greater the depth of the picture reference structure (the value of Temporal_id), the greater the quantization parameter offset 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.
[0337] Conversely, if the depth of the picture reference structure (the value of Temporal_id) is smaller than a predetermined value, the daisy chain motion vector prediction is not applied, thereby reducing the motion vector search processing time for the daisy chain motion vector prediction.
[0338] 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.
[0339] <7. Targets of chained motion vector prediction> The technical features of applying daisy chain motion vector prediction to merges other than the normal merges disclosed in Non-Patent Documents 1 and 2 will be described.
[0340] (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 normal merges. However, in Non-Patent Document 2, the pruning of merge candidates when constructing these merge candidate lists is enhanced compared to normal merges, and these merge candidate lists are unlikely to be identical to the merge candidates stored in the merge candidate list for normal merges.
[0341] Therefore, if the merge candidate list for a normal merge is not reused for MMVD, GPM, and 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 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 predictor 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 predictor 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, 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, daisy-chain motion vectors generated for geometric partitioning mode, and template matching merge, as with 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 daisy-chain motion vector prediction is to apply daisy-chain motion vector prediction to merge candidates in the merge candidate list of reference picture list numbers that are not derived by AMVP, the number of merge candidates that can be selected in the Adaptive Motion Vector Prediction-Merge mode increases, which is expected to improve inter-prediction accuracy and coding efficiency.
[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 in the case of 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 the block to be decoded by affine transformation, and as shown in Figure 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] 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, when 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 the accumulated motion vectors 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 resulting motion vectors to each of the initial control point motion vectors to generate daisy-chain 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 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 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 adaptive motion vector candidate list).
[0362] Here, as shown in FIG. 25, in adaptive motion vector prediction, unlike the merge candidate list, a list storing motion vector candidates is constructed 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 predictor 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 identified 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, the inter prediction unit 205 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 have not been 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 (ie, 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 accuracy of a motion vector as a technology for reducing the amount of transmission code of a motion vector difference that constitutes a motion vector ultimately derived by an adaptive motion vector.
[0375] When AMVR is enabled, the inter prediction unit 205 may match (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 align (round) the pixel precision of the searched motion vector to the pixel precision of the motion vector quantized by AMVR during the recursive motion vector search process when deriving a daisy chain motion vector.
[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] (Applying chained 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), similar to the normal merge mode described above, the inter predictor 205 constructs a merge candidate list and derives a motion vector.
[0382] However, in bilateral merge mode, unlike normal merge mode, two motion vectors that satisfy the condition (BM condition) that 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 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 may retain motion vectors that do not satisfy the BM condition, apply chained motion vector prediction to search for new motion vectors, and if a motion vector that satisfies the BM condition is found, store it 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, separate from 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 as the motion vector for the block to be decoded. This increases the number of motion vectors selectable 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). [Industrial Applicability]
[0387] According to this embodiment, for example, it is possible to improve the overall service quality in video communication, which will contribute to the achievement of Goal 9 of the United Nations-led Sustainable Development Goals (SDGs), which is to "Develop resilient infrastructure, promote sustainable industrialization and foster innovation." [Explanation of symbols]
[0388] 200...Image decoding device 201...Decoding section 202...Inverse quantization section 203...Inverse conversion unit 204...Intra prediction unit 205...Inter prediction section 206...adder 207...Decoded picture buffer 210...Code input section 220...Image output unit
Claims
1. An image decoding device, a decoding unit that performs variable-length decoding on the coded information and outputs a quantized value and control information; an inverse quantization unit that inversely quantizes the quantized value and outputs a transform coefficient; an inverse transform unit that inversely transforms the transform coefficients and outputs prediction residual pixels; an intra prediction unit that generates intra predicted pixels from the control information and decoded pixels; a decoded picture buffer for storing 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; an adder that adds at least one of the intra-predicted pixels and the inter-predicted pixels to the prediction 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: a step A of variable-length decoding the code information to output a quantized value and control information; a step B of dequantizing the quantized values to output transform coefficients; a step C of inversely transforming the transform coefficients to output prediction residual pixels; a 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; a step F of generating inter-predicted pixels from the control information and the decoded pixels stored in the decoded picture buffer; a step G of adding at least one of the intra-predicted pixels and the inter-predicted pixels to the prediction residual pixels to generate the decoded 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 comprises: a decoding unit that performs variable-length decoding on the coded information and outputs a quantized value and control information; an inverse quantization unit that inversely quantizes the quantized value and outputs a transform coefficient; an inverse transform unit that inversely transforms the transform coefficients and outputs prediction residual pixels; an intra prediction unit that generates intra predicted pixels from the control information and decoded pixels; a decoded picture buffer for storing 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; an adder that adds at least one of the intra-predicted pixels and the inter-predicted pixels to the prediction 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
ITTH.266/