Intra block coding-based video or image coding
Patent Information
- Authority / Receiving Office
- AU · AU
- Patent Type
- Applications
- Current Assignee / Owner
- NOKIA TECHNOLOGIES OY
- Filing Date
- 2024-07-18
- Publication Date
- 2026-07-09
AI Technical Summary
Current video coding technologies face challenges in efficiently deriving motion information for inter prediction, particularly in reducing the amount of motion information transmitted and optimizing the selection of merge candidates for motion vector prediction, which affects coding efficiency and complexity.
The solution involves configuring a merge candidate list using both spatial and temporal neighboring blocks, with a prioritization mechanism to select optimal merge candidates based on ratedistortion cost, and employing history-based motion vector prediction to reduce redundancy and improve coding efficiency.
This approach reduces the amount of motion information transmitted, enhances coding efficiency, and simplifies the decoding process by optimizing the selection of motion vectors and prediction modes, leading to improved video compression performance.
Smart Images

Figure 00000079_0000 
Figure 00000080_0000 
Figure 00000081_0000
Abstract
Description
[115] For the neighboring intra modes, two neighboring blocks, i.e., a left neighboring block and an upper neighboring block, may be considered.
[116] As described above, if the MPM list is configured not to include the planar mode, the planar mode is excluded from the list, and the number of MPM list candidates may be set to 5. 2024204950 18 Jul 2024
[117] In addition, the non-directional mode (or non-angular mode) among the intra prediction modes may include a DC mode based on the average of neighboring reference samples of the current block or a planar mode based on interpolation.
[118] When inter prediction is applied, the predictor of the encoding apparatus / decoding apparatus may derive a prediction sample by performing inter prediction in units of blocks. Inter prediction may be a prediction derived in a manner that is dependent on data elements (ex. sample values or motion information) of picture(s) other than the current picture. When inter prediction is applied to the current block, a predicted block (prediction sample array) for the current block may be derived based on a reference block (reference sample array) specified by a motion vector on the reference picture indicated by the reference picture index. Here, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information of the current block may be predicted in units of blocks, subblocks, or samples based on correlation of motion information between the neighboring block and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter prediction type (L0 prediction, LI prediction, Bi prediction, etc.) information. In the case of inter prediction, the neighboring block may include a spatial neighboring block present in the current picture and a temporal neighboring block present in the reference picture. The reference picture including the reference block and the reference picture including the temporal neighboring block may be the same or different. The temporal neighboring block may be called a collocated reference block, a co-located CU (colCU), and the like, and the reference picture including the temporal neighboring block may be called a collocated picture (colPic). For example, a motion information candidate list may be configured based on neighboring blocks of the current block, and flag or index information indicating which candidate is selected (used) may be signaled to derive a motion vector and / or a reference picture index of the current block. Inter prediction 2024204950 18 Jul 2024 may be performed based on various prediction modes. For example, in the case of a skip mode and a merge mode, the motion information of the current block may be the same as motion information of the neighboring block. In the skip mode, unlike the merge mode, the residual signal may not be transmitted. In the case of the motion vector prediction (MVP) mode, the motion vector of the selected neighboring block may be used as a motion vector predictor and the motion vector of the current block may be signaled. In this case, the motion vector of the current block may be derived using the sum of the motion vector predictor and the motion vector difference.
[119] The motion information may include L0 motion information and / or LI motion information according to an inter prediction type (L0 prediction, LI prediction, Bi prediction, etc.). The motion vector in the L0 direction may be referred to as an L0 motion vector or MVLO, and the motion vector in the LI direction may be referred to as an LI motion vector or MVL1. Prediction based on the L0 motion vector may be called L0 prediction, prediction based on the LI motion vector may be called LI prediction, and prediction based on both the L0 motion vector and the LI motion vector may be called bi-prediction. Here, the L0 motion vector may indicate a motion vector associated with the reference picture list L0 (L0), and the LI motion vector may indicate a motion vector associated with the reference picture list LI (LI). The reference picture list L0 may include pictures that are earlier in output order than the current picture as reference pictures, and the reference picture list LI may include pictures that are later in the output order than the current picture. The previous pictures may be called forward (reference) pictures, and the subsequent pictures may be called reverse (reference) pictures. The reference picture list L0 may further include pictures that are later in the output order than the current picture as reference pictures. In this case, the previous pictures may be indexed first in the reference picture list L0 and the subsequent pictures may be indexed later. The reference picture list LI may further include previous pictures in the output order than the current picture 2024204950 18 Jul 2024 as reference pictures. In this case, the subsequent pictures may be indexed first in the reference picture list 1 and the previous pictures may be indexed later. The output order may correspond to picture order count (POC) order.
[120] FIG. 4 is a drawing for explaining a method of deriving motion information through the inter prediction mode. Here, among the inter prediction modes, a merge mode, a motion vector prediction (MVP) mode (or advanced motion vector prediction (AMVP)), a pairwise average merge mode, and a history-based MVP (HMVP) mode are described below.
[121] When the merge mode is applied, the motion information of the current prediction block is not directly transmitted, and the motion information of the current prediction block is derived using motion information of a neighboring prediction block. Therefore, the motion information of the current prediction block may be indicated by transmitting flag information indicating that the merge mode is used and a merge index indicating which neighboring prediction blocks are used.
[122] The encoder must search a merge candidate block used to derive motion information of the current prediction block to perform the merge mode. For example, up to five merge candidate blocks may be used, but the present disclosure is not limited thereto. A maximum number of the merge candidate blocks may be transmitted in a slice header, a tile group header, or a parameter set (i.e., a sequence parameter set (SPS)), and the present disclosure is not limited thereto. After finding the merge candidate blocks, the encoder may generate a merge candidate list and select a merge candidate block having the smallest cost among them as a final merge candidate block.
[123] The present disclosure provides various embodiments of a merge candidate block configuring the merge candidate list.
[124] The merge candidate list may use, for example, five merge candidate blocks. For example, four spatial merge candidates and one temporal merge candidate may be used. As a 2024204950 18 Jul 2024 specific example, in the case of the spatial merge candidate, the blocks shown in FIG. 4 may be used as the spatial merge candidate.
[125] The merge candidate list for the current block may be configured based on, for example, the following procedure.
[126] The coding apparatus (encoder / decoder) inserts spatial merge candidates derived by searching for spatial neighboring blocks of the current block into the merge candidate list (S310). For example, the spatial neighboring blocks may include a bottom left corner neighboring block, a left neighboring block, a top right corner neighboring block, a top neighboring block, and a top left corner neighboring block of the current block. However, this is merely an example and, in addition to the above-described spatial neighboring blocks, additional neighboring blocks such as a right neighboring block, a bottom neighboring block, and a bottom right neighboring block may be used as the spatial neighboring blocks. The coding apparatus may search for the spatial neighboring blocks based on priority to detect available blocks and derive motion information of the detected blocks as the spatial merge candidates. For example, the encoder and decoder may search for the five blocks shown in Figure 1.3.2-1 in order of Al, Bl, B0, A0, B2 and sequentially index the available candidates to configure a merge candidate list.
[127] The coding apparatus inserts the temporal merge candidate derived by searching the temporal neighboring block of the current block into the merge candidate list (S320). The temporal neighboring block may be located on a reference picture that is a picture different from the current picture in which the current block is located. The reference picture in which the temporal neighboring block is located may be called a collocated picture or a col picture. The temporal neighboring block may be searched in order of the bottom right corner neighboring block and the bottom right center block of the co-located block for the current block on the col picture. Meanwhile, when motion data compression is applied, specific motion 2024204950 18 Jul 2024 information may be stored as representative motion information for each predetermined storage unit in the col picture. In this case, it is not necessary to store the motion information for all the blocks in the predetermined storage unit, thereby obtaining a motion data compression effect. In this case, the predetermined storage unit may be previously determined, for example, in 16x16 sample units, 8x8 sample units, or the like, or size information on the predetermined storage unit may be signaled from the encoder to the decoder. When the motion data compression is applied, motion information of the temporal neighboring block may be replaced with representative motion information of the predetermined storage unit in which the temporal neighboring block is located. That is, in this case, from an implementation point of view, a predetermined value is arithmetically shifted to the right based on coordinates (top left sample position) of the temporal neighboring block, and thereafter, the temporal merge candidate may be derived based on motion information of the prediction block covering an arithmetically left shifted position. For example, in the case of a sample unit having the predetermined storage unit is 2nx2n, if the coordinates of the temporal neighboring block are (xTnb, yTnb), motion information of the prediction block located at the modified position ((xTnb»n)«n), (yTnb»n)«n)). Specifically, for example, in case where the predetermined storage unit is a 16x16 sample unit, if the coordinates of the temporal neighboring block are (xTnb, yTnb), motion information of the prediction block located at modified position ((xTnb»4)«4), (yTnb»4)«4)) may be used for the temporal merge candidate. Or, for example, in case where the predetermined storage unit is an 8x8 sample unit, if the coordinates of the temporal neighboring block are (xTnb, yTnb), motion information of the prediction block located at the modified position ((xTnb»3)«3), (yTnb»3)«3)) may be used for the temporal merge candidate.
[128] The coding apparatus may determine whether the number of current merge candidates is smaller than the maximum number of merge candidates (maximum number of candidates 2024204950 18 Jul 2024 included in the merge candidate list) (S330). The maximum number of merge candidates may be predefined or signaled from the encoder to the decoder (i.e., through a tile group header or a SPS). For example, the encoder may generate information on the maximum number of merge candidates (maximum number of candidates included in the merge candidate list), encode the information, and transmit the encoded information to the decoder in the form of a bitstream. If the maximum number of merge candidates is filled up, a subsequent candidate addition process may not be performed.
[129] As a result of the checking, if the number of the current merge candidates is smaller than the maximum number of merge candidates, the coding apparatus inserts the additional merge candidate into the merge candidate list (S340). The additional merge candidate may include, for example, an ATMVP, and a combined bi-predictive merge candidate (when the slice / tile type of the current slice / tile group is B) and / or a zero vector merge candidate.
[130] As a result of the checking, if the number of the current merge candidates is not smaller than the number of the maximum merge candidates, the coding apparatus may terminate the construction of the merge candidate list. In this case, the encoder may select an optimal merge candidate among merge candidates configuring the merge candidate list based on a ratedistortion (RD) cost, and signal selection information (ex. merge index) indicating the selected merge candidate to the decoder. The decoder may select the optimal merge candidate based on the merge candidate list and the selection information.
[131] As described above, the motion information of the selected merge candidate may be used as the motion information of the current block, and the prediction samples of the current block may be derived based on the motion information of the current block. An encoder may derive residual samples of the current block based on the prediction samples, and may signal residual information on the residual samples to a decoder. The decoder may generate reconstructed samples based on the residual samples and the predicted samples derived based 2024204950 18 Jul 2024 on the residual information, and generate a reconstructed picture based thereon as described above.
[132] When the skip mode is applied, the motion information of the current block may be derived in the same manner as that of the case where the merge mode is applied. However, when the skip mode is applied, the residual signal for the corresponding block is omitted, and thus prediction samples may be used as reconstructed samples.
[133] When a motion vector prediction (MVP) mode is applied, a motion vector predictor (mvp) candidate list may be generated using a motion vector of a reconstructed spatial neighboring block (which may be the neighboring block of FIG. 4) and / or a motion vector of a temporal neighboring block (or Col block). That is, the motion vector corresponding to the reconstructed spatial neighboring block and / or the motion vector corresponding to the temporal neighboring block may be used as a motion vector predictor candidate. When bi-prediction is applied, an mvp candidate list for deriving L0 motion information and an mvp candidate list for deriving LI motion information may be generated and used separately. The abovedescribed prediction information (or information on the prediction) may include selection information (ex. MVP flag or MVP index) indicating an optimal motion vector predictor candidate selected from the motion vector predictor candidates included in the list. In this case, the predictor may select a motion vector predictor of the current block from among the motion vector predictor candidates included in the motion vector candidate list using the selection information. The predictor of the encoding apparatus may obtain a motion vector difference (MVD) between the motion vector of the current block and the motion vector predictor, encode the same, and output it in a bitstream form. That is, the MVD may be obtained as a value obtained by subtracting the motion vector predictor from the motion vector of the current block. In this case, the predictor of the decoding apparatus may obtain a motion vector difference included in the information on the prediction and derive the motion vector of the current block 2024204950 18 Jul 2024 by adding the motion vector difference and the motion vector predictor. The predictor of the decoding apparatus may obtain or derive a reference picture index indicating the reference picture from the information on the prediction.
[134] The history-based MVP (HMVP) merge candidates can be added to merge list after the spatial MVP and TMVP. In this method, the motion information of a previously coded block is stored in a table and used as MVP for the current CU. The table with multiple HMVP candidates is maintained during the encoding / decoding process. The table is reset (emptied) when a new CTU row is encountered. Whenever there is a non-subblock inter-coded CU, the associated motion information is added to the last entry of the table as a new HMVP candidate.
[135] The HMVP table size S is set to be 6, which indicates up to 6 History-based MVP (HMVP) candidates may be added to the table. When inserting a new motion candidate to the table, a constrained first-in-first-out (FIFO) rule is utilized wherein redundancy check is firstly applied to find whether there is an identical HMVP in the table. If found, the identical HMVP is removed from the table and all the HMVP candidates afterwards are moved forward,
[136] HMVP candidates could be used in the merge candidate list construction process. The latest several HMVP candidates in the table are checked in order and inserted to the candidate list after the TMVP candidate. Redundancy check is applied on the HMVP candidates to the spatial or temporal merge candidate.
[137] To reduce the number of redundancy check operations, the following simplifications are introduced:
[138] 1) Number of HMPV candidates is used for merge list generation is set as (N <= 4 ) ? M: (8 - N), wherein N indicates number of existing candidates in the merge list and M indicates number of available HMVP candidates in the table.
[139] 2) Once the total number of available merge candidates reaches the maximally allowed merge candidates minus 1, the merge candidate list construction process from HMVP is 2024204950 18 Jul 2024 terminated.
[140] Pairwise average candidates are generated by averaging predefined pairs of candidates in the existing merge candidate list, and the predefined pairs are defined as {(0, 1), (0, 2), (1, 2), (0, 3), (1, 3), (2, 3)}, where the numbers denote the merge indices to the merge candidate list. The averaged motion vectors are calculated separately for each reference list. If both motion vectors are available in one list, these two motion vectors are averaged even when they point to different reference pictures; if only one motion vector is available, use the one directly; if no motion vector is available, keep this list invalid.
[141] When the merge list is not full after pair-wise average merge candidates are added, the zero MVPs are inserted in the list until the maximum merge candidate number is encountered.
[142] Hereinafter, the detailed description of IBC, which may be performed by the predictor of the apparatus of FIG. 2 or FIG. 3, will be described. The IBC may be used for content image / video coding of a game or the like, for example, screen content coding (SCC). The IBC basically performs prediction in the current picture but may be performed similarly to inter prediction in that a reference block is derived in the current picture. That is, IBC may use at least one of the inter prediction techniques described in the present document. For example, the IBC may use at least one of the above-described methods for deriving motion information (motion vector). The IBC may refer to the current picture, and thus may be referred to as a current picture referencing (CPR). When the above-described prediction methods are applied in the IBC, a motion vector (motion information) may be generally referred to (replaced or mixed) as a block vector (block information).
[143] For the IBC, the encoding apparatus may perform block matching (BM) to derive an optimal block vector (or motion vector) for the current block (ex. CU). The derived block vector (or motion vector) may be signaled to the decoding apparatus through a bitstream using a method similar to the block information (motion vector) signaling in inter prediction 2024204950 18 Jul 2024 described above. The decoding apparatus may derive a reference block for the current block in the current picture through the signaled block vector (motion vector), thereby driving a prediction signal (predicted block or predicted samples) for the current block. Here, the block vector (or motion vector) may represent a displacement from the current block to the reference block located in an area already reconstructed in the current picture. Thus, the block vector (or motion vector) may be called a displacement vector. Hereinafter, in the IBC, the motion vector may correspond to the block vector or the displacement vector. The motion vector of the current block may include a motion vector for a luma component (luma motion vector) or a motion vector for a chroma component (chroma motion vector). For example, the luma motion vector for an IBC coded CU may be an integer sample unit (i.e., integer precision). Chroma motion vectors may also be clipped in integer sample units. As mentioned above, the IBC may use at least one of the inter prediction techniques, for example, 1-pel and 4-pel motion vector precision may be switched when the IBC is applied like AMVR.
[144] To reduce memory consumption and decoder complexity, only the reconstructed portion of the predefined area including current CTU may be used. This restriction allows the IBC mode to be implemented using local on-chip memory for hardware implementations.
[145] At the encoder side, hash-based motion estimation is performed for IBC. The encoder performs RD check for blocks with either width or height no larger than 16 luma samples. For non-merge mode, the block vector search is performed using hash-based search first. If hash search does not return valid candidate, block matching based local search will be performed.
[146] In the hash-based search, hash key matching (32-bit CRC) between the current block and a reference block is extended to all allowed block sizes. The hash key calculation for every position in the current picture is based on 4x4 sub-blocks. For the current block of a larger size, a hash key is determined to match that of the reference block when all the hash keys of all 4x4 sub-blocks match the hash keys in the corresponding reference locations. If hash keys of 2024204950 18 Jul 2024 multiple reference blocks are found to match that of the current block, the block vector costs of each matched reference are calculated and the one with the minimum cost is selected.
[147] In block matching search, the search range is set to be N samples to the left and on top of the current block within the current CTU. At the beginning of a CTU, the value of N is initialized to 128 if there is no temporal reference picture, and initialized to 64 if there is at least one temporal reference picture. A hash hit ratio is defined as the percentage of samples in the CTU that found a match using hash-based search. While encoding the current CTU, if the hash hit ratio is below 5%, N is reduced by half.
[148] At CU level, the IBC mode is signaled with a flag information (i.e., flag information specifying whether the IBC is applied, pred mode ibc flag), and it can be signaled as an IBC AMVP mode or an IBC skip / merge mode as follows.
[149] - IBC skip / merge mode: a merge candidate index is used to indicate which of the block vectors in the list from neighboring candidate IBC coded blocks is used to predict the current block. The merge list consists of spatial, HMVP, and pairwise candidates.
[150] - IBC AMVP mode: block vector difference is coded in the same way as the motion vector difference. The block vector prediction method uses two candidates as predictors, one from left neighbor and one from above neighbor (if IBC coded). When either neighbor is not available, a default block vector will be used as a predictor. A flag is signaled to indicate the block vector predictor index.
[151] FIG. 5 and FIG. 6 illustrate an image encoding method based on the IBC prediction mode and a predictor of an encoding apparatus performing the image encoding method.
[152] The encoding apparatus may derive prediction mode and a motion vector of the current block, and generate prediction samples of the current block (S500). The prediction mode may include at lesat one of the inter prediction modes described above. Here, the prediction mode determination, the motion vector derivation, and the prediction samples generation procedure 2024204950 18 Jul 2024 may be performed simultaneously, or one procedure may be performed before the other. For example, the predictor of the encoding apparatus may include a prediction mode determiner, a motion vector deriver, and a prediction sample deriver. The prediction mode determiner may determine a prediction mode for the current block, the motion vector deriver may derive motion vector of the current block, and prediction sample deriver 183 may derive prediction samples of the current block. As described above, the motion vector may be called a block vector. For example, the predictor of the encoding apparatus may search for a block similar to the current block in a reconstructed region (or a predetermined region (search region)) through block matching (BM) and derive a reference block whose difference to the current block is a minimum or a predetermined reference or less. The predictor may derive a motion vector based on a displacement difference between the reference block and the current block. The encoding apparatus may determine a mode applied to the current block among various prediction modes. The encoding apparatus may compare RD costs based on the various prediction modes and determine an optimal prediction mode for the current block.
[153] For example, when a skip mode or a merge mode is applied to the current block, the encoding apparatus may configure a merge candidate list described above and derive a reference block having a difference from the current block equal to or less than a minimum or a predetermined criterion. In this case, a merge candidate associated with the derived reference block may be selected, and merge index information indicating the selected merge candidate may be generated and signaled to the decoding apparatus. The motion vector of the current block may be derived using the motion vector of the selected merge candidate.
[154] As another example, when the (A)MVP mode is applied to the current block, the encoding apparatus may configure a (A)MVP candidate list described above and use a motion vector of an mvp candidate selected from among the mvp (motion vector predictor) candidates included in the (A)MVP candidate list, as mvp of the current block. In this case, for example, 2024204950 18 Jul 2024 a motion vector indicating the reference block derived by the above-described motion estimation may be used as the motion vector of the current block, and an mvp candidate having a motion vector whose difference to the motion vector of the current block, among the mvp candidates, is smallest may be the selected mvp candidate. A motion vector difference (MVP) which is a difference from which the mvp was subtracted may be derived from the motion vector of the current block. In this case, the information on the MVD may be signaled to the decoding apparatus.
[155] The encoding apparatus may derive residual samples based on the prediction samples (S510). The encoding apparatus may derive the residual samples by comparing the original samples of the current block with the prediction samples.
[156] The encoding apparatus encodes image information including prediction information and residual information (S520). The encoding apparatus may output the encoded image information in the form of a bitstream. The prediction information may include prediction mode vector (i.e., skip flag, merge flag or mode index) and information on motion vector as information related to the prediction procedure. The information on the motion vector may include candidate selection information (ex. merge index, mvp flag or mvp index) that is information for deriving a motion vector. In addition, the information on the motion vector may include the information on the MVD described above. The information on the motion vector may include information indicating whether L0 prediction, LI prediction, or bi prediction is applied. The residual information is information on the residual samples. The residual information may include information on quantized transform coefficients for the residual samples.
[157] The output bitstream may be stored in a (digital) storage medium and delivered to the decoding apparatus, or may be delivered to the decoding apparatus via a network.
[158] Meanwhile, as described above, the encoding apparatus may generate a reconstructed 2024204950 18 Jul 2024 picture (including the reconstructed samples and the reconstructed block) based on the reference samples and the residual samples. This is because the encoding apparatus is to derive the same prediction result as that performed in the decoding apparatus, and thus the coding efficiency may be increased. Therefore, the encoding apparatus may store the reconstructed picture (or reconstructed samples, a reconstructed block) in a memory and use it as a reference picture for inter prediction.
[159] FIG. 7 and FIG. 8 illustrate an image decoding method based on the IBC prediction mode and a predictor of a decoding apparatus performing the image decoding method.
[160] The decoding apparatus may perform an operation corresponding to the operation performed in the encoding apparatus. The decoding apparatus may perform IBC prediction on the current block based on the received prediction information and derive prediction samples.
[161] Specifically, the decoding apparatus may determine a prediction mode for the current block based on the received prediction information (S700). The decoding apparatus may determine which inter prediction mode is applied to the current block based on the prediction mode information in the prediction information.
[162] For example, the decoding apparatus may determine whether the merge mode is applied to the current block or whether (A)MVP mode is determined based on the merge flag. Alternatively, one of various inter prediction mode candidates may be selected based on the mode index. The inter prediction mode candidates may include a skip mode, a merge mode, and / or (A)MVP mode, or may include various inter prediction modes described with FIG. 4.
[163] The decoding apparatus derives motion vector of the current block based on the determined prediction mode (S710). As described above, the motion vector may be called a block vector. For example, when a skip mode or a merge mode is applied to the current block, the decoding apparatus may configure a merge candidate list as described above, and select one of the merge candidates included in the merge candidate list. The selection may be 2024204950 18 Jul 2024 performed based on the above selection information (merge index). The motion vector of the current block may be derived using the motion vector of the selected merge candidate. The motion vector of the selected merge candidate may be used as motion vector of the current block.
[164] As another example, when the (A)MVP mode is applied to the current block, the decoding apparatus may configure an (A)MVP candidate list as described above and use a motion vector of an mvp candidate selected from the mvp candidates included in the (A)MVP candidate list as mvp of the current block. The selection may be performed based on the abovedescribed selection information (mvp flag or mvp index). In this case, the MVD of the current block may be derived based on the information on the MVD, and the motion vector of the current block may be derived based on mvp and the MVD of the current block. In addition, a reference picture index of the current block may be derived based on the reference picture index information. A picture indicated by the reference picture index in the reference picture list for the current block may be derived as a reference picture referred for inter prediction of the current block.
[165] Meanwhile, as described above, motion vector of the current block may be derived without configuring a candidate list, and in this case, motion vector of the current block may be derived according to a procedure disclosed in the corresponding prediction mode. In this case, the configuration of the candidate list as described above may be omitted.
[166] The decoding apparatus may generate prediction samples for the current block based on the motion vector of the current block (S720). The decoding apparatus may derive the prediction samples of the current block using the samples of the reference block indicated by the motion vector of the current block on the current picture. In this case, a prediction sample filtering procedure may be further performed on all or some of the prediction samples of the current block. 2024204950 18 Jul 2024
[167] For example, the predictor of the decoding apparatus may include a prediction mode determiner, a motion vector deriver, and a prediction sample deriver. The prediction mode for the current block may be determined based on the prediction mode vector received from the prediction mode determiner, motion vector of the current block may be derived based on the information on the motion vector received from the motion vector deriver 262, and the prediction sample deriver may derive the prediction samples of the current block.
[168] The decoding apparatus generates residual samples for the current block based on the received residual information (S730). The decoding apparatus may generate reconstructed samples for the current block based on the prediction samples and the residual samples and generate a reconstructed picture based thereon (S740). Thereafter, an in-loop filtering procedure or the like may be further applied to the reconstructed picture as described above.
[169] Embodiments related to merge mode and skip mode among IBC prediction modes will be described together with the following tables. Specifically, a method, for determining the maximum number of merge mode candidates derived to find a motion vector of a current block when IBC is used, is shown.
[170] The following table is an exemplary syntax of the tile group header.
[171] [Table 1] 2024204950 18 Jul 2024 tile_group_header() { Descriptor • •• if (tilegrouptype != I) { if( spstemporalmvpenabledflag) tilegrouptemporalmvpenabledflag u(l) if( tile group type == B) mvd 11 zero flag u(D if( tile group temporal mvp enabled flag) { if( tile group type == B ) collocatedfromlOflag u(l) I if( (weightedpredflag && tile group type == P) (weighted bipred flag && tile group type == B)) pred_wcight_table() sixminu smaxnummergecand ue(v) if( spsaffineenabledflag) five minus max num subblock merge cand ue(v) if( spsfpelmmvdenabledflag) tilegroupfpelinmvdenabledflag u(l) } else if (sps ibc enabled flag) six_minu s_m ax_n u mmcrgecan d ue(v) ...
[172] In the next generation video codec technology, when the tile group type (tile group type) is P (uni-directional prediction) or B (bi-directional prediction), the maximum number of general merge mode candidates is determined by the syntax element sixminusmaxnummergecand, and the maximum number of merge mode candidates for IBC may be determined with the same.
[173] When the tile group type (tile group type) is I (intra prediction), a general merge mode is not present, thus the same syntax, six minus max num merge cand, is transmitted to determine the maximum number of merge mode candidates for IBC.
[174] The IBC technology is a technology for performing motion compensation within a picture, and may have different characteristics from the merge mode of the existing inter prediction, and a method for constructing merge mode candidates may be different. Therefore, using the same number of merge candidates may not be efficient in terms of compression 2024204950 18 Jul 2024 performance.
[175] In one example, the syntax of the tile group header may be as shown in the following table.
[176] [Table 2] tile_group_header() { Descriptor ... if (tilegrouptype != I) { if( spstemporalmvpenabledflag) tilegrouptemporalmvpenabledflag u(l) if( tile group type == B ) mvdllzeroflag u(l) if( tilc group tcmporal mvp enabled flag) { if( tile group type == B ) collocatedfromlOflag u(l) } if( (weighted_pred_flag && tilegrouptype == P) (weighted bipred flag && tile group type == B)) pred_weight_table() sixminu smaxnummergecand ue(v) if( spsaffincenablcdflag) five minus max num subblock merge cand ue(v) if( spsfpelmmvdenabledflag) tilegroupfpelmmvdenabledflag u(l) } if ( sps ibc enabled flag) six_minus_max_num_ibc_merge_cand ue(v) ...
[177] The semantics of syntax elements included in the syntax of Table 2 may be expressed, for example, as shown in the following table.
[178] [Table 3] six_minus_max_num_ibc_merge_cand specifies the maximum number of merging motion vector prediction (MVP) candidates supported in the tile group subtracted from 6. The maximum number of merging MVP candidates, MaxNumibcMergeCand is derived as follows: MaxNumibcMergeCand = 6 - six_minus_max_num_ibc_merge_cand The value of MaxNumibcMergeCand shall be in the range of 1 to 6, inclusive. 2024204950 18 Jul 2024
[179] In the other example, the syntax of the tile group header may be as shown in the following table.
[180] [Table 4] tile_group_header() { Descriptor • •• if (tilegrouptype != I) { if( sps temporal mvp enabled flag) tilegrouptemporalmvpenabledflag u(l) if( tile group type == B) mvd_ll_zero_flag u(l) if( tile group temporal mvp enabled flag) { if( tile group type == B) collocatedfromlOflag u(l) } if( (weighted_pred_flag && tile group type == P) (weighted bipred flag && tile group type == B)) pred_weight_table() sixminusmaxnummergccand ue(v) if( sps affine enabled flag) five_minus_max_num_subblock_merge_cand ue(v) if( sps fpel mmvd enabled flag) tilegroupfpelmmvdenabledflag u(l) 1 if (sps ibc enabled flag) fiveminusmaxnumibcmergecand ue(v) ...
[181] The semantics of syntax elements included in the syntax of Table 4 may be expressed, for example, as shown in the following table.
[182] [Table 5] five_minus_max_num_ibc_merge_cand specifies the maximum number of merging motion vector prediction (MVP) candidates supported in the tile group subtracted from 5. The maximum number of merging MVP candidates, MaxNumibcMergeCand is derived as follows: MaxNumibcMergeCand = 5 - five_minus_max_num_ibc_merge_cand The value of MaxNumibcMergeCand shall be in the range of 1 to 5, inclusive. 2024204950 18 Jul 2024
[183] In the other example, the syntax of the tile group header may be as shown in the following table.
[184] [Table 6] tile_group_header() { Descriptor ... if (tilegrouptype != I){ if( sps temporal mvp enabled flag) tilegrouptemp o ralm vpenab ledflag u(l) if( tile group type == B) mvdllzeroflag u(l) if( tile group temporal mvp enabled flag) { if(tile group type == B ) collocatedfromlOflag u(l) } if( (weighted_pred_flag && tilegrouptype == P) (weighted bipred flag && tile group type == B)) pred_weight_table() sixminusmaxnummergecand ue(v) if( sps affine enabled flag) five_minus_max_num_subblock_merge_cand ue(v) if( sps fpel mmvd enabled flag) tilegroupfpelmmvdenabledflag u(l) } if ( sps ibc enabled flag) four_minus_max_num_ibc_merge_cand ue(v) ...
[185] The semantics of syntax elements included in the syntax of Table 6 may be expressed, for example, as shown in the following table.
[186] [Table 7] four_minus_max_num_ibc_merge_cand specifies the maximum number of merging motion vector prediction (MVP) candidates supported in the tile group subtracted from 4. The maximum number of merging MVP candidates, MaxNumibcMergeCand is derived as follows: MaxNumibcMergeCand = 4 - four minus max num ibc merge cand The value of MaxNumibcMergeCand shall be in the range of 1 to 4, inclusive. 2024204950 18 Jul 2024
[187] In the other example, the syntax of the tile group header may be as shown in the following table.
[188] [Table 8] tile_group_header() { Descriptor • •• if(tile_group_type != I) { if( spstemporalmvpenabledflag) tilegrouptemporalmvpenabledflag u(l) if( tilegrouptype == B) mvd_ll_zero_flag u(l) if( tilegrouptemporalmvpenabledflag) { if( tile group type == B) collocatedfromlOflag u(l) } if( (weighted_pred_flag && tilegrouptype == P) (weightedbipredflag && tile group type == B)) pred_weight_table() s ix_m i n u s_m ax_n u mm crgccan d ue(v) if( spsaffineenabledflag) five_minus_max_num_subblock_merge_cand ue(v) if( spsfpelmmvdenabledflag) tilegroupfpelmmvdenabledflag u(l) } if ( sps ibc enabled flag) threeminusmaxnumibcmergecand ue(v) ...
[189] The semantics of syntax elements included in the syntax of Table 8 may be expressed, for example, as shown in the following table.
[190] [Table 9] threeminusmaxnumibcmergecand specifies the maximum number of merging motion vector prediction (MVP) candidates supported in the tile group subtracted from 3. The maximum number of merging MVP candidates, MaxNumibcMergeCand is derived as follows: MaxNumibcMcrgeCand = 3 - threeminusmaxnumibcmergecand The value of MaxNumibcMergeCand shall be in the range of 1 to 3, inclusive. 2024204950 18 Jul 2024
[191] In another example, the syntax of the tile group header may be as shown in the following table.
[192] [Table 10] tile_group_header() { Descriptor • •• if (tilegrouptype != I) { if( sps temporal mvp enabled flag) tilegrouptemporalmvpenabledflag u(l) if( tile group type == B) mvdllzeroflag u(l) if( tile group temporal mvp enabled flag) { if( tile group type == B) collocatedfromlOflag u(l) 1 if( (weighted_pred_flag && tile group type == P) (weighted bipred flag && tile group type == B)) pred_weight_table() six_minus_max_num_merge_cand ue(v) if( sps affine enabled flag) fiveminusmaxnumsubblockmergecand ue(v) if( sps fpel mmvd enabled flag) tilegroupfpelmmvdenabledflag u(l) } if ( sps ibc enabled flag) twornimismaxnumibcmergecand ue(v) ...
[193] The semantics of syntax elements included in the syntax of Table 10 may be expressed, for example, as shown in the following table.
[194] [Table 11] two_minus_max_num_ibc_merge_cand specifies the maximum number of merging motion vector prediction (MVP) candidates supported in the tile group subtracted from 2. The maximum number of merging MVP candidates, MaxNumibcMergeCand is derived as follows: MaxNumibcMergeCand = 2 - two_minus_max_num_ibc_merge_cand The value of MaxNumibcMergeCand shall be in the range of 1 to 2, inclusive. 2024204950 18 Jul 2024
[195] When the above-mentioned examples are described in the standard document format, it can be expressed as follows, and the details are apparent to those skilled in the art.
[196] [Table 12] 2024204950 18 Jul 2024 8.6.2 Derivation process for motion vector components for IBC blocks 8.6.2.1 General Inputs to this process are: - a luma location ( xCb, yCb ) of tire top-left sample of the current luma coding block relative to the top-left luma sample of the current picture. - a variable cbWidth specifying the width of the current coding block in luma samples, - a variable cbHeight specifying the height of the current coding block in luma samples. Outputs of this process are: - the luma motion vector in 1 / 16 fractional-sample accuracy mvL. The luma motion vector mvL is derived as follows: - If mcrgc riagl xCb ] [ yCb ] is equal to 1, tire derivation process for luma motion vectors for merge mode as specified in clause 8.6.2.2 is invoked with the hima location ( xCb, yCb ), the variables cbWidth and cbHeight inputs, and the output being the luma motion vector mvL. - Otherwise, the following applies: 1. The variable mvd is derived as follows: mvd[ 0 ] = MvdL0[ xCb][yCb ] [0 J (8-967) mvd[ 1 ] = MvdL0[ xCb ] [ yCb ] [ 1 ] (8-210) 2. The derivation process for luma motion vector prediction in clause 8.6.2.6 is invoked with the luma coding block location (xCb, yCb ), the coding block width cbWidth and the coding block height cbHeight as inputs, and the output being mvp. 3. The luma motion vector mvL is derived as follows: u[ 0 ] = ( mvp[ 0 ] + mvd[ 0 ] + 218) % 218 (8-968) mvL[ 0 ] = (u[ 0 ] >= 217) ? (u[0 ] -218): u[0 ] (8-969) u[ 1 ] = ( mvp[ 1 ] + mvd[ 1 ] + 218) % 218 (8-970) mvL[l] = (u[l] >= 217) ? (u[ 1 ] - 218): u[ 1 ] (8-971) NOTE 1- The resulting values of mvL[ 0 ] andmvL[ 1 ] as specified above will always be in the range of~217 to 217 - 1, inclusive. The updating process for the history-based motion vector predictor list as specified in clause 8.6.2.10 is invoked with luma motion vector mvL. It is a requirement of bitstream conformance that the luma motion vector mvL shall obey the following constraints: - When the derivation process forblock availability as specified in clause 6.4.X [Ed. (BB): Neighbouring blocks availability checking process tbd] is invoked with the current luma location (xCurr, yCurr) set equal to (xCb, yCb ) and the neighbouring luma location (xCb + (mvL[ 0 ] » 4), yCb + (mvL[ 1 ]» 4 )) as inputs, and the output shall be equal to TRUE. - When the derivationprocess forblock availability as specified in clause 6.4.X [Ed. (BB): Neighbouring blocks availability checking process tbdj is invoked with the current luma location (xCurr, yCurr) set equal to (xCb, yCb ) and the neighbouring luma location ( xCb + ( mvL[ 0 ]»4 ) + cbWidth-1, yCb + ( mvL[ 1 ] » 4 ) + cbHeight - 1) as inputs, and the output shall be equal to TRUE, 2024204950 18 Jul 2024 - One or both the following conditions shall be true: - The value of (mvL[ 0 ] » 4 ) + cbWidth is less than or equal to 0. - The value of (mvL[ 1 ] » 4 ) + cbHeight is less than or equal to 0. - The following conditions shall be true: (yCb + (mvL[ 1J » 4 )) » CtbLog2SizeY = yCb » CtbLog2SizeY (8-972) (yCb + (mvL[ 1 ] » 4 ) + cbHeight - 1)» CtbLog2SizeY = yCb » CtbLog2SizeY (8-973) ( xCb + ( mvL[ 0 ] » 4 )) » CtbLog2SizeY >= (xCb » CtbLog2SizeY ) - 1 (8-974) ( xCb + ( mvL[ 0 ] » 4 ) + cbWidth - 1) » CtbLog2SizeY <= ( xCb » CtbLog2SizeY) (8-975) [Ed. (SL): conditions (8-218) and (8-216) might have been checked by 6.4.X.] - When (xCb + ( mvL[ 0 ] » 4 )) » CtbLog2SizeY is equal to (xCb » CtbLog2SizeY) - 1, the derivation process for block availability as specified in clause 6.4.X [Ed. (BB): Neighbouring blocks availability checking process tbd] is invoked with the current luma location( xCurr, yCurr) set equal to (xCb, yCb ) and the neighbouring luma location (((xCb + ( mvL[ 0 ] » 4) + CtbSizeY) » (CtbLog2SizeY - 1))«( CtbLog2SizeY - 1), ((yCb + (mvL[ 1 ]» 4 ))»( CtbLog2SizeY - 1)) « ( CtbLog2SizeY - 1)) as inputs, and the output shall be equal to FALSE. 8.6.2.2 Derivation process for luma motion vector for merge mode This process is only invoked when merge_flag[ xCb ][ yPb ] is equal to 1 and CuPredMode[ xCb ][ yPb ] is equal to MODEIBC, where (xCb, yCb) specify the top-left sample of the current luma coding block relative to the top-left luma sample of the current picture. Inputs to this process are: - a luma location (xCb, yCb ) of the top-left sample of the current luma coding block relative to the topleft luma sample of the current picture, - a variable cbWiddi specifying the width of the current coding block in luma samples, - a variable cbHeight specifying the height of the current coding block in luma samples. Outputs of this process arc: - the luma motion vectors in 1 / 16 fractional-sample accuracy mvL. The luma motion vector mvL is derived by the following ordered steps: 1. The derivation process for merging candidates from neighbouring coding units as specified in clause 8.6.2.3 is invoked with the luma coding block location (xCb, yCb ), the luma coding block width cbWiddi, and die luma coding block height cbHeight as inputs, and die outputs being the availability flags availableFlagAo, availableFlagAi, availableFlagBo, availableFlagBi and availableFlagB2 and the motion vectors mvA0, mvAi, mvB0, mvBi and mvB2. 2. The merging motion vector candidate list, mergeMvCandList, is constructed as follows: i = 0 if( availableFlagAi) mergeMvCandList [ i++ ] = mvAi if( availableFlagBi) mergeMvCandList [ i++ ] = mvBi if( availableFlagBo) (8-976) mergeMvCandList [ i++ ] = mvB0 if( availableFlagAo) mergeMvCandList [ i++ ] = mvA0 2024204950 18 Jul 2024 if( availableFlagB2) mergeMvCandList [ i++ ] = mvB2 3. The variable numCurrMergeCand is set equal to the number of merging candidates in the mergeMvCandList. 4. When numCurrMergeCand is less than (MaxNumibcMergeCand 1) and NumHmvpIbcCand is greater than 0, the derivation process of history-based merging candidates as specified in 8.6.2.5 is invoked with mergeMvCandList, and numCurrMergeCand as inputs, and modified mergeMvCandList and numCurrMergeCand as outputs. 5. When numCurrMergeCand is less than MaxNumibcMergeCand and greater than 1, the derivation process for pairwise average merging candidate specified in clause 8.6.2.4 is invoked with mergeMvCandList and numCurrMergeCand as inputs, and the outputs are assigned to mergeMvCandList and numCurrMergeCand. 6. The following assignments are made: mvL[ 0 ] = mergeMvCandList[ merge_idx[ xCb ] [ yCb ] ] [ 0 ] (8-977) mvL[ 1 ] = mergeMvCandList[ merge_idx[ xCb ] [ yCb ] ][ 1 ] (8-978)
[197] The drawings are created to explain a specific example of the present disclosure. Since the name of the specific apparatus described in the drawings or the name of the specific signal / message / field is presented by way of example, the technical features of the present disclosure are not limited to the specific name used in the drawings.
[198] FIG. 9 and FIG. 10 schematically show an example of a video / image encoding method and related components according to embodiment(s) of the present disclosure. The method disclosed in FIG. 9 may be performed by the encoding apparatus disclosed in FIG. 2. Specifically, for example, S900 and S910 of FIG. 9 may be performed by the predictor 220 of the encoding apparatus, and S920 and S930 of FIG. 9 may be performed by the entropy encoder 240 of the encoding apparatus. The method disclosed in FIG. 9 may include the embodiments described above in the present disclosure.
[199] Referring to FIG. 9, the encoding apparatus may derive the prediction mode for the current block in the current picture as the IBC prediction mode (S900). The IBC prediction mode may include an IBC merge mode, an IBC (A)MVP mode, an IBC HMVP mode, and an IBC pairwise average merge mode. In one example, the IBC prediction mode may be an IBC 2024204950 18 Jul 2024 merge mode (merge mode for IBC).
[200] The encoding apparatus may derive a candidate list for the IBC prediction mode (S910). The candidate list for the IBC prediction mode may include block vector candidates indicating a reference block in the current picture. In one example, the candidate list for the IBC prediction mode may be a merge candidate list for the IBC prediction mode. Table 12 described above shows mvL[ 0 ] and mvL[ 1 ] as exemplary candidate lists.
[201] The encoding apparatus may generate index information indicating (representing, specifyng) the block vector of the current block based on the candidate list for the IBC prediction mode (S920). For example, the index information may be merge_idx[xCb][yCb] included in Table 12 described above.
[202] The encoding apparatus may encode video / image information (S930). The image / video information may include index information indicating a block vector of a current block. The information for generating the luma samples may include, for example, prediction related information (prediction mode information) and residual information. The prediction related information includes information on various prediction modes (i.e., merge mode of inter prediction, MVP mode of inter prediction, IBC prediction mode (IBC merge mode, IBC (A)MVP mode, IBC HMVP mode), etc.), MVD information , information on the candidate list, information on the maximum number of block vectors included in the candidate list for IBC prediction mode, information on the maximum number of block vectors included in the candidate list for IBC merge mode, inter prediction mode Information on the maximum number of block vectors included in the candidate list, information on the maximum number of motion vectors included in the candidate list for the merge mode of inter prediction, information on block vectors (motion vectors), etc. may be included.. Also, the image information may include flag information (i.e., pred mode ibc flag) indicating whether the IBC prediction mode is applied. 2024204950 18 Jul 2024
[203] In one embodiment, the image information may include a sequence parameter set (SPS), and the SPS includes an IBC enabled flag specifying whether the IBC prediction mode is enabled. For example, when a value of the IBC enabled flag is 1, the information on the maximum number of the block vector candidates included in the candidate list for the IBC prediction mode may be generated.
[204] In one embodiment, the maximum number of the block vector candidates included in the candidate list for the IBC prediction mode may be derived based on a difference between 6 and a value of information on the maximum number of the block vector candidates included in the candidate list for the IBC prediction mode. For example, the maximum number of the block vector candidates included in the candidate list for the IBC prediction mode may be derived based on the equation included in Table 3 (MaxNumibcMergeCand = 6 -six_minus_max_num_ibc_merge_cand). In the equation, MaxNumibcMergeCand may represent the maximum number of block vector candidates included in the candidate list for the IBC prediction mode, and six_minus_max_num_ibc_merge_cand may represent the value of information on the maximum number of the block vector candidates included in the candidate list for the IBC prediction mode.
[205] In one embodiment, the image information may include information on a maximum number of motion vector candidates included in a candidate list for the inter prediction mode, and the information on the maximum number of block vector candidates included in the candidate list for the IBC prediction mode (ex. six minus max num merge cand) may be different from the information on the maximum number of motion vector candidates included in the candidate list for the inter prediction mode (ex. six_minus_max_num_ibc_merge_cand).
[206] In one embodiment, when a number of block vector candidates included in the candidate list for the IBC prediction mode is less than the maximum number and greater than 1, a derivation process of pairwise average merging candidates may be performed. Or, When a 2024204950 18 Jul 2024 number of block vector candidates included in the candidate list for the IBC prediction mode is less than the maximum number (or maximum number-1, MaxNumMergeCand-1) and a number of history-based motion vector prediction (HMVP) candidates is greater than 0, a derivation process of history-based merge candidates may be performed.
[207] The encoded image / video information may be output in the form of a bitstream. The bitstream may be transmitted to the decoding apparatus through a network or a (digital) storage medium.
[208] The image information may include various information according to an embodiment of the present disclosure. For example, the image information may include at least one information or at least one syntax element disclosed in at least one of Tables 1, 2, 4, 6, 8, and 10 described above.
[209] In one example, the encoding apparatus may derive residual samples based on the prediction samples and the original samples. In this case, residual information may be derived based on the residual samples. Reconstructed samples may be generated based on the residual information. A reconstructed block and a reconstructed picture may be derived based on the reconstructed samples.
[210] FIG. 11 and FIG. 12 schematically show an example of an image / video decoding method and related components according to an embodiment of the present disclosure. The method disclosed in FIG. 11 may be performed by the decoding apparatus illustrated in FIG. 3. Specifically, for example, SI 100 of FIG. 11 may be performed by the entropy decoder 310 of the decoding apparatus, SI 110 to SI 140 may be performed by the predictor 330 of the decoding apparatus, and SI 150 may be performed by the adder 340 of the decoding apparatus. The method disclosed in FIG. 11 may include the embodiments described above in the present disclosure.
[211] Referring to FIG. 11, the decoding apparatus may receive / obtain image / video 2024204950 18 Jul 2024 information. For example, the decoding apparatus may receive / obtain the image / video information through a bitstream. The decoding apparatus may obtain index information for deriving a block vector through a bitstream (SI 100). For example, the index information may be merge_idx[xCb][yCb] included in Table 12 described above. In addition, the decoding apparatus may further obtain flag information (i.e., pred mode ibc flag), indicating whether the IBC prediction mode is applied, through the bitstream.
[212] The image / video information may include various information according to an embodiment of the present disclosure. For example, the image / video information may include information disclosed in at least one of Tables 1, 2, 4, 6, 8, and 10 described above.
[213] The decoding apparatus may derive the prediction mode for the current block in the current picture as the IBC prediction mode (SI 110). The IBC prediction mode may include an IBC merge mode, an IBC (A)MVP mode, an IBC HMVP mode, and an IBC pairwise average merge mode. In one example, the IBC prediction mode may be an IBC merge mode (merge mode for IBC).
[214] The decoding apparatus may derive a candidate list for the IBC prediction mode (SI 120). The candidate list for the IBC prediction mode may include block vector candidates indicating a reference block in the current picture. In one example, the candidate list for the IBC prediction mode may be a merge candidate list for the IBC prediction mode. Table 12 described above shows mvL[ 0 ] and mvL[ 1 ] as exemplary candidate lists.
[215] The decoding apparatus may derive a block vector for the current block based on the candidate list for the IBC prediction mode and the index information (SI 130).
[216] The decoding apparatus may generate prediction samples of the current block based on the block vector (SI 140). Prediction samples for the current block may be generated based on reference samples in the reference block indicated by the block vector. Here, the reference block may be included in the current picture. 2024204950 18 Jul 2024
[217] The decoding apparatus may generate reconstructed samples based on the prediction samples (SI 150). The decoding apparatus may obtain residual information from the image information and may derive residual samples based on the residual information. The decoding apparatus may generate (derive) reconstructed samples based on the residual samples and the prediction samples. For example, the decoding apparatus may generate (derive) reconstructed samples by adding residual samples to the prediction samples.
[218] In one embodiment, the image information may include a sequence parameter set (SPS), and the SPS includes an IBC enabled flag specifying whether the IBC prediction mode is enabled. For example, when a value of the IBC enabled flag is 1, the information on the maximum number of the block vector candidates included in the candidate list for the IBC prediction mode may be signaled / parsed.
[219] In one embodiment, the maximum number of the block vector candidates included in the candidate list for the IBC prediction mode may be derived based on a difference between 6 and a value of information on the maximum number of the block vector candidates included in the candidate list for the IBC prediction mode. For example, the maximum number of the block vector candidates included in the candidate list for the IBC prediction mode may be derived based on the equation included in Table 3 (MaxNumibcMergeCand = 6 -six_minus_max_num_ibc_merge_cand). In the equation, MaxNumibcMergeCand may represent the maximum number of block vector candidates included in the candidate list for the IBC prediction mode, and six_minus_max_num_ibc_merge_cand may represent the value of information on the maximum number of the block vector candidates included in the candidate list for the IBC prediction mode.
[220] In one embodiment, the image information may include information on a maximum number of motion vector candidates included in a candidate list for the inter prediction mode, and the information on the maximum number of block vector candidates included in the 2024204950 18 Jul 2024 candidate list for the IBC prediction mode (ex. sixminusmaxnummergecand) may be different from the information on the maximum number of motion vector candidates included in the candidate list for the inter prediction mode (ex. six_minus_max_num_ibc_merge_cand).
[221] In one embodiment, when a number of block vector candidates included in the candidate list for the IBC prediction mode is less than the maximum number and greater than 1, a derivation process of pairwise average merging candidates may be performed. Or, When a number of block vector candidates included in the candidate list for the IBC prediction mode is less than the maximum number (or maximum number-1, MaxNumMergeCand-1) and a number of history-based motion vector prediction (HMVP) candidates is greater than 0, a derivation process of history-based merge candidates may be performed.
[222] In the above-described embodiment, the methods are described based on the flowchart having a series of steps or blocks. The present disclosure is not limited to the order of the above steps or blocks. Some steps or blocks may occur simultaneously or in a different order from other steps or blocks as described above. Further, those skilled in the art will understand that the steps shown in the above flowchart are not exclusive, that further steps may be included, or that one or more steps in the flowchart may be deleted without affecting the scope of the present disclosure.
[223] The method according to the above-described embodiments of the present disclosure may be implemented in software form, and the encoding apparatus and / or decoding apparatus according to the present disclosure is, for example, may be included in the apparatus that performs the image processing of a TV, a computer, a smart phone, a set-top box, a display device, etc.
[224] When the embodiments in the present disclosure are implemented in software, the above-described method may be implemented as a module (process, function, etc.) that performs the above-described function. A module may be stored in a memory and executed by 2024204950 18 Jul 2024 a processor. The memory may be internal or external to the processor, and may be coupled to the processor by various well-known means. The processor may include an application-specific integrated circuit (ASIC), other chipsets, logic circuits, and / or data processing devices. Memory may include read-only memory (ROM), random access memory (RAM), flash memory, memory cards, storage media, and / or other storage devices. That is, the embodiments described in the present disclosure may be implemented and performed on a processor, a microprocessor, a controller, or a chip. For example, the functional units shown in each figure may be implemented and performed on a computer, a processor, a microprocessor, a controller, or a chip. In this case, information on instructions or an algorithm for implementation may be stored in a digital storage medium.
[225] In addition, the decoding apparatus and the encoding apparatus to which the present disclosure is applied may be included in a multimedia broadcasting transmission / reception apparatus, a mobile communication terminal, a home cinema video apparatus, a digital cinema video apparatus, a surveillance camera, a video chatting apparatus, a real-time communication apparatus such as video communication, a mobile streaming apparatus, a storage medium, a camcorder, a VoD service providing apparatus, an Over the top (OTT) video apparatus, an Internet streaming service providing apparatus, a three-dimensional (3D) video apparatus, a teleconference video apparatus, a transportation user equipment (i.e., vehicle user equipment, an airplane user equipment, a ship user equipment, etc.) and a medical video apparatus and may be used to process video signals and data signals. For example, the Over the top (OTT) video apparatus may include a game console, a blue-ray player, an internet access TV, a home theater system, a smart phone, a tablet PC, a Digital Video Recorder (DVR), and the like.
[226] Furthermore, the processing method to which the present disclosure is applied may be produced in the form of a program that is to be executed by a computer and may be stored in a computer-readable recording medium. Multimedia data having a data structure according to 2024204950 18 Jul 2024 the present disclosure may also be stored in computer-readable recording media. The computer-readable recording media include all types of storage devices in which data readable by a computer system is stored. The computer-readable recording media may include a BD, a Universal Serial Bus (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device, for example. Furthermore, the computer-readable recording media includes media implemented in the form of carrier waves (i.e., transmission through the Internet). In addition, a bitstream generated by the encoding method may be stored in a computer-readable recording medium or may be transmitted over wired / wireless communication networks.
[227] In addition, the embodiments of the present disclosure may be implemented with a computer program product according to program codes, and the program codes may be performed in a computer by the embodiments of the present disclosure. The program codes may be stored on a carrier which is readable by a computer.
[228] FIG. 13 shows an example of a content streaming system to which embodiments disclosed in the present disclosure may be applied.
[229] Referring to FIG. 13, the content streaming system to which the embodiment(s) of the present disclosure is applied may largely include an encoding server, a streaming server, a web server, a media storage, a user device, and a multimedia input device.
[230] The encoding server compresses content input from multimedia input devices such as a smartphone, a camera, a camcorder, etc. Into digital data to generate a bitstream and transmit the bitstream to the streaming server. As another example, when the multimedia input devices such as smartphones, cameras, camcorders, etc. directly generate a bitstream, the encoding server may be omitted.
[231] The bitstream may be generated by an encoding method or a bitstream generating method to which the embodiment(s) of the present disclosure is applied, and the streaming 2024204950 18 Jul 2024 server may temporarily store the bitstream in the process of transmitting or receiving the bitstream.
[232] The streaming server transmits the multimedia data to the user device based on a user’s request through the web server, and the web server serves as a medium for informing the user of a service. When the user requests a desired service from the web server, the web server delivers it to a streaming server, and the streaming server transmits multimedia data to the user. In this case, the content streaming system may include a separate control server. In this case, the control server serves to control a command / response between devices in the content streaming system.
[233] The streaming server may receive content from a media storage and / or an encoding server. For example, when the content is received from the encoding server, the content may be received in real time. In this case, in order to provide a smooth streaming service, the streaming server may store the bitstream for a predetermined time.
[234] Examples of the user device may include a mobile phone, a smartphone, a laptop computer, a digital broadcasting terminal, a personal digital assistant (PDA), a portable multimedia player (PMP), navigation, a slate PC, tablet PCs, ultrabooks, wearable devices (ex. Smartwatches, smart glasses, head mounted displays), digital TVs, desktops computer, digital signage, and the like. Each server in the content streaming system may be operated as a distributed server, in which case data received from each server may be distributed.
[235] Each server in the content streaming system may be operated as a distributed server, and in this case, data received from each server may be distributed and processed.
[236] The claims described herein may be combined in various ways. For example, the technical features of the method claims of the present disclosure may be combined and implemented as an apparatus, and the technical features of the apparatus claims of the present disclosure may be combined and implemented as a method. In addition, the technical features 2024204950 18 Jul 2024 of the method claim of the present disclosure and the technical features of the apparatus claim may be combined to be implemented as an apparatus, and the technical features of the method claim of the present disclosure and the technical features of the apparatus claim may be combined and implemented as a method.
[237] Although embodiments have been described with reference to a number of illustrative embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims.
[238] Many modifications will be apparent to those skilled in the art without departing from the scope of the present invention as herein described with reference to the accompanying drawings
Claims
1. An image decoding method performed by a decoding apparatus, the method comprising:obtaining image information including flag information for an intra block copy (IBC) prediction mode and index information for deriving a block vector, through a bitstream;deriving a prediction mode for a current block in a current picture as the IBC prediction mode based on the flag information;deriving a candidate list for the IBC prediction mode, wherein the candidate list includes block vector candidates;deriving the block vector for the current block based on the candidate list for the IBC prediction mode and the index information;generating prediction samples of the current block based on the block vector; andgenerating reconstructed samples based on the prediction samples,wherein the image information includes information on a maximum number of the block vector candidates included in the candidate list for the IBC prediction mode and information on a maximum number of motion vector candidates included in a candidate list for an inter prediction mode,wherein the information on the maximum number of the block vector candidates included in the candidate list for the IBC prediction mode is obtained based on whether the IBC prediction mode is enabled,wherein the information on the maximum number of block vector candidates included in the candidate list for the IBC prediction mode is different from the information on the maximum number of motion vector candidates included in the candidate list for the inter prediction mode, and2024204950 18 Jul 2024wherein a maximum value for the maximum number of block vector candidates included in the candidate list for the IBC prediction mode is predetermined as 6.
2. The method of claim 1, wherein the maximum number of the block vector candidates included in the candidate list for the IBC prediction mode is derived based on a difference between 6 and a value of information on the maximum number of the block vector candidates included in the candidate list for the IBC prediction mode.
3. The method of claim 2, wherein the maximum number of the block vector candidates included in the candidate list for the IBC prediction mode is derived based on the following equation,MaxNumibcMergeCand = 6 - six_minus_max_num_ibc_merge_candherein MaxNumibcMergeCand represents the maximum number of block vector candidates included in the candidate list for the IBC prediction mode, and six_minus_max_num_ibc_merge_cand represents the value of information on the maximum number of the block vector candidates included in the candidate list for the IBC prediction mode.
4. The method of claim 1, wherein based on a case that a number of block vector candidates included in the candidate list for the IBC prediction mode is less than the maximum number and greater than 1, a derivation process of pairwise average merging candidates is performed.
5. The method of claim 1, wherein based on a case that a number of block vector candidates included in the candidate list for the IBC prediction mode is less than the2024204950 18 Jul 2024maximum number and a number of history-based motion vector prediction (HMVP) candidates is greater than 0, a derivation process of history-based merge candidates is performed.
6. An image encoding method performed by an encoding apparatus, the method comprising:deriving a prediction mode for a current block in a current picture as an intra block copy (IBC) prediction mode;generating flag information for the IBC prediction mode;deriving a candidate list for the IBC prediction mode, wherein the candidate list includes block vector candidates for a reference block in the current picture;generating index information for a block vector of the current block based on the candidate list for the IBC prediction mode; andencoding image information including the flag information and the index information,wherein the image information includes information on a maximum number of the block vector candidates included in the candidate list for the IBC prediction mode and information on a maximum number of motion vector candidates included in a candidate list for an inter prediction mode,wherein the information on the maximum number of the block vector candidates included in the candidate list for the IBC prediction mode is encoded based on whether the IBC prediction mode is enabledwherein the information on the maximum number of block vector candidates included in the candidate list for the IBC prediction mode is different from the information on the maximum number of motion vector candidates included in the candidate list for the inter2024204950 18 Jul 2024prediction mode, andwherein a maximum value for the maximum number of block vector candidates included in the candidate list for the IBC prediction mode is predetermined as 6.
7. The method of claim 6, wherein the maximum number of the block vector candidates included in the candidate list for the IBC prediction mode is derived based on a difference between 6 and a value of information on the maximum number of the block vector candidates included in the candidate list for the IBC prediction mode.
8. The method of claim 7, wherein the maximum number of the block vector candidates included in the candidate list for the IBC prediction mode is derived based on the following equation,MaxNumibcMergeCand = 6 - six_minus_max_num_ibc_merge_candherein MaxNumibcMergeCand represents the maximum number of block vector candidates included in the candidate list for the IBC prediction mode, and six_minus_max_num_ibc_merge_cand represents the value of information on the maximum number of the block vector candidates included in the candidate list for the IBC prediction mode.
9. The method of claim 6, wherein based on a case that a number of block vector candidates included in the candidate list for the IBC prediction mode is less than the maximum number and greater than 1, a derivation process of pairwise average merging candidates is performed.
10. The method of claim 6, wherein based on a case that a number of block vector2024204950 18 Jul 2024candidates included in the candidate list for the IBC prediction mode is less than the maximum number and a number of history-based motion vector prediction (HMVP) candidates is greater than 0, a derivation process of history-based merge candidates is performed.
11. A non-transitory computer-readable digital storage medium, storing bitstream of image information generated by a method, the method comprising:deriving a prediction mode for a current block in a current picture as an intra block copy (IBC) prediction mode;generating flag information for the IBC prediction mode;deriving a candidate list for the IBC prediction mode, wherein the candidate list includes block vector candidates for a reference block in the current picture;generating index information for a block vector of the current block based on the candidate list for the IBC prediction mode; andencoding image information to generate the bitstream, wherein the image information includes the flag information and the index information,wherein the image information includes information on a maximum number of the block vector candidates included in the candidate list for the IBC prediction mode and information on a maximum number of motion vector candidates included in a candidate list for an inter prediction mode,wherein the information on the maximum number of the block vector candidates included in the candidate list for the IBC prediction mode is encoded based on whether the IBC prediction mode is enabled,wherein the information on the maximum number of block vector candidatesincluded in the candidate list for the IBC prediction mode is different from the information on2024204950 18 Jul 2024the maximum number of motion vector candidates included in the candidate list for the inter prediction mode, andwherein a maximum value for the maximum number of block vector candidates included in the candidate list for the IBC prediction mode is predetermined as 6.
12. A method for transmitting data for image information comprising:obtaining a bitstream of the image information, wherein the bitstream is generated based on deriving a prediction mode for a current block in a current picture as an intra block copy (IBC) prediction mode, generating flag information for the IBC prediction mode, deriving a candidate list for the IBC prediction mode, wherein the candidate list includes block vector candidates for a reference block in the current picture, generating index information for a block vector of the current block based on the candidate list for the IBC prediction mode, and encoding image information including the flag information and the index information; andtransmitting the data comprising the bitstream,wherein the image information includes information on a maximum number of the block vector candidates included in the candidate list for the IBC prediction mode and information on a maximum number of motion vector candidates included in a candidate list for an inter prediction mode,wherein the information on the maximum number of the block vector candidates included in the candidate list for the IBC prediction mode is obtained based on whether the IBC prediction mode is enabled,wherein the information on the maximum number of block vector candidates included in the candidate list for the IBC prediction mode is different from the information on the maximum number of motion vector candidates included in the candidate list for the inter2024204950 18 Jul 2024prediction mode, andwherein a maximum value for the maximum number of block vector candidates included in the candidate list for the IBC prediction mode is predetermined as 6.