Methods and apparatus of predictor refinement using boundary smoothing filter in video coding

WO2026201051A1PCT designated stage Publication Date: 2026-10-01MEDIATEK INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2026/086206
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2025-03-28
Filing Date
2026-03-26
Publication Date
2026-10-01

Smart Images

  • Figure CN2026086206_01102026_PF_FP_ABST
    Figure CN2026086206_01102026_PF_FP_ABST
Patent Text Reader

Abstract

A method and apparatus of to improve video coding performance by using a filtered predictor are disclosed. According to this method, input data associated with a current block is received, wherein the input data comprises pixel data for the current block to be encoded at an encoder side or coded data for decoding the current block at a decoder side. A current predictor for the current block is generated according to a prediction mode. Target prediction samples within the current predictor that are located within a predefined distance of a boundary between the current block and at least one neighbouring reconstruction block are identified. A smoothing filter used in an in-loop filtering stage is applied to the target prediction samples within the current predictor to generate a filtered predictor. The current block is encoded or decoded using the filtered predictor.
Need to check novelty before this filing date? Find Prior Art

Description

METHODS AND APPARATUS OF PREDICTOR REFINEMENT USING BOUNDARY SMOOTHING FILTER 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 / 779,362, filed on March 28, 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 overlapped block boundary processing for intra prediction. In particular, the present invention relates to processing order for applying overlapped block boundary processing and blended intra prediction. BACKGROUND AND RELATED ART

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

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

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

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

[0007] Deblocking Filter in VVC

[0008] Deblocking filtering process (DF) is similar to those in HEVC. In VVC, the deblocking filtering process is applied on CU boundaries, transform subblock boundaries and prediction subblock boundaries. The prediction subblock boundaries include the prediction unit boundaries introduced in the SbTMVP (Subblock-based Temporal Motion Vector Prediction) and affine modes. The transform subblock boundaries include the transform unit boundaries introduced by SBT (Subblock Transform) and ISP modes (Intra Sub-Partition) , and transforms due to implicit split of large CUs. As done in HEVC, the processing order of the deblocking filter is defined as horizontal filtering for vertical edges for the entire picture first, followed by vertical filtering for horizontal edges. This specific order enables either multiple horizontal filtering or vertical filtering processes to be applied in parallel threads, or can still be implemented on a CTB-by-CTB basis with only a small processing latency. Compared to HEVC deblocking, the following modifications are introduced. - The filter strength of the deblocking filter dependent of the averaged luma level of the reconstructed samples. - Deblocking tC table extension and adaptation to 10-bit video - 4x4 grid deblocking for luma - Stronger deblocking filter for luma - Stronger deblocking filter for chroma - Deblocking filter for subblock boundary - Deblocking decision adapted to smaller difference in motion

[0009] Stronger Deblocking Filter for Luma

[0010] A bilinear filter (stronger deblocking filter) is used when samples at either one side of a boundary belong to a large block. A sample belonging to a large block is defined as when the width is larger than or equal to 32 for a vertical edge, and when height is larger than or equal to 32 for a horizontal edge. Block boundary samples pi for i = 0 to Sp -1 and qi for j = 0 to Sq -1 are then replaced by linear interpolation as follows: pi′= (fi*Middles, t+ (64-fi) *Ps+32) >>6) , clipped to pi±tcPDi  (1-1) qj′= (gj*Middles, t+(64-gj)*Qs+32) >>6) , clipped to qj±tcPDj  (1-2) where tcPDi and tcPDj term is a position dependent clipping and gj, fi, Middles, t, Ps and Qs are given below: Table 1 - Derivation of stronger deblocking parameters for luma

[0011] Above mentioned stronger luma filters are used only if all of the Condition1, Condition 2 and Condition 3 are TRUE. The Condition 1 is the “large block condition” . This condition detects whether the samples at P-side and Q-side belong to large blocks. The condition 2 and condition 3 are determined by: Condition 2 = (d < β) ? TRUE: FALSE Condition 3 = StrongFilterCondition = (dpq is less than (β >> 4 ) , sp + sq is less than (3*β >> 5 ) , and Abs (p0 -q0 ) is less than (5 *tC + 1 ) >> 1) ? TRUE : FALSE where d, dpq, sp and sq are magnitudes of gradient calculations to determine amount of details in comparison to a threshold based on β, a QP dependent coding noise threshold, to avoid removing details by the filtering. Similarly, it is also checked that the magnitude of the gradient across the boundary is less than a threshold based on tC, a QP dependent deblocking strength threshold.

[0012] Strong Deblocking Filter for Chroma

[0013] The following strong deblocking filter for chroma is defined: p2′= (3*p3+2*p2+p1+p0+q0+4) >> 3  (1-3) p1′= (2*p3+p2+2*p1+p0+q0+q1+4) >> 3  (1-4) p0′= (p3+p2+p1+2*p0+q0+q1+q2+4) >> 3  (1-5)

[0014] The above chroma filter performs deblocking on an 8x8 chroma sample grid. The chroma strong filters are used on both sides of the block boundary. Here, the chroma filter is selected when both sides of the chroma edge are greater than or equal to 8 (in unit of chroma sample) , and the following decision with three conditions are satisfied. The first one is for decision of boundary strength as well as large block. The second and third one are basically the same as for HEVC luma decision, which are on / off decision and strong filter decision, respectively. In the first decision, boundary strength (bS) is modified for chroma filtering as shown in Table 2. The conditions in Table 2 are checked sequentially. If a condition is satisfied, then the remaining conditions with lower priorities are skipped. Table 2 - The modified boundary strength

[0015] Chroma deblocking is performing when bS is equal to 2, or bS is equal to 1 when a large block boundary is detected. The second and third conditions are basically the same as HEVC luma strong filter decision.

[0016] More detailed description of VVC deblocking process can be referred to the following literature: M. Karczewicz et al., "VVC In-Loop Filters, " in IEEE Transactions on Circuits and Systems for Video Technology, vol. 31, no. 10, pp. 3907-3925, Oct. 2021.

[0017] Intra Prediction in VVC

[0018] Intra Mode Coding with 67 Intra Prediction Modes

[0019] To capture the arbitrary edge directions presented in natural video, the number of directional intra modes in VVC is extended from 33, as used in HEVC, to 65. The planar and DC modes remain the same. These denser directional intra prediction modes apply for all block sizes and for both luma and chroma intra predictions.

[0020] In VVC, several conventional angular intra prediction modes are adaptively replaced with wide-angle intra prediction modes for the non-square blocks.

[0021] In HEVC, every intra-coded block has a square shape and the length of each of its side is a power of 2. Thus, no division operations are required to generate an intra-predictor using DC mode. In VVC, blocks can have a rectangular shape that necessitates the use of a division operation per block in the general case. To avoid division operations for DC prediction, only the longer side is used to compute the average for non-square blocks.

[0022] VVC Inter Prediction

[0023] For each inter-predicted CU, motion parameters consisting of motion vectors, reference picture indices and reference picture list usage index, and additional information needed for the new coding feature of VVC to be used for inter-predicted sample generation. The motion parameter can be signalled in an explicit or implicit manner. When a CU is coded with skip mode, the CU is associated with one PU and has no significant residual coefficients, no coded motion vector delta or reference picture index. A merge mode is specified whereby the motion parameters for the current CU are obtained from neighbouring CUs, including spatial and temporal candidates, and additional schedules introduced in VVC. The merge mode can be applied to any inter-predicted CU, not only for skip mode. The alternative to merge mode is the explicit transmission of motion parameters, where motion vector, corresponding reference picture index for each reference picture list and reference picture list usage flag and other needed information are signalled explicitly per each CU.

[0024] Beyond the inter coding features in HEVC, VVC includes a number of new and refined inter prediction coding tools listed as follows: – Extended merge prediction – High precision (1 / 16 pel) motion compensation and motion vector storage – Merge mode with MVD (MMVD) – Symmetric MVD (SMVD) signalling – Affine motion compensated prediction – Subblock-based temporal motion vector prediction (SbTMVP) – Adaptive motion vector resolution (AMVR) – Bi-prediction with CU-level weight (BCW) – Bi-directional optical flow (BDOF) – Decoder side motion vector refinement (DMVR) – Geometric partitioning mode (GPM) – Combined inter and intra prediction (CIIP) – Reference picture resampling.

[0025] Overlapped Block Motion Compensation (OBMC)

[0026] Overlapped Block Motion Compensation (OBMC) is to find a Linear Minimum Mean Squared Error (LMMSE) estimate of a pixel intensity value based on motion-compensated signals derived from its nearby block motion vectors (MVs) . From estimation-theoretic perspective, these MVs are regarded as different plausible hypotheses for its true motion, and to maximize coding efficiency, their weights should minimize the mean squared prediction error subject to the unit-gain constraint.

[0027] When High Efficient Video Coding (HEVC) was developed, several proposals were made using OBMC to provide coding gain. Some of them are described as follows.

[0028] In JCTVC-C251 (Peisong Chen, et. al., “Overlapped block motion compensation in TMuC” , Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO / IEC JTC1 / SC29 / WG11, 3rd Meeting: Guangzhou, CN, 7-15 October, 2010, Document: JCTVC-C251) , OBMC was applied to geometry partition. In geometry partition, it is very likely that a transform block contains pixels belonging to different partitions. In geometry partition, since two different motion vectors are used for motion compensation, the pixels at the partition boundary may have large discontinuities that can produce visual artefacts similar to blockiness. This in turn decreases the transform efficiency. Let the two regions created by a geometry partition be denoted by region 1 and region 2. A pixel from region 1 (2) is defined to be a boundary pixel if any of its four connected neighbours (left, top, right, and bottom) belongs to region 2 (1) . Fig. 2 shows an example where grey-dotted pixels belong to the boundary of region 1 (grey region) and white-dotted pixels belong to the boundary of region 2 (white region) . If a pixel is a boundary pixel, the motion compensation is performed using a weighted sum of the motion predictions from the two motion vectors. The weights are 3 / 4 for the prediction using the motion vector of the region containing the boundary pixel and 1 / 4 for the prediction using the motion vector of the other region. The overlapping boundaries improve the visual quality of the reconstructed video while also providing BD-rate gain.

[0029] In JCTVC-F299 (Liwei Guo, et. al., “CE2: Overlapped Block Motion Compensation for 2NxN and Nx2N Motion Partitions” , Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO / IEC JTC1 / SC29 / WG11, 6th Meeting: Torino, 14-22 July, 2011, Document: JCTVC-F299) , OBMC was applied to symmetrical motion partitions. If a coding unit (CU) is partitioned into 2 2NxN or Nx2N prediction units (PUs) , OBMC is applied to the horizontal boundary of the two 2NxN prediction blocks, and the vertical boundary of the two Nx2N prediction blocks. Since those partitions may have different motion vectors, the pixels at partition boundaries may have large discontinuities, which may generate visual artefacts and also reduce the transform / coding efficiency. In JCTVC-F299, OBMC is introduced to smooth the boundaries of motion partition.

[0030] Figs. 3A-B illustrate an example of OBMC for 2NxN (Fig. 3A) and Nx2N blocks (Fig. 3B) . The grey pixels are pixels belonging to Partition 0 and white pixels are pixels belonging to Partition 1. The overlapped region in the luma component is defined as 2 rows (columns) of pixels on each side of the horizontal (vertical) boundary. For pixels which are 1 row (column) apart from the partition boundary, i.e., pixels labelled as A in Figs. 3A-B, OBMC weighting factors are (3 / 4, 1 / 4) . For pixels which are 2 rows (columns) apart from the partition boundary, i.e., pixels labelled as B in Figs. 3A-B, OBMC weighting factors are (7 / 8, 1 / 8) . For chroma components, the overlapped region is defined as 1 row (column) of pixels on each side of the horizontal (vertical) boundary, and the weighting factors are (3 / 4, 1 / 4) .

[0031] Currently, the OBMC is performed after normal MC, and BIO is also applied in these two MC processes, separately. That is, the MC results for the overlapped region between two CUs or PUs is generated by another process not in the normal MC process. BIO (Bi-Directional Optical Flow) is then applied to refine these two MC results. This can help to skip the redundant OBMC and BIO processes, when two neighbouring MVs are the same. However, the required bandwidth and MC operations for the overlapped region is increased compared to integrating the OBMC process into the normal MC process. For example, the current PU size is 16x8, the overlapped region is 16x2, and the interpolation filter in MC is 8-tap. If the OBMC is performed after normal MC, then we need (16+7) x (8+7) + (16+7) x (2+7) = 552 reference pixels per reference list for the current PU and the related OBMC. If the OBMC operations are combined with normal MC into one stage, then only (16+7) x (8+2+7) = 391 reference pixels per reference list for the current PU and the related OBMC. Therefore, in the following, in order to reduce the computation complexity or memory bandwidth of BIO, several methods are proposed, when BIO and OBMC are enabled simultaneously.

[0032] In the JEM (Joint Exploration Model) , the OBMC is also applied. In the JEM, unlike in H. 263, OBMC can be switched on and off using syntax at the CU level. When OBMC is used in the JEM, the OBMC is performed for all motion compensation (MC) block boundaries except for the right and bottom boundaries of a CU. Moreover, it is applied to both the luma and chroma components. In the JEM, a MC block corresponds to a coding block. When a CU is coded with sub-CU mode (includes sub-CU merge, affine and FRUC mode) , each sub-block of the CU is a MC block. To process CU boundaries in a uniform fashion, OBMC is performed at sub-block level for all MC block boundaries, where sub-block size is set equal to 4×4, as illustrated in Figs. 4A-B.

[0033] When OBMC is applied to the current sub-block, besides current motion vectors, motion vectors of four connected neighbouring sub-blocks, if available and are not identical to the current motion vector, are also used to derive the prediction block for the current sub-block. These multiple prediction blocks based on multiple motion vectors are combined to generate the final prediction signal of the current sub-block. Prediction block based on motion vectors of a neighbouring sub-block is denoted as PNn, with n indicating an index for the neighbouring above, below, left and right sub-blocks and prediction block based on motion vectors of the current sub-block is denoted as PC. Fig. 4A illustrates an example of OBMC for sub-blocks of the current CU 410 using a neighbouring above sub-block (i.e., PN1) , left neighbouring sub-block (i.e., PN2) , left and above sub-blocks i.e., PN3) . Fig. 4B illustrates an example of OBMC for the ATMVP mode, where block PN of the current CU 420 uses MVs from four neighbouring sub-blocks for OBMC. When PN is based on the motion information of a neighbouring sub-block that contains the same motion information as the current sub-block, the OBMC is not performed from PN. Otherwise, every sample of PN is added to the same sample in PC, i.e., four rows / columns of PN are added to PC. The weighting factors {1 / 4, 1 / 8, 1 / 16, 1 / 32} are used for PN and the weighting factors {3 / 4, 7 / 8, 15 / 16, 31 / 32} are used for PC. The exception are small MC blocks (i.e., when height or width of the coding block is equal to 4 or a CU is coded with sub-CU mode) , for which only two rows / columns of PN are added to PC. In this case, weighting factors {1 / 4, 1 / 8} are used for PN and weighting factors {3 / 4, 7 / 8} are used for PC. For PN generated based on motion vectors of vertically (horizontally) neighbouring sub-block, samples in the same row (column) of PN are added to PC with a same weighting factor.

[0034] In the JEM, for a CU with size less than or equal to 256 luma samples, a CU level flag is signalled to indicate whether OBMC is applied or not for the current CU. For the CUs with size larger than 256 luma samples or not coded with the AMVP mode, OBMC is applied by default. At the encoder, when OBMC is applied for a CU, its impact is taken into account during the motion estimation stage. The prediction signal formed by OBMC using motion information of the top neighbouring block and the left neighbouring block is used to compensate the top and left boundaries of the original signal of the current CU, and then the normal motion estimation process is applied.

[0035] In JEM (Joint Exploration Model for VVC development) , the OBMC is applied. For example, as shown in Fig. 5, for a current block 510, if the above block and the left block are coded in an inter mode, it takes the MV of the above block to generate an OBMC block A and takes the MV of the left block to generate an OBMC block L. The predictors of OBMC block A and OBMC block L are blended with the current predictors. To reduce the memory bandwidth of OBMC, it is proposed to do the above 4-row MC and left 4-column MC with the neighbouring blocks. For example, when doing the above block MC, 4 additional rows are fetched to generate a block of (above block + OBMC block A) . The predictors of OBMC block A are stored in a buffer for coding the current block. When doing the left block MC, 4 additional columns are fetched to generate a block of (left block + OBMC block L) . The predictors of OBMC block L are stored in a buffer for coding the current block. Therefore, when doing the MC of the current block, four additional rows and four additional columns of reference pixels are fetched to generate the predictors of the current block, the OBMC block B, and the OBMC block R as shown in Fig. 6A (may also generate the OBMC block BR as shown in Fig. 6B) . The OBMC block B and the OBMC block R are stored in buffers for the OBMC process of the bottom neighbouring blocks and the right neighbouring blocks.

[0036] For an M x N block, if the MV is not integer and an 8-tap interpolation filter is applied, a reference block with size of (M+7) x (N+7) is used for motion compensation. However, if the BIO and OBMC is applied, additional reference pixels are required, which increases the worst case memory bandwidth.

[0037] There are two different schemes to implement OBMC.

[0038] In the first scheme, OBMC blocks are pre-generated when performing motion compensation for each block. These OBMC blocks will be stored in a local buffer for neighbouring blocks. In the second scheme, the OBMC blocks are generated before the blending process of each block when performing OBMC.

[0039] In both scheme, several methods are proposed to reduce the computation complexity, especially for the interpolation filtering, and additional bandwidth requirement of OBMC.

[0040] In the present invention, a smoothing filter is applied to prediction samples of a current predictor located within a boundary with a neighbouring block to generate filtered prediction samples. The filtered prediction samples are then used for encoding or decoding the current block. BRIEF SUMMARY OF THE INVENTION

[0041] A method and apparatus of video coding are disclosed. According to this method, input data associated with a current block is received, wherein the input data comprises pixel data for the current block to be encoded at an encoder side or coded data for decoding the current block at a decoder side. A current predictor for the current block is generated according to a prediction mode. Target prediction samples within the current predictor that are located within a predefined distance of a boundary between the current block and at least one neighbouring reconstruction block are identified. A smoothing filter used in an in-loop filtering stage is applied to the target prediction samples within the current predictor to generate a filtered predictor. The current block is encoded or decoded using the filtered predictor.

[0042] In one embodiment, the smoothing filter is selected from a group consisting of: a deblocking filter (DF) , a sample adaptive offset (SAO) filter, an adaptive loop filter (ALF) , a bilinear filter, and a bilateral filter.

[0043] In one embodiment, the smoothing filter comprises an adaptive filtering process configured for deblocking filter, and wherein a specific filter type is adaptively selected for the smoothing filter from a plurality of available filter types.

[0044] In one embodiment, the plurality of available filter types comprises at least one first filter and at least one second filter, wherein the first filter is configured to modify a first number of samples adjacent to the boundary and the second filter is configured to modify a second number of samples adjacent to the boundary, the second number being greater than the first number. In one embodiment, the plurality of available filter types further comprises at least one third filter, wherein the third filter is configured to modify a third number of samples adjacent to the boundary, the third number being greater than the second number.

[0045] In one embodiment, at least one of a specific boundary strength, or a specific maximum filter length is selected for each of the plurality of available filter types.

[0046] In one embodiment, the method further comprises determining one or more filtering conditions by comparing a sum of first gradient values (dq) from a first side of the boundary and second gradient values (dp) from a second side of the boundary with a threshold, wherein the adaptive filtering process is applied to the target prediction samples only when said one or more filtering conditions are satisfied. In one embodiment, the threshold is determined based on a bit-depth of the input data or a Quantization Parameter (QP) associated with the current block.

[0047] In one embodiment, the prediction mode is selected from a group consisting of: an intra-prediction mode, an inter-prediction mode, an intra block copy (IBC) mode, and an Intra Template Matching Prediction (IntraTMP) mode.

[0048] In one embodiment, one or more high-level syntax elements in a bitstream are signalled or parsed to enable or disable application of the smoothing filter. In one embodiment, said one or more high-level syntax elements are signalled in at least one of: a slice header, a picture header, a Picture Parameter Set (PPS) , or a Sequence Parameter Set (SPS) .

[0049] In one embodiment, during derivation of a specific boundary strength and a specific maximum filter length associated with the smoothing filter, Coded Block Flag (CBF) information for the current block is inferred from prediction mode information. In one embodiment, CBF value of the current block is inferred as 0, indicating an absence of significant residual data, in response to determining that the current block is coded in an inter-prediction mode. In another embodiment, CBF value of the current block is inferred as 1, indicating existence of significant residual data, in response to determining that the current block is coded in an inter-prediction mode. In yet another embodiment, CBF value of the current block is inferred as 1, indicating existence of significant residual data, in response to determining that the current block is coded in an intra-prediction mode, an Intra Block Copy (IBC) mode, or an Intra Template Matching Prediction (IntraTMP) mode.BRIEF DESCRIPTION OF THE DRAWINGS

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

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

[0052] Fig. 2 illustrates an example of overlapped motion compensation for geometry partitions.

[0053] Figs. 3A-B illustrate an example of OBMC for 2NxN (Fig. 3A) and Nx2N blocks (Fig. 3B) .

[0054] Fig. 4A illustrates an example of the sub-blocks that OBMC is applied, where the example includes subblocks at a CU / PU boundary.

[0055] Fig. 4B illustrates an example of the sub-blocks that OBMC is applied, where the example includes subblocks coded in the AMVP mode.

[0056] Fig. 5 illustrates an example of the OBMC processing using neighbouring blocks from above and left for the current block.

[0057] Fig. 6A illustrates an example of the OBMC processing for the right and bottom part of the current block using neighbouring blocks from right and bottom.

[0058] Fig. 6B illustrates an example of the OBMC processing for the right and bottom part of the current block using neighbouring blocks from right, bottom and bottom-right.

[0059] Fig. 7 illustrates an example of boundary smoothing filter for predictor boundary refinement according to an embodiment of the present invention.

[0060] Fig. 8 illustrates calculation of sample differences (or gradients) at p-side and q-side of the boundary used in Deblocking Filter (DF) .

[0061] Fig. 9 illustrates a flowchart of an exemplary video coding system, where a smoothing filter is applied to prediction samples of a current predictor located within a boundary with a neighbouring reconstruction block to generate filtered prediction samples according to an embodiment of the present invention.DETAILED DESCRIPTION OF THE INVENTION

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

[0063] 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 examples, 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.

[0064] Proposed Methods

[0065] In VVC and ECM, several predictor boundary refinement methods were proposed and disclosed, such as PDPC for intra predictor and OBMC for inter predictor. However, in the previous disclosed techniques, very limited conditions were taken into consideration to refine predictor boundary. Smoothing filters (e.g., deblocking filters, SAO, ALF, bilinear filter, bilateral filter) can be applied to prediction samples to create more diversity and fit video contents. For example, a target filter can be applied to refine intra / inter / IBC prediction samples close to the current prediction block boundaries. The target filter can be one of filters for smoothing boundary content in deblocking process. The target deblocking filter can be implicit or explicit determined.

[0066] Different from in-loop filtering stage, where deblocking filter is applied to reduce boundary artefacts between reconstruction samples, in the proposed method, such boundary smoothing filter is applied to refine samples of the current predictor with consideration of neighbouring reconstruction samples. Furthermore, since during the CU reconstruction stage, the transform information is not yet known or derived, CBF condition for the current predictor is also not yet derived. To avoid the issue, some transform related information in boundary smoothing filter decision rule can depend on prediction information, instead of direct derivation.

[0067] Boundary Smoothing Filter for Predictor Boundary Refinement

[0068] A boundary smoothing filter can be used to refine the prediction samples close to the current prediction block boundaries 710, as shown in Fig. 7. The boundary smoothing filter may include, but not limited to, deblocking filter, sample adaptive offset filter, Laplacian filter, median filter or other smoothing filters. One or more high-level syntax elements or control flags can be signalled or inferred to enable or to disable boundary smoothing filter for predictor boundary refinement.

[0069] In various embodiments of the present disclosure, the plurality of available filter types for the adaptive filtering process may include filters with different filtering strengths or filter lengths. For example, these filters are often referred to as a weak filter, a strong filter, and a long filter. However, for the purposes of the present disclosure and the appended claims, a 'weak filter'may be referred to as a 'first filter', a 's trong filter'may be referred to as a 's econd filter', and a 'long filter'may be referred to as a 'third filter '. It is understood that the first filter is configured to modify a first number of samples adjacent to the boundary and the second filter is configured to modify a second number of samples greater than the first number, and the third filter is configured to modify a third number of samples greater than the second number. These terms (first, second, third filter types) are used merely as identifiers to distinguish between filters of varying configurations and do not imply any specific order or limitation beyond what is expressly described.

[0070] Example 1-1: Weak filters of deblocking filter process

[0071] In one embodiment, weak filters of deblocking filter process (DF) can be applied to the current predictor boundary. The weak filters of DF denote similar operation in VVC or HEVC DF in in-loop filtering. To apply weak filtering, boundary strength (bS) at the current predictor boundary is set to be greater than zero, and maxFilterLength (maximum filter length) at the current predictor boundary is set to be one. The predictor boundary samples can be modified or not modified depending on condition (dp0 + dq0 + dp3 + dq3) < β, where dx0 and sx3 are difference values (or gradient values) calculated according to dx0 = |x0, 2 –x0, 1| + |x0, 1 –x0, 0|, sx3 = |x3, 3 –x3, 0|, x = p or q, as shown in Fig. 8. β is the filter decision threshold determined based on bit-depth, QP, or a pre-defined lookup table.

[0072] In another embodiment, weak filters of DF can be applied to intra, inter, IBC, IntraTMP predictors.

[0073] In another embodiment, weak filters of DF are always applied to refine the prediction samples close to the current block boundaries.

[0074] In another embodiment, bS value derivation does not consider the subblock boundary or transform unit boundary. bS value can be implicitly set to 1 or 2, or according to the prediction mode (e.g., intra, inter, or IBC prediction) or component type (e.g., luma or chroma) of the current block.

[0075] In another embodiment, for the inter prediction merge mode, only blocks coded with the non-skip mode or with a residual pass can apply weak filters of DF to refine the current predictor boundary. For blocks coded with the skip mode or without a residual pass, the boundary smoothing filter will not be applied.

[0076] In another embodiment, for the inter prediction merge mode, only blocks coded with the skip mode or without a residual pass can apply weak filters of DF to refine the current predictor boundary. For blocks coded with the non-skip mode or with a residual pass, the boundary smoothing filter will not be applied.

[0077] In another embodiment, one or more high-level syntax elements or control flags can be signalled or inferred in a slice header, picture header, PPS or SPS to enable or to disable weak filters of DF for refining the current predictor boundary. For example, when the current video content is detected or determined to be screen content, computer-generated content, or mixed content comprising natural camera-captured content and screen content, the one or more high-level syntax elements or control flags may be signalled or inferred.

[0078] In another embodiment, weak filters of DF for the current predictor boundary refinement can be disabled according to some specific prediction modes in some specific video contents. For example, for some specific modes in screen content video or mixed content video, the current block may be processed using one or more prediction modes including, but not limited to: skip mode, non-skip mode, merge mode, non-merge mode, Advanced Motion Vector Prediction (AMVP) mode, Intra Block Copy (IBC) mode, and Intra Template Matching (IntraTMP) mode, or combinations thereof.

[0079] In another embodiment, one or more high-level syntax elements or control flags can be signalled or inferred in a slice header or picture header or PPS or SPS to indicate whether weak filters of DF can be conditionally applied or always applied. For example, if the high-level syntax or control flag is equal to a first value, weak filters of DF can be always applied to all predictors. If the high-level syntax or control flag is equal to a second value, weak filters of DF can be conditionally, such as according to some specific prediction modes, applied to some predictors.

[0080] Example 1-2: Strong filters of deblocking filter process

[0081] In one embodiment, strong filters in the deblocking filter process (DF) can be applied to the current predictor boundary. The strong filters in DF denotes similar operations in VVC or HEVC DF in in-loop filtering. To apply strong filters, boundary strength (bS) at the current predictor boundary is set to be greater than zero, and maxFilterLength at the current predictor boundary is set to be three. The predictor boundary samples can be modified or not modified depending on condition (dp0 + dq0 + dp3 + dq3) < β, where β is the filter decision threshold determined based on bit-depth, QP, or a pre-defined lookup table, as shown in Fig. 8.

[0082] In another embodiment, strong filters in DF can apply to intra, inter, IBC, IntraTMP predictors.

[0083] In another embodiment, strong filters in DF is always applied to refine the prediction samples close to the current block boundaries. In another embodiment, bS value derivation does not consider the subblock boundary or transform unit boundary. bS value can be implicitly set to 1 or 2, or according to the prediction mode (e.g. intra, inter, or IBC prediction) or component type (e.g., luma or chroma) of the current block.

[0084] In another embodiment, for the inter prediction merge mode, only blocks coded with the non-skip mode or with a residual pass can apply strong filters in DF to refine the current predictor boundary. For blocks coded with the skip mode or without a residual pass, boundary smoothing filter will not be applied.

[0085] In another embodiment, for the inter prediction merge mode, only blocks coded with the skip mode or without a residual can apply strong filters in DF to refine current predictor boundary. For blocks coded with the non-skip mode or with a residual pass, boundary smoothing filter will not be applied.

[0086] In another embodiment, one or more high-level syntax elements or control flags can be signalled or inferred in a slice header or picture header or PPS or SPS to enable or to disable strong filters in DF to refine the current predictor boundary. For example, when the current video content is detected or checked to be screen content or computer generated content or mixed content from natural camera captured content and screen content, the high-level syntax or the control flag can be signalled or inferred.

[0087] In another embodiment, strong filters in DF for the current predictor boundary refinement can be disabled according to some specific prediction modes in some specific video contents. For example, for some specific modes in screen content video or mixed content video, the current block may be processed using one or more prediction modes including, but not limited to: skip mode, non-skip mode, merge mode, non-merge mode, Advanced Motion Vector Prediction (AMVP) mode, Intra Block Copy (IBC) mode, and Intra Template Matching (IntraTMP) mode, or combinations thereof.

[0088] In another embodiment, one or more high-level syntax elements or control flags can be signalled or inferred in a slice header, picture header, PPS, or SPS to indicate whether strong filters in DF can be conditionally applied or always applied. For example, if the high-level syntax or control flag is equal to a first value, strong filters in DF can be always applied to all predictors. If the high-level syntax or control flag equals a second value, strong filters in DF may be conditionally applied to selected predictors according to one or more specified prediction modes.

[0089] Example 1-3: LMCS interaction

[0090] In one embodiment, for an intra predictor, an IBC predictor, and an IntraTMP predictor, a filtering decision can be performed in the LMCS reshaped domain. The filtering decision includes determining whether to enable a filtering operation based on current predictor samples and neighbouring reconstructed samples.

[0091] In another embodiment, for an intra predictor, an IBC predictor, and an IntraTMP predictor, a filtering decision can be performed in the LMCS original domain. The filtering decision includes determining whether to enable a filtering operation based on current predictor samples and neighbouring reconstructed samples. Current predictor samples and neighbouring reconstruction samples are firstly converted from the LMCS reshaped domain to the LMCS original domain. After that, filtering decision is performed.

[0092] In another embodiment, for an inter predictor, a filtering decision can be performed in the LMCS reshaped domain. The filtering decision includes determining whether to enable a filtering operation based on current predictor samples and neighbouring reconstructed samples. The current predictor is first converted from the LMCS original domain to the LMCS reshaped domain, and the filtering decision is performed afterward.

[0093] In another embodiment, for an inter predictor, filtering decision can be performed in LMCS original domain. The filtering decision can include using current predictor samples and neighbouring reconstruction samples to determine filtering operation is enabled or not. The neighbouring reconstruction samples is first converted from the LMCS reshaped domain to the LMCS original domain, and filtering decision can be performed afterward.

[0094] Example 1-4: Adaptive boundary smoothing filter for predictor boundary refinement

[0095] In one embodiment, adaptive filtering in DF can be applied to the current predictor boundary. The adaptive filtering in DF denotes similar operation in VVC or HEVC DF in in-loop filtering, such as strong filters, weak filters, and long filters. To apply the adaptive filtering, boundary strength at the current predictor boundary is set using deblocking bs value derivation rule. The maxFilterLength at the current predictor boundary is set using deblocking maxFilterLength value derivation rule. The predictor boundary samples can be modified or not modified depending on condition (dp0 + dq0 + dp3 + dq3) < β, where β is the filter decision threshold determined from bit-depth, QP and or a pre-defined lookup table, as shown in Fig. 8.

[0096] In another embodiment, the adaptive filtering in DF can be applied to intra, inter, IBC, IntraTMP predictors.

[0097] In another embodiment, during bs value derivation and maxFitlerLength derivation, the current predictor boundary can be regarded (or inferred) as the transform unit boundary.

[0098] In another embodiment, bs value derivation and maxFitlerLength derivation do not consider subblock boundary.

[0099] In another embodiment, during bs value derivation and maxFitlerLength derivation, prediction mode information can be regarded as CBF related information. For example, for an inter prediction coded block, the CBF value of the predictor can be regarded as 0. For another example, for an intra prediction coded block, an IBC prediction coded block and an IntraTMP coded block, the CBF value of the predictor can be regarded as 1.

[0100] In another example, for an inter prediction coded block, the CBF value of the predictor can be regarded as 1.

[0101] In another example, for inter prediction, the CBF value of the predictor for a skip mode coded block can be regarded as 1 and the CBF value of the predictor for a non-skip mode coded block can be regarded as 0.

[0102] In another embodiment, for an inter prediction merge mode, only blocks coded with the non-skip mode or with a residual pass can apply the adaptive filtering in DF to refine the current predictor boundary. For blocks coded with the skip mode or without a residual pass, the adaptive filtering will not be applied.

[0103] In another embodiment, for an inter prediction merge mode, only blocks coded with the skip mode or without a residual pass can apply the adaptive filtering in DF to refine the current predictor boundary. For blocks coded with the non-skip mode or with a residual pass, the adaptive filtering will not be applied.

[0104] In another embodiment, one or more high-level syntax elements or control flags can be signalled or inferred in a slice header, picture header, PPS, or SPS to enable or to disable the adaptive boundary smoothing filter for refining the current predictor boundary. For example, when the current video content is detected or checked to be screen content, computer generated content, or mixed content from natural camera captured content and screen content, the high-level syntax or the control flag can be signalled or inferred.

[0105] In another embodiment, the adaptive boundary smoothing filter for the current predictor boundary refinement can be disabled according to some specific prediction modes in some specific video content. For instance, some specific modes in screen content video or mixed content video can include one or more of the following prediction modes: skip, non-skip, merge, non-merge, AMVP, IBC, intraTMP, any combination thereof.

[0106] In another embodiment, one or more high-level syntax elements or control flags can be signalled or inferred in a slice header, picture header, PPS, or SPS to indicate whether the adaptive boundary smoothing filter can be conditionally applied or always applied. For example, if the high-level syntax or control flag is equal to a first value, the adaptive boundary smoothing filter can be always applied to all predictors. If the high-level syntax or control flag is equal to a second value, the adaptive boundary smoothing filter can be conditionally applied to some predictors according to some specific prediction modes.

[0107] Any of the foregoing proposed methods of predictor filtering can be implemented in encoders and / or decoders. For example, any of the proposed methods can be implemented in predictor derivation module of an encoder, and / or a predictor derivation module of a decoder. Alternatively, any of the proposed methods can be implemented as a circuit coupled to the predictor derivation module of the encoder and / or the predictor derivation module of the decoder, so as to provide the information needed by the predictor derivation module.

[0108] With reference to the exemplary encoder in Fig. 1A and exemplary decoder in Fig. 1B, any of the proposed methods can be implemented in a predictor derivation module of an encoder, and / or a predictor derivation module of a decoder. Alternatively, any of the proposed methods can be implemented as a circuit coupled to the predictor derivation module of the encoder and / or the predictor derivation module of the decoder, so as to provide the information needed by the predictor derivation module. For example, the process for the proposed methods can be implemented in an encoder side or a decoder side, such as the Intra / Inter coding module (e.g. Intra Pred. 150 / MC 152 in Fig. 1B) in a decoder or an Intra / Inter coding module is an encoder (e.g. Intra Pred. 110 / Inter Pred. 112 in Fig. 1A) .

[0109] Fig. 9 illustrates a flowchart of an exemplary video coding system, where a smoothing filter is applied to prediction samples of a current predictor located within a boundary with a neighbouring block to generate filtered prediction samples according to an embodiment of the present invention. The steps shown in the flowchart may be implemented as program codes executable on one or more processors (e.g., one or more CPUs) at the encoder side. The steps shown in the flowchart may also be implemented based hardware such as one or more electronic devices or processors arranged to perform the steps in the flowchart. According to this method, input data associated with a current block is received in step 910, wherein the input data comprises pixel data for the current block to be encoded at an encoder side or coded data for decoding the current block at a decoder side. A current predictor for the current block is generated according to a prediction mode in step 920. Target prediction samples within the current predictor that are located within a predefined distance of a boundary between the current block and at least one neighbouring reconstruction block are identified in step 930. A smoothing filter used in an in-loop filtering stage is applied to the target prediction samples within the current predictor to generate a filtered predictor in step 940. The current block is encoded or decoded using the filtered predictor in step 950.

[0110] The flowchart shown is intended to illustrate an example of video coding according to the present invention. A person skilled in the art may modify each step, re-arranges the steps, split a step, or combine steps to practice the present invention without departing from the spirit of the present invention. In the disclosure, specific syntax and semantics have been used to illustrate examples to implement embodiments of the present invention. A skilled person may practice the present invention by substituting the syntax and semantics with equivalent syntax and semantics without departing from the spirit of the present invention.

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

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

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

Claims

1.A method of video coding, the method comprising:receiving input data associated with a current block, wherein the input data comprises pixel data for the current block to be encoded at an encoder side or coded data for decoding the current block at a decoder side;generating a current predictor for the current block according to a prediction mode;identifying target prediction samples within the current predictor that are located within a predefined distance of a boundary between the current block and at least one neighbouring reconstruction block;applying a smoothing filter used in an in-loop filtering stage to the target prediction samples within the current predictor to generate a filtered predictor; andencoding or decoding the current block using the filtered predictor.2.The method of Claim 1, wherein the smoothing filter is selected from a group consisting of: a deblocking filter (DF) , a sample adaptive offset (SAO) filter, an adaptive loop filter (ALF) , a bilinear filter, and a bilateral filter.3.The method of Claim 1, wherein the smoothing filter comprises an adaptive filtering process configured for deblocking filter, and wherein a specific filter type is adaptively selected for the smoothing filter from a plurality of available filter types.4.The method of Claim 3, wherein the plurality of available filter types comprises at least one first filter and at least one second filter, wherein the first filter is configured to modify a first number of samples adjacent to the boundary and the second filter is configured to modify a second number of samples adjacent to the boundary, the second number being greater than the first number.5.The method of Claim 4, wherein the plurality of available filter types further comprises at least one third filter, wherein the third filter is configured to modify a third number of samples adjacent to the boundary, the third number being greater than the second number.6.The method of Claim 3, wherein at least one of a specific boundary strength, or a specific maximum filter length is selected for each of the plurality of available filter types.7.The method of Claim 3, further comprising determining one or more filtering conditions by comparing a sum of first gradient values (dq) from a first side of the boundary and second gradient values (dp) from a second side of the boundary with a threshold, wherein the adaptive filtering process is applied to the target prediction samples only when said one or more filtering conditions are satisfied.8.The method of Claim 7, wherein the threshold is determined based on a bit-depth of the input data or a Quantization Parameter (QP) associated with the current block.9.The method of Claim 1, wherein the prediction mode is selected from a group consisting of: an intra-prediction mode, an inter-prediction mode, an intra block copy (IBC) mode, and an Intra Template Matching Prediction (IntraTMP) mode.10.The method of Claim 1, wherein one or more high-level syntax elements in a bitstream are signalled or parsed to enable or disable application of the smoothing filter.11.The method of Claim 10, wherein said one or more high-level syntax elements are signalled in at least one of: a slice header, a picture header, a Picture Parameter Set (PPS) , or a Sequence Parameter Set (SPS) .12.The method of Claim 1, wherein during derivation of a specific boundary strength and a specific maximum filter length associated with the smoothing filter, Coded Block Flag (CBF) information for the current block is inferred from prediction mode information.13.The method of Claim 12, wherein CBF value of the current block is inferred as 0, indicating an absence of significant residual data, in response to determining that the current block is coded in an inter-prediction mode.14.The method of Claim 12, wherein CBF value of the current block is inferred as 1, indicating existence of significant residual data, in response to determining that the current block is coded in an inter-prediction mode.15.The method of Claim 12, wherein CBF value of the current block is inferred as 1, indicating existence of significant residual data, in response to determining that the current block is coded in an intra-prediction mode, an Intra Block Copy (IBC) mode, or an Intra Template Matching Prediction (IntraTMP) mode.16.An apparatus for video coding, the apparatus comprising one or more electronics or processors arranged to:receive input data associated with a current block, wherein the input data comprises pixel data for the current block to be encoded at an encoder side or coded data for decoding the current block at a decoder side;generate a current predictor for the current block according to a prediction mode;identify target prediction samples within the current predictor that are located within a predefined distance of a boundary between the current block and at least one neighbouring reconstruction block;apply a smoothing filter used in an in-loop filtering stage to the target prediction samples within the current predictor to generate a filtered predictor; andencode or decode the current block using the filtered predictor.