Methods and apparatus of local illumination compensation with gamma adjustment in video coding system
By integrating a gamma term into the LIC prediction mode within the video coding system, the method addresses the challenge of accurately modeling local illumination variations, resulting in enhanced prediction accuracy and overall video coding performance.
Patent Information
- Application Number
- PCT/CN2024/128743
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-11-02
- Filing Date
- 2024-10-31
- Publication Date
- 2025-05-08
AI Technical Summary
Existing video coding systems face challenges in accurately modeling local illumination variations between frames, leading to suboptimal prediction performance in inter prediction techniques.
The introduction of a Local Illumination Compensation (LIC) prediction mode with gamma adjustment, where a gamma term related to the input signal is incorporated into the LIC model, allowing for more accurate prediction by accounting for non-linear light exposure.
This approach enhances the accuracy of LIC prediction, leading to improved video coding performance by better capturing illumination changes between frames.
Smart Images

Figure CN2024128743_08052025_PF_FP_ABST
Abstract
Description
METHODS AND APPARATUS OF LOCAL ILLUMINATION COMPENSATION WITH GAMMA ADJUSTMENT IN VIDEO CODING SYSTEM
[0001] CROSS REFERENCE TO RELATED APPLICATIONS
[0002] The present invention is a non-Provisional Application of and claims priority to U.S. Provisional Patent Application No. 63 / 595, 379, filed on November 2, 2023. The U. S. Provisional Patent Application is hereby incorporated by reference in its entirety.FIELD OF THE INVENTION
[0003] The present invention relates to video coding system. In particular, the present invention discloses an LIC (Local Illumination Compensation) prediction mode with gamma correction to improve the performance of LIC prediction.
[0004] BACKGROUND AND RELATED ART
[0005] 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.
[0006] Fig. 1A illustrates an exemplary adaptive Inter / Intra video encoding system incorporating loop processing. For Intra Prediction, the prediction data is derived based on previously coded video data in the current picture. For Inter Prediction 112, Motion Estimation (ME) is performed at the encoder side and Motion Compensation (MC) is performed based on the result of ME to provide prediction data derived from other picture (s) and motion data. Switch 114 selects Intra Prediction 110 or Inter-Prediction 112 and the selected prediction data is supplied to Adder 116 to form prediction errors, also called residues. The prediction error is then processed by Transform (T) 118 followed by Quantization (Q) 120. The transformed and quantized residues are then coded by Entropy Encoder 122 to be included in a video bitstream corresponding to the compressed video data. The bitstream associated with the transform coefficients is then packed with side information such as motion and coding modes associated with Intra prediction and Inter prediction, and other information such as parameters associated with loop filters applied to underlying image area. The side information associated with Intra Prediction 110, Inter prediction 112 and in-loop filter 130, are provided to Entropy Encoder 122 as shown in Fig. 1A. When an Inter-prediction mode is used, a reference picture or pictures have to be reconstructed at the encoder end as well. Consequently, the transformed and quantized residues are processed by Inverse Quantization (IQ) 124 and Inverse Transformation (IT) 126 to recover the residues. The residues are then added back to prediction data 136 at Reconstruction (REC) 128 to reconstruct video data. The reconstructed video data may be stored in Reference Picture Buffer 134 and used for prediction of other frames.
[0007] 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.
[0008] 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.
[0009] According to VVC, an input picture is partitioned into non-overlapped square block regions referred as CTUs (Coding Tree Units) , similar to HEVC. Each CTU can be partitioned into one or multiple smaller size coding units (CUs) . The resulting CU partitions can be in square or rectangular shapes. Also, VVC divides a CTU into prediction units (PUs) as a unit to apply prediction process, such as Inter prediction, Intra prediction, etc.
[0010] Partitioning of the CTUs Using a Tree Structure
[0011] In High-Efficient Video Coding standard (HEVC) , pictures are divided into a sequence of coding tree units (CTUs) . A CTU consists of an NxN block of luma samples together with two corresponding blocks of chroma samples for a picture that has three sample arrays, or an NxN block of samples of a monochrome plane in a picture that is coded using three separate colour planes. The CTU concept is broadly analogous to that of the macroblock in previous standards such as Advanced Video Coding (AVC) . The maximum allowed size of the luma block in a CTU is specified to be 64x64 in Main profile. A CTU is split into CUs by using a quaternary-tree (QT) structure denoted as coding tree to adapt to various local characteristics. The decision whether to code a picture area using inter-picture (temporal) or intra-picture (spatial) prediction is made at the leaf CU level. Each leaf CU can be further split into one, two or four prediction units (PUs) according to the PU splitting type. Inside one PU, the same prediction process is applied and the relevant information is transmitted to the decoder on a PU basis. After obtaining the residual block by applying the prediction process based on the PU splitting type, a leaf CU can be partitioned into transform units (TUs) according to another quaternary-tree structure similar to the coding tree for the CU. One of key feature of the HEVC structure is that it has the multiple partition conceptions including CU, PU, and TU.
[0012] Versatile Video Coding standard (VVC) is the successor to HEVC. In VVC, a quadtree with nested multi-type tree using binary and ternary splits segmentation structure replaces the concepts of multiple partition unit types, i.e. it removes the separation of the CU, PU and TU concepts except as needed for CUs that have a size too large for the maximum transform length, and supports more flexibility for CU partition shapes. In the coding tree structure, a CU can have either a square or rectangular shape. A coding tree unit (CTU) is first partitioned by a quaternary tree (a. k. a. quadtree) structure. Then the quaternary tree leaf nodes can be further partitioned by a multi-type tree structure. As shown in Fig. 2, there are four splitting types in multi-type tree structure, vertical binary splitting (SPLIT_BT_VER 210) , horizontal binary splitting (SPLIT_BT_HOR 220) , vertical ternary splitting (SPLIT_TT_VER 230) , and horizontal ternary splitting (SPLIT_TT_HOR 240) . The multi-type tree leaf nodes are called coding units (CUs) , and unless the CU is too large for the maximum transform length, this segmentation is used for prediction and transform processing without any further partitioning. This means that, in most cases, the CU, PU and TU have the same block size in the quadtree with nested multi-type tree coding block structure. The exception occurs when maximum supported transform length is smaller than the width or height of the colour component of the CU.
[0013] Fig. 3 shows a CTU divided into multiple CUs with a quadtree and nested multi-type tree coding block structure, where the bold block edges represent quadtree partitioning and the remaining edges represent multi-type tree partitioning. The quadtree with nested multi-type tree partition provides a content-adaptive coding tree structure comprised of CUs. The size of the CU may be as large as the CTU or as small as 4×4 in units of luma samples. For the case of the 4: 2: 0 chroma format, the maximum chroma CB size is 64×64 and the minimum size chroma CB consist of 16 chroma samples.
[0014] In VVC, the maximum supported luma transform size is 64×64 and the maximum supported chroma transform size is 32×32. When the width or height of the CB is larger the maximum transform width or height, the CB is automatically split in the horizontal and / or vertical direction to meet the transform size restriction in that direction.
[0015] In VVC, the coding tree scheme supports the ability for the luma and chroma to have a separate block tree structure. For P and B slices, the luma and chroma CTBs in one CTU have to share the same coding tree structure. However, for I slices, the luma and chroma can have separate block tree structures. When the separate block tree mode is applied, luma CTB is partitioned into CUs by one coding tree structure, and the chroma CTBs are partitioned into chroma CUs by another coding tree structure. This means that a CU in an I slice may consist of a coding block of the luma component or coding blocks of two chroma components, and a CU in a P or B slice always consists of coding blocks of all three colour components unless the video is monochrome.
[0016] For each inter-predicted CU, motion parameters consist of motion vectors, reference picture indices and reference picture list usage index, and additional information needed for the new coding feature of VVC to be used for inter-predicted sample generation. The motion parameter can be signalled in an explicit or implicit manner. When a CU is coded with skip mode, the CU is associated with one PU and has no significant residual coefficients, no coded motion vector delta or reference picture index. A merge mode is specified whereby the motion parameters for the current CU, which are obtained from neighbouring CUs, including spatial and temporal candidates, and additional schedules introduced in VVC. The merge mode can be applied to any inter-predicted CU, not only for skip mode. The alternative to the merge mode is the explicit transmission of motion parameters, where motion vector, corresponding reference picture index for each reference picture list and reference picture list usage flag and other needed information are signalled explicitly per each CU.
[0017] ITU-T VCEG (Q6 / 16) and ISO / IEC MPEG (JTC 1 / SC 29 / WG 5) are studying the potential need for standardization of future video coding technology with a compression capability that significantly exceeds that of the current VVC standard. The Enhanced Compression Model (ECM) reference software is provided to demonstrate a reference implementation of encoding techniques and the decoding process for JVET Enhanced compression beyond VVC capability exploration work. The reference software can be accessed via https: / / vcgit. hhi. fraunhofer. de / ecm / ECM. git. ECM basically is the successor to VVC and thus it shares many common parts as VVC.
[0018] Local Illumination Compensation (LIC)
[0019] LIC is an inter prediction technique to model local illumination variation between the current block and its prediction block as a function of that between 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, that is, α*p [x] +β to compensate illumination changes, where p[x] is a reference sample pointed to by MV at a location x on 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 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 is used for uni-prediction inter CUs with the following modifications.
[0021] ● Intra neighbour samples can be used in LIC parameter derivation;
[0022] ● LIC is disabled for blocks with less than 32 luma samples;
[0023] ● 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;
[0024] ● Samples of the reference block template are generated by using MC with the block MV without rounding it to integer-pel precision.
[0025] Bi-Predictive LIC
[0026] 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, i.e., P′ [x, y] = (1-ω) ·p′0 [x, y] +ω·p′1 [x, y] ,
[0027] and p′0 [x, y] =α0·P0 [x, y] +β0 p′1 [x, y] =α1·P1 [x, y] +β1,
[0028] 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.
[0029] 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.
[0030] OBMC with LIC
[0031] In the method, the OBMC is enabled for the inter blocks that are coded with the LIC mode and 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.
[0032] In the present invention, methods to improve the performance of LIC prediction are disclosed.
[0033] BRIEF SUMMARY OF THE INVENTION
[0034] A method and apparatus for video coding are disclosed. According to this method, input data associated with a current block is received, wherein the input data comprises pixel data to be encoded at an encoder side or data associated with the current block to be decoded at a decoder side, wherein the current block is coded in a non-intra mode. An LIC (Local Illumination Compensation) prediction model, wherein the LIC prediction model comprises a gamma term related to an input signal and a gamma value for the gamma term is not equal to 1. The current block is encoded or decoded using coding information comprising the LIC prediction model, wherein when the LIC prediction model is selected for the current block, a predictor for the current block is generated by applying the LIC prediction model to a reference block.
[0035] In one embodiment, one or more parameters of the LIC prediction model are derived by performing a regression-based process on a neighbouring template region of the current block.
[0036] In one embodiment, one or more parameters of the LIC prediction model are derived by performing a two-stage regression-based process, and wherein a first-stage regression process treats the gamma term with the gamma value set to 1 to derive other parameters and a second-stage regression process fixes the other parameters determined in the first-stage regression process to derive the gamma value.
[0037] In one embodiment, the gamma term is converted to a Taylor series, and only first N terms in the Taylor series are included in the LIC prediction model for simplification, and wherein N is a positive integer larger than 0. In another embodiment, the gamma value corresponds to a pre-defined constant value, and the gamma term is implemented by using a lookup table.
[0038] In one embodiment, the LIC prediction model comprises two gamma terms with two pre-defined constant gamma values. In one embodiment, first gamma term has a first pre-defined constant gamma value smaller than 1, and a second gamma term has a second pre-defined constant gamma value greater than 1.
[0039] In one embodiment, the LIC prediction model comprises M gamma terms with gamma values smaller than 1 and N gamma terms with gamma values greater than 1, and wherein M and N are positive integers.
[0040] In one embodiment, a CU level flag is signalled or parsed to indicate whether the LIC prediction model with gamma term is used for the current block or not, and wherein the CU level flag is located after an LIC flag.
[0041] In one embodiment, multiple LIC prediction models with different gamma values are available and a CU level flag is signalled or parsed to indicate which one of the multiple LIC prediction models is used for the current block, and wherein the CU level flag is located after an LIC flag. In one embodiment, a high-level syntax is signalled or parsed to indicate target gamma values used in the multiple LIC prediction models.
[0042] In one embodiment, the LIC prediction model is applied to a reference frame to generate a gamma corrected reference frame. In one embodiment, a CU-level flag is signalled or parsed to indicate whether the gamma corrected reference frame is selected for the current block. In one embodiment, the gamma corrected reference frame is always selected for the current block. In one embodiment, selection between the reference frame and the gamma corrected reference frame is determined according to template matching cost. In one embodiment, the gamma value used in the gamma corrected reference frame is directly signalled or parsed in a high-level syntax.BRIEF DESCRIPTION OF THE DRAWINGS
[0043] Fig. 1A illustrates an exemplary adaptive Inter / Intra video encoding system incorporating loop processing.
[0044] Fig. 1B illustrates a corresponding decoder for the encoder in Fig. 1A.
[0045] Fig. 2 illustrates examples of a multi-type tree structure corresponding to vertical binary splitting (SPLIT_BT_VER) , horizontal binary splitting (SPLIT_BT_HOR) , vertical ternary splitting (SPLIT_TT_VER) , and horizontal ternary splitting (SPLIT_TT_HOR) .
[0046] Fig. 3 shows an example of a CTU divided into multiple CUs with a quadtree and nested multi-type tree coding block structure, where the bold block edges represent quadtree partitioning and the remaining edges represent multi-type tree partitioning.
[0047] Fig. 4 illustrates a flowchart of an exemplary video coding system that incorporates LIC process with gamma correction according to an embodiment of the present invention.DETAILED DESCRIPTION OF THE INVENTION
[0048] 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.
[0049] 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.
[0050] In this invention, LIC prediction with gamma correction are disclosed to improve the performance of LIC prediction.
[0051] LIC Improvement with Gamma Correction
[0052] Gamma correction is a nonlinear operation used to encode and decode luminance or tri-stimulus values in video or still image systems. Gamma correction is, in the simplest cases, defined by the following expression:
[0053] where the non-negative real input value Vin is raised to the power of γ and multiplied by the constant a to get the output value Vout.
[0054] The assumption used in LIC is that there may be a linear relationship between samples of the current block and the samples of the reference block in another frame. However, in digital imaging system, the actual exposure of light is encoded into a digital value by the Gamma operation. The linear relationship between samples in different frames may exist before the Gamma operation rather than after the Gamma operation. Therefore, the current linear model used in LIC may not accurately formulate the relationship between samples in different frames.
[0055] Several methods are proposed in this disclosure to further improve the accuracy of LIC model.
[0056] Gamma Term in LIC Model
[0057] In one embodiment, a new gamma term G (x) is proposed to be used in the LIC model. The input x of the gamma term can be the collocated reference sample, and the γ can be a variable which will be derived by performing regression-based methods on the neighbouring template region. G (x) =xγ
[0058] In one embodiment, the LIC model can further contain the gamma term as the following formula. The gamma term has a variable γ. The optimal parameters c0, c1, c2 and γ can be derived by performing regression-based methods on the neighbouring template region. pred=c0x+c1xγ+c2B
[0059] In another embodiment, the gamma term can be converted to a Taylor series, and then only the first N terms in the Taylor series are included in the LIC model for simplification, where N is a positive integer larger than 0.
[0060] In another embodiment, the output of the original LIC model can be the input of the gamma term as the following formula. A two-stage regression method can be used to derive the optimal parameter c0, c1 and γ. In the first stage, the gamma value γ can be temporarily ignored (set to 1) , and the remaining parameters c0 and c1 are solved by the regression. In the second stage, c0 and c1 are fixed, and the gamma value γ is solved by a regression method: . pred= (c0x+c1B) γ.
[0061] Since there is only one parameter γ in the second round that needs to be derived, the regression process can be simplified into the following formula, and the logarithmic operation and the division operation can be replaced by a lookup table method.
[0062] In one embodiment, the γ in the gamma term can be a pre-defined constant real value, and the operation of the gamma term with the constant γ can be implemented through a lookup table.
[0063] In one embodiment, the LIC model can further contain two gamma terms with two pre-defined constant gamma values as the following formula. One of the gamma terms has a pre-defined constant gamma value γ1 smaller than 1, and the other has a pre-defined constant gamma value γ2 greater than 1. For example, γ1 can be 0.9 and γ2 can be 1.1. The optimal parameters c0, c1, c2 and c3 are derived by performing regression-based methods on the neighbouring template region.
[0064] In another embodiment, the LIC model can further contain multiple gamma terms with pre-defined constant gamma values. There are M gamma terms with pre-defined constant gamma values smaller than 1, and there are N gamma terms with pre-defined constant gamma values greater than 1, where M and N are positive integer values larger than 0.
[0065] In one embodiment, a CU level flag can be signalled after the LIC flag to indicate whether the LIC model with gamma term is used for the current block or not.
[0066] In another embodiment, there can be multiple LIC models, and some of them have different types of gamma term. A CU level index can be signalled after the LIC flag to indicate which LIC model is used for the current block.
[0067] In another embodiment, a high-level syntax can be signalled to indicate the gamma values used in the LIC model.
[0068] Frame-Level Gamma Correction
[0069] In one embodiment, a frame-level gamma correction method is proposed. In addition to the reference frame, gamma corrected reference frame can also be selected. The gamma corrected reference frame is derived by applying gamma correction on the reference frame as the following formula: frame′=G (frame)
[0070] In one embodiment, a CU-level flag can be signalled to indicate whether the selected reference frame is gamma corrected or not.
[0071] In another embodiment, the gamma corrected reference frame is always selected.
[0072] In another embodiment, the selection between the reference frame and the gamma corrected reference frame is determined according to the template matching cost.
[0073] In one embodiment, the gamma value γ used in the gamma corrected frame can be directly signalled in the high-level syntax.
[0074] In another embodiment, a gamma value index can be signalled in the high-level syntax, and the gamma value γ used in the gamma corrected frame is selected from a pre-defined gamma value list according to the signalled gamma value index.
[0075] In one embodiment, the gamma correction can be always applied to the reconstructed frame.
[0076] In another embodiment, a CU-level flag can be signalled to indicate whether the gamma correction is applied to the reconstructed samples of the current block or not.
[0077] LIC Template Pre-Processing
[0078] In one embodiment, before the LIC model derivation process, a low-pass filter can be applied to samples in the template region to reduce the impact of outliers.
[0079] In one embodiment, both the template region of the current block and the template region of the reference block can apply the low-pass filter.
[0080] In another embodiment, only the template region of the current block can apply the low-pass filter.
[0081] In another embodiment, only the template region of the reference block can apply the low-pass filter.
[0082] In one embodiment, a two-dimensional low-pass filter can be used for smoothing the samples in template region. For example, two-dimensional filters as shown in the following equation can be used:
[0083] In another embodiment, one horizontal one-dimensional low-pass filter can be used for smoothing the samples in the template region. For example, horizontal one-dimensional filters as shown in the following equation can be used: F4= [1 2 1] .
[0084] In another embodiment, one vertical one-dimensional low-pass filter can be used for smoothing the samples in the template region. For example, vertical one-dimensional filters as shown in the following equation can be used:
[0085] In another embodiment, two one-dimensional low-pass filters can be used for smoothing the samples in template region. A horizontal one-dimensional low-pass filter can be applied first, and then followed by a vertical one-dimensional low-pass filter.
[0086] In another embodiment, two one-dimensional low-pass filters can be used for smoothing the samples in template region. A vertical one-dimensional low-pass filter can be applied first, and then followed by a horizontal one-dimensional low-pass filter.
[0087] In another embodiment, MV of the current block can be used to determine the low-pass filter. For example, if the horizontal component of the MV of the current block is larger than a certain value, horizontal one-dimensional low-pass filter is used. For another example, if the horizontal component of the MV of the current block is larger than a certain value, vertical one-dimensional low-pass filter is used. For another example, if the vertical component of the MV of the current block is larger than a certain value, vertical one-dimensional low-pass filter is used. For another example, if the vertical component of the MV of the current block is larger than a certain value, horizontal one-dimensional low-pass filter is used. For another example, if the horizontal and vertical component of the MV of the current block are both smaller than a certain value, a two-dimensional low-pass filter is used.
[0088] In one embodiment, a CU level flag can be signalled to indicated whether the template smoothing method is used before LIC model derivation or not.
[0089] In one embodiment, a CU level index can be signalled to indicated which kind of low-pass filter is used before LIC model derivation. For example, if the index is equal to the first value, two-dimensional low-pass filter is used. If the index is equal to the second value, horizontal one-dimensional low-pass filter is used. If the index is equal to the third value, vertical one-dimensional low-pass filter is used.
[0090] Any of the foregoing proposed methods LIC with gamma correction can be implemented in encoders and / or decoders. For example, any of the proposed methods can be implemented in an inter / intra / prediction module of an encoder, and / or an inter / intra / prediction module of a decoder. Alternatively, any of the proposed methods can be implemented as a circuit coupled to the inter / intra / prediction module of the encoder and / or the inter / intra / prediction module of the decoder, so as to provide the information needed by the inter / intra / prediction module. With reference to the encoder and decoder in Fig. 1A and Fig. 1B, any of the proposed methods can be implemented in an inter / intra / prediction / transform module (e.g. Intra Pred. 110 in Fig. 1A) of an encoder, and / or an inter / intra / prediction / transform module (e.g. Intra Pred. 150 in Fig. 1B) of a decoder.
[0091] Fig. 4 illustrates a flowchart of an exemplary video coding system that incorporates LIC process with gamma correction according to an embodiment of the present invention. The steps shown in the flowchart may be implemented as program codes executable on one or more processors (e.g., one or more CPUs) at the encoder side and / or decoder side. The steps shown in the flowchart may also be implemented based hardware such as one or more electronic devices or processors arranged to perform the steps in the flowchart. According to this method, input data associated with a current block is received in step 410, wherein the input data comprises pixel data to be encoded at an encoder side or data associated with the current block to be decoded at a decoder side, wherein the current block is coded in a non-intra mode. An LIC (Local Illumination Compensation) prediction model is derived in step 420, wherein the LIC prediction model comprises a gamma term related to an input signal and a gamma value for the gamma term is not equal to 1. The current block is encoded or decoded using coding information comprising the LIC prediction model in step 430, wherein when the LIC prediction model is selected for the current block, a predictor for the current block is generated by applying the LIC prediction model to a reference block.
[0092] 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.
[0093] 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.
[0094] 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.
[0095] 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 comprises pixel data to be encoded at an encoder side or data associated with the current block to be decoded at a decoder side, wherein the current block is coded in an inter or IBC mode;deriving an LIC (Local Illumination Compensation) prediction model, wherein the LIC prediction model comprises a gamma term related to an input signal and a gamma value for the gamma term is not equal to 1; andencoding or decoding the current block using coding information comprising the LIC prediction model, wherein when the LIC prediction model is selected for the current block, a predictor for the current block is generated by applying the LIC prediction model to a reference block.2.The method of Claim 1, wherein one or more parameters of the LIC prediction model are derived by performing a regression-based process on a neighbouring template region of the current block.3.The method of Claim 1, wherein one or more parameters of the LIC prediction model are derived by performing a two-stage regression-based process, and wherein a first-stage regression process treats the gamma term with the gamma value set to 1 to derive other parameters and a second-stage regression process fixes the other parameters determined in the first-stage regression process to derive the gamma value.4.The method of Claim 1, wherein the gamma term is converted to a Taylor series, and only first N terms in the Taylor series are included in the LIC prediction model for simplification, and wherein N is a positive integer larger than 0.5.The method of Claim 1, wherein the gamma value corresponds to a pre-defined constant value.6.The method of Claim 5, wherein the gamma term is implemented by using a lookup table.7.The method of Claim 1, wherein the LIC prediction model comprises two gamma terms with two pre-defined constant gamma values.8.The method of Claim 7, wherein a first gamma term has a first pre-defined constant gamma value smaller than 1, and a second gamma term has a second pre-defined constant gamma value greater than 1.9.The method of Claim 1, wherein the LIC prediction model comprises M gamma terms with gamma values smaller than 1 and N gamma terms with the gamma values greater than 1, and wherein M and N are positive integers.10.The method of Claim 1, wherein a CU level flag is signalled or parsed to indicate whether the LIC prediction model with the gamma term is used for the current block or not, and wherein the CU level flag is located after an LIC flag.11.The method of Claim 1, wherein multiple LIC prediction models with different gamma values are available and a CU level flag is signalled or parsed to indicate which one of the multiple LIC prediction models is used for the current block, and wherein the CU level flag is located after an LIC flag.12.The method of Claim 11, wherein a high-level syntax is signalled or parsed to indicate target gamma values used in the multiple LIC prediction models.13.The method of Claim 1, wherein the LIC prediction model is applied to a reference frame to generate a gamma corrected reference frame.14.The method of Claim 13, wherein a CU-level flag is signalled or parsed to indicate whether the gamma corrected reference frame is selected for the current block.15.The method of Claim 13, wherein the gamma corrected reference frame is always selected for the current block.16.The method of Claim 13, wherein selection between the reference frame and the gamma corrected reference frame is determined according to template matching cost.17.The method of Claim 13, wherein the gamma value used in the gamma corrected reference frame is directly signalled or parsed in a high-level syntax.18.An apparatus for video coding, the apparatus comprising one or more electronics or processors arranged to:receive input data associated with a current block, wherein the input data comprises pixel data to be encoded at an encoder side or data associated with the current block to be decoded at a decoder side, wherein the current block is coded in an inter or IBC mode;derive an LIC (Local Illumination Compensation) prediction model, wherein the LIC prediction model comprises a gamma term related to an input signal and a gamma value for the gamma term is not equal to 1; andencode or decode the current block using coding information comprising the LIC prediction model, wherein when the LIC prediction model is selected for the current block, a predictor for the current block is generated by applying the LIC prediction model to a reference block.
Citation Information
Patent Citations
Harmonized local illumination compensation and modified inter prediction coding
CN112868240A
Method and apparatus of local illumination compensation for predictive coding
CN113170152A
Model parameter derivation for local illumination compensation in luma mapping domain with chroma scaling in video coding
CN115997381A
Regularization of local illumination compensation for video encoding or decoding
EP3706418A1
Local illumination compensation for video encoding and decoding using stored parameters
US20230283787A1