Methods and apparatus for improvement of sample adaptive offset in video coding
By employing expanded classification and tailored thresholds for SAO and CCSAO based on CU-specific parameters, the video coding system achieves enhanced coding performance and video quality, addressing inefficiencies in existing VVC systems.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- MEDIATEK INC
- Filing Date
- 2025-10-22
- Publication Date
- 2026-05-15
AI Technical Summary
Existing video coding systems, particularly in versatile video coding (VVC), face inefficiencies in refining reconstructed samples using Cross-Component Sample Adaptive Offset (CCSAO) due to suboptimal classification methods and derivation of offsets and scaling factors, leading to subpar coding performance.
Implement expanded classification methods for SAO and CCSAO, utilizing various coding parameters and information related to current coding units (CUs) to derive tailored thresholds, offsets, and scaling factors for improved sample refinement, including different thresholds for inter and intra blocks, considering CU residuals and boundary filtering strength, and signaling these parameters at different coding levels.
Enhances coding performance by optimizing sample classification and refinement, leading to improved video quality and reduced bitstream overhead through refined SAO and CCSAO processes.
Smart Images

Figure CN2025129301_15052026_PF_FP_ABST
Abstract
Description
METHODS AND APPARATUS FOR IMPROVEMENT OF SAMPLE ADAPTIVE OFFSET IN VIDEO CODINGCROSS REFERENCE TO RELATED APPLICATIONS
[0001] The present invention is a non-Provisional Application of and claims priority to U.S. Provisional Patent Application No. 63 / 716,756, filed on November 6, 2024. The U.S. Provisional Patent Application is hereby incorporated by reference in its entirety.FIELD OF THE INVENTION
[0002] The present invention relates to video coding system using SAO (Sample Adaptive Offset) or CCSAO (Cross-Component SAO) . In particular, the present invention relates to an expanded classification method for SAO and a method for deriving an offset and / or scaling factor to further refine the CCSAO / SAO derived refinements. BACKGROUND AND RELATED ART
[0003] Versatile video coding (VVC) is the latest international video coding standard developed by the Joint Video Experts Team (JVET) of the ITU-T Video Coding Experts Group (VCEG) and the ISO / IEC Moving Picture Experts Group (MPEG) . The standard has been published as an ISO standard: ISO / IEC 23090-3: 2021, Information technology -Coded representation of immersive media -Part 3: Versatile video coding, published Feb. 2021. VVC is developed based on its predecessor HEVC (High Efficiency Video Coding) by adding more coding tools to improve coding efficiency and also to handle various types of video sources including 3-dimensional (3D) video signals.
[0004] Fig. 1A illustrates an exemplary adaptive Inter / Intra video encoding system incorporating loop processing. For Intra Prediction 110, the prediction data is derived based on previously coded video data in the current picture. For Inter Prediction 112, Motion Estimation (ME) is performed at the encoder side and Motion Compensation (MC) is performed based on the result of ME to provide prediction data derived from other picture (s) and motion data. Switch 114 selects Intra Prediction 110 or Inter Prediction 112 and the selected prediction data is supplied to Adder 116 to form prediction errors, also called residues. The prediction error is then processed by Transform (T) 118 followed by Quantization (Q) 120. The transformed and quantized residues are then coded by Entropy Encoder 122 to be included in a video bitstream corresponding to the compressed video data. The bitstream associated with the transform coefficients is then packed with side information such as motion and coding modes associated with Intra prediction and Inter prediction, and other information such as parameters associated with loop filters applied to underlying image area. The side information associated with Intra Prediction 110, Inter prediction 112 and in-loop filter 130, is provided to Entropy Encoder 122 as shown in Fig. 1A. When an Inter-prediction mode is used, a reference picture or pictures have to be reconstructed at the encoder end as well. Consequently, the transformed and quantized residues are processed by Inverse Quantization (IQ) 124 and Inverse Transformation (IT) 126 to recover the residues. The residues are then added back to prediction data 136 at Reconstruction (REC) 128 to reconstruct video data. The reconstructed video data may be stored in Reference Picture Buffer 134 and used for prediction of other frames.
[0005] As shown in Fig. 1A, incoming video data undergoes a series of processing in the encoding system. The reconstructed video data from REC 128 may be subject to various impairments due to a series of processing. Accordingly, in-loop filter 130 is often applied to the reconstructed video data before the reconstructed video data are stored in the Reference Picture Buffer 134 in order to improve video quality. For example, deblocking filter (DF) , Sample Adaptive Offset (SAO) and Adaptive Loop Filter (ALF) may be used. The loop filter information may need to be incorporated in the bitstream so that a decoder can properly recover the required information. Therefore, loop filter information is also provided to Entropy Encoder 122 for incorporation into the bitstream. In Fig. 1A, Loop filter 130 is applied to the reconstructed video before the reconstructed samples are stored in the reference picture buffer 134. The system in Fig. 1A is intended to illustrate an exemplary structure of a typical video encoder. It may correspond to the High Efficiency Video Coding (HEVC) system, VP8, VP9, H. 264 or VVC.
[0006] The decoder, as shown in Fig. 1B, can use some of the functional blocks as the encoder. For example, the decoder can reuse Inverse Quantization 124 and Inverse Transform 126; however, Transform 118 and Quantization 120 are not needed at the decoder. 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] In VVC, the Sequence Parameter Set (SPS) and the Picture Parameter Set (PPS) contain high-level syntax elements that apply to entire coded video sequences and pictures, respectively. The Picture Header (PH) and Slice Header (SH) contain high-level syntax elements that apply to a current coded picture and a current coded slice, respectively.
[0008] In VVC, a coded picture is partitioned into non-overlapped square block regions represented by the associated coding tree units (CTUs) . A coded picture can be represented by a collection of slices, each comprising an integer number of CTUs. The individual CTUs in a slice are processed in raster-scan order. A bi-predictive (B) slice may be decoded using intra prediction or inter prediction with at most two motion vectors and reference indices to predict the sample values of each block. A predictive (P) slice is decoded using intra prediction or inter prediction with at most one motion vector and reference index to predict the sample values of each block. An intra (I) slice is decoded using intra prediction only.
[0009] Cross-Component Sample Adaptive Offset (CCSAO)
[0010] Cross-Component Sample Adaptive Offset (CCSAO) is used to refine reconstructed chroma samples. Similar to SAO, the CCSAO classifies the reconstructed samples into different categories, derives one offset for each category and adds the offset to the reconstructed samples in that category. However, different from SAO which only uses one single luma / chroma component of the current sample as input, the CCSAO utilizes all three components to classify the current sample into different categories. To facilitate the parallel processing, the output samples from the de-blocking filter are used as the input of the CCSAO. Fig. 2 shows the diagram of the decoding workflow when the CCSAO is applied. In Fig. 2, the de-blocked signals (i.e., DBF Y 210, DBF U 212 and DBF V 214) are fed to the SAO processes (i.e., SAO Y 220, SAO U 222 and SAO V 224) and the CCSAO processes (i.e., CCSAO Y 230, CCSAO U 232 and CCSAO V 234) in parallel.
[0011] In CCSAO, only BO (Band Offset) is used to enhance the quality of the reconstructed samples. For a given luma / chroma sample, three candidate samples are selected to classify the given sample into different categories: one collocated Y sample, one collocated U sample, and one collocated V sample. The sample values of these three selected samples are then classified into three different bands {bandY, bandU, bandV} , and a joint index i represents the category of the given sample. One offset is signalled and added to the reconstructed samples that fall into that category, which can be formulated as: bandY= (Ycol·NY) >>BD bandU= (Ucol·NU) >>BD bandV= (Vcol·NV) >>BD i=bandY· (NU·NV) +bandU·NV+bandV C′rec=Clip1 (Crec+σCCSAO [i] ) where {Ycol, Ucol, Vcol} are the three selected collocated samples used to classify current sample; {NY, NU, NV} are the numbers of equally divided bands applied to {Ycol, Ucol, Vcol} full range respectively; BD is the internal coding bit-depth; Crec and Cr′ec are the reconstructed samples before and after the CCSAO is applied; σCCSAO [i] is the value of the CCSAO offset applied to i-th BO category.
[0012] The collocated luma sample can be chosen from 9 candidate positions 310, while the collocated chroma sample positions 320 and 330 are fixed, as depicted in Fig. 3.
[0013] Similar to SAO, different classifiers can be applied to different local regions to further enhance the whole picture quality. The parameters for each classifier (i.e., the position of Ycol, NY, NU, NV, and offsets) are signalled at picture level, and the classifier to be used is explicitly signalled and switched at CTB level. For each classifier, the maximum of {NY, NU, NV} is set to {16, 4, 4} , and offsets are constrained to be within the range [-15, 15] . At most 4 classifiers are used per frame.
[0014] SAO 410, Bilateral filter (BIF) 420 and CCSAO offset 430 are computed in parallel, added to the reconstructed chroma samples and jointly clipped, as shown in Fig. 4.
[0015] Similar to the edge classifier of SAO in VVC the edge-based classifier of CCSAO also uses the four 1-D directional patterns for sample classification: horizontal 510, vertical 520, 135° diagonal 530 and 45° diagonal 540, as shown in Fig. 5.
[0016] For every 1-D pattern, each sample is classified based on the sample difference between the luma sample value labelled as “c” and its two neighbour luma samples labelled as “a” and “b” along the selected 1-D pattern.
[0017] Similar to SAO, the encoder may decide the best 1-D directional pattern using the rate-distortion optimization (RDO) and signal this additional information in each classifier / set. Both the sample differences “a-c” and “b-c” are compared against a pre-defined threshold value (Th) to derive the final “class_idx” information.
[0018] The encoder selects the best “Th” value from an array of pre-defined threshold values based on RDO and the index into the “Th” array is signalled.
[0019] Furthermore, an additional difference between CCSAO edge-based classifier and the SAO edge classifier in VVC is that, in the former, chroma samples use the co-located luma samples for deriving the edge information (samples “a” , “c” and “b” are the co-located luma samples) whereas, in the later chroma samples use its own neighbouring samples for deriving the edge information.
[0020] Two edge-based classifiers are supported in ECM, and the edge-based classifier is decided by RDO and is signalled in slice header.
[0021] The first edge-based classifier process is formulated as follows: Ea= (a-c<0) ? (a-c< (-Th) ? 0: 1) : (a-c< (Th) ? 2: 3) (1) Eb= (b-c<0) ? (b-c< (-Th) ? 0: 1) : (b-c< (Th) ? 2: 3) (2) class_idx = iB *16 + Ea *4 + Eb (3) C′rec=Clip1 (Crec+σCCSAO [class_idx] ) (4) variable “iB” in equation (3) is derived as follows: iB= (cur ·Ncur) >>BD (or) iB= (col1 ·Ncol1) >>BD (or) iB=(col2 ·Ncol2) >>BD, (5) wherein, sample “cur” is the current sample being processed, col1 and col2 are the co-located samples.
[0022] When luma samples are processed, col1 and col2 are the co-located Cb and Crsamples respectively. When chroma (Cb) samples are processed, col1 and col2 are the co-located Y and Crsamples respectively. Similarly when Chroma (Cr) samples are processed, col1 and col2 are the co-located Y and Cb samples respectively.
[0023] Based on RDO, encoder signals one among the samples “cur” , “col1" , "col2" used in deriving the band information.
[0024] The second edge-based classifier is a subset of the first edge-based classifier with less edge range divisions, and is formulated as follows: Ea= (a-c< (-Th) ? 0: 1) (6) Eb= (b-c< (-Th) ? 0: 1) (7) class_idx = iB *4 + Ea *2 + Eb (8) C′rec=Clip1 (CreC+σCCSAO [class_idx] ) (9)
[0025] To reduce the signalling overhead, the CCASO offsets and classifier parameters can be inherited from previous coded pictures. A FIFO buffer is used to store the CCASO parameters. An index is signalled in slice header to indicate which candidate in the FIFO buffer is selected for the current slice.
[0026] In the present invention, methods and apparatus of expanded classification for SAO or CCSAO are disclosed to improve the performance. In addition, methods and apparatus for deriving an offset and / or scaling factor to further refine the CCSAO / SAO derived refinements are disclosed to improve the coding performance. BRIEF SUMMARY OF THE INVENTION
[0027] A method and apparatus for video coding using SAO or CCSAO are disclosed. According to the method, input data for a current block is received, wherein the input data comprises reconstructed samples of the current block. A target reconstructed sample is classified into a target group among multiple groups according to coding parameter or coding information associated with the current block, wherein the coding parameter or the coding information belongs to a group comprising selected reference pictures indices, temporal distance between a reference picture and a current picture, quantization parameter, current CU size, coded information of the current block, prediction mode, motion vectors, motion vector resolution, residual of the current CU, reference samples, boundary filtering strength (bS) value, or a combination thereof. Target SAO (Sample Adaptive Offset) or CCSAO (Cross-Component SAO) process associated with the target group is applied to the target reconstructed sample to generate a SAO or CCSAO processed sample. The SAO processed sample is provided.
[0028] In one embodiment, a first threshold for SAO or CCSAO band derivation for an inter block is different from a second threshold for the SAO or CCSAO band derivation for an intra block. In one embodiment, the second threshold for the intra block is larger than the first threshold for the inter block. In one embodiment, a first threshold for SAO or CCSAO band derivation for a first block without residual is different from a second threshold for the SAO or CCSAO band derivation for a second block with residuals. In one embodiment, the second threshold for the second block with residuals is larger than the first threshold for the first block without residual. In one embodiment, a first number of maximum allowed bands for SAO or CCSAO band derivation for a first block coded in a first mode is different from a second number of maximum allowed bands for the SAO or CCSAO band derivation for a second block coded in a different mode from the first mode. In one embodiment, a first number of maximum allowed bands for SAO or CCSAO band derivation for a luma block is different from a second number of maximum allowed bands for the SAO or CCSAO band derivation for a chroma block.
[0029] In one embodiment, a total number of Band-Offset bands or Edge-Offset classes for SAO or CCSAO band or class derivation is different for different reconstructed samples. In one embodiment, for boundary reconstructed samples, boundary filtering strength (bS) is considered for classification. In one embodiment, the total number of Band-Offset bands for the SAO or CCSAO band derivation corresponds to a value of bS multiplying with an initial number of BO bands.
[0030] A method for deriving an offset and / or scaling factor to further refine the CCSAO / SAO derived refinements are disclosed. According to this method, input data for a current block is received, wherein the input data comprises reconstructed samples of the current block. One or more offsets or one or more scaling factors are determined for the current block. SAO (Sample Adaptive Offset) or CCSAO (Cross-Component SAO) process is applied to a target reconstructed sample to generate a SAO or CCSAO processed sample. Said one or more offsets or said one or more scaling factors are applied to the SAO or CCSAO processed sample to generate a further refined reconstruction sample. The further refined reconstruction sample is provided.
[0031] In one embodiment, said one or more offsets or said one or more scaling factors are derived according to coding parameter or coding information associated with the current block, wherein the coding parameter or the coding information belongs to a group comprising selected reference pictures indices, temporal distance between a reference picture and a current picture, quantization parameter, current CU size, coded information of the current block, prediction mode, motion vectors, motion vector resolution, residual of the current CU, reference samples, boundary filtering strength (bS) value, or a combination thereof. In one embodiment, said one or more offsets correspond to pre-defined values. In one embodiment, said one or more offsets are only used to refine boundary samples according to bS value.
[0032] In one embodiment, one or more flags are signalled or parsed to indicate whether said one or more offsets or said one or more scaling factors are applied to the SAO or CCSAO processed sample to generate the further refined reconstruction sample. In one embodiment, said one or more flags are signalled or parsed at CTU (Coding Tree Unit) , slice, tile, sub-picture, picture, sequence level, APS (Adaptation Parameter Set) , PPS (Picture Parameter Set) , VPS (Video Parameter Set) , SPS (Sequence Parameter Set) level, or a combination thereof.BRIEF DESCRIPTION OF THE DRAWINGS
[0033] Fig. 1A illustrates an exemplary adaptive Inter / Intra video coding system incorporating loop processing.
[0034] Fig. 1B illustrates a corresponding decoder for the encoder in Fig. 1A.
[0035] Fig. 2 illustrates an example of modified SAO process when the CCSAO is applied.
[0036] Fig. 3 illustrates an example of the candidate positions used for the CCSAO classifier.
[0037] Fig. 4 illustrates an example of joint clipping after adding SAO / BIF / CCSAO offsets to the input sample.
[0038] Fig. 5 illustrates the four 1-D directional patterns for CCSAO EO sample classification: horizontal (EO class = 0) , vertical (EO class =1) , 135° diagonal and 45° diagonal.
[0039] Fig. 6 illustrates a flowchart of an exemplary video coding system that uses expanded classification for SAO or CCSAO according to an embodiment of the present invention.
[0040] Fig. 7 illustrates a flowchart of an exemplary video coding system that derives an offset and / or scaling factor to further refine the CCSAO / SAO derived refinements are disclosed to improve the coding performance.DETAILED DESCRIPTION OF THE INVENTION
[0041] 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.
[0042] 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.
[0043] In SAO and CCSAO, the process applies classification to the reconstructed samples to classify them into different categories, derives one offset for each category and adds the offset to the reconstructed samples in that category. CCSAO utilizes all three components to classify the current sample into different categories.
[0044] In the present invention, the classification of samples utilises various parameters and / or coding information related to the current CU instead of the samples themselves. For example, the classification can be performed according to one or the combination of the selected reference picture indices, temporal distance between a reference picture and the current picture, quantization parameter, current CU size, the coded information of current CU, prediction mode, motion vectors, motion vector resolution, residual of current CU, and reference samples, and boundary filtering strength (bS) value.
[0045] For another example, the thresholds for CCSAO / SAO band derivation for inter CUs and intra CUs are different. For example, larger thresholds are used for intra CUs EO class derivation.
[0046] For another example, the thresholds for CCSAO / SAO band derivation for CUs without residual and CUs with residual are different. For example, larger thresholds are used for CUs with residual.
[0047] For another example, the thresholds for CCSAO / SAO band derivation for CUs with a larger temporal distance between the reference picture and the current picture are different from CUs with a shorter temporal distance. For example, larger thresholds are used for CUs with a larger temporal distance between reference pictures.
[0048] For another example, the maximum allowed band number for luma or chroma can be different.
[0049] For another example, the maximum allowed band number can be different for CUs coded with different modes.
[0050] For another example, the total number of BO bands can be different for different samples. For example, for samples in the CU boundary, the boundary filtering strength (bS) will be considered during classification. The total number of categories is equal to the number of bS multiplying by the number of BO bands.
[0051] For another example, the total number of EO classes can be different for some samples, and can be derived according to bS value. For example, for samples in the CU boundary, the total number of categories is equal to the number of bS multiplying with the number of EO classes.
[0052] For another example, the total number of EO classes can be different for some samples. For example, for samples in the CU boundary, the total number of categories become double compared to the samples not in the CU boundary.
[0053] For another example, the total number of EO thresholds can be different for some samples. For example, for samples in CU boundary, the total number of EO thresholds become double compared to the samples not in CU boundary.
[0054] For another example, the selected positions of luma samples can be different for some samples. For example, for samples in CU boundary, 2 by 4 sample positions will be used for luma samples selection. For other samples, 3 by 3 sample positions will be used.
[0055] For another example, the above-mentioned methods can only be applied to the boundary samples of two neighbouring CUs predicted by different modes.
[0056] For another example, the CU boundary checking conditions mentioned above can be replaced by CU prediction mode such as IBC, inter, or intra mode.
[0057] For another example, the CU boundary checking conditions mentioned above can be replaced by the number of non-zero residual coefficients in the CU.
[0058] In one embodiment, an offset will be derived for a CU to further refine the CCSAO / SAO derived refinements. The derivation of the offsets is according to the selected reference pictures indices, temporal distance between the reference picture and the current picture, quantization parameter, current CU size, the coded information of the current CU, prediction mode, motion vectors, motion vector resolution, residual of the current CU, reference samples, or a combination thereof.
[0059] In one example, the offsets can be pre-defined values, such as +1, -1, +2, or -2. An offset will be used to further refine the CCSAO / SAO derived refinements. The final refinement will be the sum of the CCSAO / SAO derived refinements and the offsets.
[0060] For another example, the offsets can only be used to refine the boundary samples.
[0061] In another example, the offsets can only be used to refine the boundary samples according to the bS value.
[0062] In another example, the offsets will be signalled to decoder to further refine the CCSAO / SAO derived refinements.
[0063] In another example, an on-off flag is signalled at CTU-level to indicate the further refinement scheme.
[0064] In another example, the offsets will be applied to CU with residual only.
[0065] In another example, the offsets will be applied to current CU coded by IBC mode, intra mode, or inter mode.
[0066] In one embodiment, the previously mentioned offset can also be a scaling factor. The final refinement will be the CCSAO / SAO derived refinements multiplied by a scaling factor.
[0067] In the above two embodiments, the derivation method of the offsets or scaling factors is explicitly indicated by one or more flags. The flags are signalled / parsed at CTU / slice / tile / sub-picture / picture / sequence level, or at APS / PPS / VPS / SPS level.
[0068] For example, samples are categorized into multiple classes based on CU information, and an offset or a scaling factor is specified for each class by explicit signalling.
[0069] In another embodiment, an offset or a scaling factor is derived to further refine CCSAO / SAO derived refinements. The derivation of the offsets or the scaling factors is based on a classifier, and the classifier is the same as what is used in CCSAO / SAO. In one example, CCSAO / SAO classifier categorizes samples into several classes, and one offset (this offset is different from the one in CCSAO / SAO) or one scaling factor is determined based on the sample class. How to select offsets or scaling factors based on classes is specified by some high-level flags.
[0070] In the above example, the further refinement provided by the offset or the scaling factor is only applied to the coding regions that reuses the CCSAO / SAO parameters.
[0071] Any of the foregoing proposed methods of classification for SAO can be implemented in encoders and / or decoders. For example, any of the proposed methods can be implemented in the loop filter of an encoder, and / or a decoder. Alternatively, any of the proposed methods can be implemented as a circuit coupled to the loop filter of the encoder and / or the decoder, so as to provide the information needed by the inter coding.
[0072] With reference to the exemplary encoder or decoder in Fig. 1A and Fig. 1B, any of the methods of SAO classification can be implemented in the In-Loop-Filtering 130 in an in an encoder or decoder. Any of the proposed methods can also be implemented as a circuit coupled to the intra / inter coding module at the decoder or the encoder. However, the decoder or encoder may also use additional processing unit to implement the required classification and SAO process. While the In-Loop-Filtering process is shown as an individual processing unit, it 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) ) .
[0073] Fig. 6 illustrates a flowchart of an exemplary video coding system that uses expanded classification for SAO or CCSAO 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 for a current block is received in step 610, wherein the input data comprises reconstructed samples of the current block. A target reconstructed sample is classified into a target group among multiple groups according to coding parameter or coding information associated with the current block in step 620, wherein the coding parameter or the coding information belongs to a group comprising selected reference pictures indices, temporal distance between a reference picture and a current picture, quantization parameter, current CU size, coded information of the current block, prediction mode, motion vectors, motion vector resolution, residual of the current CU, reference samples, boundary filtering strength (bS) value, or a combination thereof. Target SAO (Sample Adaptive Offset) or CCSAO (Cross-Component SAO) process associated with the target group is applied to the target reconstructed sample to generate a SAO or CCSAO processed sample in step 630. The SAO processed sample is provided in step 640.
[0074] Fig. 7 illustrates a flowchart of an exemplary video coding system that derives an offset and / or scaling factor to further refine the CCSAO / SAO derived refinements are disclosed to improve the coding performance. According to this method, input data for a current block is received in step 710, wherein the input data comprises reconstructed samples of the current block. One or more offsets or one or more scaling factors are determined for the current block in step 720. SAO (Sample Adaptive Offset) or CCSAO (Cross-Component SAO) process is applied to a target reconstructed sample to generate a SAO or CCSAO processed sample in step 730. Said one or more offsets or said one or more scaling factors are applied to the SAO or CCSAO processed sample to generate a further refined reconstruction sample in step 740. The further refined reconstruction sample is provided in step 750.
[0075] The flowcharts shown are intended to illustrate an example of video coding according to the present invention. A person skilled in the art may modify each step, re-arranges the steps, split a step, or combine steps to practice the present invention without departing from the spirit of the present invention. In the disclosure, specific syntax and semantics have been used to illustrate examples to implement embodiments of the present invention. A skilled person may practice the present invention by substituting the syntax and semantics with equivalent syntax and semantics without departing from the spirit of the present invention.
[0076] 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.
[0077] 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.
[0078] 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 for in-loop filtering of reconstructed video data, the method comprising:receiving input data for a current block, wherein the input data comprises reconstructed samples of the current block;classifying a target reconstructed sample into a target group among multiple groups according to coding parameter or coding information associated with the current block, wherein the coding parameter or the coding information belongs to a group comprising selected reference pictures indices, temporal distance between a reference picture and a current picture, quantization parameter, current CU size, coded information of the current block, prediction mode, motion vectors, motion vector resolution, residual of the current CU, reference samples, boundary filtering strength (bS) value, or a combination thereof;applying target SAO (Sample Adaptive Offset) or CCSAO (Cross-Component SAO) process associated with the target group to the target reconstructed sample to generate a SAO or CCSAO processed sample; andproviding the SAO or CCSAO processed sample.2.The method of Claim 1, wherein a first threshold for SAO or CCSAO band derivation for an inter block is different from a second threshold for the SAO or CCSAO band derivation for an intra block.3.The method of Claim 2, wherein the second threshold for the intra block is larger than the first threshold for the inter block.4.The method of Claim 1, wherein a first threshold for SAO or CCSAO band derivation for a first block without residual is different from a second threshold for the SAO or CCSAO band derivation for a second block with residuals.5.The method of Claim 4, wherein the second threshold for the second block with residuals is larger than the first threshold for the first block without residual.6.The method of Claim 1, wherein a first number of maximum allowed bands for SAO or CCSAO band derivation for a first block coded in a first mode is different from a second number of maximum allowed bands for the SAO or CCSAO band derivation for a second block coded in a different mode from the first mode.7.The method of Claim 1, wherein a first number of maximum allowed bands for SAO or CCSAO band derivation for a luma block is different from a second number of maximum allowed bands for the SAO or CCSAO band derivation for a chroma block.8.The method of Claim 1, wherein a total number of Band-Offset bands or Edge-Offset classes for SAO or CCSAO band or class derivation is different for different reconstructed samples.9.The method of Claim 8, wherein for boundary reconstructed samples, boundary filtering strength (bS) is considered for classification.10.The method of Claim 9, wherein the total number of Band-Offset bands for the SAO or CCSAO band derivation corresponds to a value of bS multiplying with an initial number of BO bands.11.An apparatus for video coding, the apparatus comprising one or more electronics or processors arranged to:receive input data for a current block, wherein the input data comprises reconstructed samples of the current block;classify a target reconstructed sample into a target group among multiple groups according to coding parameter or coding information associated with the current block, wherein the coding parameter or the coding information belongs to a group comprising selected reference pictures indices, temporal distance between a reference picture and a current picture, quantization parameter, current CU size, coded information of the current block, prediction mode, motion vectors, motion vector resolution, residual of the current CU, reference samples, boundary filtering strength (bS) value, or a combination thereof;apply target SAO (Sample Adaptive Offset) or CCSAO (Cross-Component SAO) process associated with the target group to the target reconstructed sample to generate a SAO or CCSAO processed sample; andprovide the SAO p or CCSAO processed sample.12.A method for in-loop filtering of reconstructed video data, the method comprising:receiving input data for a current block, wherein the input data comprises reconstructed samples of the current block;determining one or more offsets or one or more scaling factors for the current block;applying SAO (Sample Adaptive Offset) or CCSAO (Cross-Component SAO) process to a target reconstructed sample to generate a SAO or CCSAO processed sample;applying said one or more offsets or said one or more scaling factors to the SAO or CCSAO processed sample to generate a further refined reconstruction sample; andproviding the further refined reconstruction sample.13.The method of Claim 12, wherein said one or more offsets or said one or more scaling factors are derived according to coding parameter or coding information associated with the current block, wherein the coding parameter or the coding information belongs to a group comprising selected reference pictures indices, temporal distance between a reference picture and a current picture, quantization parameter, current CU size, coded information of the current block, prediction mode, motion vectors, motion vector resolution, residual of the current CU, reference samples, boundary filtering strength (bS) value, or a combination thereof.14.The method of Claim 13, wherein said one or more offsets correspond to pre-defined values.15.The method of Claim 13, wherein said one or more offsets are only used to refine boundary samples according to bS value.16.The method of Claim 12, wherein one or more flags are signalled or parsed to indicate whether said one or more offsets or said one or more scaling factors are applied to the SAO or CCSAO processed sample to generate the further refined reconstruction sample.17.The method of Claim 16, wherein said one or more flags are signalled or parsed at CTU (Coding Tree Unit) , slice, tile, sub-picture, picture, sequence level, APS (Adaptation Parameter Set) , PPS (Picture Parameter Set) , VPS (Video Parameter Set) , SPS (Sequence Parameter Set) level, or a combination thereof.18.An apparatus for video coding, the apparatus comprising one or more electronics or processors arranged to:receive input data for a current block, wherein the input data comprises reconstructed samples of the current block;determine one or more offsets or one or more scaling factors for the current block;apply SAO (Sample Adaptive Offset) or CCSAO (Cross-Component SAO) process to a target reconstructed sample to generate a SAO or CCSAO processed sample;apply said one or more offsets or said one or more scaling factors to the SAO or CCSAO processed sample to generate a further refined reconstruction sample; andprovide the further refined reconstruction sample.