Methods and apparatus of OBMC parameter inheritance in intra and inter predictor fusion
By deriving or inheriting OBMC parameters before predictor fusion, the method optimizes OBMC performance for intra/inter coded blocks, reducing complexity and refining boundaries, thus enhancing coding efficiency and visual quality.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- MEDIATEK INC
- Filing Date
- 2026-01-13
- Publication Date
- 2026-07-23
AI Technical Summary
Existing video coding technologies face challenges in efficiently applying Overlapped Block Motion Compensation (OBMC) due to increased computation complexity and memory bandwidth requirements, particularly when combined with Bi-Directional Optical Flow (BIO), and fail to effectively refine boundaries in intra-coded blocks.
Derive or inherit OBMC parameters before predictor fusion or blending, applying them to overlapped areas of current and neighboring blocks to improve OBMC performance, especially for intra/inter coded blocks, using pre-derived or inherited parameters to optimize blending weights and lines.
Enhances visual quality by reducing computational complexity and memory bandwidth while effectively refining boundaries in intra/inter coded blocks, leading to improved coding efficiency and visual quality.
Smart Images

Figure CN2026072166_23072026_PF_FP_ABST
Abstract
Description
METHODS AND APPARATUS OF OBMC PARAMETER INHERITANCE IN INTRA AND INTER PREDICTOR FUSIONCROSS 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 / 746,304, filed on January 17, 2025 and U.S. Provisional Patent Application No. 63 / 746,305, filed on January 17, 2025. The U.S. Provisional Patent Applications are hereby incorporated by reference in their entireties.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 new methods of deriving OBMC parameters for intra / inter 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-Z0061) 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_Afor 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] JVET-AC0164 Non-EE2: Improvements on Local Illumination Compensation in ECM7.0
[0027] 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] +β
[0028] Currently, the LIC is only applicable to uni-predictive inter CUs which contains no less than 32 luma samples.
[0029] 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.
[0030] Bi-Predictive LIC
[0031] 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.
[0032] 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.
[0033] 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.
[0034] OBMC with LIC
[0035] 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.
[0036] JVET-AJ0161 EE2-3.3: OBMC Extension with Intra Prediction
[0037] 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.
[0038] 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. Specifically, the blending is performed only when the mode is in [34, 66] and [2, 34] for the top and left boundary pixels, respectively. This condition limits the usage of padded reference samples for intra prediction.
[0039] OBMC extension with intra prediction
[0040] 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.
[0041] OBMC extension with intra prediction + DIMD with 2x2 edge operator
[0042] The 3x3 edge operator is modified to the 2x2 edge operator proposed in JVET-AI0140 to derive the intra prediction mode in DIMD. The horizontal and vertical filters of the 2x2 edge operator are defined as follows:
[0043] OBMC extension with intra prediction + using intra prediction mode of neighbouring block
[0044] 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.
[0045] OBMC extension with intra prediction + more neighbouring blocks are checked for available motion information to generate inter subblock
[0046] 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.
[0047] JVET-AJ0113 Non-EE2: Intra OBMC
[0048] In order to addresses the discontinuity between two non-inter coded blocks, the intra OBMC scheme is proposed in JVET-AJ0113.
[0049] 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.
[0050] The BV mode includes IBC mode and intra TMP mode for luma, and DBV mode for chroma.
[0051] 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.
[0052] The blending weights for the proposed intra OBMC are identical to those used in inter OBMC when template matching-based OBMC is not applied.
[0053] The proposed intra OBMC is only applied to camera-captured sequences.
[0054] JVET-AJ0238 AHG12: OBMC Modifications
[0055] Two modifications related to OBMC operation orders are disclosed in JVET-AJ0238.
[0056] The first modification is about GPM and OBMC. In the current ECM, when the two GPM partitions are coded with non-affine inter, the GPM blending is carried out first, and then OBMC is applied on top of blended GPM samples. It is proposed to apply OBMC separately on top of each GPM partition, and then apply blending on top of OBMC modified samples of the two partitions. Furthermore, if the corresponding partition contains subblock motion, OBMC is applied on those subblock boundaries as well.
[0057] The second modification is about the order of applying OBMC on block and sub-block boundaries. In the current ECM, OBMC is first carried out on block (CU) boundaries, and is then carried out on subblock boundaries. It is proposed to swap the order to first apply OBMC on subblock boundaries (if they are present within the CU) , and then apply OBMC on CU boundaries.
[0058] Multi-Hypothesis Prediction (MHP)
[0059] In the multi-hypothesis inter prediction mode (JVET-M0425) , one or more additional motion-compensated prediction signals are signalled, in addition to the conventional bi-prediction signal. The resulting overall prediction signal is obtained by sample-wise weighted superposition. With the bi-prediction signal pbi and the first additional inter prediction signal / hypothesis h3, the resulting prediction signal p3 is obtained as follows: p3= (1-α) pbi+αh3
[0060] The weighting factor α is specified by the new syntax element add_hyp_weight_idx, according to the following mapping table. Table 1. Weighting factor mapping according to add_hyp_weight_idx.
[0061] Similarly, more than one additional prediction signal may be used. The final prediction signal is obtained by iteratively accumulating each additional prediction signal. pn+1= (1-αn+1) pn+αn+1hn+1.
[0062] The resulting overall prediction signal is obtained as the last pn (i.e., the pn having the largest index n) . Within this EE, up to two additional prediction signals can be used (i.e., n is limited to 2) .
[0063] The motion parameters of each additional prediction hypothesis can be signaled either explicitly by specifying the reference index, the motion vector predictor index, and the motion vector difference, or implicitly by specifying a merge index. A separate multi-hypothesis merge flag distinguishes between these two signalling modes.
[0064] For inter AMVP mode, MHP is only applied if non-equal weight in BCW is selected in bi-prediction mode.
[0065] Combination of MHP and BDOF is possible, however the BDOF is only applied to the bi-prediction signal part of the prediction signal (i.e., the ordinary first two hypotheses) .
[0066] In the present invention, new methods to derive OBMC parameters are disclosed to improve the OBMC performance for intra / inter predicted blocks. BRIEF SUMMARY OF THE INVENTION A method and apparatus of video coding using refined boundary prediction for intra / inter coded blocks are disclosed. According to this method, input data comprising a current block and a neighbouring block is received. Parameters for overlapped block boundary process are derived or inherited prior to prediction fusion or prediction blending is applied to the current block. The overlapped block boundary process is applied to one or more overlapped areas using the parameters derived or inherited, wherein said applying the overlapped block boundary process is performed before or after applying the prediction fusion or the prediction blending to the current block and / or the neighbouring block.
[0067] In one embodiment, the current block are coded in GPM (Geometric Partition Mode) , a current first predictor and a current second predictor are associated with a first partition and a second partition of the current block, and a neighbouring first predictor and a neighbouring second predictor are associated with the first partition and the second partition of the neighbouring block. In one embodiment, the current first predictor and the current second predictor are fused to form a current fused predictor, and the overlapped block boundary process with the parameters derived or inherited is applied to the current fused predictor, the neighbouring first predictor and the neighbouring second predictor to form an overlapped-block-boundary refined current fused predictor.
[0068] In one embodiment, the overlapped block boundary process uses different blending weights and / or blending lines at locations near a GPM blending line.
[0069] In one embodiment, the overlapped block boundary process with the parameters derived or inherited is applied to the current first predictor and the neighbouring first predictor to form an overlapped-block-boundary refined current first predictor and the overlapped block boundary process with the parameters derived or inherited is applied to the current second predictor and the neighbouring second predictor to form an overlapped-block-boundary refined current second predictor, and the overlapped-block-boundary refined current first predictor and the overlapped-block-boundary refined current second predictor are fused to form an overlapped-block-boundary refined current fused predictor.
[0070] In one embodiment, the parameters for the overlapped block boundary process comprise information from current motion and from neighboring motion or neighboring intra prediction mode. In another embodiment, the parameters for the overlapped block boundary process comprise information from current intra prediction mode and from neighboring motion or neighboring intra prediction mode.
[0071] In one embodiment, when the overlapped block boundary process corresponds to template-matching based overlapped block boundary process, a first template matching result for a current first predictor is from a current first template predictor and a neighbouring first template predictor, a second template matching result for a current second predictor is from a current second template predictor and a neighbouring second template predictor, and the template-matching based overlapped block boundary process is applied before or after the prediction fusion or the prediction blending.
[0072] In one embodiment, when the overlapped block boundary process corresponds to template-matching based overlapped block boundary process, a first template matching result for a current first predictor is inherited from first LIC flag or first interpolation filter index from a current first template predictor and a neighbouring first template predictor, a second template matching result for a current second predictor is inherited from second LIC flag or second interpolation filter index from a current second template predictor and a neighbouring second template predictor, and the template-matching based overlapped block boundary process is applied before or after the prediction fusion or the prediction blending.
[0073] In one embodiment, the parameters for the overlapped block boundary process correspond to or are associated with a number of blending lines, blending weightings, current template predictor generation, neighbouring template predictor generation, current predictor generation, neighbouring predictor generation, current motion vectors, current block vectors, neighbouring motion vector, neighbouring block vector, template matching selection result, on / off control based on predictor difference, LIC flag, interpolation filter index, BCW index, uni-predictor, or bi-prediction.
[0074] In one embodiment, said deriving or inheriting parameters for the overlapped block boundary process prior to prediction fusion or prediction blending and said applying the overlapped block boundary process to said one or more overlapped areas are performed for the current block coded in Matrix-based Intra Prediction (MIP) , replacing conventional intra modes with MIP (PDP) , Decoder-Side Intra Modes Derivation (DIMD) , Occurrence Based Intra Coding (OBIC) , Template Based Intra Modes Derivation (TIMD) , decoder-side derived intra prediction modes related modes, intra prediction fusion, or fusion of chroma intra prediction modes.
[0075] In one embodiment, said deriving or inheriting parameters for the overlapped block boundary process prior to prediction fusion or prediction blending and said applying the overlapped block boundary process to said one or more overlapped areas are performed for the current block coded in spatial-GPM, GPM-intra, inter GPM mode, GPM-MMVD (Merge Mode with Motion Vector Difference) , GPM-TM, regression-based GPM, adaptive GPM blending bi-predictive GPM with DMVR enabled, GPM-affine, GPM affine with TM (Template Matching) , affine GPM with DMVR (Decoder-side Motion Vector Refinement) enabled, IBC-GPM, or GPM related modes in IBC prediction mode.
[0076] In one embodiment, wherein said deriving or inheriting parameters for the overlapped block boundary process prior to prediction fusion or prediction blending and said applying the overlapped block boundary process to said one or more overlapped areas are performed for the current block coded in CCP merge mode, decoder-side derived CCP mode, interCCP, or interCCCM.
[0077] In one embodiment, said deriving or inheriting parameters for the overlapped block boundary process prior to prediction fusion or prediction blending and said applying the overlapped block boundary process to said one or more overlapped areas are performed for the current block coded in bi-prediction, Bi-prediction with CU-level Weights (BCW) , Multi-Hypothesis Prediction (MHP) , bi-prediction IBC (Intra Block Copy) , IntraTMP (Intra Template Matching Prediction) fusion, Combined Inter-Intra Prediction (CIIP) , or IBC-CIIP.BRIEF DESCRIPTION OF THE DRAWINGS
[0078] Fig. 1A illustrates an exemplary adaptive Inter / Intra video encoding system incorporating loop processing.
[0079] Fig. 1B illustrates a corresponding decoder for the encoder in Fig. 1A.
[0080] Fig. 2 illustrates an example of overlapped motion compensation for geometry partitions.
[0081] Figs. 3A-B illustrate an example of OBMC for 2NxN (Fig. 3A) and Nx2N blocks (Fig. 3B) .
[0082] Fig. 4A illustrates an example of the sub-blocks that OBMC is applied, where the example includes subblocks at a CU / PU boundary.
[0083] Fig. 4B illustrates an example of the sub-blocks that OBMC is applied, where the example includes subblocks coded in the AMVP mode.
[0084] Fig. 5 illustrates an example of the OBMC processing using neighbouring blocks from above and left for the current block.
[0085] 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.
[0086] 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.
[0087] 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.
[0088] Fig. 8 illustrates an example of proposed OBMC extension with intra prediction according to JVET-AI0154.
[0089] 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.
[0090] Fig. 10 illustrates an example of more neighbouring positions check for neighbouring blocks regarding whether to apply overlapped boundary refinement.
[0091] Fig. 11 shows system block diagrams of OBMC for intra / inter prediction fusion / blending according to the ECM 15 (Fig. 11A) , the proposed Method 1 (Fig. 11B) and proposed Method 2 (Fig. 11C) .
[0092] Fig. 12 illustrates an example of the OMBC process for intra / inter prediction fusion according to the ECM 15 standard.
[0093] Fig. 13 illustrates an example of OBMC flow for intra / inter prediction fusion according to one embodiment of the present invention, where the OBMC is applied to merged predictor.
[0094] Fig. 14 illustrates an example of OBMC flow for intra / inter prediction fusion according to one embodiment of the present invention, where the OBMC is applied to individual predictors before prediction fusion.
[0095] Fig. 15 illustrates an example of OBMC flow for OBMC related modes according to one embodiment of the present invention, where the OBMC is applied to blended predictor.
[0096] Fig. 16 illustrates an example of OBMC flow for OBMC related modes according to one embodiment of the present invention, where the OBMC is applied to individual predictors before prediction fusion.
[0097] Fig. 17 illustrates a flowchart of an exemplary video coding system, where pre-derived OMBC parameters are derived or inherited for OBMC process according to an embodiment of the present invention.DETAILED DESCRIPTION OF THE INVENTION
[0098] 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.
[0099] 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.
[0100] Pre-derived OBMC Parameters or Inherited OBMC Parameters Before Intra / Inter Predictor Fusion
[0101] In the current ECM, OBMC blending lines and blending weightings are determined after inter predictor fusion. For example, after bi-prediction fusion, template matching based OBMC can be performed using two motion vectors from bi-prediction to generate template predictor and to derive number of blending lines and blending weighting in OBMC. However, because video contents can vary significantly, OBMC may not consistently benefit from using the motion information or predictor information obtained after inter-predictor fusion. OBMC may use inappropriate parameters during OBMC process and could degrade visual quality. Accordingly, various schemes are disclosed to improve the performance of OBMC for inter prediction fusion. In proposed Method 1, the OBMC parameters are derived or inherited before predictor fusion or predictor blending. OBMC can be applied after predictor fusion or predictor blending using pre-derived OBMC parameters or inherited OBMC parameters. In proposed Method 2, OBMC parameters are still derived or inherited from data before predictor fusion or predictor blending. OBMC can be applied to each pre-fusion or pre-blending predictor before predictor fusion or predictor blending using pre-derived OBMC parameters or inherited OBMC parameters. OBMC parameters can be, but not limited to, the number of blending lines, blending weightings, current template predictor generation, neighbouring template predictor generation, current predictor generation, neighbouring predictor generation, current motion vectors, current block vectors, neighbouring motion vector, neighbouring block vector, template matching selection result, on / off control based on predictor difference, LIC flag, interpolation filter index, BCW index, uni-predictor or bi-prediction, etc.
[0102] The proposed method can be applied to intra prediction mode, including but not limited to, matrix-based intra prediction modes (MIP) , replacing conventional intra modes with MIP (PDP) , decoder-side intra modes derivation (DIMD) , occurrence based intra coding (OBIC) , template based intra modes derivation (TIMD) , decoder-side derived intra prediction modes related modes, spatial-GPM, GPM-intra, GPM related modes, intra prediction fusion, fusion of chroma intra prediction modes, CCP merge mode, decoder-side derived CCP mode. The decoder-side derived intra prediction mode related modes can be DIMD, OBIC, TIMD or other modes that the decoder side can use statistic method or cost based method to derive the mode by itself. The GPM related modes can be spatial-GPM, GPM-intra, or other modes that one or more partitions are derived using intra prediction methods and then blended afterwards. OBMC parameters for the current predictor and neighbouring predictor can be derived using current intra prediction direction and neighbouring motion or neighbouring intra prediction mode before predictor fusion or predictor blending, respectively.
[0103] The proposed methods can be applied to the inter prediction mode, IBC prediction mode and IntraTMP mode, such as combined inter-intra prediction (CIIP) , multi-hypothesis prediction (MHP) , bi-prediction, bi-prediction with CU-level weights (BCW) , interCCP, interCCCM, GPM related mode (inter GPM mode, GPM-MMVD (Merge Mode with Motion Vector Difference) , GPM-TM (Template Matching) , regression-based GPM, adaptive GPM blending bi-predictive GPM with DMVR enabled, GPM-affine, GPM affine with TM, affine GPM with DMVR enabled) , IBC-GPM and GPM related modes in IBC prediction mode, IBC-CIIP, bi-prediction IBC, IntraTMP fusion. OBMC parameters for current predictor and neighbouring predictor can be derived using current motion and neighbouring motion or neighbouring intra prediction mode before predictor fusion or predictor blending, respectively.
[0104] Fig. 11 shows system block diagrams of OBMC for intra / inter prediction fusion / blending according to the ECM 15 (Fig. 11A) , the proposed Method 1 (Fig. 11B) and proposed Method 2 (Fig. 11C) . In Fig. 11A, the predictor fusion 1110 is performed first and OBMC parameter derivation 1112 is based on the fused predictor. The OBMC process 1114 utilises the OBMC parameters derived during OBMC parameter derivation 1112. In Fig. 11B, OBMC parameter derivation / inheritance 1120 is based on pre-fusion predictor. The fusion is then applied to pre-fused predictors at Predictor Fusion 1122. The OBMC process 1124 is then applied to the fused predictor using pre-derived / inherited OBMC parameters. In Fig. 11C, OBMC parameter derivation / inheritance 1130 is also based on pre-fusion predictor. The OBMC process 1132 is applied to each pre-fusion predictor using pre-derived / inherited OBMC parameters. The OBMC processed predictors are then fused at Predictor Fusion 1134.
[0105] The OMBC process for intra / inter prediction fusion according to the ECM 15 standard is shown in Fig. 12 for intra / inter prediction fusion. The current predictor 0 / L0 predictor 1210 and the current predictor 1 / L1 predictor 1212 are fused in step 1a to become the current fused predictor / bi-predictor 1220. Similarly, the neighbouring predictor 0 / L0 predictor 1214 and the neighbouring predictor 1 / L1 predictor 1216 are fused in step 1b to become the neighbouring fused predictor / bi-predictor 1222. The OMBC process is then applied to the current fused predictor / bi-predictor 1220 and the neighbouring fused predictor / bi-predictor 1222 to generate an OMBC refined current fused predictor / bi-predictor 1230 in step 2.
[0106] Example 1-1a (intra prediction fusion) : The present invention can be applied to matrix-based intra prediction modes (MIP) , replacing conventional intra modes with MIP (PDP) , decoder-side intra modes derivation (DIMD) , occurrence based intra coding (OBIC) , template based intra modes derivation (TIMD) , decoder-side derived intra prediction modes related modes, intra prediction fusion, and fusion of chroma intra prediction modes.
[0107] In one example, OBMC parameters can be derived or inherited from pre-fusion predictor in MIP, PDP, DIMD, OBIC, TIMD or decoder-side derived intra prediction mode related modes, intra prediction fusion, fusion of chroma intra prediction modes and OBMC can be performed using pre-derived parameters or inherited parameters before predictor fusion or after predictor fusion.
[0108] Example 1-1b (inter prediction fusion) : The present invention can be applied to bi-prediction, bi-prediction with CU-level weights (BCW) , multi-hypothesis prediction (MHP) , bi-prediction IBC, IntraTMP fusion, combined inter-intra prediction (CIIP) , and IBC-CIIP.
[0109] In one example, OBMC parameters can be derived or inherited from pre-fusion predictor in bi-prediction or bi-prediction with BCW or MHP or bi-prediction IBC or IntraTMP fusion or CIIP or IBC-CIIP and OBMC can use pre-derived parameters or inherited parameters to perform before predictor fusion or after predictor fusion.
[0110] Following examples are for both intra / inter prediction fusion. In one example, OBMC parameters from the current motion and from neighbouring motion or neighbouring intra prediction mode can be derived separately before predictor fusion in OBMC and OBMC can be performed by using pre-derived parameters or inherited parameters before predictor fusion or after predictor fusion.
[0111] An embodiment is shown in Fig. 13 for both intra / inter prediction fusion, where OBMC parameters can be derived or inherited from predictor 0 / L0 predictor and predictor 1 / L1 predictor and the current fused predictor / bi-predictor 1320 can be generated in step 1 using current predictor 0 / L0 predictor 1310 and predictor 1 / L1 1312 predictors. For intra prediction fusion, after that, neighboring predictor 0 1330 and neighboring 1 predictor 1332 can use pre-derived OBMC parameters separately to perform OBMC at current fused predictor 1320 to form the OMBC refined current fused predictor 1340 in steps 2a and 2b for intra prediction fusion. Predictor 0 can be one of the multiple predictors that will be used in predictor fusion. Predictor 1 can be one of the multiple predictors that will be used in predictor fusion. For inter prediction fusion, after that, neighbouring L0 predictor 1330 and neighbouring L1 predictor 1332 can use pre-derived OBMC parameters separately to perform OBMC at current bi-predictor 1320 to form the OMBC refined current bi-predictor 1340 in steps 2a and 2b for inter prediction fusion.
[0112] Another embodiment is shown in Fig. 14, OBMC parameters can be derived or inherited from predictor 0 / L0 predictor and predictor 1 / L1 predictor. Firstly, OBMC can apply to predictor 0 / L0 predictor and predictor 1 / L1 predictor separately in steps 1a and 1b to get OBMC refined current predictor 0 / L0 predictor 1420 and OBMC refined current predictor 1 / L1 predictor 1422, where OBMC refined current predictor 0 / L0 predictor 1420 is generated using current predictor 0 / L0 predictor 1412 and the neighbouring predictor 0 / L0 predictor 1410, and OBMC refined current predictor 1 / L1 predictor 1422 is generated using current predictor 1 / L1 predictor 1414 and the neighbouring predictor 1 / L1 predictor 1416. After that, predictor fusion can be performed to generate OBMC refined current fused predictor / bi-predictor 1430 in step 2.
[0113] In one example, in template matching based OBMC, template matching result for predictor 0 / L0 can be from current template predictor 0 / L0 template predictor and neighbouring template predictor 0 / L0 template predictor. Template matching result for predictor 1 / L1 can be from current template predictor 1 / L1 template predictor and neighbouring template predictor 1 / L1 template predictor. OBMC can be performed using pre-derived template matching result before predictor fusion or after predictor fusion.
[0114] In another example, in template matching based OBMC, template predictor generation for predictor 0 / L0 can inherit LIC flag or interpolation filter index from current template predictor 0 / L0 template predictor and neighbouring template predictor 0 / L0 template predictor. Template predictor generation for predictor 1 / L1 can inherit LIC flag or interpolation filter index from current template predictor 1 / L1 template predictor and neighbouring template predictor 1 / L1 template predictor. Template matching based OBMC can be performed before predictor fusion or after predictor fusion.
[0115] In another example, OBMC weightings and blending lines for predictor 0 / L0 predictor can be derived or inherited using predictor 0 / L0 predictor and OBMC weightings and blending lines for predictor 1 / L1 predictor can be derived or inherited using predictor 1 / L1 predictor, separately.
[0116] In another example, the current intra prediction / motion information of each predictor and neighbouring motion information or intra prediction information of each predictor are inherited to derive OBMC parameters.
[0117] Example 1-2a (intra prediction fusion) : The present invention can be applied to spatial-GPM, GPM-intra, and GPM related modes.
[0118] Example 1-2b (inter prediction fusion) : The present invention can be applied to GPM related mode (inter GPM mode, GPM-MMVD, GPM-TM, regression-based GPM, adaptive GPM blending bi-predictive GPM with DMVR enabled, GPM-affine, GPM affine with TM, affine GPM with DMVR enabled) , and IBC-GPM and GPM related modes in IBC prediction mode
[0119] Following examples are for both intra / inter prediction fusion. In one example, OBMC parameters can be derived or inherited from before partition fusion in GPM related mode and OBMC can use pre-derived parameters or inherited parameters to perform before partition fusion or after partition fusion.
[0120] In another example, OBMC parameters from the current intra prediction mode / motion and from the neighbouring motion or neighbouring intra prediction mode can be derived separately before partition fusion in OBMC and OBMC can use pre-derived parameters or inherited parameters to perform before partition fusion or after partition fusion.
[0121] In one embodiment, as shown in Fig. 15, OBMC parameters can be derived or inherited from GPM partition 0 and GPM partition 1, and current GPM blended predictor 1520 can be firstly generated in step 1 using current partition 0 1510 and partition 1 1512. After that, neighbouring predictor 0 / L0 predictor and neighbouring predictor 1 / L1 predictor can use pre-derived OBMC parameters separately to perform OBMC at the current GPM blended predictor.
[0122] Furthermore, as shown in Fig. 15, when OBMC process is applied to neighbouring predictor 0 / L0 predictor 1530 and neighbouring predictor 1 / L1 predictor, and the current GPM blended predictor 1520 in steps 2a and 2b to form OBMC refined current GPM blended predictor 1540. OBMC blending weightings and blending lines can be different when it is near or close to GPM blending line. For example, OBMC blending weightings can be decreased when it is close to GPM blending line.
[0123] In one embodiment, as shown in Fig. 16, OBMC parameters can be derived or inherited from GPM partition 0 and GPM partition 1. Firstly, OBMC can be applied to partition 0 (using current partition 0 1612 and neighbouring predictor 0 / L0 predictor 1610) and partition 1 (using current partition 1 1614 and neighbouring predictor 1 / L1 predictor 1616) separately in steps 1a and 1b to get OBMC refined partition 0 1620 and OBMC refined partition 1 1622. After that, partition fusion can be performed to generate OBMC refined GPM blended predictor 1630 in step 2.
[0124] Furthermore, as shown in Fig. 16, when OBMC process is applied to partition 0 and partition 1, OBMC blending weightings and blending lines can be different when it is near or close to GPM blending line of GPM predictor fusion. For example, OBMC blending weightings for partition 0 and partition 1 can be decreased when it is close to GPM blending line.
[0125] For instance, in template matching based OBMC, template matching result for partition 0 can be from current partition 0 template predictor and neighbouring template predictor 0 / L0 template predictor. Template matching result for partition 1 can be from current partition 1 template predictor and neighbouring template predictor 1 / L1 template predictor. OBMC can be performed using pre-derived template matching result before partition fusion or after partition fusion.
[0126] For instance, in template matching based OBMC, template predictor generation for partition 0 can inherit LIC flag or interpolation filter index from current partition 0 template predictor and neighbouring template predictor 0 / L0 template predictor. Template predictor generation for partition 1 can inherit LIC flag or interpolation filter index from current partition 1 template predictor and neighbouring template predictor 1 / L1 template predictor. Template matching based OBMC can be performed before partition fusion or after partition fusion.
[0127] For instance, OBMC weightings and blending lines for partition 0 can be derived or inherited using partition 0, and OBMC weightings and blending lines for partition 1 can be derived or inherited using partition 1, separately.
[0128] For instance, current motion information of each predictor and neighbouring motion information or intra prediction information of each GPM partition are inherited to derive OBMC parameters.
[0129] Example 1-3a (intra prediction fusion) : CCP merge mode, decoder-side derived CCP mode.
[0130] Example 1-3b (inter prediction fusion) : The present invention can be applied to interCCP, interCCCM.
[0131] The following examples are for both intra / inter prediction fusion. In one example, OBMC parameters can be derived or inherited from before predictor fusion in CCP merge mode or or decoder-side derived CCP mode / interCCP or interCCCM, and OBMC can use pre-derived parameters or inherited parameters to perform before predictor fusion or after predictor fusion.
[0132] In another example, OBMC parameters for chroma component can be derived or inherited from each chroma predictor. For instance, template matching based OBMC can be performed for chroma component for each chroma predictor before predictor fusion.
[0133] In another example, CCP models or CCCM models can be derived or inherited from each chroma predictor as OBMC parameters before predictor fusion.
[0134] Any of the foregoing proposed methods of OBMC for intra / inter prediction fusion 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.
[0135] 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) .
[0136] Fig. 17 illustrates a flowchart of an exemplary video coding system, where pre-derived OMBC parameters are derived or inherited for OBMC process according to an embodiment of the present invention. The steps shown in the flowchart may be implemented as program codes executable on one or more processors (e.g., one or more CPUs) at the encoder side. The steps shown in the flowchart may also be implemented based hardware such as one or more electronic devices or processors arranged to perform the steps in the flowchart. According to this method, input data comprising a current block and a neighbouring block is received in step 1710. Parameters for overlapped block boundary process are derived or inherited prior to prediction fusion or prediction blending is applied to the current block in step 1720. The overlapped block boundary process is applied to one or more overlapped areas using the parameters derived or inherited in step 1730, wherein said applying the overlapped block boundary process is performed before or after applying the prediction fusion or the prediction blending to the current block and / or the neighbouring block.
[0137] 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.
[0138] 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.
[0139] 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.
[0140] 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 comprising a current block and a neighbouring block;deriving or inheriting parameters for overlapped block boundary process prior to prediction fusion or prediction blending is applied to the current block; andapplying the overlapped block boundary process to one or more overlapped areas using the parameters derived or inherited, wherein said applying the overlapped block boundary process is performed before or after applying the prediction fusion or the prediction blending to the current block and / or the neighbouring block.2.The method of Claim 1, wherein the current block is coded in GPM (Geometric Partition Mode) , a current first predictor and a current second predictor are associated with a first partition and a second partition of the current block, and a neighbouring first predictor and a neighbouring second predictor are associated with the first partition and the second partition of the neighbouring block.3.The method of Claim 2, wherein the current first predictor and the current second predictor are fused to form a current fused predictor, and the overlapped block boundary process with the parameters derived or inherited is applied to the current fused predictor, the neighbouring first predictor and the neighbouring second predictor to form an overlapped-block-boundary refined current fused predictor.4.The method of Claim 2, wherein the overlapped block boundary process uses different blending weights and / or blending lines at locations near a GPM blending line.5.The method of Claim 2, wherein the overlapped block boundary process with the parameters derived or inherited is applied to the current first predictor and the neighbouring first predictor to form an overlapped-block-boundary refined current first predictor and the overlapped block boundary process with the parameters derived or inherited is applied to the current second predictor and the neighbouring second predictor to form an overlapped-block-boundary refined current second predictor, and the overlapped-block-boundary refined current first predictor and the overlapped-block-boundary refined current second predictor are fused to form an overlapped-block-boundary refined current fused predictor.6.The method of Claim 2, wherein the parameters for the overlapped block boundary process comprise information from current motion and from neighboring motion or neighboring intra prediction mode.7.The method of Claim 2, wherein the parameters for the overlapped block boundary process comprise information from current intra prediction mode and from neighboring motion or neighboring intra prediction mode.8.The method of Claim 1, wherein when the overlapped block boundary process corresponds to template-matching based overlapped block boundary process, a first template matching result for a current first predictor is from a current first template predictor and a neighbouring first template predictor, a second template matching result for a current second predictor is from a current second template predictor and a neighbouring second template predictor, and the template-matching based overlapped block boundary process is applied before or after the prediction fusion or the prediction blending.9.The method of Claim 1, wherein when the overlapped block boundary process corresponds to template-matching based overlapped block boundary process, a first template matching result for a current first predictor is inherited from first LIC flag or first interpolation filter index from a current first template predictor and a neighbouring first template predictor, a second template matching result for a current second predictor is inherited from second LIC flag or second interpolation filter index from a current second template predictor and a neighbouring second template predictor, and the template-matching based overlapped block boundary process is applied before or after the prediction fusion or the prediction blending.10.The method of Claim 1, wherein the parameters for the overlapped block boundary process correspond to or are associated with a number of blending lines, blending weightings, current template predictor generation, neighbouring template predictor generation, current predictor generation, neighbouring predictor generation, current motion vectors, current block vectors, neighbouring motion vector, neighbouring block vector, template matching selection result, on / off control based on predictor difference, LIC flag, interpolation filter index, BCW index, uni-predictor, or bi-prediction.11.The method of Claim 1, wherein said deriving or inheriting parameters for the overlapped block boundary process prior to prediction fusion or prediction blending and said applying the overlapped block boundary process to said one or more overlapped areas are performed for the current block coded in Matrix-based Intra Prediction (MIP) , replacing conventional intra modes with MIP (PDP) , Decoder-Side Intra Modes Derivation (DIMD) , Occurrence Based Intra Coding (OBIC) , Template Based Intra Modes Derivation (TIMD) , decoder-side derived intra prediction modes related modes, intra prediction fusion, or fusion of chroma intra prediction modes.12.The method of Claim 1, wherein said deriving or inheriting parameters for the overlapped block boundary process prior to prediction fusion or prediction blending and said applying the overlapped block boundary process to said one or more overlapped areas are performed for the current block coded in spatial-GPM, GPM-intra, inter GPM mode, GPM-MMVD (Merge Mode with Motion Vector Difference) , GPM-TM, regression-based GPM, adaptive GPM blending bi-predictive GPM with DMVR enabled, GPM-affine, GPM affine with TM (Template Matching) , affine GPM with DMVR (Decoder-side Motion Vector Refinement) enabled, IBC-GPM, or GPM related modes in IBC prediction mode.13.The method of Claim 1, wherein said deriving or inheriting parameters for the overlapped block boundary process prior to prediction fusion or prediction blending and said applying the overlapped block boundary process to said one or more overlapped areas are performed for the current block coded in CCP merge mode, decoder-side derived CCP mode, interCCP, or interCCCM.14.The method of Claim 1, wherein said deriving or inheriting parameters for the overlapped block boundary process prior to prediction fusion or prediction blending and said applying the overlapped block boundary process to said one or more overlapped areas are performed for the current block coded in bi-prediction, Bi-prediction with CU-level Weights (BCW) , Multi-Hypothesis Prediction (MHP) , bi-prediction IBC (Intra Block Copy) , IntraTMP (Intra Template Matching Prediction) fusion, Combined Inter-Intra Prediction (CIIP) , or IBC-CIIP.15.An apparatus for video coding, the apparatus comprising one or more electronics or processors arranged to:receive input data comprising a current block and a neighbouring block;derive or inherit parameters for overlapped block boundary process prior to prediction fusion or prediction blending is applied to the current block; andapply the overlapped block boundary process to one or more overlapped areas using the parameters derived or inherited, wherein said applying the overlapped block boundary process is performed before or after applying the prediction fusion or the prediction blending to the current block and / or the neighbouring block.