Video coding method that constructs intra merge mode list using propagated inheritance information and associated apparatus
The proposed video coding method constructs an intra merge mode list using propagated inheritance information to enhance luma coding efficiency, addressing inefficiencies in existing standards by leveraging information from previous coded blocks for improved prediction.
Patent Information
- Application Number
- PCT/CN2025/074898
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-01-30
- Filing Date
- 2025-01-24
- Publication Date
- 2025-07-31
AI Technical Summary
Existing video coding standards lack an efficient method for constructing an intra merge mode list that improves luma coding efficiency, particularly in terms of intra prediction.
A video coding method that constructs an intra merge mode list using propagated inheritance information, allowing for the inclusion of more flexible and efficient inheritance flows by deriving prediction information from previous coded blocks, including spatial, temporal, and mixed-mode candidates.
Enhances the efficiency of intra luma prediction by utilizing propagated inheritance information from previous blocks, leading to improved coding performance and reduced computational complexity.
Smart Images

Figure CN2025074898_31072025_PF_FP_ABST
Abstract
Description
VIDEO CODING METHOD THAT CONSTRUCTS INTRA MERGE MODE LIST USING PROPAGATED INHERITANCE INFORMATION AND ASSOCIATED APPARATUSBACKGROUND OF THE INVENTION
[0001] 1. FIELD OF THE INVENTION
[0002] The present invention relates to video coding, and more particularly, to a video coding method that constructs an intra merge mode list (i.e., a merge candidate list of an intra merge mode) using propagated inheritance information and an associated apparatus.
[0003] 2. DESCRIPTION OF THE PRIOR ART
[0004] The conventional video coding standards generally adopt a block based coding technique to exploit spatial and temporal redundancy. For example, the basic approach is to divide the whole source picture into a plurality of blocks, perform intra / inter prediction on each block, transform residues of each block, and perform quantization and entropy encoding. Besides, a reconstructed picture is generated in a coding loop to provide reference data that can be used for coding following blocks. For certain video coding standards, in-loop filter (s) may be used for enhancing the image quality of the reconstructed frame.
[0005] The video decoder is used to perform an inverse operation of a video encoding operation performed by a video encoder. For example, the video decoder may have a plurality of processing circuits, such as an entropy decoding circuit, an intra prediction circuit, a motion compensation circuit, an inverse quantization circuit, an inverse transform circuit, a reconstruction circuit, and in-loop filter (s) .
[0006] With the advance of video coding standards, new coding tools are proposed. Taking an intra merge mode for example, a merge candidate list is formed by using intra prediction information of previous coded blocks. There is a need for an innovative merge candidate list construction design for improving the intra luma coding efficiency.SUMMARY OF THE INVENTION
[0007] One of the objectives of the claimed invention is to provide a video coding method that constructs an intra merge mode list (i.e., a merge candidate list of an intra merge mode) using propagated inheritance information and an associated apparatus.
[0008] According to a first aspect of the present invention, an exemplary method for video coding is disclosed. The exemplary method includes: receiving data to be encoded or decoded as a current block of pixels of a current picture of a video, wherein the current block includes a luma block; and encoding or decoding the current block by an intra merge mode for intra luma prediction of the luma block, including constructing an intra merge mode (IMM) list. The IMM list includes one or more merge candidates, including a merge candidate that includes inheritance information from a first reference block, wherein the inheritance information is propagated to the first reference block from a second reference block that is encoded or decoded earlier than the first reference block.
[0009] According to a second aspect of the present invention, an exemplary video encoder is disclosed. The exemplary video encoder includes a video data memory and an encoding circuit. The video data memory is arranged to receive data to be encoded as a current block of pixels of a current picture of a video, wherein the current block includes a luma block. The encoding circuit is arranged to perform encoding of the current block by an intra merge mode for intra luma prediction of the luma block. The encoding circuit includes an intra merge mode (IMM) list construction circuit arranged to construct an IMM list. The IMM list includes one or more merge candidates, including a merge candidate that includes inheritance information from a first reference block, wherein the inheritance information is propagated to the first reference block from a second reference block that is encoded earlier than the first reference block.
[0010] According to a third aspect of the present invention, an exemplary video decoder is disclosed. The exemplary video decoder includes a video data memory and a decoding circuit. The video data memory is arranged to receive data to be decoded as a current block of pixels of a current picture of a video, wherein the current block includes a luma block. The decoding circuit is arranged to perform decoding of the current block by an intra merge mode for intra luma prediction of the luma block. The decoding circuit includes an intra merge mode (IMM) list construction circuit arranged to construct an IMM list. The IMM list includes one or more merge candidates, including a merge candidate that includes inheritance information from a first reference block, wherein the inheritance information is propagated to the first reference block from a second reference block that is decoded earlier than the first reference block.
[0011] These and other objectives of the present invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiment that is illustrated in the various figures and drawings.BRIEF DESCRIPTION OF THE DRAWINGS
[0012] FIG. 1 is a diagram illustrating a template area according to an embodiment of the present invention.
[0013] FIG. 2 is a diagram illustrating positions of spatial merge candidate according to an embodiment of the present invention.
[0014] FIG. 3 is a diagram illustrating examples of mapping positions outside of the collocated CTU row to positions inside the collocated CTU row according to an embodiment of the present invention.
[0015] FIG. 4 is a diagram illustrating cascaded vectors that can be the sum of L0 motion vectors, L1 motion vectors and block vectors according to an embodiment of the present invention.
[0016] FIG. 5 is a block diagram illustrating a video encoder that supports the proposed intra merge mode list construction design according to an embodiment of the present invention.
[0017] FIG. 6 is a block diagram illustrating a video decoder that supports the proposed intra merge mode list construction design according to an embodiment of the present invention.
[0018] FIG. 7 is a flowchart illustrating a video coding method according to an embodiment of the present invention.DETAILED DESCRIPTION
[0019] Certain terms are used throughout the following description and claims, which refer to particular components. As one skilled in the art will appreciate, electronic equipment manufacturers may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not in function. In the following description and in the claims, the terms "include" and "comprise" are used in an open-ended fashion, and thus should be interpreted to mean "include, but not limited to ... " . Also, the term "couple" is intended to mean either an indirect or direct electrical connection. Accordingly, if one device is coupled to another device, that connection may be through a direct electrical connection, or through an indirect electrical connection via other devices and connections.
[0020] 1. Related Art
[0021] 1.1 Intra mode coding with 67 intra prediction modes
[0022] In VVC, several conventional angular intra prediction modes are adaptively replaced with wide-angle intra prediction modes for the non-square blocks.
[0023] 1.2 Intra mode coding
[0024] The most probable mode (MPM) list is generated by considering two available neighboring intra modes.
[0025] 1.3 Decoder side intra mode derivation (DIMD)
[0026] When DIMD is applied, two intra modes are derived from the reconstructed neighbor samples (template) , and those two predictors are combined with the planar mode predictor with the weights derived from the gradients.
[0027] A texture gradient analysis is performed at both encoder and decoder sides. This process starts with an empty Histogram of Gradient (HoG) with 65 entries, corresponding to the 65 angular modes. Amplitudes of these entries are determined during the texture gradient analysis.
[0028] 1.4 Template-based intra mode derivation (TIMD)
[0029] Template-based intra mode derivation (TIMD) mode implicitly derived the intra prediction mode of a CU by a neighboring template at both encoder and decoder, instead of signalling exact intra prediction mode bits to the decoder. The prediction samples of the template are generated using the reference samples of the template for each candidate mode. A cost is calculated as the SATD between the prediction and the reconstruction samples of the template. First two intra prediction modes with the minimum SATD are selected as the TIMD modes. These two TIMD modes are fused with the weights to generate prediction for the current CU.
[0030] 1.5 An extrapolation filter-based intra prediction (EIP) mode (from JVET-AF0080)
[0031] 1.5.1 Obtaining the EIP filter
[0032] Three EIP filter shapes are proposed in this method.
[0033] 1.5.1.1 Derivation of EIP coefficients (EIP derived modes)
[0034] The decoder decodes the relevant syntax elements to determine the selected type of reconstructed area and the filter shape for the current block. The selected filter moves in the selected reconstructed area either horizontally or vertically with a one-pixel step to construct the auto-correlation matrix and the cross-correlation vector. The calculation of coefficients follows the method for CCCM.
[0035] 1.5.1.2 Inheritance of the EIP filters (EIP merge modes)
[0036] The filter shape and the filter coefficients can be inherited from the previous decoded blocks with EIP or EIP merge mode. The EIP merge list includes spatial adjacent and non-adjacent candidates, temporal candidates, and history candidates.
[0037] 1.5.2 Prediction of the current block
[0038] The EIP mode generates prediction values for the current block from the top-left position to the bottom-right position by a diagonal prediction order.
[0039] 1.6 Template-based multiple reference line intra prediction
[0040] Template-based multiple reference line intra prediction (TMRL) mode combines reference line and prediction mode together and uses a template matching method to construct a list of candidate combinations. An index to the candidate combination list is signalled.
[0041] The extended reference line starts from reference line 1. Reference line 0 is used for template matching. The SAD costs (TMRL costs) over the template area (see FIG. 1) are calculated between the predictions (generated by 50 combinations) and the reconstructions. The 20 combinations with the least SAD cost are selected in an ascending order to form the TMRL candidate list.
[0042] In this disclosure, the terms “TMRL” and “MRL” are used interchangeably.
[0043] 1.7 JVET-AG0084: AHG12: DIMD Merge List
[0044] This contribution proposes to create a DIMD merge list from neighboring blocks’ DIMD information.
[0045] It includes:
[0046] DIMD information from spatial neighbors,
[0047] DIMD information from non-adjacent neighbors,
[0048] DIMD information derived from the MHoG (as described in JVET-AF0106) .
[0049] Two redundancy checks (pruning stage) are applied: one comparing with DIMD merge candidates, and one comparing with DIMD information derived from the current block. Thus, a DIMD merge candidate is added to the DIMD merge list when the associated DIMD information is different from every information from DIMD merge candidates already present in the list and the current block DIMD information.
[0050] Two additional flags are added conditioned to the DIMD flag, i.e., the DIMD Merge is considered as a sub-mode of DIMD.
[0051] The two flags are:
[0052] The DIMD merge mode flag (like in JVET-AE0071)
[0053] The DIMD merge mode index representative of the DIMD merge candidate.
[0054] 1.8 JVET-AG0106: AHG 12: TIMD merge mode
[0055] It is proposed to inherit the TIMD modes from the previously TIMD coded blocks. For this, the adjacent and non-adjacent spatial neighboring blocks are scanned and if the scanned block is coded in TIMD or TIMD merge mode, then its TIMD information (prediction modes, fusion flag, fusion weights and wide-angle conditions of TIMD modes) are added to a TIMD merge list. Up to 10 TIMD pairs are added into the list.
[0056] After forming the TIMD merge list, the merge candidates are sorted based on the SATD cost over the template of the current block.
[0057] 1.9 Inter prediction (More details in JVET-T2002. )
[0058] 1.9.1 Spatial candidate derivation
[0059] Spatial merge candidates are selected among candidates located in the positions depicted in FIG. 2.
[0060] 1.10 JVET-AG0091: EE2-1.8: Auto-relocated block vector prediction
[0061] Auto-relocated block vector prediction (AR-BVP) is introduced into IBC merge / AMVP candidate list construction.
[0062] A guiding block vector BV0, 1 associated with the current block B0 points to a reference block B1. If B1 has a BV denoted as BV1, 2 pointing to a reference block B2, then BV0, 2, given by BV0, 2 =BV0, 1 +BV1, 2, is defined as the AR-BVP, guided by BV0, 1. Similarly, BV0, n+1 can be derived by BV0, n+1 =BV0, n+BVn, n+1 = BV0, 1+BV1, 2 +…+BVn-1, n +BVn, n+1.
[0063] The length of the AR-BVP trace path can be 1, 2, or infinity.
[0064] When deriving BVn, n+1 guided by BV0, n, five positions including top-left, top-right, center, bottom-left, and bottom-right positions, of Bn are checked to find BVn, n+1.
[0065] The initial guiding block vector BV0, 1 can be an existing BVP already in the IBC merge / AMVP candidate list. The AR-BVP candidates are inserted after the HBVP candidates.
[0066] 1.11 JVET-AG0073: Non-EE2: Chained motion vector prediction
[0067] A chained MV prediction (CMVP) is introduced into inter merge candidate list construction.
[0068] CMVP candidates can be derived as the sum of the recursively traced MVs and BVs based on the pre-derived MVs for the inter merge candidate list. For instance, a CMVP candidate, a set of motion vector MVk / m and reference picture RefPick / m can be derived by MVk / m = MVk (0) + BVk (0) + MVk (1) +MVk (2) + …+ MVk (m) , RefPick / m = RefPick (m) ,
[0069] where k and m indicate the number of merge index and trace depths of the CMVP.
[0070] When deriving MVk / m, MVk (m) is found by checking the existence of MVs or BVs in MV / BV storage corresponding to all five position of the current block (i.e., the center, top-left, top-right, bottom-left, and bottom-right of the current block) .
[0071] The traceable reference pictures are only within the reference picture list.
[0072] 2. Proposed method
[0073] In this invention, an intra merge scheme is proposed to improve intra prediction using a merge scheme. The concept of the merge scheme is to inherit (or reference) the information from previous coded blocks and use the inheritance information to predict the current block. The main difference between the proposed intra merge scheme and the traditional intra MPM is described as follows. For an intra block, the traditional intra MPM can only inherit the intra prediction mode signalled in the previous coded block, for example, the intra prediction mode with the mode index referring to angular prediction modes, DC, or planar from the above neighboring block and / or the left neighboring block. The proposed intra merge scheme brings more flexible inheritance flows and / or more efficient inheritance information in the following aspects.
[0074] In the first aspect, unlike the traditional intra MPM, the inheritance information is not limited to the signalled intra prediction mode. In some embodiments specified in Section 2.1 “inheritance information setting” , with the proposed intra merge scheme, the inheritance information can be any mode information, any sample information, any block information, any model information, and / or any information associated with prediction generation.
[0075] In the second aspect, unlike the traditional intra MPM, the previous coded blocks containing the inheritance information are not limited to being located at the left neighboring block or the above neighboring block. In some embodiments specified in Section 2.2 “inheritance block setting” , with the proposed intra merge scheme, the current block can find the previous coded blocks containing the inheritance information through several proposed merge methods.
[0076] In the third aspect, unlike the traditional intra MPM which only is used to improve regular intra luma prediction, in Section 2.3 “target mode setting and shortcut syntax setting” , for some embodiments, the proposed merge scheme is to obtain the information associated with prediction generation of the current block coded by DIMD merge (the proposed intra merge scheme with the target mode as DIMD) , TIMD merge (the proposed intra merge scheme with the target mode as TIMD) , TMRL merge (the proposed intra merge scheme with the target mode as TMRL) , or intra mixed merge (the proposed intra merge scheme with the target mode as mixed modes) .
[0077] When generating the prediction of the current block coded by the target mode, one or more inheritance blocks are selected from a merge candidate list or among several merge candidates. Then, the inheritance information from the inheritance blocks is used for the target mode to generate prediction. In some embodiments, the inheritance information of each merge candidate can belong to different target modes, that is, mixed modes. For example, the inheritance information of merge candidates can be related to DIMD, and / or TIMD, and / or MRL, and / or EIP. One merge candidate list can contain the merge candidates with different target modes. The current block can be predicted following DIMD or TIMD or MRL or EIP depending on which merge candidate is used. In some embodiments, the inheritance information of each merge candidate belongs to the same target mode. For example, the inheritance information of each merge candidate is related to DIMD, TIMD or MRL, and the current block is predicted following DIMD process, TIMD process, MRL process respectively.
[0078] 2.1 Inheritance information setting
[0079] Here defines the inheritance information for generating prediction of the current block using a target mode.
[0080] In one embodiment, the inheritance information is from a previous coded block specified in Section 2.2 “inheritance block setting” . The previous coded block generates the inheritance information of the target mode and / or stores the inheritance information of the target mode. The stored inheritance information of the previous coded block can be referenced by subsequent coding blocks, such as the current block. For example, for each block containing DIMD / TIMD / MRL information (which can be a DIMD / TIMD / MRL-coded block or not a DIMD / TIMD / MRL-coded block) , the DIMD / TIMD / MRL information is stored and / or referenced by the subsequent coding blocks. For example, for each pre-defined unit containing DIMD / TIMD / MRL information (which may refer to any pre-defined region or kxk grids in DIMD / TIMD / MRL coded blocks where k can be 2, 4, 8, 16, or any pre-defined positive integer) , the DIMD / TIMD / MRL information is stored and / or referenced by the subsequent coding blocks.
[0081] In one embodiment, directional prediction modes for the intra prediction modes in the inheritance information can be in a pre-defined directional range. For example, the pre-defined directional range is from 0 to 64, so there are totally 65 directional prediction modes. For another example, the pre-defined directional range is from 0 to 130, so there are totally 131 directional prediction modes.
[0082] 2.1.1 Inheritance information setting for DIMD
[0083] When the target mode is DIMD mode, the inheritance information includes (a) and / or (b) and / or (c) and / or (d) .
[0084] (a) one or more histogram (bar) values for the available DIMD intra prediction modes (such as DC, planar, and / or directional prediction modes)
[0085] (b) the N intra prediction modes (with the highest N histogram bars) suggested by the histogram values
[0086] (c) DIMD weighting information and / or fusion or not
[0087] (d) reference line information and / or wide-angle conditions
[0088] 2.1.2 Inheritance information setting for TIMD
[0089] When the target mode is TIMD mode, the inheritance information includes (a) and / or (b) and / or (c) and / or (d) .
[0090] (a) one or more TIMD cost values for the available TIMD intra prediction modes (such as DC, planar, and / or directional prediction modes)
[0091] (b) the N intra prediction modes (with the smallest N TIMD costs) suggested by the TIMD costs
[0092] (c) TIMD weighting information and / or fusion or not
[0093] (d) reference line information and / or wide-angle conditions
[0094] 2.1.3 Inheritance information setting for MRL
[0095] When the target mode is MRL mode, the inheritance information includes (a) and / or (b) and / or (c) and / or (d) .
[0096] (a) one or more reference lines jointly with intra prediction modes (such as DC, planar, and / or directional prediction modes)
[0097] (b) the N intra prediction modes (with the smallest N TIMD costs) suggested by the TIMD costs
[0098] (c) weighting information and / or fusion or not
[0099] (d) reference line information and / or wide-angle conditions
[0100] 2.1.4 Inheritance information setting for mixed modes
[0101] When the target mode is mixed-mode merge, the inheritance information includes all or any subset of the following items.
[0102] - item1: (a) and / or (b) and / or (c) and / or (d) in Section 2.1.1
[0103] - item2: (a) and / or (b) and / or (c) and / or (d) in Section 2.1.2
[0104] - item3: (a) and / or (b) and / or (c) and / or (d) in Section 2.1.3
[0105] - item4: coding mode (for example, DIMD-related mode or not, TIMD-related mode or not, MRL-related mode or not, SGPM-related mode or not, ISP-related mode or not, intraTMP-related mode or not, MPM-related mode or not, MIP-related mode or not, EIP-related mode or not, and / or any mode related to a pre-defined intra mode) and / or corresponding information of the coding mode.
[0106] In another embodiment, item 4 is included in the inheritance information and / or the coding mode in item4 decides the corresponding information to be further included in the mixed-mode inheritance information. For example, the coding mode in item 4 is MRL-related mode and only the corresponding information from item3 is included in the mixed-mode inheritance information.
[0107] In one embodiment, the coding mode in item4 is from a previous coded block specified in Section 2.2 “Inheritance block setting” . The previous coded block may store the mixed-mode inheritance information. The stored mixed-mode inheritance information of the previous coded block can be referenced by subsequent coding blocks (e.g., the current block) . For example, for each block containing the mixed-mode information, the mixed-mode information is stored and / or referenced by subsequent coding blocks. For example, for each pre-defined unit containing the mixed-mode information, the mixed-mode information is stored and / or referenced by subsequent coding blocks. The unit can be any pre-defined region or kxk grids, where k can be 2, 4, 8, 16, or any pre-defined positive integer.
[0108] In one sub-embodiment, the coding mode is EIP. The previous coded block generates the corresponding EIP inheritance information (e.g., filter shape and / or filter coefficients) and / or stores the mixed-mode inheritance information (coding mode and / or the corresponding information) .
[0109] In one sub-embodiment, the coding mode is SGPM (spatial geometric partitioning mode) . This mode generates multiple hypotheses of predictions from different intra prediction modes and combines the hypotheses of predictions to form the final prediction using the weights based on a geometric partitioning line as inter GPM. The previous coded block generates the corresponding SGPM inheritance information (e.g., intra prediction modes and / or partitioning line and / or weights) and / or stores the mixed-mode inheritance information (coding mode and / or the corresponding information) .
[0110] In one sub-embodiment, the coding mode is ISP (intra sub-partition) . This mode splits the current block into several sub-partitions and generates prediction of each sub-partition using the reconstructed samples (possibly from the previous sub-partition) adjacent to the current sub-partition as the reference samples. The previous coded block generates the corresponding ISP inheritance information (e.g., one or more intra prediction modes and / or splitting method) and / or stores the mixed-mode inheritance information (coding mode and / or the corresponding information) .
[0111] In one sub-embodiment, the coding mode is IntraTMP (intra template matching prediction) . This mode uses template matching to find a displacement (i.e., block vector) to refer a reference block in a pre-defined range of the current picture and generates prediction using the reconstructed samples of the reference block. The previous coded block generates the corresponding intraTMP inheritance information (for example, one or more block vectors) and / or stores the mixed-mode inheritance information (coding mode and / or the corresponding information) .
[0112] In another embodiment, the coding mode is MIP (matrix-based intra prediction) . This mode uses a pre-defined matrix and pre-defined adjacent or non-adjacent reference samples to generate the prediction. The previous coded block generates the corresponding MIP inheritance information (for example, one or more matrix indications and / or one or more matrix coefficients of the indicated matrixes and / or block width and / or block height and / or block area and / or block position) and / or stores the mixed-mode inheritance information (coding mode and / or the corresponding information) .
[0113] In another embodiment, instead of storing all mixed-mode information (which may be used for reference) , to reduce the storage, only the subset of mixed-mode information is stored. For example, only 3 or any pre-defined positive number from all are stored. For example, the subset is the first 3 from all. The first 3 always comprises item4.
[0114] 2.2 Inheritance block setting
[0115] 2.2.1 Inheritance information from the previous coded blocks
[0116] The inheritance information is obtained from the previous coded blocks.
[0117] In one embodiment, one or more candidates of spatial adjacent candidates and / or non-adjacent candidates, history candidates, temporal candidates, default candidates, or any subset of above-mentioned candidates provide the inheritance information from the previous coded blocks.
[0118] In one embodiment, a merge candidate list, containing inheritance information, is built for the current block. Like the inter merge mode candidate list, the merge candidate list includes spatial adjacent candidates and / or non-adjacent candidates, history candidates, temporal candidates, default candidates, or any subset of above-mentioned candidates.
[0119] In one sub-embodiment, after building the merge candidates list, one or more candidates are selected from the list for the current block to use. The selection depends on explicitly signalling an index or implicitly select the one or more (promising) candidates.
[0120] 2.2.1.1 Spatial adjacent candidates and non-adjacent candidates
[0121] The spatial adjacent candidates are from the adjacent neighboring blocks of the current block. The adjacent neighboring blocks can be the same as the 5 spatial neighboring blocks for inter merge mode. The non-adjacent candidates are from a search range around (but not adjacent to) the current block. The search range can be the same as the search range of non-adjacent candidates for inter merge mode.
[0122] 2.2.1.2 History candidates
[0123] The history candidates are selected from a history-based buffer array. In the history-based buffer array, the inheritance information of each valid previous coded block is stored where the valid previous coded block refers to any block containing inheritance information.
[0124] 2.2.1.3 Temporal candidates
[0125] The temporal candidates are obtained from the inheritance information stored in one or more previous coded pictures. The temporal candidates are obtainable when the current slice / picture is a non-intra slice / picture.
[0126] In one embodiment, the temporal candidates can be from the block at some pre-defined positions (x′, y′) of the previous coded slices / picture.
[0127] In one sub-embodiment, the positions are inside the corresponding area of the current encoding / decoding block.
[0128] In one sub-embodiment, the pre-defined positions are outside of the corresponding area of the current encoding / decoding block.
[0129] In one sub-embodiment, the pre-defined positions can be determined based on the position, width and height of the current block.
[0130] In one sub-embodiment, the pre-defined positions can be determined based on the position, and some pre-defined fixed x-y distances.
[0131] In one embodiment, the previous coded pictures are among the pictures in the reference lists.
[0132] In one embodiment, the previous coded pictures are the same pictures as the collocated picture of the regular inter merge mode.
[0133] In one embodiment, there can be more than one selected / pre-defined previous coded picture.
[0134] In one embodiment, the previous coded pictures can be signaled in the picture / slice header. The reference list and the reference index are signaled in the picture / slice header. For example, L0 [0] is signaled. For another example, L1 [0] is signaled.
[0135] In one embodiment, the previous coded pictures are selected from a picture set with some pre-defined rules.
[0136] In one embodiment, the previous coded pictures are selected from pictures in the reference lists. The selection can be determined based on POC, and / or POC distance, and / or QP, and / or QP difference. For another example, pictures with the smaller POC are selected. For another example, the picture with the larger POC is selected. For example, the picture whose POC distance between it and the current picture is the smallest is selected. For another example, the picture with the smaller QP is selected. For another example, the picture with the larger QP is selected. For another example, the picture with smaller QP difference between it and the current picture is selected.
[0137] In one embodiment, the previous coded picture is the most recently coded I-picture.
[0138] In one embodiment, the rules to select / not select the previous coded pictures described in the paragraphs above can be combined. For example, the picture whose QP is the smallest among the un-scaled pictures in the reference lists is selected.
[0139] 2.2.2 Propagated inheritance information
[0140] In one embodiment, one or more inheritance information is derived and stored in the current block. The stored inheritance information can then be referenced by the following coding blocks as merge candidates as described in Section 2.2.1 “Inheritance information from the previous coded blocks” . In one sub-embodiment, the inheritance information is derived and stored after encoding / decoding a block. In another sub-embodiment, the inheritance information is derived and stored after the encoding / decoding of the current picture.
[0141] In one embodiment, if the current block is coded in the target mode or is coded in modes that can derive target mode information, the inheritance information to be stored is the target mode information of the current block.
[0142] In one embodiment, the inheritance information to be stored in the current block can be derived by propagating inheritance information of previous coded blocks to the current block. That is, the inheritance information to be stored in the current block can be derived based on or copied from the inheritance information stored (including the inheritance information previously propagated from other blocks) in the previous coded blocks. Various methods of propagating inheritance information are described in Section 2.2.2.1 “Inheritance information propagated from collocated blocks” , Section 2.2.2.2 “Inheritance information propagated based on MV or BV” , Section 2.2.2.3 “Inheritance information propagated based on cascaded vector” , and Section 2.2.2.4 “Priority of propagated inheritance information” .
[0143] In one embodiment, when referencing neighboring blocks to obtain merge candidates, in addition to the inheritance information stored in the neighboring block, more merge candidates can be derived by propagating inheritance information of previous coded blocks to the neighboring block. The methods of deriving / selecting the propagated inheritance information to be stored in the current block, as described in Section 2.2.2.1 “Inheritance information propagated from collocated blocks” , Section 2.2.2.2 “Inheritance information propagated based on MV or BV” , Section 2.2.2.3 “Inheritance information propagated based on cascaded vector” and Section 2.2.2.4 “Priority of propagated inheritance information” , can be used to derive / select propagated inheritance information for the neighboring block.
[0144] In one embodiment, when referencing inheritance information derived for the neighboring blocks to obtain merge candidates, there can be some pre-defined rules to determine the inclusion order of the inheritance information. The rules can be but not limited to the rules described in the following sub-embodiments.
[0145] In one sub-embodiment, the inclusion order of the derived inheritance information follows the inclusion order of the neighboring block. For example, if the inheritance information is derived for a spatial candidate, then the derived inheritance information is inserted into the candidate list at the inclusion order of that spatial candidate.
[0146] In one sub-embodiment, the inclusion order can depend on the source of the inheritance information. The source of the inheritance information can be the target mode information of the current block, from a collocated block, from a reference block located by a MV or a BV, or from a reference block located by a cascaded vector. For example, the inheritance information located by the cascaded vectors can be inserted into the candidate list after the history-based candidates.
[0147] 2.2.2.1 Inheritance information propagated from collocated blocks
[0148] In one embodiment, if the current slice / picture is a non-intra slice / picture, the inheritance information to be stored can be derived by copying the inheritance information of a collocated block in a previous coded picture. The previous coded picture can be selected with the methods described in Section 2.2.1.3 “Temporal candidates” . The position of the collocated block can be the same as the pre-defined positions of temporal candidates as described in Section 2.2.1.3 “Temporal candidates” .
[0149] In one sub-embodiment, if the POC distance between the selected / pre-defined previous coded picture and the current picture is greater than a pre-defined threshold, the inheritance information from the collocated block is not copied and is not stored in the current block.
[0150] 2.2.2.2 Inheritance information propagated based on MV or BV
[0151] In one embodiment, if there are block vectors obtainable at the position of the current block, (e.g., the current block is coded in IBC or IntraTMP mode, or the collocated luma block is coded in IBC or IntraTMP mode) , the inheritance information to be stored can be derived by copying the stored inheritance information of the reference block located by the block vector. In one embodiment, if the reference block located by the block vector does not have inheritance information stored, no inheritance information is propagated to be stored in the current block.
[0152] In one embodiment, the block vectors used to locate the reference blocks can be retrieved from some pre-defined positions corresponding to the position of the current block. For example, the pre-defined position can be the center, top-left, top-right, bottom-left, or bottom-right of the current block.
[0153] In one embodiment, when multiple block vectors can be obtained from the current block (e.g., the block vector can be bi-directional, the block can have multiple IntraTMP block vectors, or the current chroma block is collocated with multiple luma blocks and more than one of the luma blocks have block vectors) , there is a limit to the number of block vectors that can be selected to locate the reference block. For example, the limit can be 1. The block vectors can be selected based on some pre-defined rules. The pre-defined rules can be but not limited to the rules described in the following sub-embodiments. The rules can also be combined.
[0154] In one sub-embodiment, the block vector which is able to locate a reference block that has inheritance information stored is selected.
[0155] In one sub-embodiment, the block vector which is able to locate a reference block that is coded in the target mode or target-mode related modes is selected.
[0156] In one sub-embodiment, the block vector which locates a reference block that is closest to the current block is selected. The distance can be computed with Euclidean distance, Manhattan Distance, Minkowski distance, or Chebyshev distance.
[0157] In one sub-embodiment, the block vector which locates a reference block that has the shortest horizontal distance from the current block is selected.
[0158] In one sub-embodiment, the block vector which locates a reference block that has the shortest vertical distance from the current block is selected.
[0159] In one embodiment, if there are motion vectors obtainable at the position of the current block, (e.g., the current block inter-coded) , the inheritance information to be stored can be derived by copying the stored inheritance information of the reference block in a previous coded picture, located by the motion vector. In one embodiment, if the reference block located by the motion vector does not have inheritance information stored, no inheritance information is propagated to be stored in the current block.
[0160] In one embodiment, the motion vectors used to locate the reference blocks can be retrieved from some pre-defined positions corresponding to the position of the current block. For example, the pre-defined position can be the center, top-left, top-right, bottom-left, or bottom-right of the current block.
[0161] In one embodiment, the motion vectors used to locate the reference blocks are the MVP of the current block. In one embodiment, the motion vectors used to locate the reference blocks are the combination of MVP and MVD of the current block.
[0162] In one embodiment, when multiple motion vectors can be obtained from the current block (e.g., the block is bi-directional inter-coded) , there is a limit to the number of motion vectors that can be selected to locate the reference block. For example, the limit can be 1. The motion vectors can be selected based on some pre-defined rules. The pre-defined rules can be but not limited to the rules described in the following sub-embodiments. The rules can also be combined.
[0163] In one sub-embodiment, the motion vector which is able to locate a reference block that has inheritance information stored is selected.
[0164] In one sub-embodiment, the motion vector which is able to locate a reference block that is coded in the target mode or target-mode related modes is selected.
[0165] In one sub-embodiment, the motion vector that corresponds to a reference block whose reference picture has the smaller POC distance from the current picture is selected.
[0166] In one sub-embodiment, the motion vector that corresponds to a reference block whose reference picture has the smaller POC value from the current picture is selected.
[0167] In one sub-embodiment, the motion vector that corresponds to a reference block whose reference picture has the larger POC value from the current picture is selected.
[0168] In one sub-embodiment, the motion vector that corresponds to a reference block whose reference picture has the smaller QP difference from the current picture is selected.
[0169] In one sub-embodiment, the motion vector that corresponds to a reference block whose reference picture has the smaller QP value from the current picture is selected.
[0170] In one sub-embodiment, the motion vector that corresponds to a reference block whose reference picture has the larger QP value from the current picture is selected.
[0171] In one sub-embodiment, the inheritance information of each reference block is applied on the templates of the current block to generate the prediction of the template samples. The distortion between the prediction and the reconstructed samples is computed. The motion vector associated with the smaller distortion is selected.
[0172] In one embodiment, if the POC distance between the reference picture located by the motion vector and the current picture is greater than a pre-defined threshold, the motion vector and the reference block is considered unavailable.
[0173] In one embodiment, the position located by the motion vector has to be in the collocated CTU row in the reference picture. As depicted in FIG. 3, if the position located by the motion vector is above the collocated CTU row, the position is mapped to the top line of the collocated CTU row. If the position located by the motion vector is below the current CTU row, the position is mapped to the bottom line of the collocated CTU row. The inheritance information from the mapped position is then copied and stored in the current block. Assume the minimum and the maximum vertical position of the current CTU row are Y1 and Y2 respectively. Assume the position located by the motion vector is (Xm, Ym) . If Xm < Y1, then the position is changed to (Xm, Y1) . If Ym > Y2, then the position is changed to (Xm, Y2) .
[0174] In one embodiment, when multiple block vectors and / or motion vectors can be obtained from the current block, the inheritance information to be stored can be the combination of all or a subset of the inheritance information of all of the reference blocks located by the block vectors and / or motion vectors.
[0175] 2.2.2.3 Inheritance information propagated based on cascaded vector
[0176] The cascaded vector is an extension of AR-BVP and CMVP described in Section 1.10 “JVET-AG0091: EE2-1.8: Auto-relocated block vector prediction” and Section 1.11 “JVET-AG0073: Non-EE2: Chained motion vector prediction” respectively.
[0177] In one embodiment, the inheritance information to be stored in the current block can be derived by copying the stored inheritance information of the reference block located by a cascaded vector.
[0178] The cascaded vector is derived as the sum of the recursively traced motion vectors and block vectors based on a base vector. A cascade vector can be derived with the following steps:
[0179] 1) Starting from a base vector.
[0180] For the i-th recursion:
[0181] 2) Locate a block based on a cascaded vector CV (i-1)
[0182] 3) Retrieve a vector from the located block. This vector can be an L0 motion vector, an L1 motion vector or a block vector. Denote this vector as V (i)
[0183] 4) A new cascaded vector is derived as CV (i) = CV (i-1) + V (i) = CV (0) + V (1) + V (2) + …+V (i)
[0184] The Step 2-4 are repeated for each recursion.
[0185] For the first recursion CV (0) is the base vector.
[0186] For example, as depicted in FIG. 4, the base vector is the L0 motion vector of the current block. Denote the L0 motion vector of the current block as MVL0 (0) . Denote the block vector of the block indicated by MVL0 (0) as BV (0) , and denote the L0 motion vector of the block indicated by BV (0) as MVL0 (1) and so on. The cascaded vector MV_m is then: MV_m = MVL0 (0) + BV (0) + MVL0 (1) + …+ MVL0 (m)
[0187] And the reference picture of MVL0_m is: RefPicL0_m = RefPicL0 (m)
[0188] Here m is the trace depth, that is the number of reference picture referenced traced back.
[0189] Cascaded vectors can be the sum of L0 motion vectors, and / or L1 motion vectors and / or block vectors.
[0190] In one embodiment, if there is a motion vector or block vector obtainable in the current block, the base vector used Step 1 can be the motion vector or the block vector of the current block.
[0191] In one embodiment, a candidate list in which the candidate contains motion vector and / or block vector information can be generated. The base vector used in Step 1 can be derived based on the candidates in the candidate list. For example, the candidate list can be the list generated for the mode of the current block, like the inter merge candidate list generated for inter merge coded blocks. For example, the candidate list can be generated following the methods of generating an IntraTMP candidate list or an MMVD candidate list. In one sub-embodiment, the candidate list can be generated following the methods of generating a merge candidate list. For example, the candidate list can be generated following the method of generating an inter merge candidate list. For example, the candidate list can be generated following the method of generating an IBC merge candidate list. For other examples, the candidate list can be generated following the methods of generating a template matching merge candidate list, a bilateral matching merge candidate list, a CIIP-TM merge candidate list, or an affine merge candidate list. In one sub-embodiment, the candidate list can be generates following the method of generating an MVP list. For example, the candidate list can be generated following the method of generating an MVP list of AMVP mode.
[0192] In one embodiment, the vector in Step 3 can be retrieved by checking some pre-defined positions corresponding to the current block. For example, the pre-defined positions can be the 5 positions (the center, top-left, top-right, bottom-left, and bottom-right of the current block) described in Section 1.11 “JVET-AG0073: Non-EE2: Chained motion vector prediction”
[0193] In one embodiment, the vector retrieved in Step 3 is the L0 motion vector of the block if the block is inter-coded. In one embodiment, the vector retrieved in Step 3 is the L1 motion vector of the block if the block is inter-coded. In one embodiment the vector retrieved in Step 3 is the block vector of the block.
[0194] In one embodiment, the vector retrieved in Step 3 can only be a motion vector. In one embodiment, the vector retrieved in Step 3 can be a block vector. In one embodiment, the vector retrieved in Step 3 can be a motion vector or a block vector.
[0195] In one embodiment, in Step 4, a new cascaded vector is only created if V (i) retrieved in Step 3 is a motion vector. CV (i) is still computed, but CV (i) is not used to locate a reference block to retrieve inheritance information. (i+1) th recursion is still performed with CV (i) as the input. In one embodiment, in Step 4, a new cascaded vector is only created if V (i) retrieved in Step 3 is a block vector. In one embodiment, in Step 4, a new cascaded vector is always created regardless the type of V(i) retrieved in Step 3.
[0196] In one embodiment, for each recursion, multiple new cascaded vectors can be derived at Step 4, if multiple motion vectors and / or multiple block vectors can be retrieved from the block in Step 3. The multiple newly derived cascaded vectors can all be the vector used in Step 2 in the next recursion. For example, assume the block indicated by MVL0 (1) is bi-prediction and has two motion vector MVL0 (2) and MVL1 (2) . Two new cascaded vectors can be derived as MV_1 +MVL0 (2) and MV_1 + MVL1 (2) , where MV_1 = MVL0 (0) + BV (0) + MVL0 (1) . Each new cascaded vector can be fed into the next recursion as the cascaded vector in Step 2. Hence two branches of recursion can start.
[0197] In one embodiment, if the trace depth exceeds a threshold, the recursion stops. In one sub-embodiment, the threshold can be a finite value. For example, the threshold can be 1. In one sub-embodiment, the threshold can also be infinite. That is, the recursion doesn’ t stop until no V (i) can be located. In one sub-embodiment, the threshold can be pre-defined.
[0198] In one embodiment, if the number of recursions exceeds a threshold, the recursion stops. In one sub-embodiment, the threshold can be a finite value. For example, the threshold can be 1. In one sub-embodiment, the threshold can also be infinite. In one sub-embodiment, the threshold can be pre-defined.
[0199] In one embodiment, the block located in Step 3 can be a CU / CB, PU, TU / TB or a corresponding block with the same size of the current block.
[0200] In one embodiment, there’s a limit to the number of cascaded vectors allowed to be derived for each trace depth / recursion / base vector. For example, no more than two cascaded vectors are allowed to be derived for each trace depth / recursion / base vector.
[0201] 2.2.2.4 Priority of propagated inheritance information
[0202] In one embodiment, there’s a limit to the number of inheritance information stored in one block. The limit can be pre-defined. For example, the limit can be 1.
[0203] In one embodiment, when the number of inheritance information obtainable in one block exceeds the limit, the priority of the inheritance information to be stored can be determined based on some pre-defined rules. The pre-defined rules can be but not limited to the rules described in the following sub-embodiments. The pre-defined rules can also be the rules of selecting block vector and / or motion vector described in the Section 2.2.2.2 “Inheritance information propagated based on MV or BV” . The rules can be combined. The pre-defined rules can depend on the source of the inheritance information, the temporal reference picture distance, quantization parameter, quantization parameter difference, spatial distance, trace depth or number of recursions.
[0204] In one sub-embodiment, the target mode information of the current block has higher or the highest selection priority.
[0205] In one sub-embodiment, the priority of inheritance information is determined based on the source of the inheritance information. The source of the inheritance information can be the target mode information of the current block, from a collocated block, from a reference block located by a MV or a BV, or from a reference block located by a cascaded vector.
[0206] In one sub-embodiment, if the inheritance information is retrieved based on a cascaded vector, the priority can be determined based on the trace depth / number of recursions of the cascaded vector. The shorter the trace depth / number of recursions is, the higher the selection priority is for the CCM information.
[0207] In one sub-embodiment, the inheritance information corresponding to the reference block whose reference picture has the smaller POC distance to the current picture has higher priority.
[0208] In one sub-embodiment, the inheritance information corresponding to the reference block whose reference picture has the smaller QP difference from the current picture has higher priority.
[0209] In one sub-embodiment, the inheritance information corresponding to the reference block whose reference picture has the smaller QP value has higher priority. In one sub-embodiment, the inheritance information corresponding to the reference block whose reference picture has the larger QP values has higher priority.
[0210] In one sub-embodiment, the inheritance information corresponding to the reference block whose distance to the current block is the smallest has higher priority, if the reference block is located at the same picture as the current block. The distance can be computed as Euclidean distance, Manhattan Distance, Minkowski distance, or Chebyshev distance.
[0211] 2.3 Target mode setting and shortcut syntax setting
[0212] In one embodiment, only one candidate, for example, the first available candidate, according to the inheritance block setting, is used to decide the prediction information for the current block.
[0213] In another embodiment, one or more candidates are used to decide the prediction information for the current block. For example, all available candidates are used to decide the prediction information for the current block.
[0214] In another embodiment, whether to apply the DIMD / TIMD / MRL merge mode to the current block depends on the syntax of the current block. For example, one flag (DIMD / TIMD / MRL merge flag) is signalled to indicate whether to apply the DIMD / TIMD / MRL merge mode to the current block.
[0215] 2.3.1 Target mode setting for DIMD (DIMD merge mode)
[0216] This section specifies a DIMD merge mode. When DIMD merge mode is used, the DIMD inheritance information (for example, each candidate providing histogram (bar) values) from one or more pre-defined candidates according to the inheritance block setting, is used to decide the prediction information, required for generating the prediction of the current block. For example, the inheritance information refers to the histogram values from the previous coded block and is used to decide one or more intra prediction modes (one kind of prediction information) and / or corresponding weights for the current block as regular DIMD. Then, unified with regular DIMD, the hypothesis of prediction from each derived intra prediction mode is combined using blending process to form the final prediction of the current block.
[0217] 2.3.2 Target mode setting for TIMD (TIMD merge mode)
[0218] This section specifies a TIMD merge mode. When the TIMD merge mode is used, the TIMD inheritance information from one or more pre-defined candidates (for example, each candidate providing N intra prediction modes for the available TIMD intra prediction modes and TIMD weighting information, such as {IPM1, IPM2, W1, W2} , and / or fusion or not, and wide-angle conditions) according to the inheritance block setting, is used to decide the prediction information, required for generating the prediction of the current block. For example, the merge candidate list is built and reordered according to the costs in the template matching process. The template size and the template cost calculation may be unified with regular TIMD. After reordering the TIMD merge candidates, the first 2 or any pre-defined number candidates from the list are kept for signalling. Then, unified with regular TIMD, the hypothesis of prediction from each inherited intra prediction mode is combined using blending process to form the final prediction of the current block.
[0219] 2.3.3 Target mode setting for MRL (MRL merge mode)
[0220] This section specifies an MRL merge mode. When the MRL merge mode is used, the inheritance information from one or more pre-defined candidates (for example, each candidate providing to one or more reference lines jointly with intra prediction modes (IPM1 and MRL1) and / or fusion or not, and wide-angle conditions) according to the inheritance block setting, is used to decide the prediction information, required for generating the prediction of the current block. For example, the merge candidate list is built and reordered according to the costs in the template matching process. The template size and the template cost calculation may be unified with regular TMRL. After reordering the MRL merge candidates, the first 2 or any pre-defined number candidates from the list are kept for signalling. Then, unified with regular intra prediction, for the example of inherited IPM1 and MRL1, the prediction from the inherited intra prediction mode and the inherited reference line is to form the final prediction of the current block; for the example of inherited IPM1 with MRL1 and IPM2 with MRL2, the hypothesis of prediction from each inherited intra prediction mode with the corresponding inherited reference line is combined using blending process to form the final prediction of the current block; for the example of inherited IPM1 with MRL1 / W1 and IPM2 with MRL2 / W2, the hypothesis of prediction from each inherited intra prediction mode with the corresponding inherited reference line is combined using blending process with W1 and W2 to form the final prediction of the current block.
[0221] 2.3.4 Target mode setting for mixed modes
[0222] This section specifies a mixed-mode merge mode. When the mixed-mode merge mode is used, the inherited mixed-mode information is used to generate the prediction of the current block. The inheritance information of a candidate may refer to the coding mode and / or the corresponding information. The current block obtains its own prediction information from the inheritance information.
[0223] An example of the coding mode from the inherited mixed-mode information being DIMD-related:
[0224] - In one case or another, DIMD merge mode (Section 2.3.1) or regular DIMD is applied to the current block.
[0225] An example of the coding mode from the inherited mixed-mode information being TIMD-related:
[0226] - In one case or another, TIMD merge mode (Section 2.3.2) or regular TIMD is applied to the current block.
[0227] An example of the coding mode from the inherited mixed-mode information being MRL-related:
[0228] - In one case or another, MRL merge mode (Section 2.3.3) or regular intra prediction using MRL or TMRL is applied to the current block.
[0229] An example of the coding mode from the inherited mixed-mode information being EIP-related:
[0230] - In one case or another, EIP merge mode or EIP derived mode is applied to the current block.
[0231] In another embodiment, only one candidate (e.g., the first available candidate) according to the inheritance block setting, is used to decide the prediction information for the current block.
[0232] In another embodiment, one or more candidates are used to decide the prediction information for the current block. For example, all available candidates are used to decide the prediction information for the current block. For example, assume a pre-defined maximum number be N. The first N available candidates according to the checking order are used to decide the prediction information for the current block. If the number of total available candidate is smaller than N, all the available candidates are used to decide the prediction information for the current block.
[0233] The term “block” in this invention can refer to TU / TB, CU / CB, PU / PB, pre-defined region, or CTU / CTB.
[0234] Any combination of the proposed methods in this invention can be applied.
[0235] The proposed methods in this invention can be enabled and / or disabled according to implicit rules (e.g. block width, height, or area) or according to explicit rules (e.g., syntax on block, tile, slice, picture, sps, or pps level) . For example, the proposed method is applied when the block area is smaller / larger than a threshold.
[0236] Any of the foregoing proposed methods can be implemented in encoders and / or decoders. For example, any of the proposed methods can be implemented in an inter / intra / IBC / prediction / transform module of an encoder, and / or an inter / intra / IBC / prediction / transform module of a decoder. Alternatively, any of the proposed methods can be implemented as a circuit coupled to the inter / intra / IBC / prediction / transform module of the encoder and / or the inter / intra / IBC / prediction / transform module of the decoder, so as to provide the information needed by the inter / intra / IBC / prediction / transform module.
[0237] FIG. 5 is a block diagram illustrating a video encoder that supports the proposed intra merge mode (hereinafter, “IMM” ) list construction design according to an embodiment of the present invention. By way of example, but not limitation, the video encoder 100 may be compliant with a next-generation video coding standard (e.g., H. 267 or any future codec standard) . The video encoder 100 may perform intra and inter predictive coding of video blocks within video frames. Intra predictive coding relies on spatial prediction to reduce or remove spatial redundancy in video data within a given video frame or picture. Inter predictive coding relies on temporal prediction to reduce or remove temporal redundancy in video data within adjacent video frames or pictures of a video sequence. The proposed IMM list construction design retrieves propagated inheritance information available at positions of reference blocks (i.e., previous encoded blocks) to construct an IMM list that is a merge candidate list including merge candidates referenced for selecting / deciding a prediction mode of intra luma prediction applied to a luma block.
[0238] As shown in FIG. 5, the video encoder 100 includes an encoding circuit 101 and a video data memory 102. The encoding circuit 101 may include a prediction processing circuit 104, a residual generation circuit 106, a transform circuit (labeled by “T” ) 108, a quantization circuit (labeled by “Q” ) 110, an entropy encoding circuit (e.g., a variable-length code (VLC) encoder) 112, an inverse transform circuit (labeled by “IQ” ) 114, an inverse transform circuit (labeled by “IT” ) 116, a reconstruction circuit 118, one or more in-loop filters 120, and a decoded picture buffer (DPB) 122. It should be noted that the encoder architecture shown in FIG. 5 is for illustrative purposes only, and is not meant to be a limitation of the present invention. In practice, any video encoder using the proposed IMM list (which uses merge candidate (s) with propagated inheritance information) for intra luma prediction falls within the scope of the present invention.
[0239] In this embodiment, the video data memory 102 is arranged to receive data to be encoded as a current block of pixels of a current picture of a video, wherein the current block includes a luma block. The encoding circuit 101 is arranged to perform encoding of the current block by an intra merge mode for intra luma prediction of the luma block. In one embodiment, the intra merge mode may be a DIMD merge mode, where a target mode supported by the DIMD merge mode is DIMD only. In one embodiment, the intra merge mode may be a TIMD merge mode, where a target mode supported by the TIMD merge mode is TIMD only. In one embodiment, the intra merge mode may be a TMRL merge mode, where a target mode supported by the TMRL merge mode is TMRL only. In one embodiment, the intra merge mode is an intra mixed merge mode, where target modes supported by the intra mixed merge mode may include DIMD, TIMD, EIP, SGPM, ISP, MIP, or a combination thereof.
[0240] The prediction processing circuit 104 may include a partition circuit 124, a motion estimation circuit (labeled by “ME” ) 126, a motion compensation circuit (labeled by “MC” ) 128, an intra prediction circuit (labeled by “IP” ) 130, and an IMM list construction circuit (labeled by “IMM list construction” ) 132. The proposed IMM list is supported by the prediction processing circuit 104 (particularly, intra prediction circuit 130 of prediction processing circuit 104) . As the present invention is focused on the proposed IMM list construction design used for intra luma prediction and a person skilled in the art should readily understand details of other circuit components included in the video encoder 100, further description of principles of other circuit components included in the video encoder 100 is omitted here for brevity.
[0241] The IMM list construction circuit 132 is arranged to construct an IMM list L_IMM for a luma block included in a coding unit, and the intra prediction circuit 130 is arranged to determine an intra predictor P_Y of the luma block according to a prediction mode selected / decided from one or more merge candidates included in the IMM list L_IMM. In this embodiment, the IMM list L_IMM may have one or more merge candidates, including a merge candidate that includes inheritance information from a first reference block, wherein the inheritance information is propagated to the first reference block from a second reference block that is encoded earlier than the first reference block. Specifically, the first reference block is located at a position specified in the inheritance block setting, and the second reference block is located using one of several propagation methods proposed by the present invention. In one embodiment, the first reference block may not be encoded using a target mode supported by the intra merge mode (e.g., DIMD merge mode, TIMD merge mode, TMRL merge mode, or intra mixed merge mode) . In one embodiment, the second reference block may be encoded using a target mode supported by the intra merge mode (e.g., DIMD merge mode, TIMD merge mode, TMRL merge mode, or intra mixed merge mode) . In one embodiment, after encoding of the first reference block is completed, stored inheritance information of the first reference block may include the inheritance information propagated from the second reference block. Hence, the stored inheritance information (e.g., propagated inheritance information) of the first reference block can be retrieved by an IMM list construction process of a subsequent block when the subsequent block is being encoded in the intra merge mode (e.g., DIMD merge mode, TIMD merge mode, TMRL merge mode, or intra mixed merge mode) .
[0242] In accordance with a first propagation method, the inheritance information may be propagated from the second reference block at a pre-defined position in a previous picture, if the current slice / picture is a non-intra slice / picture. For example, the propagated inheritance information may be obtained from a collocated block in the previous picture. In one embodiment, the pre-defined position of the second reference block is the same as that of a collocated block of an inter merge mode. In one embodiment, the previous picture is the same as that of an inter merge mode.
[0243] In accordance with a second propagation method, the inheritance information may be propagated from the second reference block located by a BV obtainable at a position of the first reference block. For example, the first reference block is coded in IBC or IntraTMP mode.
[0244] In accordance with a third propagation method, the inheritance information may be propagated from the second reference block located by an MV obtainable at a position of the first reference block. For example, the first reference block may be inter-coded.
[0245] In accordance with a fourth propagation method, the inheritance information is propagated from the second reference block located by a cascaded vector obtainable at a position of the first reference block. In one embodiment, a base vector of the cascaded vector may be a BV obtainable at the position of the first reference block. In one embodiment, a base vector of the cascaded vector may be an MV obtainable at the position of the first reference block. In one embodiment, a base vector of the cascaded vector may be derived from a candidate list, where each candidate in the candidate list may include a BV and / or an MV obtainable at a position of a neighboring block of the first reference block, where the neighboring block may be a spatial neighboring block in the current picture or a temporal neighboring block in a previous picture.
[0246] FIG. 6 is a block diagram illustrating a video decoder that supports the proposed IMM list construction design according to an embodiment of the present invention. By way of example, but not limitation, the video decoder 200 may be compliant with a next-generation video coding standard (e.g., H. 267 or any future codec standard) . The video decoder 200 includes a decoding circuit 201 and a video data memory 202. The decoding circuit 201 may include an entropy decoding circuit (e.g., a VLC decoder) 204, an inverse quantization circuit (labeled by “IQ” ) 206, an inverse transform circuit (labeled by “IT” ) 208, a reconstruction circuit 210, a prediction processing circuit 212, one or more in-loop filters 214, and a decoded picture buffer (DPB) 216. It should be noted that the decoder architecture shown in FIG. 6 is for illustrative purposes only, and is not meant to be a limitation of the present invention. In practice, any video decoder using the proposed IMM list (which uses merge candidate (s) with propagated inheritance information) for intra luma prediction falls within the scope of the present invention.
[0247] In this embodiment, the video data memory 202 is arranged to receive data to be decoded as a current block of pixels of a current picture of a video, wherein the current block includes a luma block. The decoding circuit 201 is arranged to perform decoding of the current block by an intra merge mode for intra luma prediction of the luma block. In one embodiment, the intra merge mode may be a DIMD merge mode, where a target mode supported by the DIMD merge mode is DIMD only. In one embodiment, the intra merge mode may be a TIMD merge mode, where a target mode supported by the TIMD merge mode is TIMD only. In one embodiment, the intra merge mode may be a TMRL merge mode, where a target mode supported by the TMRL merge mode is TMRL only. In one embodiment, the intra merge mode is an intra mixed merge mode, where target modes supported by the intra mixed merge mode may include DIMD, TIMD, EIP, SGPM, ISP, MIP, or a combination thereof.
[0248] The prediction processing circuit 212 may include a motion compensation circuit (labeled by “MC” ) 218, an intra prediction circuit (labeled by “IP” ) 220, and an IMM list construction circuit (labeled by “IMM list construction” ) 222. The proposed IMM list is supported by the prediction processing circuit 212 (particularly, intra prediction circuit 220 of prediction processing circuit 212) . As the present invention is focused on the proposed IMM list construction design used for intra luma prediction and a person skilled in the art should readily understand details of other circuit components included in the video decoder 200, further description of principles of other circuit components included in the video decoder 200 is omitted here for brevity.
[0249] The IMM list construction circuit 222 is arranged to construct an IMM list L_IMM for a luma block included in a coding unit, and the intra prediction circuit 220 is arranged to determine an intra predictor P_Y of the luma block according to a prediction mode selected / decided from one or more merge candidates included in the IMM list L_IMM. In this embodiment, the IMM list L_IMM may have one or more merge candidates, including a merge candidate that includes inheritance information from a first reference block, wherein the inheritance information is propagated to the first reference block from a second reference block that is decoded earlier than the first reference block. Specifically, the first reference block is located at a position specified in the inheritance block setting, and the second reference block is located using one of several propagation methods proposed by the present invention. In one embodiment, the first reference block may not be decoded using a target mode supported by the intra merge mode (e.g., DIMD merge mode, TIMD merge mode, TMRL merge mode, or intra mixed merge mode) . In one embodiment, the second reference block may be decoded using a target mode supported by the intra merge mode (e.g., DIMD merge mode, TIMD merge mode, TMRL merge mode, or intra mixed merge mode) . In one embodiment, after decoding of the first reference block is completed, stored inheritance information of the first reference block may include the inheritance information propagated from the second reference block. Hence, the stored inheritance information (e.g., propagated inheritance information) of the first reference block can be retrieved by an IMM list construction process of a subsequent block when the subsequent block is being decoded in the intra merge mode (e.g., DIMD merge mode, TIMD merge mode, TMRL merge mode, or intra mixed merge mode) .
[0250] In accordance with a first propagation method, the inheritance information may be propagated from the second reference block at a pre-defined position in a previous picture, if the current slice / picture is a non-intra slice / picture. For example, the propagated inheritance information may be obtained from a collocated block in the previous picture. In one embodiment, the pre-defined position of the second reference block is the same as that of a collocated block of an inter merge mode. In one embodiment, the previous picture is the same as that of an inter merge mode.
[0251] In accordance with a second propagation method, the inheritance information may be propagated from the second reference block located by a BV obtainable at a position of the first reference block. For example, the first reference block is coded in IBC or IntraTMP mode.
[0252] In accordance with a third propagation method, the inheritance information may be propagated from the second reference block located by an MV obtainable at a position of the first reference block. For example, the first reference block may be inter-coded.
[0253] In accordance with a fourth propagation method, the inheritance information is propagated from the second reference block located by a cascaded vector obtainable at a position of the first reference block. In one embodiment, a base vector of the cascaded vector may be a BV obtainable at the position of the first reference block. In one embodiment, a base vector of the cascaded vector may be an MV obtainable at the position of the first reference block. In one embodiment, a base vector of the cascaded vector may be derived from a candidate list, where each candidate in the candidate list may include a BV and / or an MV obtainable at a position of a neighboring block of the first reference block, where the neighboring block may be a spatial neighboring block in the current picture or a temporal neighboring block in a previous picture.
[0254] FIG. 7 is a flowchart illustrating a video coding method according to an embodiment of the present invention. The video coding method may be employed by the video encoder 100 shown in FIG. 5 for encoding of video data or the video decoder 200 shown in FIG. 6 for decoding of encoded video bitstream. At step 702, data to be encoded or decoded is received as a current block of pixels of a current picture of a video, wherein the current block includes a luma block. At step 704, encoding or decoding of the current block is performed by using an intra merge mode for intra luma prediction of the luma block. The step 704 includes a sub-step 706 that is performed for constructing an IMM list (which is a merge candidate list of an intra merge mode) , wherein the IMM list has one or more merge candidates, including a merge candidate that includes inheritance information from a first reference block, where the inheritance information is propagated to the first reference block from a second reference block that is encoded or decoded earlier than the first reference block. As a person skilled in the art can readily understand details of the video coding method after reading above paragraphs with reference to the accompanying drawings, further description is omitted here for brevity.
[0255] It should be noted that the video coding method may be implemented using hardware or software, depending upon actual design considerations. For example, a machine readable medium may store program codes, and when the program codes are loaded and executed by a processor, the processor is instructed to perform steps shown in FIG. 7. In one embodiment, functions of some or all of components included in the encoding circuit 101 may be implemented using software module (s) . In one embodiment, functions of some or all of components included in the decoding circuit 201 may be implemented using software module (s) .
[0256] Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims.
Claims
1.A method for video coding, comprising:receiving data to be encoded or decoded as a current block of pixels of a current picture of a video, wherein the current block comprises a luma block; andencoding or decoding the current block by an intra merge mode for intra luma prediction of the luma block, comprising:constructing an intra merge mode (IMM) list, wherein the IMM list includes one or more merge candidates, comprising:a merge candidate, comprising inheritance information from a first reference block, wherein the inheritance information is propagated to the first reference block from a second reference block that is encoded or decoded earlier than the first reference block.2.The method of claim 1, wherein the intra merge mode is a decoder side intra mode derivation (DIMD) merge mode.3.The method of claim 1, wherein the intra merge mode is a template-based intra mode derivation (TIMD) merge mode.4.The method of claim 1, wherein the intra merge mode is a template-based multiple reference line (TMRL) merge mode.5.The method of claim 1, wherein the intra merge mode is an intra mixed merge mode.6.The method of claim 1, wherein the inheritance information is propagated from the second reference block at a pre-defined position in a previous picture.7.The method of claim 6, wherein the pre-defined position of the second reference block is the same as that of a collocated block of an inter merge mode.8.The method of claim 6, wherein the previous picture is the same as that of an inter merge mode.9.The method of claim 1, wherein the inheritance information is propagated from the second reference block located by a block vector (BV) obtainable at a position of the first reference block.10.The method of claim 1, wherein the inheritance information is propagated from the second reference block located by a motion vector (MV) obtainable at a position of the first reference block.11.The method of claim 1, wherein the inheritance information is propagated from the second reference block located by a cascaded vector obtainable at a position of the first reference block.12.The method of claim 11, wherein a base vector of the cascaded vector is a block vector (BV) obtainable at the position of the first reference block.13.The method of claim 11, wherein a base vector of the cascaded vector is a motion vector (MV) obtainable at the position of the first reference block.14.The method of claim 11, wherein a base vector of the cascaded vector is derived from a candidate list, and each candidate in the candidate list comprises at least one of a block vector (BV) and a motion vector (MV) obtainable at a position of a neighboring block of the first reference block.15.The method of claim 1, wherein the first reference block is not encoded or decoded using a target mode supported by the intra merge mode.16.The method of claim 1, wherein the second reference block is encoded or decoded using a target mode supported by the intra merge mode.17.The method of claim 1, wherein after encoding or decoding of the first reference block is completed, stored inheritance information of the first reference block comprises the inheritance information propagated from the second reference block.18.A video encoder, comprising:a video data memory, arranged to receive data to be encoded as a current block of pixels of a current picture of a video, wherein the current block comprises a luma block; andan encoding circuit, arranged to perform encoding of the current block by an intra merge mode for intra luma prediction of the luma block, wherein the encoding circuit comprises:an intra merge mode (IMM) list construction circuit, arranged to construct an IMM list, wherein the IMM list includes one or more merge candidates, comprising:a merge candidate, comprising inheritance information from a first reference block, wherein the inheritance information is propagated to the first reference block from a second reference block that is encoded earlier than the first reference block.19.A video decoder, comprising:a video data memory, arranged to receive data to be decoded as a current block of pixels of a current picture of a video, wherein the current block comprises a luma block; anda decoding circuit, arranged to perform decoding of the current block by an intra merge mode for intra luma prediction of the luma block, wherein the decoding circuit comprises:an intra merge mode (IMM) list construction circuit, arranged to construct an IMM list, wherein the IMM list includes one or more merge candidates, comprising:a merge candidate, comprising inheritance information from a first reference block, wherein the inheritance information is propagated to the first reference block from a second reference block that is decoded earlier than the first reference block.
Citation Information
Patent Citations
Method and apparatus for video coding
CN113875234A
Method, device and medium for video processing
CN117426095A
Motion information propagation in video coding
US20180376164A1
Intra Block Copy Merge List Simplification
US20200275093A1
Method and apparatus for implicit cross-component prediction in video coding system
WO2023198142A1