Video coding method that constructs intra template matching prediction merge mode list using temporal candidate and / or propagated inheritance information and associated apparatus

WO2025162224A8PCT designated stage Publication Date: 2025-09-04MEDIATEK INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/074557
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-01-29
Filing Date
2025-01-24
Publication Date
2025-09-04

AI Technical Summary

Technical Problem

Existing video coding standards lack an efficient method for constructing IntraTMP merge mode lists, particularly in improving intra luma coding efficiency, by leveraging spatial and temporal candidate information and propagated inheritance from neighboring and previous coded blocks.

Method used

A video coding method that constructs IntraTMP merge mode lists using temporal candidates and propagated inheritance information, incorporating merge candidates from previous coded pictures and neighboring blocks, including spatial and temporal motion vectors, block vectors, and other coding information to enhance coding efficiency.

Benefits of technology

Enhances coding efficiency by utilizing temporal and spatial information from neighboring and previous coded blocks, improving the construction of IntraTMP merge mode lists and reducing computational complexity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025074557_04092025_PF_FP_ABST
    Figure CN2025074557_04092025_PF_FP_ABST
Patent Text Reader

Abstract

A method for video coding 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 template matching prediction (IntraTMP) merge mode for intra luma prediction of the luma block, including constructing an IntraTMP merge mode (IMM) list. The IMM list has one or more merge candidates, including a merge candidate that includes inheritance information from a reference block at a pre-defined position in a previous picture.
Need to check novelty before this filing date? Find Prior Art

Description

VIDEO CODING METHOD THAT CONSTRUCTS INTRA TEMPLATE MATCHING PREDICTION MERGE MODE LIST USING TEMPORAL CANDIDATE AND / OR PROPAGATED INHERITANCE INFORMATION AND ASSOCIATED APPARATUSBACKGROUND OF THE INVENTION1. FIELD OF THE INVENTION

[0001] The present invention relates to video coding, and more particularly, to a video coding method that constructs an intra template matching prediction (IntraTMP) merge mode list (i.e., a merge candidate list of an IntraTMP merge mode) using temporal candidate and / or propagated inheritance information and an associated apparatus.

[0002] 2. DESCRIPTION OF THE PRIOR ART

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

[0004] 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) .

[0005] With the advance of video coding standards, new coding tools are proposed. Taking an IntraTMP merge mode for example, a merge candidate list may be formed by spatial candidates (e.g., block vectors of neighboring IntraTMP coded blocks and / or block vectors of neighboring intra block copy (IBC) coded blocks) . There is a need for an innovative IntraTMP merge candidate list construction design for improving the intra luma coding efficiency.SUMMARY OF THE INVENTION

[0006] One of the objectives of the claimed invention is to provide a video coding method that constructs an IntraTMP merge mode list (i.e., a merge candidate list of an IntraTMP merge mode) using temporal candidate and / or propagated inheritance information and an associated apparatus.

[0007] 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 IntraTMP merge mode for intra luma prediction of the luma block, including constructing an IntraTMP merge mode (IMM) list. The IMM list has one or more merge candidates, including a merge candidate that includes inheritance information from a reference block at a pre-defined position in a previous picture.

[0008] According to a second 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 IntraTMP merge mode for intra luma prediction of the luma block, including constructing an IntraTMP merge mode (IMM) list. The IMM list has 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 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 IntraTMP merge mode for intra luma prediction of the luma block. The decoding circuit includes an IntraTMP merge mode (IMM) list construction circuit arranged to construct an IMM list, wherein the IMM list has one or more merge candidates, including a merge candidate that includes inheritance information from a reference block at a pre-defined position in a previous picture, or 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.

[0010] 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

[0011] FIG. 1 is a diagram illustrating an intra template matching search area according to an embodiment of the present invention.

[0012] FIG. 2 is a diagram illustrating the use of IntraTMP block vector for IBC block according to an embodiment of the present invention.

[0013] FIG. 3 is a diagram illustrating positions of spatial merge candidates according to an embodiment of the present invention.

[0014] FIG. 4 is a diagram illustrating five positions in Bn according to an embodiment of the present invention.

[0015] FIG. 5 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.

[0016] FIG. 6 is a block diagram illustrating a video encoder that supports the proposed IntraTMP merge mode list construction design according to an embodiment of the present invention.

[0017] FIG. 7 is a block diagram illustrating a video decoder that supports the proposed IntraTMP merge mode list construction design according to an embodiment of the present invention.

[0018] FIG. 8 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 template matching

[0022] Intra template matching prediction (IntraTMP) is a special intra prediction mode that copies the best prediction block from the reconstructed part of the current frame, whose L-shaped template matches the current template. For a predefined search range, the encoder searches for the most similar template to the current template in a reconstructed part of the current frame and uses the corresponding block as a prediction block. The encoder then signals the usage of this mode, and the same prediction operation is performed at the decoder side.

[0023] The prediction signal is generated by matching the L-shaped, Top-only or Left-Only causal neighbor of the current block with another block in a predefined search area in FIG. 1. There are 6 predefined search areas, i.e., R1 to R6 in FIG. 1 which contain the reconstructed samples from the top and left CTUs as well as part of the reconstructed samples within the current CTU that are located above, left, bottom-left and top-right to the current block.

[0024] A given search order of the 6 regions is utilized, i.e., R4, R5, R6, R1, R2, and R3. Within each region, the decoder constructs a candidate list of up to “19” template matching block vectors that are ranked in ascending order according to the template cost (SAD) .

[0025] The dimensions of all regions (SearchRange_w, SearchRange_h) are set proportional to the block dimension (BlkW, BlkH) to have a fixed number of SAD comparisons per pixel. That is: SearchRange_w = min (64, a*BlkW) SearchRange_h = min (64, a*BlkH)

[0026] Where ‘a’ is a constant that controls the gain / complexity trade-off. In practice, ‘a’ is equal to 5.

[0027] To speed-up the template matching process, the search range of all search regions is subsampled by a factor of 3. After finding the best match, a refinement process is performed. The refinement is done via a second template matching search around the best match with a reduced range.

[0028] The Intra template matching prediction mode is signaled at CU level through a dedicated flag when DIMD is not used for current CU.

[0029] 1.1.1 IntraTMP derived block vector candidates for IBC

[0030] In this method block vector (BV) derived from the intra template matching prediction (IntraTMP) is used for intra block copy (IBC) . The stored IntraTMP BV of the neighbouring blocks along with IBC BV are used as spatial BV candidates in IBC candidate list construction.

[0031] IntraTMP block vector is stored in the IBC block vector buffer and, the current IBC block can use both IBC BV and IntraTMP BV of neighbouring blocks as BV candidate for IBC BV candidate list as shown in FIG. 2.

[0032] IntraTMP block vectors are added to IBC block vector candidate list as spatial candidates. IntraTMP block vectors are stored in quarter-pel resolution for coding of IBC block vectors and HMVP.

[0033] 1.2 Extended merge prediction for Inter prediction in VVC

[0034] In VVC, the merge candidate list is constructed by including the following five types of candidates in order:

[0035] 1) Spatial MVP from spatial neighbour CUs

[0036] 2) Temporal MVP from collocated CUs

[0037] 3) History-based MVP from an FIFO table

[0038] 4) Pairwise average MVP

[0039] 5) Zero MVs.

[0040] The size of merge list is signalled in sequence parameter set header. For each CU code in merge mode, an index of best merge candidate is signaled.

[0041] More details can be found in JVET-AD2002.

[0042] 1.2.1 Spatial candidate derivation

[0043] Spatial merge candidates are selected among candidates located in the positions depicted in FIG. 3.

[0044] 1.2.2 Temporal candidate derivation

[0045] In this step, only one candidate is added to the list. Particularly, in the derivation of this temporal merge candidate, a scaled motion vector is derived based on co-located CU belonging to the collocated reference picture. The reference picture list and the reference index to be used for derivation of the co-located CU is explicitly signalled in the slice header. The scaled motion vector for temporal merge candidate is obtained, which is scaled from the motion vector of the co-located CU using the POC distances, tb and td, where tb is defined to be the POC difference between the reference picture of the current picture and the current picture and td is defined to be the POC difference between the reference picture of the co-located picture and the co-located picture. The reference picture index of temporal merge candidate is set equal to zero.

[0046] 1.3 JVET-AG0151 EE2-1.2: IntraTMP with Merge Candidates

[0047] It is proposed to enrich the IntraTMP search with new candidates, consisting of block vectors from neighboring PUs coded in IBC or IntraTMP mode. These new candidates are called IntraTMP merge candidates. The purpose is to improve IntraTMP by further including probable candidates during the IntraTMP search process.

[0048] With respect to the usual IntraTMP mode, this means that not only BV coming from IntraTMP sparse search and refinement search may be tested, but also BVs coming from outside typical IntraTMP search range depicted in FIG. 1.

[0049] Note, during IBC merge mode, the IntraTMP block vectors are used as IBC merge candidates, but not the other way around. This is a limitation of IntraTMP process.

[0050] The same template matching cost process to rank the new candidates among the already computed candidates such as those coming from the sparse search is used.

[0051] There are up to 25 local and non-local PUs that may be checked during the selection of a new (merge) candidate. Processing order of neighboring PUs is the same as for IBC merge mode. Whenever a block vector is found within the local or non-local neighborhood of the current PU, it is added to the current IntraTMP candidate list.

[0052] Their template cost is obtained in the same way as for other IntraTMP candidates. Merge candidates are ranked together with other candidates. Same as before, top 30 candidates are selected for further refinement.

[0053] 1.4 JVET-AG0091: EE2-1.8: Auto-relocated block vector prediction

[0054] In EE2-1.8, auto-relocated block vector prediction (AR-BVP) is introduced into IBC merge / AMVP candidate list construction.

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

[0056] Three tests are conducted in this EE. In EE2-1.8a, the length of the AR-BVP trace path is 1 (i. e, n=1) . In EE2-1.8b, the length of the AR-BVP trace path is 2 (i. e, n=2) . In EE2-1.8c, there is no constraint for the length of the AR-BVP trace path.

[0057] When deriving BVn, n+1 guided by BV0, n, all five positions including top-left (e.g., LT in FIG. 4) , top-right (e.g., RT in FIG. 4) , center (e.g., Ctr in FIG. 4) , bottom-left (e.g., LB in FIG. 4) , and bottom-right (e.g., RB in FIG. 4) positions of Bn are checked to find BVn, n+1.

[0058] In our implementation, the initial guiding block vector BV0, 1 is set to be an existing BVP already in the IBC merge / AMVP candidate list.

[0059] The AR-BVP candidates are inserted after the HBVP candidates. The IBC merge / AMVP candidate list size is kept unchanged.

[0060] 1.5 JVET-AG0073: Non-EE2: Chained motion vector prediction

[0061] This contribution introduces a chained MV prediction (CMVP) into inter merge candidate list construction.

[0062] 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) ,

[0063] where k and m indicate the number of merge index and trace depths of the CMVP.

[0064] 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) .

[0065] When pre-derived merge candidates targeting CMVP candidates have two MVs, a MVk / m is derived for each list (i.e., L0 and L1) and each trace depth. Up to two MVs can be derived for each list and each trace depth, and the MV set is sequentially inserted into inter merge candidate list.

[0066] The traceable reference pictures are only within the reference picture list.

[0067] CMVP candidates are inserted after HMVP candidates for the regular merge and TM merge.

[0068] When deriving CMVP candidates, hpelIfIdx, bcwIdx, licFlag, and mhpFlag are not inherited.

[0069] CMVP candidates are not derived when the TMVP is disabled.

[0070] 1.6 JVET-AG0063: EE2-1.2 related: AR-BVP for IntraTMP merge candidates

[0071] This contribution proposes to add AR-BVP into the construction of IntraTMP merge candidate list. The AR-BVP candidates are inserted into the IntraTMP merge candidate list according to the following orders:

[0072] 1. Inherited from adjacent neighbors

[0073] 2. Inherited from non-adjacent neighbors

[0074] 3. Constructed AR-BVP from existing candidates

[0075] The existing BVs in the list and the constructed AR-BVPs will be used as the guiding block vectors. For a certain guiding BV, five positions including top-left, top-right, center, bottom-left and bottom-right of reference block are checked to get a BV of reference block and construct AR-BVP. The construction process will end when no new AR-BVP is constructed or the list reaches the maximum size of fifty.

[0076] The IntraTMP merge candidate list is further sorted based on template matching cost and the best ten candidates are kept. After this, the merge list will be used in the subsequent template matching process, same as described in EE2-1.2.

[0077] 2. Proposed method

[0078] It is proposed that in IntraTMP mode, coding information of neighboring blocks can be utilized by the current block to improve coding efficiency. For example, in Section 1.3 “JVET-AG0151 EE2-1.2: IntraTMP with Merge Candidates” , IntraTMP merge candidates are proposed to utilize the BV of the neighboring blocks.

[0079] The tools proposed in this invention aim to improve the coding efficiency regarding utilizing coding information of neighboring blocks in IntraTMP mode.

[0080] 2.1 Coding information of neighboring blocks

[0081] The coding information can be any motion vector information, any block vector information, any mode information, any sample information, any block information, any model information, and / or any information associated with prediction generation.

[0082] In one embodiment, the coding information can be the BV and / or AR-BVP and / or any combination of the above.

[0083] In this disclosure, the term “coding information” and “inheritance information” is used interchangeably.

[0084] 2.2 Temporal candidates as IntraTMP merge candidates

[0085] For IntraTMP mode, in addition to coding information of neighboring blocks in the current picture / slices, the coding information from one or more previous coded pictures can also be utilized when the current picture / slice is a non-intra picture / slice.

[0086] In IntraTMP, coding information of neighboring blocks from one or more previous coded pictures can be used to generate a new type of IntraTMP merge candidates. This new type of IntraTMP merge candidate is called temporal candidates in this invention. Temporal candidates are only obtainable when the current picture / slice is a non-intra picture / slice.

[0087] In one embodiment, the temporal candidates can be from the block at some pre-defined positions (x′, y′) of the previous coded slices / picture.

[0088] In one sub-embodiment, the positions are inside the corresponding area of the current encoding / decoding block, i.e., x≤x′<x+w and y≤y′<y+h. The pre-defined positions can be (x, y) , (x+w-1, y) , (x, y+h-1) , (x+w-1, y+h-1) ,

[0089] In one sub-embodiment, the pre-defined positions are outside of the corresponding area of the current encoding / decoding block, i.e., x′<x+or x′≥x+w, or y′<y or y′≥y+h. The temporal candidates can be (x-1, y) , (x, y-1) , (x-1, y-1) , (x+w, y) , (x+w-1, y-1) ,(x+w, y-1) , (x, y+h) , (x-1, y+h-1) , (x-1, y+h) , (x+w, y+h-1) , (x+w-1,y+h) , (x+w, y+h) of the previous coded slices / picture.

[0090] In one sub-embodiment, the pre-defined positions can be determined based on the position, width and height of the current block. For another example, if the current block position is at (x, y) and the block size is w×h. Define the two value sets αx and αy as: αx= {αx1, αx2, αx3, …, αxn} , αxi<αxj if i<j αy={αy1, αy2, αy3, …, αyn}, αyi<αyj if i<j

[0091] All values in αx and αy are positive numbers. The pre-defined positions can be (xmid±αxi×w, ymid±αyi×h) , (xmid±αxi×w, ymid) , (xmid, ymid±αyi×h)of the previous coded slices / picture, where For another example, the pre-defined positions can be (x±αxi×w, y±αyi×h) , (x±αxi×w, y) , (x, y±αyi×h) of the previous coded slices / picture.

[0092] In one sub-embodiment, the pre-defined positions can be determined based on the position, and some pre-defined fixed x-y distances. For example, let δx and δy be two fixed positive numbers. The pre-defined positions can be (xmid±αxi×δx, ymid±αyi×δy) , (xmid±αxi×δx,ymid) , (xmid, ymid±αyi×δy) of the previous coded slices / picture. For another example, the pre-defined positions can be (x±αxi×δx, y±αyi×δy) , (x±αxi×δx, y) , (x, y±αyi×δy)of the previous coded slices / picture.

[0093] In one embodiment, the previous coded pictures are among the pictures in the reference lists.

[0094] In one embodiment, the previous coded pictures are the same pictures as the collocated picture of the regular inter merge mode.

[0095] In one embodiment, there can be more than one selected / pre-defined previous coded picture.

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

[0097] In one embodiment, the previous coded pictures are selected from a picture set with some pre-defined rules.

[0098] 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. For another example, the rules mentioned in previous examples can be combined.

[0099] In one embodiment, if one picture in the reference list is rescaled, i. e, the RprConstraintsActiveFlag of that picture is true, which means that picture has one or more of the following seven parameters different than that of the current picture: 1) the picture width in luma samples (pps_pic_width_in_luma_samples) , 2) the picture height in luma samples (pps_pic_height_in_luma_samples) , 3) the scaling window left offset (pps_scaling_win_left_offset) , 4) the scaling window right offset (pps_scaling_win_right_offset) , 5) the scaling window top offset (pps_scaling_win_top_offset) , 6) the scaling window bottom offset (pps_scaling_win_bottom_offset) , and 7) the number of sub pictures -1 (sps_num_subpics_minus1) , the picture cannot be selected.

[0100] In one embodiment, the previous coded picture is the most recently coded I-picture.

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

[0102] In one embodiment, when the selected / pre-defined previous coded pictures are rescaled, temporal candidates are un-available.

[0103] In one embodiment, when the selected / pre-defined previous coded pictures are rescaled, the pre-defined positions can be scaled according to the scaling ratio to derive the final positions which the temporal candidates are from. The scaling ratio is derived based on the scaling window of the current picture and the selected / pre-defined previous coded pictures. Let the position be (x, y) , the scaled position be (x’ , y’ ) and the scaling ratio be R. The scaled position can be (x / R, y / R) or (x / R, y / R) after rounding. The rounding method used can be but not limited to the following methods: rounding toward negative infinity, rounding toward positive infinity, rounding toward zero, or rounding to the nearest integer (e.g., rounding away from zero, rounding half up, rounding half down, …) .

[0104] In one embodiment, the previous coded picture is determined based on a motion vector of a neighboring block. The picture is the one the motion vector indicates.

[0105] In one embodiment, the final pre-defined positions are determined based on a motion vector of a neighboring block. The horizontal and vertical displacements (Δx, Δy) are determined based on a motion vector. Assume a set of pre-defined positions are (x1, y1) , (x2, y2) , …, (xN, yN) . The final pre-defined positions can be (x1+Δx, y1+Δy) , (x2+Δx, y2+Δy) , …, (xN+Δx, yN+Δy) .

[0106] In one embodiment, the motion vector can be L0 or L1 motion vector of a neighboring block.

[0107] In one embodiment, the neighboring block is the left block of the current block. In another embodiment, the neighboring block is the above block of the current block.

[0108] In one embodiment, the neighboring block can be at a pre-defined position. For example, the position can be at the A0 position as described in Section 1.2.1 “Spatial candidate derivation” . The pre-defined position can also be at A1, B0, B1, B2. If the block at the pre-defined position is not an inter block, no neighboring block is selected.

[0109] In one embodiment, when selecting the neighboring block, there can be a list of pre-defined positions. For example, the positions can be the spatial position described in Section 1.2.1 “Spatial candidate derivation” . The positions are checked according to the list order. For each position, L0 motion vector is checked first, then the L1 motion vector is checked. Or for each position, L1 motion vector is checked first, then the L0 motion vector is checked. The motion vector can be the first available motion vector in the checking order. The motion vector can be the first motion vector whose reference picture is the selected / pre-defined previous coded picture. The motion vector can be the first motion vector whose reference picture is not-rescaled.

[0110] In one embodiment, the horizontal and vertical displacements (Δx, Δy) are derived based on the selected neighboring motion vector. For example, if the reference picture of the selected neighboring motion vector and the selected / pre-defined previous coded picture are the same picture, (Δx, Δy) equal to the neighboring motion vector or neighboring motion vector after rounding For another example, if the reference picture of the selected motion vector and the selected / pre-defined previous coded picture are not the same picture, (Δx, Δy) can be (mv_x * (td / tb) , mv_y * (td / tb) ) or (mv_x * (td / tb) , mv_y * (td / tb) ) after rounding, where (mv_x, mv_y) is the selected motion vector, tb is the POC distance between the current picture and the reference picture of the selected motion vector, td is the POC distance between the current picture and the selected / pre-defined previous coded picture.

[0111] In one sub-embodiment, the rounding method can be but not limited to the following methods: rounding toward negative infinity, rounding toward positive infinity, rounding toward zero, or rounding to the nearest integer (e.g., rounding away from zero, rounding half up, rounding half down, …) . The rounding method used can be but not limited to the following methods: rounding toward negative infinity, rounding toward positive infinity, rounding toward zero, or rounding to the nearest integer (e.g., rounding away from zero, rounding half up, rounding half down, …) .

[0112] In one embodiment, the temporal candidates are derived by using reconstructed samples of a block located at pre-defined positions in the selected / pre-defined previous coded picture. The size of the block can be determined by the size of the current block. For example, the size can be the same as that of the current block. The size of the block can also be fixed. For example, the size can always be MxN, where M and N are positive integers.

[0113] 2.3 Propagated coding information

[0114] In one embodiment, one or more coding information is derived and stored in the current block. The stored coding information can then be referenced by the following coding blocks as merge candidates, such as spatial candidates, non-adjacent spatial candidates, temporal candidates, and history-based candidates. In one sub-embodiment, the coding information is derived and stored after encoding / decoding a block. In another sub-embodiment, the coding information is derived and stored after the encoding / decoding of the current picture.

[0115] In one embodiment, if the current block is coded in target mode or is coded in modes that can derive target mode information, the coding information to be stored is the target mode information of the current block. A target mode is a mode that coded utilizing the coding information that is also used in IntraTMP mode. For example, if the coding information is BV, a target mode can be IntraTMP mode or IBC mode, or both.

[0116] In one embodiment, the coding information to be stored in the current block can be derived by propagating coding information of previous coded blocks to the current block. That is, the coding information to be stored in the current block can be derived based on or copied from the coding information stored (including the coding information previously propagated from other blocks) in the previous coded blocks. Various methods of propagating coding information are described in Section 2.3.1 “Inheritance information propagated from collocated blocks” , Section 2.3.2 “Inheritance information propagated based on MV or BV” and Section 2.3.3 “Inheritance information propagated based on cascaded vector” .

[0117] In one embodiment, when referencing neighboring blocks to obtain merge candidates, in addition to the coding information stored in the neighboring block, more merge candidates can be derived by propagating coding information of previous coded blocks to the neighboring block. The methods of deriving / selecting the propagated coding information to be stored in the current block, as described in Section 2.3.1 “Inheritance information propagated from collocated blocks” , Section 2.3.2 “Inheritance information propagated based on MV or BV” , Section 2.3.3 “Inheritance information propagated based on cascaded vector” and Section 2.3.4 “Priority of propagated coding information” can be used to derive / select propagated coding information for the neighboring block.

[0118] In one embodiment, when referencing coding information derived for the neighboring blocks to obtain merge candidates, there can be some pre-defined rules to determine the inclusion order of the coding information. The rules can be but not limited to the rules described in the following sub-embodiments.

[0119] In one sub-embodiment, the inclusion order of the derived coding information follows the inclusion order of the neighboring block. For example, if the coding information is derived for a spatial candidate, then the derived coding information is inserted into the candidate list at the inclusion order of that spatial candidate.

[0120] In one sub-embodiment, the inclusion order can depend on the source of the coding information. The source of the coding 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 coding information located by the cascaded vectors can be inserted into the candidate list after the history-based candidates.

[0121] 2.3.1 Inheritance information propagated from collocated blocks

[0122] In one embodiment, if the current slice / picture is a non-intra slice / picture, the coding information to be stored can be derived by copying the coding information of a collocated block in a previous coded picture. The previous coded picture and / or the position of the collocated block can be selected / pre-defined with the methods described in Section 2.2 “Temporal candidates as IntraTMP merge candidates” .

[0123] 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 coding information from the collocated block is not copied and is not stored in the current block.

[0124] 2.3.2 Inheritance information propagated based on MV or BV

[0125] 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 coding information to be stored can be derived by copying the stored coding 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 coding information stored, no coding information is propagated to be stored in the current block.

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

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

[0128] In one sub-embodiment, the block vector which is able to locate a reference block that has coding information stored is selected.

[0129] In one sub-embodiment, the block vector which is able to locate a reference block that is coded in target mode or target-mode related modes is selected.

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

[0131] In one sub-embodiment, the block vector which locates a reference block that has the shortest horizontal distance from the current block is selected.

[0132] In one sub-embodiment, the block vector which locates a reference block that has the shortest vertical distance from the current block is selected.

[0133] In one embodiment, if there are motion vectors obtainable at the position of the current block, (e.g., the current block inter-coded) , the coding information to be stored can be derived by copying the stored coding 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 coding information stored, no coding information is propagated to be stored in the current block.

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

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

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

[0137] In one sub-embodiment, the motion vector which is able to locate a reference block that has coding information stored is selected.

[0138] In one sub-embodiment, the motion vector which is able to locate a reference block that is coded in target mode or target-mode related modes is selected.

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

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

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

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

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

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

[0145] In one sub-embodiment, the coding 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.

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

[0147] 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. 5, 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 coding 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) .

[0148] In one embodiment, when the previous coded picture located by the motion vector is rescaled, i.e, the RprConstraintsActiveFlag of the reference picture is true, which means the reference picture has one or more of the following seven parameters different than that of the current picture: 1) the picture width in luma samples (pps_pic_width_in_luma_samples) , 2) the picture height in luma samples (pps_pic_height_in_luma_samples) , 3) the scaling window left offset (pps_scaling_win_left_offset) , 4) the scaling window right offset (pps_scaling_win_right_offset) , 5) the scaling window top offset (pps_scaling_win_top_offset) , 6) the scaling window bottom offset (pps_scaling_win_bottom_offset) , and 7) the number of sub pictures -1 (sps_num_subpics_minus1) , the motion vector is considered as available and no coding information is propagated to be stored in the current block.

[0149] In one embodiment, when the previous coded picture located by the motion vector is rescaled, the position located by the motion vector can be scaled according to the scaling ratio of the rescaled picture. The scaling ratio is derived based on the scaling window of the current picture and the previous coded picture. Let the original position be (x, y) and the scaling ratio be R. The scaled position can be (x / R, y / R) or (x / R, y / R) after rounding. The rounding method used can be but not limited to the following methods: rounding toward negative infinity, rounding toward positive infinity, rounding toward zero, or rounding to the nearest integer (e.g., rounding away from zero, rounding half up, rounding half down, …) .

[0150] In one embodiment, when multiple block vectors and / or motion vectors can be obtained from the current block, the coding information to be stored can be the combination of all or a subset of the coding information of all of the reference blocks located by the block vectors and / or motion vectors.

[0151] 2.3.3 Inheritance information propagated based on cascaded vector

[0152] The cascaded vector is an extension of AR-BVP and CMVP described in Section 1.4 “JVET-AG0091: EE2-1.8: Auto-relocated block vector prediction” and Section 1.5 “JVET-AG0073: Non-EE2: Chained motion vector prediction” respectively.

[0153] In one embodiment, the coding information to be stored in the current block can be derived by copying the stored coding information of the reference block located by a cascaded vector.

[0154] 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:

[0155] 1) Starting from a base vector.

[0156] For the i-th recursion:

[0157] 2) Locate a block based on a cascaded vector CV (i-1)

[0158] 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)

[0159] 4) A new cascaded vector is derived as CV (i) = CV (i-1) + V (i) = CV (0) + V (1) + V (2) + …+V (i)

[0160] The Step 2-4 are repeated for each recursion.

[0161] For the first recursion CV (0) is the base vector.

[0162] For example, 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)

[0163] And the reference picture of MVL0_m is: RefPicL0_m = RefPicL0 (m)

[0164] Here m is the trace depth, that is the number of reference picture referenced traced back.

[0165] Cascaded vectors can be the sum of L0 motion vectors, and / or L1 motion vectors and / or block vectors.

[0166] In one embodiment, if there is a motion vector or a 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.

[0167] 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 a 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.

[0168] 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.5 “JVET-AG0073: Non-EE2: Chained motion vector prediction” .

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

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

[0171] In one embodiment, in Step 4, a new cascaded vector is only created if V (i) retrieved in Step 3 is a motion vector. 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.

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

[0173] 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. In one sub-embodiment, the threshold can be pre-defined.

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

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

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

[0177] 2.4 Interaction with IBC mode

[0178] The coding information derived for the IntraTMP is also used for IBC mode. For example, the stored IntraTMP BV of the neighbouring blocks along with IBC BV are used as spatial BV candidates in IBC candidate list construction.

[0179] The coding information obtained through methods described in Section 2.2. “Temporal candidates as IntraTMP merge candidates” and Section 2.3 “Propagated coding information” can also be utilized for IBC mode.

[0180] In one embodiment, the coding information is the BV information.

[0181] In one embodiment, the BV information obtained through methods described in Section 2.2. “Temporal candidates as IntraTMP merge candidates” and Section 2.3 “Propagated coding information” can be used as BV candidate for IBC BV candidate list.

[0182] Any of the foregoing proposed methods could be applied independently or jointly. Moreover, 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 intra prediction module of an encoder and / or a decoder. Alternatively, any of the proposed methods can be implemented as a circuit coupled to intra prediction module of the encoder and / or the decoder.

[0183] FIG. 6 is a block diagram illustrating a video encoder that supports the proposed IntraTMP 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 may use temporal candidate (s) to construct an IMM list for increasing the availability and diversity of merge candidates and improving coding performance, and / or may retrieve propagated inheritance information available at positions of reference blocks (i.e., previous encoded blocks) to construct an IMM list for increasing the availability and diversity of merge candidates and improving coding performance, where the IMM list is a merge candidate list including merge candidates referenced for selecting / deciding a predictor of intra luma prediction applied to a luma block.

[0184] As shown in FIG. 6, 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. 6 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 includes merge candidate (s) derived from temporal candidate (s) and / or propagated inheritance information) for intra luma prediction falls within the scope of the present invention.

[0185] 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 IntraTMP merge mode for intra luma prediction of the luma block. 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.

[0186] 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 block vector (BV) selected / decided from merge candidates included in the IMM list L_IMM.

[0187] Consider a case where temporal candidates are checked for constructing the IMM list L_IMM. The IMM list L_IMM may have one or more merge candidates, including a merge candidate that has inheritance information (i.e., coding information such as BV, AR-BVP or fusion weight) from a reference block at a pre-defined position in a previous picture, if the current slice / picture is a non-intra slice / picture. In one embodiment, the pre-defined position of the reference block is inside a corresponding area of the current block. In one embodiment, the pre-defined position of the reference block is outside of a corresponding area of the current block. In one embodiment, the pre-defined position of the reference block is determined based on a position, a width and a height of the current block. In one embodiment, the previous picture is among pictures in reference lists. In one embodiment, the previous picture is the same as that of an inter merge mode.

[0188] Consider a case where propagated inheritance information is retrieved for constructing the IMM list L_IMM. 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 of a spatial candidate or a temporal candidate checked by the IntraTMP merge mode, 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 BV-based prediction mode (e.g., IntraTMP, IBC, or any mode utilizing BV) . In one embodiment, the second reference block may be encoded using a BV-based prediction mode (e.g., IntraTMP, IBC, or any mode utilizing BV) . 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 IntraTMP merge mode.

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

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

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

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

[0193] FIG. 7 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. 7 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) derived from temporal candidate (s) and / or propagated inheritance information) for intra luma prediction falls within the scope of the present invention.

[0194] 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 IntraTMP merge mode for intra luma prediction of the luma block. 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” )

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

[0196] 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 BV selected / decided from merge candidates included in the IMM list L_IMM.

[0197] Consider a case where temporal candidates are checked for constructing the IMM list L_IMM. The IMM list L_IMM may have one or more merge candidates, including a merge candidate that has inheritance information (i.e., coding information such as BV, AR-BVP or fusion weight) from a reference block at a pre-defined position in a previous picture, if the current slice / picture is a non-intra slice / picture. In one embodiment, the pre-defined position of the reference block is inside a corresponding area of the current block. In one embodiment, the pre-defined position of the reference block is outside of a corresponding area of the current block. In one embodiment, the pre-defined position of the reference block is determined based on a position, a width and a height of the current block. In one embodiment, the previous picture is among pictures in reference lists. In one embodiment, the previous picture is the same as that of an inter merge mode.

[0198] Consider a case where propagated inheritance information is retrieved for constructing the IMM list L_IMM. 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 of a spatial candidate or a temporal candidate checked by the IntraTMP merge mode, 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 BV-based prediction mode (e.g., IntraTMP, IBC, or any mode utilizing BV) . In one embodiment, the second reference block may be decoded using a BV-based prediction mode (e.g., IntraTMP, IBC, or any mode utilizing BV) . 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 IntraTMP merge mode.

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

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

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

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

[0203] FIG. 8 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. 6 for encoding of video data or the video decoder 200 shown in FIG. 7 for decoding of encoded video bitstream. At step 802, 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 804, encoding or decoding of the current block is performed by using an IntraTMP merge mode for intra luma prediction of the luma block. The step 804 includes a sub-step 806 that is performed for constructing an IMM list (which is a merge candidate list of an IntraTMP merge mode) , wherein the IMM list has one or more merge candidates, including a merge candidate that includes inheritance information from a reference block at a pre-defined position in a previous picture, and / or 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.

[0204] 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. 8. 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) .

[0205] 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 template matching prediction (IntraTMP) merge mode for intra luma prediction of the luma block, comprising:constructing an IntraTMP merge mode (IMM) list, wherein the IMM list includes one or more merge candidates, comprising:a merge candidate, comprising inheritance information from a reference block at a pre-defined position in a previous picture.2.The method of claim 1, wherein the pre-defined position of the reference block is inside a corresponding area of the current block.3.The method of claim 1, wherein the pre-defined position of the reference block is outside of a corresponding area of the current block.4.The method of claim 1, wherein the pre-defined position of the reference block is determined based on a position, a width and a height of the current block.5.The method of claim 1, wherein the previous picture is among pictures in reference lists.6.The method of claim 1, wherein the previous picture is the same as that of an inter merge mode.7.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 template matching prediction (IntraTMP) merge mode for intra luma prediction of the luma block, comprising:constructing an IntraTMP 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.8.The method of claim 7, wherein the inheritance information is propagated from the second reference block at a pre-defined position in a previous picture.9.The method of claim 8, wherein the pre-defined position of the second reference block is the same as that of a collocated block of an inter merge mode.10.The method of claim 8, wherein the previous picture is the same as that of an inter merge mode.11.The method of claim 7, 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.12.The method of claim 7, 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.13.The method of claim 7, 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.14.The method of claim 13, wherein a base vector of the cascaded vector is a block vector (BV) obtainable at the position of the first reference block.15.The method of claim 13, wherein a base vector of the cascaded vector is a motion vector (MV) obtainable at the position of the first reference block.16.The method of claim 13, 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.17.The method of claim 7, wherein the first reference block is not encoded or decoded using a block vector (BV) based prediction mode.18.The method of claim 7, wherein the second reference block is encoded or decoded using a block vector (BV) based prediction mode.19.The method of claim 7, 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.20.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 template matching prediction (IntraTMP) merge mode for intra luma prediction of the luma block, wherein the decoding circuit comprises:an IntraTMP 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 reference block at a pre-defined position in a previous picture; ora 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.