Method and apparatus of temporal ALF or chroma in video coding

By applying TALF to chroma components and performing TALF and NNLF in parallel, the latency issues in existing video coding systems are addressed, enhancing chroma quality and reducing processing delays.

WO2026153296A1PCT designated stage Publication Date: 2026-07-23MEDIATEK INC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
MEDIATEK INC
Filing Date
2026-01-13
Publication Date
2026-07-23

AI Technical Summary

Technical Problem

Existing video coding systems face challenges in reducing latency and enhancing the quality of chroma components using adaptive loop filters, particularly with the introduction of TALF and NNLF, which can introduce additional processing delays.

Method used

Introduce Temporal Adaptive Loop Filter (TALF) for chroma components, allowing inputs from reference pictures and reducing dependency on current reconstructed values, and perform TALF and Neural Network-based Loop Filter (NNLF) in parallel to enhance in-loop filtering without increasing latency.

Benefits of technology

Reduces coding artifacts and improves the quality of chroma components by utilizing TALF and NNLF in parallel, while minimizing latency in the decoding process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2026072160_23072026_PF_FP_ABST
    Figure CN2026072160_23072026_PF_FP_ABST
Patent Text Reader

Abstract

Methods and apparatus for video coding using the ALF are disclosed. According to one method, a Temporal Adaptive Loop Filter (TALF) correction term is derived according to a TALF process for a target sample of the current block or a Neural Network-based in-Loop Filtering (NNLF) correction term is derived according to an NNLF process for the target sample of the current block. A first process correction term is derived according to a first process of in-loop filtering in parallel with the said TALF or NNLF process. A filtered target sample is generated by using the target sample, the first process correction term, and one of: the TALF correction term, the NNLF correction term, or a combination of the TALF correction term and the NNLF correction ter. In yet another embodiment, a flag is signalled at a CTU, CTB, CU, PU, or TU level associated with the current block, where the flag indicates a filtering mode for a Temporal Adaptive Loop Filter (TALF) process.
Need to check novelty before this filing date? Find Prior Art

Description

METHOD AND APPARATUS OF TEMPORAL ALF OR CHROMA 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 / 744, 902, filed on January 14, 2025. 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 ALF (Adaptive Loop Filter) . In particular, the present invention discloses a scheme to apply TALF for chroma and reduce latency for TALF and NNLF (Neural Network-based Loop Filter) in in-loop-filtering. BACKGROUND AND RELATED ART

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

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

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

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

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

[0008] Adaptive Loop Filter in VVC

[0009] In VVC, an Adaptive Loop Filter (ALF) with block-based filter adaption is applied. For the luma component, one filter is selected among 25 filters for each 4×4 block, based on the direction and activity of local gradients.

[0010] 1. Filter shape

[0011] Two diamond filter shapes (as shown in Fig. 2) are used. The 7×7 diamond shape 220 is applied for luma component and the 5×5 diamond shape 210 is applied for the chroma components.

[0012] 2. Block classification and geometric transformation

[0013] For luma component, each 4×4 block is categorized into one out of 25 classes. Before filtering each 4×4 luma block, geometric transformations such as rotation or diagonal and vertical flipping are applied to the filter coefficients f (k, l) and to the corresponding filter clipping values c(k, l) depending on gradient values calculated for that block. This is equivalent to applying these transformations to the samples in the filter support region. The idea is to make different blocks to which ALF is applied more similar by aligning their directionality.

[0014] For chroma components in a picture, no classification method is applied.

[0015] More details could be found in VVC specification section 8.8.5.3.

[0016] 3. Filtering process

[0017] At decoder side, when ALF is enabled for a CTB, each sample R (i, j) within the CU is filtered, resulting in sample value R′ (i, j) as shown below, where f (k, l) denotes the decoded filter coefficients, K (x, y) is the clipping function and c (k, l) denotes the decoded clipping parameters. The variable k and l varies between –L / 2 and L / 2, where L denotes the filter length. The clipping function K (x, y) =min (y, max (-y, x) ) which corresponds to the function Clip3 (-y, y, x) . The clipping operation introduces non-linearity to make ALF more efficient by reducing the impact of neighbour sample values that are too different with the current sample value.

[0018] 4. Cross component adaptive loop filter

[0019] CC-ALF uses luma sample values to refine each chroma component by applying an adaptive, linear filter to the luma channel and then using the output of this filtering operation for chroma refinement. Fig. 3A provides a system level diagram of the CC-ALF process with respect to the SAO, luma ALF and chroma ALF processes. As shown in Fig. 3A, each colour component (i.e., Y, Cb and Cr) is processed by its respective SAO (i.e., SAO Luma 310, SAO Cb 312 and SAO Cr 314) . After SAO, ALF Luma 320 is applied to the SAO-processed luma and ALF Chroma 330 is applied to SAO-processed Cb and Cr. However, there is a cross-component term from luma to a chroma component (i.e., CC-ALF Cb 322 and CC-ALF Cr 324) . The outputs from the cross-component ALF are added (using adders 332 and 334 respectively) to the outputs from ALF Chroma 330.

[0020] Filtering in CC-ALF is accomplished by applying a linear, diamond shaped filter (e.g. filters 340 and 342 in Fig. 3B) to the luma channel. In Fig. 3B, a blank circle indicates a luma sample and a dot-filled circle indicate a chroma sample. One filter is used for each chroma channel, and the operation is expressed as: where (x, y) is chroma component i location being refined, (xY, yY) is the luma location based on (x,y) , Si is filter support area in luma component, and ci (x0, y0) represents the filter coefficients.

[0021] As shown in Fig, 3B, the luma filter support is the region collocated with the current chroma sample after accounting for the spatial scaling factor between the luma and chroma planes. In Fig. 3B, circles represent luma samples, while dotted circles represent chroma samples being refined.

[0022] 5. Filter parameters signalling

[0023] ALF filter parameters are signalled in Adaptation Parameter Set (APS) . In one APS, up to 25 sets of luma filter coefficients and clipping value indexes, and up to eight sets of chroma filter coefficients and clipping value indexes can be signalled. To reduce bits overhead, filter coefficients of different classification for luma component can be merged. In slice header, the indices of the APSs used for the current slice are signalled.

[0024] Clipping value indexes, which are decoded from the APS, allow determining clipping values using a table of clipping values for both the luma and chroma components. These clipping values are dependent of the internal bit-depth. More precisely, the clipping values are obtained by the following formula: AlfClip= {round (2B-α*n ) for n∈ [0.. N-1] } with B equal to the internal bit-depth, α is a pre-defined constant value equal to 2.35, and N equal to 4 which is the number of allowed clipping values in VVC. The AlfClip is then rounded to the nearest value with the format of power of 2.

[0025] In slice header, up to 7 APS indices can be signalled to specify the luma filter sets that are used for the current slice. The filtering process can be further controlled at CTB level. A flag is always signalled to indicate whether ALF is applied to a luma CTB. A luma CTB can choose a filter set among 16 fixed filter sets and the filter sets from APSs. A filter set index is signalled for a luma CTB to indicate which filter set is applied. The 16 fixed filter sets are pre-defined and hard-coded in both the encoder and the decoder.

[0026] For the chroma component, an APS index is signalled in slice header to indicate the chroma filter sets being used for the current slice. At CTB level, a filter index is signalled for each chroma CTB if there is more than one chroma filter set in the APS.

[0027] The filter coefficients are quantized with norm equal to 128. In order to restrict the multiplication complexity, a bitstream conformance is applied so that the coefficient value of the non-central position shall be in the range of -27 to 27 -1, inclusive. The central position coefficient is not signalled in the bitstream and is considered as equal to 128.

[0028] Adaptive Loop Filter in ECM

[0029] In ECM8 (Muhammed Coban, et al., “Algorithm description of Enhanced Compression Model 8 (ECM 8) ” , Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29) , 29th Meeting, by teleconference, 11–20 January 2023, Document: JVET-AC2025) , some changes from the VVC ALF are disclosed. A brief overview is shown below.

[0030] 1. ALF simplification removal

[0031] ALF gradient subsampling and ALF virtual boundary processing are removed. Block size for classification is reduced from 4x4 to 2x2. Filter size for both the luma and chroma, for which ALF coefficients are signalled, is increased.

[0032] 2. ALF with fixed filters

[0033] To filter a luma sample, three different classifiers (C0, C1 and C2) and three different sets of filters (F0, F1 and F2) are used. Sets F0 and F1 contain fixed filters, with coefficients trained for classifiers C0 and C1. Coefficients of filters in F2 are signalled. Which filter from a set Fi is used for a given sample is decided by a class Ci assigned to this sample using classifier Ci.

[0034] The number of bits used to represent the fractional part of a luma coefficient is adaptive from 5 to 8, inclusively. For each luma filter set, which contains up to 25 filters, a 2-bit syntax element is signalled in APS to indicate the number of bits used for the coefficients in this set. The value range of a coefficient is not changed.

[0035] 3. Filtering

[0036] First, two 13x13 diamond shape fixed filters F0 and F1 are applied to derive two intermediate samples R0 (x, y) and R1 (x, y) . After that, F2 is applied to R0 (x, y) , R1 (x, y) , and neighbouring samples to derive a filtered sample as where fi, j is the clipped difference between a neighbouring sample and current sample R (x, y) and gi is the clipped difference between Ri-20 (x, y) and current sample. The filter coefficients ci, i=0,…21, are signalled.

[0037] 4. Classification

[0038] Based on directionality Di and activity aclass Ci is assigned to each 2x2 block: where MD, i represents the total number of directionalities Di.

[0039] As in VVC, values of the horizontal, vertical, and two diagonal gradients are calculated for each sample using 1-D Laplacian. The sum of the sample gradients within a 4×4 window that covers the target 2×2 block is used for classifier C0 and the sum of sample gradients within a 12×12 window is used for classifiers C1 and C2. The sums of horizontal, vertical and two diagonal gradients are denoted, respectively, as and The directionality Di is determined by comparing with a set of thresholds. The directionality D2 is derived as in VVC using thresholds 2 and 4.5. For D0 and D1, horizontal / vertical edge strength and diagonal edge strength are calculated first. Thresholds Th= [1.25, 1.5, 2, 3, 4.5, 8] are used. Edge strength is 0 if otherwise,  is the maximum integer such that Edge strength is 0 if otherwise,  is the maximum integer such that When i.e., horizontal / vertical edges are dominant, the Di is derived by using Table 1A; otherwise, diagonal edges are dominant, the Di is derived by using Table 1B. Table 1A. Mapping of and to Di Table 1B. Mapping of and to Di

[0040] To obtain the sum of vertical and horizontal gradients Ai is mapped to the range of 0 to n, where n is equal to 4 for and 15 for and

[0041] In an ALF_APS, up to 4 luma filter sets are signalled, each set may have up to 24 filters.

[0042] 5. Alternative 2x2 ALF classifier

[0043] Classification in ALF is extended with an additional alternative classifier. For a signalled luma filter set, a flag is signalled to indicate whether the alternative classifier is applied. Geometrical transformation is not applied to the alternative band classifier. When the band-based classifier is applied, the sum of sample values of a 2x2 luma block is calculated first. Then the class index is calculated as below, class_index = (sum *12) >> (sample bit depth + 2) .

[0044] 6. Residual based classifier

[0045] A third classifier is based on luma residual sample values. For each 2x2 luma block, the sum of absolute values of the residual samples in a neighbouring 8x8 window is calculated, and the class index is derived as: classIdx = sum >> (sample bit depth - 3) .

[0046] The value of classIdx is in the range of 0 to 24, same as in ECM-8.0. The classifier usage is signalled for each luma filter set in APS.

[0047] 7. Coding information-based classifier

[0048] For the online filters (signalled filters) , each 2×2 unit is classified into 2 noise levels according to the partitioning information. For a 2×2 unit, it is classified into noise level-1 if it is located at a CU or TU boundary; and into noise level-0 if it is not. The class number of existing classifiers is reduced from 25 to 12. For the texture-based classifier, the 25 classes are mapped to 12 classes with a pre-defined LUT. For the band-based and residual based classifiers, the 25 classes are decreased to 12 classes by enlarging the band width. These 12 classes are further combined with the proposed 2 noise levels to generate final 12×2 = 24 classes in total. The number of classifiers for online filters is kept as 3 and no additional encoder selection is introduced.

[0049] For the offline filters (fixed filters) , each 2×2 unit is classified into 2 noise levels in the same way as the classification of online filters. Besides, each 2×2 unit is further classified into 2 residual levels based on a predefined threshold also in the same way as the classifier of online filters. Furthermore, the generated offset of offline filters is adjusted based on the boundary level and residual level accordingly, where a stronger offset is applied on the positions at boundaries or with higher residuals.

[0050] 8. CCALF with long tap filter

[0051] The CCALF process uses a linear filter to filter luma sample values, luma residual samples and generate a residual correction for the chroma samples. In addition, the CCALF filter shape is constructed by 23 luma spatial taps (410) and 5 luma residual taps (420) , which is illustrated in Fig. 4. For a given slice, the encoder can collect the statistics of the slice, analyse them and signal up to 16 filters through APS. The number of bits used to represent the fractional part of a CCALF coefficient can vary from 7 to 10 adaptively.

[0052] Chroma SAO output samples applied to 4 taps (430) in a 3x3 asymmetric cross shape are added as additional inputs to CCALF, as illustrated in Fig. 4.

[0053] 9. New luma ALF filter shape

[0054] In ALF online-trained filters consist of 4 kinds of filter taps: spatial taps (510) , reconstruction-before-DBF based taps (540) , residual based taps (550) and fixed-filter-output based taps (520 and 530) as shown in Fig. 5, where the fixed-filter-output based taps are extended, the residual based taps contain the clipped residual sample and the clipped residual sample filtered by the fixed filters, and the reconstruction-before-DBF (pre-DBF) based taps contain the clipped pre-DBF samples and the pre-DBF samples filtered by a Gaussian fixed filter. The shape of Gaussian fixed filter is a diamond 7x7 shape, and the filter parameters are stored at both encoder and decoder. There is no classification for this fixed filter.

[0055] 10. ALF residuals scaling

[0056] A scaling factor is signalled in slice header, the scaling factors is applied to the difference between the ALF input and ALF output, and the scaled residual is added to the ALF input (it produces a scaled ALF filtering) . A similar scaling process is applied to NN filtering in NNVC.

[0057] Different luma scaling factors may be associated with different group of class indexes, and the ALF output is derived as follows: rec’ (s) = rec (s) + (corr (s) *tab [sfi [class (s) ] ] + 4 ) >> 3, where ALF residual correction ‘corr (s) ’ is scaled using the scaling factor associated to the class index of the sample, ‘tab’ is the predefined LUT for mapping scaling index ‘sfi’ to scaling factor.

[0058] 11. Improved fixed filters for ALF

[0059] Two Laplacian-based classifiers (one for each fixed filter) are applied to a 2x2 block. In each classifier, activity and directionality values are derived based on vertical, horizontal, and diagonal gradients using a window surrounding each 2x2 block. For each 2x2 block, the mean value of a surrounding window is calculated. Then, for each sample of this window, the difference between the sample value and the mean value is calculated. A scaling factor is determined based on the activity value derived from a Laplacian classifier. The square root of the sum of the squared differences is further quantized to C′by a scaling factor. The value of C′is an integer between 0 and 7, inclusively. With i=0, 1, let Ci denote the classifier from the classifier of i-th fixed filter in ECM-9.0. Then the proposed class index Ci′is derived as C′i= C′*896+Ci.

[0060] The total number of the fixed filters is not changed.

[0061] Then a class index is determined based on the activity and directionality values. Two diamond shaped fixed filters are selected from the two filter sets by using the derived two class indices. Both fixed filters are applied to samples before DBF and ALF input, where additional diamond 9x9 filter is used for the samples before DBF. The shape of the first fixed filter applied to the ALF input samples is reduced from 13x13 to 9x9, and the shape of the second fixed filter, which is 13x13, applied to ALF input is unchanged as shown in Table 2. Table 2. Comparison of fixed filters between ECM-9.0 and JVET-AE0139

[0062] Fixed filter f1 is applied to outputs of f0 (instead of ALF input) and samples before DBF.

[0063] Finally, a signalled filter is applied to the ALF input samples, samples before the deblocking filter (DBF) , outputs of the two fixed filters, output of a Gaussian filter and the residual data.

[0064] 12. Chroma ALF Fixed Filter

[0065] A classifier based on Laplacian values and variance is applied to a 2x2 chroma block. Compared to the luma classifier of a fixed filter, when calculating the activity value, the sum of the chroma vertical and horizontal Laplacian values is multiplied by 2 before scaling. Similarly, the chroma variance is multiplied by 2 before scaling. The derived class index is then used to select a fixed filter from a chroma filter set. A chroma fixed filter is applied to chroma ALF input samples in a 13x13 diamond shape and DBF input samples in a 7x7 diamond shape. The first luma classifier is applied to each 2x2 chroma block. The derived class index is then used to select a fixed filter from the luma fixed filter set related to this classifier. A fixed filter is applied to chroma ALF input sample in a 9x9 diamond shape and DBF input samples in a 9x9 diamond shape. In a signalled chroma filter, 5x5 crossing extra taps are introduced, which are applied to the fixed filter output.

[0066] 13. Temporal ALF (TALF, JVET-AK0065)

[0067] The Temporal Adaptive Loop Filter (TALF) uses temporal reconstructed information to improve the quality of the current picture. Similar to ALF, the filter coefficients and related information are transmitted in the bitstream and the history of TALFs can also be used in the filtering process of the current picture. Based on the TALF design described in JVET-AK0065, the main difference from the luma APS process is that, when computing the offset for the current pixel, the source samples are taken from pictures in the reference picture list rather than from the current picture. The source can be either the current or neighbouring position in the collocated picture, or an MV-guided position in the reference picture. The input filter shape is either a 5x5 or 7x7 diamond, a 7x7 cross, or a union of a 11x11 cross and a 3x3 square. As with ALF filters, input taps are derived from the source samples subtracted by the current pre-ALF value. An online filter is then calculated by the TALF in these shapes. When enabling a TALF APS, a CTB level control that determines the on / off, and the indices of the filters to be used are signalled.

[0068] Fig. 6 illustrates a block diagram for TALF that uses the reconstructed pixels (e.g. SAO / CCSAO (Cross-Component SAO)  / BIF 610 processed pixels) in the reference pictures 612 to improve the quality of the current picture as shown in Fig. 6. TALF 624 generates offsets to the output of luma ALF 620 as shown in Fig. 6.

[0069] Integration of Neural Network-Based In-Loop Filtering (NNLF) in ALF (JVET-AK0183)

[0070] Unified Filter Architecture for In-Loop Filtering of NNVC (Neural Network-based Video Coding) as well as inference process and training procedure was originally defined in JVET-AD0380 for High-performance Operation Point (HOP, 460kMAC / pixel) and further extended to Low Operation Point (LOP, 17kMAC / pixel) in JVET-AE0281 and Very Low Operation Point (VLOP, 5kMAC / pixel) in JVET-AH0051.

[0071] In JVET-AJ0210, the NN ILF for VLOP was integrated into ECM. The VLOP filter architecture was modified to remove existing in NNVC luma dependency on chroma and retrained on DIV2K, BVI and TVD dataset following the NNVC training guidelines. The resulting filter has a complexity of 4.2kMAC / pixel and 40KB of side information. This method takes luma reconstructed pixels, prior to the deblocking, prediction pixels, coding context information (e.g., QP, BS, coding modes) , extract input features and jointly process these features by the backbone blocks (BB, sequences of convolution layers) . The backbone includes 8 BBs, each consisting of a separable 3D convolution.

[0072] In the present invention, a scheme to apply TALF for chroma and a scheme to reduce latency for TALF and NNLF (Neural Network-based Loop Filter) in in-loop-filtering are disclosed.  BRIEF SUMMARY OF THE INVENTION

[0073] Methods and apparatus for video coding using the ALF are disclosed. According to one method, input data associated with a current block, wherein the input data comprises reconstructed or processed-reconstructed data associated with the current block. A Temporal Adaptive Loop Filter (TALF) correction term is derived according to a TALF process for a target sample of the current block, wherein the TALF process draws one or more input signals from one or more reference pictures, or a Neural Network-based in-Loop Filtering (NNLF) correction term is derived according to an NNLF process for the target sample of the current block. A first process correction term is derived according to a first process of in-loop filtering in parallel with the said TALF or NNLF process. A filtered target sample is generated by using the target sample, the first process correction term, and one of: the TALF correction term, the NNLF correction term, or a combination of the TALF correction term and the NNLF correction term.

[0074] In one embodiment, said one or more input signals are determined based on differences between pixel values at positions of TALF footprint and a centre position of the TALF footprint. In one embodiment, the centre position of the TALF footprint is determined from an offset location of the target sample of the current block. In one embodiment, the offset location of the target sample of the current block comprises a picture order count offset and a spatial offset.

[0075] In one embodiment, the TALF process restricts said one or more input signals to be only from said one or more reference pictures.

[0076] In one embodiment, the first process of in-loop filtering for the said TALF comprises Sample Adaptive Offset (SAO) , CCSAO (Cross-Component SAO) , Bilateral Filter (BIF) , ALF, CCALF, NNLF, or a combination thereof.

[0077] In one embodiment, the first process of in-loop filtering for the said NNLF comprises SAO, CCSAO, BIF, ALF, CCALF, TALF, or a combination thereof.

[0078] In one embodiment, an output of the TALF process is used as an input of the first process of in-loop filtering, and wherein, when a coding unit undergoes the first process of in-loop filtering, an allowed region of the output of the TALF process is restricted to a causal region of the coding unit.

[0079] In one embodiment, an output of the NNLF process is used as an input of the first process of in-loop filtering, and wherein, when a coding unit undergoes the first process of in-loop filtering, an allowed region of the output of the NNLF process is restricted to a causal region of the coding unit.

[0080] In yet another embodiment, a flag is signalled or parsed at a CTU (Coding Tree Unit) , CTB (Coding Tree Block) , CU (Coding Unit) , PU (Prediction Unit) , or TU (Transform Unit) level associated with the current block, wherein the flag indicates a filtering mode for a Temporal Adaptive Loop Filter (TALF) process. A TALF correction term is derived by using the TALF process according to the filtering mode for a target sample of the current block, wherein the TALF process draws one or more input signals comprising a first input signal from one or more reference pictures. A filtered target sample is generated by using the target sample and the TALF correction term.

[0081] In one embodiment, the filtering mode is used to determines temporal information used by the TALF process, and the temporal information belongs to a group comprising uni-directional or bi-directional, MV / BV-guided or collocated, from reference list 0 or list 1, or from which reference frame BRIEF DESCRIPTION OF THE D RAWINGS

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

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

[0084] Fig. 2 illustrates the ALF filter shapes for the chroma (left) and luma (right) components.

[0085] Fig. 3A illustrates the placement of CC-ALF with respect to other loop filters.

[0086] Fig. 3B illustrates a diamond shaped filter for the chroma samples.

[0087] Fig. 4 illustrates the cross 9x9 CCALF filter shape, luma residual based taps and 4 taps in a 3x3 asymmetric cross shape as additional inputs to CCALF.

[0088] Fig. 5 illustrates the filter shape of ALF in ECM-7.0.

[0089] Fig. 6 illustrates a block diagram of TALF (Temporal ALF) in loop filters.

[0090] Fig. 7 illustrates an example of using luma Temporal Adaptive Loop Filter to correct the chroma component.

[0091] Fig. 8 illustrates an example of only input from another frame drawn by the TALF.

[0092] Fig. 9 illustrates an example using ALF and TALF to refine the reconstructed signal, where the TALF only uses input from another frame.

[0093] Fig. 10 illustrates an example to perform TALF and BIF / SAO / CCSAO in parallel.

[0094] Fig. 11 illustrates an example in-loop filtering, where the the TALF output is used as the input of a first process in the in-loop filtering with spatial constraints.

[0095] Fig. 12 illustrates an example in-loop filtering, where NNLF and ALF are performed in parallel.

[0096] Fig. 13 illustrates an example in-loop filtering, where NNLF and ALF are performed in parallel and use inputs from the same component.

[0097] Fig. 14 illustrates an example in-loop filtering, where BIF, SAO, CCSAO and NNLF are performed in parallel.

[0098] Fig. 15 illustrates an example in-loop filtering, where the NNLF output is used as the input of a first process in the in-loop filtering with spatial constraints.

[0099] Fig. 16 illustrates an example of in-loop filtering, where ALF and TALF take post-SAO samples as input while TALF also accepts reconstructed residual values as input.

[0100] Fig. 17 illustrates a flowchart of an exemplary video coding system that derives a first process correction term according to a first process of in-loop filtering in parallel with the TALF or NNLF process according to an embodiment of the present invention.

[0101] Fig. 18 illustrates a flowchart of an exemplary video coding system that uses explicit signalling to indicates a filtering mode for the TALF process according to an embodiment of the present invention.DETAILED DESCRIPTION OF THE INVENTION

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

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

[0104] PROPOSED METHOD

[0105] TALF for Chroma and Latency Reduction for TALF and NNLF in In-Loop Filtering

[0106] In ECM, some improvement is achieved by introducing additional stages to the existing in-loop filtering process. In JVET-AK0065, a temporal adaptive loop filter (TALF) is used to refine the luma reconstructed samples, where the TALF takes samples from the reference picture buffer as inputs. In JVET-AJ0210, a neural network-based loop filter is incorporated into ALF, where the NN filter processes luma reconstructed pixels (prior to the deblocking process) along with prediction pixels and coding context information to extract a correction value. The correction value is used to offset the reconstruction value jointly with outputs of the fixed filter, the residual filter, and the Gaussian filter. While these approaches offer coding benefits, they introduce some latency to the codec, particularly at the decoder. Therefore, in this invention, several in-loop filtering designs are proposed to reduce the latency and improve the performance of TALF and NNLF. First, TALF is introduced to the chroma component to further enhance the reconstructed values in the U and V (or Cr and Cb) components. Furthermore, it is proposed that the TALF input can be the difference between the target position and another position of the filter footprint when calculating the offset, thus eliminating the dependency on the current reconstructed value. Lastly, several parallel designs for TALF and NNLF are proposed.

[0107] Embodiment 1

[0108] In one embodiment, TALF for the chroma component is disclose. According to this embodiment, the temporal adaptive loop filter (TALF) that uses temporal information to reduce coding artefacts of reconstructed samples in the in-loop filtering, draws input from one or more pictures in the reference picture list, and outputs correction terms for the chroma component.

[0109] Example 1

[0110] For a reconstructed sample r0 of one component (component A in the diagram) , ALF 720 and TALF 722 processes provide two correction terms, rALF and rTALF, respectively as shown in Fig. 7, where ALF and TALF take post-SAO samples 710 as input. TALF also accepts the pixel values of another component from one or more reference frames (reference frame Component B 712 in Fig. 7) . Component A and B can both be chroma components, or component A can be a chroma component and component B a luma component. The final reconstruction is applied to component A 730, where the value is r0 + rALF + rTALF, or a linear combination of them, such as r0 +s0*rALF + s1*rTALF, where s0 and s1 are signalled or pre-defined weights.

[0111] Embodiment 2

[0112] In one embodiment, a temporal adaptive loop filter (TALF) is used to reduce coding artefacts of reconstructed samples in in-loop filtering, and the TALF input can be derived by subtracting the pixel value of a position in the filter footprint from the target sample, which makes the input independent of the current reconstructed value.

[0113] Example 2

[0114] Fig. 8 illustrates an example of input from another frame drawn by the TALF.

[0115] Assume the current sample has the POC and position (currPoc, x, y) . An offset (n, i, j) guides the current position to the centre of the source samples (currPoc+n, x+i, y+j) . The TALF input is derived by subtracting the pixel value of the centre position of the footprint from the target sample. The output of TALF without clipping can consequently be denoted by: where S is the set of samples used as the input, and for every p in S, the position relative to the centre is (ap, bp) . P (·) represents the pixel value given the POC and the position, and sp is a signalled or pre-defined weight for the sample p.

[0116] Example 3

[0117] Following Example 2, for a reconstructed sample r0 (post-SAO in the diagram) , ALF and TALF processes provide two correction terms, rALF and rTALF, respectively. ALF 920 takes a post-SAO sample 910 as input, and TALF 922 accepts the pixel values from one or more reference frames in Reference Frame Buff 912, independent of the reconstructed value as shown in Fig. 9. The final reconstruction is applied to the post-ALF sample 930, where the value is r0 + rALF + rTALF, or a linear combination of them, such as r0 + s0*rALF + s1*rTALF, where s0 and s1 are signalled or pre-defined weights.

[0118] Embodiment 3

[0119] In this embodiment, a temporal adaptive loop filter (TALF) is used to reduce coding artefacts of reconstructed samples in in-loop filtering, and the TALF process can be performed in parallel with a first process in the in-loop filtering. That is, the inputs of the two processes (TALF process and the first process) do not comprise any outputs or intermediate results of the other process. The first process can be SAO, CCSAO, BIF (Bilateral Filter) , ALF, CCALF, NNLF, or a combination thereof. A final output is derived by taking the sum or weighted sum of the outputs of TALF process and the first process.

[0120] Example 4

[0121] TALF and BIF / SAO / CCSAO can be performed in parallel as shown in Fig. 10.

[0122] For a reconstructed sample r0 of one component (component A 1010 in in Fig. 10) , BIF 1020, SAO 1022, CCSAO 1024, and TALF 1026 processes will provide four correction terms rBIF, rSAO, rCCSAO, and rTALF, respectively, where all the processes take post-DBF (deblocking filter) samples as input with CCSAO 1024 using cross-component information (component B 1012 in the diagram) , and TALF 1026 using the reference frame buffer 1014. The final reconstruction of the sample is r0 + rBIF + rSAO + rCCSAO + rTALF, or a linear combination of them, such as r0 + s0*rBIF +s1*rSAO + s2*rCCSAO + s3*rTALF, where s0 to s3 are signalled or pre-defined weights. The final reconstruction of the sample is applied to the post-ALF sample for one component (post-ALF component A 1030 in Fig. 10) .

[0123] Embodiment 4

[0124] In one embodiment, a temporal adaptive loop filter (TALF) is used to reduce coding artefacts of reconstructed samples in the in-loop filtering, and the TALF output is used as the input of a first process in the in-loop filtering with spatial constraints. When a coding unit undergoes the first process, the allowed region of the TALF output is restricted to a causal region of the coding unit. A causal region of a coding unit comprises the region of the units processed before the coding unit and the region of the coding unit itself.

[0125] Example 5

[0126] The output of TALF is an input of ALF. The filter shape of ALF contains taps using the TALF output, but the allowed region of the TALF output for a current sample / block is restricted to the left / top region of the current sample / block, and the region of the current sample / block.

[0127] Fig. 11 shows a block diagram corresponding to Example 5, where TALF 1122 output is one of the ALF 1120 inputs, and three versions of the allowed region (1140, 1142 and 1144) of the TALF output for a current sample / block are illustrated in Fig. 11, where the small block with black edges is the current sample / block, and the grey region is the allowed causal region. The final reconstruction of the sample is applied to the post-ALF sample for one component (post-ALF 1130 in Fig. 11) .

[0128] Embodiment 5

[0129] In one embodiment, a neural network-based loop filter (NNLF) is used to reduce coding artefacts of reconstructed samples in in-loop filtering, and the NNLF process can be performed in parallel with a first process in the in-loop filtering. That is, the inputs of the two processes (NNLF process and the first process) do not comprise any outputs or intermediate results of the other process. The first process can be SAO, CCSAO, BIF, ALF, CCALF, TALF, or a combination thereof. A final output is derived by taking the sum or weighted sum of the outputs of NNLF process and the first process.

[0130] Example 6

[0131] NNLF and ALF can be performed in parallel. Fig. 12 shows a block diagram corresponding to Example 6.

[0132] For a reconstructed sample r0 of one component (component A 1210 in Fig. 12) , ALF 1220 and NNLF 1222 processes will provide two correction terms rALF and rNNLF, respectively, where ALF and NNLF take post-SAO samples as input with NNLF also accepting the pixel values of one or more components (component B 1212 in Fig. 12) . The final reconstruction of the sample is r0 + rALF + rNNLF, or a linear combination of them, such as r0 + s0*rALF + s1*rNNLF, where s0 and s1 are signalled or pre-defined weights. The final reconstruction of the sample is applied to the post-ALF sample for one component (post-ALF component A 1230 in Fig. 12) .

[0133] Example 7

[0134] Following Example 6, NNLF and ALF are performed in parallel as shown in Fig. 13, where ALF 1320 and NNLF 1322 both take post-SAO samples 1310 as input. The final reconstruction of the sample is r0 + rALF + rNNLF, or a linear combination of them, such as r0 +s0*rALF + s1*rNNLF, where s0 and s1 are signalled or pre-defined weights. The final reconstruction of the sample is applied to the post-ALF sample for one component (post-ALF component A 1330 in Fig. 13) .

[0135] Example 8

[0136] NNLF and BIF / SAO / CCSAO can be performed in parallel as shown in Fig. 14.

[0137] For a reconstructed sample r0 of one component (component A 1410 in Fig. 14) , BIF 1420, SAO 1422, CCSAO 1424, and NNLF 1426 processes will provide four correction terms rBIF, rSAO, rCCSAO, and rNNLF, respectively, where all the processes take post-DBF (deblocking filter) samples 1410 as input with CCSAO and NNLF using cross-component information (component B 1420 in Fig. 14) . The final reconstruction of the sample is r0 + rBIF + rSAO + rCCSAO + rNNLF, or a linear combination of them, such as r0 + s0*rBIF + s1*rSAO + s2*rCCSAO + s3*rNNLF, where s0 to s3 are signalled or pre-defined weights. The final reconstruction of the sample is applied to the post-SAO sample for one component (post-SAO component A 1430 in Fig. 14) .

[0138] Embodiment 6

[0139] In one embodiment, a neural network-based loop filter (NNLF) is used to reduce coding artefacts of reconstructed samples in the in-loop filtering, and the NNLF output is used as the input of a first process in the in-loop filtering with spatial constraints. When a coding unit undergoes the first process, the allowed region of the NNLF output is restricted to a causal region of the coding unit. A causal region of a coding unit comprises the region of the units processed before the coding unit and the region of the coding unit itself.

[0140] Example 9

[0141] The output of NNLF is used as an input of ALF. The filter shape of ALF contains taps using the NNLF output, but the allowed region of the NNLF output for a current sample / block is restricted to the left / top region of the current sample / block, and the region of the current sample / block.

[0142] Fig. 15 shows a block diagram corresponding to Example 9. NNLF output is used as one of the ALF inputs, and three versions of the allowed region (1540, 1542 and 1544) of the NNLF output for a current sample / block are illustrated in Fig. 15, where the small block with black edges is the current sample / block, and the grey region is the allowed causal region. The final reconstruction of the sample is applied to the post-ALF sample (post-ALF 1530 in Fig. 15) .

[0143] Embodiment 7

[0144] In one embodiment, when applying TALF to a CTU / CTB / CU / PU / TU, at least one explicit flag at CTU / CTB / CU / PU / TU level is used to indicate a filtering mode for the TALF. The filtering mode determines the temporal information used by the TALF, which may include at least one of the following: 1.Uni-directional or bi-directional. 2.MV / BV-guided or collocated. 3.From reference list 0 or list 1. 4.From which reference frame.

[0145] Embodiment 8

[0146] In an embodiment, a motion vector or block vector (MV / BV) -guided source is located for a TALF so that the TALF can utilize the intermediate or final results from the prediction stage directly as TALF input. This can occur at various points in the processing sequence, including before or after fractional motion compensation, before or after blending operations for coding tools such as bi-prediction, overlapped block motion compensation (OBMC) , or combined inter-intra prediction (CIIP) , and before or after refinement processes such as bi-directional optical flow (BDOF) or prediction refinement offset (PROF) . Additionally, the source can be accessed either before or after the luma mapping and chroma scaling (LMCS) transformation.

[0147] Embodiment 9

[0148] In one embodiment, a temporal adaptive loop filter (TALF) which uses temporal information to reduce coding artefacts of reconstructed samples during in-loop filtering, draws input from the reconstructed residual, and derives correction terms as output.

[0149] Example 10

[0150] For a reconstructed sample r0 of one component (post-SAO in Fig. 16) , ALF 1620 and TALF 1622 processes would provide two correction terms rALF and rTALF, respectively, where ALF and TALF take post-SAO samples 1610 as input with TALF also accepting reconstructed residual values 1612. The final reconstruction of the sample is r0 + rALF + rTALF, or a linear combination of them, such as r0 + s0*rALF + s1*rTALF, where s0 and s1 are signalled or pre-defined weights. The final reconstruction of the sample is applied to the post-ALF sample (post-ALF 1630 in Fig. 16) .

[0151] The foregoing proposed methods can be implemented in encoders and / or decoders. For example, the proposed method can be implemented in an in-loop filtering module of an encoder, and / or an in-loop filtering module of a decoder.

[0152] The foregoing proposed methods of ALF / TALF processing can be implemented in encoders and / or decoders. For example, the proposed method can be implemented in an in-loop filtering module of an encoder, and / or an in-loop filtering module of a decoder. For example, any of the proposed methods can be implemented in the in-loop filter module (e.g. ILPF 130 in Fig. 1A and Fig. 1B) of an encoder or a decoder. Alternatively, any of the proposed methods can be implemented as circuits coupled to the inter coding module of an encoder and / or motion compensation module, a merge candidate derivation module of the decoder. The methods may also be implemented using 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) ) .

[0153] Fig. 17 illustrates a flowchart of an exemplary video coding system that uses explicit signalling to indicates a filtering mode for the TALF process according to an embodiment of the present invention. The steps shown in the flowchart may be implemented as program codes executable on one or more processors (e.g., one or more CPUs) at the encoder side. The steps shown in the flowchart may also be implemented based hardware such as one or more electronic devices or processors arranged to perform the steps in the flowchart. According to the method, input data associated with a current block comprising a luma component and one or more chroma components is received in step 1710, wherein the input data comprises reconstructed or processed-reconstructed data associated with the current block. In step 1720, a Temporal Adaptive Loop Filter (TALF) correction term is derived according to a TALF process for a target sample of the current block, wherein the TALF process draws one or more input signals from one or more reference pictures, or a Neural Network-based in-Loop Filtering (NNLF) correction term is derived according to an NNLF process for the target sample of the current block. A first process correction term is derived according to a first process of in-loop filtering in parallel with the said TALF or NNLF process in step 1730. A filtered target sample is generated by using the target sample, the first process correction term, and one of: the TALF correction term, the NNLF correction term, or a combination of the TALF correction term and the NNLF correction term in step 1740.

[0154] Fig. 18 illustrates a flowchart of an exemplary video coding system that uses explicit signalling to indicates a filtering mode for the TALF process according to an embodiment of the present invention. According to the method, input data associated with a current block is received in step 1810, wherein the input data comprises reconstructed or processed-reconstructed data associated with the current block. A flag is signalled or parsed at a CTU (Coding Tree Unit) , CTB (Coding Tree Block) , CU (Coding Unit) , PU (Prediction Unit) , or TU (Transform Unit) level associated with the current block, wherein the flag indicates a filtering mode for a Temporal Adaptive Loop Filter (TALF) process in step 1820. A TALF correction term is derived by using the TALF process according to the filtering mode for a target sample of the current block in step 1830, wherein the TALF process draws one or more input signals comprising a first input signal from one or more reference pictures. A filtered target sample is generated by using the target sample and the TALF correction term in step 1840.

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

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

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

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

Claims

1.A method of processing video, the method comprising:receiving input data associated with a current block, wherein the input data comprises reconstructed or processed-reconstructed data associated with the current block;deriving a Temporal Adaptive Loop Filter (TALF) correction term according to a TALF process for a target sample of the current block, wherein the TALF process draws one or more input signals from one or more reference pictures, or deriving a Neural Network-based in-Loop Filtering (NNLF) correction term according to an NNLF process for the target sample of the current block;deriving a first process correction term according to a first process of in-loop filtering in parallel with the said TALF or NNLF process; andgenerating a filtered target sample by using the target sample, the first process correction term, and one of: the TALF correction term, the NNLF correction term, or a combination of the TALF correction term and the NNLF correction term.2.The method of Claim 1, wherein said one or more input signals are determined based on differences between pixel values at positions of TALF footprint and a centre position of the TALF footprint.3.The method of Claim 2, wherein the centre position of the TALF footprint is determined from an offset location of the target sample of the current block.4.The method of Claim 3, wherein the offset location of the target sample of the current block comprises a picture order count offset and a spatial offset.5.The method of Claim 1, wherein the TALF process restricts said one or more input signals to be only from said one or more reference pictures.6.The method of Claim 1, wherein the first process of in-loop filtering for the said TALF comprises Sample Adaptive Offset (SAO) , CCSAO (Cross-Component SAO) , Bilateral Filter (BIF) , ALF, CCALF, NNLF, or a combination thereof.7.The method of Claim 1, wherein the first process of in-loop filtering for the said NNLF comprises SAO, CCSAO, BIF, ALF, CCALF, TALF, or a combination thereof.8.The method of Claim 1, wherein an output of the TALF process is used as an input of the first process of in-loop filtering, and wherein, when a coding unit undergoes the first process of in-loop filtering, an allowed region of the output of the TALF process is restricted to a causal region of the coding unit.9.The method of Claim 1, wherein an output of the NNLF process is used as an input of the first process of in-loop filtering, and wherein, when a coding unit undergoes the first process of in-loop filtering, an allowed region of the output of the NNLF process is restricted to a causal region of the coding unit.10.An apparatus for processing video, the apparatus comprising one or more electronics or processors arranged to:receive input data associated with a current block, wherein the input data comprises reconstructed or processed-reconstructed data associated with the current block;derive a Temporal Adaptive Loop Filter (TALF) correction term according to a TALF process for a target sample of the current block, wherein the TALF process draws one or more input signals from one or more reference pictures, or derive a Neural Network-based in-Loop Filtering (NNLF) correction term according to an NNLF process for the target sample of the current block; andderive a first process correction term according to a first process of in-loop filtering in parallel with the said TALF or NNLF process; andgenerate a filtered target sample by using the target sample, the first process correction term, and one of: the TALF correction term, the NNLF correction term, or a combination of the TALF correction term and the NNLF correction term.11.A method of processing video, the method comprising:receiving input data associated with a current block, wherein the input data comprises reconstructed or processed-reconstructed data associated with the current block;signalling or parsing a flag at a CTU (Coding Tree Unit) , CTB (Coding Tree Block) , CU (Coding Unit) , PU (Prediction Unit) , or TU (Transform Unit) level associated with the current block, wherein the flag indicates a filtering mode for a Temporal Adaptive Loop Filter (TALF) process;deriving a TALF correction term by using the TALF process according to the filtering mode for a target sample of the current block, wherein the TALF process draws one or more input signals comprising a first input signal from one or more reference pictures; andgenerating a filtered target sample by using the target sample and the TALF correction term.12.The method of Claim 11, wherein the filtering mode is used to determine temporal information used by the TALF process, and the temporal information belongs to a group comprising uni-directional or bi-directional, MV / BV-guided or collocated, from reference list 0 or list 1, or from which reference frame.13.An apparatus for processing video, the apparatus comprising one or more electronics or processors arranged to:receive input data associated with a current block, wherein the input data comprises reconstructed or processed-reconstructed data associated with the current block;signal or parse a flag at a CTU (Coding Tree Unit) , CTB (Coding Tree Block) , CU (Coding Unit) , PU (Prediction Unit) , or TU (Transform Unit) level associated with the current block, wherein the flag indicates a filtering mode for a Temporal Adaptive Loop Filter (TALF) process;derive a TALF correction term by using the TALF process according to the filtering mode for a target sample of the current block, wherein the TALF process draws one or more input signals comprising a first input signal from one or more reference pictures; andgenerate a filtered target sample by using the target sample and the TALF correction term.