Methods and apparatus of local illumination compensation model derivation and inheritance with chained motion vector for video coding

By employing a chained motion vector-based local illumination compensation model, the method addresses the challenge of illumination compensation in video coding, enhancing efficiency and quality.

WO2025156991A1PCT designated stage expired Publication Date: 2025-07-31MEDIATEK INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/070920
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-02-07
Filing Date
2025-01-07
Publication Date
2025-07-31

AI Technical Summary

Technical Problem

Existing video coding systems face challenges in effectively compensating for local illumination variations, leading to suboptimal video quality due to the complexity and inefficiencies in deriving and applying illumination compensation models.

Method used

The method involves deriving and inheriting a chained motion vector-based local illumination compensation (LIC) model, where LIC flags and parameters are recursively determined and adjusted based on traced motion vectors, allowing for improved illumination compensation in video coding.

Benefits of technology

This approach enhances video coding efficiency by accurately modeling local illumination changes, resulting in improved video quality and reduced computational complexity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025070920_31072025_PF_FP_ABST
    Figure CN2025070920_31072025_PF_FP_ABST
Patent Text Reader

Abstract

A method and apparatus for video coding using LIC for the case of chained motion vector are disclosed. According to the method, a chained MV (Motion Vector) is derived recursively from a sum of traced MVs starting from a first MV. A chained LIC (Local Illumination Compensation) flag is derived for the chained MV. The current block is encoded or decoded by using coding information comprising the chained LIC flag. In another method, when a target LIC parameter for the current block is inherited from a previous coded block, a target LIC parameter is adjusted according to a scaling factor derived as a ratio of a first temporal distance between the current block and a reference block of the current block to a second temporal distance between the previous coded block and the reference block of the previous coded block.
Need to check novelty before this filing date? Find Prior Art

Description

METHODS AND APPARATUS OF LOCAL ILLUMINATION COMPENSATION MODEL DERIVATION AND INHERITANCE WITH CHAINED MOTION VECTOR FOR VIDEO CODINGCROSS 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 / 623,352, filed on January 22, 2024, U.S. Provisional Patent Application No. 63 / 550,684, filed on February 07, 2024. The U.S. Provisional Patent Applications are hereby incorporated by reference in their entireties.FIELD OF THE INVENTION

[0002] The present invention relates to video coding system. In particular, the present invention relates to local illumination compensation model derivation and inheritance with chained motion vector in a video coding system. 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 110, 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, is 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] I. RELATED ART

[0008] I. 1 Inter prediction

[0009] Details of inter prediction can be from JVET-T2002 (Jianle Chen, et al., “Algorithm description for Versatile Video Coding and Test Model 11 (VTM 11) ” , Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29, 20th Meeting, by teleconference, 7 –16 October 2020, Document: JVET-T2002) . The inter prediction mode uses various types of candidates, which are briefly reviewed as follows.

[0010] I. 1.1 Spatial candidate derivation

[0011] Spatial merge candidates are selected among candidates located in the positions depicted in Fig. 2.

[0012] I. 1.2 Temporal candidate derivation

[0013] The position for the temporal candidate is selected between candidates C0 and C1, as depicted in Fig. 3. If CU at position C0 is not available, is intra coded, or is outside of the current row of CTUs, position C1 is used. Otherwise, position C0 is used in the derivation of the temporal merge candidate.

[0014] I. 1.3 Non-adjacent spatial candidate

[0015] The pattern of spatial non-adjacent merge candidates is shown in Fig. 4. The distances between non-adjacent spatial candidates and the current coding block are based on the width and height of the current coding block. The line buffer restriction is not applied.

[0016] I. 1.4 History-based candidates

[0017] A history-based table is maintained to include the recently coded motion information, and the table is reset at the beginning of each CTU row. If the current list is not full after including spatial adjacent and non-adjacent candidates, the candidates in the history-based table are added into the merge list.

[0018] I. 2 Local Illumination Compensation (LIC)

[0019] LIC is an inter prediction technique to model local illumination variation between a current block and its prediction block as a function between the current block template and the reference block template. The parameters of the function can be denoted by a scale α and an offset β, which forms a linear equation, α*p [x] +β to compensate illumination changes, where p [x] is a reference sample pointed to by an MV at a location x in reference picture. When wrap-around motion compensation is enabled, the MV shall be clipped with wrap-around offset taken into consideration. Since α and β can be derived based on the current block template and the reference block template, no signalling overhead is required for them, except that an LIC flag is signalled for AMVP mode to indicate the use of LIC.

[0020] The local illumination compensation proposed in JVET-O0066 (Vadim Seregin, et al., “CE4-3.1a and CE4-3.1b: Unidirectional local illumination compensation with affine prediction” , Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11, 15th Meeting: Gothenburg, SE, 3–12 July 2019, Document: JVET-O0066) is used for uni-prediction inter CUs with the following modifications. ● Intra neighbour samples can be used in LIC parameter derivation; ● LIC is disabled for blocks with less than 32 luma samples; ● For both non-subblock and affine modes, LIC parameter derivation is performed based on the  template block samples corresponding to the current CU, instead of partial template block samples corresponding to first top-left 16x16 unit; ● Samples of the reference block template are generated by using MC with the block MV without  rounding it to integer-pel precision.

[0021] I. 3. Bi-Predictive LIC

[0022] In the method, the LIC mode is extended to bi-predictive CUs. Specifically, two different linear models are applied to the two prediction blocks which are then combined to generate the bi-prediction samples of the current CU: P′ [x, y] = (1-ω) ·p′0 [x, y] +ω·p′1 [x, y] , and p′0 [x, y] =α0·P0 [x, y] +β0, p′1 [x, y] =α1·P1 [x, y] +β1, where α0 and β0, and α1 and β1 indicate the scales and the offsets in L0 and L1, respectively; ω  indicates the weight (as indicated by the CU-level BCW index) for the weighted combination of L0 and L1 predictions. The same derivation scheme of the LIC mode is reused and applied in one iterative manner to derive the L0 and L1 LIC parameters. Specifically, the method firstly derives the L0 parameters by minimizing difference between L0 template prediction T0 and the template T and the samples in T are updated by subtracting the corresponding samples in T0. Then, the L1 parameters are calculated that minimizes the difference between L1 template prediction T1 and the updated template. Finally, the L0 parameter is refined again in the same way.

[0023] Following the current LIC design, one flag is signalled for AMVP bi-predicted CUs for the indication of the LIC mode while the flag is inherited for merge related inter CUs. Additionally, the LIC is disabled when decoder-side motion vector refinement (DMVR) (including multi-pass DMVR, adaptive DMVR and affine DMVR) and bi-directional optical flow (BDOF) is applied.

[0024] I. 4 OBMC with LIC

[0025] In the method, the OBMC is enabled for the inter blocks that are coded with the LIC mode. In order to reduce the complexity, the OBMC is only applied to the top and left CU boundaries while being always disabled for the boundaries of the internal sub-blocks of one LIC CU. Additionally, when one neighbouring block is coded with the LIC, its LIC parameters are applied to generate the corresponding prediction samples for the OBMC of the current block.

[0026] I. 5 Non-local Local Illumination Compensation (LIC)

[0027] In JVET-AF0191 (Xiaoyu Xiu, et al., “Non-EE2: Enhancements on local illumination compensation” , Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11, 32nd Meeting, Hannover, DE, 13–20 October 2023, Document: JVET-AF0191) , one non-local illumination compensation (NLIC) scheme is proposed. With the method, instead of using the template samples, the samples of the previously coded CUs are utilized for deriving the linear model used for the motion compensation of the current block. Specifically, after the reconstruction of each inter CU (except for GPM and SbTMVP CUs) , one linear model is derived by minimizing the difference between the reconstruction and prediction samples of the block. Then, for both regular and subblock merge modes, up to 6 NLIC candidates which are obtained from spatial adjacent and non-adjacent neighbours to current CU are inserted and reordered together with the existing candidates in the merge list. The first N candidates with the smallest SADs remain in the list with one index being signalled to indicate which candidate is selected. In the contribution, N is kept the same as ECM-10.0, i.e., 10 for regular merge mode and 15 for subblock merge mode. Additionally, the same pattern used for obtaining spatial non-adjacent neighbours in regular merge is reused to locate the corresponding non-adjacent NLIC candidates. When one NLIC candidate is selected, the associated linear model is used together with its motion information (e.g., MVs, CPMVs, reference picture indices and so forth) to generate the prediction samples of the CU.

[0028] I. 6 A LIC flag for Inter Prediction Merge Modes

[0029] In JVET-AF0194 (Y. Zhang, et al., “Non-EE2: On LIC flag in merge mode” , Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11, 32nd Meeting, Hannover, DE, 13–20 October 2023, Document: JVET-AF0194) , it was proposed to signal a LIC flag for inter-prediction merge modes, instead of inheriting the flag value from a merge candidate. The flag is signalled to indicate if the original inherited LIC flag or the reverse LIC flag value is used for a merge candidate. The flag is signalled for regular merge mode, affine merge mode and TM merge mode. Also, it is proposed to enable LIC with PU level BDMVR and BDOF.

[0030] I. 7 Auto-Relocated Block Vector Prediction

[0031] Auto-relocated block vector prediction (AR-BVP) is introduced in JVET-AG0091 (Na Zhang, et al., “EE2-1.8: Auto-relocated block vector prediction” , Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11, 33rd Meeting, by teleconference, 17–26 January 2024, Document: JVET-AG0091) for IBC merge / AMVP candidate list construction. As shown in Fig. 5, 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.

[0032] I. 8 Chained Motion Vector Prediction

[0033] A chained MV prediction (CMVP) into inter merge candidate list construction is introduced in JVET-AG0073 (. Kidani, et al., “Non-EE2: Chained motion vector prediction” , Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11, 33rd Meeting, by teleconference, 17–26 January 2024, Document: JVET-AG0073) . As shown in Fig. 6, 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) , where k and m indicate the number of merge index and trace depths of the CMVP. In the example  illustrated in Fig. 6, MVk / m corresponds to a chained vector with traced depth m, and MVk (0) , BVk (0) , MVk (1) , MVk(2), …, MVk (m) correspond to traced vectors. The reference block (i.e., RefBlk in Fig. 6) pointed by the chained vector is referred as a “chained reference block” in this disclosure.

[0034] In the present invention, methods and apparatus to determine chained LIC flag and model are disclosed. BRIEF SUMMARY OF THE INVENTION

[0035] A method and apparatus for video coding using LIC for the case of chained motion vector are disclosed. According to the 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. A chained MV (Motion Vector) is derived recursively from a sum of traced MVs starting from a first MV. A chained LIC (Local Illumination Compensation) flag is derived for the chained MV. The current block is encoded or decoded by using coding information comprising the chained LIC flag.

[0036] In one embodiment, the chained LIC flag is set to be true if one of LIC flags associated with the traced MVs is true. In another embodiment, the chained LIC flag is set to be true if all LIC flags associated with the traced MVs are true.

[0037] In one embodiment, a chained non-local LIC flag is derived for the chained MV. In one embodiment, if one or more of traced MVs have a non-local LIC model, the chained non-local LIC flag is set to be true. In one embodiment, if one of traced MVs has a bi-predictive non-local LIC model, the chained non-local LIC flag is set to be true. In one embodiment, if two of traced MVs have separate LIC models for list 0 and list 1, the chained non-local LIC flag is set to be false and the chained LIC flag is set to be true. In one embodiment, if two or more of traced MVs have a uni-predictive non-local LIC model or uni-predictive LIC model, one of the chained non-local LIC flag and the chained LIC flag is set to be false and the other of the chained non-local LIC flag and the chained LIC flag is set to be true.

[0038] In one embodiment, when the chained LIC flag is true, a chained LIC predictor is generated based on a chained LIC model and a chained reference block pointed by the chained MV, and the chained LIC predictor is used for said encoding or decoding the current block.

[0039] In one embodiment, if one of traced MVs is bi-predictive and a corresponding LIC flag is true, separate chained LIC models are derived for list 0 and list 1. In another embodiment, if one of traced MVs only has a uni-predictive non-local LIC model, the uni-predictive non-local LIC model is treated as a uni-predictive LIC model. In yet another embodiment, if one of traced MVs only has a bi-predictive non-local LIC model, the bi-predictive non-local LIC model is treated as a bi-predictive LIC with two LIC models identical to the bi-predictive non-local LIC model for list 0 and list 1.

[0040] In one embodiment, if a target LIC flag for a target traced MV is false, an identity LIC model is used as a target LIC model of the target traced MV. In one embodiment, if one of traced MVs has an inherited LIC model and a non-local LIC model, two merge candidates are generated, and wherein a first chained LIC parameter for one of the two merge candidates is derived from the inherited LIC model and a second chained LIC parameter for another of the two merge candidates is derived from the non-local LIC model. In another embodiment, if one of traced MVs has an inherited LIC model and a non-local LIC model, one merge candidate is generated, and wherein a chained LIC parameter for said one merge candidate is selected between the inherited LIC model and the non-local LIC model according to LIC model selection of a previous MV or TM cost calculated over a template region.

[0041] According to another method, when a target LIC parameter for the current block is inherited from a previous coded block, a target LIC parameter is adjusted according to a scaling factor derived as a ratio of a first temporal distance between the current block and a reference block of the current block to a second temporal distance between the previous coded block and the reference block of the previous coded block. The current block is encoded or decoded by using coding information comprising an adjusted target LIC parameter.

[0042] In one embodiment, the target LIC parameter is represented by a fixed part and a refinement part, the scaling factor is only used to adjustable the refinement part. In one embodiment, when constructing an LIC parameter merge list for the current block, respective LIC parameters of one or more candidates are adjusted by respective scaling factors before said one or more candidates are inserted into the LIC parameter merge list. In one embodiment, when constructing an LIC parameter merge list for the current block, inherited LIC parameters and adjusted inherited LIC parameters are inserted into the LIC parameter merge list.BRIEF DESCRIPTION OF THE DRAWINGS

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

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

[0045] Fig. 2 illustrates positions of spatial merge candidate.

[0046] Fig. 3 illustrates candidate positions for temporal merge candidate, C0 and C1.

[0047] Fig. 4 illustrates spatial neighbouring blocks used to derive the spatial merge candidates.

[0048] Fig. 5 illustrates an example of derivation process for Auto-Relocated Block Vector Prediction (AR-BVP) .

[0049] Fig. 6 illustrates an example of derivation of Chained Motion Vector Prediction (CMVP) candidate.

[0050] Fig. 7 illustrates an example of adjusting inherited LIC parameter according to a scaling factor w derived as the ratio of the temporal distance between the current block and the reference block of the current block and the temporal distance between the previous coded block and the reference block of the previous coded block.

[0051] Fig. 8 illustrates an example of deriving parameters for chained LIC model.

[0052] Fig. 9 illustrates another example of deriving parameters for chained LIC model.

[0053] Fig. 10 illustrates a flowchart of an exemplary video coding system that derives chained LIC flag for a chained motion vector according to an embodiment of the present invention.

[0054] Fig. 11 illustrates a flowchart of an exemplary video coding system that adjusts the inherited LIC parameter according to an embodiment of the present invention.DETAILED DESCRIPTION OF THE INVENTION

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

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

[0057] II. PROPOSED METHOD

[0058] II. 1 LIC Model Inheritance

[0059] II. 1.1 Inherit LIC information

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

[0061] The LIC information includes, but not limited to, template region selection type (e.g., LIC_T, LIC_L or LIC_LT) , size of template region, LIC model type (e.g., linear model ax+b, LIC with location term, or multiple-tap LIC) , multi-model flag, classification method for multi-model, threshold for multi-model, or model parameters.

[0062] II. 1.2 Refinement of inherited model parameters

[0063] In one embodiment, the parameters of inherited model can be further refined based on the inherited LIC information. The inherited LIC information can include how the inherited model is derived, such as the template region selection type and / or the size of template region. The refined parameters are derived based on local information. The refinement process can follow how the inherited model was derived and use the same type of template and / or the same size of template region.

[0064] In another embodiment, the parameters of inherited model can be further refined based on a pre-defined process. A pre-defined template type and a pre-defined size of template region are used for all types of inherited LIC model.

[0065] II. 1.3 Inheriting spatial neighbouring model parameters

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

[0067] II. 1.4 Inheriting temporal neighbouring model parameters

[0068] In another embodiment, if the current slice / picture is a non-intra slice / picture, the inherited model parameters can from the block in the previous coded slices / pictures.

[0069] II. 1.5 Inheriting non-adjacent spatial neighbouring models

[0070] In one embodiment, the inherited model parameters can be from blocks that are spatial neighbouring blocks. The models from blocks at pre-defined positions are added into the candidate list in a pre-defined order.

[0071] II. 1.6 Inheriting model parameters from the history table

[0072] In one embodiment, the inherited model parameters can be from a LIC model history table. The models in the history table can be added into the candidate list according to a pre-defined order.

[0073] II. 1.7 Constructing a candidate list

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

[0075] II. 1.8 Signalling the inherit candidate in the list

[0076] In one embodiment, an on / off flag is signalled to indicate if the current block inherits the LIC 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 if the LIC model inheritance method is allowed for the current sequence, picture, or slice.

[0077] In one embodiment, if the current block inherits the LIC model parameters from neighbouring blocks, the inherited candidate index is signalled. The index can be signalled (e.g., signalled using truncate unary code, Exp-Golomb code, or fix length code) for each colour component. For another example, the index of chroma component can be signalled and shared among Cb and Cr blocks.

[0078] II. 2 LIC in Inter Merge Mode

[0079] In one embodiment, in inter merge mode, LIC parameters of the reference block pointed by the inherited motion vector can be inherited for the current block. In this case, LIC parameters of the current block do not need to be re-derived again based on current block’s templates and referenced block’s templates.

[0080] In another embodiment, in inter merge mode, LIC parameters of the block where the inherited motion vector comes from can be inherited for the current block. In this case, LIC parameters of the current block do not need to be re-derived again based on current block’s templates and the referenced block’s templates.

[0081] In one embodiment, in inter merge mode, LIC parameters of the reference block pointed by the inherited motion vector can be used to guild the derivation of current block’s LIC parameters.

[0082] In one embodiment, in inter merge mode, LIC parameters of the block where inherited motion vector comes from can be used to guild the derivation of current block’s LIC parameters.

[0083] For example, a regularization term can be added to the derivation process of current block’s LIC parameters. The regularization term can be designed based on LIC parameters of the reference block pointed by the inherited motion vector or LIC parameters of the block where the inherited motion vector comes from.

[0084] For example, a regularization term multiplying with a lambda value can be added to the derivation process of current block’s LIC parameters. The lambda value can be designed based on current block’s prediction mode, current block size, QP value, or motion compensation stage (i.e., final motion compensation, template derivation for list reordering, template derivation for BCW index derivation, template derivation for prediction direction derivation)

[0085] In one embodiment, in inter merge mode, self-derived LIC parameters are derived. The self-derived LIC parameters are derived based on current block’s templates and reference block’s templates. The first cost is calculated based on the current block’s templates and the first refined reference block’s templates. The first refined reference block’s templates are derived based on self-derived LIC parameters. The second cost is calculated based on the current block’s templates and the second refined reference block’s templates. The second refined reference block’s templates are derived based on LIC parameters of the reference block pointed by the inherited motion vector or LIC parameters of the block where inherited motion vector comes from. After that, the first cost and the second cost multiplied with a ratio are compared.

[0086] If the first cost is smaller than the second cost multiplied with a ratio, self-derived LIC parameters will be used to refine current block. Otherwise, if the second cost multiplied with a ratio is smaller than the first cost, the LIC parameters of the reference block pointed by the inherited motion vector or LIC parameters of the block where the inherited motion vector comes from are used to refine the current block.

[0087] In that, the ratio can be smaller than 1 to favour inherited LIC parameters. Or the ratio can be larger than 1 to favour self-derived LIC parameters. Or the ratio can be equal to 1 for a fair comparison.

[0088] In one embodiment, in inter merge mode, a CU-level flag is signalled to indicate self-derived LIC parameters are used or inherited LIC parameters are used.

[0089] In one embodiment, in inter merge mode, a self-derived LIC parameters are derived. The self-derived LIC parameters are derived based on current block’s templates and reference block’s templates. After that, the self-derived LIC parameters and inherited LIC parameters will be blended with a weighing pair. In that, the weighting pair can be designed based on current block’s prediction mode, current block size, QP value, or motion compensation stage (i.e., final motion compensation, template derivation for list reordering, template derivation for BCW index derivation, template derivation for prediction direction derivation)

[0090] In one embodiment, if the reference block is a bi-prediction coded block, and the current block is an uni-prediction coded block. The corresponding LIC parameters will be referenced for the current block.

[0091] For example, if the current block is predicted from a reference picture in list 0. LIC parameters of L0 of the bi-prediction reference block will be referenced for current picture.

[0092] In one embodiment, if the reference block is a bi-prediction coded block, and the current block is an uni-prediction coded block. The corresponding LIC parameters will be referenced for the current block. And the referenced LIC parameters will be further refined.

[0093] For example, the current block’s templates and reference block’s templates will be used to refine the inherited LIC parameters.

[0094] In one embodiment, if the reference block is a bi-prediction coded block, and the current block is an uni-prediction coded block. The reference block’s LIC parameters will not be referenced by the current block. Self-derived LIC parameters will be used for the current block.

[0095] In one embodiment, if the reference block is an uni-prediction coded block, and the current block is a bi-prediction coded block. The reference block’s LIC parameters will not be referenced by the current block. Self-derived LIC parameters will be used for the current block.

[0096] In one embodiment, if the reference block is an uni-prediction coded block, and the current block is a bi-prediction coded block. The referenced LIC parameters will be used on the corresponding prediction side. And the other side’s LIC parameters will be further derived by using current block’s templates and reference block’s templates.

[0097] In one embodiment, if the reference block is an uni-prediction coded block, and the current block is a bi-prediction coded block. The referenced LIC parameters will be used on the corresponding prediction side (the first prediction side) . And the second prediction side’s LIC parameters will be further derived by using current block’s templates and reference block’s templates. After that, the first prediction side’s LIC parameters will be further refined again.

[0098] In one embodiment, if the reference block is predicted from L0 and the current block is predicted from L1. The LIC parameters of reference block can be directly referenced by the current block.

[0099] In one embodiment, if the reference block is predicted from L0 and the current block is predicted from L1. The self-derived LIC parameters will be used. The LIC parameters of reference block will not be used for the current block.

[0100] In one embodiment, if the reference block is predicted from L0 and the current block is predicted from L1. The LIC parameters of reference block can be referenced by the current block, and they will be further refined by using reference block’s templates and current block’s templates.

[0101] In one embodiment, the above-mentioned methods are used for motion compensation only.

[0102] In one embodiment, the above-mentioned methods are used for list reordering, BCW index refinement, or prediction direction refinement.

[0103] In one embodiment, the above-mentioned methods are used for motion compensation only, and for list reordering, BCW index refinement, or prediction direction refinement, LIC are disabled.

[0104] In one embodiment, when doing list reordering, BCW index refinement, BVD prediction or prediction direction refinement, LIC are disabled.

[0105] II. 2 LIC Merge Mode

[0106] In one embodiment, a LIC merge list is generated which consisting of spatial neighbouring block’s LIC parameters, non-adjacent neighbouring block’s LIC parameters, temporal neighbouring block’s LIC parameters, and history-based block’s LIC parameters as mentioned in the previous section. In addition, default LIC parameters can also be included into the LIC merge list.

[0107] For example, the default LIC parameters are generated by pre-defined some alpha values. After that, the reference templates of reference block and current templates of the current block are used to derive the corresponding beta values.

[0108] For example, the pre-defined alpha values are closed to 1. For another example, the pre-defined alpha values can be negative or positive.

[0109] In one embodiment, if the reference block is coded by multi-model LIC, more than one LIC models will be inserted into LIC merge list.

[0110] In one embodiment, if the reference block is coded with slope-adjustment LIC, the adjusted parameters will be inserted into LIC merge list.

[0111] In one embodiment, in inter AMVP mode, a CU-level flag is signalled to indicate whether LIC merge mode is used or not. If it is true, an index will be further signalled to indicate which LIC model in LIC merge list is used.

[0112] In one embodiment, in inter merge mode, a CU-level flag is signalled to indicate whether LIC merge mode is used or not. If it is true, an index will be further signalled to indicate which LIC model in LIC merge list is used.

[0113] In one embodiment, when doing MVP list derivation, LIC is disabled.

[0114] In one embodiment, when doing block level reference picture list reordering, LIC is disabled.

[0115] In one embodiment, when doing BVD prediction, LIC is disabled.

[0116] In another embodiment, after decoding a block, one or more than one LIC models of the current block is derived and stored for later reconstruction process of to-be-coded blocks using inheriting neighbours model parameter. For example, if the current block is coded by LIC prediction, the first LIC model used for the current block is stored, and after the reconstruction of the current block, the second LIC model of the current block are derived by using the reconstruction samples from the current block and reference region (e.g., identified by the current block size and motion vector) . Later, if another block is predicted by using inheriting neighbours LIC model parameters, the LIC model of another block can be inherited from the stored first and second LIC models of the current block. In other words, the stored first and second LIC models of the current block can be the candidates in the LIC merge list of another block.

[0117] II. 4 LIC for Improved Merge Mode

[0118] In one embodiment, an LIC merge list is generated including more than one referenced block LIC parameters. In this case, the referenced blocks can be spatial candidates, non-adjacent candidates, history-based candidates, and pre-defined default candidates.

[0119] In one embodiment, the reference picture index is checked when inserting an LIC merge candidate into LIC merge list. Only when an LIC merge candidate comes from a reference block with the same reference picture index as the current block, it can be inserted into LIC merge candidate list.

[0120] For example, if the current block is bi-prediction, reference picture index L0 (refIdxL0) and reference picture index L1 (refIdxL1) will be checked. Only when both refIdxL0 and refIdxL1 of the referenced block are the same as refIdxL0 and refIdxL1 of the current block, the LIC merge candidate of the referenced block can be inserted into the LIC merge candidate list. In this case, the reference block only can be a bi-prediction block.

[0121] In one embodiment, the reference block’s referenced picture POC is checked when inserting an LIC merge candidate into LIC merge candidate list. Only when an LIC merge candidate comes from a reference block with the same POC as the current block, it can be inserted into LIC merge candidate list.

[0122] For example, if the current block is a bi-prediction block, refPicPocL0 and refPicPocL1 will be checked. Only when refPicPocL0 of reference block is the same as refPicPocL0 or refPicPocL1 of the current block, and refPicPocL1 of reference block is the same as refPicPocL0 or refPicPocL1, it can be inserted into the LIC merge candidate list.

[0123] In one embodiment, two LIC merge lists will be generated. The first LIC merge list is used to store referenced LIC parameters of L0. The second LIC merge list is used to store referenced LIC parameters of L1. For a bi-prediction reference block, the LIC parameters of L0 are stored in the first LIC merge list, and LIC parameters of L1 are stored in the second LIC merge list.

[0124] In this case, if the current block is a bi-prediction block, a candidate in the first LIC merge list will be used to refine L0 predictor of the current block, and a candidate in the second LIC merge list will be used to refine L1 predictor of the current block.

[0125] If the current block is a uni-prediction block from L0, a candidate in the first LIC merge list will be used to refine L0 predictor of the current block.

[0126] If the current block is a uni-prediction block from L1, a candidate in the second LIC merge list will be used to refine L1 predictor of the current block.

[0127] In one embodiment, two indices are signalled in the bitstream to indicate the first candidate used to refine L0 predictor of the current block from the first LIC merge list and the second candidate used to refine L1 predictor of the current block from the second LIC merge list.

[0128] In one embodiment, one index is signalled in the bitstream to indicate the pair of first candidate used to refine L0 predictor of the current block, and the second candidate used to refine L1 predictor of the current block. A pre-defined list is designed including M combination pair of candidates from two list. The signalled index is used to indicate one pair from the pre-defined list.

[0129] In one embodiment, no additional syntax is signalled in the bitstream to indicate the first and second candidate pair used to refine L0 predictor and L1 predictor. Instead, a TM reordering is performed on both the encoder and decoder to check all combinations and reorder the list. After that, the best combination can be derived. The best combination will be used to indicate the first candidate used to refine L0 predictor of the current block from the first LIC merge list and the second candidate used to refine L1 predictor of the current block from the second LIC merge list.

[0130] In one embodiment, if the current block is a bi-prediction block, L0 predictor is predicted from refPicL0, and L1 predictor is predicted from refPicL1, two LIC merge lists will be generated. The first LIC merge list is used to store referenced LIC parameters coming from reference block predicted from refPicL0. The second LIC merge list is used to store referenced LIC parameters coming from reference block predicted from refPicL1. In this case, a candidate in the first LIC merge list will be used to refine L0 predictor of the current block, and a candidate in the second LIC merge list will be used to refine L1 predictor of the current block.

[0131] In this case, the reference block where referenced LIC parameters are used can be a uni-prediction block or a bi-prediction block.

[0132] In one embodiment, if the current block is an L0 uni-prediction block, L0 predictor is predicted from refPicL0. An LIC merge list is used to store referenced LIC parameters coming from reference block predicted from refPicL0. In this case, a candidate in the LIC merge list will be used to refine L0 predictor of the current block.

[0133] In this case, the reference block which referenced LIC parameters are used can be a uni-prediction block or a bi-prediction block.

[0134] In one embodiment, if the current block is an L1 uni-prediction block, L1 predictor is predicted from refPicL1. An LIC merge list is used to store referenced LIC parameters coming from reference block predicted from refPicL1. In this case, a candidate in the LIC merge list will be used to refine L1 predictor of the current block.

[0135] In this case, the reference block which referenced LIC parameters are used can be a uni-prediction block or a bi-prediction block.

[0136] II. 5 Inherited LIC Parameter Adjustment

[0137] In one embodiment, if the current block is coded by LIC mode and inherits the LIC parameters from the previous coded block, the inherited LIC parameters can be adjusted according to the temporal distance between the current block and the reference block of the current block and the temporal distance between the previous coded block and the reference block of the previous coded block.

[0138] For example, the POC of the current block is i, the POC of the reference block of the current block is j, and the POC of the reference block of the neighbor block is k. The LIC model of the current block is inherited from the neighbor block which is shown in the following formula: pred=a0*ref+b0.

[0139] The adjusted inherited LIC parameters (a1, b1) can be derived by multiplying the inherited LIC parameters (a0, b0) and a scaling factor w. The scaling factor w can be the ratio of the temporal distance between the current block and the reference block of the current block and the temporal distance between the previous coded block and the reference block of the previous coded block as shown in Fig. 7. predadj= (a0*ref+b0)*w= (a0*w)*ref+ (b0*w) =a1*ref+b1

[0140] For another example, only the LIC parameter of refinement part (a′0, b0) of the LIC model can be adjusted by the scaling factor w. The inherited LIC model can be rewritten as the following formula: pred=a0*ref+b0= (1+a′0)*ref+b0=ref+a′0*ref+b0.

[0141] In the above example, a0 is represented as (1+a′0) , where “1” is a fixed part and a′0 is a refinement part. The scaling factor w is only used to adjust the refinement part. The adjusted inherited LIC parameter (a1, b1) can be derived by multiplying the refinement part of inherited LIC parameters (a′0, b0) and a scaling factor w as shown in the following formula. predadj=ref+ (a′0*ref+b0)*w= (1+a′0*w)*ref+ (b0*w)  =a1*ref+b1

[0142] In one embodiment, when constructing the LIC parameter merge list for the current block, the LIC parameters of all candidates should be adjusted by the method mentioned above before inserting into the LIC parameter merge list.

[0143] In another embodiment, when constructing the LIC parameter merge list for the current block, both the inherited LIC parameters and the adjusted inherited LIC parameters can be inserted into the LIC parameter merge list.

[0144] In one embodiment, if the current block is coded by LIC mode and inherits an adjusted LIC model using the method mentioned above, the adjusted inherited LIC parameters can be directly used to generate the prediction of the current block.

[0145] In another embodiment, if the current block is coded by LIC mode and inherits an adjusted LIC model using the method mentioned above, only the adjusted scaling parameter a can be inherited. For the offset parameter b, it can be derived using the adjusted inherited scaling parameter a, the template of the current block and the template of the reference block.

[0146] In another embodiment, if the current block is coded by LIC mode and inherits an adjusted LIC model using the method mentioned above, the adjusted inherited LIC parameters can be used in the regularization term in the MSE formula for deriving LIC model. For example, the adjusted inherited LIC parameters are (a1, b1) , and two regularization terms can be added into the MSE formula for guiding the derivation of LIC model as following: MSE=∑|rec- (aref+b) |2+λ0|a-a1|2+λ1|b-b1|2, where (a, b) are the LIC parameters to be derived, λ0 and λ1 are the factor of two regularization  terms.

[0147] II. 6 LIC Merge Mode with Chained Motion Vector

[0148] The concept of chained motion vector (also called auto-relocated motion vector or cascaded motion vector) was first proposed by JVET-AF0129 to improve the IBC mode. The chained motion vector MV0, 2 can be derived by adding the motion vector of the current block MV0, 1 and the motion vector of the reference block of the current block MV1, 2. MV0, 2=MV0, 1+MV1, 2.

[0149] Similarly, the chained motion vector MV0, N can be derived by adding more motion vectors as the following formula: MV0, N=MV0, 1+MV1, 2+…+MVN-1, N.

[0150] II. 6.1 Chained LIC flag and chained Non-local LIC flag setting

[0151] In one embodiment, in inter merge mode, a candidate with chained motion vector can also be inserted into merge candidate list, and the LIC flag of all used blocks can be combined into one chained LIC flag and be stored with the chained motion vector.

[0152] For example, the chained LIC flag is set to 1 (or “true” ) if at least one of used block has an LIC flag equal to 1. Otherwise, the chained LIC flag is set to 0 (or “false” ) . When the chained LIC flag is 1 or true, the LIC is applied to the current block using a reference block pointed by the chained MV.

[0153] For another example, the chained LIC flag is set to 1 if the LIC flag of all used blocks is equal to 1. Otherwise, the chained LIC flag is set to 0.

[0154] In one embodiment, in inter merge mode, a candidate with chained motion vector can be inserted into merge candidate list. If one of the multiple motion vectors being combined has a non-local LIC model, the chained non-local LIC flag can be set to 1 and be stored with the chained motion vector.

[0155] In another embodiment, in inter merge mode, a candidate with chained motion vector can be inserted into merge candidate list. If multiple motion vectors being combined have non-local LIC models, the chained non-local LIC flag can be set to 1 and be stored with the chained motion vector.

[0156] In another embodiment, in inter merge mode, a candidate with chained motion vector can be inserted into merge candidate list. If at least one of the multiple motion vectors being combined has a bi-predictive non-local LIC models, the chained non-local LIC flag can be set to 1 and be stored with the chained motion vector. Otherwise, the chained non-local LIC flag can be set to 0.

[0157] In another embodiment, in inter merge mode, a candidate with chained motion vector can be inserted into merge candidate list. If there are two separate chained LIC models for list 0 and list 1 after applying the method mentioned in the session entitled “Chained LIC model” , the chained non-local LIC flag can be set to 0 and the chained LIC flag can be set to 1.

[0158] In another embodiment, in inter merge mode, a candidate with chained motion vector can be inserted into merge candidate list. If multiple motion vectors being combined have uni-predictive non-local LIC models or uni-predictive LIC models, the chained LIC flag can be set to 1 and the chained non-local LIC flag can be set to 0, or the chained LIC flag can be set to 0 and the chained non-local LIC flag can be set to 1.

[0159] II. 6.2 Chained LIC model

[0160] In one embodiment, in inter merge mode, a candidate with a chained motion vector can also be inserted into merge candidate list, and the LIC parameters of all used block can be combined into one chained LIC parameter and be stored with the chained motion vector.

[0161] Fig. 8 illustrates an example of chained LIC model derivation, where the neighbour block has a motion vector MV0, 1 pointing to a block in POC j, and an LIC parameter set (a0, 1, b0, 1) for compensating the illuminance of the block in POC j. The pointed block in POC j has a motion vector MV1, 2 pointing to a block in POC k, and an LIC parameter set (a1, 2, b1, 2) for compensating the illuminance of the block in POC k. The chained MV0, 2 is derived by adding two motion vectors MV0, 2=MV0, 1+MV1, 2. The chained LIC parameter set (a0, 2, b0, 2) can be derived by the following formula: pred=a0, 1(a1, 2*ref+b1, 2)+b0, 1=(a0, 1a1, 2)*ref+(a0, 1b1, 2+b0, 1)  =a0, 2*ref+b0, 2

[0162] The chained motion vector MV0, 2 and the chained LIC parameter set (a0, 2, b0, 2) can be combined into one chained merge candidate and be inserted into the inter merge list.

[0163] In one embodiment, in inter merge mode, a candidate with chained MV can also be inserted into merge candidate list, and the LIC parameters of all used block can be combined into one chained LIC parameter and be stored with the chained MV. If one of the combined MVs is bi-predictive and the LIC flag is true, the chained LIC parameter derivation method mentioned above can also be used, and a bi-predictive chained LIC parameters can be obtained and be stored with the chained MV.

[0164] Fig. 9 illustrates another example of chained LIC model derivation with bi-predictive motion vector, where the neighbour block has a motion vector MV0, 1 pointing to a block in POC j, and an LIC parameter set (a0, 1, b0, 1) for compensating the illuminance of the block in POC j. The pointed block in POC j has a bi-predictive motion vector set (MV1, 2 [0] , MV1, 2 [1] ) pointing to a block in POC k0 and a block in POC k1, and a bi-predictive LIC parameter set ((a1, 2 [0] , b1, 2 [0] ) , (a1, 2 [1] , b1, 2 [1] ) )for compensating the illuminance of the block in POC k0 and the block in POC k1.

[0165] If the chained motion vectors (MV0, 2 [0] , MV0, 2 [1] ) are derived by adding two motion vectors (MV0, 2 [0] , MV0, 2 [1] )=(MV0, 1+MV1, 2 [0] , MV0, 1+MV1, 2 [1] ) , the chained LIC parameter set (a0, 2 [0] , b0, 2 [0] ) for list 0 can be derived by the following formula: pred=a0, 1(a1, 2 [0] ref+b1, 2 [0] )+b0, 1 = (a0, 1a1, 2 [0] )*ref+(a0, 1b1, 2 [0] +b0, 1)=a0, 2 [0] ref+b0, 2 [0]

[0166] Same derivation method can be applied to the LIC models of list 1 to derive the chained LIC parameter set (a0, 2 [1] , b0, 2 [1] ) for list 1:

[0167] For the chained candidates with more than two combined MVs, the same derivation method of chained LIC parameter can also be applied.

[0168] In one embodiment, in inter merge mode, a candidate with chained MV can also be inserted into merge candidate list, and the LIC parameters of all used block can be combined into one chained LIC parameter and be stored with the chained MV. If one of the combined MVs only has a non-local LIC model and it is uni-predictive non-local LIC, it can be treated as a uni-predictive LIC model, and the same chained LIC parameter derivation method can be used.

[0169] In one embodiment, in inter merge mode, a candidate with chained MV can also be inserted into merge candidate list, and the LIC parameters of all used block can be combined into one chained LIC parameter and be stored with the chained MV. If one of the combined MVs only has a non-local LIC model and it is bi-predictive non-local LIC, it can be treated as a bi-predictive LIC with two LIC models identical to that bi-predictive non-local LIC model for list 0 and list 1, and then the chained LIC parameter derivation method mentioned above can be used.

[0170] In one embodiment, in inter merge mode, a candidate with chained MV can also be inserted into merge candidate list, and the LIC parameters of all used block can be combined into one chained LIC parameter and be stored with the chained MV. If one of the combined MVs only has a non-local LIC model and it is bi-predictive non-local LIC, the bi-predictive non-local LIC should be the last, and the chained MV should contain the list 0 MV and the list 1 MV in the combined MV, the chained bi-predictive non-local LIC parameter can be generated.

[0171] In one embodiment, in inter merge mode, a candidate with chained MV can also be inserted into merge candidate list, and the LIC parameters of all used block can be combined into one chained LIC parameter and be stored with the chained MV. If the LIC flag of one of the combined MVs is false, the LIC model of this MV used for deriving the chained LIC parameter can be set to be an identity LIC model (e.g., the scaling parameter is set to 1 and the bias parameter is set to 0) , and then the chained LIC parameter derivation method mentioned above can be used.

[0172] In one embodiment, in inter merge mode, a candidate with chained MV can also be inserted into merge candidate list, and the LIC parameters of all used block can be combined into one chained LIC parameter and be stored with the chained MV. If one of the combined MVs has an inherited LIC model and a non-local LIC model, two merge candidates can be generated. The first candidate is the chained MV paired with the chained LIC parameter derived by the inherited LIC model. The second candidate is the chained MV paired with the chained LIC parameter derived by the non-local LIC model.

[0173] In one embodiment, in inter merge mode, a candidate with chained MV can also be inserted into merge candidate list, and the LIC parameters of all used block can be combined into one chained LIC parameter and be stored with the chained MV. If one of the combined MVs has an inherited LIC model and a non-local LIC model, one merge candidates can be generated. The LIC model selection between inherited LIC model and non-local LIC model can depend on the LIC model selection of the previous MV.

[0174] For example, the neighbour block has a motion vector MV0, 1, and only has an inherited LIC model. The pointed block in POC j has a motion vector set MV1, 2, and has an inherited LIC model and a non-local LIC model. Since MV0, 1 only has inherited LIC model, MV1, 2 will also select the inherited LIC model for deriving the chained LIC parameters.

[0175] In one embodiment, in inter merge mode, a candidate with chained MV can also be inserted into merge candidate list, and the LIC parameters of all used block can be combined into one chained LIC parameter and be stored with the chained MV. If one of the combined MVs has an inherited LIC model and a non-local LIC model, one merge candidates can be generated. The LIC model selection between inherited LIC model and non-local LIC model can depend on the TM cost calculated over the template region.

[0176] In one embodiment, in inter merge mode, a candidate with chained MV can also be inserted into merge candidate list, and the LIC parameters of all used block can be combined into one chained LIC parameter and be stored with the chained MV. If one of the combined MVs has an inherited LIC model and a non-local LIC model, one merge candidates can be generated by using inherited LIC model (or non-local LIC model) .

[0177] In one embodiment, if the current block selects the chained merge candidate, the chained LIC parameter set (a0, N, b0, N) can be directly used to generate the prediction of the current block.

[0178] In another embodiment, if the current block selects the chained merge candidate, only the scaling parameter a0, N of the chained LIC parameter set (a0, N, b0, N) can be inherited. For the offset parameter b, it can be derived using the scaling parameter a0, N of the chained LIC parameter set, the template of the current block and the template of the reference block.

[0179] In another embodiment, if the current block selects the chained merge candidate, the chained LIC parameter set (a0, N, b0, N) can be used in the regularization term in the MSE formula for deriving LIC model. For example, two regularization terms can be added into the MSE formula for guiding the derivation of LIC model as following: MSE=Σ|rec- (aref+b) |2+λ0|a-a0, N|2+λ1|b-b0, N|2, where (a, b) are the LIC parameters to be derived, λ0 and λ1 are the factors of two regularization  terms.

[0180] In one embodiment, there is an LIC parameter merge list for only storing the LIC parameter sets used in the previous coded blocks, the chained LIC parameter set mentioned above can be also included. These LIC parameter merge list with chained LIC parameter set can be used in all inter coding tools.

[0181] II. 7 Adaptive LIC Offset for LIC Slope Adjustment

[0182] In one invention, the LIC offset is selected from a candidate set which is predefined or adaptively determined according to the CU size, slice type, inter prediction indicator, IMV modes, colour component, motion information, prediction mode, the LIC parameter difference between the current and neighbouring blocks, the correlation between template samples and the samples in the CU or any other auxiliary information. In one embodiment, the candidate set is formed by 5 offset candidates, which are {-1 / 8, -1 / 16, 0, 1 / 16, 1 / 8} . The index of the offset candidate is coded using three bins with independent context models.

[0183] In one invention, if bi-predictive LIC is enabled, the LIC offset is used to update the LIC parameter of each iteration or some of the iterations. In one embodiment, the offset is used to update the LIC parameter of the first or last iteration of bi-predictive LIC.

[0184] Any of the foregoing proposed methods of chained LIC flag derivation or LIC parameter adjustment can 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 inter prediction module of an encoder and / or a decoder. Alternatively, any of the proposed methods can be implemented as a circuit coupled to inter prediction module of the encoder and / or the decoder. With reference to the encoder and decoder in Fig. 1A and Fig. 1B, any of the proposed candidate derivation method can be implemented in an Inter coding module (e.g. MC 152 in Fig. 1B) in a decoder or an Inter coding module (e.g. Inter Pred. 112 in Fig. 1A) in an encoder. Any of the proposed methods can also be implemented as a circuit coupled to the intra / inter coding module at the decoder or the encoder. However, the decoder or encoder may also use additional processing unit to implement the proposed methods. While the Inter Pred. units (e.g. unit 112 in Fig. 1A and unit 152 in Fig. 1B) are shown as individual processing units, they may correspond to executable software or firmware codes stored on a media, such as hard disk or flash memory, for a CPU (Central Processing Unit) or programmable devices (e.g. DSP (Digital Signal Processor) or FPGA (Field Programmable Gate Array) ) .

[0185] Fig. 10 illustrates a flowchart of an exemplary video coding system that derives chained LIC flag for a chained motion 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. 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 the method, input data associated with a current block is received in step 1010, 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. A chained MV (Motion Vector) is derived recursively from a sum of traced MVs starting from a first MV in step 1020. A chained LIC (Local Illumination Compensation) flag is derived for the chained MV in step 1030. In step 1040, the current block is encoded or decoded by using coding information comprising the chained LIC flag.

[0186] Fig. 11 illustrates a flowchart of an exemplary video coding system that adjusts the inherited LIC parameter according to an embodiment of the present invention. According to the method, input data associated with a current block is received in step 1110, 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 a target LIC parameter for the current block is inherited from a previous coded block, a target LIC parameter is adjusted according to a scaling factor derived as a ratio of a first temporal distance between the current block and a reference block of the current block to a second temporal distance between the previous coded block and the reference block of the previous coded block in step 1120. The current block is encoded or decoded by using coding information comprising an adjusted target LIC parameter.

[0187] The flowcharts shown are 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.

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

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

[0190] 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;deriving a chained MV (Motion Vector) recursively from a sum of traced MVs starting from a first MV;deriving a chained LIC (Local Illumination Compensation) flag for the chained MV; andencoding or decoding the current block by using coding information comprising the chained LIC flag.2.The method of Claim 1, wherein the chained LIC flag is set to be true if one of LIC flags associated with the traced MVs is true.3.The method of Claim 1, wherein the chained LIC flag is set to be true if all LIC flags associated with the traced MVs are true.4.The method of Claim 1, wherein a chained non-local LIC flag is derived for the chained MV.5.The method of Claim 4, wherein if one or more of traced MVs have a non-local LIC model, the chained non-local LIC flag is set to be true.6.The method of Claim 4, wherein if one of traced MVs has a bi-predictive non-local LIC model, the chained non-local LIC flag is set to be true.7.The method of Claim 4, wherein if two of traced MVs have separate LIC models for list 0 and list 1, the chained non-local LIC flag is set to be false and the chained LIC flag is set to be true.8.The method of Claim 4, wherein if two or more of traced MVs have a uni-predictive non-local LIC model or uni-predictive LIC model, one of the chained non-local LIC flag and the chained LIC flag is set to be false and the other of the chained non-local LIC flag and the chained LIC flag is set to be true.9.The method of Claim 1, wherein when the chained LIC flag is true, a chained LIC predictor is generated based on a chained LIC model and a chained reference block pointed by the chained MV, and the chained LIC predictor is used for said encoding or decoding the current block.10.The method of Claim 1, wherein if one of traced MVs is bi-predictive and a corresponding LIC flag is true, separate chained LIC models are derived for list 0 and list 1.11.The method of Claim 1, wherein if one of traced MVs only has a uni-predictive non-local LIC model, the uni-predictive non-local LIC model is treated as a uni-predictive LIC model.12.The method of Claim 1, wherein if one of traced MVs only has a bi-predictive non-local LIC model, the bi-predictive non-local LIC model is treated as a bi-predictive LIC with two LIC models identical to the bi-predictive non-local LIC model for list 0 and list 1.13.The method of Claim 1, wherein if a target LIC flag for a target traced MV is false, an identity LIC model is used as a target LIC model of the target traced MV.14.The method of Claim 1, wherein if one of traced MVs has an inherited LIC model and a non-local LIC model, two merge candidates are generated, and wherein a first chained LIC parameter for one of the two merge candidates is derived from the inherited LIC model and a second chained LIC parameter for another of the two merge candidates is derived from the non-local LIC model.15.The method of Claim 1, wherein if one of traced MVs has an inherited LIC model and a non-local LIC model, one merge candidate is generated, and wherein a chained LIC parameter for said one merge candidate is selected between the inherited LIC model and the non-local LIC model according to LIC model selection of a previous MV or TM cost calculated over a template region.16.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;derive a chained MV (Motion Vector) recursively from a sum of traced MVs starting from a first MV;derive a chained LIC (Local Illumination Compensation) flag for the chained MV; andencode or decode the current block by using coding information comprising the chained LIC flag.17.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 a target LIC parameter for the current block is inherited from a previous coded block, adjusting a target LIC parameter according to a scaling factor derived as a ratio of a first temporal distance between the current block and a reference block of the current block to a second temporal distance between the previous coded block and the reference block of the previous coded block; andencoding or decoding the current block by using coding information comprising an adjusted target LIC parameter.18.The method of Claim 17, wherein the target LIC parameter is represented by a fixed part and a refinement part, the scaling factor is only used to adjustable the refinement part.19.The method of Claim 17, wherein when constructing an LIC parameter merge list for the current block, respective LIC parameters of one or more candidates are adjusted by respective scaling factors before said one or more candidates are inserted into the LIC parameter merge list.20.The method of Claim 17, wherein when constructing an LIC parameter merge list for the current block, inherited LIC parameters and adjusted inherited LIC parameters are inserted into the LIC parameter merge list.21.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 a target LIC parameter for the current block is inherited from a previous coded block, adjust a target LIC parameter according to a scaling factor derived as a ratio of a first temporal distance between the current block and a reference block of the current block to a second temporal distance between the previous coded block and the reference block of the previous coded block; andencode or decode the current block by using coding information comprising an adjusted target LIC parameter.

Citation Information

Patent Citations

  • Systems and methods of performing improved local illumination compensation

    US20180098086A1

  • Encoder, decoder, encoding method, and decoding method

    US20200084470A1

  • Techniques of multi-hypothesis motion compensation

    US20200304807A1