Methods and apparatus of multi-model or multi-tap local illumination compensation in video coding systems

Multi-tap Local Illumination Compensation with multi-model grouping and filtering addresses inefficiencies in existing video coding systems, enhancing prediction accuracy and video quality by applying distinct LIC models to different regions within a block.

WO2025214385A1PCT designated stage Publication Date: 2025-10-16MEDIATEK INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/087922
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-04-19
Filing Date
2025-04-09
Publication Date
2025-10-16

AI Technical Summary

Technical Problem

Existing video coding systems face challenges in efficiently handling local illumination variations, leading to suboptimal encoding and decoding processes, particularly in merge modes, due to limitations in local illumination compensation (LIC) techniques.

Method used

Implementing multi-tap Local Illumination Compensation (LIC) with multi-model grouping and filtering, where input data is split into multiple regions, and different LIC models are applied to each region, followed by optional filtering to reduce discontinuities, using various filter shapes and inheritance of candidates across blocks.

Benefits of technology

Enhances encoding and decoding efficiency by improving prediction accuracy and reducing artifacts, thereby optimizing video quality and compression performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025087922_16102025_PF_FP_ABST
    Figure CN2025087922_16102025_PF_FP_ABST
Patent Text Reader

Abstract

A method and apparatus for video coding for using LIC (Local Illumination Compensation) 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. Whether an LIC (Local Illumination Compensation) flag is signalled or parsed for merge mode is determined for the current block. In response to the LIC flag being signalled or parsed for the merge mode for the current block: a plurality of multi-tap LIC candidates are determined; the plurality of multi-tap LIC candidates with different filter shapes are inserted into different merge lists respectively; and the current block is encoded or decoded by using coding information comprising the different merge lists.
Need to check novelty before this filing date? Find Prior Art

Description

METHODS AND APPARATUS OF MULTI-MODEL OR MULTI-TAP LOCAL ILLUMINATION COMPENSATION IN VIDEO CODING SYSTEMSCROSS 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 / 632,033, filed on April 10, 2024and U.S. Provisional Patent Application No. 63 / 636,161, filed on April 19, 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 the interaction of LIC flag for merge mode and multi-tap LIC candidates.BACKGROUND

[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] PRIOR ART

[0008] Local Illumination Compensation (LIC)

[0009] LIC is an inter prediction technique to model local illumination variation between the current block and its prediction block as a function between the current block template and reference block template. The parameters of the function can be denoted by a scale α and an offset β, which forms a linear equation, as α*p [x] +β, to compensate illumination changes as shown in Fig. 2, where p [x] is a reference sample pointed to by MV at a location x on reference picture. Since α and β can be derived based on the current block template (310) and reference block template (320) as shown in Fig. 3, no signalling overhead is required for them, except that an LIC flag is signalled for AMVP mode to indicate the use of LIC.

[0010] LIC is applied in the following configurations: ● When in-loop luma reshaping is used, the inverse reshaping is applied to the neighbouring  samples of the current CU prior to LIC parameter derivation, since the current CU neighbours are in the reshaped domain, but the reference picture samples are in the original (non-reshaped) domain. ● LIC scale and offset parameters are defined and applied for each component separately. ● LIC is DISABLED for combined inter / intra prediction (CIIP) and intra block copy (IBC)  blocks. ● LIC is NOT applied to bi-prediction. ● LIC is applied to sub-block mode as shown in Fig. 4, where LIC parameters are derived  based on the samples derived on a sub-block basis. In Fig. 4, A, B, …, G represent to sub-blocks of the current block, and A ref, B ref, …, G ref represent corresponding sub-blocks of the reference block. ● LIC flag is included as a part of motion information in addition to MVs and reference  indices. ● LIC flag is inherited for HMVP. ● When merge candidate list is constructed, LIC flag is inherited from the neighbour blocks  for merge candidates. ● LIC flag is NOT used for motion vector pruning in merging candidate list generation. ● NO temporal inheritance of LIC flag. ● LIC flag is NOT stored in the MV buffer of a reference picture, so that LIC flag is always  set to FALSE for temporal motion vector predictor (TMVP) . ● LIC flag is set to FALSE for bi-directional merge candidates, such as pair-wise average  candidate, and zero motion candidates. ● LIC flag is context coded with a single context. When LIC is not applicable, LIC flag is  not signalled. ● Scale α values are ranging between 0 and 128; offset β -between -512 and 511.

[0011] To derive LIC linear model parameters, linear least square method is utilized, which requires the following operations per CU: ● Multiplications: 2 *min (width, height) + 4 ● Additions: 4 *min (width, height) + 4 ● Shifts: 12

[0012] To apply linear model, 1 multiplication and 1 addition are used per sample, which can be done at the reconstruction stage when prediction is added to the residual.

[0013] When in-loop luma reshaping is used, the inverse reshaping is applied to the neighbouring samples of the current CU prior to LIC parameter derivation, since neighbouring samples of the current CU are in the reshaped domain, but the reference picture samples are in the original (non-reshaped) domain.

[0014] Checks for LIC to Be Applied

[0015] Encoder: ● skipRDCheckForLIC -given a IMV mode, LIC is not tested if: ○ RD cost of non-LIC IMV AMVP mode is 1.2x worse than the current best RD  cost, or ○ the block is less than 32 luma samples

[0016] Normative: ● LIC is not used with bi-prediction in merge. ● Geometric mode, IBC mode, CIIP mode are not used with LIC. ● Bi-prediction is not used with LIC. ● If slice is non-intra and LIC is enabled on picture level, 4 additional RD checks added  for each to-be-tested QP value: insert inter with different IMV (0~3) and LIC as to-be-tested modes.

[0017] OBMC with LIC

[0018] In the method, the OBMC is enabled for the inter blocks that are coded with the LIC mode. 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 one current block.

[0019] Slope Adjustment for LIC

[0020] In the original LIC design, only one set of parameters (LIC scale and offset) is estimated for the current to-be-coded CU.

[0021] In has been proposed to estimate a slope (scale) adjustment at the encoder. In an example, the slope adjustment is signalled to decoder. In another example, the slope adjustment can be estimated at the encoder and decoder, so no additional signalling is required.

[0022] In one method, there is a predefined set of adjustments that may be applied to the slope (e.g., + / -0.95, + / -0.8; + / -0.6) . In one example, adjustments added to the slope, in another example, slope is multiplied by the adjustment. In one example, the combination of adjusted slope with the offset are tested and then the option which is providing the best result in terms of certain criteria is chosen. In one example, the “adjustment steps” are predefined. In one example, option that is providing the best result in terms of certain criteria is signalled to the decoder. In one example, all possible combinations are tested at both encoder and decoder, and the option that is providing the best result in terms of certain criteria can be defined without any additional signalling.

[0023] In one method, the slope adjustment is depending on certain criteria, such as block size, relation / correspondence between block width / height, etc.

[0024] In one method, slope adjustment can be signalled for each component separately. In one method, slope adjustment can be signalled only for one (e.g. Y) component. In one example, slope adjustment can be shared between multiple components (e.g. Cb and Cr can share the same slope adjustment) . In one example, the slope adjustment is defined only once and then shared between all colour components (e.g. the slope adjustment is defined for Y component and shared between all of the Y, Cb, Cr components) .

[0025] In one method, a separate syntax element can be implicitly or explicitly defined from the bitstream to indicate that the slope adjustment signalling is enabled. In one example, the syntax element implicitly or explicitly defined from the bitstream at the sequence level (e.g., SPS) . In one example, the syntax element implicitly or explicitly defined from the bitstream at the frame / picture / slice / CTU / CU / PU level (e.g., PPS or PH or SH) .

[0026] LIC Adjustment in JVET-AE0177

[0027] A method of local illumination compensation with slope adjustment is proposed, in which an adjustment parameter is used to update the LIC parameters similar to the slope adjustment of CCLM. The adjustment parameter is signalled for AMVP mode.

[0028] IBC with Local Illumination Compensation

[0029] Intra block copy with local illumination compensation (IBC-LIC) is a coding tool, which compensates the local illumination variation within a picture between the CU coded with IBC and its prediction block with a linear equation. The parameters of the linear equation are derived in a same manner as LIC for inter prediction except that the reference template is generated using block vector in IBC-LIC. IBC-LIC can be applied to IBC AMVP mode and IBC merge mode. For IBC AMVP mode, an IBC-LIC flag is signalled to indicate the use of IBC-LIC. Top-only, left-only, or L-shape templates are allowed for deriving the single model parameters. MMLM is extended to IBC-LIC, which allows IBC-LIC to have two linear models in one CU. Only L-shape template is used in IBC-LIC MMLM. A mode index is signalled. For IBC merge mode, the IBC-LIC flag is inferred from the merge candidate. The IBC-LIC flag is inherited from an IBC HMVP candidate to harmonize IBC HMVP and IBC-LIC similar to the inter LIC case.

[0030] Reference filtering for inter-prediction in JVET-AG0194

[0031] Several CCCM filters with different parameter sets can be applied within the reference area. Selection of filter is performed based on classification that is performed for template areas of the reference and current block.

[0032] The following classification steps are performed for a sample at position (x, y) : - Calculation of differences between neighbouring samples in horizontal and vertical  directions (delta_x and delta_y, respectively) ; - Derivation of gradient based on tangent value estimated from delta_x and delta_y  (similarly, as it is performed in DIMD histogram derivation) , thus obtaining magnitude and angular parameter (which is expressed as one of the intra prediction directional modes) - Comparing the magnitude with a threshold. Position (x, y) is associated with class 0 if  the magnitude is less than a threshold. - Obtaining the absolute difference of angular parameters calculated for collocated  samples of templates of reference area and current block. If the difference is less than a threshold, position (x, y) is associated with class 1.

[0033] Derivation of filter parameters is performed separately for sample positions associated with class 0 and sample positions associated with class 1.

[0034] Filter parameter selection for a sample of the reference area is performed when the magnitude of the gradient in the filtered position is greater than a threshold determined for a block. The threshold for a magnitude is obtained from the range of gradient magnitudes within the reference area.

[0035] Filter parameters are different for different colour components. After reference samples of a colour plane are processed by a derived filter, they are clipped to the range that depends on the bit depth specified for the colour component (e.g., [0, 1023] for a bit depth of 10 bits) .

[0036] Reference filtering flag is signalled in AMVP mode in dependence of an LIC flag. The flowchart of indication in AMVP mode on decoder side is shown in Fig. 5. The method is not applied in AMVP-merge mode. When LIC flag is on and reference filter flag is off, samples of a reference block are processed by LIC process. When LIC flag is on and reference filter flag is on, samples of a reference block are processed by the proposed method. When LIC flag is off neither LIC, not the proposed method is applied.

[0037] The method is also applied in regular merge mode. Two cost values are calculated: C0=dSAD (1) and C1=dSAD (s) . The dSAD metric is defined as follows: where pi and pj are neighbouring template samples of a reference block;  and are  neighbouring template samples of a reference block, s denotes an estimated value of the scale parameter that is obtained by dividing the sum of differences in the current template by the sum of differences in the reference template: where and Δ=∑ij (pi-pj) .

[0038] C0 is multiplied by α if the inherited LIC flag is false while C1 is multiplied by αif the inherited LIC flag is true, where α is a constant that can take values less than 1.

[0039] For merge candidates, that satisfy C0>C1 criteria, the LIC flag is set to true.

[0040] Histograms of gradients are calculated for the reference block template and for the current block template. The calculation of histograms of gradients is performed in a similar way as done in DIMD. The decision on whether reference filtering is applied is taken based on the difference of positions of maximums within histograms and estimation of amplitudes distribution near the maximum values as shown in Fig. 6A and Fig. 6B.

[0041] If the difference between positions of maximums in HoGRef (Fig. 6A) and HoGRec (Fig. 6B) exceeds a threshold, the reference filtering is not applied. Otherwise, if SRef  / SRec > TR or SRec  / SRef > TR, a reference filtering is applied to a block.

[0042] Sample Adaptive Offset (SAO)

[0043] SAO is a process that modifies the decoded samples by conditionally adding an offset value to each sample after the application of the deblocking filter, based on values in look-up tables transmitted by the encoder. SAO filtering is performed on a region basis, based on a filtering type selected per CTB by a syntax element sao-type-idx. A value of 0 for sao-type-idx indicates that the SAO filter is not applied to the CTB, and the values 1 and 2 signal the use of the band offset and edge offset filtering types, respectively. In the band offset mode specified by sao-type-idx equal to 1, the selected offset value directly depends on the sample amplitude. In this mode, the full sample amplitude range is uniformly split into 32 segments called bands, and the sample values belonging to four of these bands (which are consecutive within the 32 bands) are modified by adding transmitted values denoted as band offsets, which can be positive or negative. The main reason for using four consecutive bands is that in the smooth areas where banding artefacts can appear, the sample amplitudes in a CTB tend to be concentrated in only few of the bands. In addition, the design choice of using four offsets is unified with the edge offset mode of operation which also uses four offset values. In the edge offset mode specified by sao-type-idx equal to 2, a syntax element sao-eo-class with values from 0 to 3 signals whether a horizontal, vertical or one of two diagonal gradient directions is used for the edge offset classification in the CTB.

[0044] Fig. 7 depicts the four gradient patterns (710-740) used for the respective sao-eo-class in this mode. Each sample in the CTB is classified into one of five EdgeIdx categories by comparing the sample value p located at some position with the values n0 and n1 of two samples located at neighbouring positions as shown in Table 1. This classification is done for each sample based on decoded sample values, so no additional signalling is required for the EdgeIdx classification. Depending on the EdgeIdx category at the sample position, for EdgeIdx categories from 1 to 4, an offset value from a transmitted look-up table is added to the sample value. The offset values are always positive for categories 1 and 2 and negative for categories 3 and 4. Therefore, the filter generally has a smoothing effect in the edge offset mode. Table 1. Sample EdgeIdx Categories in SAO Edge Classes

[0045] Thus, for SAO types 1 and 2, a total of four amplitude offset values are transmitted to the decoder for each CTB. For type 1, the sign is also encoded. The offset values and related syntax elements such as sao-type-idx and sao-eo-class are determined by the encoder, which typically uses criteria that optimize rate-distortion performance. The SAO parameters can be indicated to be inherited from the left or above CTB using a merge flag to make the signalling efficient. In summary, SAO is a nonlinear filtering operation which allows additional refinement of the reconstructed signal, and it can enhance the signal representation in both smooth areas and around edges.

[0046] Non-Local Illumination Compensation (NLIC)

[0047] For NLIC, the linear model is derived from the previously coded inter CUs by minimizing the difference between their reconstruction and prediction samples. When constructing the merge lists, up to 16 and 6 NLIC candidates (obtained from both spatial adjacent and non-adjacent positions) are inserted to the lists of regular merge and subblock merge respectively, and reordered with the existing merge candidates. The lengths of the output merge lists are kept unchanged. The same pattern used for non-adjacent merge mode is reused to locate the non-adjacent positions in the scheme. Also, the linear model can be derived only from the bottom sample line and the rightmost sample line in the previously coded inter CUs (i.e., BR-NLIC) .

[0048] Signalling LIC Flag for Merge Mode

[0049] For inter-prediction merge modes, the LIC flag value can be either signalled for regular merge mode, affine merge mode and TM merge mode or inherited from a merge candidate. The signalled flag whether if the original inherited LIC flag or the reverse LIC flag value is used for a merge candidate.

[0050] Convolutional Cross-Component Model (CCCM)

[0051] In CCCM, a convolutional model is applied to improve the chroma prediction performance. The convolutional model has 7-tap filter consist of a 5-tap plus sign shape spatial component, a nonlinear term and a bias term. The input to the spatial 5-tap component of the filter consists of a centre (C) luma sample which is collocated with the chroma sample to be predicted and its above / north (N) , below / south (S) , left / west (W) and right / east (E) neighbours as illustrated in Fig. 8.

[0052] The nonlinear term (denoted as P) is represented as power of two of the centre luma sample C and scaled to the sample value range of the content: P = (C*C + midVal ) >> bitDepth

[0053] That is, for 10-bit content it is calculated as: P = (C*C + 512 ) >> 10

[0054] The bias term (denoted as B) represents a scalar offset between the input and output (similarly to the offset term in CCLM) and is set to middle chroma value (512 for 10-bit content) .

[0055] Output of the filter is calculated as a convolution between the filter coefficients ci and the input values and clipped to the range of valid chroma samples: predChromaVal = c0C + c1N + c2S + c3E + c4W + c5P + c6B.

[0056] The filter coefficients ci are calculated by minimising MSE (Mean Squared Error) between predicted and reconstructed chroma samples in the reference area. Fig. 9 illustrates the reference area which consists of 6 lines of chroma samples above and left of the PU. Reference area extends one PU width to the right and one PU height below the PU boundaries. Area is adjusted to include only available samples. The extensions to the area shown in blue are needed to support the “side samples” of the plus shaped spatial filter and are padded when in unavailable areas.

[0057] The MSE minimization is performed by calculating autocorrelation matrix for the luma input and a cross-correlation vector between the luma input and chroma output. Autocorrelation matrix is LDL decomposed and the final filter coefficients are calculated using back-substitution. The process follows roughly the calculation of the ALF filter coefficients in ECM, however LDL decomposition was chosen instead of Cholesky decomposition to avoid using square root operations.

[0058] Regression-Based GPM Blending

[0059] Regression-based GMP blending mode is designed as an additional GPM implicit mode, where the two integer blending matrices (W0 and W1) are derived from the template (1 line above, 1 column left) . The blending matrices are modelled as an affine linear function of the sample positions (x, y) in the current CU: W0 (x, y) = a·x + b·y + c and W1 (x, y) = 1 -W0 (x, y) .

[0060] The parameters (a, b, c) are derived from the reference template using the same solver (MSE minimization) as the one used for CCCM. A list of pair of candidates is built from the regular GPM candidates and re-ordered with the template cost.

[0061] The GPM implicit mode is signalled by a CU-level flag (gpm_implicit_flag) . If gpm_implicit_flag is true, a merge-idx is coded to signal the pair of GPM candidates to be used. If gpm_implicit_flag is false, the regular GPM syntax elements are signalled.

[0062] In the present invention, derivations of merge lists for merge mode with LIC flag signalled or parsed are disclosed. BRIEF SUMMARY OF THE INVENTION

[0063] A method and apparatus for video coding for using LIC (Local Illumination Compensation) 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. Whether an LIC (Local Illumination Compensation) flag is signalled or parsed for merge mode is determined for the current block. In response to the LIC flag being signalled or parsed for the merge mode for the current block: a plurality of multi-tap LIC candidates are determined; the plurality of multi-tap LIC candidates with different filter shapes are inserted into different merge lists respectively; and the current block is encoded or decoded by using coding information comprising the different merge lists.

[0064] In one embodiment, multi-taps associated with the plurality of multi-tap LIC candidates comprise one or more spatial terms, one or more gradient terms, one or more position terms, one or more non-linear terms, one or more cross-predictor terms, one or more cross component terms, one or more bias terms, or a combination thereof.

[0065] In one embodiment, first multi-tap LIC candidates with N taps are inserted into a first merge list and second multi-tap LIC candidates with K taps are inserted into a second merge list, and wherein N and K are different positive integers.

[0066] In one embodiment, the plurality of multi-tap LIC candidates comprise first multi-tap LIC candidates derived from a previous-coded block, and one of first multi-tap LIC candidates or a NL-LIC (Non-Local LIC) candidate derived from the previous-coded block is selected for the current block according to one or more specific costs.

[0067] In one embodiment, said one or more specific costs are calculated between reconstruction samples and prediction samples for the first multi-tap LIC candidates and the NL-LIC candidate.

[0068] In one embodiment, a target candidate having a minimum cost among the first multi-tap LIC candidates and the NL-LIC candidate is selected for the current block. In one embodiment, the target candidate selected for the current block is inherited by a subsequent block.

[0069] In one embodiment, said one or more specific costs comprise SSD (Sum of Squared Differences) , MSE (Mean Squared Error) , or SAD (Sum of Absolute Differences) .

[0070] In one embodiment, said one or more specific costs are calculated based on one or more previous-coded blocks or a template region nearby the current block.BRIEF DESCRIPTION OF THE DRAWINGS

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

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

[0073] Fig. 2 illustrates an example of LIC (Local Illumination Compensation) model derivation based on the reference template and the current template.

[0074] Fig. 3 illustrates an example of LIC model derivation for non-subblock modes.

[0075] Fig. 4 illustrates an example of LIC model derivation for subblock modes.

[0076] Fig. 5 illustrates signalling mechanism for the reference filtering flag.

[0077] Fig. 6 illustrates histograms of gradients calculated for the reference block template (Fig. 6A) and for the current block template (Fig. 6B) .

[0078] Fig. 7 illustrates four gradient patterns used in SAO, where sample labelled “p” indicates a centre sample to be considered and “n0” and “n1” are two neighbouring samples for calculating the gradient.

[0079] Fig. 8 illustrated the spatial part of convolutional filter for convolutional cross-component model.

[0080] Fig. 9 illustrated the reference area (with its paddings) used to derive the filter coefficients for convolutional cross-component model.

[0081] Fig. 10 illustrates a flowchart of an exemplary video coding system that inserts the multi-tap LIC candidates with different filter shape into different candidate lists respectively when an LIC flag is signalled for merge mode according to an embodiment of the present invention.DETAILED DESCRIPTION OF THE INVENTION

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

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

[0084] PROPOSED METHODS

[0085] Multi-model Local Illumination Compensation Grouping

[0086] In one invention, a flag is signalled to indicate the usage of multi-model LIC. When the flag is true, samples in current CU are split into multiple regions and one LIC model is derived and applied in each region.

[0087] In one embodiment, if the gradient magnitude of a sample is smaller than threshold T0, the sample is classified into class 0. Otherwise, if the gradient magnitude of a sample is smaller than threshold T1, the sample is classified into class1. Otherwise, if the gradient magnitude of a sample is smaller than threshold TN, the sample is classified into class N (where N >= 1) . Otherwise, the sample is classified into TN+1. An LIC model is derived for each class in the template region and applied on the samples classified into the same class in the current CU.

[0088] In another embodiment, if the gradient angle difference between the reference and current template of a sample is larger than threshold T0, the sample is classified into class 0. Otherwise, if the gradient angle difference between the reference and current template of a sample is larger than threshold T1, the sample is classified into class 1. Otherwise, if the gradient angle difference between the reference and current template of a sample is larger than threshold TN, the sample is classified into class N (where N >= 1) . Otherwise, the sample is classified into TN+1. Only the samples in specific classes are used for LIC model derivation. In one example, the samples in the template region are classified into multiple classes (denoted as {C0, C1, …, CN} ) according to the gradient magnitude first. In each class, the gradient angle difference between the reference and current template is further used to classify the samples in the class to multiple finer classes (denoted as {Cn0, Cn1, …, CnN} ) . In each class, only the samples in specific finer classes are used to derive the LIC model. In the current CU, the samples are classified into multiple classes according to the gradient magnitude. In each class, the corresponding LIC model derived from the template region is applied without considering gradient angle difference.

[0089] In another embodiment, the samples in a template region or in a CU are classified using SAO classification. In this case, a horizontal, vertical or one of two diagonal gradient directions or other direction is used for the edge offset classification in the specific region and the samples are classified into one of five EdgeIdx categories by comparing the sample value p located at some position with the values n0 and n1 of two samples located at neighbouring positions (as described in SAO section) . By using different gradient directions, a sample can be classified into different EdgeIdx categories. Thus, at least 4 (i.e., by using horizontal, vertical or one of two diagonal gradient directions) SAO sample grouping methods can be selected. For each method, an LIC model is derived for each category in the template region and applied on the samples classified into the same category in the current CU.

[0090] In one embodiment, the best multi-model sample grouping method (e.g., using gradient magnitude, gradient angle and / or SAO classification, etc. ) is determined by an index signalled in the bitstream at a picture / slice / CTU / CU / PU level.

[0091] In one example, the multi-model sample grouping methods (e.g., using gradient magnitude, gradient angle and / or SAO classification, etc. ) is reordered by the SSD (Sum of Squared Differences) between the multi-model LIC predictor (i.e., the predictor after applying the sample grouping method and the corresponding multi-model LIC linear transform) and the luma (and / or chroma) reconstruction calculated in the template region.

[0092] In another embodiment, the best multi-model sample grouping method (e.g., using gradient magnitude, gradient angle and / or SAO classification, etc. ) is determined by the SSD between the multi-model LIC predictor (i.e., the predictor after applying the sample grouping method and the corresponding multi-model LIC linear transform) and the luma (and / or chroma) reconstruction calculated in the template region. The multi-model sample grouping method with the smallest SSD is determined as the best multi-model sample grouping method implicitly.

[0093] Filtered Multi-Model Local Illumination Compensation

[0094] According to this method, a flag is signalled to indicate the usage of filtered multi-model LIC. When the flag is true, samples in current CU are split into multiple regions and one LIC model is derived and applied in each region. After applying LIC linear transform on all regions, a signalled or pre-defined filter is then applied on the CU to alleviate the discontinuity between each region.

[0095] In one embodiment, the filter is pre-defined as a low-pass filter or an edge-preserved filter (e.g., bilateral filter, guided filter, etc. ) . The size of the filter can be N or NxN (where N >= 3) and the centre weight of the filter is higher than the surrounding weights.

[0096] In one embodiment, the filter is determined according to QP, CU size, CU position, POC, magnitude of CU predictor, gradient of CU predictor, CU coding mode, LIC linear models of CU, coding modes of neighbouring CU, or any other information.

[0097] In one embodiment, the filter is selected from a filter set and indicated by an index which is signalled to the bitstream in a sequence / picture / slice / CTU / CU / PU level. In one example, the filter set comprises multiple low-pass filters and / or edge-preserved filters with different weights or multiple CCCM filters mentioned in JVET-AG0194.

[0098] In one embodiment, the filter is applied on the boundaries of multi-model LIC groups, applied on the entire CU, or only applied on some specific regions.

[0099] In one embodiment, the filtered multi-model LIC flag is signalled after multi-model LIC flag and will be skipped when the multi-model LIC flag is false.

[0100] In one embodiment, the filtered multi-model LIC flag is signalled for inter and / or affine AMVP modes and / or merge modes and / or IBC and / or intra modes and / or any other modes.

[0101] In one embodiment, the filtered multi-model LIC flag is not signalled but inherited from reference merge candidates. In another embodiment, an MV candidate with original multi-model LIC flag enabled can be inserted into one candidate list and the same MV candidate with filtered multi-model LIC enabled can be inserted into another candidate list.

[0102] In one embodiment, the filtered multi-model LIC flag is implicitly determined by template cost, boundary matching cost, or any other cost. The costs of filtered multi-model LIC candidates (e.g., candidates with different filters) and other LIC modes (e.g., original multi-model LIC mode, LIC slope adjustment, non-local LIC mode, inherited LIC mode, etc. ) are calculated. All the candidates are reordered according to the corresponding costs. When the cost of filtered multi-model LIC candidate is smallest, the filtered multi-model LIC flag is set to true and the filtered multi-model LIC is applied.

[0103] In one embodiment, the filtered multi-model LIC candidates are reordered by template cost, boundary matching cost, or any other cost, and only the first N candidates with smaller costs can be selected. The costs of filtered multi-model LIC candidates (e.g., candidates with different filters) and other LIC modes (e.g., original multi-model LIC mode, LIC slope adjustment, non-local LIC mode, inherited LIC mode, etc. ) are calculated. All the candidates or partial candidates are reordered by the corresponding costs. The first N candidates with smaller costs can be further tested by RD costs and the best candidate can be selected by considering the RD costs.

[0104] In one embodiment, the filtered multi-model LIC can only be selected by uni-predictive candidate or only be selected by bi-predictive candidates or selected by both uni-and bi-predictive candidates.

[0105] Multi-Tap Local Illumination Compensation

[0106] In one invention, the convolution filters are derived from the previously coded inter CUs by minimizing the difference between their reconstruction and prediction samples. The filters along with the MV information of the previous coded inter CUs form the multi-tap LIC candidates which can be inherited by other CUs and can be inserted into the AMVP or merge candidate list.

[0107] In one embodiment, multiple multi-tap LIC candidates can be derived from a previous-coded CU. In this case, the convolution filter can be any N-tap (N >= 1) filter which comprises spatial, gradient, position, non-linear, cross-predictor (e.g., difference of two corresponding samples in two predictors) , cross component (e.g., average of corresponding luma sample values of a chroma sample) , bias terms, or a combination thereof.

[0108] In one embodiment, the multi-tap LIC candidates can be obtained from spatial positions, non-adjacent positions, temporal positions, or history table.

[0109] In one embodiment, the multi-tap LIC candidates can be derived and applied on one, two, or three colour components.

[0110] In one embodiment, the multi-tap LIC candidates can only be inherited depending on QP, POC distance, CU size, CU position, CU shape, MV, or coding mode conditions.

[0111] In one embodiment, the multi-tap LIC candidates can be inserted into affine, inter, intra or IBC AMVP / merge / candidate lists respectively and reordered with the existing AMVP / merge candidates.

[0112] In one embodiment, the specific costs are used to determine whether one of the multi-tap LIC candidates or the NLIC candidate is selected in a previous-coded CU. In this case, for each CU, multiple multi-tap LIC candidates and an NLIC candidate are derived by minimizing the difference between the reconstruction and prediction samples. To select between the multi-tap LIC candidates and the NLIC candidate, the costs are calculated between S the reconstruction and the prediction samples after applying the multi-tap LIC convolution filters and NLIC linear model. The candidate with the minimum cost is selected as the candidate which can be inherited by other CU.In one example, the cost can be SSD, MSE, SAD (Sum of Absolute Differences) or other cost to evaluate the distortion between two patches. In one example, the cost can be calculated in the previous-coded CU or the template region nearby the current CU.

[0113] In one embodiment, a flag is signalled to indicate the usage of multi-tap LIC. A list of multi-tap LIC candidates is constructed, which comprises the multi-tap LIC candidates generated from spatial positions, non-adjacent positions, temporal positions, history table, or a combination thereof, and the candidates can be reordered by the TM costs. When the flag is true, an index can be further signalled to indicate the selected candidate in the multi-tap LIC candidate list or not (i.e., when the index is not signalled, the first candidate in the candidate list is used) . When the flag is false, the multi-tap LIC is not enabled for the current CU.

[0114] In one embodiment, when an LIC flag is signalled for merge mode as described in the previous section, the multi-tap LIC candidates are inserted into the opposite candidate list of NLIC. In one example, if the NLIC candidates are inserted into the first candidate list, the multi-tap LIC candidates are then inserted into the other list.

[0115] In one embodiment, when an LIC flag is signalled for merge mode, the multi-tap LIC candidates with different filter shape are inserted into two different candidate lists respectively. In one example, if the multi-tap LIC candidates with N-tap comprising multiple spatial, gradient, position, non-linear, cross-predictor (e.g., difference of two corresponding samples in two predictor) , cross component (e.g., average of corresponding luma sample values of a chroma sample) , bias terms, or a combination thereof are inserted into the first candidate list. The multi-tap LIC candidates with K-tap comprising multiple spatial, gradient, position, non-linear, cross-predictor (e.g., difference of two corresponding samples in two predictor) , cross component (e.g., average of corresponding luma sample values of a chroma sample) , bias terms, or a combination thereof are then inserted into the other list.

[0116] Any of the foregoing proposed methods of multi-tap LIC candidates for merge mode can be implemented in encoders and / or decoders. For example, any of the proposed methods can be implemented in inter or intra prediction modules of an encoder and / or a decoder. Alternatively, any of the proposed methods can be implemented as a circuit coupled to transform module of the encoder and / or the decoder.

[0117] With reference to the exemplary encoder or decoder in Fig. 1A and Fig. 1B, any of the proposed methods can be implemented in an Intra / Inter coding module (e.g. Intra Pred. 150 / MC 152 in Fig. 1B) in a decoder or an Intra / Inter coding module in an encoder (e.g. Intra Pred. 110 / Inter Pred. 112 in Fig. 1A) . Any of the proposed methods can also be implemented as circuits coupled to the intra coding module at the decoder or the encoder. However, the decoder or encoder may also use additional processing unit to implement the required processing. While the Intra / Inter Pred. units (e.g. unit 110 / Inter Pred. 112 in Fig. 1A and unit 150 / MC 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) ) .

[0118] Fig. 10 illustrates a flowchart of an exemplary video coding system that inserts the multi-tap LIC candidates with different filter shape into different candidate lists respectively when an LIC flag is signalled for merge mode 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 this 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. Whether an LIC (Local Illumination Compensation) flag is signalled or parsed for merge mode is checked for the current block in step 1020. If the LIC flag is signalled or parsed for the merge mode for the current block (i.e., the “Yes” path from step 1020, steps 1030 to step 1050 are performed. Otherwise (i.e., the “No” path from step 1020) , steps 1030 to step 1050 are skipped. In step 1030, a plurality of multi-tap LIC candidates are determined. In step 1040, the plurality of multi-tap LIC candidates with different filter shapes are inserted into different merge lists respectively. In step 1050, the current block is encoded or decoded by using coding information comprising the different merge lists.

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

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

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

[0122] 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;determining whether an LIC (Local Illumination Compensation) flag is signalled or parsed for merge mode for the current block; andin response to the LIC flag being signalled or parsed for the merge mode for the current block:determining a plurality of multi-tap LIC candidates;inserting the plurality of multi-tap LIC candidates with different filter shapes into different merge lists respectively; andencoding or decoding the current block by using coding information comprising the different merge lists.2.The method of Claim 1, wherein multi-taps associated with the plurality of multi-tap LIC candidates comprise one or more spatial terms, one or more gradient terms, one or more position terms, one or more non-linear terms, one or more cross-predictor terms, one or more cross component terms, one or more bias terms, or a combination thereof.3.The method of Claim 1, wherein first multi-tap LIC candidates with N taps are inserted into a first merge list and second multi-tap LIC candidates with K taps are inserted into a second merge list, and wherein N and K are different positive integers.4.The method of Claim 1, wherein the plurality of multi-tap LIC candidates comprise first multi-tap LIC candidates derived from a previous-coded block, and one of first multi-tap LIC candidates or a NL-LIC (Non-Local LIC) candidate derived from the previous-coded block is selected for the current block according to one or more specific costs.5.The method of Claim 4, wherein said one or more specific costs are calculated between reconstruction samples and prediction samples for the first multi-tap LIC candidates and the NL-LIC candidate.6.The method of Claim 4, wherein a target candidate having a minimum cost among the first multi-tap LIC candidates and the NL-LIC candidate is selected for the current block.7.The method of Claim 6, wherein the target candidate selected for the current block is inherited by a subsequent block.8.The method of Claim 4, wherein said one or more specific costs comprise SSD (Sum of Squared Differences) , MSE (Mean Squared Error) , or SAD (Sum of Absolute Differences) .9.The method of Claim 4, wherein said one or more specific costs are calculated based on one or more previous-coded blocks or a template region nearby the current block.10.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;determine whether an LIC (Local Illumination Compensation) flag is signalled or parsed for merge mode for the current block; andin response to the LIC flag being signalled or parsed for the merge mode for the current block:determine a plurality of multi-tap LIC candidates;insert the plurality of multi-tap LIC candidates with different filter shapes into different merge lists respectively; andencode or decode the current block by using coding information comprising the different merge lists.

Citation Information

Patent Citations

  • Harmonization between local illumination compensation and inter prediction coding

    US20210235110A1

  • Method and apparatus for video coding

    US20220312004A1