Methods and apparatus of extrapolation intra prediction model inheritance based on cascaded vectors

By deriving cascaded vectors from neighboring blocks' motion or block vectors, the method improves filter-based intra prediction in video coding, enhancing efficiency and accuracy in video encoding and decoding processes.

WO2025149015A1PCT designated stage expired Publication Date: 2025-07-17MEDIATEK INC
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/071671
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-01-12
Filing Date
2025-01-10
Publication Date
2025-07-17

AI Technical Summary

Technical Problem

Existing video coding systems face challenges in improving the efficiency of filter-based intra prediction by effectively inheriting and propagating filter-based prediction information across neighboring blocks, leading to suboptimal video quality and compression efficiency.

Method used

The method involves deriving cascaded vectors recursively from motion or block vectors of neighboring blocks to determine target filter-based prediction information, which is then used to encode or decode current blocks, allowing for the inheritance and propagation of filter-based prediction models.

Benefits of technology

This approach enhances the video coding efficiency by improving the accuracy and quality of intra prediction, reducing errors, and optimizing the compression process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025071671_17072025_PF_FP_ABST
    Figure CN2025071671_17072025_PF_FP_ABST
Patent Text Reader

Abstract

A method and apparatus for video coding are disclosed. According to this method, input data associated with a current block is received, wherein the input data comprise pixel data to be encoded at an encoder side or coded data associated with the current block to be decoded at a decoder side. When referencing filter-based prediction information from one or more neighbouring blocks, if at least one neighbouring block has a first MV (Motion Vector) or a first BV (Block Vector) : one or more cascaded vectors are derived, wherein each cascaded vector is derived recursively as a sum of traced vectors starting from the first MV or the first BV; target filter-based prediction information is determined based on said one or more cascaded vectors; a merge list comprising the target filter-based prediction information is determined and the current block is encoded or decoded by using the merge list.
Need to check novelty before this filing date? Find Prior Art

Description

METHODS AND APPARATUS OF EXTRAPOLATION INTRA PREDICTION MODEL INHERITANCE BASED ON CASCADED VECTORSCROSS REFERENCE TO RELATED APPLICATIONS

[0001] The present invention is a non-Provisional Application of and claims priority to U.S. Provisional Patent Application No. 63 / 620,209, filed on January 12, 2024. The U.S. Provisional Patent Application is hereby incorporated by reference in its entirety.FIELD OF THE INVENTION

[0002] The present invention relates to video coding system filter-based prediction modes. In particular, the present invention relates to coding component block using filter-based prediction information based on a cascaded motion vector or block vector. BACKGROUND AND RELATED ART

[0003] Versatile video coding (VVC) is the latest international video coding standard developed by the Joint Video Experts Team (JVET) of the ITU-T Video Coding Experts Group (VCEG) and the ISO / IEC Moving Picture Experts Group (MPEG) . The standard has been published as an ISO standard: ISO / IEC 23090-3: 2021, Information technology -Coded representation of immersive media -Part 3: Versatile video coding, published Feb. 2021. VVC is developed based on its predecessor HEVC (High Efficiency Video Coding) by adding more coding tools to improve coding efficiency and also to handle various types of video sources including 3-dimensional (3D) video signals.

[0004] Fig. 1A illustrates an exemplary adaptive Inter / Intra video encoding system incorporating loop processing. For Intra Prediction, the prediction data is derived based on previously coded video data in the current picture. For Inter Prediction 112, Motion Estimation (ME) is performed at the encoder side and Motion Compensation (MC) is performed based on the result of ME to provide prediction data derived from other picture (s) and motion data. Switch 114 selects Intra Prediction 110 or Inter-Prediction 112 and the selected prediction data is supplied to Adder 116 to form prediction errors, also called residues. The prediction error is then processed by Transform (T) 118 followed by Quantization (Q) 120. The transformed and quantized residues are then coded by Entropy Encoder 122 to be included in a video bitstream corresponding to the compressed video data. The bitstream associated with the transform coefficients is then packed with side information such as motion and coding modes associated with Intra prediction and Inter prediction, and other information such as parameters associated with loop filters applied to underlying image area. The side information associated with Intra Prediction 110, Inter prediction 112 and in-loop filter 130, are provided to Entropy Encoder 122 as shown in Fig. 1A. When an Inter-prediction mode is used, a reference picture or pictures have to be reconstructed at the encoder end as well. Consequently, the transformed and quantized residues are processed by Inverse Quantization (IQ) 124 and Inverse Transformation (IT) 126 to recover the residues. The residues are then added back to prediction data 136 at Reconstruction (REC) 128 to reconstruct video data. The reconstructed video data may be stored in Reference Picture Buffer 134 and used for prediction of other frames.

[0005] As shown in Fig. 1A, incoming video data undergoes a series of processing in the encoding system. The reconstructed video data from REC 128 may be subject to various impairments due to a series of processing. Accordingly, in-loop filter 130 is often applied to the reconstructed video data before the reconstructed video data are stored in the Reference Picture Buffer 134 in order to improve video quality. For example, deblocking filter (DF) , Sample Adaptive Offset (SAO) and Adaptive Loop Filter (ALF) may be used. The loop filter information may need to be incorporated in the bitstream so that a decoder can properly recover the required information. Therefore, loop filter information is also provided to Entropy Encoder 122 for incorporation into the bitstream. In Fig. 1A, Loop filter 130 is applied to the reconstructed video before the reconstructed samples are stored in the reference picture buffer 134. The system in Fig. 1A is intended to illustrate an exemplary structure of a typical video encoder. It may correspond to the High Efficiency Video Coding (HEVC) system, VP8, VP9, H. 264 or VVC.

[0006] The decoder, as shown in Fig. 1B, can use similar or portion of the same functional blocks as the encoder except for Transform 118 and Quantization 120 since the decoder only needs Inverse Quantization 124 and Inverse Transform 126. Instead of Entropy Encoder 122, the decoder uses an Entropy Decoder 140 to decode the video bitstream into quantized transform coefficients and needed coding information (e.g. ILPF information, Intra prediction information and Inter prediction information) . The Intra prediction 150 at the decoder side does not need to perform the mode search. Instead, the decoder only needs to generate Intra prediction according to Intra prediction information received from the Entropy Decoder 140. Furthermore, for Inter prediction, the decoder only needs to perform motion compensation (MC 152) according to Inter prediction information received from the Entropy Decoder 140 without the need for motion estimation.

[0007] According to VVC, an input picture is partitioned into non-overlapped square block regions referred as CTUs (Coding Tree Units) , similar to HEVC. Each CTU can be partitioned into one or multiple smaller size coding units (CUs) . The resulting CU partitions can be in square or rectangular shapes. Also, VVC divides a CTU into prediction units (PUs) as a unit to apply prediction process, such as Inter prediction, Intra prediction, etc.

[0008] In the present invention, methods and apparatus to improve the performance of filter-based intra prediction by inheriting filter-based prediction information from a cascaded vector are disclosed. BRIEF SUMMARY OF THE INVENTION

[0009] A method and apparatus for video coding are disclosed. According to this method, input data associated with a current block is received, wherein the input data comprise pixel data to be encoded at an encoder side or coded data associated with the current block to be decoded at a decoder side. When referencing filter-based prediction information from one or more neighbouring blocks, if at least one neighbouring block has a first MV (Motion Vector) or a first BV (Block Vector) : one or more cascaded vectors are derived, wherein each cascaded vector is derived recursively as a sum of traced vectors starting from the first MV or the first BV; target filter-based prediction information is determined based on said one or more cascaded vectors; a merge list comprising the target filter-based prediction information is determined and the current block is encoded or decoded by using the merge list.

[0010] In one embodiment, if a second reference block indicated by a current cascaded vector has a second MV or a second BV, the second MV or the second BV is used as a next traced vector, and the next cascaded vector is formed by adding the next traced vector to the current cascaded vector, wherein the current cascaded vector is initially set to the first MV or the first BV. In one embodiment, the target filter-based prediction information corresponds to EIP (Extrapolation Filter-Based Intra Prediction) information. In one embodiment, each traced vector corresponds to an L0 MV, an L1 MV, or one BV.

[0011] In one embodiment, for each recursion, if one reference block indicated by one cascaded vector has multiple MVs or BVs, multiple cascaded vectors are derived. In one embodiment, a set of cascaded vectors is derived for different numbers of trace depth.

[0012] In one embodiment, trace depth associated with said one or more cascaded vectors is smaller than a maximum limit corresponds to a finite number or an infinite number. In another embodiment, trace depth associated with said one or more cascaded vectors corresponds to a pre-defined number.

[0013] In one embodiment, each of said one or more neighbouring block corresponds to a CU / CB, PU, TU / TB or a corresponding block with a same size as the current block.

[0014] In one embodiment, when deriving corresponding filter-based prediction information to be stored in a target block, after finishing encoding / decoding the target block, multiple sets of filter-based prediction information are stored in the target block. In one embodiment, if the target block has a target MV or BV available and the target block is filter-based prediction coded, the filter-based prediction information of one or more reference blocks located by one or more cascaded vectors are also stored in the target block in addition to storing the filter-based prediction information used by the target block. In one embodiment, if the target block has a target MV or BV available and the target block is not filter-based prediction coded, the filter-based prediction information of one or more reference blocks located by one or more cascaded vectors is also stored.

[0015] In one embodiment, a maximum number of sets of the filter-based prediction information allowed to be stored in one block is pre-defined. In one embodiment, if an available number of sets of the filter-based prediction information exceeds a maximum allowed number, priority of the filter-based prediction information to be stored is pre-defined. In one embodiment, if the target block is filter-based prediction coded, the filter-based prediction information used by the target block has a highest priority. In one embodiment, the priority is determined based on trace depth of a target cascaded vector. In one embodiment, the filter-based prediction information associated with a shorter trace depth has a higher priority.BRIEF DESCRIPTION OF THE DRAWINGS

[0016] Fig. 1A illustrates an exemplary adaptive Inter / Intra video encoding system incorporating loop processing.

[0017] Fig. 1B illustrates a corresponding decoder for the encoder in Fig. 1A.

[0018] Figs. 2A-C illustrate three types (Fig. 2A: Left-Above area, Fig. 2B: Above area, and Fig. 2C: Left area) of reconstructed areas used to derive filter coefficients for EIP.

[0019] Fig. 3 illustrates three types of filter shapes with fifteen inputs and generate one output for EIP process.

[0020] Fig. 4 illustrates an example of scanning order for generating predictions for different positions in the current block by a diagonal order.

[0021] Fig. 5 illustrates an example of search area used for Intra template matching.

[0022] Fig. 6 illustrates an example of how to derive AR-BVP (Auto-Relocated Block Vector Prediction) .

[0023] Fig. 7 illustrates an example of five spatial locations checked for block Bn in order to derive block vector BVn, n+1.

[0024] Fig. 8 illustrates an example of CMVP (Chained MVP) candidates derived as the sum of the recursively traced MVs and BVs based on the pre-derived MVs for the inter merge candidate list.

[0025] Fig. 9 illustrates an example of deriving MVk (m) by checking the existence of MVs or BVs in MV / BV storage corresponding to all five positions of the current block.

[0026] Fig. 10 illustrates the spatial neighbouring blocks for deriving the spatial candidates in VVC or HEVC.

[0027] Fig. 11 illustrates the spatial neighbouring blocks used to derive the spatial merge candidates.

[0028] Fig. 12 illustrates examples of filter-based prediction information propagation based on block vectors, where the blocks with dash line (i.e., A, E, G) are coded in a filter-based prediction model.

[0029] Fig. 13 illustrates examples of filter-based prediction information propagation based on motion vectors, where the blocks with dash line (i.e., A, E, G) are coded in a filter-based prediction model.

[0030] Fig. 14 illustrates an example of the cascaded vector derivation, where the cascaded vector is derived as the sum of the recursively traced motion vectors and block vectors based on the motion vector or the block vector of the neighbouring block.

[0031] Fig. 15 illustrates a flowchart of an exemplary video coding system that uses filter-based prediction information associated with a cascaded vector according to an embodiment of the present invention.DETAILED DESCRIPTION OF THE INVENTION

[0032] It will be readily understood that the components of the present invention, as generally described and illustrated in the figures herein, may be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of the embodiments of the systems and methods of the present invention, as represented in the figures, is not intended to limit the scope of the invention, as claimed, but is merely representative of selected embodiments of the invention. References throughout this specification to “one embodiment, ” “an embodiment, ” or similar language mean that a particular feature, structure, or characteristic described in connection with the embodiment may be included in at least one embodiment of the present invention. Thus, appearances of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment.

[0033] Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. One skilled in the relevant art will recognize, however, that the invention can be practiced without one or more of the specific details, or with other methods, components, etc. In other instances, well-known structures, or operations are not shown or described in detail to avoid obscuring aspects of the invention. The illustrated embodiments of the invention will be best understood by reference to the drawings, wherein like parts are designated by like numerals throughout. The following description is intended only by way of example, and simply illustrates certain selected embodiments of apparatus and methods that are consistent with the invention as claimed herein.

[0034] Related Art

[0035] The proposed extrapolation filter-based intra prediction is processed in three steps. First, the min, max and offset values are obtained from a pre-defined reconstructed area. Second, the extrapolation filter coefficients are obtained from the neighbouring reconstructed pixels of the current block’s pre-determined template. Third, the extrapolation process generates a predicted value position by position from the top-left to bottom-right corner within the current block.

[0036] An Extrapolation Filter-Based Intra Prediction (EIP) Mode (from JVET-AD0081)

[0037] This section describes the method “extrapolation intra prediction” proposed in the proposal in JVET meeting with the document number “JVET AD0081” . Based on the proposed process to generate the predictor for each sample in one block, it is also termed as “multiple source sample-based prediction” in this invention. In AD0081, the application of EIP is restricted to the block size not greater than 32x32 and intra slice only.

[0038] A. Obtaining the min, max, and offset value for EIP

[0039] Similar to CCCM mode, an offset value should be removed when feeding the inputs to the EIP filter. The top-left reconstructed pixel from a pre-defined neighbouring area of the current block is used as the offset value for EIP prediction. The min and max value are obtained from reconstructed pixels in the pre-defined reconstructed area of the current block.

[0040] B. Calculation of filter coefficients for EIP

[0041] Three types of reconstructed areas and three filter shapes are proposed as shown in Figs. 2A-C and Fig. 3. When the current block uses the proposed EIP mode for prediction, the decoder decodes the relevant syntax elements to determine the selected type of reconstructed area and the filter shape for the current block.

[0042] The three types of the reconstructed area are defined as shown in Fig. 2, where the three reconstructed areas correspond to Left-Above area (i.e., EIP_LT) (Fig. 2A) , Above area (i.e, EIP_T) (Fig. 2B) , and Left area (i.e., EIP_L) (Fig. 2C) . The size of the reconstructed area depends on the min (blockWidth, blockHeight) and the selected filter shape. For example, when the current block is an 8x16 block and the selected filter shape is 4x4. The aboveSize of the reconstructed area is equal to min (8, 16) + 4 –1 = 11, and the leftSize of the reconstructed area is equal to min (8, 16) + 4 –1 = 11.

[0043] The three EIP filter shapes are shown in Fig. 3, where the three filter shapes correspond to square 310, horizontal strip 320, and vertical strip 330.

[0044] 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 from the auto-correlation matrix and the cross-correlation vector is the same as that in convolutional cross-component model (CCCM) .

[0045] C. Prediction of the current block for EIP

[0046] 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, as shown in Fig. 4.

[0047] To reduce the prediction error, the min and max values from the neighbouring reconstructed area are applied to restrict the output range of each predicted value.

[0048] The calculation for the prediction values in this contribution is shown as follows: where pred (x, y) is the predicted value at (x, y) in the current block. min, max and offset are the  values described above. ci is the ith coefficient of the derived EIP filter, the index of the coefficients is from 0 to 14, t (x-xoffset, y-yoffset) is reconstructed or predicted value used for the current position’s prediction.

[0049] In the following sections, several existed intra prediction methods are elaborated.

[0050] Intra Template Matching Prediction

[0051] 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 matched with 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.

[0052] The prediction signal is generated by matching the L-shaped causal neighbour of the current block with another block in a predefined search area in Fig. 5 consisting of: R1: all or any subset of current CTU R2: top-left CTU R3: above CTU R4: left CTU

[0053] In Fig. 5, the current block 510 in R1 is matched with the corresponding block 512 in R2. The templates for the current block and the matched block are shown as darker-colour L-shaped areas. Area 522 corresponds to reconstructed region in the current picture 520. Sum of absolute differences (SAD) is used as a cost function. Within each region, the decoder searches for the template that has least SAD with respect to the current one and uses its corresponding block as a prediction block.

[0054] 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 = a *BlkW, SearchRange_h = a *BlkH, where ‘a’ is a constant that controls the gain / complexity trade-off. In practice, ‘a’ is equal to 5.

[0055] To speed-up the template matching process, the search range of all search regions is subsampled by a factor of 2. This leads to a reduction of template matching search by 4. 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. The reduced range is defined as min (BlkW, BlkH)  / 2.

[0056] The Intra template matching tool is enabled for CUs with size less than or equal to 64 in width and height. This maximum CU size for Intra template matching is configurable.

[0057] The Intra template matching prediction mode is signalled at CU level through a dedicated flag when DIMD (Decoder-side Intra Mode Derivation) is not used for current CU.

[0058] JVET-AG0091: EE2-1.8: Auto-Relocated Block Vector Prediction

[0059] In EE2-1.8, Auto-Relocated Block Vector Prediction (AR-BVP) is introduced into IBC merge / AMVP candidate list construction.

[0060] As shown in Fig. 6, 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.

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

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

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

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

[0065] JVET-AG0073: Non-EE2: Chained Motion Vector Prediction

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

[0067] As shown in Fig. 8, 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 vectors 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) , where k and m indicate the number of merge index and trace depths of the CMVP.

[0068] When deriving MVk / m, MVk (m) is found by checking the existence of MVs or BVs in MV / BV storage corresponding to all five positions of the current block as shown in Fig. 9 (i.e., the centre, top-left, top-right, bottom-left, and bottom-right of the current block) .

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

[0070] The traceable reference pictures are only within the reference picture list. CMVP candidates are inserted after HMVP candidates for the regular merge and TM merge. When deriving CMVP candidates, hpelIfIdx, bcwIdx, licFlag, and mhpFlag are not inherited. CMVP candidates are not derived when the TMVP is disabled.

[0071] Proposed Method

[0072] I. Inheriting EIP information

[0073] In one embodiment, all or part of the EIP information of inherited EIP model can be stored together with the inherited EIP model parameters.

[0074] The EIP information includes, but not limited to, template region selection type (e.g., EIP_T, EIP_L or EIP_LT) , size of template region, kernel type (e.g., 4x4 square kernel, 8x2 rectangular kernel or 2x8 rectangular kernel) , multi-model flag, classification method for multi-model, threshold for multi-model, fusion flag, fusion method, post-filtering flag, or model parameters.

[0075] In one embodiment, a propagation flag can be stored in the EIP information. This information describes whether the EIP information is copied from a reference block as described in the section entitled “Propagated EIP Information” . If a block uses EIP filter, the EIP information of the current block is derived and stored. The propagation flag of the block’s EIP information is set to false. If a block does not use EIP filter, the EIP information of the block is derived by copying the EIP information from a reference block. The propagation flag of the block’s EIP information is then set to true.

[0076] In another embodiment, the EIP information can include information to indicate the source of the propagated EIP information. For example, as described in the section entitled “Propagated EIP Information” , the reference block from which the EIP information is copied can be a block located by the block vector of the current block, a block located by the motion vector of the current block, or a collocated block of the current block.

[0077] II. Inheriting Spatial Neighbouring Model Parameters

[0078] In one embodiment, the inherited model parameters can be from a block that is an immediate neighbouring block. The models from blocks at pre-defined positions are added into the candidate list in a pre-defined order. For example, the pre-defined positions can be the positions as illustrated in the Fig. 10, and the pre-defined order can be B0, A0, B1, A1 and B2, or A0, B0, B1, A1 and B2.

[0079] In another embodiment, the pre-defined positions include the positions immediately above the centre position of the top line of the current block if W is greater than or equal to TH. Assume the position of the current chroma block is at (x, y) , the pre-defined positions can be (x + (W >> 1) , y -1) or (x + (W >> 1) –1, y -1) . The pre-defined positions also include the positions at the immediate left of the centre position of the left line of the current block if H is greater than or equal to TH. The pre-defined positions can be (x –1, (H >> 1) ) or (x –1, (H >> 1) –1) position. W and H are the width and height of the current block, TH is a threshold value which can be 4, 8, 16, 32, or 64.

[0080] III. Inheriting Temporal Neighbouring Model Parameters

[0081] In one embodiment, if the current slice / picture is a non-intra slice / picture, the inherited model parameters can be from the block in the previous coded slices / pictures. In one embodiment, the current block position is at (x, y) and the block size is w×h. The two value sets αx and αy are defined as: αx= {αx1, αx2, αx3, …, αxn} , αxi<αxj if i<j αy={αy1, αy2, αy3, …, αyn}, αyi<αyj if i<j

[0082] All values in αx and αy are positive numbers. Let (xmid, ymid) = (x+w / 2, y+h / 2) . The inherited model parameters can be from the block at positions (xmid±αxi×w, ymid±αyi×h) , (xmid±αxi×w, 0) , (0, ymid±αyi×h) , (xmid±αxi×w, ymid) , (xmid, ymid±αyi×h) of the previous coded slices / picture.

[0083] In one sub-embodiment, αx= αy. For example, αx=αy= {1, 2, 3, 4, 5} .

[0084] In another sub-embodiment, αx≠ αy. For example, αx= {1 / 2, 1, 3 / 2, 2, 5 / 2} and αy= {1, 2, 3, 4, 5} .

[0085] In another embodiment, the current block position is at (x, y) and the block size is w×h.The inherited model parameters can be from the block at positions (x+αxi×w, y+αyi×h) , (x+αxi×w, y-αyi×h) , (x-αxi×w, y+αyi×h) , (x-αxi×w, y-αyi×h) , (x+αxi×w, 0) , (x-αxi×w, 0) , (0, y+αyi×h) , (0, y-αyi×h) , (x+αxi×w, y) , (x-αxi×w,y) , (x, y+αyi×h) , (x, y-αyi×h) of the previous coded slices / picture.

[0086] In one sub-embodiment, αx= αy. For example, αx=αy= {1, 2, 3, 4, 5} .

[0087] In another sub-embodiment, αx≠ αy. For example, αx= {1 / 2, 1, 3 / 2, 2, 5 / 2} and αy= {1, 2, 3, 4, 5} .

[0088] In one embodiment, the models from the positions closer to (xmid, ymid) are added into the final merge candidate list first. In another embodiment, the models from the positions closer to (x, y) are added into the final merge candidate list first.

[0089] In another embodiment, the current block position is at (x, y) and the block size is w×h. The inherited model parameters can be from the block at some pre-defined positions (x′, y′) of the previous coded slices / picture. For one example, the positions are inside the corresponding area of the current encoding block, i.e., x≤x′<x+w and y≤y′<y+h. The inherited model parameters can be from the block at (x, y) , (x+w-1, y) , (x, y+h-1) , (x+w-1, y+h-1) , (x+w / 2, y+h / 2) . For another example, the positions are outside of the corresponding area of the current encoding block, i.e., x′<x+or x′≥x+w, or y′<y or y′≥y+h. The inherited model parameters can be from the block at (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) .

[0090] In one embodiment, the inherited model can be from the block at some pre-defined positions. The pre-defined positions and the inclusion order can be the same as those of inter merge mode.

[0091] In one embodiment, the previous coded picture which the inherited model is from is referred as the collocated picture hereafter.

[0092] In one embodiment, the previous coded picture which the inherited parameter model is from (i.e., the collocated picture) is one of the pictures in the reference lists.

[0093] In one embodiment, the collocated picture is the same as the collocated reference picture of TMVP of inter merge mode. In another embodiment, the collocated picture can be different from the collocated reference picture of TMVP of inter merge mode.

[0094] In one embodiment, the collocated picture is signalled in the picture / slice header. The reference list and the reference index are signalled in the picture / slice header. For example, the collocated picture is selected as L0 [0] . For another example, the collocated picture is selected as L1 [0] .

[0095] In one embodiment, the collocated picture is selected as the picture in the reference lists whose POC difference between the respective reference picture and the current picture is the smallest. For example, if the POC of current picture is 8, the POCs of pictures in reference list 0 are {7, 6, 5, 0} and POCs of pictures in reference list 1 are {7, 6, 5, 4} , then L0 [0] (equivalent to L1 [0] ) is selected since its POC difference is the smallest.

[0096] In another sub-embodiment, if there are two pictures whose POC difference between the respective reference picture and the current picture are both the smallest, the picture with a smaller POC is selected.

[0097] In another sub-embodiment, if there are two pictures whose POC difference between the respective reference picture and the current picture are both the smallest, the picture with the larger POC is selected.

[0098] In one embodiment, the collocated picture is selected as the picture in the reference lists whose QP difference between the respective reference picture and the current picture is the smallest. For example, if the QP of current picture is 28, and the QPs of the pictures in reference list 0 are {19, 26, 23} and the QPs of the pictures in reference list 1 are {23, 22, 21} . Then L0 [1] is selected.

[0099] In one embodiment, the collocated picture is selected as the picture in the reference lists whose QP is the smallest.

[0100] In another embodiment, the collocated picture is selected as the picture in the reference lists whose QP is the largest.

[0101] In one embodiment, the rules to select / not select the collocated pictures described in the paragraphs above can be combined.

[0102] IV. Inheriting Non-Adjacent Spatial Neighbouring Models

[0103] In one embodiment, the inherited model parameters can be from blocks that are non-adjacent spatial neighbouring blocks. The models from blocks at pre-defined positions are added into the candidate list in a pre-defined order. For example, the pattern of the positions and order can be as the pattern depicted in Fig. 11. Each small square represents a candidate position and the number inside the square indicates the pre-defined order. The distance between each position and current block are based on the width and height of current coding block. For another embodiment, the distance between the positions that are closer to the current encoding block is smaller than the positions that are further away from the current block. For another embodiment, the distance between the positions that are closer to the current encoding block is larger than the positions that are further away from the current block.

[0104] V. Inheriting Model Parameters from History Table

[0105] In one embodiment, the inherited model parameters can be from an EIP model history table. The models in the history table can be added into the candidate list according to a pre-defined order. In one embodiment, the adding order of historical candidate can be from the beginning of the table to the end of the table. In another embodiment, the adding order of historical candidate can be from a certain pre-defined position to the end of the table. In another embodiment, the adding order of historical candidate can be from the end of the table to the beginning of the table. In another embodiment, the adding order of historical candidate can be from a certain pre-defined position to the beginning of the table. In another embodiment, the adding order of historical candidate can be in an interleaved manner (e.g., the first added candidate is from the beginning of the table, the second added candidate is from the end of the table, and so on) .

[0106] In one embodiment, single EIP model history table can be maintained for storing the previous EIP model, and the history table can be reset at the start of the current picture, current slice, current tile, every M CTU rows or every N CTUs, where N and M can be any value greater than 0. In another embodiment, the EIP model history table can be reset at the end of the current picture, current slice, current tile, current CTU row or current CTU.

[0107] VI. Constructing a Candidate List

[0108] In one embodiment, the candidate list is constructed by adding candidates in a pre-defined order until the maximum candidate number is reached. The candidates added can include all or some of the aforementioned candidates, but not limited to the aforementioned candidates. For example, the candidate list can include spatial neighbouring candidates, temporal neighbouring candidate, historical candidates, non-adjacent neighbouring candidates, single model candidates generated based on other inherited models. For another example, the candidate list can include the same candidates as previous example, but the candidates are added into the list in different order.

[0109] In another embodiment, if all the pre-defined neighbouring and historical candidates are added but the maximum candidate number is not reached, some default candidates are added into the candidate list until the maximum candidate number is reached.

[0110] In another embodiment, a default candidate can be a shortcut to indicate an EIP mode (i.e., uses the current neighbouring reconstruction samples to derive EIP models) rather than inheriting parameters from neighbours. For example, default candidate can be EIP_LT, EIP_L, EIP_T.

[0111] When constructing a candidate list, candidates are included into the list according to a pre-defined order. For example, the pre-defined order can be spatial adjacent candidates, temporal candidates, spatial non-adjacent candidates, historical candidates, and then default candidates.

[0112] VII. Signalling the inherit candidate in the list

[0113] In one embodiment, an on / off flag is signalled to indicate whether the current block inherits the EIP model information from neighbouring blocks or not. The flag can be signalled per CU / CB, per PU, per TU / TB, or per colour component. A high-level syntax can be signalled in SPS, PPS, PH or SH to indicate whether the proposed method is allowed for the current sequence, picture, or slice.

[0114] In one embodiment, the maximum allowed candidate number is signalled to indicate the maximum size of the merge candidate list. The number can be signalled per CU / CB, per PU, per TU / TB, or per colour component. A high-level syntax can be signalled in SPS, PPS, PH or SH to indicate the maximum allowed candidate number for the current sequence, picture, or slice. In another embodiment, the maximum allowed candidate number of the proposed method can be shared with the maximum allowed candidate number for inter merge mode.

[0115] VIII. Propagated EIP Information

[0116] In one embodiment, after encoding / decoding a block, the EIP information of the current block is derived and stored in the current block. The stored EIP information can be referenced by the following coding blocks. The following coding blocks can inherit EIP information from the current block. The definition of EIP information is in the section entitled “Inheriting EIP Information” . The stored EIP information can be inherited as, but not limited to, the following types of candidates: spatial candidates (as in the section entitled “Inheriting Spatial Neighbouring Model Parameters” ) , non-adjacent candidates (as in the section entitled “Inheriting Non-Adjacent Spatial Neighbouring Models” ) , temporal candidates (as in the section entitled “Inheriting Temporal Neighbouring Model Parameters” ) , historical candidates (as in the section entitled “Inheriting Model Parameters from History Table” ) .

[0117] In one embodiment, if the current block is not coded with EIP, and there are block vectors available in the current block, (e.g., the current block or the collocated luma block is coded in IBC or IntraTMP mode) , the EIP information of the current block can be derived by copying the EIP information of the reference block located by the block vector. For example, as shown in Fig. 12, block B is not coded with EIP and there are block vectors available at block B. The reference block A is located by the block vector. The EIP information of the reference block A, which is coded with EIP, is copied and stored in block B. In one embodiment, if the reference block located by the block vector is not EIP coded either, but there is EIP information stored in the reference block, the EIP information of the current block can be derived by copying the EIP information stored in the reference block. That is, even when the reference block is not EIP coded, as long as it has valid stored EIP information, the stored EIP information can be referenced by the current block. For example, as shown in Fig. 12, the current block C has block vector available, and its reference block B, which is not EIP coded, has EIP information stored. The EIP information of block B is copied and stored in block C. Since the EIP information stored in block B was copied from block A, the EIP information stored in block C is originally from block A (i.e., the EIP information of block A is propagated to block C) . By only accessing block B, block C can retrieve EIP information originally from block A. In one embodiment, if the reference block located by the block vector is not EIP coded and does not have EIP information stored, no EIP information is stored for the current block.

[0118] In one embodiment, the block vectors used to derive the reference block are the block vectors at the centre of the block or the collocated luma block. In another embodiment, the block vectors used to derive the reference block is the block vectors at the top-left corner of the block or the collocated luma block.

[0119] In one embodiment, when the current block has multiple block vectors available (e.g., the block vector can be bi-directional, the block can have multiple IntraTMP block vectors) , to derive the EIP information of the current block, if only one of the reference blocks located by the block vectors has EIP information, the EIP information from the reference block which has EIP information is copied and stored in the current block. For example, as shown in Fig. 12, suppose block F has two block vectors and has two reference blocks G and H. Block G has EIP information and block H does not. The EIP information of block G is copied and stored in block F.

[0120] For another embodiment, when the current block has multiple block vectors, and more than one of the reference blocks located by the block vectors has EIP information, one of the reference blocks is selected based on a set of pre-defined rules. The EIP information of the selected reference block is then copied and stored in the current block.

[0121] For one sub-embodiment, the reference block which is coded with EIP is selected.

[0122] For one sub-embodiment, the reference block which is intra coded is selected.

[0123] For one sub-embodiment, the reference block whose distance to the current block is the smallest is selected. The EIP information of the selected reference block is copied and stored in the current block. The distance between the reference block and the current block, located at (xr, yr) and (xc, yc) respectively, can be computed by  (xr, yr) and (xc, yc) can be the top-left, top-right, bottom-left, bottom-right, or centre positions of the reference block and the current block.

[0124] For one sub-embodiment, the reference block which has the smallest horizontal distance, |xr -xc|, is selected. The EIP information of the selected reference block is copied and stored in the current block.

[0125] For another sub-embodiment, the reference block which has the smallest vertical distance, |yr -yc|, is selected. The EIP information of the selected reference block is copied and stored in in the current block.

[0126] For one sub-embodiment, the rules described previously can be combined, and not all the rules described previously need to be applied. For example, the reference block which is EIP coded is selected. If there is more than one EIP coded reference block, then the block which has the shortest distance to the current block among the EIP coded reference blocks is selected. If there is more than one EIP coded reference block whose distance to the current block is the smallest, the reference block which has the smallest horizontal distance, |xr -xc|, is selected. The EIP information of the selected reference block is copied and stored in the current block.

[0127] In one embodiment, if the current block is not EIP coded and there are motion vectors available in the current block (e.g. the current block is inter-coded) , the EIP information of the current block can be derived by copying the EIP information of its reference block in a reference picture, located by the motion vectors of the current block. For example, as shown in Fig. 13, block B is not EIP coded and there are motion vectors available at block B. The reference block A is located by the motion vector. The EIP information of the reference block A, which is EIP coded, is copied and stored in block B. For one embodiment, if the reference block located by the motion vector is also not EIP coded, but there is EIP information stored in the reference block, the EIP information of the current block can be derived by copying the EIP information stored in the reference block. That is, even when the reference block is not EIP coded, as long as it has valid stored EIP information, the stored EIP information can be referenced by the current block. For example, as shown in Fig. 13, the current block C has motion vector available, and its reference block B, which is not EIP coded, has EIP information stored. The EIP information of block B is copied and stored in block C. Since the EIP information stored in block B was copied from block A, the EIP information stored in block C is originally from block A (i.e., the EIP information of block A is propagated to block C) . By only accessing block B, block C can retrieve EIP information originally from block A. For one embodiment, if the reference block located by the motion vector is not EIP coded and does not have EIP information stored, no EIP information is stored for the current block.

[0128] In one embodiment, the motion vectors used to derive the reference block are the motion vectors at the centre of the current block or the collocated luma block. In another embodiment, the motion vectors used to derive the reference block are the motion vectors at the top-left corner of the current block or the collocated luma block.

[0129] For one embodiment, when the current block is inter-coded with bi-directional prediction, if only one of the reference blocks located by the motion vectors has EIP information, the EIP information from the reference block that has EIP information is copied and stored in the current block. For example, as shown in Fig. 13, suppose block F is inter-coded with bi-directional prediction. The two reference blocks located by the motion vectors are block G and block H. Block G has stored EIP information and block H does not. The EIP information of block G is copied and stored in block F.

[0130] For another embodiment, when the current block is inter-coded with bi-directional prediction, and both reference blocks located by the motion vectors have stored EIP information, one of the reference blocks is selected based on a set of pre-defined rules. The EIP information of the selected reference block is then copied and stored in the current block.

[0131] For one sub-embodiment, the reference block which is EIP coded is selected.

[0132] For one sub-embodiment, the reference block which is intra coded is selected.

[0133] For one sub-embodiment, the reference block whose reference picture has a smaller POC distance to the current picture is selected. The EIP information of the selected reference block is copied and stored in the current block.

[0134] For one sub-embodiment, the reference block whose reference picture has a smaller QP difference from the current picture is selected. The EIP information of the selected reference block is copied and stored in the current block.

[0135] For one sub-embodiment, the reference block whose reference picture has a smaller QP value is selected. For another sub-embodiment, the reference block whose reference picture has the larger QP values is selected.

[0136] For one sub-embodiment, the EIP information of both reference blocks are applied on the template of the current block to generate the prediction of the template. The distortion between the prediction samples and the reconstructed samples of the template is computed. The reference block associated with a smaller distortion is selected.

[0137] For one sub-embodiment, the rules described previously can be combined, and not all the rules described previously need to be applied. For example, the reference block which is EIP coded is selected. If both blocks are EIP coded, then the block whose reference picture has a smaller POC distance to the current picture is selected. If both blocks are EIP coded and has the same POC distance to the current picture, the reference block whose reference picture has a smaller QP difference from the current picture is selected. If both blocks are EIP coded, have the same POC distance to the current picture, and have the same QP difference from the current picture, then the reference block whose reference picture has a smaller QP value is selected.

[0138] VIII. 1 Cascaded vector EIP information

[0139] In one embodiment, when referencing the EIP information from neighbouring blocks, if the neighbouring block has motion vector or block vector available, cascaded vectors can be derived based the motion vector or the block vector of the neighbouring block. EIP information of the blocks indicated by the cascaded vectors can also be inherited. The definition of EIP information is in the section entitled “Inheriting EIP Information” . The neighbouring blocks can be, but not limited to, the following types of candidates: spatial candidates (as in the section entitled “Inheriting Spatial Neighbouring Model Parameters” ) , non-adjacent candidates (as in the section entitled “Inheriting Non-Adjacent Spatial Neighbouring Models” ) , temporal candidates (as in the section entitled “Inheriting Temporal Neighbouring Model Parameters” ) , historical candidates (as in the section entitled “Inheriting Model Parameters from History Table” ) .

[0140] As depicted in Fig. 14, the cascaded vector can be derived as the sum of the recursively traced motion vectors and block vectors based on the motion vector or the block vector of the neighbouring block. For example, a cascade vector can be derived as following: Let the L0 motion vector of the neighbour block be MVL0 (0) , the block vector of the block indicated by MVL0 (0) is BV(0) , the L0 motion vector of the block indicated by BV (0) is MVL0 (1) and so on. The cascaded vector MV_m is: MV_m = MVL0 (0) + BV (0) + MVL0 (1) + …+ MVL0 (m) .

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

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

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

[0144] For each recursion, multiple cascaded vectors can be derived if the based block has multiple motion vectors or multiple block vectors. For example, assume the block indicated by MVL0 (1) is bi-prediction and has two motion vectors MVL0 (2) and MVL1 (2) . Two cascaded vectors can be derived as MV_1 + MVL0 (2) and MV_1 + MVL1 (2) , where MV_1 = MVL0 (0) + BV (0) +MVL0 (1) .

[0145] The trace depth m can be a finite value, for example, m = 1. That is, the maximum value of m is a finite value. There is a limit to the number of reference picture reference back. The trace depth m can also be infinite. That is, all trace depth values are allowed, and there is no limit to the number of reference picture reference back. The trace depth m can be pre-defined. That is, there can be a pre-defined threshold for the maximum number for trace depth.

[0146] A set of cascaded vectors can be derived for different m. That is, for all the allowed trace depth, one or more cascaded vectors can be derived.

[0147] The neighbouring block can be a CU / CB, PU, TU / TB or a corresponding block with the same size of the current block.

[0148] VIII. 2 Multiple vector-propagated EIP Information

[0149] As described in the section entitled “Propagated EIP Information” , after encoding / decoding a block, the EIP information of the current block is derived and stored in the current block. In one embodiment, more than one EIP information can be stored in the current block.

[0150] In one embodiment, if the current block has motion vector or block vector available and the current block is EIP coded, in addition to storing the EIP information used by the current block, the EIP information of the reference block located by the cascaded vector, as described in the section entitled “Cascaded vector EIP information” can also be stored in the current block for future referencing. If the current block is not EIP code, the EIP information of the reference block located by the cascaded vector, as described in the section entitled “Cascaded vector EIP information” can also be stored in the current block for future referencing.

[0151] The maximum number of EIP information allowed to be stored in one block can be pre-defined. If the available number of EIP information exceeds the maximum allowed number, the priority of the EIP information to be stored can be pre-defined. For example, if the current block is EIP coded, the current EIP information has the highest priority. For another example, the priority can be determined based on the trace depth of the cascaded vector. The shorter the trace depth is, the higher the priority is for the EIP information. The above rules can be combined.

[0152] Any of the foregoing proposed methods of cascaded vector derivation and associated filter-based prediction information can be implemented in encoders and / or decoders. For example, any of the proposed methods can be implemented in an inter / intra / prediction module of an encoder, and / or an inter / intra / prediction module of a decoder. Alternatively, any of the proposed methods can be implemented as a circuit coupled to the inter / intra / prediction module of the encoder and / or the inter / intra / prediction module of the decoder, so as to provide the information needed by the inter / intra / prediction module.

[0153] With reference to the encoder and decoder in Fig. 1A and Fig. 1B, any of the proposed methods can be implemented in an inter / intra / prediction / transform module (e.g. Intra Pred. 110 in Fig. 1A) of an encoder, and / or an inter / intra / prediction / transform module (e.g. Intra Pred. 150 in Fig. 1B) of a decoder.

[0154] Fig. 15 illustrates a flowchart of an exemplary video coding system that uses filter-based prediction information associated with a cascaded vector according to an embodiment of the present invention. The steps shown in the flowchart may be implemented as program codes executable on one or more processors (e.g., one or more CPUs) at the encoder side and / or decoder side. The steps shown in the flowchart may also be implemented based hardware such as one or more electronic devices or processors arranged to perform the steps in the flowchart. According to this method, input data associated with a current block are received in step 1510, wherein the input data comprise pixel data to be encoded at an encoder side or coded data associated with the current block to be decoded at a decoder side. When referencing filter-based prediction information from one or more neighbouring blocks, whether at least one neighbouring block has a first MV (Motion Vector) or a first BV (Block Vector) is checked in step 1520. If at least one neighbouring block has a first MV or a first BV (i.e., the “Yes” path) , steps 1530-1560 are performed. Otherwise (i.e., the “No” path) , steps 1530-1560 are skipped. In step 1530, one or more cascaded vectors are derived, wherein each cascaded vector is derived recursively as a sum of traced vectors starting from the first MV or the first BV. In step 1540, target filter-based prediction information is determined based on said one or more cascaded vectors. In step 1550, a merge list comprising the target filter-based prediction information is determined. In step 1560, the current block is encoded or decoded by using the merge list.

[0155] The flowchart shown is intended to illustrate an example of video coding according to the present invention. A person skilled in the art may modify each step, re-arranges the steps, split a step, or combine steps to practice the present invention without departing from the spirit of the present invention. In the disclosure, specific syntax and semantics have been used to illustrate examples to implement embodiments of the present invention. A skilled person may practice the present invention by substituting the syntax and semantics with equivalent syntax and semantics without departing from the spirit of the present invention.

[0156] The above description is presented to enable a person of ordinary skill in the art to practice the present invention as provided in the context of a particular application and its requirement. Various modifications to the described embodiments will be apparent to those with skill in the art, and the general principles defined herein may be applied to other embodiments. Therefore, the present invention is not intended to be limited to the particular embodiments shown and described, but is to be accorded the widest scope consistent with the principles and novel features herein disclosed. In the above detailed description, various specific details are illustrated in order to provide a thorough understanding of the present invention. Nevertheless, it will be understood by those skilled in the art that the present invention may be practiced.

[0157] Embodiment of the present invention as described above may be implemented in various hardware, software codes, or a combination of both. For example, an embodiment of the present invention can be one or more circuit circuits integrated into a video compression chip or program code integrated into video compression software to perform the processing described herein. An embodiment of the present invention may also be program code to be executed on a Digital Signal Processor (DSP) to perform the processing described herein. The invention may also involve a number of functions to be performed by a computer processor, a digital signal processor, a microprocessor, or field programmable gate array (FPGA) . These processors can be configured to perform particular tasks according to the invention, by executing machine-readable software code or firmware code that defines the particular methods embodied by the invention. The software code or firmware code may be developed in different programming languages and different formats or styles. The software code may also be compiled for different target platforms. However, different code formats, styles and languages of software codes and other means of configuring code to perform the tasks in accordance with the invention will not depart from the spirit and scope of the invention.

[0158] The invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described examples are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.

Claims

1.A method of video coding, the method comprising:receiving input data associated with a current block, wherein the input data comprise pixel data to be encoded at an encoder side or coded data associated with the current block to be decoded at a decoder side;when referencing filter-based prediction information from one or more neighbouring blocks, if at least one neighbouring block has a first MV (Motion Vector) or a first BV (Block Vector) :deriving one or more cascaded vectors, wherein each cascaded vector is derived recursively as a sum of traced vectors starting from the first MV or the first BV;determining target filter-based prediction information based on said one or more cascaded vectors;determining a merge list comprising the target filter-based prediction information; andencoding or decoding the current block by using the merge list.2.The method of Claim 1, wherein if a second reference block indicated by a current cascaded vector has a second MV or a second BV, the second MV or the second BV is used as a next traced vector, and the next cascaded vector is formed by adding the next traced vector to the current cascaded vector, wherein the current cascaded vector is initially set to the first MV or the first BV.3.The method of Claim 1, wherein the target filter-based prediction information corresponds to EIP (Extrapolation Filter-Based Intra Prediction) information.4.The method of Claim 1, wherein each traced vector corresponds to an L0 MV, an L1 MV, or one BV.5.The method of Claim 1, wherein for each recursion, if one reference block indicated by one cascaded vector has multiple MVs or BVs, multiple cascaded vectors are derived.6.The method of Claim 5, wherein a set of cascaded vectors is derived for different numbers of trace depth.7.The method of Claim 1, wherein trace depth associated with said one or more cascaded vectors is smaller than a maximum limit corresponds to a finite number or an infinite number.8.The method of Claim 1, wherein trace depth associated with said one or more cascaded vectors corresponds to a pre-defined number.9.The method of Claim 1, wherein each of said one or more neighbouring block corresponds to a CU / CB, PU, TU / TB or a corresponding block with a same size as the current block.10.The method of Claim 1, wherein when deriving corresponding filter-based prediction information to be stored in a target block, after finishing encoding / decoding the target block, multiple sets of filter-based prediction information are stored in the target block.11.The method of Claim 10, wherein if the target block has a target MV or BV available and the target block is filter-based prediction coded, the filter-based prediction information of one or more reference blocks located by one or more cascaded vectors are also stored in the target block in addition to storing the filter-based prediction information used by the target block.12.The method of Claim 10, wherein if the target block has a target MV or BV available and the target block is not filter-based prediction coded, the filter-based prediction information of one or more reference blocks located by one or more cascaded vectors is also stored.13.The method of Claim 10, wherein a maximum number of sets of the filter-based prediction information allowed to be stored in one block is pre-defined.14.The method of Claim 10, wherein if an available number of sets of the filter-based prediction information exceeds a maximum allowed number, priority of the filter-based prediction information to be stored is pre-defined.15.The method of Claim 14, wherein if the target block is filter-based prediction coded, the filter-based prediction information used by the target block has a highest priority.16.The method of Claim 14, wherein the priority is determined based on trace depth of a target cascaded vector.17.The method of Claim 16, wherein the filter-based prediction information associated with a shorter trace depth has a higher priority.18.An apparatus for video coding, the apparatus comprising one or more electronic circuits or processors arranged to:receive input data associated with a current block, wherein the input data comprise pixel data to be encoded at an encoder side or coded data associated with the current block to be decoded at a decoder side;when referencing filter-based prediction information from one or more neighbouring blocks, if at least one neighbouring block has a first MV (Motion Vector) or a first BV (Block Vector) :derive one or more cascaded vectors, wherein each cascaded vector is derived recursively as a sum of traced vectors starting from the first MV or the first BV;determine target filter-based prediction information based on said one or more cascaded vectors;determining a merge list comprising the target filter-based prediction information; andencode or decode the current block by using the merge list.

Citation Information

Patent Citations

  • Harmonization between local illumination compensation and inter prediction coding

    CN112868238A

  • Region based intra block copy

    CN114026853A

  • Constraints on locations of reference blocks for intra block copy prediction

    US20190208217A1

  • Method and apparatus deriving merge candidate from affine coded blocks for video coding

    WO2023134564A1