Combined prediction mode for intra block copy with intra mode derivation
The combined prediction method with reference block-based intra prediction mode derivation addresses inefficiencies in existing video coding standards by enhancing prediction accuracy and reducing complexity, resulting in improved compression efficiency.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- MEDIATEK INC
- Filing Date
- 2025-11-04
- Publication Date
- 2026-05-07
AI Technical Summary
Existing video coding standards like HEVC and VVC face challenges in efficiently encoding and decoding video data, particularly in deriving optimal intra prediction modes and combining inter and intra prediction methods, leading to suboptimal compression efficiency and increased computational complexity.
The proposed method involves using combined prediction with reference block-based intra prediction mode derivation, where a video coder identifies a reference block, derives an intra prediction mode based on texture gradient analysis or template matching, and generates a combined prediction by blending intra and inter predictors, utilizing techniques like decoder-side intra mode derivation, template-based intra mode derivation, and intra block copy.
This approach enhances video coding efficiency by improving prediction accuracy and reducing computational complexity, leading to better compression performance and reduced resource utilization.
Smart Images

Figure CN2025132391_07052026_PF_FP_ABST
Abstract
Description
COMBINED PREDICTION MODE FOR INTRA BLOCK COPY WITH INTRA MODE DERIVATIONCROSS REFERENCE TO RELATED PATENT APPLICATION (S)
[0001] The present disclosure is part of a non-provisional application that claims the priority benefit of U.S. Provisional Patent Application No. 63 / 715,685, filed on 4 November 2024. Content of above-listed applications are herein incorporated by reference.TECHNICAL FIELD
[0002] The present disclosure relates generally to video coding. In particular, the present disclosure relates to methods of coding pixel blocks by intra block copy (IBC) .BACKGROUND
[0003] Unless otherwise indicated herein, approaches described in this section are not prior art to the claims listed below and are not admitted as prior art by inclusion in this section.
[0004] High-Efficiency Video Coding (HEVC) is an international video coding standard developed by the Joint Collaborative Team on Video Coding (JCT-VC) . HEVC is based on the hybrid block-based motion-compensated DCT-like transform coding architecture. The basic unit for compression, termed coding unit (CU) , is a 2Nx2N square block of pixels, and each CU can be recursively split into four smaller CUs until the predefined minimum size is reached. Each CU contains one or multiple prediction units (PUs) .
[0005] Versatile video coding (VVC) is the latest international video coding standard developed by the Joint Video Expert Team (JVET) of ITU-T SG16 WP3 and ISO / IEC JTC1 / SC29 / WG11. The input video signal is predicted from the reconstructed signal, which is derived from the coded picture regions. The prediction residual signal is processed by a block transform. The transform coefficients are quantized and entropy coded together with other side information in the bitstream. The reconstructed signal is generated from the prediction signal and the reconstructed residual signal after inverse transform on the de-quantized transform coefficients. The reconstructed signal is further processed by in-loop filtering for removing coding artifacts. The decoded pictures are stored in the frame buffer for predicting the future pictures in the input video signal.
[0006] In VVC, a coded picture is partitioned into non-overlapped square block regions represented by the associated coding tree units (CTUs) . The leaf nodes of a coding tree correspond to the coding units (CUs) . A coded picture can be represented by a collection of slices, each comprising an integer number of CTUs. The individual CTUs in a slice are processed in raster-scan order. A bi-predictive (B) slice may be decoded using intra prediction or inter prediction with at most two motion vectors (MVs) and reference indices to predict the sample values of each block. A predictive (P) slice is decoded using intra prediction or inter prediction with at most one motion vector and reference index to predict the sample values of each block. An intra (I) slice is decoded using intra prediction only.
[0007] A CTU can be partitioned into one or multiple non-overlapped coding units (CUs) using the quadtree (QT) with nested multi-type-tree (MTT) structure to adapt to various local motion and texture characteristics.
[0008] Each CU contains one or more prediction units (PUs) . The prediction unit, together with the associated CU syntax, works as a basic unit for signaling the predictor information. The specified prediction process is employed to predict the values of the associated pixel samples inside the PU. Each CU may contain one or more transform units (TUs) for representing the prediction residual blocks. A transform unit (TU) is comprised of a transform block (TB) of luma samples and two corresponding transform blocks of chroma samples and each TB correspond to one residual block of samples from one color component. An integer transform is applied to a transform block. The level values of quantized coefficients together with other side information are entropy coded in the bitstream. The terms coding tree block (CTB) , coding block (CB) , prediction block (PB) , and transform block (TB) are defined to specify the 2-D sample array of one-color component associated with CTU, CU, PU, and TU, respectively. Thus, a CTU consists of one luma CTB, two chroma CTBs, and associated syntax elements. A similar relationship is valid for CU, PU, and TU.
[0009] For each inter-predicted CU, motion parameters consisting of motion vectors, reference picture indices and reference picture list usage index, and additional information are 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. 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.SUMMARY
[0010] The following summary is illustrative only and is not intended to be limiting in any way. That is, the following summary is provided to introduce concepts, highlights, benefits and advantages of the novel and non-obvious techniques described herein. Select and not all implementations are further described below in the detailed description. Thus, the following summary is not intended to identify essential features of the claimed subject matter, nor is it intended for use in determining the scope of the claimed subject matter.
[0011] Some embodiments of the disclosure provide a method for using combined prediction with reference block based intra prediction mode (IPM) derivation. A video coder receives data to be encoded or decoded as a current block of pixels of a current picture of a video. The video coder identifies a reference block. The video coder derives an intra prediction mode based on the identified reference block. The video coder generates a first predictor of the current block based on the derived intra prediction mode. The video coder generates a combined prediction of the current block based on the first predictor and a second predictor. The video coder encodes or decodes the current block by using the combined prediction.
[0012] The reference block may be located in the current picture and indicated by a block vector associated with the current block. In some embodiments, the reference block may be a region near (adjacent or non-adjacent to) a block of pixels indicated by the block vector.
[0013] In some embodiments, the intra-prediction mode may be derived by performing texture gradient analysis on reconstructed or predicted samples of the reference block or its template and identifying the modes with the highest HoG accumulation (e.g., in a DIMD-like manner. ) In some embodiments, the intra-prediction mode is derived by identifying the modes with the lowest difference value between predicted samples and reconstructed samples of the reference block or its template (e.g., in a TIMD-like manner. )
[0014] In some embodiments, the derived intra prediction mode is derived based on intra prediction mode information stored for the reference block. The derived intra prediction mode may be an intra prediction mode that is used to encode or decode the reference block. In some embodiments, the derived intra prediction mode may be an intra prediction mode that is used to select a transform (primary or secondary) for encoding or decoding the reference block.
[0015] In some embodiments, the derived intra prediction mode may be directly used to generate a predictor of the current block, or is added to a list of candidate intra prediction modes and the first predictor is generated based on an intra prediction mode that is selected from the list of candidate intra prediction modes.
[0016] The combined prediction may be a weighted sum of two or more predictors. The first predictor is one of one or more hypotheses of the intra predictions of the combined prediction. The second predictor may be an inter-prediction predictor or an IBC predictor that is generated based on the reference block that is indicated by the block vector.BRIEF DESCRIPTION OF THE DRAWINGS
[0017] The accompanying drawings are included to provide a further understanding of the present disclosure, and are incorporated in and constitute a part of the present disclosure. The drawings illustrate implementations of the present disclosure and, together with the description, serve to explain the principles of the present disclosure. It is appreciable that the drawings are not necessarily in scale as some components may be shown to be out of proportion than the size in actual implementation in order to clearly illustrate the concept of the present disclosure.
[0018] FIG. 1 illustrates 67 intra prediction modes, including 65 directional or angular intra prediction modes (from 2 to 66) .
[0019] FIG. 2 illustrates using decoder-side intra mode derivation (DIMD) to implicitly derive an intra prediction mode for a current block.
[0020] FIG. 3 illustrates using template-based intra mode derivation (TIMD) to implicitly derive an intra prediction mode for a current block.
[0021] FIG. 4 illustrates template matching prediction process.
[0022] FIG. 5 shows the mapping from intra prediction modes to low-frequency non-separable transform (LFNST) sets.
[0023] FIG. 6 illustrates using matrix-weighted intra-prediction (MIP) prediction samples before upsampling to build a Histogram of Gradients.
[0024] FIG. 7 illustrates a coding unit that is coded by geometric partitioning mode (GPM) with intra and intra prediction.
[0025] FIGS. 8A-C illustrate the available intra-prediction mode (IPM) candidates for GPM with inter and intra predictions.
[0026] FIG. 9 illustrates various options of locating a reference block for deriving an intra prediction mode for combined prediction using a block vector.
[0027] FIG. 10 illustrates an example video encoder that may implement combined prediction.
[0028] FIG. 11 illustrates portions of the video encoder that implement combined prediction and reference block based IPM derivation.
[0029] FIG. 12 conceptually illustrates a process for generating a combined prediction using IPMs derived from reference block information.
[0030] FIG. 13 illustrates an example video decoder that may implement combined prediction.
[0031] FIG. 14 illustrates portions of the video decoder that implement combined prediction and reference block based IPM derivation.
[0032] FIG. 15 conceptually illustrates a process for generating a combined prediction using IPMs derived from reference block information.
[0033] FIG. 16 conceptually illustrates an electronic system with which some embodiments of the present disclosure are implemented.DETAILED DESCRIPTION
[0034] In the following detailed description, numerous specific details are set forth by way of examples in order to provide a thorough understanding of the relevant teachings. Any variations, derivatives and / or extensions based on teachings described herein are within the protective scope of the present disclosure. In some instances, well-known methods, procedures, components, and / or circuitry pertaining to one or more example implementations disclosed herein may be described at a relatively high level without detail, in order to avoid unnecessarily obscuring aspects of teachings of the present disclosure. I. Intra Prediction
[0035] A. Directional Intra Modes
[0036] Intra-prediction method exploits one or more reference lines adjacent to the current prediction unit (PU) and one of the intra-prediction modes to generate the predictors for the current PU. The Intra-prediction direction can be chosen among a mode set containing multiple prediction directions, DC mode, and Planar mode. The intra prediction mode may also refer to any intra mode which determines the predictor of the current block using the spatially reconstructed samples. The number of directional intra modes may be 33 or extended to 65 direction modes. By including DC and Planar modes, the number of intra-prediction mode is 35 or extended to 67. FIG. 1 illustrates 67 intra predictions modes, including 65 directional or angular intra prediction modes (from 2 to 66) .
[0037] Some intra-prediction modes are identified as a set of most probable modes (MPM) for intra-prediction in current prediction block so an index may be signaled to select one of the MPMs. In some embodiments, 6 MPMs (or called primary MPMs) are used by considering two available neighboring intra modes. When constructing MPMs, default intra modes, neighboring intra modes, and derived intra modes are considered.
[0038] B. Decoder Side Intra Mode Derivation (DIMD)
[0039] Decoder-Side Intra Mode Derivation (DIMD) is a technique in which two or more intra prediction modes / angles / directions are derived from the reconstructed neighbor samples (template) of a block, and those two predictors are combined with the planar mode predictor with the weights derived from the gradients. The DIMD mode is used as an alternative prediction mode. To implicitly derive the intra prediction modes of a block, a texture gradient analysis is performed at both encoder and decoder sides. This process starts with an empty Histogram of Gradient (HoG) having 65 entries, corresponding to the 65 angular / directional intra prediction modes. Amplitudes of these entries are determined during the texture gradient analysis.
[0040] A video coder performing DIMD performs the following steps: in a first step, the video coder picks a template of T=3 columns and lines from respectively left and above the current block. This area is used as the reference for the gradient based intra prediction modes derivation. In a second step, the horizontal and vertical Sobel filters are applied on all 3×3 window positions, centered on the pixels of the middle line of the template. On each window position, Sobel filters calculate the intensity of pure horizontal and vertical directions as Gx and Gy, respectively. Then, the texture angle of the window is calculated as: angle=arctan (Gx / Gy) , which can be converted into one of the 65 angular intra prediction modes. Once the intra prediction mode index of current window is derived as idx, the amplitude of its entry in the HoG [idx] is updated by addition of amplitude = |Gx|+|Gy|
[0041] FIG. 2 illustrates using decoder-side intra mode derivation (DIMD) to implicitly derive an intra prediction mode for a current block. The figure shows an example Histogram of Gradient (HoG) 210 that is calculated after applying the above operations on all pixel positions in a template 215 that includes neighboring lines of pixel samples around a current block 200. Once the HoG is computed, the indices of the two or more (e.g., five) tallest histogram bars are selected as the implicitly derived intra prediction modes (IPMs, including M1 and M2) for the block. The predictions of the two or more selected intra prediction modes are blended with the prediction of the planar mode to generate the final DIMD prediction of the current block.
[0042] C. Template-based Intra Mode Derivation (TIMD)
[0043] For mode selection, template matching method can be applied by computing the cost between reconstructed samples and predicting samples. One of the examples is template-based intra mode derivation (TIMD) . TIMD is a coding method in which the intra prediction mode of a CU is implicitly derived by using a neighboring template at both encoder and decoder, instead of the encoder signaling the exact intra prediction mode to the decoder.
[0044] FIG. 3 illustrates using template-based intra mode derivation (TIMD) to implicitly derive an intra prediction mode for a current block 300. As illustrated, the neighboring pixels of the current block 300 is used as template 310. For each candidate intra mode, prediction samples of the template 310 are generated using the reference samples, which are in a L-shape reference region 320 above and left of the template 310. A TM cost for a candidate intra mode cost is calculated based on a difference (e.g., SATD) between reconstructed samples of the template and the prediction samples of the template generated by the candidate intra mode. The candidate intra prediction mode with the minimum cost is selected and used for intra prediction of the CU. The candidate modes may include 67 intra prediction modes (as in VVC) or extended to 131 intra prediction modes. MPMs may be used to indicate the directional information of a CU. Thus, to reduce the intra mode search space and utilize the characteristics of a CU, the intra prediction mode is implicitly derived from the MPM list.
[0045] In some embodiments, for each intra prediction mode in the MPM list, the SATD between the prediction and reconstructed samples of the template is calculated as the TM cost of the intra mode. First two intra prediction modes with the minimum SATD are selected as the TIMD modes. These two TIMD modes are fused with the weights after applying PDPC process, and such weighted intra prediction is used to code the current CU. Position dependent intra prediction combination (PDPC) is included in the derivation of the TIMD modes.
[0046] The costs of two selected modes (mode1 and mode2) are compared with a threshold, in the test, the cost factor of 2 is applied as follows: costMode2 < 2*costMode1
[0047] If this condition is true, the prediction fusion is applied, otherwise only mode1 is used. Weights of the modes are computed from their SATD costs as follows: weight1 = costMode2 / (costMode1+ costMode2) weight2 = 1 -weight1
[0048] D. Template Matching Prediction (TMP)
[0049] Template matching prediction (TMP or intraTMP) is a special intra prediction mode that copies the best prediction block from the reconstructed part of the current frame, whose L-shaped template matches the current template. FIG. 4 illustrates template matching prediction process. As illustrated, for a predefined search range 405, the encoder searches for a most similar template to the current template 415 of the current block 410 in the reconstructed part 408 of the current frame 400. Amost similar template 425 is identified by the search, and its corresponding block 420 is used as a prediction block (as a reference block) for the current block 410. The encoder then signals the usage of this mode, and the inverse operation is made at the decoder side.
[0050] E. Intra Block Copy (IBC)
[0051] Intra block copy (IBC) or current picture referencing (CPR) refer to coding pixel blocks by referencing pixel positions within same current picture as the current block by using block vectors. An IBC-coded CU may be treated as the third prediction mode other than intra or inter prediction modes.
[0052] Since IBC mode is implemented as a block level coding mode, block matching (BM) is performed at the encoder to find the optimal block vector (or motion vector) for each CU. Here, a block vector is used to indicate the displacement from the current block to a reference block, which is already reconstructed inside the current picture.
[0053] In some embodiments, the IBC mode is applicable to the CUs with both width and height smaller than or equal to 64 luma samples. II. Multiple Transform Selection (MTS) for intra coding
[0054] Multiple Transform Selectin (MTS) allows the use of different combinations of transforms to encode a block of video data more efficiently. In MTS, DST7 and DCT8 transform kernels are utilized for intra and inter coding. Additional primary transforms including DCT5, DST4, DST1, and identity transform (IDT) are also employed. MTS set is made dependent on the TU size and intra mode information.
[0055] In some embodiments, for blocks predicted via IntraTMP, DIMD process is used on the predition block to derive an intra mode that is used for transform selection. Specifically, a horizontal gradient and a vertical gradient are calculated for each predicted sample to build a HoG. Then the intra prediction mode with the largest histogram amplitude value is used for the MTS transform set.
[0056] A. Secondary Transform: Low-frequency non-separable transform (LFNST) extension with large kernel
[0057] Video coding systems may apply secondary transform such as LFNST to further remove spatial redundancy in prediction blocks after an initial or primary transform has been applied. In some embodiments, the LFNST design is extended as follows:
[0058] The number of LFNST sets (S) and candidates (C) are extended to S=35 and C=3, and the LFNST set (lfnstTrSetIdx) for a given intra mode (predModeIntra) is derived according to the following: - For predModeIntra < 2, lfnstTrSetIdx is equal to 2 - lfnstTrSetIdx = predModeIntra, for predModeIntra in [0, 34] - lfnstTrSetIdx = 68 –predModeIntra, for predModeIntra in [35, 66]
[0059] Three different kernels, LFNST4, LFNST8, and LFNST16, are defined to indicate LFNST kernel sets, which are applied to 4xN / Nx4 (N≥4) , 8xN / Nx8 (N≥8) , and MxN (M, N≥16) , respectively.
[0060] The kernel dimensions are specified by: (LFNST4, LFNST8, LFNST16) = (16x16, 32x64, 32x96)
[0061] In some embodiments, an intra prediction mode can be used to determine which kernel (or matrix) set of the mode-dependent transform, for example, LFNST set, is used.
[0062] The LFNST set index is derived as shown in FIG. 5, which shows the mapping from intra prediction modes to LFNST sets. For blocks using matrix-weighted intra-prediction (MIP) or IntraTMP, DIMD is used to derive the intra prediction mode of the current block based on the MIP or IntraTMP predicted samples. For MIP, this is done before upsampling. Specifically, a horizontal gradient and a vertical gradient are calculated for each predicted sample to build a Histogram of Gradients (HoG) . FIG. 6 illustrates using MIP prediction samples before upsampling to build a Histogram of Gradients. Then the intra prediction mode with the largest histogram amplitude value is used to determine the LFNST transform set and LFNST transpose flag.
[0063] B. Non-Separable Primary Transform (NSPT) for Intra Coding
[0064] Non-Separable Primary Transform (NSPT) is a transform coding technique that is designed to improve compression efficiency, particularly for intra coding. All NSPTs consist of 35 sets and 3 candidates (similar to the current LFNST) . The kernels of NSPTs may have the following shapes: - NSPT4x4: 16x16 - NSPT4x8 / NSPT8x4: 32x20 - NSPT8x8: 64x32 - NSPT4x16 / NSPT16x4: 64x24 - NSPT8x16 / NSPT16x8: 128x40 - NSPT4x32 / NSPT32x4: 128x20 - NSPT8x32 / NSPT32x8: 256x24
[0065] Therefore, 12, 32, 40 and 88 coefficients may be zeroed out using NSPT4x8 / NSPT8x4, NSPT8x8, NSPT4x16 / NSPT16x4 and NSPT8x16 / NSPT16x8 respectively. For NSPT4x32 / NSPT32x4 and NSPT8x32 / NSPT32x8, remaining 108 and 232 positions in each transform block are zeroed-out, respectively. III. Inter Prediction
[0066] For each inter-predicted CU, motion parameters consist of motion vectors, reference picture indices and reference picture list usage index, and additional information needed for various coding tools to be used for inter-predicted sample generation. The motion parameter can be signaled 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. Amerge mode is specified whereby the motion parameters for the current CU are obtained from neighbouring CUs, including spatial and temporal candidates, and additional schedules. 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.
[0067] The following is a list of inter prediction coding tools: - Extended merge prediction - Merge mode with MVD (MMVD) - Symmetric MVD (SMVD) signalling - Affine motion compensated prediction - Subblock-based temporal motion vector prediction (SbTMVP) - Adaptive motion vector resolution (AMVR) - Motion field storage: 1 / 16th luma sample MV storage and 8x8 motion field compression - Bi-prediction with CU-level weight (BCW) - Bi-directional optical flow (BDOF) - Decoder side motion vector refinement (DMVR) - Geometric partitioning mode (GPM) - Combined inter and intra prediction (CIIP) IV. Geometric Partitioning Mode (GPM)
[0068] Geometric partitioning mode is a coding tool in which a CU is split into at least two parts by a geometrically located straight line. The location of the splitting line is mathematically derived from the angle and offset parameters of a specific partition. Each GPM partitioning or GPM split is a partition mode characterized by a distance-angle pairing that defines a segmenting line. The distance-angle pairing specifies a partitioning edge for the GPM coded CU.
[0069] In some embodiments, one GPM partition of a CU may be predicted by inter or intra prediction while another GPM partition of the CU may be predicted by intra prediction. FIG. 7 illustrates an CU that is coded by GPM with intra and intra prediction.
[0070] In some embodiments, the final prediction samples are generated by weighting the inter predicted samples and the intra predicted samples for each GPM-separated region. The inter predicted samples are derived by inter GPM whereas the intra predicted samples are derived by an intra prediction mode (IPM) candidate list and an index signaled from the encoder. The IPM candidate list size is pre-defined as 3. FIGS. 8A-C illustrate the available IPM candidates for GPM with inter and intra predictions (or called as GPM-intra) . FIG. 8Ashows parallel mode for the intra-predicted GPM partition, which is an angular intra-prediction direction that is parallel to the GPM partition edge. FIG. 8B shows perpendicular mode for the intra-predicted GPM partition, which is an angular intra-prediction direction that is perpendicular to the GPM partition edge. FIG. 8C shows planar mode intra prediction for the intra predicted GPM partition.
[0071] In some embodiments, GPM with intra and intra prediction as shown in FIG. 7 is restricted to reduce the signalling overhead for IPMs and avoid an increase in the size of the intra prediction circuit on the hardware decoder. In addition, a direct motion vector and IPM storage on the GPM-blending area is introduced to further improve the coding performance.
[0072] GPM-intra can be combined with GPM with merge with motion vector difference (GPM-MMVD) . TIMD is used for IPM candidates of GPM-intra to further improve the coding performance. The Parallel mode can be registered first, then IPM candidates of TIMD, DIMD, and neighboring blocks. V. Combined Prediction
[0073] In some embodiments, combined prediction is formed by using one or more hypotheses of intra prediction and one or more hypotheses of intra block copy prediction with blending weighting. CIIP and IBC-CIIP are examples of coding tools that use the combined prediction as the final prediction of the current block. (Acoding tool that uses the combined prediction as the final prediction of the current block is referred to as “the target coding tool. ” )
[0074] A. Combined inter and intra prediction (CIIP)
[0075] When a CU is coded in merge mode, if the CU contains at least 64 luma samples (that is, CU width times CU height is equal to or larger than 64) , and if both CU width and CU height are less than 128 luma samples, an additional flag maybe signaled to indicate if the combined inter / intra prediction (CIIP) mode is applied to the current CU. The CIIP prediction combines an inter prediction signal with an intra prediction signal. The inter prediction signal in the CIIP mode Pinter is derived using the same inter prediction process applied to regular merge mode; and the intra prediction signal Pintra is derived following the regular intra prediction process with the planar mode or the one or more intra prediction modes derived from a pre-defined mechanism. The intra and inter prediction signals are then combined using weighted averaging, where the weight value is calculated depending on the coding modes of the top and left neighbouring blocks as follows: - If the top neighbor is available and intra coded, then set isIntraTop to 1, otherwise set isIntraTop to 0; - If the left neighbor is available and intra coded, then set isIntraLeft to 1, otherwise set isIntraLeft to 0; - If (isIntraLeft + isIntraTop) is equal to 2, then wt is set to 3; - Otherwise, if (isIntraLeft + isIntraTop) is equal to 1, then wt is set to 2; - Otherwise, set wt to 1. (wt is the weight value)
[0076] The CIIP prediction PCIIP is formed as follows: PCIIP = ( (4 –wt) *Pinter + wt *Pintra + 2) >> 2
[0077] B. CIIP with TIMD and TM merge
[0078] In CIIP mode, the prediction samples are generated by weighting an inter prediction signal predicted using CIIP-TM (template matching) merge candidate and an intra prediction signal predicted using TIMD derived intra prediction mode. For CIIP with TIMD, the TIMD derivation method is used to derive the intra prediction mode (IPM) used to generate the intra prediction signal of CIIP. Specifically, the intra prediction mode with the smallest SATD values in the TIMD mode list is selected and mapped to one of the 67 regular intra prediction modes.
[0079] In some embodiments, the weights (wIntra, wInter) are modified if the derived intra prediction mode is an angular mode. For near-horizontal modes (2 ≤ angular mode index < 34) , the current block is vertically divided into sub-blocks. For near-vertical modes (34 ≤ angular mode index ≤ 66) , the current block is horizontally divided into sub-blocks. The (wIntra, wInter) for the different sub-blocks are shown in Table 1:
[0080] Table 1:
[0081] With CIIP-TM, a CIIP-TM merge candidate list is built for the CIIP-TM mode. The merge candidates may be refined by template matching. The CIIP-TM merge candidates may also be reordered by the adaptive reordering of merge candidates (ARMC) method as regular merge candidates. The maximum number of CIIP-TM merge candidates is equal to two.
[0082] C. Subblock CIIP
[0083] A subblock-based merge candidate may be used to generate the inter signal of CIIP, where the same subblock-based merge candidate list used by affine and SbTMVP is utilized. When CIIP flag is true and CIIP-TM flag is false, a subblock-based CIIP flag is signaled. If subblock-based CIIP flag is true, an index indicating specific candidate in the subblock-based merge list is signaled, and TIMD is used to generate intra signal by default thus no CIIP-PDPC flag signaled any more.
[0084] D. Combined IBC and Intra Prediction
[0085] Combined intra block copy and intra prediction (IBC-CIIP) is a coding tool for a CU which uses IBC and intra prediction to obtain two prediction signals, and the two prediction signals are weighted summed to generate the final prediction as follows: P = (wibc *Pibc + ( (1 << shift) –wibc) *Pintra + (1<< (shift–1) ) ) >> shift
[0086] wherein Pibc and Pintra denote the IBC prediction signal and intra prediction signal. (wibc, shift) are set equal to (13, 4) and (1, 1) for IBC merge mode and IBC advanced MVP (AMVP) mode. In some embodiments, when CIIP is applied to the current block, the intra block copy (IBC) prediction is replaced by inter motion compensated prediction as one of the hypotheses. In some embodiments, an intra prediction mode (IPM) candidate list is used to generate the intra prediction signal, and the IPM candidate list size is pre-defined as 2. An IPM index is signalled to indicate which IPM is used. VI. Reference Block Derived IPM for Combined Prediction
[0087] Some embodiments of the disclosure provide methods for deriving the one or more intra prediction modes (IPMs) used for generating the one or more hypotheses of intra prediction in the combined prediction. In some embodiments, these IPMs are derived using information associated with reference blocks that are identified by motion vectors or block vectors. The identified reference block (s) may be those providing one or more hypotheses of inter prediction or IBC prediction in the combined prediction. Specifically, the derived IPMs for the combined prediction may be derived based on IBC (further described in Section VI. Abelow) , or derived based on mode information in reference block (s) (further described in Section VI. B below) , or derived based on predicted or reconstructed samples of reference block (s) (further described in Section VI. C below) , or derived based on other information associated with reference block (s) . In some embodiments, the reference block based IPM derivation is used to generate the intra prediction for the combined prediction, instead of using methods described in Section V above, such as applying the TIMD derivation method to derive the IPM of combined prediction (e.g., CIIP-TIMD) or using a IPM candidate list and the signaled index to obtain the IPM to generate the intra prediction for the combined prediction.
[0088] In some embodiments, the reference block and the target block can be replaced with the reference position and the target position, respectively. In some embodiments, the reference block can be any pre-defined position in the block indicated by the block vector of the current block.
[0089] In some embodiments, the reference blocks can be determined in different ways, and several options of intra prediction modes are available for the current block. For example, in some embodiments, one intra prediction mode is derived based on the reference block indicated by the block vector of the current block. Another intra prediction mode is derived based on the reference block spatially adjacent to or non-adjacent to the block indicated by the block vector of the current block. Another intra prediction mode is derived based on a pre-defined position in the block indicated by the block vector of the current block. Another intra prediction mode is derived based on the reference block spatially adjacent to or non-adjacent to the current block.
[0090] FIG. 9 illustrates various options of locating a reference block for deriving an intra prediction mode for combined prediction using a block vector. As illustrated, the reference block may be a block 920 indicated by the block vector 910 of the current block 900 in a current picture 990. In some embodiments, the reference block may be a target block 922 spatially adjacent to the block 920 indicated by the block vector 910. In some embodiments, the reference block may be a target block 924 spatially non-adjacent to the block 920 indicated by the block vector 910.
[0091] In some embodiments, the reference block is the L-shape (or any subset of the L-shape) spatially adjacent to or non-adjacent to the current block. For example, the reference block is in a template region 940 (L-shape neighboring region) of the current block 900. In some embodiments, the one or more intra prediction modes (with tallest histogram bars) similar to the DIMD mode derivation are to be used as the one or more intra prediction modes for generating the intra prediction for the combined prediction.
[0092] In some embodiments, when the target coding tool is determined to be applied to the current block, the derived one or more intra prediction modes are used to generate the one or more hypotheses of intra prediction, respectively. For example, the TIMD derived mode used to generate the intra prediction for the combined prediction is replaced with the derived IPM. The target coding tool of this example may be CIIP. For another example, in some embodiments, the indicated IPM used to generate the intra prediction for the combined prediction is replaced with an IPM derived based on information associated with reference blocks. The target coding tool of this example may be IBC-CIIP. In some embodiments, when only one hypothesis of intra prediction is used for the combined prediction, only one reference-block-based IPM is derived or used.
[0093] In some embodiments, when the target coding tool is determined to be applied to the current block, several options are defined to obtain the intra prediction mode (using each option) for the intra prediction in the combined prediction. For example, a first option is to use a conventional method (e.g., TIMD mode) to obtain the intra prediction mode for the intra prediction in the combined prediction. Asecond option is to use the derived IPM in the combined prediction. To determine which option is used to obtain the intra prediction mode for the intra prediction in the combined prediction for the current block, an index may be signaled to indicate the selected option for the current block coding using the target coding tool (the target coding tool for this example may be CIIP. ) For another example, the first option is to use the conventional method to obtain the intra prediction mode (the indicated IPM) for the intra prediction in the combined prediction. Another option is to use the reference block derived IPM for the intra prediction in the combined prediction. To determine which option is used to obtain the intra prediction mode for the intra prediction in the combined prediction for the current block, an index may be signaled to indicate the selected option for the current block coding using the target coding tool. This example may refer to the target coding tool being IBC-CIIP.
[0094] In some embodiments, when only one hypothesis of intra prediction is used for the combined prediction, only one reference block derived IPM is used.
[0095] In some embodiments, the one or more reference block derived IPMs can be added into the candidate intra prediction modes for the combined prediction. For example, the target coding tool may employ the TIMD mode list (containing intra prediction modes) as the candidate intra prediction modes, and the derived IPMs can be added into the TIMD mode list as candidates. The intra prediction mode with the smallest SATD values in the TIMD mode list is used to generate the intra prediction for the combined prediction. The target coding tool in this example may be CIIP.
[0096] In some embodiments, the target coding tool employs the IPM candidate list (containing intra prediction modes) as the candidate intra prediction modes, and the reference block derived IPMs can be added into the IPM candidate list as candidates. The intra prediction mode indicated by the IPM index is used to generate the intra prediction for the combined prediction. The target coding tool in this example may be IBC-CIIP.
[0097] In some embodiments, several options are available for the current block depending on different methods of deriving IPMs. In some embodiments, to determine which option of intra prediction mode is used to get the intra prediction mode for the intra prediction in the combined prediction for the current block, an index may be signaled to indicate the selected option for the current block coding using the target coding tool. In some embodiments, to determine which option of intra prediction mode is used to obtain the intra prediction mode for the intra prediction in the combined prediction for the current block, an implicit rule is designed to indicate the selected option for the current block coding using the target coding tool. For example, in some embodiments, the implicit rule may depend on the block vector information of the current block, any coding mode information of the current block, the neighbor block, or the reference block, and / or the block width, block height, block area of the current block, the neighbor block, or the reference block.
[0098] A. IPM derived based on IBC prediction
[0099] In some embodiments, the IPM for combined prediction is derived based on the IBC prediction for the current block. That is, the target samples contain or only contain all or any subset of the IBC prediction for the current block, the IBC prediction being the reconstructed samples of the reference block identified by the block vector for the current block. In some embodiments, when the target samples can be determined in different ways, several options of intra prediction modes are available for the current block.
[0100] In some embodiments, the deriving process for the IPM for combined prediction is based on texture gradient analysis associated with the IBC prediction. Similar to the texture gradient analysis used in DIMD (as described in Section I. B) , the derivation process is performed on the target samples specified herein. This process starts with an empty HoG with N entries. Each entry corresponds to an available intra prediction mode. N is set depending on the number of available intra prediction modes. In the first step, the target samples are determined for the current block and the derivation process is determined to be performed on the specified target samples. The target samples may be in a block of pixels identified by a block vector or in a template area (e.g., above and left) near the reference block. In the second step, the amplitude of each entry is calculated, and the derivation process employs (but not limited to) the horizontal and vertical Sobel filters to apply 3×3 window to all or any subset of the target samples. Similar to or unified with DIMD, on each window position, Sobel filters calculate the intensity of horizontal and vertical directions to determine the intra prediction mode index of current window and the amplitude of this entry (for the determined intra prediction mode index) in the HoG is updated by addition of the amplitude from the intensity of horizontal and vertical directions.
[0101] B. IPM derivation based on mode information in reference block (s)
[0102] In some embodiments, the intra prediction mode (IPM) used for combined prediction is derived based on intra prediction mode information stored in or associated with reference block (s) (or the reference positions) . For example, in some embodiments, if the reference block is intra-coded, the intra prediction mode coding the reference block can be used as the (derived) IPM for the intra prediction in the combined prediction for the current block. For example, in some embodiments, if the reference block contains intra prediction mode information, the intra prediction mode associated with the reference block is used as the IPM for the intra prediction in the combined prediction for the current block. In some embodiments, the IPM associated with the reference block is the DIMD intra mode which is used to derive the intra prediction mode of the reference block based on the predicted samples of the reference block and / or is used to select the transform set for the reference block.
[0103] The following proposed methods can be used to find the reference block or can be used to find the reference position. For example, when finding the reference position, the reference block and the target block in the embodiments can be replaced with the reference position and the target position, respectively. In some other embodiments, the reference block or the reference position can be found using the methods mentioned in any other paragraphs in this application.
[0104] In some embodiments, the reference block is indicated using the block vector of the current block. In some embodiments, the reference block may be the target block indicated by the block vector of the current block. In some embodiments, the reference block may be the target block derived based on the block vector of the current block. For example, the reference block is the target block spatially adjacent to or non-adjacent to the block indicated by the block vector of the current block. For example, the reference block can be any pre-defined position in the block indicated by the block vector of the current block.
[0105] In some embodiments, the reference block is the target block spatially adjacent to or non-adjacent to the current block. For example, the reference block is covered in the template region (neighboring region) of the current block.
[0106] In some embodiments, when the reference blocks can be determined in different ways, several options of intra prediction modes are available for the current block.
[0107] For example, one intra prediction mode is derived based on the reference block indicated by the block vector of the current block. Another intra prediction mode is derived based on the reference block spatially adjacent to or non-adjacent to the block indicated by the block vector of the current block. Another intra prediction mode is derived based on a pre-defined position in the block indicated by the block vector of the current block. Another intra prediction mode is derived based on the reference block spatially adjacent to or non-adjacent to the current block.
[0108] C. IPM derived based on predicted or reconstructed samples of the reference block (s)
[0109] In some embodiments, the intra prediction mode (IPM) derived for combined prediction is derived based on predicted or reconstructed samples of the reference block (s) . In some embodiments, the derivation process is based on texture gradient analysis. As the texture gradient analysis used in DIMD, the derivation process is performed on the target samples specified in this section. The target samples specified in this section refer to or are based on all or any subset of the predicted or reconstructed samples of the indicated reference block using the methods in any paragraphs of this document.
[0110] In some embodiments, the reference block is indicated using the block vector of the current block. In some embodiments, the reference block is the block indicated by the block vector of the current block. In some embodiments, the reference block is the block derived based on the block vector of the current block. For example, the reference block is the block spatially adjacent to or non-adjacent to the block indicated by the block vector of the current block.
[0111] In some embodiments, the reference block is the L-shape (or any subset of the L-shape) spatially adjacent to or non-adjacent to the current block. For example, the reference block may be covered in the template region (L-shape neighboring region) of the current block. In one case, this embodiment uses the one or more intra prediction modes (with tallest histogram bars) as the DIMD mode derivation to be the one or more intra prediction modes which will be used to generate the intra prediction for the combined prediction.
[0112] In some embodiments, the reference blocks can be determined in different ways, and several options of intra prediction modes are available for the current block. For example, one intra prediction mode is derived based on the reference block indicated by the block vector of the current block. Another intra prediction mode is derived based on the reference block spatially adjacent to or non-adjacent to the block indicated by the block vector of the current block. Another intra prediction mode is derived based on the reference block spatially adjacent to or non-adjacent to the current block.
[0113] D. Usage of the Derived IPMs for Combined Prediction
[0114] As mentioned, in some embodiments, the one or more derived intra prediction modes (IPMs) are used to generate the one or more hypotheses of intra prediction in the combined prediction. In some embodiments, the IPMs derived for combined prediction according to the above sections can be utilized for other operations in the video coding process. For example, in some embodiments, the derived IPM can be used for the transform selection for the current block. For example, the transform may refer to any separable or non-separable primary transform. In some embodiments, the transform is MTS. In some embodiments, the transform is NSPT. In some embodiments, the transform may refer to any separable or non-separable secondary transform. In some embodiments, the transform is LFNST.
[0115] In some embodiments, the derived intra prediction mode can be stored for the current block and / or can be referenced by the subsequent coding blocks. For example, in some embodiments, the derived intra prediction mode can be added into the intra MPM list or any merge list associated with intra prediction modes for the subsequent coding block during the list construction for the subsequent coding block.
[0116] In the above sections, the embodiments / examples are described to treat the combined prediction formed by intra prediction and intra block copy prediction. However, it is not a limitation to the proposed methods. The proposed methods may be applied when the combined prediction is formed by intra prediction and inter motion compensated prediction.
[0117] The methods described above can be enabled and / or disabled according to implicit rules (e.g. block width, height, or area) or according to explicit rules (e.g. syntax on block, tile, slice, picture, SPS, or PPS level) . For example, the proposed method is applied when the block area is smaller / larger than a threshold. The term “block” in this invention can refer to TU / TB, CU / CB, PU / PB, pre-defined region, or CTU / CTB. Any combination of the proposed methods in this invention can be applied. The proposed methods in this invention can be applied to any combined prediction tools such as any CIIP variations.
[0118] Any of the foregoing proposed methods can be implemented in encoders and / or decoders. For example, any of the proposed methods can be implemented in an inter / intra / IBC / prediction / transform module of an encoder, and / or an inter / intra / IBC / prediction / transform module of a decoder. Alternatively, any of the proposed methods can be implemented as a circuit coupled to the inter / intra / IBC / prediction / transform module of the encoder and / or the inter / intra / IBC / prediction / transform module of the decoder, so as to provide the information needed by the inter / intra / IBC / prediction / transform module. VI. Example Video Encoder
[0119] FIG. 10 illustrates an example video encoder 1000 that may implement combined prediction. As illustrated, the video encoder 1000 receives input video signal from a video source 1005 and encodes the signal into bitstream 1095. The video encoder 1000 has several components or modules for encoding the signal from the video source 1005, at least including some components selected from a transform module 1010, a quantization module 1011, an inverse quantization module 1014, an inverse transform module 1015, an intra estimation module 1024, an intra prediction module 1025, a motion compensation module 1030, a motion estimation module 1035, an in-loop filter 1045, a reconstructed picture buffer 1050, a MV buffer 1065, and a MV prediction module 1075, and an entropy encoder 1090. The motion compensation module 1030 and the motion estimation module 1035 are part of an inter-prediction module 1040. The intra-prediction module 1025 and the intra-estimation module 1024 are part of a current picture prediction module 1020, which uses current picture reconstructed samples as reference samples for prediction of the current block.
[0120] In some embodiments, the modules 1010 –1090 are modules of software instructions being executed by one or more processing units (e.g., a processor) of a computing device or electronic apparatus. In some embodiments, the modules 1010 –1090 are modules of hardware circuits implemented by one or more integrated circuits (ICs) of an electronic apparatus. Though the modules 1010 –1090 are illustrated as being separate modules, some of the modules can be combined into a single module.
[0121] The video source 1005 provides a raw video signal that presents pixel data of each video frame without compression. A subtractor 1008 computes the difference between the raw video pixel data of the video source 1005 and the predicted pixel data 1013 from the motion compensation module 1030 or intra-prediction module 1025 as prediction residual 1009. The transform module 1010 converts the difference (or the residual pixel data or residual signal 1008) into transform coefficients (e.g., by performing Discrete Cosine Transform, or DCT) . The quantization module 1011 quantizes the transform coefficients into quantized data (or quantized coefficients) 1012, which is encoded into the bitstream 1095 by the entropy encoder 1090.
[0122] The inverse quantization module 1014 de-quantizes the quantized data (or quantized coefficients) 1012 to obtain transform coefficients 1018, and the inverse transform module 1015 performs inverse transform on the transform coefficients 1018 to produce reconstructed residual 1019. The reconstructed residual 1019 is added with the predicted pixel data 1013 to produce reconstructed pixel data 1017. In some embodiments, the reconstructed pixel data 1017 is temporarily stored in a line buffer 1027 (or intra prediction buffer) for intra-picture prediction and spatial MV prediction. The reconstructed pixels are filtered by the in-loop filter 1045 and stored in the reconstructed picture buffer 1050. In some embodiments, the reconstructed picture buffer 1050 is a storage external to the video encoder 1000. In some embodiments, the reconstructed picture buffer 1050 is a storage internal to the video encoder 1000.
[0123] The intra estimation module 1024 derives intra-prediction data (e.g., intra prediction modes) based on the reconstructed pixel data 1017 (stored in the line buffer 1027) . The intra-prediction data is provided to the entropy encoder 1090 to be encoded into bitstream 1095. The intra-prediction data is also used by the intra-prediction module 1025 to produce the predicted pixel data 1013.
[0124] The motion estimation module 1035 performs inter-prediction by producing MVs to reference pixel data of previously decoded frames stored in the reconstructed picture buffer 1050. These MVs are provided to the motion compensation module 1030 to produce predicted pixel data.
[0125] Instead of encoding the complete actual MVs in the bitstream, the video encoder 1000 uses MV prediction to generate predicted MVs, and the difference between the MVs used for motion compensation and the predicted MVs is encoded as residual motion data and stored in the bitstream 1095.
[0126] The MV prediction module 1075 generates the predicted MVs based on reference MVs that were generated for encoding previously video frames, i.e., the motion compensation MVs that were used to perform motion compensation. The MV prediction module 1075 retrieves reference MVs from previous video frames from the MV buffer 1065. The video encoder 1000 stores the MVs generated for the current video frame in the MV buffer 1065 as reference MVs for generating predicted MVs.
[0127] The MV prediction module 1075 uses the reference MVs to create the predicted MVs. The predicted MVs can be computed by spatial MV prediction or temporal MV prediction. The difference between the predicted MVs and the motion compensation MVs (MC MVs) of the current frame (residual motion data) are encoded into the bitstream 1095 by the entropy encoder 1090.
[0128] The entropy encoder 1090 encodes various parameters and data into the bitstream 1095 by using entropy-coding techniques such as context-adaptive binary arithmetic coding (CABAC) or Huffman encoding. The entropy encoder 1090 encodes various header elements, flags, along with the quantized transform coefficients 1012, and the residual motion data as syntax elements into the bitstream 1095. The bitstream 1095 is in turn stored in a storage device or transmitted to a decoder over a communications medium such as a network.
[0129] The in-loop filter 1045 performs filtering or smoothing operations on the reconstructed pixel data 1017 to reduce the artifacts of coding, particularly at boundaries of pixel blocks. In some embodiments, the filtering or smoothing operations performed by the in-loop filter 1045 include deblock filter (DBF) , sample adaptive offset (SAO) , and / or adaptive loop filter (ALF) . In some embodiments, luma mapping chroma scaling (LMCS) is performed before the loop filters.
[0130] FIG. 11 illustrates portions of the video encoder 1000 that implement combined prediction and reference block based IPM derivation. As illustrated, a reference block locator 1110 receives a block vector from an IBC prediction module 1140. The reference block locator 1110 locates and retrieves information related to a reference block from the reconstructed picture buffer 1050 and / or a block information storage 1105. The “reference block” may refer to a block that is indicated directly by the block vector or motion vector, or a region that is near or adjacent to the block that is directly indicated by the block vector or motion vector.
[0131] The reference block locator 1110 may retrieve samples of the reference block from the reconstructed picture buffer 1050 that is indicated by the block vector. In some embodiments, the samples of the reference block being provided may be reconstructed samples of the reference block (stored in the reconstructed picture buffer 1050) . In some embodiments, the samples of the reference block may be predicted samples of the reference block that are generated by a prediction coding tool. The reference block locator 1110 may retrieve information that is stored for the reference block from a block information storage 1105. The information can be intra prediction information related to the reference block (e.g., the intra mode that was used to code the reference block. )
[0132] A IPM derivation module 1120 derive an IPM of a combined prediction for a target coding tool. In some embodiments, the IPM derivation module 1120 performs TIMD (template matching) or DIMD (texture gradient analysis) process on the samples provided by the reference block locator 1110 to derive one or more IPMs 1125 for the combined prediction. In some embodiments, the IPM derivation module 1120 uses the block information (e.g., intra prediction information) of the reference block to derive the one or more IPMs 1125 for the combined prediction. The derived IPM (s) 1125 may be provided directly to the intra prediction module 1025, which uses the derived IPM 1125 and content of the line buffer 1027 to generate an intra prediction predictor 1135 of the current block. The derived IPM (s) 1125 may be added to a candidate IPM list 1130. An IPM may be selected from the candidate IPM list 1130 to be used by the intra prediction module 1025 to generate the intra prediction predictor 1135.
[0133] A combined prediction module 1150 generates a combined predictor 1155 based on the intra prediction predictor 1135 and one or more other predictors 1145. The other predictors 1145 may include an inter-prediction provided by the inter-prediction module 1040, or an IBC prediction from the IBC prediction module 1140, or another intra-prediction predictor of the current block. The combined predictor 1155 may be a weighted sum of the intra prediction predictor 1135 and the one or more other predictors 1145. The other predictor 1145 may be the same as reference block indicated by the block vector 1115 used to generate the derived IPM 1125. The generated combined predictor 1155 may be used as the predicted pixel data 1013.
[0134] FIG. 12 conceptually illustrates a process 1200 for generating a combined prediction using IPMs derived from reference block information. In some embodiments, one or more processing units (e.g., a processor) of a computing device implementing the encoder 1000 performs the process 1200 by executing instructions stored in a computer readable medium. In some embodiments, an electronic apparatus implementing the encoder 1000 performs the process 1200.
[0135] The encoder receives (at block 1210) data to be encoded as a current block of pixels in a current picture. The encoder identifies (at block 1220) a reference block. The reference block may be located in the current picture and indicated by a block vector associated with the current block (so that the reference block provides an IBC prediction of the current block. ) In some embodiments, the reference block may be a region near (adjacent or non-adjacent to) a block of pixels indicated by the block vector.
[0136] The encoder derives (at block 1230) an intra prediction mode based on the identified reference block. In some embodiments, the intra-prediction mode may be derived by performing texture gradient analysis on reconstructed or predicted samples of the reference block or its template and identifying the modes with the highest HoG accumulation (e.g., in a DIMD-like manner. ) In some embodiments, the intra-prediction mode is derived by identifying the modes with the lowest difference value between predicted samples and reconstructed samples of the reference block or its template (e.g., in a TIMD-like manner. )
[0137] In some embodiments, the derived intra prediction mode is derived based on intra prediction mode information stored for the reference block. The derived intra prediction mode may be an intra prediction mode that is used to encode the reference block. In some embodiments, the derived intra prediction mode may be an intra prediction mode that is used to select a transform (primary or secondary) for encoding the reference block.
[0138] The encoder generates (at block 1240) a first predictor of the current block based on the derived intra prediction mode. In some embodiments, the derived intra prediction mode may be directly used to generate a predictor of the current block, or is added to a list of candidate intra prediction modes and the first predictor is generated based on an intra prediction mode that is selected from the list of candidate intra prediction modes.
[0139] The encoder generates (at block 1250) a combined prediction of the current block based on the first predictor and a second predictor. The combined prediction may be a weighted sum of two or more predictors. The first predictor is one of one or more hypotheses of the intra predictions of the combined prediction. The second predictor may be an inter-prediction predictor or an IBC predictor that is generated based on the reference block that is indicated by the block vector. The encoder encodes (at block 1260) the current block by using the combined prediction to generate the residuals to be transformed. VII. Example Video Decoder
[0140] In some embodiments, an encoder may signal (or generate) one or more syntax element in a bitstream, such that a decoder may parse said one or more syntax element from the bitstream.
[0141] FIG. 13 illustrates an example video decoder 1300 that may implement combined prediction. As illustrated, the video decoder 1300 is an image-decoding or video-decoding circuit that receives a bitstream 1395 and decodes the content of the bitstream into pixel data of video frames for display. The video decoder 1300 has several components or modules for decoding the bitstream 1395, including some components selected from an inverse quantization module 1314, an inverse transform module 1315, an intra-prediction module 1325, a motion compensation module 1330, an in-loop filter 1345, a decoded picture buffer 1350, a MV buffer 1365, a MV prediction module 1375, and a parser 1390. The motion compensation module 1330 is part of an inter-prediction module 1340. The intra-prediction module 1325 is part of a current picture prediction module 1320, which uses current picture reconstructed samples as reference samples for prediction of the current block.
[0142] In some embodiments, the modules 1314 –1390 are modules of software instructions being executed by one or more processing units (e.g., a processor) of a computing device. In some embodiments, the modules 1314 –1390 are modules of hardware circuits implemented by one or more ICs of an electronic apparatus. Though the modules 1314 –1390 are illustrated as being separate modules, some of the modules can be combined into a single module.
[0143] The parser 1390 (or entropy decoder) receives the bitstream 1395 and performs initial parsing according to the syntax defined by a video-coding or image-coding standard. The parsed syntax element includes various header elements, flags, as well as quantized data (or quantized coefficients) 1312. The parser 1390 parses out the various syntax elements by using entropy-coding techniques such as context-adaptive binary arithmetic coding (CABAC) or Huffman encoding.
[0144] The inverse quantization module 1314 de-quantizes the quantized data (or quantized coefficients) 1312 to obtain transform coefficients, and the inverse transform module 1315 performs inverse transform on the transform coefficients 1318 to produce reconstructed residual signal 1319. The reconstructed residual signal 1319 is added with predicted pixel data 1313 from the intra-prediction module 1325 or the motion compensation module 1330 to produce decoded pixel data 1317. The decoded pixels data are filtered by the in-loop filter 1345 and stored in the decoded picture buffer 1350. In some embodiments, the decoded picture buffer 1350 is a storage external to the video decoder 1300. In some embodiments, the decoded picture buffer 1350 is a storage internal to the video decoder 1300.
[0145] The intra-prediction module 1325 receives intra-prediction data from bitstream 1395 and produces the predicted pixel data 1313 from the decoded pixel data 1317 stored in the decoded picture buffer 1350. In some embodiments, the decoded pixel data 1317 is also stored in a line buffer 1327 (or intra prediction buffer) for intra-picture prediction and spatial MV prediction.
[0146] In some embodiments, the content of the decoded picture buffer 1350 is used for display. A display device 1305 either retrieves the content of the decoded picture buffer 1350 for display directly, or retrieves the content of the decoded picture buffer to a display buffer. In some embodiments, the display device receives pixel values from the decoded picture buffer 1350 through a pixel transport.
[0147] The motion compensation module 1330 produces predicted pixel data 1313 from the decoded pixel data 1317 stored in the decoded picture buffer 1350 according to motion compensation MVs (MC MVs) . These motion compensation MVs are decoded by adding the residual motion data received from the bitstream 1395 with predicted MVs received from the MV prediction module 1375.
[0148] The MV prediction module 1375 generates the predicted MVs based on reference MVs that were generated for decoding previous video frames, e.g., the motion compensation MVs that were used to perform motion compensation. The MV prediction module 1375 retrieves the reference MVs of previous video frames from the MV buffer 1365. The video decoder 1300 stores the motion compensation MVs generated for decoding the current video frame in the MV buffer 1365 as reference MVs for producing predicted MVs.
[0149] The in-loop filter 1345 performs filtering or smoothing operations on the decoded pixel data 1317 to reduce the artifacts of coding, particularly at boundaries of pixel blocks. In some embodiments, the filtering or smoothing operations performed by the in-loop filter 1345 include deblock filter (DBF) , sample adaptive offset (SAO) , and / or adaptive loop filter (ALF) . In some embodiments, luma mapping chroma scaling (LMCS) is performed before the loop filters.
[0150] FIG. 14 illustrates portions of the video decoder 1300 that implement combined prediction and reference block based IPM derivation. As illustrated, a reference block locator 1410 receives a block vector from an IBC prediction module 1440. The reference block locator 1410 locates and retrieves information related to a reference block from the reconstructed picture buffer 1350 and / or a block information storage 1405. The “reference block” may refer to a block that is indicated directly by the block vector or motion vector, or a region that is near or adjacent to the block that is directly indicated by the block vector or motion vector.
[0151] The reference block locator 1410 may retrieve samples of the reference block from the decoded picture buffer 1350 that is indicated by the block vector. In some embodiments, the samples of the reference block being provided may be reconstructed samples of the reference block (stored in the decoded picture buffer 1350) . In some embodiments, the samples of the reference block may be predicted samples of the reference block that are generated by a prediction coding tool. The reference block locator 1410 may retrieve information that is stored for the reference block from a block information storage 1405. The information can be intra prediction information related to the reference block (e.g., the intra mode that was used to code the reference block. )
[0152] A IPM derivation module 1420 derive an IPM of a combined prediction for a target coding tool. In some embodiments, the IPM derivation module 1420 performs TIMD (template matching) or DIMD (texture gradient analysis) process on the samples provided by the reference block locator 1410 to derive one or more IPMs 1425 for the combined prediction. In some embodiments, the IPM derivation module 1420 uses the block information (e.g., intra prediction information) of the reference block to derive the one or more IPMs 1425 for the combined prediction. The derived IPM (s) 1425 may be provided directly to the intra prediction module 1325, which uses the derived IPM 1425 and content of the line buffer 1327 to generate an intra prediction predictor 1435 of the current block. The derived IPM (s) 1425 may be added to a candidate IPM list 1430. An IPM may be selected from the candidate IPM list 1430 to be used by the intra prediction module 1325 to generate the intra prediction predictor 1435.
[0153] A combined prediction module 1450 generates a combined predictor 1455 based on the intra prediction predictor 1435 and one or more other predictors 1445. The other predictors 1445 may include an inter-prediction provided by the inter-prediction module 1340, or an IBC prediction from the IBC prediction module 1440, or another intra-prediction predictor of the current block. The combined predictor 1455 may be a weighted sum of the intra prediction predictor 1435 and the one or more other predictors 1445. The other predictor 1445 may be the same as reference block indicated by the block vector 1415 used to generate the derived IPM 1425. The generated combined predictor 1455 may be used as the predicted pixel data 1313.
[0154] FIG. 15 conceptually illustrates a process 1500 for generating a combined prediction using IPMs derived from reference block information. In some embodiments, one or more processing units (e.g., a processor) of a computing device implementing the decoder 1300 performs the process 1500 by executing instructions stored in a computer readable medium. In some embodiments, an electronic apparatus implementing the decoder 1300 performs the process 1500.
[0155] The decoder receives (at block 1510) data to be decoded as a current block of pixels in a current picture. The decoder identifies (at block 1520) a reference block. The reference block may be located in the current picture and indicated by a block vector associated with the current block (so that the reference block provides an IBC prediction of the current block. ) In some embodiments, the reference block may be a region near (adjacent or non-adjacent to) a block of pixels indicated by the block vector.
[0156] The decoder derives (at block 1530) an intra prediction mode based on the identified reference block. In some embodiments, the intra-prediction mode may be derived by performing texture gradient analysis on reconstructed or predicted samples of the reference block or its template and identifying the modes with the highest HoG accumulation (e.g., in a DIMD-like manner. ) In some embodiments, the intra-prediction mode is derived by identifying the modes with the lowest difference value between predicted samples and reconstructed samples of the reference block or its template (e.g., in a TIMD-like manner. )
[0157] In some embodiments, the derived intra prediction mode is derived based on intra prediction mode information stored for the reference block. The derived intra prediction mode may be an intra prediction mode that is used to decode the reference block. In some embodiments, the derived intra prediction mode may be an intra prediction mode that is used to select a transform (primary or secondary) for decoding the reference block.
[0158] The decoder generates (at block 1540) a first predictor of the current block based on the derived intra prediction mode. In some embodiments, the derived intra prediction mode may be directly used to generate a predictor of the current block, or is added to a list of candidate intra prediction modes and the first predictor is generated based on an intra prediction mode that is selected from the list of candidate intra prediction modes.
[0159] The decoder generates (at block 1550) a combined prediction of the current block based on the first predictor and a second predictor. The combined prediction may be a weighted sum of two or more predictors. The first predictor is one of one or more hypotheses of the intra predictions of the combined prediction. The second predictor may be an inter-prediction predictor or an IBC predictor that is generated based on the reference block that is indicated by the block vector. The decoder reconstructs (at block 1560) the current block by using the combined prediction with inverse-transformed residuals. The decoder may then provide the reconstructed current block for display or output as part of the reconstructed current picture. VIII. Example Electronic System
[0160] Many of the above-described features and applications are implemented as software processes that are specified as a set of instructions recorded on a computer readable storage medium (also referred to as computer readable medium) . When these instructions are executed by one or more computational or processing unit (s) (e.g., one or more processors, cores of processors, or other processing units) , they cause the processing unit (s) to perform the actions indicated in the instructions. Examples of computer readable media include, but are not limited to, CD-ROMs, flash drives, random-access memory (RAM) chips, hard drives, erasable programmable read only memories (EPROMs) , electrically erasable programmable read-only memories (EEPROMs) , etc. The computer readable media does not include carrier waves and electronic signals passing wirelessly or over wired connections.
[0161] In this specification, the term “software” is meant to include firmware residing in read-only memory or applications stored in magnetic storage which can be read into memory for processing by a processor. Also, in some embodiments, multiple software inventions can be implemented as sub-parts of a larger program while remaining distinct software inventions. In some embodiments, multiple software inventions can also be implemented as separate programs. Finally, any combination of separate programs that together implement a software invention described here is within the scope of the present disclosure. In some embodiments, the software programs, when installed to operate on one or more electronic systems, define one or more specific machine implementations that execute and perform the operations of the software programs.
[0162] FIG. 16 conceptually illustrates an electronic system 1600 with which some embodiments of the present disclosure are implemented. The electronic system 1600 may be a computer (e.g., a desktop computer, personal computer, tablet computer, etc. ) , phone, PDA, or any other sort of electronic device. Such an electronic system includes various types of computer readable media and interfaces for various other types of computer readable media. Electronic system 1600 includes a bus 1605, processing unit (s) 1610, a graphics-processing unit (GPU) 1615, a system memory 1620, a network 1625, a read-only memory 1630, a permanent storage device 1635, input devices 1640, and output devices 1645.
[0163] The bus 1605 collectively represents all system, peripheral, and chipset buses that communicatively connect the numerous internal devices of the electronic system 1600. For instance, the bus 1605 communicatively connects the processing unit (s) 1610 with the GPU 1615, the read-only memory 1630, the system memory 1620, and the permanent storage device 1635.
[0164] From these various memory units, the processing unit (s) 1610 retrieves instructions to execute and data to process in order to execute the processes of the present disclosure. The processing unit (s) may be a single processor or a multi-core processor in different embodiments. Some instructions are passed to and executed by the GPU 1615. The GPU 1615 can offload various computations or complement the image processing provided by the processing unit (s) 1610.
[0165] The read-only-memory (ROM) 1630 stores static data and instructions that are used by the processing unit (s) 1610 and other modules of the electronic system. The permanent storage device 1635, on the other hand, is a read-and-write memory device. This device is a non-volatile memory unit that stores instructions and data even when the electronic system 1600 is off. Some embodiments of the present disclosure use a mass-storage device (such as a magnetic or optical disk and its corresponding disk drive) as the permanent storage device 1635.
[0166] Other embodiments use a removable storage device (such as a floppy disk, flash memory device, etc., and its corresponding disk drive) as the permanent storage device. Like the permanent storage device 1635, the system memory 1620 is a read-and-write memory device. However, unlike storage device 1635, the system memory 1620 is a volatile read-and-write memory, such a random access memory. The system memory 1620 stores some of the instructions and data that the processor uses at runtime. In some embodiments, processes in accordance with the present disclosure are stored in the system memory 1620, the permanent storage device 1635, and / or the read-only memory 1630. For example, the various memory units include instructions for processing multimedia clips in accordance with some embodiments. From these various memory units, the processing unit (s) 1610 retrieves instructions to execute and data to process in order to execute the processes of some embodiments.
[0167] The bus 1605 also connects to the input and output devices 1640 and 1645. The input devices 1640 enable the user to communicate information and select commands to the electronic system. The input devices 1640 include alphanumeric keyboards and pointing devices (also called “cursor control devices” ) , cameras (e.g., webcams) , microphones or similar devices for receiving voice commands, etc. The output devices 1645 display images generated by the electronic system or otherwise output data. The output devices 1645 include printers and display devices, such as cathode ray tubes (CRT) or liquid crystal displays (LCD) , as well as speakers or similar audio output devices. Some embodiments include devices such as a touchscreen that function as both input and output devices.
[0168] Finally, as shown in FIG. 16, bus 1605 also couples electronic system 1600 to a network 1625 through a network adapter (not shown) . In this manner, the computer can be a part of a network of computers (such as a local area network ( “LAN” ) , a wide area network ( “WAN” ) , or an Intranet, or a network of networks, such as the Internet. Any or all components of electronic system 1600 may be used in conjunction with the present disclosure.
[0169] Some embodiments include electronic components, such as microprocessors, storage and memory that store computer program instructions in a machine-readable or computer-readable medium (alternatively referred to as computer-readable storage media, machine-readable media, or machine-readable storage media) . Some examples of such computer-readable media include RAM, ROM, read-only compact discs (CD-ROM) , recordable compact discs (CD-R) , rewritable compact discs (CD-RW) , read-only digital versatile discs (e.g., DVD-ROM, dual-layer DVD-ROM) , a variety of recordable / rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc. ) , flash memory (e.g., SD cards, mini-SD cards, micro-SD cards, etc. ) , magnetic and / or solid state hard drives, read-only and recordable discs, ultra-density optical discs, any other optical or magnetic media, and floppy disks. The computer-readable media may store a computer program that is executable by at least one processing unit and includes sets of instructions for performing various operations. Examples of computer programs or computer code include machine code, such as is produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter.
[0170] While the above discussion primarily refers to microprocessor or multi-core processors that execute software, many of the above-described features and applications are performed by one or more integrated circuits, such as application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) . In some embodiments, such integrated circuits execute instructions that are stored on the circuit itself. In addition, some embodiments execute software stored in programmable logic devices (PLDs) , ROM, or RAM devices.
[0171] As used in this specification and any claims of this application, the terms “computer” , “server” , “processor” , and “memory” all refer to electronic or other technological devices. These terms exclude people or groups of people. For the purposes of the specification, the terms display or displaying means displaying on an electronic device. As used in this specification and any claims of this application, the terms “computer readable medium, ” “computer readable media, ” and “machine readable medium” are entirely restricted to tangible, physical objects that store information in a form that is readable by a computer. These terms exclude any wireless signals, wired download signals, and any other ephemeral signals.
[0172] While the present disclosure has been described with reference to numerous specific details, one of ordinary skill in the art will recognize that the present disclosure can be embodied in other specific forms without departing from the spirit of the present disclosure. In addition, a number of the figures (including FIG. 12 and FIG. 15) conceptually illustrate processes. The specific operations of these processes may not be performed in the exact order shown and described. The specific operations may not be performed in one continuous series of operations, and different specific operations may be performed in different embodiments. Furthermore, the process could be implemented using several sub-processes, or as part of a larger macro process. Thus, one of ordinary skill in the art would understand that the present disclosure is not to be limited by the foregoing illustrative details, but rather is to be defined by the appended claims. Additional Notes
[0173] The herein-described subject matter sometimes illustrates different components contained within, or connected with, different other components. It is to be understood that such depicted architectures are merely examples, and that in fact many other architectures can be implemented which achieve the same functionality. In a conceptual sense, any arrangement of components to achieve the same functionality is effectively "associated" such that the desired functionality is achieved. Hence, any two components herein combined to achieve a particular functionality can be seen as "associated with" each other such that the desired functionality is achieved, irrespective of architectures or intermediate components. Likewise, any two components so associated can also be viewed as being "operably connected" , or "operably coupled" , to each other to achieve the desired functionality, and any two components capable of being so associated can also be viewed as being "operably couplable" , to each other to achieve the desired functionality. Specific examples of operably couplable include but are not limited to physically mateable and / or physically interacting components and / or wirelessly interactable and / or wirelessly interacting components and / or logically interacting and / or logically interactable components.
[0174] Further, with respect to the use of substantially any plural and / or singular terms herein, those having skill in the art can translate from the plural to the singular and / or from the singular to the plural as is appropriate to the context and / or application. The various singular / plural permutations may be expressly set forth herein for sake of clarity.
[0175] Moreover, it will be understood by those skilled in the art that, in general, terms used herein, and especially in the appended claims, e.g., bodies of the appended claims, are generally intended as “open” terms, e.g., the term “including” should be interpreted as “including but not limited to, ” the term “having” should be interpreted as “having at least, ” the term “includes” should be interpreted as “includes but is not limited to, ” etc. It will be further understood by those within the art that if a specific number of an introduced claim recitation is intended, such an intent will be explicitly recited in the claim, and in the absence of such recitation no such intent is present. For example, as an aid to understanding, the following appended claims may contain usage of the introductory phrases "at least one" and "one or more" to introduce claim recitations. However, the use of such phrases should not be construed to imply that the introduction of a claim recitation by the indefinite articles "a" or "an" limits any particular claim containing such introduced claim recitation to implementations containing only one such recitation, even when the same claim includes the introductory phrases "one or more" or "at least one" and indefinite articles such as "a" or "an, " e.g., “a” and / or “an” should be interpreted to mean “at least one” or “one or more; ” the same holds true for the use of definite articles used to introduce claim recitations. In addition, even if a specific number of an introduced claim recitation is explicitly recited, those skilled in the art will recognize that such recitation should be interpreted to mean at least the recited number, e.g., the bare recitation of "two recitations, " without other modifiers, means at least two recitations, or two or more recitations. Furthermore, in those instances where a convention analogous to “at least one of A, B, and C, etc. ” is used, in general such a construction is intended in the sense one having skill in the art would understand the convention, e.g., “a system having at least one of A, B, and C” would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and / or A, B, and C together, etc. In those instances where a convention analogous to “at least one of A, B, or C, etc. ” is used, in general such a construction is intended in the sense one having skill in the art would understand the convention, e.g., “a system having at least one of A, B, or C” would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and / or A, B, and C together, etc. It will be further understood by those within the art that virtually any disjunctive word and / or phrase presenting two or more alternative terms, whether in the description, claims, or drawings, should be understood to contemplate the possibilities of including one of the terms, either of the terms, or both terms. For example, the phrase “A or B” will be understood to include the possibilities of “A” or “B” or “A and B. ”
[0176] From the foregoing, it will be appreciated that various implementations of the present disclosure have been described herein for purposes of illustration, and that various modifications may be made without departing from the scope and spirit of the present disclosure. Accordingly, the various implementations disclosed herein are not intended to be limiting, with the true scope and spirit being indicated by the following claims.
Claims
1.A video coding method comprising:receiving data to be encoded or decoded as a current block of pixels of a current picture of a video;identifying a reference block;deriving an intra prediction mode based on the identified reference block;generating a first predictor of the current block based on the derived intra prediction mode;generating a combined prediction of the current block based on the first predictor and a second predictor; andencoding or decoding the current block by using the combined prediction.2.The video coding method of claim 1, wherein the combined prediction is a weighted sum of two or more predictors.3.The video coding method of claim 1, wherein the first predictor is one of one or more hypotheses of the intra predictions of the combined prediction.4.The video coding method of claim 1, wherein the second predictor is generated based on the reference block.5.The video coding method of claim 1, wherein the reference block is located in the current picture and indicated by a block vector associated with the current block.6.The video coding method of claim 1, wherein the reference block is a region near a block of pixels indicated by a block vector.7.The video coding method of claim 1, wherein the intra-prediction mode is derived by performing texture gradient analysis on samples of the reference block or its template and identifying intra modes with the highest histogram accumulation.8.The video coding method of claim 1, wherein the intra-prediction mode is derived by identifying intra modes with the lowest difference value between predicted samples and reconstructed samples of the reference block or its template.9.The video coding method of claim 1, wherein the intra-prediction mode is derived by performing texture gradient analysis on predicted samples of the reference block.10.The video coding method of claim 1, wherein the derived intra prediction mode is derived based on intra prediction mode information stored for the reference block.11.The video coding method of claim 1, wherein the derived intra prediction mode is an intra prediction mode that is used to encode or decode the reference block.12.The video coding method of claim 1, wherein the derived intra prediction mode is an intra prediction mode that is used to select a transform for encoding or decoding the reference block.13.The video coding method of claim 1, wherein the derived intra prediction mode is added to a list of candidate intra prediction modes and the first predictor is generated based on an intra prediction mode selected from the list of candidate intra prediction modes.14.An electronic apparatus comprising:a video coder circuit configured to perform operations comprising:receiving data to be encoded or decoded as a current block of pixels of a current picture of a video;identifying a reference block;deriving an intra prediction mode based on the identified reference block;generating a first predictor of the current block based on the derived intra prediction mode;generating a combined prediction of the current block based on the first predictor and a second predictor; andencoding or decoding the current block by using the combined prediction.15.A video decoding method comprising:receiving data to be decoded as a current block of pixels of a current picture of a video;identifying a reference block;deriving an intra prediction mode based on the identified reference block;generating a first predictor of the current block based on the derived intra prediction mode;generating a combined prediction of the current block based on the first predictor and a second predictor; andreconstructing the current block by using the combined prediction.16.A video encoding method comprising:receiving data to be encoded as a current block of pixels of a current picture of a video;identifying a reference block;deriving an intra prediction mode based on the identified reference block;generating a first predictor of the current block based on the derived intra prediction mode;generating a combined prediction of the current block based on the first predictor and a second predictor; andencoding the current block by using the combined prediction.
Citation Information
Patent Citations
Intra prediction mode information by propagating IBC blocks using block vectors
CN116134813A
Video encoding / decoding method and apparatus
CN117917072A
Region-based implicit intra mode derivation and prediction
WO2023198105A1
Video signal processing method and device therefor
WO2024058637A1
Methods and apparatus of intra block copy with multiple hypothesis prediction for video coding
WO2024213104A1