WO2025215919A1 - 画像復号装置、画像復号方法及びプログラム - Google Patents
画像復号装置、画像復号方法及びプログラムInfo
- Publication number
- WO2025215919A1 WO2025215919A1 PCT/JP2025/002832 JP2025002832W WO2025215919A1 WO 2025215919 A1 WO2025215919 A1 WO 2025215919A1 JP 2025002832 W JP2025002832 W JP 2025002832W WO 2025215919 A1 WO2025215919 A1 WO 2025215919A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- motion vector
- decoded
- pixels
- block
- prediction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
Definitions
- the present invention relates to an image decoding device, an image decoding method, and a program.
- Non-patent literature 1 and non-patent literature 2 disclose inter prediction.
- Inter prediction generates predicted pixels for the block to be decoded from decoded pixels (reference pixels) in a decoded picture (reference picture) that is different from the picture to be decoded.
- inter prediction uses control information to select the motion vector of 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.
- Non-Patent Document 1 and Non-Patent Document 2 the motion vector candidates that can be selected for inter prediction are limited to motion vectors that are spatially or temporally adjacent or close to the block to be decoded, which leaves room for improvement in coding efficiency.
- the present invention was made in consideration of the above-mentioned problems, and aims to provide an image decoding device, image decoding method, and program with high coding efficiency.
- the first feature of the present invention is an image decoding device comprising: a decoding unit that performs variable-length decoding on coded information and outputs quantized values and control information; an inverse quantization unit that performs inverse quantization on the quantized values and outputs transform coefficients; an inverse transform unit that performs inverse transform on the transform coefficients and outputs predicted residual pixels; an intra prediction unit that generates intra predicted pixels from the control information and decoded pixels; a decoded picture buffer that stores the decoded pixels; an inter prediction unit that generates inter predicted pixels from the control information and the decoded pixels stored in the decoded picture buffer; and and an adder that generates the decoded pixel by adding either the first or second motion vectors, and the inter prediction unit performs daisy-chain motion vector prediction to generate a daisy-chain 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 spatial
- a second feature of the present invention is an image decoding method comprising: step A of variable-length decoding code information to output quantized values and control information; step B of inversely quantizing the quantized values to output transform coefficients; step C of inversely transforming the transform coefficients to output predicted residual pixels; step D of generating intra-predicted pixels from the control information and decoded pixels; step E of storing the decoded pixels in a decoded picture buffer; step F of generating inter-predicted pixels from the control information and the decoded pixels stored in the decoded picture buffer; and and step G of adding the decoded pixels together to generate the decoded pixels, and step F of re-searching for new motion vectors is limited to motion vectors whose reference destination is within the collocated picture stored in the decoding picture buffer, among 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 to generate a chaine
- a third feature of the present invention is a program that causes a computer to function as an image decoding device, the image decoding device comprising a decoding unit that performs variable-length decoding on coded information and outputs quantized values and control information, an inverse quantization unit that inversely quantizes the quantized values and outputs transform coefficients, an inverse transform unit that inversely transforms 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 a decoding unit that performs decoding on the predicted residual pixels and the intra predicted pixels.
- the inter prediction unit performs daisy-chain motion vector prediction in which a new motion vector is re-searched for only among 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 whose reference destination is within a collocated picture stored in the decoding picture buffer, and adds all of the derived motion vectors to generate a daisy-chain motion vector, and derives the daisy-chain motion vector as a motion vector candidate for the block to be decoded.
- the present invention provides an image decoding device, image decoding method, and program with high coding efficiency.
- FIG. 1 is a diagram showing an example of functional blocks of an image decoding device 200 according to an embodiment.
- FIG. 2 is a diagram illustrating a concept of inter prediction.
- Figure 3 is a diagram explaining the reference pixel values that are referenced when a picture other than the picture to be decoded stored in the decoded picture buffer 207 disclosed in each of Non-Patent Documents 1 and 2 is referenced from a future block to be decoded.
- FIG. 4 is a conceptual diagram showing how the inter-prediction padding area described with reference to FIG. 3 is generated.
- 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.
- FIG. 1 is a diagram showing an example of functional blocks of an image decoding device 200 according to an embodiment.
- FIG. 2 is a diagram illustrating a concept of inter prediction.
- Figure 3 is a diagram explaining the reference pixel values that are referenced when a picture other than the picture to be
- 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.
- FIG. 7 is a diagram showing an example of search positions for spatial merge candidates and TMVP candidates in a block to be decoded.
- FIG. 8 is a diagram showing an example of a method for deriving a chained motion vector in chained motion vector prediction.
- FIG. 9 is a diagram showing an example of a method for deriving a chained motion vector in chained motion vector prediction.
- FIG. 10 is a diagram showing an example of recursive search of motion vectors including bi-prediction.
- 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.
- FIG. 12 is a diagram showing an example of searching for chained motion vector prediction candidates after searching for multiple types of merge candidates in the normal merge disclosed in Non-Patent Documents 1 and 2.
- FIG. 13 is a diagram showing an example of searching for chained motion vector prediction candidates after searching for multiple types of merge candidates in the normal merge disclosed in Non-Patent Documents 1 and 2.
- FIG. 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.
- FIG. 12 is a diagram showing an example of searching for chained motion vector prediction candidates after searching for multiple types of merge candidates in the normal merge disclosed in Non-Patent Documents 1 and 2.
- FIG. 13 is a diagram showing an example of searching for chained motion
- 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.
- FIG. 16 is a diagram showing an example of merge candidates from which a daisy-chain motion vector predictor candidate is derived and positions (index numbers) in the merge candidate list to which the daisy-chain motion vector predictor candidate is added.
- FIG. 17 is a diagram showing an example of merge candidates from which 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 is a diagram showing an example of a pruning process in which the inter prediction unit 205 of an 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.
- 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 of the image decoding device 200 according to one embodiment.
- 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 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.
- FIG. 22 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.
- FIG. 22 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.
- FIG. 23 is a diagram illustrating an example of processing in which the decoding unit 201 of the image decoding device 200 according to an embodiment determines whether or not to decode sps_chained_mvp_enabled_flag based on sps_temporal_mvp_enabled_flag.
- FIG. 24 is a diagram showing an example of a control point motion vector cpMv derived by the inter prediction unit 205 of the image decoding device 200 according to an embodiment.
- FIG. 25 is a diagram showing an example of a method for deriving a motion vector prediction using adaptive motion vector prediction in the inter prediction unit 205 of the image decoding device 200 according to an embodiment.
- the image decoding device 200 is designed to process a variety of image signals (hereinafter referred to as images).
- images the image decoding device 200 according to this embodiment is designed to process YUV (YCbCr) images composed of luminance and chrominance pixels, RGB images composed of RGB pixels, and monochrome images.
- YUV YCbCr
- RGB images composed of RGB pixels
- monochrome images the pixels that make up each image have discrete values (pixel values) with a predetermined bit width.
- FIG. 1 is a diagram showing an example of functional blocks of an image decoding device 200 according to this embodiment.
- the image decoding device 200 has 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.
- pixel when used in the functional description of each part, it may also 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) which is larger than a tree block.
- the image decoding device 200 may include an in-loop filter between the adder 206 and the decoded picture buffer 207 that modifies the pixel values of decoded pixels.
- the code input unit 210 is configured to acquire code information coded by the image coding device.
- the decoding unit 201 is configured to decode control information and quantized values from the code information input from the code input unit 210.
- the decoding unit 201 is configured to output control information and quantized values by performing variable-length decoding on the code information.
- the quantized values are 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.
- this control information includes information necessary for controlling the decoded picture buffer 207, the intra prediction unit 204, the inter prediction unit 205, etc., and may also include header information such as a sequence parameter set, a picture parameter set, a picture header, or a slice header.
- the inverse quantization unit 202 is configured to inverse quantize the quantized values sent from the decoding unit 201 to generate decoded transform coefficients. These transform coefficients are sent to the inverse transform unit 203.
- the inverse transform unit 203 is configured to inversely transform the transform coefficients sent from the inverse quantization unit 202 to generate decoded prediction residuals. These prediction residuals are sent to the adder 206.
- the intra prediction unit 204 is configured to generate intra prediction pixels based on decoded pixels and control information sent from the decoding unit 201.
- the decoded pixels are obtained via the adder 206 and stored in the decoded picture buffer 207.
- the intra prediction pixels are prediction pixels to be added to the prediction residual in the adder 206.
- the intra prediction pixels are sent to the adder 206.
- 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.
- 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.
- 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.
- the decoded pixels stored in the decoded picture buffer 207 and the inter prediction information corresponding to these decoded pixels are referenced by the inter prediction unit 205. Details of the inter prediction information will be described later.
- the inter prediction unit 205 is configured to generate inter prediction pixels based on the decoded pixels and inter prediction information obtained by referring to the decoded picture buffer 207, and the control information sent from the decoding unit 201.
- the inter prediction unit 205 sends the generated inter prediction pixels to the adder unit 206, and sends the inter prediction information used to generate the inter prediction pixels to the decoded picture buffer 207 as information corresponding to the pixel to be decoded.
- 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.
- 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.
- 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. These decoded pixels are sent to the image output unit 220, the decoded picture buffer 207, and the intra-prediction unit 204.
- the image output unit 220 is configured to output the decoded pixels transmitted from the adder 206.
- inter prediction unit 205 and decoded picture buffer 207 which are characteristic components of the image decoding device 200 according to this embodiment, using the example where the prediction performed by the inter prediction unit 205 is inter prediction.
- the basic role of the inter prediction unit 205 is to derive one or more motion vectors (Mv: Motion vector) for the block to be decoded, in order to predict the block to be decoded with high accuracy in the adder 206 at the subsequent stage, and to predict pixels (hereinafter referred to as reference pixels) of a decoded block (hereinafter referred to as reference block) that Mv references in a decoded picture (hereinafter referred to as reference picture) different from the picture to be decoded to which the block to be decoded belongs, i.e., to perform inter prediction.
- Mv Motion vector
- FIG. 2 shows an example in which, in inter prediction, reference blocks (RerBlkL0 k and RerBlkL1 k) in two different reference pictures (RerPicL0 k and RerPicL1 k ) are referenced based on two motion vectors MvL0 k and MvL1 k derived by the inter prediction unit 205 to generate inter predicted pixels for a block to be decoded (CurBlk ) in a picture to be decoded (CurPic).
- 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 the control information (index) for identifying a motion vector, which will be explained in the motion vector derivation method described below.
- the image decoding device 200 may derive two different reference picture lists, List 0 (L0) and List 1 (L1), for each picture to be decoded, as in Non-Patent Document 1 and Non-Patent Document 2.
- 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.
- control information may include information such as the number of reference pictures to be included in the reference picture list and candidate reference pictures for the picture to be decoded (picture reference structure).
- the method for deriving motion vectors in the inter prediction unit 205 will be described in detail below.
- the method for generating inter prediction pixels in the inter prediction unit 205 is outlined below.
- 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.
- the inter prediction unit 205 may apply the following method as a method for generating inter predicted pixels using two reference blocks.
- the inter prediction unit 205 may generate an inter predicted pixel by simply averaging the pixel values of two reference blocks.
- the inter prediction unit 205 may generate inter predicted pixels by weighting the pixel values of two reference blocks on a block-by-block basis using a predetermined weight value.
- 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.
- BCW block-based weighted bi-prediction
- Non-Patent Documents 1 and 2 it is possible to select multiple weighting values for BCW, including a simple average, i.e., a 1:1 weighting value, and such weighting values are specified by the value of an internal parameter (bcwIdx, third internal parameter).
- 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.
- the inter prediction unit 205 may generate inter predicted pixels by dividing the block to be decoded into two parts along 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.
- 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 such a block into two by a straight line.
- GPM Geometric Partitioning Mode
- the inter prediction unit 205 may generate an inter-predicted pixel using an interpolation filter to derive the reference pixel value at the sub-pel precision position from reference pixel values at integer-pel precision positions above, below, left, and right of the sub-pel position.
- 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.
- the one with the lower cutoff frequency is called the Switchable Interpolation Filter (SIF).
- SIF Switchable Interpolation Filter
- the inter prediction unit 205 may apply SIF when the motion vector references a half-pixel precision position and when the internal parameter (hpelIfIdx, first internal parameter) that specifies whether or not SIF is to be applied indicates that SIF is to be applied.
- the internal parameter hpelIfIdx, first internal parameter
- 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.
- 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.
- the inter prediction unit 205 may apply local illumination compensation (LIC) disclosed in Non-Patent Document 2 when generating the final inter prediction pixels.
- LIC local illumination compensation
- LIC is a technology that uses linear prediction to correct reference pixel values in a reference block based on decoded pixels adjacent to the block to be decoded and the reference block.
- the inter prediction unit 205 may apply LIC when the internal parameter (licFlag, second internal parameter) that controls whether or not LIC is applied indicates that LIC should be applied.
- inter prediction unit 205 derives licFlag by inheriting it from control information or the decoded picture buffer 207. Details of inheritance will be described later.
- the inter prediction unit 205 may apply multi-hypothesis prediction (MHP) disclosed in Non-Patent Document 2 when generating the final inter prediction pixel.
- MHP multi-hypothesis prediction
- the inter prediction unit 205 may generate a final inter prediction pixel using at least one or more ultimately derived chained motion vectors and one motion vector that was the source (reference source) of the chained motion vectors.
- Non-Patent Document 2 discloses multi-hypothesis prediction (MHP) as a means of generating three or more inter-predicted pixels.
- MHP multi-hypothesis prediction
- the inter prediction unit 205 may generate a final inter prediction pixel using at least one of the finally derived chained motion vectors described above and one motion vector that was the source (reference source) of the chained motion vectors. The specific procedure is described below.
- the inter prediction unit 205 stores, in addition to one or more chained motion vectors in the merge candidate list, one motion vector that was the source (reference source) of the chained motion vectors as a motion vector for MHP.
- the decoded picture buffer 207 stores this MHP motion vector as the third motion vector (motion information).
- 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:
- P Final (1- ⁇ )P Merge + ⁇ P MHP (Formula 0)
- P Final , P Merge , PMHP and ⁇ are the final inter-predicted pixel, the reference pixel of the motion vector corresponding to the merge candidate, the reference pixel of the MHP motion vector and the MHP weighting coefficient, respectively.
- the MHP weighting coefficient may be a constant.
- the MHP weighting coefficient may be fixed to 1/4 or -1/8, as disclosed in Non-Patent Document 2.
- the decoding unit 201 may decode or estimate control information that specifies the value of the MHP weighting coefficient and derive the MHP weighting coefficient.
- MHP is a technology that generates the final inter-predicted pixel using a weighted average from reference pixel values of at least three or more reference blocks.
- the inter prediction unit 205 may apply MHP when an internal parameter (mhpFlag, fourth internal parameter) that specifies whether or not MHP is to be applied indicates that MHP should be applied.
- an internal parameter mhpFlag, fourth internal parameter
- inter prediction unit 205 derives mhpFlag by inheriting it from control information or the decoded picture buffer 207. Details of inheritance will be described later.
- the inter prediction unit 205 sends inter prediction pixels for the block to be decoded to the adder 206, and also sends to the decoded picture buffer 207 the motion vector used to generate the inter prediction pixels, an index (reference index) for identifying the reference picture referenced by the motion vector in the reference picture list, and a counter (POC: Picture Order Count) indicating the picture output order of the reference picture corresponding to the reference index.
- reference index index
- POC Picture Order Count
- the inter prediction unit 205 may send the inter prediction information together with at least one or all of the internal parameters bcwIdx, hpelIfIdx, licFlag, and mhpFlag that change the method of generating the inter prediction pixels described above.
- the decoded picture buffer 207 stores the decoded pixels of the block to be decoded sent from the adder 206, as well as the inter-prediction information of the block to be decoded that corresponds to these decoded pixels.
- the decoded picture buffer 207 may store such inter-prediction information in a predetermined size (number of pixels). For example, the decoded picture buffer 207 may store such inter-prediction information in units of the minimum size (4x4 pixels) of the block to be decoded, as disclosed in Non-Patent Document 1 and Non-Patent Document 2.
- the decoded picture buffer 207 accumulates decoded pixels in units of pictures to be decoded. Alternatively, the decoded picture buffer 207 may accumulate decoded pixels in units of slices to be decoded. The following describes an example in which decoded pixels are accumulated in units of pictures to be decoded.
- the decoded picture buffer 207 may sequentially delete the decoded pixels in the current picture buffer 207 and the inter-prediction information corresponding to the decoded pixels. This configuration reduces the amount of information stored in the current picture buffer 207.
- the decoded picture buffer 207 may derive the number of pictures to be decoded and the reference picture structure between the pictures to be decoded based on the control information decoded by the decoding unit 201.
- the decoded picture buffer 207 may additionally store such inter-predicted pixels.
- Figure 3 is a diagram explaining the 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 Non-Patent Document 1 and Non-Patent Document 2 is referenced from a future block to be decoded.
- Non-Patent Document 1 VVC: Versatile Video Coding
- VVC Versatile Video Coding
- this specified range is specified as the maximum width (number of pixels) of the block to be decoded plus 16 pixels.
- Non-Patent Document 2 ECM: Enhanced Compression Model
- ECM Enhanced Compression Model
- the inter-prediction pixel values of the block to be decoded are available, improving the inter-prediction accuracy of the future block to be decoded.
- Figure 4 is a conceptual diagram showing how the inter-prediction padding area described in Figure 3 is generated.
- Figure 5 shows an example of a merge candidate list, which is a method for deriving motion vectors in the inter prediction unit 205.
- the merge candidate list is a list that stores inter prediction information candidates (i.e., merge candidates) that the inter prediction unit 205 constructs to derive motion vectors in the merge (merge mode) disclosed in Non-Patent Document 1 and Non-Patent Document 2.
- the inter prediction unit 205 extracts a merge candidate from the multiple merge candidates in the merge candidate list based on an index (merge_idx) for identifying the merge candidate in the merge candidate list sent from the decoding unit 201, and uses this as inter prediction information to generate inter predicted pixels.
- the upper limit on the number of merge candidates stored in the merge 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 the sequence parameter set, etc., and the variable value can be set based on that control information.
- the inter prediction unit 205 identifies the inter prediction information to be used to generate inter predicted pixels from the merge candidate list based on one or more merge_idx sent from the decoding unit 201.
- the inter prediction unit 205 may derive inter prediction information by decoding merge_idx one by one for each area obtained by dividing the block to be decoded into two by a straight line.
- the inter prediction unit 205 stores inter prediction information (merge candidates) corresponding to L0 and L1 in the merge candidate list.
- 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 the internal parameters bcwIdx, hpelIfIdx, licFlag, and mhpFlag that change the method of generating the inter prediction pixels described above.
- the inter prediction unit 205 may search for and add inter prediction information, i.e., inter prediction information that is spatially or temporally adjacent or close to the block to be decoded, as a merge candidate to the merge candidate list.
- inter prediction information i.e., inter prediction information that is spatially or temporally adjacent or close to the block to be decoded
- the inter prediction unit 205 may combine and apply searches for multiple types of merge candidates as disclosed in Non-Patent Document 1 and Non-Patent Document 2.
- Figure 6 shows the names of multiple merge candidates and the order in which these merge candidates are derived for the regular merge disclosed in Non-Patent Document 1 and Non-Patent Document 2.
- the inter prediction unit 205 checks whether or not to use spatial merge candidates, temporal motion vector prediction (TMVP) candidates, history-based motion vector prediction (HMVP) candidates, and pairwise merge candidates, in that order.
- TMVP temporal motion vector prediction
- HMVP history-based motion vector prediction
- Non-Patent Document 2 In addition to the merge candidates described above in Non-Patent Document 1, the inter prediction unit 205 checks whether non-adjacent (NA) spatial merge candidates (NA-spatial merge candidates) are used between the spatial merge candidates and the TMVP candidates.
- NA non-adjacent
- Figure 7 shows the search positions for spatial merge candidates and TMVP candidates in the block to be decoded.
- inter prediction information is searched for at each of the positions adjacent to the current block (CurBlk): bottom left (A0), left (A1), top right (B0), top (B1), and top left (B2).
- spatial merge candidates use inter prediction information for positions spatially adjacent to the current block (CurBlk).
- inter prediction information is searched for in a picture (reference picture) different from the block to be decoded at the bottom right (Col) of the center of the block to be decoded (CurBlk) and at the bottom right (H) outside the block to be decoded (CurBlk) shown in Figure 7.
- TMVP candidates use inter prediction information for a block that is temporally adjacent to the block being decoded.
- inter-prediction information from a position spatially distant (close) to the block to be decoded is used.
- HMVP candidates construct a table capable of storing inter-prediction information in a FIFO manner, and each time new inter-prediction information is searched for, the oldest inter-prediction information is discarded from the table and the new inter-prediction information is added to the table.
- the inter prediction unit 205 of the image decoding device 200 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.
- 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 being searched for, and modify the inter prediction information (motion vector), so as to reduce 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 being searched for and the decoded pixels (template of the block being decoded) adjacent to the block to be decoded.
- template matching cost the difference between the decoded pixels (template of the reference block) adjacent to the reference block based on the inter prediction information being searched for and the decoded pixels (template of the block being decoded) adjacent to the block to be decoded.
- the inter prediction unit 205 may apply the template matching merge disclosed in Non-Patent Document 1 and Non-Patent Document 2.
- the inter prediction unit 205 may derive inter prediction information for L0 from control information, and select as the merge candidate for L1 the merge candidate that minimizes the difference between the reference block template based on the inter prediction information for L0 derived from the control information and the reference block template based on the inter prediction information stored in L1 of the merge candidate list.
- the inter prediction unit 205 can derive merge candidates for L1 (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 the L1 inter prediction information in addition to the control information required to derive the L0 inter prediction information.
- L1 i.e., inter prediction information
- 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.
- the inter prediction unit 205 may reverse L0 and L1 in the above example. That is, the inter prediction unit 205 may derive the inter prediction information for L1 using the control information, and derive the inter prediction information for L0 from the merge candidate list.
- the inter prediction unit 205 may construct a merge candidate list for merging, which derives inter prediction information for each sub-block obtained by dividing the current block to be decoded, and derive inter prediction information.
- the inter prediction unit 205 may derive inter prediction information by constructing a merge candidate list for sub-block TMVP (SbTMVP) or affine merge, as disclosed in Non-Patent Document 1 and Non-Patent Document 2.
- SBTMVP sub-block TMVP
- affine merge as disclosed in Non-Patent Document 1 and Non-Patent Document 2.
- the inter prediction unit 205 may derive, as the motion vector for the block to be decoded, a motion vector generated by recursively searching for motion vectors stored in the decoded picture buffer 207 and adding the motion vector derived from the motion vectors at positions spatially or temporally adjacent or close to the block to be decoded.
- chained motion vector prediction CMVP
- Figure 8 shows an example of a method for deriving chained motion vectors in chained motion vector prediction.
- the inter prediction unit 205 generates a new motion vector by recursively (chaining) the motion vectors stored in the decoded picture buffer 207 starting from the L0 motion vector MvL0 k (0) corresponding to any merge candidate stored in the merge candidate list and the reference index.
- the inter prediction unit 205 can derive a new motion vector and reference picture generated by daisy chain motion vector prediction for the reference block RefBlk of the reference picture RefPicL0 k (m) as shown in (Equation 1) and (Equation 2).
- the new motion vector MvL0 k/m generated by chained motion vector prediction can be calculated by recursively (chaining) the motion vectors stored in the decoded picture buffer 207 and adding up all the motion vectors derived.
- the new reference picture generated by the daisy chain motion vector prediction is the reference picture referred to by MvL0 k/m .
- Figure 9 shows an example of a method for deriving chained motion vectors in chained 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.
- Bv is added to the derivation formula of a new motion vector generated by daisy-chain motion vector prediction for the reference block RefBlk of the reference picture RefPicL0 k (m), as shown in (Equation 3).
- 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.
- the first vector (initial vector) on the right-hand side may be Bvk(0).
- the inter prediction unit 105 may use control information on a sequence-by-sequence basis to control whether a block vector can be used as an initial vector for chained motion vector prediction.
- 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.
- sps_cmvp_initial_bv_enabled_flag a 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.
- FIG. 10 shows an example of a recursive search for motion vectors including bi-prediction (i.e., inter-prediction using two different motion vectors for L0 and L1).
- FIG. 11 shows an example of a chain of motion vectors derived by a recursive search for motion vectors including bi-prediction.
- the inter prediction unit 205 uses each search list number (L0 or L1) and each search depth (or each number of searches) of the motion vectors stored in the decoded picture buffer 207 to newly search and derive one or more (up to two in the examples of Figures 10 and 11) motion vectors from a single reference motion vector, and adds all motion vectors that have already been derived to each of the one or more newly derived motion vectors to generate a daisy-chain motion vector MvL0 k/m .
- Figures 12 and 13 show an example of searching for chained motion vector prediction candidates after searching for multiple types of merge candidates in the normal merge disclosed in Non-Patent Documents 1 and 2.
- the inter prediction unit 205 may search for a chain of motion vector prediction candidates after searching for a predetermined merge candidate.
- the inter prediction unit 205 may search for daisy-chain motion vector prediction candidates after searching for TMVP candidates, as shown in FIG. 12.
- searching for TMVP candidates and then searching for consecutive motion vector prediction candidates can be said to be a natural design method for deriving motion vectors.
- 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 Figure 13.
- daisy-chain motion vector prediction which generates new motion vectors by recursively searching for motion vectors, it must be applied when at least one merge candidate is stored in the merge candidate list.
- the inter prediction unit 205 may search for daisy-chain motion vector prediction candidates in the ECM after searching for spatial merge candidates, as shown in FIG. 12.
- Figure 7 shows the search positions for spatial merge candidates, but for example, if the search positions for spatial merge candidates are increased, the likelihood of one or more motion vector candidates being stored in the merge candidate list increases, making it easier to generate new motion vector candidates by chaining merge candidates.
- Figures 14 to 17 show examples of merge candidates from which chained motion vector prediction candidates are derived, and the positions (index numbers) in the merge candidate list to which the chained motion vector prediction candidates are added.
- the inter prediction unit 205 may also store the internal parameters bcwIdx, hpelIfIdx, licFlag, and mhpFlag that change the inter prediction pixel generation method described above.
- the inter prediction unit 205 may store predetermined merge candidates in a merge candidate list, and then apply daisy chain motion vector prediction to the merge candidates 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.
- the specified merge candidate may be one of the multiple types of merge candidates used in the normal merge described using Figures 12 and 13, or it may be a specified number of merge candidates (specified numbers in merge_idx).
- This 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 each sequence to be decoded, each group of pictures to be decoded, each picture to be decoded, or each slice to be decoded.
- the inter prediction unit 205 may store certain merge candidates in a merge candidate list, and then apply daisy-chain motion vector prediction to the merge candidates stored in the merge candidate list, starting with the first one, 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 the merge candidate list in sequence.
- the inter prediction unit 205 may apply daisy-chain motion vector prediction to the merge candidate in order, 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 order in the merge candidate list.
- the inter prediction unit 205 may apply daisy-chain motion vector prediction to the merge candidates 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.
- 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.
- 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.
- FIG. 18 is a diagram showing an example of pruning processing when the inter prediction unit 205 of the image decoding device 200 according to this embodiment adds merge candidates corresponding to daisy-chain motion vectors derived by daisy-chain motion vector prediction to the merge candidate list.
- 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 predetermined conditions.
- 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 chained motion vector derived by chained motion vector prediction.
- the inter prediction unit 205 determines in step S000 that the predetermined condition is not satisfied, it determines in step S001 to add a merge candidate corresponding to the chained motion vector derived by chained motion vector prediction.
- the predetermined condition may be that the reference picture and motion vector associated with at least one merge candidate stored in the merge candidate list and the merge candidate corresponding to the derived chained motion vector match.
- the inter prediction unit 205 determines that the reference picture and motion vector associated with at least one merge candidate stored in the merge candidate list and the merge candidate corresponding to the derived daisy-chained motion vector match, it determines not to add the merge candidate corresponding to the daisy-chained motion vector to the merge candidate list, i.e., to prune (target for pruning) the merge candidate corresponding to the daisy-chained motion vector. This prevents two or more of the same motion vectors from being stored in the merge candidate list, reduces the amount of code for merge_idx (merge index) sent to the image decoding device 200, and improves coding efficiency.
- 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.
- 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 in merge candidate list number 0 (L0) and merge candidate list number 1 (L1), respectively, are all identical.
- 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 that the error (Euclidean distance) between 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.
- the inter prediction unit 205 may set the predetermined threshold when one motion vector is compared to a larger value than the predetermined threshold when two motion vectors are compared.
- the inter prediction unit 205 may set the predetermined threshold to 1.5 pixels when there is one motion vector to compare.
- 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 compare.
- the inter prediction unit 205 may set the predetermined threshold to 1.0 pixel when there are two motion vectors to be compared.
- 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 compare.
- the above-mentioned predetermined 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 predetermined inter-predicted pixels, are consistent.
- the specified condition may be that the reference picture, motion vector, and internal parameter (hpelIfIdx) specifying 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.
- hpelIfIdx internal parameter
- the specified condition may be that the reference picture, motion vector, and internal parameter (licFlag) that controls whether or not to apply local luminance compensation associated with at least one merge candidate stored in the merge candidate list and the merge candidate corresponding to the derived chained motion vector match.
- the specified condition may be that the reference picture, motion vector, and internal parameter (bcwIdx) specifying the weight value for block-based weighted bi-prediction 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.
- the inter prediction unit 205 can generate inter prediction pixels using different methods when the internal parameters are different, even if the reference picture and motion vector to be compared are the same, thereby leaving room for improvement in inter prediction accuracy and expected to improve coding efficiency.
- Figure 19 is a diagram showing an example of a method for controlling the reference source when deriving a chained motion vector in chained motion vector prediction by the inter prediction unit 205.
- the inter prediction unit 205 may set the starting point of the first motion vector that makes up the chained motion vector to part or all of the block to be decoded.
- the inter prediction unit 205 may set the starting point of the first motion vector that makes up the chained motion vector to the center (C) of the block to be decoded (CurBlk).
- 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 in the block to be decoded (CurBlk) in addition to the center (C) of the block to be decoded (CurBlk), and may search in a predetermined order for a motion vector to be stored at the reference destination of the motion vector.
- the inter prediction unit 205 may set the starting point of the first motion vector that constitutes the daisy-chain motion vector to the four corners of the block to be decoded (CurBlk) in addition to the center (C) of the block to be decoded (CurBlk), and may search for whether a motion vector is stored in the reference destination of the motion vector in a predetermined order: center (C), top left (TL), top right (TR), bottom left (BL), and bottom right (BR) of the block to be decoded.
- the inter prediction unit 205 may generate a chain of motion vectors for each motion vector derived by searching at each point.
- the inter prediction unit 205 may compare the difference between adjacent decoded pixel values between the reference block of each motion vector derived by searching at each point and the block to be decoded, and generate a chain of motion vectors limited to at least one motion vector with a small difference.
- the inter prediction unit 205 may derive a new motion vector for generating a chained motion vector by weighting and averaging the motion vectors derived by searching for each point.
- the inter prediction unit 205 may generate a new motion vector by scaling each motion vector based on the distance of each motion vector's reference picture from the block to be decoded.
- the scaling destination may be set to the reference picture that is the shortest distance from the block to be decoded.
- the inter prediction unit 205 sets the starting point of the first motion vector that makes up the chained 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, thereby increasing the likelihood of deriving a chained motion vector and, as a result, improving coding efficiency.
- the inter prediction unit 205 may control the starting point of the first motion vector that makes up the chained motion vector in accordance with the block size or block aspect ratio of the block to be decoded.
- 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 the first size.
- the block size of the block to be decoded is equal to or smaller than the first size, when deriving a chain of motion vectors, the first motion vector that makes up the chain of motion vectors 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.
- 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 makes up the daisy-chain motion vector to only the center of the block to be decoded (without including the four corners of the block to be decoded).
- 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 may search for whether a motion vector is stored in the reference destination of the motion vector in a predetermined order: center, top left, top right, bottom left, and bottom right of the block to be decoded.
- the block size of the block to be decoded is larger than the first size, when deriving the chained motion vectors, the first motion vector that makes up the chained motion vectors is likely to be different between the center of the block to be decoded and the four corners of the block to be decoded.
- the starting point of the first motion vector that makes up 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. This will generate a different daisy chain motion vector, which is expected to improve coding efficiency.
- 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, and the above control may be implemented.
- the inter prediction unit 205 may set the starting point of the first motion vector that makes up the daisy chain motion vector to the four corners of the block to be decoded in addition to the center of the block to be decoded if the width or height of the block to be decoded is greater than a predetermined number of pixels, and may search for whether a motion vector is stored at the reference destination of the motion vector in a predetermined order: center, top left, top right, bottom left, and bottom right of the block to be decoded.
- the inter prediction unit 205 may set this predetermined number of pixels to either 8 pixels, 16 pixels, or 32 pixels.
- the inter prediction unit 205 may set the starting point of the first motion vector that makes up 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.
- the inter prediction unit 205 may set this predetermined ratio to either 4, 8, or 16.
- Figure 20 is a diagram showing an example of a method for controlling reference destinations when deriving chained motion vectors in chained motion vector prediction by the inter prediction unit 205.
- 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 the reference position.
- the motion vector connected to that motion vector may be located in a different reference picture, so a new connected motion vector can be generated.
- the inter prediction unit 205 may terminate the generation of daisy-chain motion vectors if, during the recursive motion vector search process when deriving daisy-chain motion vectors, the reference position of each motion vector references a picture outside the reference picture.
- the decoded picture buffer 207 stores inter-prediction padding areas outside the reference pictures
- the above-mentioned description "outside the reference pictures” may be replaced with "outside the inter-prediction padding areas," and the inter-prediction unit 205 may perform similar processing.
- Figure 21 shows an example of a method for controlling the reference source and reference destination when deriving linked motion vectors in linked motion vector prediction by the inter prediction unit 205 in a case where Gradual Decoding Refresh (GDR), which is disclosed in Non-Patent Document 1 and is known as an encoding/decoding technology for low-latency video transmission, is applied to a group of pictures to be decoded.
- GDR Gradual Decoding Refresh
- GDR is a technology that updates only a portion of the screen through encoding and decoding using intra prediction (hereinafter referred to as intra update), and moves this portion for each picture to be decoded. This 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 that includes intra pictures, which is widely used in video transmission.
- Figure 21 illustrates an intra update area using slices, showing an example in which such slices move from the top to the bottom of the picture to be decoded.
- the three GDR partitioned areas in the picture to be decoded are referred to as the area after intra-update, the area during intra-update, and the area before intra-update.
- 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 currently undergoing 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.
- 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.
- the inter prediction unit 205 can generate daisy-chain motion vectors with high prediction accuracy by limiting the recursive motion vector search for daisy-chain motion vector prediction so as not to exceed the area currently being updated within the intra prediction range.
- Figure 22 shows an example of controlling the reference destination when the inter prediction unit 205 derives daisy-chain motion vectors in daisy-chain motion vector prediction in a case where Reference Picture Resampling (RPR) disclosed in Non-Patent Document 1 is applied, which allows for the reference of motion vectors to reference pictures with a different resolution (sampling ratio) than the decoding picture in the block to be decoded.
- RPR Reference Picture Resampling
- the inter prediction unit 205 calculates the ratio of the width and height of the decoded picture to the width and height of the reference picture, and scales the pixel position and motion vector length of the reference picture relative to the decoded picture according to this ratio to generate inter predicted pixels.
- the pixel position and motion vector length of the reference picture relative to the decoded picture are scaled by 0.5 times.
- the inter prediction unit 205 needs to concatenate the motion vectors at the same scale as the decoded picture.
- the inter prediction unit 205 references motion vectors for reference pictures with a different resolution (sampling ratio) than the picture to be decoded and recursively searches for motion vectors from such reference pictures 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.
- the inter prediction unit 205 may apply a daisy-chain motion vector only to reference pictures with the same sampling rate as the picture to be decoded.
- the inter prediction unit 205 may not apply a chained motion vector to a reference picture that does not have the same sampling rate as the picture to be decoded.
- 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.
- 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.
- the inter prediction unit 205 may inherit, from among the internal parameters (hpelIfIdx) that specify whether or not to apply a switch interpolation filter associated with each motion vector recursively searched for, the internal parameter (hpelIfIdx) that specifies whether or not to apply a switch interpolation filter associated with the first or last motion vector that constitutes the daisy-chain motion vectors, as the internal parameter (hpelIfIdx) that specifies whether or not to apply a switch interpolation filter corresponding to the merge candidate derived by daisy-chain motion vector prediction.
- the internal parameters (hpelIfIdx) that specify whether or not to apply a switch interpolation filter associated with each motion vector recursively searched for
- the internal parameter (hpelIfIdx) that specifies whether or not to apply a switch interpolation filter associated with the first or last motion vector that constitutes the daisy-chain motion vectors
- the inter prediction unit 205 may set the internal parameter (hpelIfIdx) that specifies whether or not to apply a switch interpolation filter corresponding to the merge candidate derived by daisy-chain motion vector prediction to indicate the application of a switch interpolation filter.
- 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 chained motion vector prediction to indicate that a switching interpolation filter is not to be applied.
- hpelIfIdx an internal parameter that specifies whether or not to apply a switching interpolation filter corresponding to a merge candidate derived by chained motion vector prediction to indicate that a switching interpolation filter is not to be applied.
- 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.
- the inter prediction unit 205 may inherit, from 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 vectors, 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.
- 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 vectors
- 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.
- 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.
- 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.
- the inter prediction unit 205 may re-determine the value of the internal parameter (licFlag) that controls whether or not to apply local luminance compensation inherited by the chained motion vector by comparing the sum of absolute differences (SAD) that can be calculated from the adjacent pixel values of the block to be decoded and the reference block with the mean-removed sum of absolute differences (MR-SAD).
- siFlag the internal parameter that controls whether or not to apply local luminance compensation inherited by the chained motion vector by comparing the sum of absolute differences (SAD) that can be calculated from the adjacent pixel values of the block to be decoded and the reference block with the mean-removed sum of absolute differences (MR-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; on the other hand, if MR-SAD is less 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.
- 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.
- control information cu_merge_lic_revert_flag
- 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.
- the inter prediction unit 205 may inherit, from among the internal parameters (bcwIdx) that specify the weight values for block-based weighted bi-prediction associated with each motion vector recursively searched for, the internal parameter (bcwIdx) that specifies the weight values for block-based weighted bi-prediction associated with the first or last motion vector constituting the daisy-chain motion vectors, as the internal parameter (bcwIdx) that specifies the weight values for block-based weighted bi-prediction corresponding to the merge candidates derived by daisy-chain motion vector prediction.
- the internal parameters (bcwIdx) that specify the weight values for block-based weighted bi-prediction associated with each motion vector recursively searched for
- the internal parameter (bcwIdx) that specifies the weight values for block-based weighted bi-prediction associated with the first or last motion vector constituting the daisy-chain motion vectors
- 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.
- 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 candidates derived by chained motion vector prediction to indicate that multiple hypothesis prediction is not applied.
- mhpFlag fourth internal parameter
- 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 recursively searched motion vector, 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.
- the internal parameters mhpFlag
- the inter prediction unit 205 may also configure 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.
- the inter prediction unit 205 may always set an internal parameter (mhpFlag) that controls whether or not to apply multiple hypothesis prediction corresponding to merge candidates derived by chained motion vector prediction to indicate that multiple hypothesis prediction is not applied.
- mhpFlag an internal parameter that controls whether or not to apply multiple hypothesis prediction corresponding to merge candidates derived by chained motion vector prediction to indicate that multiple hypothesis prediction is not applied.
- the amount of inter-prediction information that needs to be stored in the decoded picture buffer 207 can be reduced.
- the accuracy of inter-predicted pixels using merge candidates generated by daisy-chain motion vector prediction may be improved, and improved coding efficiency can be expected.
- 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.
- 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 candidate.
- ARMC Adaptive Reordering Merge Candidate
- daisy-chain motion vector prediction recursively generates new motion vectors, so 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.
- 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.
- the inter prediction unit 205 may perform a series of processes a predetermined number of times, calculating the template matching costs of all unpruned merge candidates, including merge candidates derived by daisy-chain motion vector prediction, and storing them in ascending order of template matching cost in the merge candidate list.
- the predetermined number of times may be two or three.
- 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.
- the inter prediction unit 205 may correct the motion vectors associated with the merge candidates derived by chained motion vector prediction using template matching.
- the inter prediction unit 205 may apply a technique similar to the template matching disclosed in Non-Patent Document 2 as the template matching.
- the inter prediction unit 205 may correct the motion vectors associated with the merge candidates derived by chained motion vector prediction using bilateral matching.
- 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.
- the inter prediction unit 205 may apply decoder-side motion vector refinement (DMVR) disclosed in Non-Patent Document 1.
- DMVR decoder-side motion vector refinement
- 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 differentials derived from the control information.
- 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.
- MMVD merge with motion vector difference
- inter prediction unit 205 By having the inter prediction unit 205 correct the motion vectors associated with the merge candidates derived by chained motion vector prediction using a predetermined method, inter prediction accuracy can be improved, and improved coding efficiency can be expected.
- 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.
- daisy-chain motion vector prediction can be applied according to control information (syntax) that controls whether or not temporal motion vector prediction (TMVP) can be applied.
- 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).
- TMVP temporal motion vector prediction
- Non-Patent Document 1 specifies the syntax for controlling whether TMVP is applicable, including the syntax for the sequence to be decoded (sps_temporal_mvp_enabled_flag, first control information, first syntax) and the syntax for the picture to be decoded (ph_temporal_mvp_enabled_flag, second control information, second syntax).
- daisy-chain motion vector prediction can be controlled in units similar to TMVP or in units lower than TMVP.
- the method for controlling whether or not daisy-chain motion vector prediction is applicable in the inter prediction unit 205 which controls whether or not daisy-chain motion vector prediction is applicable on a block-to-be-decoded basis, is as follows:
- 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.
- TMVP temporal motion vector prediction
- the inter prediction unit 205 specifies that daisy-chain motion vector prediction is applicable to the block to be decoded.
- the inter prediction unit 205 specifies that daisy-chain motion vector prediction is not applicable to the block to be decoded.
- 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 picture to be decoded.
- TMVP temporal motion vector prediction
- the inter prediction unit 205 specifies that daisy-chain motion vector prediction is applicable to the block to be decoded.
- the inter prediction unit 205 specifies that daisy-chain motion vector prediction is not applicable to the block to be decoded.
- the inter prediction unit 205 may control whether or not to apply daisy-chain motion vector prediction on a decoding target sequence basis or on a decoding target unit smaller than the decoding target sequence, based on control information sent from the decoding unit 201 that controls whether or not to apply temporal motion vector prediction (TMVP) on a decoding target sequence basis.
- TMVP temporal motion vector prediction
- the inter prediction unit 205 may control whether or not to apply daisy-chain motion vector prediction in units of pictures to be decoded or in units to be decoded that are smaller than the pictures 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) in units of pictures to be decoded.
- TMVP temporal motion vector prediction
- 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).
- TMVP temporal motion vector prediction
- Figure 23 specifies syntax (sps_chained_mvp_enabled_flag) that controls whether chained motion vector prediction is applicable for each sequence to be decoded, and shows an example of processing in which the decoding unit 201 determines whether to decode sps_chained_mvp_enabled_flag based on syntax (sps_temporal_mvp_enabled_flag) that controls whether temporal motion vector prediction (TMVP) is applicable for each sequence to be decoded.
- syntax sps_chained_mvp_enabled_flag
- step S100 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.
- TMVP temporal motion vector prediction
- step S100 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.
- TMVP temporal motion vector prediction
- the decoding unit 201 determines that temporal motion vector prediction (TMVP) is applicable to the sequence being decoded; if 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 being decoded; and if 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.
- TMVP temporal motion vector prediction
- the decoding unit 201 determines that daisy-chained motion vector prediction is applicable to the sequence to be decoded; if 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 if sps_chained_mvp_enabled_flag has not been decoded, the decoding unit 201 estimates the value of sps_chained_mvp_enabled_flag to be 0.
- 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.
- the inter prediction unit 205 may determine that daisy-chain motion vector prediction is applicable when TMVP and ARMC are applicable. Furthermore, in other cases, the inter prediction unit 205 may determine that daisy-chain motion vector prediction is not applicable.
- ARMC whether or not ARMC is applicable may be determined based on the value of control information similar to that used for TMVP.
- the inter prediction unit 205 may limit the recursive motion vector search of the daisy chain motion vector prediction to only at least one reference picture included in the reference picture list of the block to be decoded.
- the inter prediction unit 205 By the inter prediction unit 205 limiting the recursive motion vector search of the chained motion vector prediction to only one or more reference pictures included in the reference picture list of the block to be decoded, the amount of decoding processing can be reduced compared to when such a restriction is not imposed (for example, when the inter prediction unit 205 searches all of the reference pictures stored in the decoded picture buffer 207).
- the inter prediction unit 205 may limit the recursive motion vector search of the chained motion vector prediction to only the reference pictures referenced by the motion vector of the current block to be decoded.
- the inter prediction unit 205 re-searches only for block vectors within the reference picture referenced by the motion vector of the block to be decoded, and generates a chained motion vector using chained motion vector prediction.
- the inter prediction unit 205 may limit the recursive motion vector search of the chained motion vector prediction to only reference pictures, commonly known as collocated pictures, that the block to be decoded can reference in temporal motion vector prediction (TMVP).
- TMVP temporal motion vector prediction
- 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 that are stored in a merge candidate list storing motion vector candidates, and that refer to only those motion vectors within the co-located picture stored in the decoding picture buffer, and adding all of the derived motion vectors.
- the inter prediction unit 205 may search for a chained motion vector using all of those collocated pictures.
- the inter prediction unit 205 may select the collocated picture to search 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 only for collocated pictures with a small POC.
- POC Picture Order Count
- the inter prediction unit 205 may select a collocated picture based on the magnitude of the quantization parameter of the collocated picture. For example, the inter prediction unit 205 may search only for collocated pictures with a large quantization parameter.
- the inter prediction unit 205 may search only for collocated pictures in list L0.
- the inter prediction unit 205 may limit the recursive motion vector search area of the chained 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.
- CTU coding tree unit
- the predetermined number of lines may be one line.
- the predetermined number of lines may be two lines. Or it may be four lines.
- the amount of inter-prediction information required for daisy chain motion vector search in the decoded picture buffer 207 can be reduced.
- 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.
- the inter prediction unit 205 may limit the search depth of recursive motion vectors in daisy chain motion vector prediction for the block to be decoded based on control information (sps_max_num_my_chains) that sets an upper limit on the search depth of recursive motion vectors in daisy chain motion vector prediction for each sequence to be decoded, sent from the decoding unit.
- control information sps_max_num_my_chains
- 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 it may be hierarchical control information that combines these.
- 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 this predetermined fixed value to 1, 2, or 3.
- 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.
- the inter prediction unit 205 may limit the number of merge candidates derived by daisy-chain motion vector prediction for the block to be decoded, based on control information (sps_max_num_cmvp_cand) that sets an upper limit on the search depth for the number of merge candidates derived by daisy-chain motion vector prediction for each sequence to be decoded, sent from the decoding unit.
- control information sps_max_num_cmvp_cand
- 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 it may be hierarchical control information that combines these.
- the inter prediction unit 205 may set a predetermined fixed value for the number of merge candidates derived by daisy-chain motion vector prediction.
- the recursive motion vector search of the chained motion vector prediction may include a search for a block vector.
- 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, they are difficult to find in images captured by a camera.
- the inter prediction unit 205 may limit block vector search based on control information that specifies whether or not block vector search is possible in daisy-chain motion vector prediction for the current block to be decoded.
- 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.
- control information sps_cmvp_bv_search_enabled_flag
- 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 it may be hierarchical control information that combines these.
- the inter prediction unit 205 may limit the reference sources for daisy-chain motion vector prediction based on control information that specifies whether to add at least one or more predetermined positions in the block to be decoded in addition to the center of the block to be decoded as the starting point of the first motion vector in the daisy-chain motion vector prediction for the block to be decoded.
- predetermined positions may be the four corners of the block to be decoded as described above.
- the inter prediction unit 205 may, based on sps_cmvp_multi_position_flag, limit whether to add at least one or more predetermined positions in the block to be decoded by adding the starting point of the first motion vector in the chained motion vector prediction for the block to be decoded to the center of the block to be decoded.
- sps_cmvp_multi_position_flag is control information that specifies whether at least one or more specified positions of the block to be decoded, in addition to the center of the block to be decoded, should be added as the starting point of the first motion vector in daisy-chain motion vector prediction for the block to be decoded.
- 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 it may be hierarchical control information that combines these.
- the daisy chain motion vector is likely to be applied when the quantization parameter of the reference block corresponding to the reference source vector is large.
- quantization noise encoding degradation
- the inter prediction unit 205 can efficiently apply daisy chain motion vectors by controlling whether or not to apply daisy chain motion vectors depending on the quantization parameter of the reference block.
- the inter prediction unit 205 determines not to apply the daisy chain motion vector to the block to be decoded.
- the inter prediction unit 205 determines not to apply the daisy chain motion vector to the block to be decoded.
- the predetermined quantization parameter may be the quantization parameter of the block to be decoded.
- the predetermined quantization parameter may be the slice to be decoded that includes the block to be decoded.
- the predetermined quantization parameter may be the picture to be decoded that includes the block to be decoded.
- 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.
- the predetermined threshold may be 6, 12, 18, or 24.
- the inter prediction unit 205 may control whether or not to apply daisy-chain motion vector prediction depending on the POC.
- the inter prediction unit 205 may control whether or not to apply daisy-chain motion vector prediction depending on the depth of the picture reference structure (the value of Temporal_id).
- the inter prediction unit 205 may determine not to apply a 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 a 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 equal to or greater than a predetermined value.
- the motion vector search processing time for daisy-chain motion vector prediction can be reduced by not applying daisy-chain motion vector prediction.
- the specified 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 the nearest integer.
- the specified value may be a fixed value.
- the specified value may be at least one of 0, 1, 2, 3, 4, and 5.
- the merge candidate list for a normal merge is not reused for an MMVD, GPM, or TM merge
- improved coding efficiency can be expected by applying daisy-chain motion vector prediction to the merge candidates in the merge candidate list for a normal merge, in addition to applying daisy-chain motion vector prediction to the merge candidates in the merge candidate list for each of the MMVD, GPM, and TM merges.
- the inter prediction unit 205 may also apply daisy-chain motion vector prediction to merge candidates in the merge candidate list for merge mode motion vector differential.
- the inter prediction unit 205 may also apply daisy-chain motion vector prediction to merge candidates in the merge candidate list for geometric partitioning mode.
- the inter prediction unit 205 may also apply daisy-chain motion vector prediction to merge candidates in the merge candidate list for template matching merge.
- 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 merge mode motion vector differentials, and chained motion vectors generated for geometric partitioning mode and template matching merge, just as with normal merge.
- Adaptive Motion Vector Prediction - Merge Mode In the adaptive motion vector prediction-merge mode disclosed in the above-mentioned non-patent documents 1 and 2, the motion vector of either list 0 (L0) or list 1 (L1) of the reference picture list is derived by adaptive motion vector prediction (AMVP), i.e., control information. Therefore, if the target of application of the daisy chain motion vector prediction is to apply the 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 selectable in the adaptive motion vector prediction-merge mode increases, and this is expected to improve inter-prediction accuracy and coding efficiency.
- AMVP adaptive motion vector prediction
- the inter prediction unit 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.
- the inter prediction unit 205 may restrict the generated daisy chain motion vector so that it does not refer to reference pictures of motion vectors derived by adaptive motion vector prediction.
- 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 adaptive motion vector prediction-merge mode, just as with normal merging.
- the affine merge disclosed in the above-mentioned Non-Patent Document 1 and Non-Patent Document 2 derives a motion vector for each sub-block in a block to be decoded by affine transformation, and as shown in FIG. 24 , in the case of single prediction (either L0 or L1), two or three control point motion vectors cpMv are derived, and in the case of bi-prediction (both L0 and L1), four or six control point motion vectors cpMv are derived.
- control point motion vectors for L0 and L1 in uni-prediction or bi-prediction all refer to the same reference picture.
- control point motion vectors are derived from merge candidates stored in a merge candidate list for affine merging.
- the inter prediction unit 205 may derive merge candidates to be stored in the merge candidate list for affine merge in the same manner as the methods for deriving merge candidates for affine merge disclosed in Non-Patent Document 1 and Non-Patent Document 2.
- the inter prediction unit 205 may add them to the merge candidate list for affine merging of the block to be decoded.
- the inter prediction unit 205 may generate a control point motion vector for the block to be decoded based on these and add it to the merge candidate list for affine merge.
- the inter prediction unit 205 may add motion vectors derived by recursively searching for motion vectors for at least two or more control point motion vectors stored in the merge candidate list to each of the initial control point motion vectors to generate daisy-chain control point motion vectors and store them in the merge candidate list.
- the inter prediction unit 205 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, it may limit the reference picture searched for each control point motion vector to the same reference picture.
- the inter prediction unit 205 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, it may limit the reference pictures searched for each control point motion vector of L0 and L1 to the same reference picture.
- 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, just as with normal merge.
- 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.
- Adaptive motion vector prediction stores motion vectors accumulated in spatially or temporally adjacent positions as candidates for the motion vector of the block to be decoded in a motion vector candidate list for adaptive motion vectors (hereinafter referred to as the adaptive motion vector candidate list).
- the method for deriving motion vector candidates (MVP: motion vector prediction) from the adaptive motion vector candidate list in the inter prediction unit 205 is as follows.
- 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 these indices.
- the decoding unit 201 decodes flags (mvp_l0_flag, mvp_l1_flag) for deriving motion vector candidates from the motion vector candidate lists 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.
- the inter prediction unit 205 adds the motion vector differentials (MVDs) for L0 and L1 transmitted from the encoding device to the derived MVPs for L0 and L1, respectively, to ultimately derive the motion vectors for L0 and L1.
- VMDs motion vector differentials
- daisy-chain motion vector prediction is applied to generate the motion vector candidates to be stored in the adaptive motion vector candidate list described above.
- a motion vector that references each reference picture is stored for each reference picture. Therefore, motion vectors that reference each reference picture are searched for among motion vectors stored in positions spatially or temporally adjacent to the block to be decoded, and a decision is made as to whether to store the motion vector in the adaptive motion vector candidate list depending on whether the reference picture to be searched for, identified by ref_idx_l0 and ref_idx_l1, is referenced.
- 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 reference the above-mentioned reference picture, it determines not to store the searched motion vector in the adaptive motion vector candidate list.
- the inter prediction unit 205 retains motion vectors that were not stored in the adaptive motion vector candidate list during the motion vector search process, and applies daisy chain motion vector prediction to those motion vectors.
- the inter prediction unit 205 determines to store the daisy-chained motion vector in the adaptive motion vector candidate list, and if the reference picture is not referenced, the inter prediction unit 205 determines not to store the daisy-chained motion vector in the adaptive motion vector candidate list.
- the inter prediction unit 205 may derive motion vector candidates using reference pictures in each of the reference picture lists L0 and L1.
- the inter prediction unit 205 may apply chained motion vector prediction to the motion vector derived using adaptive motion vectors to derive a new motion vector.
- Non-Patent Document 1 discloses adaptive motion vector resolution (AMVR), which quantizes the pixel accuracy of motion vectors, as a technology for reducing the amount of transmitted code for motion vector differentials that make up the motion vector ultimately derived using adaptive motion vectors.
- AMVR adaptive motion vector resolution
- the inter prediction unit 205 may align (round) the final motion vector derived from the chained motion vector to the pixel precision of the motion vector quantized by AMVR.
- the inter prediction unit 205 may, in the recursive motion vector search process when deriving a daisy chain motion vector, align (round) the pixel precision of the searched motion vector to the pixel precision of the motion vector quantized by AMVR.
- Non-Patent Document 1 discloses a flag that controls whether or not AMVR is applied to each block to be decoded, and an index that specifies the pixel accuracy of motion vectors using AMVR.
- 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.
- the inter prediction unit 205 may not match the pixel precision 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 precision of the motion vector ultimately derived by daisy chain motion vector prediction to the pixel precision of the motion vector quantized by AMVR.
- 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.
- the inter prediction unit 205 constructs a merge candidate list and derives a motion vector.
- the reference pictures of the motion vectors stored in the L0 and L1 merge candidate lists point to different time directions (one pointing in the past direction and the other in the future direction from the picture to be decoded that contains the block to be decoded), and the distances of each reference picture from the picture to be decoded are the same (BM condition) - two motion vectors are stored; two motion vectors that do not satisfy the BM condition are pruned without being stored.
- 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.
- the inter prediction unit 205 may construct a merge candidate list for storing new motion vectors that do not satisfy the BM condition and are generated by daisy-chain motion vector prediction, separate from the merge candidate list that stores only motion vectors that satisfy the BM condition.
- the inter prediction unit 205 recursively searches for motion vectors stored in the decoded picture buffer 207 for motion vectors at positions spatially or temporally adjacent or close to the block to be decoded, and adds up all the derived motion vectors to generate a motion vector, which is then used as the motion vector for the block to be decoded. This increases the number of motion vectors available for selection in inter prediction, improving inter prediction accuracy and encoding efficiency.
- the above-described image decoding device 200 may be realized as a program that causes a computer to execute each function (each process).
- Image decoding device 201... Decoding unit 202... Inverse quantization unit 203... Inverse transform unit 204... Intra prediction unit 205... Inter prediction unit 206... Adder 207... Decoded picture buffer 210... Code input unit 220... Image output unit
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本発明に係る画像復号装置200において、インター予測部205は、動きベクトルの候補を格納するマージ候補リストに格納されている復号対象ブロックに空間的又は時間的に隣接又は近接する位置の動きベクトルのうち、参照先が前記復号ピクチャバッファ207に蓄積されているコロケーテッドピクチャ内である動きベクトルのみに限定して新たな動きベクトルを再探索して導出した全ての動きベクトルを加算することで、数珠繋ぎ動きベクトルを生成し、前記数珠繋ぎ動きベクトルを前記復号対象ブロックの動きベクトルの候補として導出する数珠繋ぎ動きベクトル予測を行う。
Description
本発明は、画像復号装置、画像復号方法及びプログラムに関する。
非特許文献1及び非特許文献2では、インター予測について開示されている。
インター予測は、復号対象ブロックの予測画素を、復号対象ピクチャとは異なる復号済みピクチャ(参照ピクチャ)内の復号済み画素(参照画素)から生成する。
また、インター予測は、制御情報を用いて、復号対象ブロックの予測画素の生成に必要な復号対象ブロックの動きベクトルを、復号対象ブロックに空間的又は時間的に隣接又は近接する位置の複数の動きベクトルの候補から選択する。
ITU-T H.266/VVC
M.Coban等、Algorithm description of Enhanced Compression Model 10(ECM 10)、JVET-AE2025、2023年
非特許文献1及び非特許文献2におけるインター予測で選択可能な動きベクトルの候補は、復号対象ブロックに空間的又は時間的に隣接又は近接する位置の動きベクトルに限定されているため、符号化効率に改善の余地があるという問題点があった。
そこで、本発明は、上述の課題に鑑みてなされたものであり、符号化効率の高い画像復号装置、画像復号方法及びプログラムを提供することを目的とする。
本発明の第1の特徴は、画像復号装置であって、符号情報を可変長復号して量子化値及び制御情報を出力する復号部と、前記量子化値を逆量子化して変換係数を出力する逆量子化部と、前記変換係数を逆変換して予測残差画素を出力する逆変換部と、前記制御情報及び復号済み画素からイントラ予測画素を生成するイントラ予測部と、前記復号済み画素を蓄積する復号ピクチャバッファと、前記制御情報及び前記復号ピクチャバッファに蓄積されている前記復号済み画素からインター予測画素を生成するインター予測部と、前記予測残差画素に対して前記イントラ予測画素と及び前記インター予測画素の少なくとも一方を加算して前記復号済み画素を生成する加算器とを備え、前記インター予測部は、動きベクトルの候補を格納するマージ候補リストに格納されている復号対象ブロックに空間的又は時間的に隣接又は近接する位置の動きベクトルのうち、参照先が前記復号ピクチャバッファに蓄積されているコロケーテッドピクチャ内である動きベクトルのみに限定して新たな動きベクトルを再探索して導出した全ての動きベクトルを加算することで、数珠繋ぎ動きベクトルを生成し、前記数珠繋ぎ動きベクトルを前記復号対象ブロックの動きベクトルの候補として導出する数珠繋ぎ動きベクトル予測を行うことを要旨とする。
本発明の第2の特徴は、画像復号方法であって、符号情報を可変長復号して量子化値及び制御情報を出力する工程Aと、前記量子化値を逆量子化して変換係数を出力する工程Bと、前記変換係数を逆変換して予測残差画素を出力する工程Cと、前記制御情報及び復号済み画素からイントラ予測画素を生成する工程Dと、前記復号済み画素を復号ピクチャバッファに蓄積する工程Eと、前記制御情報及び前記復号ピクチャバッファに蓄積されている前記復号済み画素からインター予測画素を生成する工程Fと、前記予測残差画素に対して前記イントラ予測画素と及び前記インター予測画素の少なくとも一方を加算して前記復号済み画素を生成する工程Gとを有し、前記工程Fにおいて、動きベクトルの候補を格納するマージ候補リストに格納されている復号対象ブロックに空間的又は時間的に隣接又は近接する位置の動きベクトルのうち、参照先が前記復号ピクチャバッファに蓄積されているコロケーテッドピクチャ内である動きベクトルのみに限定して新たな動きベクトルを再探索して導出した全ての動きベクトルを加算することで、数珠繋ぎ動きベクトルを生成し、前記数珠繋ぎ動きベクトルを前記復号対象ブロックの動きベクトルの候補として導出する数珠繋ぎ動きベクトル予測を行うことを要旨とする。
本発明の第3の特徴は、コンピュータを、画像復号装置として機能させるプログラムであって、前記画像復号装置は、符号情報を可変長復号して量子化値及び制御情報を出力する復号部と、前記量子化値を逆量子化して変換係数を出力する逆量子化部と、前記変換係数を逆変換して予測残差画素を出力する逆変換部と、前記制御情報及び復号済み画素からイントラ予測画素を生成するイントラ予測部と、前記復号済み画素を蓄積する復号ピクチャバッファと、前記制御情報及び前記復号ピクチャバッファに蓄積されている前記復号済み画素からインター予測画素を生成するインター予測部と、前記予測残差画素に対して前記イントラ予測画素と及び前記インター予測画素の少なくとも一方を加算して前記復号済み画素を生成する加算器とを備え、前記インター予測部は、動きベクトルの候補を格納するマージ候補リストに格納されている復号対象ブロックに空間的又は時間的に隣接又は近接する位置の動きベクトルのうち、参照先が前記復号ピクチャバッファに蓄積されているコロケーテッドピクチャ内である動きベクトルのみに限定して新たな動きベクトルを再探索して導出した全ての動きベクトルを加算することで、数珠繋ぎ動きベクトルを生成し、前記数珠繋ぎ動きベクトルを前記復号対象ブロックの動きベクトルの候補として導出する数珠繋ぎ動きベクトル予測を行うことを要旨とする。
本発明によれば、符号化効率の高い画像復号装置、画像復号方法及びプログラムを提供することができる。
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、以下の実施形態における構成要素は、適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、以下の実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
<第1実施形態>
以下、図1~図24を参照して、本実施形態に係る画像復号装置200について説明する。
以下、図1~図24を参照して、本実施形態に係る画像復号装置200について説明する。
本発明の第1実施形態に係る画像復号装置200は、多様な画像信号(以下、画像)を対象とする。例えば、本実施形態に係る画像復号装置200は、輝度画素及び色差画素で構成されたYUV(YCbCr)画像や、RGBの各画素で構成されたRGB画像や、モノクロ画像を対象とする。ここで、各画像を構成する画素は、所定のビット幅で離散的な値(画素値)を持つ。
図1は、本実施形態に係る画像復号装置200の機能ブロックの一例について示す図である。
図1に示すように、画像復号装置200は、符号入力部210と、復号部201と、逆量子化部202と、逆変換部203と、イントラ予測部204と、インター予測部205と、加算器206と、復号ピクチャバッファ207と、画像出力部220とを有する。
なお、以降、各部の機能説明で「画素」と記載している個所は、画素から構成されたブロック(ユニット)、ブロックの最大サイズであるツリーブロック、ツリーブロックよりも大きなスライスやタイル或いは画像(ピクチャ)であってもよい。
また、図1に示してはいないが、画像復号装置200は、加算器206と復号ピクチャバッファ207との間に、復号済み画素の画素値を修正するループ内フィルタを備えてもよい。
符号入力部210は、画像符号化装置によって符号化された符号情報を取得するように構成されている。
復号部201は、符号入力部210から入力された符号情報から、制御情報並びに量子化値を復号するように構成されている。例えば、復号部201は、かかる符号情報に対して可変長復号を行うことで制御情報及び量子化値を出力するように構成されている。
ここで、量子化値は、逆量子化部202に送られ、制御情報は、復号ピクチャバッファ207、イントラ予測部204及びインター予測部205に送られる。なお、かかる制御情報(シンタックス)は、復号ピクチャバッファ207、イントラ予測部204及びインター予測部205等の制御に必要な情報を含み、シーケンスパラメータセットやピクチャパラメータセットやピクチャヘッダやスライスヘッダ等のヘッダ情報を含んでもよい。
逆量子化部202は、復号部201から送られた量子化値を逆量子化して復号された変換係数とするように構成されている。かかる変換係数は、逆変換部203に送られる。
逆変換部203は、逆量子化部202から送られた変換係数を逆変換して復号された予測残差とするように構成されている。かかる予測残差は、加算器206に送られる。
イントラ予測部204は、復号済み画素と復号部201から送られた制御情報とに基づいて、イントラ予測画素を生成するように構成されている。ここで、復号済み画素は、加算器206を介して得られて復号ピクチャバッファ207に蓄積されるものである。また、イントラ予測画素は、加算器206で予測残差と加算するための予測画素である。なお、イントラ予測画素は、加算器206に送られる。
ここで、イントラ予測部204によって行われる予測は、非特許文献1及び非特許文献2で開示されているイントラ予測であってもよい。或いは、イントラ予測部204によって行われる予測は、非特許文献1及び非特許文献2で開示されているイントラブロックコピー又はイントラテンプレートマッチング予測であってもよい。
復号ピクチャバッファ207は、加算器206から送られる復号済み画素及びインター予測部205から送られる復号済み画素に対応するインター予測情報について累積的に蓄積する。
ここで、復号ピクチャバッファ207に蓄積される復号済み画素及びかかる復号済み画素に対応するインター予測情報は、インター予測部205から参照される。インター予測情報の詳細については後述する。
インター予測部205は、復号ピクチャバッファ207を参照して得られる復号済み画素及びインター予測情報と復号部201から送られた制御情報とに基づいて、インター予測画素を生成するように構成されている。
さらに、インター予測部205は、生成したインター予測画素を加算部206に送り、かかるインター予測画素の生成に利用したインター予測情報を復号対象画素に対応するものとして復号ピクチャバッファ207に送る。
ここで、インター予測部205によって行われる予測は、非特許文献1及び非特許文献2で開示されているインター予測であってもよい。或いは、インター予測部205によって行われる予測は、非特許文献1及び非特許文献2で開示されているイントラブロックコピーであってもよい。
加算器206は、逆変換部203から送られる予測残差と、入力されたイントラ予測画素及びインター予測画素の少なくとも一方を加算して復号済み画素を算出するように構成されている。かかる復号済み画素は、画像出力部220、復号ピクチャバッファ207及びイントラ予測部204へ送られる。
画像出力部220は、加算器206から送信された復号済み画素を出力するように構成されている。
以降では、本実施形態に係る画像復号装置200の特徴的構成であるインター予測部205及び復号ピクチャバッファ207の役割について、インター予測部205によって行われる予測がインター予測であることを事例として説明する。
<インター予測部205及び復号ピクチャバッファ207の基本的な役割>
インター予測部205の基本的な役割は、後段の加算器206において復号対象ブロックを高精度に予測するために、復号対象ブロックに対して1つ以上の動きベクトル(Mv:Motion vector)を導出して、復号対象ブロックが属する復号対象ピクチャとは異なる復号済みピクチャ(以下、参照ピクチャ)内でMvが参照する復号済みブロック(以下、参照ブロック)の画素(以下、参照画素)を予測すること、すなわち、インター予測を行うことにある。
インター予測部205の基本的な役割は、後段の加算器206において復号対象ブロックを高精度に予測するために、復号対象ブロックに対して1つ以上の動きベクトル(Mv:Motion vector)を導出して、復号対象ブロックが属する復号対象ピクチャとは異なる復号済みピクチャ(以下、参照ピクチャ)内でMvが参照する復号済みブロック(以下、参照ブロック)の画素(以下、参照画素)を予測すること、すなわち、インター予測を行うことにある。
図2に、インター予測の概念図を示す。具体的には、図2は、インター予測において、復号対象ピクチャ(CurPic)内にある復号対象ブロック(CurBlk)のインター予測画素を生成するために、インター予測部205で導出された2つの動きベクトルのMvL0k及びMvL1kに基づいて異なる2つの参照ピクチャ(RerPicL0k及びRerPicL1k)内の参照ブロック(RerBlkL0k及びRerBlkL1k)が参照される例を示す。
ここで、L0及びL1は、復号対象ピクチャから参照可能な参照ピクチャが記述されたリスト(参照ピクチャリスト)の番号を示し、kは、後述する動きベクトルの導出方法で説明する動きベクトルを特定するための制御情報(インデックス)の値に対応する。
本実施形態に係る画像復号装置200は、非特許文献1及び非特許文献2のように、異なる2つの参照ピクチャリストとして、リスト0(L0)及びリスト1(L1)を復号対象ピクチャごとに導出してもよい。
ここで、復号ピクチャバッファ207が、復号部201で復号される制御情報に基づいて、復号対象ピクチャごとの参照ピクチャリストについて導出してもよい。
例えば、制御情報は、参照ピクチャリスト内に含めるべき参照ピクチャ数や復号対象ピクチャに対する参照ピクチャの候補(ピクチャ参照構造)等の情報を含んでいてもよい。
インター予測部205における動きベクトルの導出方法の詳細については後述する。インター予測部205におけるインター予測画素の生成方法の概要は、以下の通りである。
インター予測部205は、単一の参照ブロックからインター予測画素を生成してもよいし、図2に示すように、2つの参照ブロックを用いてインター予測画素を生成してもよいし、2つ以上の参照ブロックを用いてインター予測画素を生成してもよい。
ここで、インター予測部205は、2つの参照ブロックを用いてインター予測画素を生成する方法として、以下の方法を適用してもよい。
一例として、インター予測部205は、2つの参照ブロックの画素値を単純平均してインター予測画素を生成してもよい。
他の例として、インター予測部205は、2つの参照ブロックの画素値をブロック単位で、所定の重み値を用いて、重みづけ平均でインター予測画素を生成してもよい。
インター予測部205は、かかるブロック単位の重み付け平均の技術として、非特許文献1及び非特許文献2で開示されているブロック単位の重み付け双予測(BCW:Bi-prediction with CU-level Weights)を適用してもよい。
なお、非特許文献1及び2では、BCWにおいて、単純平均、すなわち、1:1の重み値も含めて複数の重み値が選択可能であり、かかる重み値は、内部パラメータ(bcwIdx、第3内部パラメータ)の値で特定される。
ここで、インター予測部205が、制御情報或いは復号ピクチャバッファ207からの継承によって、bcwIdxについて導出する。継承の詳細については、後述する。
他の例として、インター予測部205は、復号対象ブロックを所定直線で二分割し、二分割された各領域に対応する参照ブロックの画素値を分割した直線からの距離に応じた重み値を用いて加重平均することで、インター予測画素を生成してもよい。
インター予測部205は、かかるブロックを直線で二分割した領域ごとの重み付け平均の技術として、非特許文献1及び非特許文献2で開示されている幾何学分割モード(GPM:Geometric Partitioning Mode)を適用してもよい。
ここで、インター予測部205は、動きベクトルが参照ブロック内の小数画素精度位置を参照する場合、かかる小数画素位置の上下左右方向の整数画素精度位置にある参照画素値から、かかる小数画素精度位置の参照画素値を導出するための補間フィルタを用いて、インター予測画素を生成してもよい。
さらに、インター予測部205は、インター予測画素を生成する際に、非特許文献1及び非特許文献2で開示されているインター予測向けのカットオフ周波数が異なる2つの補間フィルタを適応的に適用してもよい。
かかる2つの補間フィルタのうち、カットオフ周波数が低い補間フィルタは、切替補間フィルタ(SIF:Switchable Interpolation Filter)と呼称されている。
インター予測部205は、非特許文献1及び非特許文献2と同様に、動きベクトルが半画素精度位置を参照する場合で、且つ、SIFの適用有無を特定する内部パラメータ(hpelIfIdx、第1内部パラメータ)がSIFを適用することを示す場合に、SIFを適用してもよい。
なお、インター予測部205が、制御情報或いは復号ピクチャバッファ207からの継承によって、hpelIfIdxについて導出する。継承の詳細については、後述する。
他方、インター予測部205は、動きベクトルが小数画素精度位置を参照する場合、かかる小数画素精度位置の最近傍の整数画素精度位置に、動きベクトルの参照先を丸めて(クリップして)、補間フィルタを適用せずに、インター予測画素を生成してもよい。
また、インター予測部205は、最終的なインター予測画素の生成に際して、非特許文献2で開示されている局所輝度補償(LIC:Local Illumination Compensation)を適用してもよい。
LICは、復号対象ブロックと参照ブロックそれぞれに隣接する復号済み画素に基づいて、参照ブロック内の参照画素値を線形予測で補正する技術である。
インター予測部205は、非特許文献1と非特許文献2と同様に、LICの適用有無を制御する内部パラメータ(licFlag、第2内部パラメータ)がLICを適用することを示す場合に、LICを適用してもよい。
なお、インター予測部205が、制御情報或いは復号ピクチャバッファ207からの継承によって、licFlagについて導出する。継承の詳細については、後述する。
また、インター予測部205は、最終的なインター予測画素の生成に際して、非特許文献2で開示されている複数仮説予測(MHP:Multi-Hypothesis Prediction)を適用してもよい。
具体的には、インター予測部205は、最終的に導出された少なくとも1つ以上の数珠繋ぎ動きベクトルとその数珠繋ぎ動きベクトルの導出元(参照元)になった1つの動きベクトルを用いて、最終的なインター予測画素を生成してもよい。
ここで、3つ以上のインター予測画素を生成する手段として、非特許文献2には、複数仮説予測(MHP:Multi-Hypothesis Prediction)が開示されている。
MHPのアルゴリズムに基づき、インター予測部205は、上述の最終的に導出された少なくとも1つ以上の数珠繋ぎ動きベクトルとその数珠繋ぎ動きベクトルの導出元(参照元)になった1つの動きベクトルを用いて、最終的なインター予測画素を生成してもよい。以下に、具体的な手順を説明する。
まず、インター予測部205は、マージ候補リストにおいて1つ以上の数珠繋ぎ動きベクトルに加えて、当該数珠繋ぎ動きベクトルの導出元(参照元)になった1つの動きベクトルをMHP向け動きベクトルとして格納する。
次に、復号ピクチャバッファ207は、当該MHP動きベクトルを3本目の動きベクトル(動き情報)として蓄積する。
次に、インター予測部205は、MHPによる最終的なインター予測画素生成において、マージ候補リストに格納されたマージ候補に対応する最大2つの動きベクトルと前記MHP動きベクトルにより、最終的なインター予測画素値を以下のように合成(重み付き平均)して生成してもよい。
PFinal=(1-α)PMerge+αPMHP (式0)
ここで、PFinal、PMerge、PMHP及びαは、それぞれ最終的なインター予測画素、マージ候補に対応する動きベクトルの参照画素、MHP動きベクトルの参照画素、MHP重み係数である。
ここで、PFinal、PMerge、PMHP及びαは、それぞれ最終的なインター予測画素、マージ候補に対応する動きベクトルの参照画素、MHP動きベクトルの参照画素、MHP重み係数である。
MHP重み係数は、定数であってもよい。例えば、MHP重み係数には、非特許文献2で開示されている1/4或いは-1/8が固定的に与えられてもよい。或いは、復号部201が、MHP重み係数の値を特定する制御情報を復号又は推定し、MHP重み係数を導出してもよい。
MHPは、少なくとも3つ以上の参照ブロックの参照画素値から最終的なインター予測画素を重み付け平均により生成する技術である。
インター予測部205は、非特許文献2と同様に、MHPの適用有無を特定する内部パラメータ(mhpFlag、第4内部パラメータ)がMHPを適用することを示す場合に、MHPを適用してもよい。
なお、インター予測部205が、制御情報或いは復号ピクチャバッファ207からの継承によって、mhpFlagについて導出する。継承の詳細については、後述する。
インター予測部205は、加算器206に対して、復号対象ブロックに対するインター予測画素を送ると共に、復号ピクチャバッファ207に対して、かかるインター予測画素の生成に利用した動きベクトル、参照ピクチャリスト内で動きベクトルが参照した参照ピクチャを特定するためのインデックス(参照インデックス)、参照インデックスに対応する参照ピクチャのピクチャ出力順を表すカウンタ(POC:Picture Order Count)を送る。以下で、これらインター予測画素の生成に利用した動きベクトル、参照インデックス、参照インデックスに対応するPOCをインター予測情報と呼称する。 さらに、インター予測部205はかかるインター予測情報に上述のインター予測画素の生成方法を変更する内部パラメータであるbcwIdx、hpelIfIdx、licFlag又はmhpFlagの少なくともいずれか1つ又は全部を含めて送ってもよい。
復号ピクチャバッファ207は、加算器206から送られる復号対象ブロックの復号済み画素に加えて、かかる復号済み画素に対応する復号対象ブロックのインター予測情報を蓄積する。
復号ピクチャバッファ207は、所定のサイズ(画素数)で、かかるインター予測情報を蓄積してもよい。例えば、復号ピクチャバッファ207は、非特許文献1及び非特許文献2で開示されているような復号対象ブロックの最小サイズ(4×4画素)単位で、かかるインター予測情報を蓄積してもよい。
復号ピクチャバッファ207が、復号対象ブロックの最小サイズで、かかるインター予測情報を蓄積することで、かかるインター予測情報が未来に復号される復号対象ブロックから参照される際のインター予測精度を向上することができる。
復号ピクチャバッファ207は、復号対象ピクチャ単位で復号済み画素を蓄積する。或いは、復号ピクチャバッファ207は、復号対象スライス単位で復号済み画素を蓄積してもよい。以降では、復号対象ピクチャ単位で復号済み画素を蓄積するケースを一例として説明する。
復号ピクチャバッファ207は、蓄積した復号対象ピクチャ単位の復号済み画素及び当該復号済み画素に対応するインター予測情報が未来の復号対象ピクチャ又は復号対象ブロックから参照ピクチャ及び参照ブロックとして参照されないことが特定される場合、かかる復号対象ピクチャ単位の復号済み画素及び当該復号済み画素に対応するインター予測情報を順次削除してもよい。かかる構成によれば、復号対象ピクチャバッファ207に蓄積される情報量を削減できる。
復号ピクチャバッファ207は、復号部201で復号される制御情報に基づいて、蓄積する復号対象ピクチャ数及び復号対象ピクチャ同士の参照ピクチャ構造を導出してもよい。
変更例として、復号ピクチャバッファ207は、復号対象ピクチャに加えて復号対象ピクチャ外の所定領域にインター予測画素が存在する場合、かかるインター予測画素を追加で蓄積してもよい。
図3は、非特許文献1及び非特許文献2の各々で開示されている復号ピクチャバッファ207に蓄積される復号対象ピクチャ外が未来の復号対象ブロックから参照される場合に参照される参照画素値について説明するための図である。
図3に示すように、非特許文献1(VVC:Versatile Video Coding)では、復号対象ピクチャ外の所定範囲内で未来の復号対象ブロックから参照される場合、最近傍の復号対象ピクチャ境界にある画素値を複製して参照画素値を生成する。
VVCでは、かかる所定範囲(パディング領域)として復号対象ブロックの幅の最大サイズ(画素数)に16画素を加算した範囲が指定されている。
非特許文献2(ECM:Enhanced Compression Model)では、図3に示すように、復号対象ピクチャ外とパディング領域との間に、復号対象ブロックのインター予測画素値を未来の復号対象ブロックから参照できる領域(インター予測パディング領域)として所定範囲だけが蓄積される。
これにより、復号対象ピクチャ外が未来の復号対象ブロックから参照されても復号対象ブロックのインター予測画素値があるため、未来の復号対象ブロックのインター予測精度が向上する。
図4は、図3で説明したインター予測パディング領域が生成される概念図である。
図4に示すように、復号対象ブロックに対応する参照ブロックの隣接ブロックがインター予測画素を有する場合、復号対象ブロックが復号対象ピクチャに接していても、復号対象ピクチャ外にインター予測画素を生成できるため、復号ピクチャバッファ207は、図3に示すインター予測パディング領域を蓄積できる。
<インター予測部における動きベクトルの導出方法>
以下、図5~図17を参照して、本実施形態に係る画像復号装置200のインター予測部205における動きベクトルの導出方法について説明する。
以下、図5~図17を参照して、本実施形態に係る画像復号装置200のインター予測部205における動きベクトルの導出方法について説明する。
図5は、インター予測部205における動きベクトルの導出方法であるマージ候補リストの一例を示す図である。
マージ候補リストは、非特許文献1及び非特許文献2で開示されているマージ(マージモード)で動きベクトルを導出するためにインター予測部205が構築するインター予測情報の候補(すなわち、マージ候補)が格納されたリストである。
インター予測部205は、かかるマージ候補リスト内にある複数のマージ候補の中から、復号部201から送られるマージ候補リスト内のマージ候補を特定するためのインデックス(merge_idx)に基づき、マージ候補を取り出してインター予測画素の生成に利用するインター予測情報とする。
マージ候補リスト内に格納されるマージ候補数の上限は、固定値であってもよいし、可変値であってもよい。可変値である場合は、例えば、非特許文献1及び非特許文献2のように、シーケンスパラメータセット等に制御情報を設けて、かかる制御情報に基づき、かかる可変値を設定することができる。
インター予測部205は、復号部201から送られる1つ以上のmerge_idxに基づいて、インター予測画素の生成に利用するインター予測情報をマージ候補リスト内から特定する。
例えば、インター予測部205は、上述のGPMに対しては、復号対象ブロックを直線で二分割した各領域に対してmerge_idxを1つずつ復号してインター予測情報を導出してもよい。
図5に示すように、インター予測部205は、マージ候補リストのL0及びL1に対応するインター予測情報(マージ候補)を格納する。
なお、図5の例では、インター予測部205は、インター予測情報として、動きベクトル及び参照インデックスのみ記載しているが、これらに加えて、上述のインター予測画素の生成方法を変更する内部パラメータであるbcwIdx、hpelIfIdx、licFlag又はmhpFlagの少なくともいずれか1つ以上又は全部を格納してもよい。
インター予測部205は、マージ候補リスト内に、インター予測情報、すなわち、マージ候補として、復号対象ブロックに空間的又は時間的に隣接又は近接する位置のインター予測情報を探索して追加してもよい。
一例として、インター予測部205は、非特許文献1及び非特許文献2で開示されている複数種類のマージ候補の探索を組み合わせて適用してもよい。
図6は、非特許文献1及び非特許文献2で開示されている通常マージ(Regular merge)における複数種類のマージ候補の名称及びこれらのマージ候補の導出順序を示している。
具体的には、非特許文献1(VVC)では、インター予測部205が、空間マージ候補(Spatial merge candidates)、時間動きベクトル予測(TMVP:Temporal Motion Vector Prediction)候補(TMVP candidates)、ヒストリーベース動きベクトル予測(HMVP:History-based Motion Vector Prediction)候補(HMVP candidates)、ペアワイズマージ候補(Pairwise merge candidates)の順で、これらのマージ候補の利用有無について確認する。
非特許文献2(ECM)では、インター予測部205は、非特許文献1の上述のマージ候補に加えて、空間マージ候補とTMVP候補との間で、非隣接空間マージ(Non-adjacent(NA) spatial merge)候補(NA-spatial merge candidates)の利用有無について確認する。
各マージ候補の概要は、以下の通りである。
図7は、復号対象ブロックにおける空間マージ候補及びTMVP候補の探索位置を示す図である。
図7に示すように、空間マージ候補において、インター予測情報は、復号対象ブロック(CurBlk)にそれぞれ隣接した左下(A0)、左(A1)、右上(B0)、上(B1)、左上(B2)の各位置で探索される。
すなわち、空間マージ候補では、復号対象ブロック(CurBlk)に空間的に隣接する位置のインター予測情報が用いられる。
また、TMVP候補において、復号対象ブロックとは異なるピクチャ(参照ピクチャ)で、図7に示す復号対象ブロック(CurBlk)の中央右下(Col)及び復号対象ブロック(CurBlk)外の右下(H)の各位置のインター予測情報が探索される。
すなわち、TMVP候補では、復号対象ブロックに時間的に隣接する位置のインター予測情報が用いられる。
HMVP候補及び非隣接空間マージ候補では、復号対象ブロックに空間的に離れた(近接する)位置のインター予測情報が用いられる。
特に、HMVP候補では、FIFO式のインター予測情報を格納可能なテーブルを構築し、新規のインター予測情報が探索されるごとに一番古いインター予測情報がテーブルから捨てられて、かかる新規のインター予測情報がテーブルに追加される。
本実施形態に係る画像復号装置200のインター予測部205は、非特許文献1及び非特許文献2で開示されているHMVP候補及び非隣接空間マージ候補と同様に、インター予測情報を探索する位置やHMVP候補用のテーブルのサイズを設計できる。
加えて、インター予測部205は、上述の通常マージにおけるマージ候補の探索において、探索対象のインター予測情報に基づく参照ブロックに隣接する復号済み画素(参照ブロックのテンプレート)と復号対象ブロックに隣接する復号済み画素(復号対象ブロックのテンプレート)との差分(以下、テンプレートマッチングコスト)が小さくなるように、探索対象のインター予測情報の参照ブロックの周辺画素から新たな参照ブロック位置を再探索して、インター予測情報(動きベクトル)を修正してもよい。
この一例として、インター予測部205は、非特許文献1及び非特許文献2で開示されているテンプレートマッチングマージを適用してもよい。
加えて、インター予測部205は、上述の通常マージにおけるマージ候補リストからのマージ候補の選択において、L0のインター予測情報を制御情報から導出し、かかる制御情報から導出されたL0のインター予測情報に基づく参照ブロックのテンプレートに対して、マージ候補リストのL1に格納されているインター予測情報に基づく参照ブロックのテンプレートの差分が最小となるマージ候補をL1のマージ候補として選択してもよい。
インター予測部205は、かかる制御情報から導出されたL0のインター予測情報に基づいて、L1のマージ候補(すなわち、インター予測情報)が導出できるため、L0のインター予測情報の導出に必要な制御情報に加えてL1のインター予測情報を導出するためにmerge_idxの復号を必要としない。
この一例として、インター予測部205は、非特許文献1及び非特許文献2で開示されている適応動きベクトル予測-マージモード(Adaptive motion vector Prediction-Merge mode)を適用してもよい。
変更例として、インター予測部205は、上述の例においてL0及びL1を逆にしてもよい。すなわち、インター予測部205は、L1のインター予測情報を制御情報で導出し、L0のインター予測情報をマージ候補リストから導出してもよい。
加えて、インター予測部205は、復号対象ブロックを分割したサブブロック単位でのインター予測情報を導出するマージ向けのマージ候補リストを構築してインター予測情報を導出してもよい。
この例として、インター予測部205は、非特許文献1及び非特許文献2で開示されているサブブロックTMVP(SbTMVP)或いはアフィンマージ(Affine merge)向けのマージ候補リストを構築してインター予測情報を導出してもよい。
<1.数珠繋ぎ動きベクトル予測の基本概念(数珠繋ぎ動きベクトルの導出)>
上述したインター予測部によるインター予測情報(以降では、説明の簡略化のために、動きベクトルと表記)の導出方法は、いずれも復号対象ブロックに空間的又は時間的に隣接又は近接する位置に蓄積されているものに限定されている。
上述したインター予測部によるインター予測情報(以降では、説明の簡略化のために、動きベクトルと表記)の導出方法は、いずれも復号対象ブロックに空間的又は時間的に隣接又は近接する位置に蓄積されているものに限定されている。
符号化効率の更なる改善のために、インター予測部205は、復号対象ブロックに空間的又は時間的に隣接又は近接する位置の動きベクトルに対して復号ピクチャバッファ207に蓄積されている動きベクトルを再帰的に探索して導出される動きベクトルを加算して生成される動きベクトルを、復号対象ブロックの動きベクトルとして導出してもよい。
ここで、復号対象ブロックに空間的又は時間的に隣接又は近接する位置の動きベクトルを起点に再帰的(数珠繋ぎ)に復号ピクチャバッファ207に蓄積されている動きベクトルを探索して新たな動きベクトル(数珠繋ぎ動きベクトル)を生成する技術について、本明細書では「数珠繋ぎ動きベクトル予測(CMVP:Chained Motion Vector Prediction)」と呼ぶ。以降で、かかる数珠繋ぎ動きベクトル予測の技術内容について詳述する。
図8~図17を用いて、数珠繋ぎ動きベクトル予測における数珠繋ぎ動きベクトルの導出方法を説明する。
図8は、数珠繋ぎ動きベクトル予測における数珠繋ぎ動きベクトルの導出方法の一例を示す図である。
図8に示すように、インター予測部205は、マージ候補リストに格納されている任意のマージ候補に対応するL0の動きベクトルMvL0k(0)及び参照インデックスを起点に再帰的(数珠繋ぎ)に復号ピクチャバッファ207に蓄積されている動きベクトルを探索して新たな動きベクトルを生成する。
例えば、インター予測部205は、(式1)及び(式2)に示すように、参照ピクチャRefPicL0k(m)の参照ブロックRefBlkに対して数珠繋ぎ動きベクトル予測で生成される新たな動きベクトル及び参照ピクチャについて導出できる。
MvL0k/m=MvL0k(0)+MvL0k(1)+MvL0k(2)+…+MvL0k(m) (式1)
RefPicL0k/m=RefPicL0k(m) (式2)
つまり、数珠繋ぎ動きベクトル予測で生成される新たな動きベクトルMvL0k/mは、再帰的(数珠繋ぎ)に復号ピクチャバッファ207に蓄積されている動きベクトルを探索して導出される全ての動きベクトルを加算して算出され得る。
RefPicL0k/m=RefPicL0k(m) (式2)
つまり、数珠繋ぎ動きベクトル予測で生成される新たな動きベクトルMvL0k/mは、再帰的(数珠繋ぎ)に復号ピクチャバッファ207に蓄積されている動きベクトルを探索して導出される全ての動きベクトルを加算して算出され得る。
また、数珠繋ぎ動きベクトル予測で生成される新たな参照ピクチャは、MvL0k/mが参照する参照ピクチャである。
図9は、数珠繋ぎ動きベクトル予測における数珠繋ぎ動きベクトルの導出方法の一例を示す図である。
図9に示すように、インター予測部205は、数珠繋ぎ動きベクトル予測において、動きベクトルの探索に加えてブロックベクトル(同一ピクチャ内の参照先を示すベクトル)を再帰的な探索対象に追加してもよい。
例えば、ブロックベクトル(Bv:Block vector)が追加される場合、参照ピクチャRefPicL0k(m)の参照ブロックRefBlkに対して数珠繋ぎ動きベクトル予測で生成される新たな動きベクトルの導出式には、(式3)に示すように、Bvが追加される。
MvL0k/m=MvL0k(0)+Bvk(0)+MvL0k(1)+MvL0k(2)+…+MvL0k(m) (式3)
図8及び図9で示した数珠繋ぎ動きベクトルの導出方法に関する変更例として、インター予測部205は、数珠繋ぎ動きベクトルの探索の起点となるベクトル(初期ベクトル)としてブロックベクトルを用いてもよい。
図8及び図9で示した数珠繋ぎ動きベクトルの導出方法に関する変更例として、インター予測部205は、数珠繋ぎ動きベクトルの探索の起点となるベクトル(初期ベクトル)としてブロックベクトルを用いてもよい。
具体的には、以下の(式4)に示すように、右辺の最初のベクトル(初期ベクトル)がBvk(0)であってもよい。
MvL0k/m=Bvk(0)+MvL0k(1)+MvL0k(2)+…+MvL0k(m) (式4)
スクリーン画像素材やゲーム画像素材は、カメラ撮影画像素材と比較して、復号対象ピクチャ内にブロックベクトルを持ちやすい。そのため、数珠繋ぎ動きベクトルの導出のための初期ベクトルとしてブロックベクトルが選択できるようになれば、スクリーン画像素材やゲーム画像素材において、数珠繋ぎ動きベクトルが導出されやすくなり、結果として符号化性能が改善する効果が期待できる。
スクリーン画像素材やゲーム画像素材は、カメラ撮影画像素材と比較して、復号対象ピクチャ内にブロックベクトルを持ちやすい。そのため、数珠繋ぎ動きベクトルの導出のための初期ベクトルとしてブロックベクトルが選択できるようになれば、スクリーン画像素材やゲーム画像素材において、数珠繋ぎ動きベクトルが導出されやすくなり、結果として符号化性能が改善する効果が期待できる。
変更例として、インター予測部105は、数珠繋ぎ動きベクトル予測の初期ベクトルとしてブロックベクトルが利用できるかどうかを、シーケンス単位の制御情報で制御してもよい。
具体的には、復号部201は、復号対象シーケンス単位でインター予測部205が数珠繋ぎ動きベクトル予測の初期ベクトルとしてブロックベクトルを利用できるかどうかを特定するフラグ(sps_cmvp_initial_bv_enabled_flag)を復号し、インター予測部205は、その復号結果に基づき、数珠繋ぎ動きベクトル予測の初期ベクトルとしてブロックベクトルが利用できるかどうかを制御してもよい。
図10は、双予測(すなわち、L0及びL1に異なる2つの動きベクトルを用いたインター予測)を含めた動きベクトルの再帰的な探索例を示す図である。図11は、双予測を含めた動きベクトルの再帰的な探索により導出される数珠繋ぎ動きベクトルの一例を示す図である。
図10及び図11に示すように、インター予測部205は、数珠繋ぎ動きベクトル予測において、復号ピクチャバッファ207に蓄積されている動きベクトルの各探索リスト番号(L0又はL1)と各探索深度(又は、各探索回数)とを用いて、参照元である1つの動きベクトルから1つ以上(図10及び図11の例では、最大2つ)の動きベクトルを新たに探索して導出し、1つ以上の新たに導出された各動きベクトルに対して既に導出されている全ての動きベクトルを加算して数珠繋ぎ動きベクトルMvL0k/mを生成する。
図12及び図13は、非特許文献1及び非特許文献2で開示されている通常マージの複数種類のマージ候補の探索後に、数珠繋ぎ動きベクトル予測候補を探索する例を示す図である。
図12及び図13に示すように、インター予測部205は、所定のマージ候補の探索後に、数珠繋ぎ動きベクトル予測候補を探索してもよい。
例えば、インター予測部205は、図12に示すように、VVCでは、TMVP候補の探索後に、数珠繋ぎ動きベクトル予測候補を探索してもよい。
数珠繋ぎ動きベクトル予測は、復号ピクチャバッファ207に蓄積されている復号対象ピクチャではなく参照ピクチャの動きベクトルを用いて新たな動きベクトルを探索する性質上、TMVPが復号対象シーケンス又は復号対象ピクチャ群又は復号対象ピクチャ又は復号対象スライスで有効でなければ、有効にはならない。
したがって、TMVP候補の探索後に数珠繋ぎ動きベクトル予測候補を探索することは、動きベクトルの導出方法として自然な設計方法といえる。
図12の変更例として、インター予測部205は、図13に示すように、VVC及びECMにおいて、HMVP候補の探索後に、数珠繋ぎ動きベクトル予測候補を探索してもよい。
数珠繋ぎ動きベクトル予測は、再帰的な動きベクトルの探索により新たな動きベクトルを生成する性質上、マージ候補リスト内に少なくとも1つのマージ候補が格納されている状態で適用しなければならない。
図13に示すように、マージ候補リストに対して1つ以上の動きベクトル候補の格納が期待できるHMVP候補の探索後に数珠繋ぎ動きベクトル予測候補を探索することで、数珠繋ぎ動きベクトルにより新たな動きベクトルが生成される可能性が高まる。
その他の変更例として、インター予測部205は、図12に示すように、ECMにおいて、空間マージ候補の探索後に、数珠繋ぎ動きベクトル予測候補を探索してもよい。
図7において空間マージ候補の探索位置を示したが、例えば、空間マージ候補の探索位置を増やせば、マージ候補リスト内に1つ以上の動きベクトル候補が格納される可能性が高まり、数珠繋ぎマージ候補により新たな動きベクトル候補が生成されやすくなる。
図14~図17は、数珠繋ぎ動きベクトル予測候補の導出対象であるマージ候補及び数珠繋ぎ動きベクトル予測候補が追加されるマージ候補リスト内の位置(インデックス番号)の一例を示す図である。
なお、図14~図17では、技術内容の説明を簡略化するために、マージ候補リスト内に格納されるインター予測情報として動きベクトルのみ記載しているが、上述した参照インデックスについても格納される。
また、インター予測部205は、動きベクトル及び参照インデックス以外に、上述したインター予測画素生成方法を変更する内部パラメータであるbcwIdx、hpelIfIdx、licFlag、mhpFlagを格納してもよい。
図14に示すように、インター予測部205は、所定のマージ候補をマージ候補リストに格納した後で、マージ候補リスト内に格納されている最初のマージ候補から順に数珠繋ぎ動きベクトル予測を適用し、各マージ候補に対する数珠繋ぎ動きベクトル予測で生成される新たなマージ候補の全てをマージ候補リスト内に順々に格納してもよい。
ここで、所定のマージ候補は、図12及び図13を用いて説明した通常マージにおける複数種類のマージ候補のいずれかであってもよいし、或いは、所定数(merge_idxの所定番号)のマージ候補であってもよい。
かかる所定数は、固定値として設定されてもよいし、復号対象シーケンス又は復号対象ピクチャ群又は復号対象ピクチャ又は復号対象スライス単位の制御情報を用いて、復号対象シーケンス又は復号対象ピクチャ群又は復号対象ピクチャ又は復号対象スライス単位で可変値として設定されてもよい。
図14の変更例として、インター予測部205は、図15に示すように、所定のマージ候補をマージ候補リストに格納した後で、マージ候補リスト内に格納されている最初のマージ候補から順に数珠繋ぎ動きベクトル予測を適用し、各マージ候補に対する数珠繋ぎ動きベクトル予測の各探索深度で生成された新たな数珠繋ぎ動きベクトル(すなわち、マージ候補)をマージ候補リスト内に順々に格納してもよい。
図14及び図15の変更例として、インター予測部205は、図16に示すように、マージ候補リストに最初のマージ候補が格納された後で、当該マージ候補から順に数珠繋ぎ動きベクトル予測を適用し、各マージ候補に対する数珠繋ぎ動きベクトル予測で生成された新たな数珠繋ぎ動きベクトル(すなわち、マージ候補)の全てをマージ候補リスト内に順々に格納してもよい。
図14~図16の変更例として、インター予測部205は、図17に示すように、マージ候補リストに最初のマージ候補が格納された後で、当該マージ候補から順に数珠繋ぎ動きベクトル予測を適用し、各マージ候補に対する数珠繋ぎ動きベクトル予測の各探索深度で生成された新たな数珠繋ぎ動きベクトル(すなわち、マージ候補)をマージ候補リスト内に順々に格納してもよい。
図14~図17の変更例として、インター予測部205は、各マージ候補リストに対する数珠繋ぎ動きベクトル予測の各探索深度を用いて生成された数珠繋ぎ動きベクトルと、かかる各探索深度と異なる探索深度で生成された数珠繋ぎ動きベクトルとを組み合わせて、新たなマージ候補を生成してもよい。
図14~図17の変更例として、インター予測部205は、各マージ候補リストに対する数珠繋ぎ動きベクトル予測の各探索リスト番号又は各探索深度を用いて生成された数珠繋ぎ動きベクトルと、かかる各探索リスト番号又は各探索深度と異なる探索リスト番号又は探索深度を用いて生成された数珠繋ぎ動きベクトルとを組み合わせて、新たなマージ候補を生成してもよい。
<2.数珠繋ぎ動きベクトル予測候補の剪定処理>
図18を用いて、本実施形態に係る画像復号装置200のインター予測部205が、数珠繋ぎ動きベクトル予測によって導出した数珠繋ぎ動きベクトルに対応するマージ候補(上述の数珠繋ぎ動きベクトル予測候補)をマージ候補リストに追加する場合の剪定処理を説明する。
図18を用いて、本実施形態に係る画像復号装置200のインター予測部205が、数珠繋ぎ動きベクトル予測によって導出した数珠繋ぎ動きベクトルに対応するマージ候補(上述の数珠繋ぎ動きベクトル予測候補)をマージ候補リストに追加する場合の剪定処理を説明する。
図18は、本実施形態に係る画像復号装置200のインター予測部205が、数珠繋ぎ動きベクトル予測によって導出した数珠繋ぎ動きベクトルに対応するマージ候補をマージ候補リストに追加する場合の剪定処理の一例を示す図である。
インター予測部205は、所定条件に基づいて数珠繋ぎ動きベクトル予測によって導出した数珠繋ぎ動きベクトルに対応するマージ候補を追加するかどうかを判定する。
具体的には、図18に示すように、インター予測部205は、ステップS000において、所定条件を満たすと判断した場合に、ステップS002において、数珠繋ぎ動きベクトル予測によって導出した数珠繋ぎ動きベクトルに対応するマージ候補を追加しないと判定する。
一方、インター予測部205は、ステップS000において、所定条件を満たさないと判断した場合に、ステップS001において、数珠繋ぎ動きベクトル予測によって導出した数珠繋ぎ動きベクトルに対応するマージ候補を追加すると判定する。
ここで、例えば、所定条件は、マージ候補リストに格納されている少なくとも1つのマージ候補及び導出した数珠繋ぎ動きベクトルに対応するマージ候補のそれぞれに紐づく参照ピクチャ及び動きベクトルが一致することであってもよい。
インター予測部205が、このようにマージ候補リストに格納されている少なくとも1つマージ候補及び導出した数珠繋ぎ動きベクトルに対応するマージ候補のそれぞれに紐づく参照ピクチャ及び動きベクトルが一致すると判断した場合に、数珠繋ぎ動きベクトルに対応するマージ候補をマージ候補リスト内に追加しない、すなわち、数珠繋ぎ動きベクトルに対応するマージ候補を剪定する(プルーニング対象とする)と判定することで、マージ候補リスト内に2つ以上の同じ動きベクトルが格納されるケースを防ぎ、画像復号装置200に送られるmerge_idx(マージインデックス)の符号量が削減されて、符号化効率が改善する。
或いは、所定条件は、マージ候補リストに格納されている少なくとも1つのマージ候補及び導出した数珠繋ぎ動きベクトルに対応するマージ候補のそれぞれに紐づく1つ以上の参照ピクチャ及び動きベクトルが全て一致することであってもよい。
或いは、所定条件は、マージ候補リストに格納されている少なくとも1つのマージ候補及び導出した数珠繋ぎ動きベクトルに対応するマージ候補のそれぞれに紐づくマージ候補リスト番号0(L0)及びマージ候補リスト番号1(L1)の参照ピクチャ及び動きベクトルが全て一致することであってもよい。
さらに、所定条件は、マージ候補リストに格納されている少なくとも1つのマージ候補及び導出した数珠繋ぎ動きベクトルに対応するマージ候補のそれぞれに紐づく参照ピクチャが一致し、且つ、マージ候補リストに格納されている少なくとも1つのマージ候補及び導出した数珠繋ぎ動きベクトルに対応するマージ候補のそれぞれに紐づく動きベクトルの参照位置の誤差(ユークリッド距離)が所定閾値未満であることであってもよい。
これにより、数珠繋ぎ動きベクトルに対応するマージ候補の剪定処理が強化され、マージ候補リスト内に2つ以上の同様の動きベクトルが格納されるケースをより防がれて、画像復号装置200に送られるmerge_idxの符号量が削減されて、符号化効率が改善する。
更なる制御として、インター予測部205は、比較する動きベクトルが1つである場合の所定閾値を、比較する動きベクトルが2つである場合の所定閾値よりも大きく設定してもよい。
このように、比較する動きベクトルが1つである場合の所定閾値を、比較する動きベクトルが2つある場合の所定閾値よりも大きく設定することで、より高精度な剪定処理が可能となる。
ここで、インター予測部205は、比較する動きベクトルが1つである場合の所定閾値を1.5画素に設定してもよい。
或いは、インター予測部205は、比較する動きベクトルが1つである場合の所定閾値を1.0画素或いは2.0画素に設定してもよい。
また、インター予測部205は、比較する動きベクトルが2つである場合の所定閾値を1.0画素に設定してもよい。
或いは、インター予測部205は、比較する動きベクトルが2つである場合の所定閾値を0.5画素或いは1.5画素に設定してもよい。
また、上述の所定条件は、マージ候補リストに格納されている少なくとも1つのマージ候補及び導出した数珠繋ぎ動きベクトルに対応するマージ候補のそれぞれに紐づく参照ピクチャ及び動きベクトル及び所定のインター予測画素の生成方法を変更する内部パラメータが一致することであってもよい。
或いは、所定条件は、マージ候補リストに格納されている少なくとも1つのマージ候補及び導出した数珠繋ぎ動きベクトルに対応するマージ候補のそれぞれに紐づく参照ピクチャ及び動きベクトル及び切替補間フィルタの適用有無を特定する内部パラメータ(hpelIfIdx)が一致することであってもよい。
或いは、所定条件は、マージ候補リストに格納されている少なくとも1つのマージ候補及び導出した数珠繋ぎ動きベクトルに対応するマージ候補のそれぞれに紐づく参照ピクチャ及び動きベクトル及び局所輝度補償の適用有無を制御する内部パラメータ(licFlag)が一致することであってもよい。
さらに、所定条件は、マージ候補リストに格納されている少なくとも1つのマージ候補及び導出した数珠繋ぎ動きベクトルに対応するマージ候補のそれぞれに紐づく参照ピクチャ及び動きベクトル及びブロック単位の重み付け双予測の重み値を特定する内部パラメータ(bcwIdx)が一致することであってもよい。
インター予測部205は、上述の内部パラメータを所定条件に含めることで、比較する参照ピクチャ及び動きベクトルが一致する場合であっても、内部パラメータが異なる場合に異なる方法でインター予測画素を生成することにより、インター予測精度が向上する余地を残せるため、符号化効率の改善が期待できる。
<3.数珠繋ぎ動きベクトル導出時の参照元と参照先の制御>
図19~図22を用いて、本実施形態に係る画像復号装置200のインター予測部205が、数珠繋ぎ動きベクトル予測における数珠繋ぎ動きベクトルを導出する際の参照元及び参照先の制御方法について説明する。
図19~図22を用いて、本実施形態に係る画像復号装置200のインター予測部205が、数珠繋ぎ動きベクトル予測における数珠繋ぎ動きベクトルを導出する際の参照元及び参照先の制御方法について説明する。
第1に、図19を用いて、数珠繋ぎ動きベクトル予測における数珠繋ぎ動きベクトルを導出する際の参照元の制御方法について説明する。
図19は、インター予測部205による数珠繋ぎ動きベクトル予測における数珠繋ぎ動きベクトルを導出する際の参照元を制御する方法の一例を示す図である。
インター予測部205は、数珠繋ぎ動きベクトル予測において数珠繋ぎ動きベクトルを導出する際に、数珠繋ぎ動きベクトルを構成する最初の動きベクトルの起点を、復号対象ブロックの一部又は全部に設定してもよい。
復号対象ブロックの一部に設定する一例として、図19に示すように、インター予測部205は、数珠繋ぎ動きベクトル予測において、数珠繋ぎ動きベクトルを導出する際に、数珠繋ぎ動きベクトルを構成する最初の動きベクトルの起点を、復号対象ブロック(CurBlk)の中心(C)に設定してもよい。
或いは、図19に示すように、インター予測部205は、数珠繋ぎ動きベクトル予測において、数珠繋ぎ動きベクトルを導出する際に、数珠繋ぎ動きベクトルを構成する最初の動きベクトルの起点を、復号対象ブロック(CurBlk)の中心(C)に加えて、復号対象ブロック(CurBlk)の所定位置に設定し、所定順序で動きベクトルの参照先に動きベクトルが蓄積されているかどうかを探索してもよい。
具体的には、図19に示すように、インター予測部205は、数珠繋ぎ動きベクトル予測において、数珠繋ぎ動きベクトルを導出する際に、数珠繋ぎ動きベクトルを構成する最初の動きベクトルの起点を、復号対象ブロック(CurBlk)の中心(C)に加えて、復号対象ブロック(CurBlk)の四隅に設定し、所定順序として復号対象ブロックの中心(C)、左上(TL)、右上(TR)、左下(BL)、右下(BR)、の順で、動きベクトルの参照先に動きベクトルが蓄積されているかどうかを探索してもよい。
インター予測部205は、各点で探索して導出される各動きベクトルに対して数珠繋ぎ動きベクトルを生成してもよい。
変更例として、インター予測部205は、各点で探索して導出される各動きベクトルの参照ブロックと復号対象ブロックとの隣接復号済み画素値の差分を比較して、かかる差分が小さい少なくとも1つ以上の動きベクトルに限定して数珠繋ぎ動きベクトルを生成してもよい。
他の変更例として、インター予測部205は、各点で探索して導出される各動きベクトルを重み付け平均して数珠繋ぎ動きベクトルを生成するための新たな動きベクトルを導出してもよい。
具体的には、インター予測部205は、各動きベクトルの重み付け平均時に、復号対象ブロックからの各動きベクトルの参照ピクチャの距離に基づいて、各動きベクトルをスケーリングして新たな動きベクトルを生成してもよい。スケーリング先は、復号対象ブロックからの距離が最小の参照ピクチャに設定してもよい。
インター予測部205は、数珠繋ぎ動きベクトルを導出する際に、数珠繋ぎ動きベクトルを構成する最初の動きベクトルの起点を、復号対象ブロックの中心に加えて復号対象ブロックの四隅に設定することで、より数珠繋ぎ動きベクトルが導出される可能性が高くなり、結果として符号化効率の改善が期待できる。
更なる制御として、インター予測部205は、数珠繋ぎ動きベクトル予測において、数珠繋ぎ動きベクトルを導出する際に、数珠繋ぎ動きベクトルを構成する最初の動きベクトルの起点を復号対象ブロックのブロックサイズ又はブロックアスペクト比に応じて制御してもよい。
例えば、インター予測部205は、数珠繋ぎ動きベクトル予測において、数珠繋ぎ動きベクトルを導出する際に、数珠繋ぎ動きベクトルを構成する最初の動きベクトルの起点を、復号対象ブロックのブロックサイズが第1サイズ以下の場合に、復号対象ブロックの中心のみに設定してもよい。
復号対象ブロックのブロックサイズが第1サイズ以下の場合、数珠繋ぎ動きベクトルを導出する際に、数珠繋ぎ動きベクトルを構成する最初の動きベクトルは、復号対象ブロックの中心及び復号対象ブロックの四隅で同じである可能性が高い。
そのため、復号対象ブロックのブロックサイズが第1サイズ以下の場合、数珠繋ぎ動きベクトルを導出する際に、数珠繋ぎ動きベクトルを構成する最初の動きベクトルの起点を復号対象ブロックの中心のみに設定する(復号対象ブロックの四隅を加えない)ことで、数珠繋ぎ動きベクトルの探索処理量を削減することができる。
或いは、インター予測部205は、数珠繋ぎ動きベクトル予測において、数珠繋ぎ動きベクトルを導出する際に、数珠繋ぎ動きベクトルを構成する最初の動きベクトルの起点を、復号対象ブロックのブロックサイズが第1サイズよりも大きい場合に、復号対象ブロックの中心に加えて復号対象ブロックの四隅に設定し、所定順序として復号対象ブロックの中心、左上、右上、左下、右下、の順で、動きベクトルの参照先に動きベクトルが蓄積されているかどうかを探索してもよい。
復号対象ブロックのブロックサイズが第1サイズよりも大きい場合、数珠繋ぎ動きベクトルを導出する際に、数珠繋ぎ動きベクトルを構成する最初の動きベクトルは、復号対象ブロックの中心及び復号対象ブロックの四隅で異なる可能性が高い。
そのため、復号対象ブロックのブロックサイズが第1サイズよりも大きい場合、数珠繋ぎ動きベクトルを導出する際に、数珠繋ぎ動きベクトルを構成する最初の動きベクトルの起点を、復号対象ブロックの中心に加えて復号対象ブロックの四隅に設定することで、異なる数珠繋ぎ動きベクトルが生成されて、符号化効率の改善が期待できる。
ここで、復号対象ブロックは、非正方形であるケースも想定されるため、復号対象ブロックのブロックサイズ(ブロックの画素数)を復号対象ブロックの幅及び高さに置換して、上述の制御を実施してもよい。
具体的には、インター予測部205は、数珠繋ぎ動きベクトル予測において、数珠繋ぎ動きベクトルを導出する際に、数珠繋ぎ動きベクトルを構成する最初の動きベクトルの起点を、復号対象ブロックのブロックの幅又は高さが所定画素数より大きい場合に、数珠繋ぎ動きベクトルを構成する最初の動きベクトルの起点を、復号対象ブロックの中心に加えて復号対象ブロックの四隅に設定し、所定順序として復号対象ブロックの中心、左上、右上、左下、右下の順で動きベクトルの参照先に動きベクトルが蓄積されているかどうかを探索してもよい。
インター予測部205は、かかる所定画素数として、8画素、16画素或いは32画素のいずれかを設定してもよい。
或いは、インター予測部205は、数珠繋ぎ動きベクトル予測において、数珠繋ぎ動きベクトルを導出する際に、数珠繋ぎ動きベクトルを構成する最初の動きベクトルの起点を、復号対象ブロックのブロックのアスペクト比が所定比よりも大きい場合に、復号対象ブロックの中心に加えて復号対象ブロックの左下と右上を設定し、所定順序として復号対象ブロックの中心、左下、右上の順で、動きベクトルの参照先に動きベクトルが蓄積されているかどうかを探索してもよい。
インター予測部205は、かかる所定比として、4、8或いは16のいずれかを設定してもよい。
第2に、図20及び図21を用いて、数珠繋ぎ動きベクトル予測における数珠繋ぎ動きベクトルを導出する際の参照先の制御方法の一例について説明する。
図20は、インター予測部205による数珠繋ぎ動きベクトル予測における数珠繋ぎ動きベクトルを導出する際の参照先を制御する方法の一例を示す図である。
図20に示すように、インター予測部205は、数珠繋ぎ動きベクトルを導出する際の再帰的な動きベクトルの探索過程で、各動きベクトルの参照位置が参照ピクチャ外を参照する場合、かかる参照位置から最近傍の参照ピクチャ内の動きベクトルの蓄積場所で、動きベクトルを探索してもよい。
動きベクトルの参照位置が、参照ピクチャ外を参照しても、かかる動きベクトルから数珠繋いだ動きベクトルが異なる参照ピクチャ内にある場合があるため、数珠繋ぎ動きベクトルについて新たに生成できる。
或いは、図20に示すように、インター予測部205は、数珠繋ぎ動きベクトルを導出する際の再帰的な動きベクトルの探索過程で、各動きベクトルの参照位置が参照ピクチャ外を参照する場合、数珠繋ぎ動きベクトルの生成を打ち切ってもよい。
動きベクトルの参照位置が、参照ピクチャ外を参照する場合、かかる動きベクトルから数珠繋いだ動きベクトルも異なる参照ピクチャで当該参照ピクチャ外を参照する可能性が高いため、数珠繋ぎ動きベクトルの生成を打ち切ることで復号処理量を削減できる。
或いは、復号ピクチャバッファ207が参照ピクチャ外にインター予測パディング領域を蓄積している場合は、上述の参照ピクチャ外という記載を、インター予測パディング領域外という記載に置換して、インター予測部205は同様の処理を実施してもよい。
図21は、復号対象ピクチャ群に対して低遅延映像伝送向けの符号化・復号技術として知られる非特許文献1で開示されている順次デコーダ更新(GDR:Gradual Decoding Refresh)が適用されるケースで、インター予測部205による数珠繋ぎ動きベクトル予測における数珠繋ぎ動きベクトルを導出する際の参照元及び参照先を制御する方法の一例を示す図である。
GDRは、画面の一部領域のみをイントラ予測を用いた符号化・復号により更新(以下、イントラ更新)し、かかる一部領域を復号対象ピクチャごとに移動させることで、映像伝送で広く使われるイントラピクチャを含むランダムアクセス構成での映像符号化・復号よりも、一定のビットレートにおいての映像符号化・復号の処理遅延を削減する技術である。
図21は、イントラ更新領域をスライス(Intra slice)で図示し、かかるスライスが復号対象ピクチャの上端から下端に移動する例を示している。
ここで、本明細書では、復号対象ピクチャにおけるGDRによる3つの区分領域を、イントラ更新後の領域、イントラ更新中の領域、イントラ更新前の領域と呼称する。
図21に示すように、インター予測部205は、復号対象ピクチャ群で順次デコーダ更新が適用される場合、数珠繋ぎ動きベクトル予測の再帰的な動きベクトルの探索を、イントラ更新中の領域を超えないように制限してもよい。
例えば、図21に示すように、インター予測部205は、復号対象ピクチャ群で順次デコーダ更新が適用され、且つ、復号対象ブロックがイントラ更新後の領域に含まれる場合、数珠繋ぎ動きベクトル予測の再帰的な動きベクトルの各探索で参照可能な領域を、各探索対象の参照ピクチャにおけるイントラ更新後の領域のみに制限してもよい。
或いは、インター予測部205は、復号対象ピクチャ群で順次デコーダ更新が適用され、且つ、復号対象ブロックがイントラ更新前の領域に含まれる場合、数珠繋ぎ動きベクトル予測の再帰的な動きベクトルの各探索で参照可能な領域を、各探索対象の参照ピクチャにおけるイントラ更新前の領域のみに制限してもよい。
このように、インター予測部205が、復号対象ピクチャ群で順次デコーダ更新が適用される場合、数珠繋ぎ動きベクトル予測の再帰的な動きベクトルの探索をイントラ更新中の領域を超えないように制限することで、予測精度の高い数珠繋ぎ動きベクトルが生成できる。
図22は、復号対象ブロックにおいて復号ピクチャと異なる解像度(サンプリング比率)の参照ピクチャへの動きベクトルの参照が許容される、非特許文献1で開示されている参照ピクチャリサンプリング(RPR:Reference Picture Resampling)が適用されるケースで、インター予測部205によって数珠繋ぎ動きベクトル予測における数珠繋ぎ動きベクトルが導出される際の参照先を制御する一例を示した図である。
RPRでは、インター予測部205は、復号ピクチャの幅及び高さに対する参照ピクチャの幅及び高さに対する比率をそれぞれ計算し、その比率に応じて復号ピクチャに対する参照ピクチャの画素位置及び動きベクトル長をスケーリングして、インター予測画素を生成する。
したがって、例えば、図22に示すように、参照ピクチャの幅及び高さが復号ピクチャの幅及び高さの0.5倍の場合は、復号ピクチャに対する参照ピクチャの画素位置及び動きベクトル長は、0.5倍にスケーリングされる。
他方、インター予測部205は、数珠繋ぎ動きベクトルを生成する際は、復号ピクチャと同一スケールで動きベクトルを繋ぐ必要がある。
そのため、インター予測部205は、図22に示すように、復号対象ピクチャとは異なる解像度(サンプリング比率)の参照ピクチャに対して動きベクトルを参照して、かかる参照ピクチャから再帰的に動きベクトルを探索して数珠繋ぎ動きベクトルを生成する場合、再帰的に導出された動きベクトルの長さを復号対象ピクチャの幅及び高さと各参照ピクチャの幅及び高さとの比率に応じて逆スケーリングした上で加算し、数珠繋ぎ動きベクトルが生成してもよい。
変更例として、インター予測部205は、復号対象シーケンス又は復号対象ピクチャ群に対して、復号対象ピクチャとは異なる解像度(サンプリング比率)の参照ピクチャに対して動きベクトルの参照が許容される場合、復号対象ピクチャと同一のサンプリング比率である参照ピクチャに対してのみ数珠繋ぎ動きベクトルを適用してもよい。
言い換えると、インター予測部205は、復号対象シーケンス又は復号対象ピクチャ群に対して、復号対象ピクチャとは異なる解像度(サンプリング比率)の参照ピクチャに対して動きベクトルの参照が許容される場合、復号対象ピクチャと同一のサンプリング比率ではない参照ピクチャに対して数珠繋ぎ動きベクトルを適用しないことにしてもよい。
<4.数珠繋ぎ動きベクトル予測におけるインター予測情報の継承>
インター予測部205は、数珠繋ぎ動きベクトル予測によるマージ候補を導出する際に、インター予測画素の生成方法を変更する所定の内部パラメータの継承の有無を制御してもよい。
インター予測部205は、数珠繋ぎ動きベクトル予測によるマージ候補を導出する際に、インター予測画素の生成方法を変更する所定の内部パラメータの継承の有無を制御してもよい。
(切替補間フィルタ)
一例として、インター予測部205は、数珠繋ぎ動きベクトル予測によるマージ候補の導出時に、再帰的に探索された各動きベクトルに紐づく切替補間フィルタの適用有無を特定する内部パラメータ(hpelIfIdx)を継承せずに、数珠繋ぎ動きベクトル予測によって導出されるマージ候補に対応する切替補間フィルタの適用有無を特定する内部パラメータ(hpelIfIdx)が切替補間フィルタを適用しないと示すように常に設定してもよい。
一例として、インター予測部205は、数珠繋ぎ動きベクトル予測によるマージ候補の導出時に、再帰的に探索された各動きベクトルに紐づく切替補間フィルタの適用有無を特定する内部パラメータ(hpelIfIdx)を継承せずに、数珠繋ぎ動きベクトル予測によって導出されるマージ候補に対応する切替補間フィルタの適用有無を特定する内部パラメータ(hpelIfIdx)が切替補間フィルタを適用しないと示すように常に設定してもよい。
或いは、インター予測部205は、数珠繋ぎ動きベクトル予測によるマージ候補の導出時に、再帰的に探索された各動きベクトルに紐づく切替補間フィルタの適用有無を特定する内部パラメータ(hpelIfIdx)のうち、数珠繋ぎ動きベクトルを構成する最初又は最後の動きベクトルに紐づく切替補間フィルタの適用有無を特定する内部パラメータ(hpelIfIdx)を、数珠繋ぎ動きベクトル予測によって導出されるマージ候補に対応する切替補間フィルタの適用有無を特定する内部パラメータ(hpelIfIdx)として継承してもよい。
或いは、インター予測部205は、数珠繋ぎ動きベクトル予測によるマージ候補の導出時に、再帰的に探索された各動きベクトルに紐づく切替補間フィルタの適用有無を特定する内部パラメータ(hpelIfIdx)のうち、少なくとも1つ以上の切替補間フィルタの適用有無を特定する内部パラメータ(hpelIfIdx)が切替補間フィルタを適用することを示す場合、数珠繋ぎ動きベクトル予測によって導出されるマージ候補に対応する切替補間フィルタの適用有無を特定する内部パラメータ(hpelIfIdx)が切替補間フィルタを適用することを示すことにしてもよい。
さらに、インター予測部205は、数珠繋ぎ動きベクトル予測により生成される数珠繋ぎ動きベクトルが少なくとも1つ以上のブロックベクトルで構成される場合、数珠繋ぎ動きベクトル予測によって導出されるマージ候補に対応する切替補間フィルタの適用有無を特定する内部パラメータ(hpelIfIdx)を、切替補間フィルタを適用しないと示すように常に設定することにしてもよい。
(局所輝度補償)
一例として、インター予測部205は、数珠繋ぎ動きベクトル予測によるマージ候補の導出時に、再帰的に探索された各動きベクトルに紐づく局所輝度補償の適用有無を制御する内部パラメータ(licFlag)を継承せずに、数珠繋ぎ動きベクトル予測によって導出されるマージ候補に対応する局所輝度補償の適用有無を制御する内部パラメータ(licFlag)が局所輝度補償を適用しないと示すように常に設定してもよい。
一例として、インター予測部205は、数珠繋ぎ動きベクトル予測によるマージ候補の導出時に、再帰的に探索された各動きベクトルに紐づく局所輝度補償の適用有無を制御する内部パラメータ(licFlag)を継承せずに、数珠繋ぎ動きベクトル予測によって導出されるマージ候補に対応する局所輝度補償の適用有無を制御する内部パラメータ(licFlag)が局所輝度補償を適用しないと示すように常に設定してもよい。
或いは、インター予測部205は、数珠繋ぎ動きベクトル予測によるマージ候補の導出時に、再帰的に探索された各動きベクトルに紐づく局所輝度補償の適用有無を制御する内部パラメータ(licFlag)のうち、数珠繋ぎ動きベクトルを構成する最初又は最後の動きベクトルに紐づく局所輝度補償の適用有無を制御する内部パラメータ(licFlag)を、数珠繋ぎ動きベクトル予測によって導出されるマージ候補に対応する局所輝度補償の適用有無を制御する内部パラメータ(licFlag)として継承してもよい。
或いは、インター予測部205は、数珠繋ぎ動きベクトル予測によるマージ候補の導出時に、再帰的に探索された各動きベクトルに紐づく局所輝度補償の適用有無を制御する内部パラメータ(licFlag)のうち、少なくとも1つ以上の局所輝度補償の適用有無を制御する内部パラメータ(licFlag)が局所輝度補償を適用することを示す場合、数珠繋ぎ動きベクトル予測によって導出されるマージ候補に対応する局所輝度補償の適用有無を制御する内部パラメータ(licFlag)が局所輝度補償を適用することを示すことにしてもよい。
さらに、インター予測部205は、数珠繋ぎ動きベクトル予測により生成される数珠繋ぎ動きベクトルが少なくとも1つ以上のブロックベクトルで構成される場合、数珠繋ぎ動きベクトル予測によって導出されるマージ候補に対応する局所輝度補償の適用有無を制御する内部パラメータ(licFlagg)を、局所輝度補償を適用しないと示すように常に設定してもよい。
変更例として、 インター予測部205は、数珠繋ぎ動きベクトルで継承した局所輝度補償の適用有無を制御する内部パラメータ(licFlag)の値を復号対象ブロック及び参照ブロックそれぞれの隣接画素値から算出可能な差分絶対値和(SAD:Sum of Absolute Difference)と平均除去差分絶対値和(MR-SAD:Mean-Removal Sum of Absolute Difference)との比較により再判定してもよい。
具体的に、インター予測部205は、MR-SADがSADよりも大きい又は等しい場合は、局所輝度補償の適用有無を制御する内部パラメータ(licFlag)の値を局所輝度補償が適用されないと特定される値に設定し、一方、MR-SADがSADよりも小さい場合は、局所輝度補償の適用有無を制御する内部パラメータ(licFlag)の値を局所輝度補償が適用されると特定される値に設定してもよい。
更なる変更例として、インター予測部205は、数珠繋ぎ動きベクトルで継承した局所輝度補償の適用有無を制御する内部パラメータ(licFlag)の値を維持するか反転するかを制御する復号対象ブロック単位の制御情報(cu_merge_lic_revert_flag)に基づいて再設定してもよい。
(ブロック単位の重み付け双予測)
一例として、インター予測部205は、数珠繋ぎ動きベクトル予測によるマージ候補の導出時に、再帰的に探索された各動きベクトルに紐づくブロック単位の重み付け双予測の重み値を特定する内部パラメータ(bcwIdx)を継承せずに、数珠繋ぎ動きベクトル予測によって導出されるマージ候補に対応するブロック単位の重み付け双予測の重み値を特定する内部パラメータ(bcwIdx)がブロック単位の重み付け双予測の重み値が単純平均であることを示すように常に設定してもよい。
一例として、インター予測部205は、数珠繋ぎ動きベクトル予測によるマージ候補の導出時に、再帰的に探索された各動きベクトルに紐づくブロック単位の重み付け双予測の重み値を特定する内部パラメータ(bcwIdx)を継承せずに、数珠繋ぎ動きベクトル予測によって導出されるマージ候補に対応するブロック単位の重み付け双予測の重み値を特定する内部パラメータ(bcwIdx)がブロック単位の重み付け双予測の重み値が単純平均であることを示すように常に設定してもよい。
或いは、インター予測部205は、数珠繋ぎ動きベクトル予測によるマージ候補の導出時に、再帰的に探索された各動きベクトルに紐づくブロック単位の重み付け双予測の重み値を特定する内部パラメータ(bcwIdx)のうち、数珠繋ぎ動きベクトルを構成する最初又は最後の動きベクトルに紐づくブロック単位の重み付け双予測の重み値を特定する内部パラメータ(bcwIdx)を、数珠繋ぎ動きベクトル予測によって導出されるマージ候補に対応するブロック単位の重み付け双予測の重み値を特定する内部パラメータ(bcwIdx)として継承してもよい。
変更例として、インター予測部205は、数珠繋ぎ動きベクトル予測によるマージ候補の導出時に、再帰的に探索された各動きベクトルに紐づくブロック単位の重み付け双予測の重み値を特定する内部パラメータ(bcwIdx)のうち、少なくとも1つ以上のブロック単位の重み付け双予測の重み値を特定する内部パラメータ(bcwIdx)がブロック単位の重み付け双予測の重み値が単純平均と特定することを示す場合、数珠繋ぎ動きベクトル予測によって導出されるマージ候補に対応するブロック単位の重み付け双予測の重み値を特定する内部パラメータ(bceIdx)がブロック単位の重み付け双予測の重み値が単純平均と特定することを示すことにしてもよい。
(複数仮説予測)
一例として、インター予測部205は、数珠繋ぎ動きベクトル予測によるマージ候補の導出時に、再帰的に探索された各動きベクトルに紐づく複数仮説予測の適用有無を制御する内部パラメータ(mhpFlag、第4内部パラメータ)を継承せずに、数珠繋ぎ動きベクトル予測によって導出されるマージ候補に対応する複数仮説予測の適用有無を制御する内部パラメータ(mhpFlag)が複数仮説予測を適用しないと示すように常に設定することにしてもよい。
一例として、インター予測部205は、数珠繋ぎ動きベクトル予測によるマージ候補の導出時に、再帰的に探索された各動きベクトルに紐づく複数仮説予測の適用有無を制御する内部パラメータ(mhpFlag、第4内部パラメータ)を継承せずに、数珠繋ぎ動きベクトル予測によって導出されるマージ候補に対応する複数仮説予測の適用有無を制御する内部パラメータ(mhpFlag)が複数仮説予測を適用しないと示すように常に設定することにしてもよい。
変更例として、インター予測部205は、数珠繋ぎ動きベクトル予測によるマージ候補の導出時に、再帰的に探索された各動きベクトルに紐づく複数仮説予測の適用有無を制御する内部パラメータ(mhpFlag)のうち、数珠繋ぎ動きベクトルを構成する最初又は最後の動きベクトルに紐づく複数仮説予測の適用有無を制御する内部パラメータ(mhpFlag)を、数珠繋ぎ動きベクトル予測によって導出されるマージ候補に対応する複数仮説予測の適用有無を制御する内部パラメータ(mhpFlag)として継承することを示すことにしてもよい。
変更例として、インター予測部205は、数珠繋ぎ動きベクトル予測によるマージ候補の導出時に、再帰的に探索された各動きベクトルに紐づく複数仮説予測の適用有無を制御する内部パラメータ(mhpFlag)のうち、少なくとも1つ以上の複数仮説予測の適用有無を制御する内部パラメータ(mhpFlag)が複数仮説予測を適用することを示す場合、数珠繋ぎ動きベクトル予測によって導出されるマージ候補に対応する複数仮説予測の適用有無を制御する内部パラメータ(mhpFlag)が複数仮説予測を適用することを示すことにしてもよい。
これの更なる変更例として、インター予測部205は、数珠繋ぎ動きベクトル予測により生成される数珠繋ぎ動きベクトルが少なくとも1つ以上のブロックベクトルで構成される場合、数珠繋ぎ動きベクトル予測によって導出されるマージ候補に対応する複数仮説予測の適用有無を制御する内部パラメータ(mhpFlag)が複数仮説予測を適用しないと示すように常に設定することにしてもよい。
上述のように、インター予測画素の生成方法を変更する内部パラメータを数珠繋ぎ動きベクトル予測で常に継承されないようにすれば、復号ピクチャバッファ207で蓄積が必要なインター予測情報の符号量が削減される。
他方、上述のように、インター予測画素の生成方法を変更する内部パラメータを数珠繋ぎ動きベクトル予測で継承すれば、数珠繋ぎ動きベクトル予測で生成されるマージ候補を用いたインター予測画素が高精度化する可能性があり、符号化効率の改善が期待できる。
また、上述の内部パラメータを継承させる場合において、数珠繋ぎ動きベクトルが少なくとも1つ以上のブロックベクトルで構成される場合は、インター予測画素の生成方法の変更の必要性が低いため、かかる内部パラメータを継承しない、すなわち、インター予測画素の生成方法の変更しないように設定することで、符号効率の改善が期待できる。
<5.数珠繋ぎ動きベクトル予測候補を含むマージ候補の並び替えとベクトルの補正>
(マージ候補の並び替え)
数珠繋ぎ動きベクトル予測候補をその他のマージ候補よりも後で導出するほど、数珠繋ぎ動きベクトル予測候補がマージ候補リストに格納されにくくなる。
(マージ候補の並び替え)
数珠繋ぎ動きベクトル予測候補をその他のマージ候補よりも後で導出するほど、数珠繋ぎ動きベクトル予測候補がマージ候補リストに格納されにくくなる。
この問題を解決する方法として、インター予測部205は、数珠繋ぎ動きベクトル予測により導出されたマージ候補を含むマージ候補リストに格納されたマージ候補の全てのテンプレートマッチングコストを算出し、テンプレートマッチングコストが小さい順に、マージ候補リスト内での各マージ候補の格納位置を昇順で並び替えてもよい。
一例として、インター予測部205は、この各ージ候補のテンプレートマッチングコストに基づくマージ候補リスト内の各マージ候補の格納位置の並び替えに関する技術として、非特許文献2で開示されている適応並び替えマージ候補(ARMC:Adaptive Reordering Merge Candidate)を用いてもよい。
さらに、数珠繋ぎ動きベクトル予測は、上述のように、再帰的に新たな動きベクトルを生成するため、数珠繋ぎ動きベクトル予測候補の導出後に他のマージ候補が導出される場合、その他のマージ候補がマージ候補リストに格納されない可能性がある。
この問題を解決する方法として、インター予測部205は、数珠繋ぎ動きベクトル予測により導出されたマージ候補を含む剪定されていないマージ候補の全てのテンプレートマッチングコストを算出し、テンプレートマッチングコストが小さい順に、マージ候補リストに昇順で格納しもてよい。
或いは、インター予測部205は、数珠繋ぎ動きベクトル予測により導出されたマージ候補を含む剪定されていないマージ候補の全てのテンプレートマッチングコストを算出し、テンプレートマッチングコストが小さい順に、マージ候補リストに昇順で格納するまでの一連の処理を所定回数実施してもよい。例えば、かかる所定回数は、2回或いは3回であってもよい。
これにより、マージ候補リスト内に高精度にインター予測画素が生成可能なマージ候補が配置され、符号化効率の改善が期待できる。
(ベクトルの補正)
インター予測部205は、数珠繋ぎ動きベクトル予測により導出されたマージ候補に紐づく動きベクトルを所定の方法で補正してもよい。
インター予測部205は、数珠繋ぎ動きベクトル予測により導出されたマージ候補に紐づく動きベクトルを所定の方法で補正してもよい。
一例として、インター予測部205は、数珠繋ぎ動きベクトル予測により導出されたマージ候補に紐づく動きベクトルをテンプレートマッチングで補正してもよい。
ここで、インター予測部205は、かかるテンプレートマッチングとして、非特許文献2で開示されているテンプレートマッチングと同様の技術を適用してもよい。
一例として、インター予測部205は、数珠繋ぎ動きベクトル予測により導出されたマージ候補に紐づく動きベクトルをバイラテラルマッチングで補正してもよい。
ここで、インター予測部205は、かかるバイラテラルマッチングとして、非特許文献1及び非特許文献2で開示されているバイラテラルマッチングと同様の技術を適用してもよい。例えば、インター予測部205は、非特許文献1で開示されているデコーダ側動きベクトル補正(DMVR:Decoder-side Motion Vector Refinement)を適用してもよい。
一例として、インター予測部205は、数珠繋ぎ動きベクトル予測により導出されたマージ候補に紐づく動きベクトルを制御情報から導出された動きベクトル差分を加算して補正してもよい。
ここで、インター予測部205は、動きベクトル差分を示す制御情報として、非特許文献1及び非特許文献2で開示されているマージ動きベクトル差分(MMVD:Merge with Motion Vector Difference)と同様の技術を適用してもよい。
インター予測部205が、数珠繋ぎ動きベクトル予測により導出されたマージ候補に紐づく動きベクトルを所定の方法で補正することで、インター予測精度が向上し、符号化効率の改善が期待できる。
<6.数珠繋ぎ動きベクトル予測の各種制限(適用有無・ピクチャ数・マージ候補数)>
図23を用いて、本実施形態に係る画像復号装置200の復号部201及びインター予測部205による数珠繋ぎ動きベクトル予測の各種制限方法について説明する。
図23を用いて、本実施形態に係る画像復号装置200の復号部201及びインター予測部205による数珠繋ぎ動きベクトル予測の各種制限方法について説明する。
(数珠繋ぎ動きベクトル予測の適用有無)
第1に、数珠繋ぎ動きベクトル予測の適用有無(適用可不可)に関して、上述の通り、その性質上、TMVPが適用可能な場合、数珠繋ぎ動きベクトル予測は、適用可能である。言い換えると、TMVPが適用不可な場合は、数珠繋ぎ動きベクトル予測は、適用不可である。
第1に、数珠繋ぎ動きベクトル予測の適用有無(適用可不可)に関して、上述の通り、その性質上、TMVPが適用可能な場合、数珠繋ぎ動きベクトル予測は、適用可能である。言い換えると、TMVPが適用不可な場合は、数珠繋ぎ動きベクトル予測は、適用不可である。
そのため、数珠繋ぎ動きベクトル予測の適用可不可については、時間動きベクトル予測TMVPの適用可不可を制御する制御情報(シンタックス)に応じて制御できる。
つまり、インター予測部205は、復号部201から送られる時間動きベクトル予測(TMVP)の適用可不可を制御する制御情報に基づき、数珠繋ぎ動きベクトル予測の適用可不可を制御してもよい。
ここで、非特許文献1では、TMVPの適用可不可を制御するシンタックスとして、復号対象シーケンス単位のシンタックス(sps_temporal_mvp_enabled_flag、第1制御情報、第1シンタックス)及び復号対象ピクチャ単位のシンタックス(ph_temporal_mvp_enabled_flag、第2制御情報、第2シンタックス)が規定されている。
すなわち、数珠繋ぎ動きベクトル予測の適用可不可についても、TMVPと同様の単位或いはTMVPよりも下位の単位で制御することができる。
例えば、復号対象ブロックの単位で数珠繋ぎ動きベクトル予測の適用可不可を制御するインター予測205部における数珠繋ぎ動きベクトル予測の適用可不可の制御方法は、以下の通りである。
インター予測部205は、復号部201から送られる復号対象シーケンス単位の時間動きベクトル予測(TMVP)の適用可不可を制御する制御情報に基づき、復号対象ブロックに対する数珠繋ぎ動きベクトル予測の適用可不可を制御してもよい。
より具体的には、インター予測部205は、復号部201から送られる復号対象シーケンス単位の時間動きベクトル予測(TMVP)の適用可不可を制御する制御情報が、時間動きベクトル予測を適用可能と特定する場合、復号対象ブロックに対する数珠繋ぎ動きベクトル予測が適用可能であると特定する。
一方、インター予測部205は、上述の制御情報が、時間動きベクトル予測を適用不可と特定する場合、復号対象ブロックに対する数珠繋ぎ動きベクトル予測が適用不可であると特定する。
或いは、インター予測部205は、復号部201から送られる復号対象ピクチャ単位の時間動きベクトル予測(TMVP)の適用可不可を制御する制御情報に基づき、復号対象ブロックに対する数珠繋ぎ動きベクトル予測の適用可不可を制御してもよい。
より具体的には、インター予測部205は、復号部201から送られる復号対象ピクチャ単位の時間動きベクトル予測(TMVP)の適用可不可を制御する制御情報が、時間動きベクトル予測を適用可能と特定する場合、復号対象ブロックに対する数珠繋ぎ動きベクトル予測が適用可能であると特定する。
一方、インター予測部205は、上述の制御情報が、時間動きベクトル予測を適用不可と特定する場合、復号対象ブロックに対する数珠繋ぎ動きベクトル予測が適用不可であると特定する。
インター予測部205は、復号部201から送られる復号対象シーケンス単位の時間動きベクトル予測(TMVP)の適用可不可を制御する制御情報に基づき、復号対象シーケンス単位或いは復号対象シーケンスより小さい復号対象の単位で、数珠繋ぎ動きベクトル予測の適用可不可を制御してもよい。
或いは、インター予測部205は、復号部201から送られる復号対象ピクチャ単位の時間動きベクトル予測(TMVP)の適用可不可を制御する制御情報に基づき、復号対象ピクチャ単位或いは復号対象ピクチャより小さい復号対象の単位で、数珠繋ぎ動きベクトル予測の適用可不可を制御してもよい。
或いは、インター予測部205による復号対象ブロック単位の数珠繋ぎ動きベクトル予測の適用可不可の制御よりも前に、復号部201が、時間動きベクトル予測(TMVP)の適用可不可を制御する制御情報に基づいて、数珠繋ぎ動きベクトル予測の適用可不可を制御してもよい。
図23は、復号対象シーケンス単位で数珠繋ぎ動きベクトル予測の適用可不可を制御するシンタックス(sps_chained_mvp_enabled_flag)を規定し、復号部201が、復号対象シーケンス単位で時間動きベクトル予測(TMVP)の適用可不可を制御するシンタックス(sps_temporal_mvp_enabled_flag)に基づいて、sps_chained_mvp_enabled_flagの復号有無を判定する処理の一例を示す図である。
図23に示すように、復号部201は、ステップS100において、復号対象シーケンス単位で時間動きベクトル予測(TMVP)の適用可不可を制御するシンタックス(sps_temporal_mvp_enabled_flag)が1であると判断した場合、ステップS101において、復号対象シーケンス単位で数珠繋ぎ動きベクトル予測の適用可不可を制御するシンタックス(sps_chained_mvp_enabled_flag、第3シンタックス)を復号する。
一方、復号部201は、ステップS100において、復号対象シーケンス単位で時間動きベクトル予測(TMVP)の適用可不可を制御するシンタックス(sps_temporal_mvp_enabled_flag)が1でないと判断した場合、ステップS102において、復号対象シーケンス単位で数珠繋ぎ動きベクトル予測の適用可不可を制御するシンタックス(sps_chained_mvp_enabled_flag)を復号しない。
ここで、復号部201は、sps_temporal_mvp_enabled_flagの値が1の場合に、復号対象シーケンス単位で時間動きベクトル予測(TMVP)を適用可能と特定し、sps_temporal_mvp_enabled_flagの値が0の場合に、復号対象シーケンス単位で時間動きベクトル予測(TMVP)を適用不可と特定し、sps_temporal_mvp_enabled_flagが復号されていない場合は、sps_temporal_mvp_enabled_flagの値を0と推定する。
また、復号部201は、sps_chained_mvp_enabled_flagの値が1の場合に、復号対象シーケンス単位で数珠繋ぎ動きベクトル予測を適用可能と特定し、sps_chained_mvp_enabled_flagの値が0の場合に、復号対象シーケンス単位で数珠繋ぎ動きベクトル予測を適用不可と特定し、sps_chained_mvp_enabled_flagが復号されていない場合は、sps_chained_mvp_enabled_flagの値を0と推定する。
このように、sps_temporal_mvp_enabled_flagの値に基づいて、sps_chained_mvp_enabled_flagの復号有無を判定することで、sps_chained_mvp_enabled_flagの復号が不要であることが自明なケースにおいて、sps_chained_mvp_enabled_flagを復号せずに済むため、符号量が削減できる。
数珠繋ぎ動きベクトル予測は、上述のマージ候補のテンプレートマッチングコストの比較による並び替え(ARMC:Adaptive Reordering Merge Candidate)と併用して利用されると、符号化効率の改善がより期待できる。
そのため、上述のTMVPの適用可不可に基づく数珠繋ぎ動きベクトル予測の適用可不可の制御方法の変更例として、インター予測部205は、TMVPの適用可不可及びARMCの適用可不可の双方に基づいて、数珠繋ぎ動きベクトル予測の適用可不可を制御してもよい。
具体的には、インター予測部205は、TMVPが適用可能であり、且つ、ARMCが適用可能である場合に、数珠繋ぎ動きベクトル予測の適用可能と特定してもよい。また、これ以外の場合、インター予測部205は、数珠繋ぎ動きベクトル予測の適用不可と特定してもよい。
なお、ARMCの適用可不可については、TMVPと同様の制御情報を設けて、かかる制御情報の値に基づいて判定してもよい。
(数珠繋ぎ動きベクトル予測の参照ピクチャ数・探索深度)
以下、数珠繋ぎ動きベクトル予測の再帰的な動きベクトルの探索時に参照可能な参照ピクチャ数又は探索深度を制限する方法について説明する。
以下、数珠繋ぎ動きベクトル予測の再帰的な動きベクトルの探索時に参照可能な参照ピクチャ数又は探索深度を制限する方法について説明する。
第1に、数珠繋ぎ動きベクトル予測の再帰的な動きベクトルの探索時に参照可能な参照ピクチャ数を制限する方法について説明する。
一例として、インター予測部205は、数珠繋ぎ動きベクトル予測の再帰的な動きベクトルの探索を、復号対象ブロックの参照ピクチャリストに含まれる少なくとも1つ以上の参照ピクチャのみに制限してもよい。
インター予測部205が、数珠繋ぎ動きベクトル予測の再帰的な動きベクトルの探索を復号対象ブロックの参照ピクチャリストに含まれる少なくとも1つ以上の参照ピクチャのみに制限することで、かかる制限を行わない場合(例えば、インター予測部205が復号ピクチャバッファ207に蓄積されている参照ピクチャの全てを探索する場合)よりも、復号処理量を削減できる。
或いは、インター予測部205は、数珠繋ぎ動きベクトル予測の再帰的な動きベクトルの探索を、復号対象ブロックの動きベクトルが参照する参照ピクチャのみに制限してもよい。
言い換えると、インター予測部205は、復号対象ブロックの動きベクトルが参照する参照ピクチャ内でブロックベクトルのみを再探索して、数珠繋ぎ動きベクトル予測による数珠繋ぎ動きベクトルを生成する。
変更例として、 インター予測部205は、数珠繋ぎ動きベクトル予測の再帰的な動きベクトルの探索を、復号対象ブロックが時間動きベクトル予測(TMVP:Temporal Motion Vector Prediction)で参照可能な参照ピクチャ、通称、コロケーテッドピクチャ(Collocated Picture)のみに制限してもよい。
具体的には、インター予測部205は、動きベクトルの候補を格納するマージ候補リストに格納されている復号対象ブロックに空間的又は時間的に隣接又は近接する位置の動きベクトルのうち、参照先が前記復号ピクチャバッファに蓄積されているコロケーテッドピクチャ内である動きベクトルのみに限定して新たな動きベクトルを再探索して導出した全ての動きベクトルを加算することで、数珠繋ぎ動きベクトルを生成してもよい。
ここで、インター予測部205は、Collocated Pictureが2つ以上ある場合は、それら全てのCollocated Pictureを利用して数珠繋ぎ動きベクトルを探索してもよい。
或いは、インター予測部205は、Collocated Pictureが2つ以上ある場合は、復号対象ブロックからの距離(POC:Picture Order Count)の差に基づいて、探索対象のCollocated Pictureを選択してもよい。例えば、インター予測部205は、POCが小さいCollocated Pictureのみを探索してもよい。
或いは、インター予測部205は、Collocated Pictureが2つ以上ある場合は、Collocated Pictureの量子化パラメータの大きさに基づいて選択してもよい。例えば、インター予測部205は、量子化パラメータが大きいCollocated Pictureのみを探索してもよい。
或いは、インター予測部205は、Collocated Pictureが2つ以上ある場合は、リストL0のCollocated Pictureのみを探索してもよい。
変更例(さらに強い制限)として、インター予測部205は、数珠繋ぎ動きベクトル予測の再帰的な動きベクトルの探索領域を、Collocated Picture内の復号対象ブロックと同一画素位置の参照ブロックが含まれる符号化ツリーユニット(CTU:Coding Tree Unit)、通称、Collocated CTUの所定数行分の領域に制限してもよい。
ここで、所定数行分は、一行分であってもよい。或いは、所定数行分は、二行分であってもよい。あるいは四行分であってもよい。
数珠繋ぎ動きベクトル予測の再帰的な動きベクトルの探索領域をCollocated Picture若しくはCollocated CTUの一行分のみに制限することで、復号ピクチャバッファ207における数珠繋ぎ動きベクトルの探索に必要なインター予測情報の情報量を削減できる。
第2に、数珠繋ぎ動きベクトル予測の再帰的な動きベクトルの探索深度を制限する方法について説明する。
一例として、インター予測部205は、制御情報に基づいて、復号対象ブロックにおける数珠繋ぎ動きベクトル予測の再帰的な動きベクトルの探索深度を制限してもよい。
具体的には、インター予測部205は、復号部から送られる復号対象シーケンス単位で数珠繋ぎ動きベクトル予測の再帰的な動きベクトルの探索深度の上限を設定する制御情報(sps_max_num_my_chains)に基づいて、復号対象ブロックにおける数珠繋ぎ動きベクトル予測の再帰的な動きベクトルの探索深度を制限してもよい。
ここで、復号対象シーケンス単位の制御情報は、復号対象シーケンス単位より下位の制御情報であるピクチャ単位或いはスライス単位の制御情報であってもよいし、これらを組み合わせた階層的な制御情報であってもよい。
或いは、インター予測部205は、数珠繋ぎ動きベクトル予測の再帰的な動きベクトルの探索深度に所定の固定値を設定してもよい。インター予測部205は、かかる所定の固定値として、1、2又は3を設定してもよい。
このように数珠繋ぎ動きベクトル予測の探索深度を制限することで、数珠繋ぎ動きベクトルの導出に必要な復号処理量を制限しない場合と比較して削減できる。
(数珠繋ぎ動きベクトル予測のマージ候補数)
以下、数珠繋ぎ動きベクトル予測により導出されるマージ候補数を制限する方法について説明する。
以下、数珠繋ぎ動きベクトル予測により導出されるマージ候補数を制限する方法について説明する。
一例として、インター予測部205は、制御情報に基づいて、復号対象ブロックにおける数珠繋ぎ動きベクトル予測により導出されるマージ候補数を制限してもよい。
具体的には、インター予測部205は、復号部から送られる復号対象シーケンス単位で数珠繋ぎ動きベクトル予測により導出されるマージ候補数の探索深度の上限を設定する制御情報(sps_max_num_cmvp_cand)に基づいて、復号対象ブロックにおける数珠繋ぎ動きベクトル予測により導出されるマージ候補数を制限してもよい。
ここで、復号対象シーケンス単位の制御情報は、復号対象シーケンス単位より下位の制御情報であるピクチャ単位或いはスライス単位の制御情報であってもよいし、これらを組み合わせた階層的な制御情報であってもよい。
或いは、インター予測部205は、数珠繋ぎ動きベクトル予測により導出されるマージ候補数に所定の固定値を設定してもよい。
(数珠繋ぎ動きベクトル予測におけるブロックベクトル探索の制限)
数珠繋ぎ動きベクトル予測の再帰的な動きベクトルの探索において、ブロックベクトルの探索を含めてもよいことを上述した。しかしながら、同一ピクチャ内を参照するブロックベクトルは、文字やコンピュータ生成グラフィックス(CG)を含むスクリーン画像やゲーム画像等では見つかりやすいが、カメラで撮影した画像では見つかりにくい。
数珠繋ぎ動きベクトル予測の再帰的な動きベクトルの探索において、ブロックベクトルの探索を含めてもよいことを上述した。しかしながら、同一ピクチャ内を参照するブロックベクトルは、文字やコンピュータ生成グラフィックス(CG)を含むスクリーン画像やゲーム画像等では見つかりやすいが、カメラで撮影した画像では見つかりにくい。
したがって、画像の特徴に応じて、数珠繋ぎ動きベクトル予測におけるブロックベクトルの探索を制限できるのが望ましい。
一例として、インター予測部205は、復号対象ブロックに対する数珠繋ぎ動きベクトル予測におけるブロックベクトルの探索の可不可を特定する制御情報に基づいて、ブロックベクトル探索を制限してもよい。
具体的には、インター予測部205は、復号部201から送られる復号対象シーケンス単位で数珠繋ぎ動きベクトル予測におけるブロックベクトルの探索可不可を特定する制御情報(sps_cmvp_bv_search_enabled_flag)に基づいて、復号対象ブロックに対する数珠繋ぎ動きベクトル予測におけるブロックベクトルの探索可不可を制限してもよい。
ここで、復号対象シーケンス単位の制御情報は、復号対象シーケンス単位より下位の制御情報であるピクチャ単位或いはスライス単位の制御情報であってもよいし、これらを組み合わせた階層的な制御情報であってもよい。
(数珠繋ぎ動きベクトル予測の参照元の制限)
数珠繋ぎ動きベクトル予測の再帰的な動きベクトルの探索において、最初の動きベクトルの起点を復号対象ブロックの中心に加えて復号対象ブロックの四隅を追加する方法を上述した。
数珠繋ぎ動きベクトル予測の再帰的な動きベクトルの探索において、最初の動きベクトルの起点を復号対象ブロックの中心に加えて復号対象ブロックの四隅を追加する方法を上述した。
しかしながら、画素単位で画素値が急激に変化しやすいスクリーン画像やゲーム画像と比較して、カメラで撮影した画像は変化しにくい。
したがって、画像の特徴に応じて、数珠繋ぎ動きベクトル予測の再帰的な動きベクトルの探索において、最初の動きベクトルの起点を制限できるのが望ましい。
一例として、インター予測部205は、復号対象ブロックに対する数珠繋ぎ動きベクトル予測における最初の動きベクトルの起点を復号対象ブロックの中心に加えて復号対象ブロックの少なくとも1つ以上の所定位置を追加するかどうかを特定する制御情報に基づいて、数珠繋ぎ動きベクトル予測の参照元を制限してもよい。かかる所定位置は、上述した復号対象ブロック内の四隅であってもよい。
具体的には、インター予測部205は、sps_cmvp_multi_position_flagに基づいて、復号対象ブロックに対する数珠繋ぎ動きベクトル予測における最初の動きベクトルの起点を復号対象ブロックの中心に加えて復号対象ブロックの少なくとも一つ以上の所定位置を追加するかどうかを制限してもよい。
ここで、sps_cmvp_multi_position_flagは、復号対象ブロックに対する数珠繋ぎ動きベクトル予測における最初の動きベクトルの起点に、復号対象ブロックの中心に加えて復号対象ブロックの少なくとも1つ以上の所定位置を追加するかどうかを特定する制御情報である。
ここで、復号対象シーケンス単位の制御情報は、復号対象シーケンス単位より下位の制御情報であるピクチャ単位或いはスライス単位の制御情報であってもよいし、これらを組み合わせた階層的な制御情報であってもよい。
(量子化パラメータに基づく数珠繋ぎ動きベクトルの適用制限)
数珠繋ぎ動きベクトルは、参照元のベクトルに対応する参照ブロックの量子化パラメータが大きい場合に適用されやすい。量子化パラメータが大きい場合は、量子化ノイズ(符号化劣化)が発生しやすいため、これらのノイズを含んだ予測画素の生成を回避するために数珠繋ぎ動きベクトルを生成する。
数珠繋ぎ動きベクトルは、参照元のベクトルに対応する参照ブロックの量子化パラメータが大きい場合に適用されやすい。量子化パラメータが大きい場合は、量子化ノイズ(符号化劣化)が発生しやすいため、これらのノイズを含んだ予測画素の生成を回避するために数珠繋ぎ動きベクトルを生成する。
そこで、インター予測部205は、参照ブロックの量子化パラメータに応じて数珠繋ぎ動きベクトルの適用有無を制御すれば、数珠繋ぎ動きベクトルを効率的に適用できる。
具体的には、インター予測部205は、数珠繋ぎ動きベクトルの生成対象である参照元のベクトルに対応する参照ブロックの量子化パラメータが所定の量子化パラメータよりも小さい場合は、復号対象ブロックに数珠繋ぎ動きベクトルを適用しないと判定する。
一方、インター予測部205は、数珠繋ぎ動きベクトルの生成対象である参照元のベクトルに対応する参照ブロックの量子化パラメータが所定の量子化パラメータよりも大きい場合は、復号対象ブロックに数珠繋ぎ動きベクトルを適用しないと判定する。
ここで、所定の量子化パラメータは、復号対象ブロックの量子化パラメータであってもよい。或いは、所定の量子化パラメータは、復号対象ブロックが含まれる復号対象スライスであってもよい。或いは、所定の量子化パラメータは、復号対象ブロックが含まれる復号対象ピクチャであってもよい。
変更例として、インター予測部205は、参照ブロックの量子化パラメータと所定の量子化パラメータとの差が所定の閾値よりも大きいかどうかで数珠繋ぎ動きベクトルの適用有無を判定してもよい。ここで、所定の閾値は、6、12,18、24であってもよい。
変更例として、インター予測部205は、POCに応じて数珠繋ぎ動きベクトル予測の適用有無を制御してもよい。
他の変更例として、インター予測部205は、ピクチャ参照構造の深度(Temporal_idの値)に応じて数珠繋ぎ動きベクトル予測の適用有無を制御してもよい。
具体的に、インター予測部205は、数珠繋ぎ動きベクトルの参照元にする参照ピクチャのTemporal_idが所定値よりも小さい場合は、数珠繋ぎ動きベクトルを適用しないと判定し、一方、具体的に、数珠繋ぎ動きベクトルの参照元にする参照ピクチャのTemporal_idが所定値以上である場合は、数珠繋ぎ動きベクトル予測を適用すると判定してもよい。
ピクチャ参照構造の深度(Temporal_idの値)が大きいほど、一般に大きな量子化パラメータオフセットが適用される。そのため、ピクチャ参照構造の深度(Temporal_idの値)が所定値以上である場合に、数珠繋ぎ動きベクトル予測を適用することで、より符号化劣化が少ない参照ピクチャからインター予測画素を生成できるため、符号化性能が向上する。
逆に、ピクチャ参照構造の深度(Temporal_idの値)が所定値よりも小さい場合には、数珠繋ぎ動きベクトル予測を適用しないことで、数珠繋ぎ動きベクトル予測の動きベクトル探索処理時間が削減できる。
ここで、所定値は、Temporal_idの最大値を0.5倍、0.25倍又は0.125倍の少なくともいずれか1つで積算して小数点以下を切り捨てた値であってもよい。或いは、所定値は、固定値であってもよい。例えば、所定値は、0、1、2、3、4、5の少なくともいずれか1つであってもよい。
<7.数珠繋ぎ動きベクトル予測の適用対象>
非特許文献1及び非特許文献2で開示されている通常マージ以外のマージに対して数珠繋ぎ動きベクトル予測を適用する場合の技術的特徴を説明する。
(MMVD、GPM、TMマージ)
第1に、非特許文献1及び非特許文献2で開示されているMMVD、GPM及びテンプレートマッチングマージ(TMマージ)は、通常マージと同様に、マージリストを構築するが、非特許文献2では、これらのマージ候補リストの構築時のマージ候補の剪定(プルーニング)が、通常マージと比較して強化されており、これらのマージ候補リストは、通常マージのマージ候補リストに格納されるマージ候補とは同一にはなりにくい。
非特許文献1及び非特許文献2で開示されている通常マージ以外のマージに対して数珠繋ぎ動きベクトル予測を適用する場合の技術的特徴を説明する。
(MMVD、GPM、TMマージ)
第1に、非特許文献1及び非特許文献2で開示されているMMVD、GPM及びテンプレートマッチングマージ(TMマージ)は、通常マージと同様に、マージリストを構築するが、非特許文献2では、これらのマージ候補リストの構築時のマージ候補の剪定(プルーニング)が、通常マージと比較して強化されており、これらのマージ候補リストは、通常マージのマージ候補リストに格納されるマージ候補とは同一にはなりにくい。
そのため、MMVD、GPM及びTMマージで、通常マージのマージ候補リストを流用しない場合、通常マージのマージ候補リストのマージ候補に対する数珠繋ぎ動きベクトル予測の適用に加えて、MMVD、GPM及びTMマージのそれぞれのマージ候補リストのマージ候補に対して数珠繋ぎ動きベクトル予測を適用すれば、符号化効率の改善が期待できる。
したがって、インター予測部205は、通常マージのマージ候補リストのマージ候補に対する数珠繋ぎ動きベクトル予測の適用に加えて、マージモード動きベクトル差分のマージ候補リストのマージ候補に対して数珠繋ぎ動きベクトル予測を適用してもよい。
また、インター予測部205は、通常マージのマージ候補リストのマージ候補に対する数珠繋ぎ動きベクトル予測の適用に加えて、幾何学分割モードのマージ候補リストのマージ候補に対して数珠繋ぎ動きベクトル予測を適用してもよい。
また、インター予測部205は、通常マージのマージ候補リストのマージ候補に対する数珠繋ぎ動きベクトル予測の適用に加えて、テンプレートマッチングマージのマージ候補リストのマージ候補に対して数珠繋ぎ動きベクトル予測を適用してもよい。
ここで、インター予測部205は、マージモード動きベクトル差分、幾何学分割モード及びテンプレートマッチングマージ向けに生成される数珠繋ぎ動きベクトルについて、通常マージと同様に、マージ候補リスト格納時の剪定処理、動きベクトルの補正及びマージ候補(動きベクトル)の並び替えを適用してもよい。
(適応動きベクトル予測―マージモード)
上述した非特許文献1及び非特許文献2で開示されている適応動きベクトル予測-マージモード(Adaptive Motion Vector Prediction-Merge mode)では、参照ピクチャリストのリスト0(L0)及びリスト1(L1)のいずれかの動きベクトルが、適応動きベクトル予測(AMVP)、すなわち、制御情報により導出されるため、数珠繋ぎ動きベクトル予測の適用対象をAMVPで導出されていない参照ピクチャリスト番号のマージ候補リストのマージ候補に対して数珠繋ぎ動きベクトル予測を適用すれば、適応動きベクトル予測-マージモードで選択可能なマージ候補の選択肢が増えるため、インター予測精度が向上し、符号化効率の改善が期待できる。
上述した非特許文献1及び非特許文献2で開示されている適応動きベクトル予測-マージモード(Adaptive Motion Vector Prediction-Merge mode)では、参照ピクチャリストのリスト0(L0)及びリスト1(L1)のいずれかの動きベクトルが、適応動きベクトル予測(AMVP)、すなわち、制御情報により導出されるため、数珠繋ぎ動きベクトル予測の適用対象をAMVPで導出されていない参照ピクチャリスト番号のマージ候補リストのマージ候補に対して数珠繋ぎ動きベクトル予測を適用すれば、適応動きベクトル予測-マージモードで選択可能なマージ候補の選択肢が増えるため、インター予測精度が向上し、符号化効率の改善が期待できる。
したがって、インター予測部205は、適応動きベクトル予測-マージモードにおいて、マージ候補リスト内の適応動きベクトル予測で導出されていない参照ピクチャリスト番号のマージ候補に対して数珠繋ぎ動きベクトル予測を適用してもよい。
さらに、インター予測部205は、適応動きベクトル予測-マージモードにおいて、マージ候補リスト内の適応動きベクトル予測で導出されていない参照ピクチャリスト番号のマージ候補に対して数珠繋ぎ動きベクトル予測を適用する際、生成する数珠繋ぎ動きベクトルを適応動きベクトル予測で導出されている動きベクトルの参照ピクチャに参照させないように制限してもよい。
ここで、インター予測部205は、適応動きベクトル予測-マージモード向けに生成される数珠繋ぎ動きベクトルについて、通常マージと同様に、マージ候補リストの格納時の剪定処理、動きベクトルの補正及びマージ候補(動きベクトル)の並び替えを適用してもよい。
(サブブロックマージモード)
上述した非特許文献1及び非特許文献2で開示されているアフィンマージ(Affine merge)は、復号対象ブロック内のサブブロックごとの動きベクトルをアフィン変換で導出するために、図24に示すように、片予測(L0又はL1のいずれか一方)の場合は、2つ又は3つのコントロールポイント動きベクトルcpMvを導出し、双予測(L0及びL1の双方)の場合は、4つ又は6つのコントロールポイント動きベクトルcpMvを導出する。
上述した非特許文献1及び非特許文献2で開示されているアフィンマージ(Affine merge)は、復号対象ブロック内のサブブロックごとの動きベクトルをアフィン変換で導出するために、図24に示すように、片予測(L0又はL1のいずれか一方)の場合は、2つ又は3つのコントロールポイント動きベクトルcpMvを導出し、双予測(L0及びL1の双方)の場合は、4つ又は6つのコントロールポイント動きベクトルcpMvを導出する。
なお、片予測或いは双予測のL0及びL1のそれぞれのコントロールポイント動きベクトルは、全て同一の参照ピクチャを参照する。
アフィンマージでは、非特許文献1及び非特許文献2で開示されているように、これらのコントロールポイント動きベクトルが、アフィンマージ向けマージ候補リストに格納されたマージ候補より導出される。
インター予測部205は、非特許文献1及び非特許文献2で開示されているアフィンマージ向けマージ候補の導出方法と同様に、アフィンマージ向けマージ候補リストに格納されるマージ候補を導出してもよい。
例えば、インター予測部205は、復号対象ブロックに空間的に隣接又は近接する位置に2つ又は3つのコントロールポイント動きベクトルが蓄積されている場合、それらを復号対象ブロックのアフィンマージ向けマージ候補リストに追加してもよい。
或いは、インター予測部205は、復号対象ブロックに空間的に隣接又は近接する位置に複数の動きベクトルが蓄積されている場合、それらに基づいて、復号対象ブロックのコントロールポイント動きベクトルを生成してアフィンマージ向けマージ候補リストに追加してもよい。
したがって、インター予測部205は、アフィンマージモードにおいて、マージ候補リストに格納されている少なくとも2つ以上のコントロールポイント動きベクトルに対して再帰的に動きベクトルを探索して導出された動きベクトルを、最初のコントロールポイント動きベクトルのそれぞれに加算して、数珠繋ぎコントロールポイント動きベクトルを生成し、マージ候補リストに格納してもよい。
さらに、インター予測部205は、アフィンマージモードにおいて、マージ候補リストに格納されている少なくとも2つ以上のコントロールポイント動きベクトルに対して再帰的に動きベクトルを探索する際、各コントロールポイント動きベクトルに対する探索対象の参照ピクチャを同一の参照ピクチャに制限してもよい。
或いは、インター予測部205は、アフィンマージモードにおいて、マージ候補リストに格納されているL0及びL1の少なくとも2つ以上のコントロールポイント動きベクトルに対して再帰的に動きベクトルを探索する際、L0及びL1のそれぞれの各コントロールポイント動きベクトルに対する探索対象の参照ピクチャを同一の参照ピクチャに制限してもよい。
ここで、インター予測部205は、アフィンマージ向けに生成される数珠繋ぎコントロールポイント動きベクトルについて、通常マージと同様に、マージ候補リストの格納時の剪定処理、動きベクトルの補正及びマージ候補(動きベクトル)の並び替えを適用してもよい。
(適応動きベクトル予測に対する数珠繋ぎ動きベクトル予測の適用)
インター予測部205は、非特許文献1で開示されている適応動きベクトル予測に対する数珠繋ぎ動きベクトル予測に適用してもよい。以下、具体的な方法について説明する。
インター予測部205は、非特許文献1で開示されている適応動きベクトル予測に対する数珠繋ぎ動きベクトル予測に適用してもよい。以下、具体的な方法について説明する。
適応動きベクトル予測は、復号対象ブロックの動きベクトルの候補を空間的又は時間的に隣接する位置に蓄積された動きベクトルを、適応動きベクトルの動きベクトル候補リスト(以下、適応動きベクトル候補リスト)に格納する。
ここで、図25に示すように、適応動きベクトル予測では、マージ候補リストとは異なり、参照ピクチャリストL0及びL1のそれぞれに格納されている各参照ピクチャに対して、動きベクトル候補を格納するリストが構築される。
インター予測部205における適応動きベクトル候補リストから動きベクトル候補(MVP:動きベクトル予測)を導出する方法は、以下の通りである。
まず、復号部201が、参照ピクチャリストL0及びL1のそれぞれから動きベクトル候補を導出するための参照ピクチャを特定するためのインデックス(ref_idx_l0、ref_idx_l1)を復号し、インター予測部205が、そのインデックスの値に基づいて参照ピクチャを特定する。
次に、復号部201が、特定したL0及びL1の参照ピクチャに対応する動きベクトル候補リストから動きベクトル候補を導出するためのフラグ(mvp_l0_flag、mvp_l1_flag)を復号し、インター予測部205が、そのフラグの値に基づいて動きベクトルを特定する。
最後に、インター予測部205は、導出されたL0とL1それぞれのMVPに対して、符号化装置から伝送されるL0とL1それぞれの動きベクトル差分(MVD)を加算して、L0とL1の動きベクトルを最終的に導出する。
ここで、本発明では、上述の適応動きベクトル候補リストに格納する動きベクトル候補の生成に対して数珠繋ぎ動きベクトル予測を適用する。
具体的に、適応動きベクトル予測では、前述した通り、各参照ピクチャに対して、その各参照ピクチャを参照する動きベクトルが格納される。そのため、各参照ピクチャを参照する動きベクトルを復号対象ブロックに対して空間的又は時間的に隣接する位置に蓄積された動きベクトルを探索し、ref_idx_l0、ref_idx_l1で特定される探索対象の参照ピクチャを参照するかどうかで適応動きベクトル候補リストに格納するかどうかを判定する。
つまり、インター予測部205は、探索された動きベクトルがref_idx_l0、ref_idx_l1で特定される探索対象の参照ピクチャを参照する場合は、適応動きベクトル候補リストに格納すると判定し、上述の参照ピクチャを参照しない場合は、適応動きベクトル候補リストに格納しないと判定する。
ここで、インター予測部205は、動きベクトルの探索過程において適応動きベクトル候補リストに格納されなかった動きベクトルを保持し、当該動きベクトルに対して数珠繋ぎ動きベクトル予測を適用する。
そして、インター予測部205は、数珠繋ぎ動きベクトル予測を適用した結果、最終的に導出される動きベクトル(数珠繋ぎ動きベクトル)が探索対象の参照ピクチャを参照する場合は、適応動きベクトル候補リストに数珠繋ぎ動きベクトルを格納すると判定し、上述の参照ピクチャを参照しない場合は適応動きベクトル候補リストに数珠繋ぎ動きベクトルを格納しないと判定する。
インター予測部205は、参照ピクチャリストが2つ(すなわち、L0及びL1)ある場合は、L0及びL1の各参照ピクチャリスト内の参照ピクチャを用いて、動きベクトルの候補を導出してもよい。
以上のように、インター予測部205は、適応動きベクトルで導出された動きベクトルに対して、数珠繋ぎ動きベクトル予測を適用し、新たな動きベクトルを導出してもよい。
ここで、非特許文献1では、適応動きベクトルにより最終的に導出される動きベクトルを構成する動きベクトル差分の伝送符号量を削減する技術として、動きベクトルの画素精度を量子化する適応動きベクトル解像度(AMVR:Adaptive Motion Vector Resolution)が開示されている。
インター予測部205は、AMVRが有効な場合、数珠繋ぎ動きベクトルに導出される最終的な動きベクトルをAMVRによって量子化される動きベクトルの画素精度に整合させ(丸め)てもよい。
或いは、インター予測部205は、AMVRが有効な場合、数珠繋ぎ動きベクトルに導出時の再帰的な動きベクトルの探索過程において、探索される動きベクトルの画素精度をAMVRによって量子化される動きベクトルの画素精度に整合させ(丸め)てもよい。
非特許文献1には、復号対象ブロック単位でAMVRの適用有無を制御するフラグ及びAMVRによる動きベクトルの画素精度を特定するインデックスが開示されている。
復号部201が、これらのフラグ及びインデックスから、AMVRが適用され且つ動きベクトルの画素精度が量子化されることを特定した場合、インター予測部205は、適応動きベクトルで導出された動きベクトルに対して数珠繋ぎ動きベクトルを適用して新たな動きベクトルを探索する際の動きベクトルの画素精度をAMVRによって量子化される画素精度に変更してもよい。
或いは、変更例として、インター予測部205は、数珠繋ぎ動きベクトル予測による動きベクトルの探索過程では、AMVRにより量子化された動きベクトルの画素精度に整合させず、数珠繋ぎ動きベクトル予測により最終的に導出される動きベクトルの画素精度をAMVRにより量子化された動きベクトルの画素精度に整合させてもよい。
(バイラテラルマージモードに対する数珠繋ぎ動きベクトル予測の適用)
インター予測部205は、非特許文献2で開示されているバイラテラルマージモードに対して数珠繋ぎ動きベクトル予測に適用してもよい。以下、具体的な方法について説明する。
インター予測部205は、非特許文献2で開示されているバイラテラルマージモードに対して数珠繋ぎ動きベクトル予測に適用してもよい。以下、具体的な方法について説明する。
バイラテラルマージモード(BM)は、前述した通常マージモードと同様に、マージ候補リストをインター予測部205が構築して動きベクトルを導出する。
ただし、バイラテラルマージモードは、通常マージモードとは異なり、L0とL1のマージ候補リストに格納される動きベクトルの参照ピクチャの参照先がそれぞれ異なる時間方向(復号対象ブロックを含む復号対象ピクチャから見て片方は過去方向、もう片方は未来方向)を指し、かつ復号対象ピクチャから各参照ピクチャの距離が同一であるという条件(BM条件)を満たす2つの動きベクトルが格納され、BM条件を満たさない2つの動きベクトルは格納されずに剪定される。
ここで、本発明では、インター予測部205がBM条件を満たさない動きベクトルを保持し、数珠繋ぎ動きベクトル予測を適用して新たな動きベクトルを探索し、BM条件を満たす動きベクトルが見つかれば、マージ候補リストに格納してもよい。
変更例として、インター予測部205はBM条件を満たす動きベクトルのみを格納するマージ候補リストとは別に、BM条件を満たさず数珠繋ぎ動きベクトル予測によって生成された新たにBM条件を満たす動きベクトルを格納するためのマージ候補リストを構築してもよい。
本実施形態に係る画像復号装置によれば、インター予測部205が復号対象ブロックに空間的又は時間的に隣接又は近接する位置の動きベクトルに対して再帰的に復号ピクチャバッファ207に蓄積されている動きベクトルを探索して導出される全ての動きベクトルを加算して生成される動きベクトルを復号対象ブロックの動きベクトルとして導出するため、インター予測で選択可能な動きベクトルの選択肢が増えてインター予測精度が向上し、符号化効率が改善する。
上述の画像復号装置200は、コンピュータに各機能(各工程)を実行させるプログラムであって実現されていてもよい。
なお、本実施形態によれば、例えば、動画像通信において総合的なサービス品質の向上を実現できることから、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進するとともに、イノベーションの拡大を図る」に貢献することが可能となる。
200…画像復号装置
201…復号部
202…逆量子化部
203…逆変換部
204…イントラ予測部
205…インター予測部
206…加算器
207…復号ピクチャバッファ
210…符号入力部
220…画像出力部
201…復号部
202…逆量子化部
203…逆変換部
204…イントラ予測部
205…インター予測部
206…加算器
207…復号ピクチャバッファ
210…符号入力部
220…画像出力部
Claims (4)
- 画像復号装置であって、
符号情報を可変長復号して量子化値及び制御情報を出力する復号部と、
前記量子化値を逆量子化して変換係数を出力する逆量子化部と、
前記変換係数を逆変換して予測残差画素を出力する逆変換部と、
前記制御情報及び復号済み画素からイントラ予測画素を生成するイントラ予測部と、
前記復号済み画素を蓄積する復号ピクチャバッファと、
前記制御情報及び前記復号ピクチャバッファに蓄積されている前記復号済み画素からインター予測画素を生成するインター予測部と、
前記予測残差画素に対して前記イントラ予測画素と及び前記インター予測画素の少なくとも一方を加算して前記復号済み画素を生成する加算器とを備え、
前記インター予測部は、動きベクトルの候補を格納するマージ候補リストに格納されている復号対象ブロックに空間的又は時間的に隣接又は近接する位置の動きベクトルのうち、参照先が前記復号ピクチャバッファに蓄積されているコロケーテッドピクチャ内である動きベクトルのみに限定して新たな動きベクトルを再探索して導出した全ての動きベクトルを加算することで、数珠繋ぎ動きベクトルを生成し、前記数珠繋ぎ動きベクトルを前記復号対象ブロックの動きベクトルの候補として導出する数珠繋ぎ動きベクトル予測を行うことを特徴とする画像復号装置。 - 前記インター予測部は、前記数珠繋ぎ動きベクトル予測の再帰的な動きベクトルの探索領域を、前記コロケーテッドピクチャ内の復号対象ブロックと同一画素位置の参照ブロックが含まれる符号化ツリーユニットの一行分の領域に制限することを特徴とする請求項1に記載の画像復号装置。
- 画像復号方法であって、
符号情報を可変長復号して量子化値及び制御情報を出力する工程Aと、
前記量子化値を逆量子化して変換係数を出力する工程Bと、
前記変換係数を逆変換して予測残差画素を出力する工程Cと、
前記制御情報及び復号済み画素からイントラ予測画素を生成する工程Dと、
前記復号済み画素を復号ピクチャバッファに蓄積する工程Eと、
前記制御情報及び前記復号ピクチャバッファに蓄積されている前記復号済み画素からインター予測画素を生成する工程Fと、
前記予測残差画素に対して前記イントラ予測画素と及び前記インター予測画素の少なくとも一方を加算して前記復号済み画素を生成する工程Gとを有し、
前記工程Fにおいて、動きベクトルの候補を格納するマージ候補リストに格納されている復号対象ブロックに空間的又は時間的に隣接又は近接する位置の動きベクトルのうち、参照先が前記復号ピクチャバッファに蓄積されているコロケーテッドピクチャ内である動きベクトルのみに限定して新たな動きベクトルを再探索して導出した全ての動きベクトルを加算することで、数珠繋ぎ動きベクトルを生成し、前記数珠繋ぎ動きベクトルを前記復号対象ブロックの動きベクトルの候補として導出する数珠繋ぎ動きベクトル予測を行うことを特徴とする画像復号方法。 - コンピュータを、画像復号装置として機能させるプログラムであって、
前記画像復号装置は、
符号情報を可変長復号して量子化値及び制御情報を出力する復号部と、
前記量子化値を逆量子化して変換係数を出力する逆量子化部と、
前記変換係数を逆変換して予測残差画素を出力する逆変換部と、
前記制御情報及び復号済み画素からイントラ予測画素を生成するイントラ予測部と、
前記復号済み画素を蓄積する復号ピクチャバッファと、
前記制御情報及び前記復号ピクチャバッファに蓄積されている前記復号済み画素からインター予測画素を生成するインター予測部と、
前記予測残差画素に対して前記イントラ予測画素と及び前記インター予測画素の少なくとも一方を加算して前記復号済み画素を生成する加算器とを備え、
前記インター予測部は、動きベクトルの候補を格納するマージ候補リストに格納されている復号対象ブロックに空間的又は時間的に隣接又は近接する位置の動きベクトルのうち、参照先が前記復号ピクチャバッファに蓄積されているコロケーテッドピクチャ内である動きベクトルのみに限定して新たな動きベクトルを再探索して導出した全ての動きベクトルを加算することで、数珠繋ぎ動きベクトルを生成し、前記数珠繋ぎ動きベクトルを前記復号対象ブロックの動きベクトルの候補として導出する数珠繋ぎ動きベクトル予測を行うことを特徴とするプログラム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2024-063019 | 2024-04-09 | ||
| JP2024063019A JP2025160045A (ja) | 2024-04-09 | 2024-04-09 | 画像復号装置、画像復号方法及びプログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025215919A1 true WO2025215919A1 (ja) | 2025-10-16 |
Family
ID=97349656
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2025/002832 Pending WO2025215919A1 (ja) | 2024-04-09 | 2025-01-29 | 画像復号装置、画像復号方法及びプログラム |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP2025160045A (ja) |
| WO (1) | WO2025215919A1 (ja) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2023076700A1 (en) * | 2021-10-30 | 2023-05-04 | Beijing Dajia Internet Information Technology Co., Ltd. | Motion compensation considering out-of-boundary conditions in video coding |
| WO2023098899A1 (en) * | 2021-12-03 | 2023-06-08 | Beijing Bytedance Network Technology Co., Ltd. | Method, apparatus, and medium for video processing |
-
2024
- 2024-04-09 JP JP2024063019A patent/JP2025160045A/ja active Pending
-
2025
- 2025-01-29 WO PCT/JP2025/002832 patent/WO2025215919A1/ja active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2023076700A1 (en) * | 2021-10-30 | 2023-05-04 | Beijing Dajia Internet Information Technology Co., Ltd. | Motion compensation considering out-of-boundary conditions in video coding |
| WO2023098899A1 (en) * | 2021-12-03 | 2023-06-08 | Beijing Bytedance Network Technology Co., Ltd. | Method, apparatus, and medium for video processing |
Non-Patent Citations (1)
| Title |
|---|
| Y. KIDANI (KDDI), H. KATO (KDDI), K. KAWAMURA (KDDI),: "Non-EE2: Chained motion vector prediction", 33. JVET MEETING; 20240117 - 20240126; TELECONFERENCE; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ), 19 January 2024 (2024-01-19), XP030313910 * |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2025160045A (ja) | 2025-10-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11917187B2 (en) | Video signal processing method and device using motion compensation | |
| JP7397130B2 (ja) | 動きマージモードのシグナリングのための方法、電子装置、非一時的コンピュータ可読記憶媒体およびコンピュータプログラム | |
| JP2023018000A (ja) | イントラ予測モードを有するルックアップテーブルおよび非隣接ブロックからのイントラモード予測 | |
| JP2024038271A (ja) | ビデオ信号処理方法及び装置 | |
| WO2025215919A1 (ja) | 画像復号装置、画像復号方法及びプログラム | |
| WO2025150301A1 (ja) | 画像復号装置、画像復号方法及びプログラム | |
| WO2025150307A1 (ja) | 画像復号装置、画像復号方法及びプログラム | |
| WO2025150304A1 (ja) | 画像復号装置、画像復号方法及びプログラム | |
| WO2025150302A1 (ja) | 画像復号装置、画像復号方法及びプログラム | |
| WO2025150305A1 (ja) | 画像復号装置、画像復号方法及びプログラム | |
| WO2025150303A1 (ja) | 画像復号装置、画像復号方法及びプログラム | |
| WO2025150306A1 (ja) | 画像復号装置、画像復号方法及びプログラム | |
| WO2024149251A1 (en) | Methods and apparatus of cross-component model merge mode for video coding | |
| JP2026008039A (ja) | 画像復号装置、画像復号方法及びプログラム | |
| CN121312138A (zh) | 用于帧内块复制的方法和设备 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 25786582 Country of ref document: EP Kind code of ref document: A1 |