Methods and apparatus of overlapped block refinement for intra prediction in video coding

By extending OBMC to intra coded blocks and blending neighboring predictors, the method addresses block artifacts and enhances coding efficiency and visual quality in video coding systems.

WO2026092573A1PCT designated stage Publication Date: 2026-05-07MEDIATEK INC
View PDF 5 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
MEDIATEK INC
Filing Date
2025-10-30
Publication Date
2026-05-07

AI Technical Summary

Technical Problem

Existing video coding technologies face challenges in effectively addressing block artifacts and discontinuities at boundaries between intra coded blocks, particularly when conventional methods like PDPC are not applied, leading to reduced coding efficiency and visual quality.

Method used

The proposed method extends Overlapped Block Motion Compensation (OBMC) to intra coded blocks, blending neighboring predictors with current intra predictors to refine boundary areas, using techniques such as intra block copy and template-based intra mode derivation to enhance prediction accuracy.

Benefits of technology

This approach reduces block artifacts and improves coding efficiency by refining intra block boundaries, leading to enhanced visual quality and reduced computational complexity in video coding systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025131185_07052026_PF_FP_ABST
    Figure CN2025131185_07052026_PF_FP_ABST
Patent Text Reader

Abstract

A method and apparatus of video coding using refined boundary prediction for intra coded blocks are disclosed. According to this method, input data comprising a current block, a current subblock, a neighbouring block, or a neighbouring subblock is received. A current intra predictor is generated for the current block or the current subblock. A refined intra predictor is generated for the current block or the current subblock in a boundary area of the current block or the current subblock by blending the current intra predictor and a target neighbouring predictor derived from the neighbouring block or the neighbouring subblock. The current block or the current subblock is encoded or decoded using the refined intra predictor.
Need to check novelty before this filing date? Find Prior Art

Description

METHODS AND APPARATUS OF OVERLAPPED BLOCK REFINEMENT FOR INTRA PREDICTION 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 / 713,611, filed on October 30, 2024. The U.S. Provisional Patent Application is hereby incorporated by reference in its entirety.FIELD OF THE INVENTION

[0002] The present invention relates to video coding system using Overlapped Block Motion Compensation (OBMC) . In particular, the present invention relates to apply overlapped block prediction for intra coded blocks. 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] Overlapped Block Motion Compensation (OBMC)

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

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

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

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

[0012] 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) .

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

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

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

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

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

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

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

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

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

[0022] Template Matching Based OBMC

[0023] A template matching-based OBMC scheme has been proposed (JVET-Y0076) recently. As shown in Fig. 7, for each top block with a size of 4×4 at the top CU boundary, the above template size equals to 4×1. In Fig. 7, box 710 corresponds to a CU. If N adjacent blocks have the same motion information, then the above template size is enlarged to 4N×1 since the MC operation can be processed at one time, which is in the same manner in ECM-OBMC. For each left block with a size of 4×4 at the left CU boundary, the left template size equals to 1×4 or 1×4N.

[0024] For each 4×4 top block (or N 4×4 blocks group) , the prediction value of boundary samples is derived according to the following steps: –Take block A as the current block and its above neighbouring block AboveNeighbour_A for example. The operation for left blocks is conducted in the same manner. –First, three template matching costs (Cost1, Cost2, Cost3) are measured by SAD between the reconstructed samples of a template and its corresponding reference samples derived by MC process according to the following three types of motion information: Cost1 is calculated according to A’s motion information. Cost2 is calculated according to AboveNeighbour_A’s motion information. Cost3 is calculated according to weighted prediction of A’s and AboveNeighbour_A’s motion information with weighting factors as 3 / 4 and 1 / 4 respectively. –Second, choose one out of three approaches to calculate the final prediction results of boundary samples by comparing Cost1, Cost2 and Cost 3.

[0025] The original MC result using current block’s motion information is denoted as Pixel1, and the MC result using neighbouring block’s motion information is denoted as Pixel2. The final prediction result is denoted as NewPixel. -If Cost1 is minimum, then NewPixel (i, j) = Pixel1 (i, j) . -If (Cost2 + (Cost2 >> 2) + (Cost2 >> 3) ) <= Cost1, then blending mode 1 is used. For luma blocks, the number of blending pixel rows is 4. -NewPixel (i, 0) = (26×Pixel1 (i, 0) +6×Pixel2 (i, 0) +16) >>5 -NewPixel (i, 1) = (7×Pixel1 (i, 1) +Pixel2 (i, 1) +4) >>3 -NewPixel (i, 2) = (15×Pixel1 (i, 2) +Pixel2 (i, 2) +8) >>4 -NewPixel (i, 3) = (31×Pixel1 (i, 3) +Pixel2 (i, 3) +16) >>5 For chroma blocks, the number of blending pixel rows is 1. -NewPixel (i, 0) = (26×Pixel1 (i, 0) +6×Pixel2 (i, 0) +16) >>5 -If Cost1 <= Cost2, then blending mode 2 is used. For luma blocks, the number of blending pixel rows is 2. -NewPixel (i, 0) = (15×Pixel1 (i, 0) +Pixel2 (i, 0) +8) >>4 -NewPixel (i, 1) = (31×Pixel1 (i, 1) +Pixel2 (i, 1) +16) >>5 For chroma blocks, the number of blending pixel rows / columns is 1. -NewPixel (i, 0) = (15×Pixel1 (i, 0) +Pixel2 (i, 0) +8) >>4 -Otherwise, blending mode 3 is used. For luma blocks, the number of blending pixel rows is 4. -NewPixel (i, 1) = (7×Pixel1 (i, 1) +Pixel2 (i, 1) +4) >>3 -NewPixel (i, 2) = (15×Pixel1 (i, 2) +Pixel2 (i, 2) +8) >>4 -NewPixel (i, 3) = (31×Pixel1 (i, 3) +Pixel2 (i, 3) +16) >>5 For chroma blocks, the number of blending pixel rows is 1. -NewPixel (i, 0) = (7×Pixel1 (i, 0) +Pixel2 (i, 0) +4) >>3.

[0026] VVC Inter Prediction

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

[0028] JVET-AC0164 Non-EE2: Improvements on Local Illumination Compensation in ECM7.0

[0029] In ECM-7.0, local illumination compensation (LIC) is an inter coding technique that aims at addressing the illumination variations between one block and its prediction block. The LIC is based on a linear model where a scale α and an offset β are derived from the template samples neighbouring to the current block and their corresponding prediction samples. The derived LIC parameters are then applied to adjust the prediction samples of the block as P′ [x, y] =α·P [x, y] +β

[0030] Currently, the LIC is only applicable to uni-predictive inter CUs which contains no less than 32 luma samples.

[0031] Additionally, overlapped block motion compensation (OBMC) is another inter tool in ECM7.0, which alleviates the discontinuities among the prediction samples of inter blocks by adjusting the boundary prediction samples of one inter block / sub-block using its neighbouring block’s MV. According to the existing ECM design, when the LIC is applied to one inter block, the OBMC is always disabled. Additionally, when a neighbouring block of the current CU applies the LIC, only its MVs are used to produce the corresponding prediction samples used for the OBMC process of the current CU.

[0032] The following modifications are proposed to further improve the coding efficiency of the LIC tool.

[0033] Bi-Predictive LIC

[0034] It is proposed to extend the existing LIC design to bi-predicted CUs. Specifically, when applying the proposed method to one bi-prediction block, two different linear models are derived to compensate the illumination changes that exist between the current block and its two prediction blocks. Then, the final bi-prediction of the current block is calculated as the combination of two uni-prediction blocks after the LIC adjustment, i.e., P′ [x, y] = (1-ω) ·p′0 [x, y] +ω·p′1 [x, y] , and p′0 [x, y] =α0·P0 [x, y] +β0, p′1 [x, y] =α1·P1 [x, y] +β1, where α0 and β0, and α1 and β1 indicate the scales and the offsets in L0 and L1, respectively; ω indicates the weight (as indicated by the CU-level BCW index) that is applied when combining the two uni-prediction blocks.

[0035] Same to the current LIC design, one control flag is signalled for AMVP bi-predicted CUs to indicate the enabling / disabling of the LIC while the flag is inherited from one neighbouring block for merge inter CUs (including AMVP-Merge mode) . Additionally, the LIC is disabled when decoder-side motion vector refinement (DMVR) (including multi-pass DMVR, adaptive DMVR and affine DMVR) and bi-directional optical flow (BDOF) is applied.

[0036] To reuse the linear model derivation of the existing LIC, one iterative approach is applied to alternately derive the L0 and L1 linear models. Specifically, given the two MVs of the current block, it assumes T0 and T1 are the two predictions of the current block’s template T. The method firstly derives the L0 linear model (α0 and β0) that result in the minimum difference between T0 and T; then, the L1 linear model (α1 and β1) can be calculated that minimizes the difference between T1 and the updated template. Finally, the L0 linear model is refined again in the same way.

[0037] OBMC with LIC

[0038] The following two changes are applied to better handle the interaction between the LIC and the OBMC: 1) It is proposed to enable the OBMC to the inter blocks where the LIC is applied. Additionally, to achieve a better complexity / performance trade-off, the OBMC is only applied for refining the prediction samples on the top and left boundaries of one LIC CU while the OBMC on the internal sub-block boundaries are always disabled. 2) Besides the MVs, it is proposed to also take the LIC parameters of one neighbouring block (when it is coded by the LIC) into consideration when generating its corresponding prediction samples for the OBMC of the current CU.

[0039] JVET-AJ0161 EE2-3.3: OBMC Extension with Intra Prediction

[0040] In OBMC of ECM, top and left boundary pixels of the current block are only blended with inter prediction block generated using motion information of neighbouring block. However, top and left boundary pixels adjacent to intra block remain un-refined due to the absence of motion information of neighbouring intra block. Consequently, discontinuities at these boundary pixels may still be present, which can result in large residual signals at the boundary. To address this issue, another OBMC extension was proposed in JVET-AI0154. In the proposed OBMC extension, in addition to the existing OBMC process, the top and left boundary pixels adjacent to intra block are blended with intra prediction subblock generated using the intra prediction mode derived by applying DIMD (Decoder-side Intra Mode Derivation) on the neighbouring reconstructed samples. An example of the OBMC extension with intra prediction is illustrated in Fig. 8 to show how boundary pixels adjacent to intra blocks are processed.

[0041] Furthermore, the blending of top and left boundary pixels adjacent to intra blocks is performed only when the intra prediction mode derived from DIMD falls within the range defined according to the availability of neighbouring reconstructed samples. This condition limits the usage of padded reference samples for intra prediction.

[0042] Test 3.3a: OBMC extension with intra prediction

[0043] In test 3.3a, OBMC is extended to perform the refinement of the top and left boundary pixels adjacent to the intra block. These pixels are blended using an intra prediction block generated with the intra prediction mode derived by applying DIMD on the neighbouring reconstructed samples.

[0044] Test 3.3b: Test 3.3a + DIMD with 2x2 edge operator

[0045] In test 3.3b, the 3x3 edge operator used in test 3.3a is modified to the 2x2 edge operator proposed in JVET-AI0140 [2] to derive the intra prediction mode in DIMD. The horizontal and vertical filters of the 2x2 edge operator are defined as follows:

[0046] Test 3.3c: Test 3.3a + using intra prediction mode of neighbouring block

[0047] In test 3.3c, instead of deriving intra prediction mode with DIMD as in test 3.3a, intra prediction mode of the neighbouring block is used to generate the intra prediction block.

[0048] Test 3.3d: Test 3.3a + more neighbouring blocks are checked for available motion information to generate inter subblock

[0049] On top of test 3.3a, the search positions for available motion information are expanded as follows: -For subblocks on the top boundary: In addition to the above block, the blocks to its left and right are also checked. -For subblocks on the left boundary: In addition to the left block, the blocks above and below are also checked.

[0050] JVET-AJ0078 EE2-related: Extended Overlapped Block Blending for MV / BV Based Prediction

[0051] For additional coding gain, the JVET-AJ0078 contribution proposes an extended OBB for MV / BV based prediction. Specifically, this contribution extensively introduces OBB (Overlapped Block Blending) to IBC or IntraTMP applied current blocks regardless of prediction mode in adjacent blocks. Moreover, the JVET-AJ0078 contribution additionally allows OBB for inter predicted current blocks having adjacent blocks with BV.

[0052] To summarize, OBB applied cases are extended as shown in Table 1. Table 1 Extended OBB applied cases by the proposed method.

[0053] The subblock-based IPM derivation of adjacent blocks and OBB blending processes are followed by those in EE2-3.3a and ECM-14.0, respectively. To reduce the complexity and enhance the robustness against noises, the subblock-based IPM derivation process is executed jointly when adjacent subblocks have same intra prediction mode.

[0054] JVET-AJ0113 Non-EE2: Intra OBMC

[0055] In order to addresses the discontinuity between two non-inter coded blocks, the intra OBMC scheme is proposed in JVET-AJ0113.

[0056] The intra OBMC is applied to top and left boundaries of the current block as follows: -For luma component: · Both the current block and the neighbouring block are coded by BV modes; · The current block is coded by a BV mode and the neighbouring block is coded by a non-BV intra mode; -For chroma components: · The current block is coded by a CCP mode and the neighbouring block is coded by a non-CCP and non-BV mode.

[0057] The BV mode includes IBC mode and intra TMP mode for luma, and DBV mode for chroma.

[0058] For 4: 2: 0 colour format, the intra OBMC is performed on 4x4 sub-block level for luma and 2x2 sub-block level for chroma. If intra OBMC is applied, each sub-block on the top and left boundaries within the current block is blended with a predictor generated by the information of the neighbouring block. If the neighbouring block is coded by a BV mode, the BV information (including BV, fusion parameters, LIC parameters etc. ) is used to generate the predictor. If the neighbouring block is coded by a non-BV intra mode, an intra prediction mode derived by applying DIMD method on the adjacent reconstructed samples is used to generate the predictor.

[0059] The blending weights for the proposed intra OBMC are identical to those used in inter OBMC when template matching-based OBMC is not applied.

[0060] The proposed intra OBMC is only applied to camera-captured sequences.

[0061] In the present invention, the OBMC method is extended to intra coded blocks so that the neighbouring predictor from a neighbouring block can be blended with the current intra predictor to form a blended predictor for overlapped boundary area of the current block. BRIEF SUMMARY OF THE INVENTION

[0062] A method and apparatus of video coding using refined boundary prediction for intra coded blocks are disclosed. According to this method, input data comprising a current block, a current subblock, a neighbouring block, or a neighbouring subblock is received. A current intra predictor is generated for the current block or the current subblock. A refined intra predictor is generated for the current block or the current subblock in a boundary area of the current block or the current subblock by blending the current intra predictor and a target neighbouring predictor derived from the neighbouring block or the neighbouring subblock. The current block or the current subblock is encoded or decoded using the refined intra predictor.

[0063] In one embodiment, the current block or the current subblock is coded in regular intra prediction, DIMD (Decoder-side Intra Mode Derivation) , TIMD (Template-based Intra Mode Derivation) , MIP (Matrix-based Intra Prediction) , matrix-based intra prediction replacing conventional intra mode.

[0064] In one embodiment, the refined intra predictor is used for encoding or decoding the current block or the current subblock when the neighbouring block or the neighbouring subblock is coded in IBC (Intra Block Copy) mode or IntraTMP (Intra Template Matching Prediction) mode.

[0065] In one embodiment, the refined intra predictor is used for encoding or decoding the current block or the current subblock when the neighbouring block or the neighbouring subblock is coded in inter prediction mode.

[0066] In one embodiment, the refined intra predictor is used for encoding or decoding the current block or the current subblock when the neighbouring block or the neighbouring subblock has a motion vector, a block vector, or a motion shift from a template-related prediction mode.

[0067] In one embodiment, whether the refined intra predictor is used for encoding or decoding the current block is according to a smallest neighbouring prediction mode unit. In one embodiment, the smallest neighbouring prediction mode unit corresponds to an intra 4x4 unit, inter 4x4 unit, IBC 4x4 unit, or IntraTMP 4x4 unit.

[0068] In one embodiment, whether the refined intra predictor is used for encoding or decoding is according to a smallest current prediction mode unit. In one embodiment, the smallest current prediction mode unit corresponds to an intra 4x4 unit, inter 4x4 unit, IBC 4x4 unit, or IntraTMP 4x4 unit.

[0069] In one embodiment, when the current block or the current subblock is coded in intra prediction mode, and the neighbouring block or the neighbouring subblock is coded in an intra prediction mode, a decoder-side intra mode derivation method is used to derive the intra prediction mode for the neighbouring block or the neighbouring subblock and to generate the target neighbouring predictor.

[0070] In one embodiment, when the current block or the current subblock is coded in an intra prediction mode, and the neighbouring block or the neighbouring subblock is also coded in the intra prediction mode, a Matrix-based Intra Prediction Replacing Conventional Intra Modes method is used to derive the target neighbouring predictor.

[0071] In one embodiment, when the current block or the current subblock is coded in an intra prediction mode, and the neighbouring block or the neighbouring subblock is also coded in the intra prediction mode, a TIMD (Template-based Intra Mode Derivation) method is used to derive the target neighbouring predictor.

[0072] In one embodiment, when the current block or the current subblock is coded in an intra prediction mode, and the neighbouring block or the neighbouring subblock is also coded in the intra prediction mode, an intra fusion method is used to derive the target neighbouring predictor.

[0073] In one embodiment, when the current block or the current subblock is coded in intra prediction mode, and an intra-coded block, an inter coded block, an IBC coded block, or an IntraTMP coded block exists in neighbouring blocks, the refined intra predictor is used for encoding or decoding the current block or the current subblock.

[0074] In one embodiment, when the current block or the current subblock is coded in intra prediction mode, more neighbouring block positions or more neighbouring subblock positions along the current block are checked for neighbouring intra coded blocks, neighbouring IBC coded blocks, or neighbouring IntraTMP coded blocks to determine whether the overlapped intra predictor is used for encoding or decoding the current block.

[0075] In one embodiment, when luma mapping and chroma scaling is used, a neighbouring intra predictor is generated for the neighbouring block or the neighbouring subblock, and the generated neighbouring intra predictor is converted from a reshaped domain and then blended with the current intra predictor in an original domain.BRIEF DESCRIPTION OF THE DRAWINGS

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

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

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

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

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

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

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

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

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

[0085] Fig. 7 illustrates an example of Template Matching based OBMC where, for each top block with a size of 4×4 at the top CU boundary, the above template size equals to 4×1.

[0086] Fig. 8 illustrates an example of proposed OBMC extension with intra prediction according to JVET-AI0154.

[0087] Fig. 9 illustrates an example of constraint on the range of intra prediction modes for using OBMC extension with intra prediction according to JVET-AI0154.

[0088] Fig. 10 illustrates an example of more neighbouring positions check for neighbouring blocks regarding whether to apply overlapped boundary refinement.

[0089] Fig. 11 illustrates a flowchart of an exemplary video coding system, where an overlapped intra predictor is used for encoding or decoding a current block or subblock according to an embodiment of the present invention.DETAILED DESCRIPTION OF THE INVENTION

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

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

[0092] Proposed Methods

[0093] Intra Block Overlapped Block Refinement

[0094] In existing ECM, OBMC is performed only when the current block is coded in an inter prediction mode. However, it is possible that there is boundary artefact between current intra coded blocks and corresponding neighbouring blocks. Though PDPC (Position Dependent Prediction Combination) may be applied to refine predictor boundary according to some angular intra predictor modes, it is possible that the intra predictor will not be refined since PDPC is not applied and there is boundary artifact between the current intra predictor and neighbouring blocks. Therefore, it is proposed to apply overlapped block refinement to the current intra coded block in order to reduce block artefact between the current block and neighbouring blocks.

[0095] In one embodiment, when the current block is intra predicted, OBMC-like or overlapped block refinement is applied to refine the block boundary of the current intra predictor. The OBMC-like or overlapped block refinement is performed by blending the current intra predictor with generated neighbouring predictors.

[0096] Neighbouring Condition of Intra Block Overlapped Block Refinement

[0097] In one embodiment, when the current block is intra predicted, OBMC-like or overlapped block refinement is applied to refine the block boundary of the current intra predictor when a neighbouring block is coded in an intra prediction mode.

[0098] In another embodiment, when the current block is intra predicted, OBMC-like or overlapped block refinement is applied to refine the block boundary of the current intra predictor when the neighbouring block is coded in an inter prediction mode.

[0099] In another embodiment, when the current block is intra predicted, OBMC-like or overlapped block refinement is applied to refine the block boundary of the current intra predictor when a neighbouring block is coded in IBC prediction mode.

[0100] In another embodiment, when the current block is intra predicted, OBMC-like or overlapped block refinement is applied to refine the block boundary of the current intra predictor when a neighbouring block is coded in IntraTMP mode.

[0101] In another embodiment, when the current block is intra predicted, OBMC-like or overlapped block refinement is applied to refine the block boundary of the current intra predictor when there is a motion vector in a neighbouring block.

[0102] In another embodiment, when the current block is intra predicted, OBMC-like or overlapped block refinement is applied to refine the block boundary of the current intra predictor when there is a block vector or motion shift from the template related prediction mode in a neighbouring block.

[0103] In another embodiment, when the current block is intra predictor, OBMC-like or overlapped block refinement is applied to refine the block boundary of the current intra predictor when there is an intra-coded block, inter coded block, IBC coded block, or IntraTMP coded block in neighbouring blocks. Overlapped block refinement unit is determined according to the smallest neighbouring prediction mode unit, such as intra 4x4 unit, inter 4x4 unit, IBC 4x4 unit or IntraTMP 4x4 unit.

[0104] In another embodiment, when the current block is an intra predictor, OBMC-like or overlapped block refinement is applied to refine the block boundary of the current intra predictor when there is an intra-coded block, inter coded block, IBC coded block, or IntraTMP coded block in neighbouring blocks. The overlapped block refinement unit is determined according to the smallest current prediction mode unit, such as intra 4x4 unit, inter 4x4 unit, IBC 4x4 unit or IntraTMP 4x4 unit.

[0105] Neighbouring Condition of IBC / IntraTMP-OBMC

[0106] In one embodiment, when the current block is IBC predicted and the neighbouring block or subblock is intra predicted, OBMC-like or overlapped block refinement is applied to refine the block boundary of the current IBC predictor. DIMD-like method is used to derive an intra prediction mode of a neighbouring block or neighbouring subblock and to generate a neighbouring intra predictor. The current IBC predictor will be blended with the generated neighbouring intra predictor according to the OBMC process.

[0107] In another embodiment, when the current block is IntraTMP predicted and the neighbouring block or subblock is intra predicted, OBMC-like or overlapped block refinement is applied to refine the block boundary of the current IntraTMP predictor. The DIMD-like method is used to derive the intra prediction mode of the neighbouring block or neighbouring subblock and to generate the neighbouring intra predictor. The current IntraTMP predictor will be blended with the generated neighbouring intra predictor according to the OBMC process.

[0108] In another embodiment, when the current block is IBC predictor, OBMC-like or overlapped block refinement is applied to refine the block boundary of a current IBC predictor when there is intra-coded block, inter coded block, IBC coded block, or IntraTMP coded block in neighbouring blocks. The overlapped block refinement unit is determined according to the smallest neighbouring prediction mode unit, such as intra 4x4 unit, inter 4x4 unit, IBC 4x4 unit or IntraTMP 4x4 unit.

[0109] In another embodiment, when the current block is IntraTMP predictor, OBMC-like or overlapped block refinement is applied to refine the block boundary of the current IntraTMP predictor when there is an intra-coded block, inter coded block, IBC coded block, or IntraTMP coded block in neighbouring blocks. The overlapped block refinement unit is determined according to the smallest current prediction mode unit, such as intra 4x4 unit, inter 4x4 unit, IBC 4x4 unit or IntraTMP 4x4 unit.

[0110] More Neighbouring Positions Check for Neighbouring Intra Coded Blocks

[0111] In ECM OBMC, to perform the CU boundary OBMC process, motion similarity between the current motion and neighbouring motion will be checked by comparing the current motion with neighbouring motion located at 1-pixel distance away position from the current top or left CU boundary subblock. In JVET-AJ0161, more neighbouring positions are checked, and more neighbouring motions are checked with the current motion. Thus, it is also proposed to check more neighbouring positions for neighbouring intra coded blocks, neighbouring IBC coded blocks, or IntraTMP coded blocks when applying OBMC or overlapped block refinement for the current intra coded block, current IBC coded block, or current IntraTMP coded block.

[0112] In one embodiment, as shown in Fig. 10, when applying OBMC or overlapped block refinement at current subblock A or current subblock B, in addition to neighbouring position (0, -1) or (-1, 0) , more neighbouring positions for neighbouring intra coded blocks are checked. For instance, one or more neighbouring positions along CU boundary are checked, that is, (-4, -1) , (4, -1) , (-8, -1) , (8, -1) …and so on for the top CU boundary and (-1, -4) , (-1, 4) , (-1, -8) , (-1, 8) …and so on for the left CU boundary.

[0113] In another embodiment, as shown in Fig. 10, when applying OBMC or overlapped block refinement at current subblock A or current subblock B, in addition to neighbouring position (0, -1) or (-1, 0) , more neighbouring positions for neighbouring IBC or IntraTMP coded blocks are checked. For instance, one or more neighbouring positions along the CU boundary are checked, that is, (-4, -1) , (4, -1) , (-8, -1) , (8, -1) …and so on for the top CU boundary and (-1, -4) , (-1, 4) , (-1, -8) , (-1, 8) …and so on for the left CU boundary.

[0114] In another embodiment, as shown in Fig. 10, when applying OBMC or overlapped block refinement at current subblock A or current subblock B, in addition to neighbouring position (0, -1) or (-1, 0) , more neighbouring positions for neighbouring intra coded blocks, neighbouring IBC coded blocks, or neighbouring IntraTMP blocks are checked. At one neighbouring position, one or more prediction modes are allowed and some prediction modes are prioritized. For example, when the current block is intra coded, intra prediction modes, IBC and IntraTMP modes are allowed at position (0, -1) during motion similarity check, but intra prediction mode has higher priority to be used in the OBMC process since the current block is intra coded. For another example, when the current block is IBC or IntraTMP coded, intra prediction modes, IBC and IntraTMP modes are allowed at position (0, -1) during motion similarity check, but IBC or IntraTMP mode has higher priority to be used in the OBMC process since current block is IBC or IntraTMP coded.

[0115] OBMC or Overlapped Block Refinement Predictor Blending Original Domain and Reshaped Domain Selection

[0116] In VVC, luma mapping and chroma scaling will convert the intra luma predictor from the original domain to the reshaped domain. In order to blend the generated neighbouring intra predictor and the current inter predictor, predictor domain conversion should be performed to make two predictors in the same domain and then perform OBMC blending.

[0117] In one embodiment, when generating the neighbouring subblock intra predictor or neighbouring block intra predictor, the generated intra predictor will be converted from the reshaped domain and then will be blended with the inter predictor in the original domain.

[0118] In another embodiment, when generating a neighbouring subblock intra predictor or neighbouring block intra predictor, the generated intra predictor will be in the reshaped domain while corresponding current subblock inter predictor or current block inter predictor will be converted from the original domain to the reshaped domain. Then the OBMC blending process is performed in the reshaped domain.

[0119] In another embodiment, when performing the OBMC process, the current block inter predictor is converted from the original domain to the reshaped domain. The neighbouring subblock inter predictor or neighbouring block inter predictor will also be converted from the original domain to the reshaped domain. Thus, whole OBMC blending process will be performed in the reshaped domain.

[0120] In another embodiment, when generating neighbouring subblock intra, inter, IBC or IntraTMP predictor or neighbouring block intra, inter, IBC or IntraTMP predictor, the generated intra, inter, IBC or IntraTMP predictor will be converted from the reshaped domain to the original domain and then will blend with current intra, inter, IBC or IntraTMP predictor in the original domain.

[0121] In another embodiment, when generating neighbouring subblock intra, inter, IBC or IntraTMP predictor or neighbouring block intra, inter, IBC or IntraTMP predictor, the generated intra, inter, IBC or IntraTMP predictor will be in the reshaped domain while corresponding current subblock intra, inter, IBC or IntraTMP predictor or current block intra, inter, IBC or IntraTMP predictor will be converted from the original domain to the reshaped domain. Then the OBMC blending process is performed in the reshaped domain.

[0122] In another embodiment, the predictor domain conversion depends on slice type. For example, when the current slice is I-slice, all predictors in the OBMC process will be converted from the original domain to the reshaped domain. When the current slice is P-slice or B-slice, all inter predictors and intra predictors in the OBMC process will be converted from the reshaped domain to the original domain. For another example, when the current slice is P-slice or B-slice, all inter predictors and intra predictors in the OBMC process will be converted from the original domain to the reshaped domain.

[0123] Predictor Generation and Blending Process for Predictor in Overlapped Block Refinement of Intra Block and OBMC When Neighbouring is Intra Coded Block

[0124] In addition to using the ECM DIMD based method to derive an intra prediction mode for neighbouring intra coded blocks and to generate a neighbouring intra predictor in OBMC, it is proposed to utilize more decoder-side derived methods, matrix-based methods, fusion methods or cross-component methods to generate a neighbouring intra predictor.

[0125] In one embodiment, when a neighbouring block is an intra coded block, the neighbouring intra predictor is generated by using the Matrix-based Intra Prediction Replacing Conventional Intra Modes (PDP) method. The PDP based method firstly derives intra prediction mode of neighbouring intra coded block and then replaces the intra prediction mode with a matrix-based prediction mode if conditions are met. The final generated neighbouring PDP intra predictor is used in the OBMC blending process.

[0126] In another embodiment, when a neighbouring block is an intra coded block, a neighbouring intra predictor is generated by using the DIMD blending method. The DIMD blending method firstly derives one or more intra prediction modes of a neighbouring intra coded block and generates one or more intra predictors based on derived intra prediction modes, and then blends one or more intra predictors to get a final intra predictor. The final generated neighbouring DIMD blended intra predictor is used in the OBMC blending process.

[0127] In another embodiment, when a neighbouring block is an intra coded block, a neighbouring intra predictor is generated by using the TIMD (Template-based Intra Mode Derivation) method. The TIMD method firstly derives an intra prediction mode of neighbouring intra coded block based on a template reconstruction region and generates a neighbouring intra predictor based on derived intra prediction mode. The final generated neighbouring TIMD blended intra predictor is used in the OBMC blending process.

[0128] In another embodiment, when a neighbouring block is an intra coded block, a neighbouring intra predictor is generated by using the TIMD blending method. The TIMD blending method firstly derives one or more intra prediction modes of a neighbouring intra coded block based on a template reconstruction region and generates one or more intra predictors based on derived intra prediction modes, and then blends one or more intra predictors to get the final intra predictor. The final generated neighbouring TIMD blended intra predictor is used in the OBMC blending process.

[0129] In another embodiment, when a neighbouring block is an intra coded block, a neighbouring intra predictor is generated by using the intra fusion method. The intra fusion method firstly derives one or more intra prediction modes of a neighbouring intra coded block based on decoder-side derived methods, signalled intra prediction modes, or inferred intra prediction modes, and generates one or more intra predictors based on derived intra prediction modes, and then blends one or more intra predictors to get the final intra predictor. The final generated neighbouring fused intra predictor is used in the OBMC blending process.

[0130] In another embodiment, when a neighbouring block is an intra coded block, a neighbouring intra chroma predictor is generated by using the cross-component-based method. The cross-component-based method firstly utilizes luma reconstruction samples to derive one or more cross-component models and generates one or more intra chroma predictors based on derived cross-component models. The generated intra chroma predictors may be further blended to get the final intra predictor or directly used without blending. The final generated neighbouring intra chroma predictor is used in the OBMC blending process.

[0131] In another embodiment, when a neighbouring block is an intra coded block, neighbouring block parameters are inherited or partially inherited when generating a neighbouring intra predictor for the OBMC blending process. For instance, MRL index, intra fusion, cross-component models, reference samples interpolation flag and so on.

[0132] Overlapped Block Refinement Interaction with Boundary Refinement Methods for Current Intra Block or Neighbouring Intra Blocks

[0133] In another embodiment, a PDPC, boundary smoothing filter, or deblocking filter is used to refine generated neighbouring intra predictor before the OBMC blending process.

[0134] In another embodiment, a PDPC, boundary smoothing filter, or deblocking filter is used to refine the current block when a neighbouring block is an intra coded block after the OBMC blending process.

[0135] Applied Conditions of OBMC or Overlapped Block Refinement for Current Intra Coded Block

[0136] In VVC, in some cases, PDPC cannot be applied to refine the current intra predictor because of unavailable reference samples. It is proposed to apply OBMC or overlapped block refinement for those cases to further refine the current intra predictor boundary.

[0137] In one embodiment, when the current intra predictor cannot meet the condition of applying PDPC, OBMC-like or overlapped block refinement is performed to refine the current intra predictor boundary.

[0138] In another embodiment, OBMC-like or overlapped block refinement is performed at the CU boundary conditionally according to the intra prediction mode index. For example, when the current intra prediction mode lies between 50 and 80, left CU boundary is refined by the proposed method. For another example, when the current intra prediction mode lies between -14 and 17, the top CU boundary is refined by the proposed method.

[0139] In another embodiment, OBMC-like or overlapped block refinement is performed at the CU boundary conditionally according to the intra prediction mode index. PDPC may apply to the current intra predictor after the proposed method or before the proposed method.

[0140] In another embodiment, OBMC-like or overlapped block refinement is performed at the CU boundary conditionally according to the intra prediction mode index. PDPC is jointly considered during the proposed method process.

[0141] CU Boundary OBMC and Subblock Boundary OBMC Hardware Friendly Design

[0142] In the existing ECM, OBMC performs CU boundary refinement firstly, and then performs subblock-boundary refinement. The subblock-boundary refinement process will depend on the result of CU-boundary refinement since the top boundary and left boundary subblock predictor will be used to modify inner subblock predictor, which causes dependency in hardware design. It is proposed to have parallel processing design in CU boundary OBMC and subblock boundary OBMC.

[0143] In one embodiment, subblocks at the top CU boundary and the left CU boundary are not used in the subblock boundary OBMC process. Thus, the subblock boundary OBMC process will not depend on the CU boundary OBMC result.

[0144] In another embodiment, only one or more lines inside the top CU boundary and the left CU boundary subblocks will be modified during CU boundary OBMC. The one or more lines will not be taken into consideration when performing subblock boundary OBMC. For example, the top first and second lines will be modified in the CU boundary OBMC process, and the third and fourth lines will be used in the subblock boundary OBMC process.

[0145] Any of the foregoing proposed methods of deriving an overlapped intra prediction for intra coded blocks 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.

[0146] 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) .

[0147] Fig. 11 illustrates a flowchart of an exemplary video coding system, where an overlapped intra predictor is used for encoding or decoding a current block or subblock 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 comprising a current block, a current subblock, a neighbouring block, or a neighbouring subblock is received in step 1110. A current intra predictor is generated for the current block or the current subblock in step 1120. A refined intra predictor is generated for the current block or the current subblock in a boundary area of the current block or the current subblock by blending the current intra predictor and a target neighbouring predictor derived from the neighbouring block or the neighbouring subblock in step 1130. The current block or the current subblock is encoded or decoded using the refined intra predictor in step 1140.

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

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

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

[0151] 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

A method of video coding, the method comprising:receiving input data comprising a current block, a current subblock, a neighbouring block, or a neighbouring subblock;generating a current intra predictor for the current block or the current subblock;generating a refined intra predictor for the current block or the current subblock in a boundary area of the current block or the current subblock by blending the current intra predictor and a target neighbouring predictor derived from the neighbouring block or the neighbouring subblock; andencoding or decoding the current block or the current subblock using the refined intra predictor.The method of Claim 1, wherein the current block or the current subblock is coded in regular intra prediction, DIMD (Decoder-side Intra Mode Derivation) , TIMD (Template-based Intra Mode Derivation) , MIP (Matrix-based Intra Prediction) , matrix-based intra prediction replacing conventional intra mode.The method of Claim 1, wherein the refined intra predictor is used for encoding or decoding the current block or the current subblock when the neighbouring block or the neighbouring subblock is coded in IBC (Intra Block Copy) mode or IntraTMP (Intra Template Matching Prediction) mode.The method of Claim 1, wherein the refined intra predictor is used for encoding or decoding the current block or the current subblock when the neighbouring block or the neighbouring subblock is coded in inter prediction mode.The method of Claim 1, wherein the refined intra predictor is used for encoding or decoding the current block or the current subblock when the neighbouring block or the neighbouring subblock has a motion vector, a block vector, or a motion shift from a template-related prediction mode.The method of Claim 1, wherein whether the refined intra predictor is used for encoding or decoding the current block is according to a smallest neighbouring prediction mode unit.The method of Claim 6, wherein the smallest neighbouring prediction mode unit corresponds to an intra 4x4 unit, inter 4x4 unit, IBC 4x4 unit or IntraTMP 4x4 unit.The method of Claim 1, wherein whether the refined intra predictor is used for encoding or decoding is according to a smallest current prediction mode unit.The method of Claim 8, wherein the smallest current prediction mode unit corresponds to an intra 4x4 unit, inter 4x4 unit, IBC 4x4 unit or IntraTMP 4x4 unit.The method of Claim 1, wherein when the current block or the current subblock is coded in intra prediction mode, and the neighbouring block or the neighbouring subblock is coded in an intra prediction mode, a decoder-side intra mode derivation method is used to derive the intra prediction mode for the neighbouring block or the neighbouring subblock and to generate the target neighbouring predictor.The method of Claim 1, wherein when the current block or the current subblock is coded in an intra prediction mode, and the neighbouring block or the neighbouring subblock is also coded in the intra prediction mode, a Matrix-based Intra Prediction Replacing Conventional Intra Modes method is used to derive the target neighbouring predictor.The method of Claim 1, wherein when the current block or the current subblock is coded in an intra prediction mode, and the neighbouring block or the neighbouring subblock is also coded in the intra prediction mode, a TIMD (Template-based Intra Mode Derivation) method is used to derive the target neighbouring predictor.The method of Claim 1, wherein when the current block or the current subblock is coded in an intra prediction mode, and the neighbouring block or the neighbouring subblock is also coded in the intra prediction mode, an intra fusion method method is used to derive the target neighbouring predictor.The method of Claim 1, wherein when the current block or the current subblock is coded in intra prediction mode, and an intra-coded block, an inter coded block, an IBC coded block, or an IntraTMP coded block exists in neighbouring blocks, the refined intra predictor is used for encoding or decoding the current block or the current subblock.The method of Claim 1, wherein when the current block or the current subblock is coded in intra prediction mode, more neighbouring block positions or more neighbouring subblock positions along the current block are checked for neighbouring intra coded blocks, neighbouring IBC coded blocks, or neighbouring IntraTMP coded blocks to determine whether the refined intra predictor is used for encoding or decoding the current block.The method of Claim 1, wherein when luma mapping and chroma scaling is used, a neighbouring intra predictor is generated for the neighbouring block or the neighbouring subblock, and the generated neighbouring intra predictor is converted from a reshaped domain and then blended with the current intra predictor in an original domain.An apparatus for video coding, the apparatus comprising one or more electronics or processors arranged to:receive input data comprising a current block, a current subblock, a neighbouring block, or a neighbouring subblock;generate a current intra predictor for the current block or the current subblock;generate a refined intra predictor for the current block or the current subblock in a boundary area of the current block or the current subblock by blending the current intra predictor and a target neighbouring predictor derived from the neighbouring block or the neighbouring subblock; andencode or decode the current block or the current subblock using the refined intra predictor.

Citation Information

Patent Citations

  • Image decoding method and device

    CN110720220A

  • Video encoding and decoding method and apparatus using subblock based intra prediction

    US20230319307A1

  • Method and apparatus for video signal processing using sub-block based motion compensation

    WO2019147079A1

  • Video coding using overlapped block motion compensation, combined inter-intra prediction, and / or LUMA mapping and chroma scaling

    WO2022256762A1

  • Method and apparatus of parameters inheritance for overlapped blocks motion compensation in video coding system

    WO2024146374A1