Methods and apparatus of intra merge mode for mixed modes in video coding
The method improves video coding by deriving intra merge candidates from multiple modes, enhancing flexibility and efficiency in intra prediction, thereby improving video coding performance.
Patent Information
- Application Number
- PCT/CN2025/074255
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-01-26
- Filing Date
- 2025-01-23
- Publication Date
- 2025-07-31
AI Technical Summary
Existing video coding systems face inefficiencies in deriving intra prediction modes, particularly in handling various types of video sources including 3D signals, due to limited flexibility and efficiency in inheritance and prediction methods.
A method and apparatus for video coding that involves determining multiple intra merge candidates by inheriting information from different modes such as DIMD, TIMD, MRL, or EIP, and selecting a target candidate for generating predictions using inheritance information, allowing for more flexible and efficient intra prediction.
Enhances the flexibility and efficiency of intra prediction by allowing for more diverse inheritance flows and improved prediction accuracy, leading to better video coding performance.
Smart Images

Figure CN2025074255_31072025_PF_FP_ABST
Abstract
Description
METHODS AND APPARATUS OF INTRA MERGE MODE FOR MIXED MODES IN VIDEO CODINGCROSS REFERENCE TO RELATED APPLICATIONS
[0001] The present invention is a non-Provisional Application of and claims priority to U.S. Provisional Patent Application No. 63 / 625,325, filed on January 26, 2024. The U.S. Provisional Patent Application is hereby incorporated by reference in its entirety.FIELD OF THE INVENTION
[0002] The present invention relates to video coding system. In particular, the present invention relates to derivation and signalling of intra merge candidates in a video coding system. BACKGROUND AND RELATED ART
[0003] Versatile video coding (VVC) is the latest international video coding standard developed by the Joint Video Experts Team (JVET) of the ITU-T Video Coding Experts Group (VCEG) and the ISO / IEC Moving Picture Experts Group (MPEG) . The standard has been published as an ISO standard: ISO / IEC 23090-3: 2021, Information technology -Coded representation of immersive media -Part 3: Versatile video coding, published Feb. 2021. VVC is developed based on its predecessor HEVC (High Efficiency Video Coding) by adding more coding tools to improve coding efficiency and also to handle various types of video sources including 3-dimensional (3D) video signals.
[0004] Fig. 1A illustrates an exemplary adaptive Inter / Intra video encoding system incorporating loop processing. For Intra Prediction 110, the prediction data is derived based on previously coded video data in the current picture. For Inter Prediction 112, Motion Estimation (ME) is performed at the encoder side and Motion Compensation (MC) is performed based on the result of ME to provide prediction data derived from other picture (s) and motion data. Switch 114 selects Intra Prediction 110 or Inter Prediction 112 and the selected prediction data is supplied to Adder 116 to form prediction errors, also called residues. The prediction error is then processed by Transform (T) 118 followed by Quantization (Q) 120. The transformed and quantized residues are then coded by Entropy Encoder 122 to be included in a video bitstream corresponding to the compressed video data. The bitstream associated with the transform coefficients is then packed with side information such as motion and coding modes associated with Intra prediction and Inter prediction, and other information such as parameters associated with loop filters applied to underlying image area. The side information associated with Intra Prediction 110, Inter prediction 112 and in-loop filter 130, is provided to Entropy Encoder 122 as shown in Fig. 1A. When an Inter-prediction mode is used, a reference picture or pictures have to be reconstructed at the encoder end as well. Consequently, the transformed and quantized residues are processed by Inverse Quantization (IQ) 124 and Inverse Transformation (IT) 126 to recover the residues. The residues are then added back to prediction data 136 at Reconstruction (REC) 128 to reconstruct video data. The reconstructed video data may be stored in Reference Picture Buffer 134 and used for prediction of other frames.
[0005] As shown in Fig. 1A, incoming video data undergoes a series of processing in the encoding system. The reconstructed video data from REC 128 may be subject to various impairments due to a series of processing. Accordingly, in-loop filter 130 is often applied to the reconstructed video data before the reconstructed video data are stored in the Reference Picture Buffer 134 in order to improve video quality. For example, deblocking filter (DF) , Sample Adaptive Offset (SAO) and Adaptive Loop Filter (ALF) may be used. The loop filter information may need to be incorporated in the bitstream so that a decoder can properly recover the required information. Therefore, loop filter information is also provided to Entropy Encoder 122 for incorporation into the bitstream. In Fig. 1A, Loop filter 130 is applied to the reconstructed video before the reconstructed samples are stored in the reference picture buffer 134. The system in Fig. 1A is intended to illustrate an exemplary structure of a typical video encoder. It may correspond to the High Efficiency Video Coding (HEVC) system, VP8, VP9, H. 264 or VVC.
[0006] The decoder, as shown in Fig. 1B, can use similar or portion of the same functional blocks as the encoder except for Transform 118 and Quantization 120 since the decoder only needs Inverse Quantization 124 and Inverse Transform 126. Instead of Entropy Encoder 122, the decoder uses an Entropy Decoder 140 to decode the video bitstream into quantized transform coefficients and needed coding information (e.g. ILPF information, Intra prediction information and Inter prediction information) . The Intra prediction 150 at the decoder side does not need to perform the mode search. Instead, the decoder only needs to generate Intra prediction according to Intra prediction information received from the Entropy Decoder 140. Furthermore, for Inter prediction, the decoder only needs to perform motion compensation (MC 152) according to Inter prediction information received from the Entropy Decoder 140 without the need for motion estimation.
[0007] I. RELATED ART
[0008] I. 1 Intra Mode Coding with 67 Intra Prediction Modes
[0009] In VVC, several conventional angular intra prediction modes are adaptively replaced with wide-angle intra prediction modes for the non-square blocks.
[0010] I. 2 Intra Mode Coding
[0011] The most probable mode (MPM) list is generated by considering two available neighbouring intra modes.
[0012] I. 3 Decoder-side Intra Mode Derivation (DIMD)
[0013] When DIMD is applied, two intra modes are derived from the reconstructed neighbour samples (template) , and those two predictors are combined with the planar mode predictor with the weights derived from the gradients.
[0014] A texture gradient analysis is performed at both encoder and decoder sides. This process starts with an empty Histogram of Gradient (HoG) with 65 entries, corresponding to the 65 angular modes. Amplitudes of these entries are determined during the texture gradient analysis.
[0015] Figs. 2A-C show an example of HoG, calculated after applying the above operations on all pixel positions in the template. Fig. 2A illustrates an example of selected template 220 for a current block 210. Template 220 comprises T lines above the current block and T columns to the left of the current block. For intra prediction of the current block, the area 230 at the above and left of the current block corresponds to a reconstructed area and the area 240 below and at the right of the block corresponds to an unavailable area. Fig. 2B illustrates an example for T=3 and the HoGs are calculated for pixels 260 in the middle line and pixels 262 in the middle column. For example, for pixel 252, a 3x3 window 250 is used. Fig. 2C illustrates an example of the amplitudes (ampl) calculated for the angular intra prediction modes.
[0016] I. 4 Template-based Intra Mode Derivation (TIMD)
[0017] Template-based intra mode derivation (TIMD) mode implicitly derives the intra prediction mode of a CU by a neighbouring template at both the encoder and decoder, instead of signalling intra prediction mode bits to the decoder. The prediction samples of the template are generated using the reference samples of the template for each candidate mode. A cost is calculated as the SATD between the prediction and the reconstruction samples of the template. First two intra prediction modes with the minimum SATD are selected as the TIMD modes. These two TIMD modes are fused with weights after applying PDPC process, and such weighted intra prediction is used to code the current CU.
[0018] I. 5 Extrapolation Filter-Based Intra Prediction (EIP) Mode
[0019] The EIP mode is disclosed in JVET-AF0080. The EIP mode is briefly reviewed as follows.
[0020] I. 5.1 Obtaining the EIP Filter
[0021] Three EIP filter shapes are proposed in this method.
[0022] I. 5.1.1 Derivation of EIP Coefficients (EIP derived modes)
[0023] The decoder decodes the relevant syntax elements to determine the selected type of reconstructed area and the filter shape for the current block. The selected filter moves in the selected reconstructed area either horizontally or vertically with a one-pixel step to construct the auto-correlation matrix and the cross-correlation vector. The calculation of coefficients from the auto-correlation matrix and the cross-correlation vector is the same as that in convolutional cross-component model (CCCM) .
[0024] I. 5.1.2 Inheritance of the EIP Filters (EIP merge modes)
[0025] The filter shape and the filter coefficients can be inherited from previous decoded blocks with EIP or EIP merge mode. The decoder decodes an EIP merge flag to decide whether the proposed merge mode is used when the current block uses the EIP mode. A merge index is further decoded when the EIP merge flag is true. The EIP merge list includes spatial adjacent and non-adjacent candidates, temporal candidates, and history candidates.
[0026] I. 5.2 Prediction of the Current Block
[0027] The EIP mode generates prediction values for the current block from the top-left position to the bottom-right position by a diagonal prediction order.
[0028] I. 6 Template-based Multiple Reference Line Intra Prediction
[0029] Template-based multiple reference line intra prediction (TMRL) mode combines reference line and prediction mode together and uses a template matching method to construct a list of candidate combinations. An index to the candidate combination list is coded to indicate which reference line and prediction mode is used in coding the current block.
[0030] Since the extended reference line starts from reference line 1, the area covered by reference line 0 is used for template matching. The SAD costs (i.e., TMRL costs) over the template area as shown in Fig. 3 are calculated between the predictions (generated by each combination, for example, each of 50 combinations) and the reconstructions. The combinations with the least SAD costs, for example, 20 combinations with the least SAD costs, are selected in an ascending order to form the TMRL candidate list.
[0031] I. 7 Inter Prediction
[0032] In JVET-T2002 document, the algorithm for Versatile Video Coding (VVC) and Test Model 11 (VTM 11) are described. The inter prediction for VVC is briefly described as follows.
[0033] I. 7.1 Spatial Candidate Derivation
[0034] Spatial merge candidates are selected among candidates located in the positions depicted in Fig. 4.
[0035] I. 7.2 Non-adjacent Spatial Candidate
[0036] The pattern of spatial non-adjacent merge candidates is shown in Fig. 5. The distances between non-adjacent spatial candidates and current coding block are based on the width and height of current coding block. The line buffer restriction is not applied.
[0037] I. 8 Intra-prediction Using Merged Histogram of Gradients
[0038] In JVET-AG0078, it proposes to add a new intra prediction mode, referred to as Merged Intra Mode Derivation (MIMD) , based on the computation of a Merged Histogram of Gradients (MHoG) . Similar to DIMD, up to five MIMD modes are derived from the MHoG and are then blended together. The derivation of the modes and blending weights follows the same process to derive DIMD modes and blending weights from the HoG. But differently than DIMD, the MHoG is not computed directly analysing the template samples, but rather is computed based on information extracted from neighbouring blocks. More details can be found in JVET-AG0078.
[0039] In particular, a number of N neighbouring blocks is considered. A neighbouring block is considered if it is encoded with at least one directional intra-prediction mode. Hi (m) refers to the amplitude of directional mode m in the HoG, where m can take values from 0 to M where M is the maximum number of intra-prediction modes. A normalisation process can be used when considering Hi.
[0040] Then, the MHoG can be computed using all the HoGs extracted from available neighbouring blocks as:
[0041] Finally, the MHoG is used to compute MIMD modes and weights. The directional modes and their weights corresponding to the five highest amplitudes in the MHoG are selected as directional modes and weights for MIMD.
[0042] I. 9 Occurrence-Based Intra Coding (OBIC)
[0043] In JVET-AG0141, the Occurrence-based intra coding (OBIC) method is disclosed which derives the intra prediction modes of the current block based on the sample-wise occurrence of the intra modes in the spatial neighbourhood of the block. For this, adjacent and non-adjacent spatial neighbouring blocks are checked and the intra prediction modes of the blocks are collected into an occurrence histogram. Instead of Histogram of Gradient (HoG) as in DIMD, the OBIC introduces the Histogram of oCcurrence (HoC) , which consists of the intra modes and their sample-wise occurrences. The occurrence values are calculated based on the number of samples that are coded in a certain intra prediction mode in that neighbourhood. For example, if a uiWidth × uiHeight block is coded with an IPM mode, the occurrence of the mode in that particular block is calculated as: HoC [IPM] += uiWidth *uiHeight; where uiWidth and uiHeight are the width and height of a spatial neighbouring block.
[0044] The occurrences of the existing modes from the spatial neighbourhood blocks are accumulated into the histogram.
[0045] Up to 5 angular modes with the highest occurrence along with the planar mode are selected from the HoC and used for final prediction by blending the prediction of the selected modes.
[0046] In the present invention, methods and apparatus to develop intra merge candidates are disclosed. BRIEF SUMMARY OF THE INVENTION
[0047] A method and apparatus for video coding are disclosed. According to this method, input data associated with a current block is received, wherein the input data comprises pixel data to be encoded at an encoder side or data associated with the current block to be decoded at a decoder side. Two or more intra merge candidates are determined, wherein inheritance information of said two or more intra merge candidates is from at least two different modes. A target candidate is selected from said two or more intra merge candidates. Target prediction for the current block in a target mode associated with the target candidate is generated by using target inheritance information of the target candidate. The current block is encoded or decoded by using the target prediction.
[0048] In one embodiment, said at least two different modes comprise at least two modes from a group comprising DIMD (Decoder-side Intra Mode Derivation) , TIMD (Template-based Intra Mode Derivation) , MRL (Multiple Reference Lines) , EIP (Extrapolation filter-based Intra Prediction) , or any combination thereof.
[0049] In one embodiment, when the target mode corresponds to the DIMD, setting for the target inheritance information of the target candidate comprises one or more histogram (bar) values, intra prediction modes, weighting information, whether to apply fusion or not, or any combination thereof.
[0050] In one embodiment, when the target mode corresponds to the TIMD, setting for the target inheritance information of the target candidate comprises one or more template cost values, intra prediction modes, weighting information, whether to apply fusion or not, reference line information, wide-angle conditions, or any combination thereof.
[0051] In one embodiment, when the target mode corresponds to the MRL, setting for the target inheritance information of the target candidate comprises one or more reference lines jointly with intra prediction modes.
[0052] In one embodiment, setting for the target candidate comprises a target coding mode that the target candidate belongs to and corresponding information of the target coding mode. In one embodiment, the target coding mode corresponds to DIMD-related mode, TIMD-related mode, MRL-related mode, or EIP-related mode.
[0053] In one embodiment, the inheritance information of said two or more intra merge candidates is obtained based on one or more spatial adjacent candidates, one or more non-adjacent candidates, one or more history candidates, one or more temporal candidates, one or more default candidates, or any combination thereof. In one embodiment, the target candidate is selected explicitly according to one or more indexes signalled or selected implicitly. In one embodiment, said one or more indexes indicate the target candidate selected from a reordered candidate list. In one embodiment, the reordered candidate list is reordered according to cost calculation using a template matching process measuring distortion between prediction samples on a template and reconstruction samples on the template. In one embodiment, a member candidate with a smaller cost is placed in a more forward position in the reordered candidate list.
[0054] In one embodiment, decision regarding whether to derive said two or more intra merge candidates, to select the target candidate from said two or more intra merge candidates, to generate the target prediction and to encode or decode the current block by using the target prediction depends on syntax of the current block or is determined implicitly.
[0055] In one embodiment, a flag to indicate whether to derive said two or more intra merge candidates, to select the target candidate from said two or more intra merge candidates, to generate the target prediction and to encode or decode the current block by using the target prediction is signalled right after determining the current block to be intra coded or signalled before all or any subset of sub-modes of general intra, and where the sub-modes of general intra include all or any subset of said at least two different modes.BRIEF DESCRIPTION OF THE DRAWINGS
[0056] Fig. 1A illustrates an exemplary adaptive Inter / Intra video coding system incorporating loop processing.
[0057] Fig. 1B illustrates a corresponding decoder for the encoder in Fig. 1A.
[0058] Fig. 2A illustrates an example of selected template for a current block, where the template comprises T lines above the current block and T columns to the left of the current block.
[0059] Fig. 2B illustrates an example for T=3 and the HoGs (Histogram of Gradients) are calculated for pixels in the middle line and pixels in the middle column.
[0060] Fig. 2C illustrates an example of the amplitudes (ampl) for the angular intra prediction modes.
[0061] Fig. 3 illustrates the template area for template-based multiple reference line intra prediction.
[0062] Fig. 4 illustrates positions of spatial merge candidates.
[0063] Fig. 5 illustrates spatial neighbouring blocks used to derive the spatial merge candidates.
[0064] Fig. 6 illustrates a flowchart of an exemplary video coding system that derives intra merge candidates according to an embodiment of the present invention.DETAILED DESCRIPTION OF THE INVENTION
[0065] It will be readily understood that the components of the present invention, as generally described and illustrated in the figures herein, may be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of the embodiments of the systems and methods of the present invention, as represented in the figures, is not intended to limit the scope of the invention, as claimed, but is merely representative of selected embodiments of the invention. References throughout this specification to “one embodiment, ” “an embodiment, ” or similar language mean that a particular feature, structure, or characteristic described in connection with the embodiment may be included in at least one embodiment of the present invention. Thus, appearances of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment.
[0066] Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. One skilled in the relevant art will recognize, however, that the invention can be practiced without one or more of the specific details, or with other methods, components, etc. In other instances, well-known structures, or operations are not shown or described in detail to avoid obscuring aspects of the invention. The illustrated embodiments of the invention will be best understood by reference to the drawings, wherein like parts are designated by like numerals throughout. The following description is intended only by way of example, and simply illustrates certain selected embodiments of apparatus and methods that are consistent with the invention as claimed herein.
[0067] II. PROPOSED METHOD
[0068] In this invention, an intra merge scheme is proposed to improve intra prediction using a merge scheme. The concept of the merge scheme is to inherit (or reference) the information from previous coded blocks and use the inheritance information to predict the current block. For an intra block, the traditional intra MPM can only inherit the intra prediction mode signalled in the previous coded block, such as the intra prediction mode with the mode index referring to angular prediction modes, DC, or planar from the above neighbouring block and / or the left neighbouring block. The proposed intra merge scheme brings more flexible inheritance flows and / or more efficient inheritance information in the following aspects.
[0069] In the first aspect, in the section entitled “Inheritance Information Setting” , with the proposed intra merge scheme, the inheritance information can be any mode information, any sample information, any block information, any model information, and / or any information associated with prediction generation.
[0070] In the second aspect, in the section entitled “Inheritance Block Setting” , with the proposed intra merge scheme, the current block can find the previous coded blocks containing the inheritance information through several proposed merge methods.
[0071] In the third aspect, in the section entitled “Target Mode Setting and Shortcut Syntax Setting” , for some embodiments, the proposed merge scheme is to obtain the information associated with prediction generation of the current block coded by mixed-mode merge (e.g. the proposed intra merge scheme with the target mode from mixed modes) .
[0072] When generating the prediction of the current block coded by the target mode, one or more inheritance blocks are selected from a merge candidate list or selected among several merge candidates. Then, the inheritance information from the inheritance blocks is used for the target mode to generate prediction. In some embodiments, the inheritance information of each merging candidate belongs to the same target mode. For example, the inheritance information of each merge candidate is related to DIMD and the current block is predicted following DIMD process. In some embodiments, the inheritance information of each merging candidate can belong to or be from different target modes, that is, mixed modes. The different target modes can refer to the modes which may be enabled or disabled according to different implicit indication or different explicit syntax elements. The different target modes can refer to the modes which may use different ways to obtain prediction information. For example, the inheritance information of one merge candidate is related to DIMD, the inheritance information from another merge candidate is related to TIMD, the inheritance information from another merge candidate is related to MRL, or the inheritance information from another merge candidate is related to EIP. Then, different coding modes may not have multiple merge lists with each list containing single-type coding mode information. With these embodiments, one merge list can contain the merge candidates from multiple-type candidates. The current block is predicted following DIMD or TIMD or MRL or EIP depending on which merge candidate is used.
[0073] In some embodiments, several methods are proposed to define the syntax framework of the proposed intra merge scheme. Following the syntax framework, the intra merge scheme can be applied to the current block and then the prediction of the current block is generated according to the inheritance information.
[0074] II. 1 Inheritance Information Setting
[0075] Inheritance information setting defines the inheritance information for generating prediction of the current block using a target mode.
[0076] II. 1.1 Inheritance Information Setting Associated with DIMD
[0077] When the intra merge scheme is used for DIMD, that is, DIMD merge is used for the current block, the inheritance information includes the following list items a, b, c, d, or any combination thereof. a) one or more histogram (bar) values for the available DIMD intra prediction modes (e.g. DC, planar, and / or directional prediction modes) b) intra prediction modes, for example, the N intra prediction modes (with the highest N histogram bars) suggested by the histogram values where N is a positive integer c) weighting information, for example, DIMD weighting information, and / or fusion or not d) reference line information and / or wide-angle conditions
[0078] II. 1.2 Inheritance Information Setting Associated with TIMD
[0079] When the intra merge scheme is used for TIMD, that is, TIMD merge is used for the current block, the inheritance information includes the following list items a, b, c, d, or any combination thereof. a) one or more template cost values, for example, TIMD cost values for the available TIMD intra prediction modes (e.g. DC, planar, and / or directional prediction modes) b) intra prediction modes, for example, the N intra prediction modes (with the smallest N TIMD costs) suggested by the TIMD costs where N is a positive integer c) weighting information, for example, TIMD weighting information, and / or fusion or not d) reference line information and / or wide-angle conditions
[0080] II. 1.3 Inheritance Information Setting Associated with MRL
[0081] When the intra merge scheme is used for MRL, that is, MRL merge is used for the current block, the inheritance information includes the following list items a, b, c, d, or any combination thereof. a) one or more reference lines jointly with intra prediction modes (e.g. DC, planar, and / or directional prediction modes) b) intra prediction modes, for example, the N intra prediction modes (with the smallest N template costs such as TIMD costs) suggested by the TIMD costs where N is a positive integer c) weighting information and / or fusion or not d) reference line information and / or wide-angle conditions
[0082] II. 1.4 Inheritance Information Setting Associated with Mixed Modes
[0083] When the intra merge scheme is used for mixed modes, that is, mixed-mode merge is used for the current block, the inheritance information includes all or any subset of the following bullets. ● Bullet 1: list items a, b, c, d, or any combination thereof in the section II. 1.1 ● Bullet 2: list items a, b, c, d, or any combination thereof in the section II. 1.2 ● Bullet 3: list items a, b, c, d, or any combination thereof in the section II. 1.3 ● Bullet 4: coding mode (for example, DIMD-related mode or not, TIMD-related mode or not, MRL-related mode or not, SGPM-related mode or not, ISP-related mode or not, intraTMP-related mode or not, MPM-related mode or not, MIP-related mode or not, EIP-related mode or not, and / or any mode related to a pre-defined intra mode) and / or corresponding information of the coding mode.
[0084] In one embodiment, for Bullet 1 and / or Bullet 2 and / or Bullet 3, the embodiments in the section II. 1.1, II. 1.2, II. 1.3 or any combination thereof can be used here to obtain the inheritance information.
[0085] In another embodiment, the Bullet 4 is included in the inheritance information and / or which coding mode in the Bullet 4 decides the corresponding information (e.g. from Bullet 1 to Bullet 3) to be further included in the mixed-mode inheritance information. For example, the coding mode in the Bullet 4 is MRL-related mode and only the corresponding information from the Bullet 3 is further included in the mixed-mode inheritance information.
[0086] In another embodiment, the coding mode (e.g. EIP) in Bullet 4 is from a previous coded block specified in the section entitled “Inheritance Block Setting” . The previous coded block generates the corresponding EIP inheritance information (e.g. filter shape and / or filter coefficients) and / or stores the mixed-mode inheritance information {coding mode and / or the corresponding information} . The stored mixed-mode inheritance information of the previous coded block can be referenced by subsequent coding blocks, for example, the current block. For example, for each block containing the mixed-mode information, the mixed-mode information is stored and / or referenced by the subsequent coding blocks. For example, for each pre-defined unit containing the mixed-mode information (which may refer to any pre-defined region or kxk grids in intra coded blocks where k can be 2, 4, 8, 16, or any pre-defined positive integer) , the mixed-mode information is stored and / or referenced by the subsequent coding blocks.
[0087] In another embodiment, the coding mode, for example, SGPM, called spatial geometric partitioning mode which generates multiple (e.g. 2) hypotheses of predictions from different intra prediction modes and combines the hypotheses of predictions to form the final prediction using the weights based on a geometric partitioning line as inter GPM, in Bullet 4 is from a previous coded block specified in the section entitled “Inheritance Block Setting” . The previous coded block generates the corresponding SGPM inheritance information (e.g. intra prediction modes and / or partitioning line and / or weights) and / or stores the mixed-mode inheritance information {coding mode and / or the corresponding information} . The stored mixed-mode inheritance information of the previous coded block can be referenced by subsequent coding blocks, for example, the current block. For example, for each block containing the mixed-mode information, the mixed-mode information is stored and / or referenced by the subsequent coding blocks. For example, for each pre-defined unit containing the mixed-mode information (which may refer to any pre-defined region or kxk grids in intra coded blocks where k can be 2, 4, 8, 16, or any pre-defined positive integer) , the mixed-mode information is stored and / or referenced by the subsequent coding blocks.
[0088] In another embodiment, the coding mode (e.g. ISP, called intra sub-partition) in Bullet 4 can be from a previous coded block specified in the section entitled “Inheritance Block Setting” . The intra sub-partition mode splits the current block into several sub-partitions and generates prediction of each sub-partition using the reconstructed samples (possibly from the previous sub-partition) adjacent to the current sub-partition as the reference samples. The previous coded block generates the corresponding ISP inheritance information (e.g. one or more intra prediction modes and / or splitting method) and / or stores the mixed-mode inheritance information {coding mode and / or the corresponding information} . The stored mixed-mode inheritance information of the previous coded block can be referenced by subsequent coding blocks, such as the current block. For example, for each block containing the mixed-mode information, the mixed-mode information is stored and / or referenced by the subsequent coding blocks. For example, for each pre-defined unit containing the mixed-mode information (which may refer to any pre-defined region or kxk grids in intra coded blocks where k can be 2, 4, 8, 16, or any pre-defined positive integer) , the mixed-mode information is stored and / or referenced by the subsequent coding blocks.
[0089] In another embodiment, the coding mode (e.g. IntraTMP) called intra template matching prediction) in Bullet 4 is from a previous coded block specified in the section entitled “Inheritance Block Setting” . The intraTMP mode uses template matching to find a displacement (represented as block vector) to refer to a reference block in a pre-defined range of the current picture and generates prediction using the reconstructed samples of the reference block. The previous coded block generates the corresponding intraTMP inheritance information (e.g. one or more block vectors) and / or stores the mixed-mode inheritance information {coding mode and / or the corresponding information} . The stored mixed-mode inheritance information of the previous coded block can be referenced by subsequent coding blocks, such as the current block. For example, for each block containing the mixed-mode information, the mixed-mode information is stored and / or referenced by subsequent coding blocks. For example, for each pre-defined unit containing the mixed-mode information (which may refer to any pre-defined region or kxk grids in intra coded blocks where k can be 2, 4, 8, 16, or any pre-defined positive integer) , the mixed-mode information is stored and / or referenced by the subsequent coding blocks.
[0090] In another embodiment, the coding mode (e.g. MIP, called matrix-based intra prediction or matrix weighted intra prediction) in Bullet 4 is from a previous coded block specified in the section entitled “Inheritance Block Setting” . The MIP mode uses a pre-defined matrix and pre-defined adjacent or non-adjacent reference samples to generate the prediction. The previous coded block generates the corresponding MIP inheritance information (e.g. one or more matrix indications and / or one or more matrix coefficients of the indicated matrixes and / or block width and / or block height and / or block area and / or block position) and / or stores the mixed-mode inheritance information {coding mode and / or the corresponding information} . The stored mixed-mode inheritance information of the previous coded block can be referenced by subsequent coding blocks, such as the current block. For example, for each block containing the mixed-mode information, the mixed-mode information is stored and / or referenced by the subsequent coding blocks. For example, for each pre-defined unit containing the mixed-mode information (which may refer to any pre-defined region or kxk grids in intra coded blocks where k can be 2, 4, 8, 16, or any pre-defined positive integer) , the mixed-mode information is stored and / or referenced by the subsequent coding blocks.
[0091] In another embodiment, instead of storing all mixed-mode information (which may be used for reference) , only the subset of mixed-mode information is stored in order to reduce the storage. For example, only 3 or any pre-defined positive number from all are stored. For example, the subset is the first 3 from all. The first 3 at least comprises the Bullet 4.
[0092] II. 2 Inheritance Block Setting
[0093] II. 2.1 Inheritance information from the previous coded blocks
[0094] The inheritance information is obtained from the previous coded blocks. In one embodiment, one or more candidates of spatial adjacent candidates and / or non-adjacent candidates, history candidates, temporal candidates, default candidates, or any subset of above-mentioned candidates provide the inheritance information from the previous coded blocks. In one sub-embodiment, the merge candidates refer to only history candidates and / or will not use the candidates from a far non-adjacent region.
[0095] In another embodiment, a merge candidate list containing inheritance information is built for the current block. As what regular inter merge mode does, the merge candidate list includes the candidates of spatial adjacent candidates and / or non-adjacent candidates, history candidates, temporal candidates, default candidates, or any subset of above-mentioned candidates. In one sub-embodiment, the merge candidate list here is aligned with or be any subset of the merge candidate list for regular inter merge mode. In another sub-embodiment, the merge candidate list here refers to the history-based buffer array only. That is, only history candidates are included and / or will not use the candidates from a far non-adjacent region.
[0096] In one sub-embodiment, full or partial pruning is used to avoid duplicate inheritance information in the list. Before adding a candidate in the list, all or any subset of inheritance information of the to-be-added candidate is checked with the corresponding inheritance information of all or any subset of candidates already in the list. All inheritance information of a candidate refers to all stored inheritance information of the inheritance block (e.g. a previous coded block) .
[0097] In another sub-embodiment, after building the merge candidate list, one or more candidates are selected from the list for the current block to use. The selection depends on explicitly signalling an index or implicitly selecting the one or more (promising) candidates. For example, an inheritance block being coded by the target mode is regarded as a promising candidate. For example, the first one or more candidates with the smallest costs are selected. For example, the explicit index indicates one or more candidates in the reordered list as the selected candidates. The cost calculation and / or list reordering may depend on the template matching process which calculates the cost based on the distortion between the prediction (using a certain candidate) on the template and the reconstruction on the template. For reordering the list, the candidate with a smallest cost is put in the front of the list and the candidate with a smaller cost is put in a more forward position in the list.
[0098] In another sub-embodiment, the merge candidate list has a maximum size threshold. The threshold is fixed at the standard and / or the threshold is determined according to an explicit syntax at the block, CTU, slice, picture, tile, sequence, SPS, PPS, or any pre-defined unit level. When the threshold is met (i.e., the list being full) , no more candidate can be inserted into the list; otherwise, the valid candidate can be inserted into the list. If the list is not full and the inheritance cannot find enough candidates, the default candidates are inserted to make the list full.
[0099] In another sub-embodiment, the size of merge candidate list is adaptively determined according to the number of valid candidates in the merge candidate list. When selecting one or more candidates for the current block from the list, the selection can be only among the available candidates in the list. For example, if the selection is implicit, the one or more selected candidates are the one or more candidates with smaller costs in the list. The cost calculation may depend on the template matching process which calculates the cost based on the distortion between the prediction (using a certain candidate) on the template and the reconstruction on the template.
[0100] In another embodiment, after applying template matching (TM) costs to sort the candidate, the first N (N >= 2) candidates with lowest costs are used for prediction. N predictions for current block are generated first. Then a blending process is applied to fuse multiple predictions into the final prediction. No extra index is signalled for selecting the merge candidates. There are several schemes to decide the blending weights. ● Scheme 1: pre-defined weights for N candidates. For example, if N = 2, the weights for fusing the 2 predictions can be (1 / 2, 1 / 2) or (3 / 4, 1 / 4) , etc. For another example, if N = 3, the weights for fusing the 3 predictions can be (1 / 2, 1 / 4, 1 / 4) , (3 / 4, 1 / 8, 1 / 8) or (5 / 8, 1 / 4, 1 / 8) , etc. ● Scheme 2: generate fusing weights inversely proportional to the TM costs. Division operation may be required to calculate the weights. The operation can be performed with an integer division operation, or the division result can be approximated with multiplication operation and a lookup table (LUT) for storing the reciprocals with a certain bit-width precision. ● Scheme 3: generate fusing weights proportional to the block size of the merge candidate. ● Scheme 4: a joint scheme by considering both scheme 2 and scheme 3.
[0101] II. 2.1.1 Spatial adjacent candidates and non-adjacent candidates
[0102] The spatial adjacent candidates are from the adjacent neighbouring blocks of the current block where the adjacent neighbouring blocks can be the same as the 5 spatial neighbouring blocks for regular inter merge mode or any subset of the adjacent neighbouring blocks of the current block. The non-adjacent candidates are from a search range around (but not adjacent to) the current block. The search range can be the same as or can be different from the search range of non-adjacent candidates for regular inter merge mode.
[0103] II. 2.1.2 History candidates
[0104] The history candidates are selected from a history-based buffer array. In the history-based buffer array, the inheritance information of each valid previous coded block is stored where the valid previous coded block refers to any block containing inheritance information. Like what history candidates in the merge list of regular inter merge mode, the first stored information may be removed for including the information from the latest valid coded block if the buffer array is full.
[0105] In one embodiment, the history-based buffer array can be reset at the beginning or at the end of a pre-defined unit. The definition of resetting the history-based buffer array can be clearing all stored inheritance information in the history-based buffer array. The pre-defined unit can be every M CTUs, every N CTU rows, a slice, a tile, a picture, or any pre-defined region, where N and M can be any value greater than 0.
[0106] When including history candidates from the history-based buffer array into the merge list, the order of including history candidates can be pre-defined.
[0107] In one embodiment, the order of including history candidates can be from the beginning / end of the history-based buffer array to the end / beginning of the history-based buffer array.
[0108] In another embodiment, the order of including history candidates can be from a certain pre-defined position of the history-based buffer array to the beginning / end of the history-based buffer array.
[0109] In another embodiment, the order of including history candidates can be in an interleaved manner (e.g., the first included candidate is from the beginning of the history-based buffer array, the second included candidate is from the end of the history-based buffer array and so on) .
[0110] II. 2.1.3 Temporal candidates
[0111] The temporal candidates are obtained from the inheritance information stored in one or more previous coded pictures. The temporal candidates are obtainable when the current slice / picture is a non-intra slice / picture.
[0112] In one embodiment, the temporal candidates can be from the block at some pre-defined positions (x′, y′) of the previous coded slice / picture.
[0113] In one sub-embodiment, the positions (x′, y′) are inside the corresponding area of the current encoding / decoding block, i.e., x≤x′<x+w and y≤y′<y+h. The pre-defined positions can be (x, y) , (x+w-1, y) , (x, y+h-1) , (x+w-1, y+h-1) ,
[0114] In one sub-embodiment, the pre-defined positions (x′, y′) are outside of the corresponding area of the current encoding / decoding block, i.e., x′<x or x′≥x+w, and / or y′<y or y′≥y+h. The temporal candidates can be (x-1, y) , (x, y-1) , (x-1, y-1) , (x+w, y) , (x+w-1, y-1) , (x+w, y-1) , (x, y+h) , (x-1, y+h-1) , (x-1, y+h) , (x+w, y+h-1) , (x+w-1, y+h) , (x+w, y+h) of the previous coded slice / picture.
[0115] In one sub-embodiment, the pre-defined positions can be determined based on the position, width and height of the current block.
[0116] In one embodiment, the previous coded pictures are among the pictures in the reference lists.
[0117] In one embodiment, the previous coded pictures are the same pictures as the collocated picture of the regular inter merge mode.
[0118] In one embodiment, the previous coded picture is determined based on a motion vector of a neighbouring block. The picture is the one that the motion vector indicates.
[0119] In one embodiment, the final pre-defined positions are determined based on a motion vector of a neighbouring block. The horizontal and vertical displacements (Δx, Δy) are determined based on a motion vector. Assume a set of pre-defined positions are (x1, y1) , (x2, y2) , …, (xN, yN) . The final pre-defined positions can be (x1+Δx, y1+Δy) , (x2+Δx, y2+Δy) , …, (xN+Δx, yN+Δy) .
[0120] In one embodiment, the motion vector can be L0 or L1 motion vector of a neighbouring block.
[0121] In one embodiment, the horizontal and vertical displacements (Δx, Δy) are derived based on the selected neighbouring motion vector. For example, if the reference picture of the selected neighbouring motion vector and the selected / pre-defined previous coded picture are the same picture, (Δx, Δy) equal to the neighbouring motion vector or neighbouring motion vector after rounding. For another example, if the reference picture of the selected motion vector and the selected / pre-defined previous coded picture are not the same picture, (Δx, Δy) can be (mv_x * (td / tb) , mv_y * (td / tb) ) or (mv_x * (td / tb) , mv_y * (td / tb) ) after rounding, where (mv_x, mv_y) is the selected motion vector, tb is the POC distance between the current picture and the reference picture of the selected motion vector, td is the POC distance between the current picture and the selected / pre-defined previous coded picture.
[0122] In one embodiment, the temporal candidates are derived by using reconstructed samples of a block located at pre-defined positions in the selected / pre-defined previous coded picture. The size of the block can be determined by the size of the current block. For example, the size can be the same as that of the current block. The size of the block can also be fixed. For example, the size can always be MxN, where M and N are positive integers.
[0123] II. 2.1.4 Default candidates
[0124] The default candidates are the candidates containing default information and / or the default information is derived according to the candidates already put in the merge candidate list. In one embodiment, the default modes for the default candidates can be derived using MIMD scheme, OBIC scheme, EIP derived mode scheme, any existing or mentioned intra scheme (for example, TIMD, DIMD, EIP, and / or MRL) , any variations of the existing or mentioned intra scheme, or any combination thereof.
[0125] II. 2.2 Re-deriving information from previous coded blocks
[0126] If the current block decides to reference the inheritance information of a previous coded block (for example, deciding a candidate from the merge candidate list) , the derivation process is applied to the reference block (i.e., the previous coded block) to re-derive the required inheritance information from that reference block. With re-deriving, the inheritance information from the previous coded block is not needed to be stored in the previous coded block. This re-derivation may replace the storing method of inheritance information or conditionally replace the storing method of inheritance information.
[0127] II. 2.3 Constraint (valid checking) on inheritance / re-derivation
[0128] With the constraint, when trying to obtain the inheritance information from a previous coded block, the inheritance information can only be inherited / re-derived for the current block only when the constraint is satisfied.
[0129] In one embodiment, only the inheritance information from the intra-coded, target-mode-coded, target-merge-mode-coded, target-mode-related-coded blocks, or a combination thereof can be used. Only the inheritance information from the blocks located at a pre-defined region can be used. For example, the pre-defined region is determined by the block position, block width, block height, and / or block area of the current block.
[0130] II. 3 Target Mode Setting and Shortcut Syntax Setting
[0131] In one embodiment, when the proposed intra merge scheme is used for the current block, the predictor-DIMD of the current block is used to select the transform set and / or the transpose flag for a primary transform and / or a secondary transform. The predictor-DIMD means to apply DIMD process on the predicted samples of the current block to derive an intra prediction mode. For example, a horizontal gradient and a vertical gradient are calculated for predicted samples of the current block to build a histogram of gradient (HoG) . Then, the intra prediction mode corresponding to the largest histogram count is used to determine the transform set in the transform process of the current block.
[0132] II. 3.1 Target Mode Setting for DIMD (DIMD Merge Mode)
[0133] The target mode setting for DIMD specifies a DIMD merge mode. When the DIMD merge mode is used for the current block, the current block uses the inherited DIMD information to generate the prediction of the current block. The inheritance information can be with adjustments or without adjustments. The inheritance information may refer to histogram (bar) values for the available DIMD intra prediction modes. The current block derives its own prediction information, such as one or more intra prediction modes and / or the corresponding weights, according to the inheritance information. The inheritance information from one or more pre-defined candidates (e.g. each candidate providing histogram (bar) values) according to the inheritance block setting, is used to decide the prediction information, required for generating the prediction of the current block. For example, the inheritance information refers to the histogram values from the previous coded block and is used to decide one or more intra prediction modes (i.e., one kind of prediction information) for the current block as regular DIMD. Then, unified with regular DIMD, the hypothesis of prediction from each derived intra prediction mode is combined using blending process to form the final prediction of the current block.
[0134] II. 3.2 Target Mode Setting for TIMD (TIMD Merge Mode)
[0135] The target mode setting for TIMD specifies a TIMD merge mode. When the TIMD merge mode is used for the current block, the current block uses the inherited TIMD information to generate the prediction of the current block. The inheritance information can be with adjustments or without adjustments. The inheritance information may refer to N intra prediction modes for the available TIMD intra prediction modes (e.g. IPM1 and IPM2) , TIMD weighting information (e.g. W1 and W2) , fusion or not, wide-angle conditions, or any combination thereof. The current block obtains its own prediction information from the inheritance information. The inheritance information from one or more pre-defined candidates (e.g. each candidate providing {IPM1, IPM2, W1, W2} ) according to the inheritance block setting, is used to decide the prediction information, required for generating the prediction of the current block. For example, the merge candidate list is built and reordered according to the costs in the template matching process. The template size and the template cost calculation may be unified with regular TIMD. After reordering the TIMD merge candidates, the first 2 or any pre-defined number of candidates from the list are kept for signalling. Then, unified with regular TIMD, the hypothesis of prediction from each inherited intra prediction mode is combined using blending process to form the final prediction of the current block.
[0136] II. 3.3 Target Mode Setting for MRL (MRL Merge Mode)
[0137] The target mode setting for MRL specifies a MRL merge mode. When the MRL merge mode is used for the current block, the current block uses the inherited MRL information to generate the prediction of the current block. The inheritance information can be with adjustments or without adjustments. For example, the inheritance information may refer to one or more reference lines jointly with intra prediction modes (IPM1 and MRL1) , fusion or not, and / or wide-angle conditions. For example, the inheritance information may refer to one or more reference lines jointly with intra prediction modes (IPM1 with MRL1 and IPM2 with MRL2) , weighting information (e.g. W1 and W2) , fusion or not, and / or wide-angle conditions. The current block obtains its own prediction information from the inheritance information. The inheritance information from one or more pre-defined candidates (e.g. each candidate providing {IPM1, MRL1} ) according to the inheritance block setting, is used to decide the prediction information, required for generating the prediction of the current block. For example, the merge candidate list is built and reordered according to the costs in the template matching process. The template size and the template cost calculation may be unified with regular TMRL. After reordering the MRL merge candidates, the first 2 or any pre-defined number of candidates from the list are kept for signalling. Then, for the example of a selected MRL merge candidate, such as inherited IPM1 and MRL1, is used to generate prediction of the current block using a method unified with regular intra prediction. The prediction from the inherited intra prediction mode and the inherited reference line is to form the final prediction of the current block. For the example of a selected MRL merge candidate, such as inherited IPM1 with MRL1 and IPM2 with MRL2, the hypothesis of prediction from each inherited intra prediction mode with the corresponding inherited reference line is combined using blending process to form the final prediction of the current block. For the example of a selected MRL merge candidate, such as inherited IPM1 with MRL1 / W1 and IPM2 with MRL2 / W2, the hypothesis of prediction from each inherited intra prediction mode with the corresponding inherited reference line is combined using blending process with W1 and W2 to form the final prediction of the current block.
[0138] II. 3.4 Target Mode Setting for Mixed Modes
[0139] The target mode setting for mixed modes specifies a mixed-mode merge mode. When the mixed-mode merge mode is used for the current block, the current block uses the inherited mixed-mode information to generate the prediction of the current block. The inheritance information can be with adjustments or without adjustments. The inheritance information of a candidate may refer to the coding mode and / or the corresponding information. The current block obtains its own prediction information from the inheritance information.
[0140] An example of the coding mode from the inherited mixed-mode information being DIMD-related is shown below: - In one case, DIMD merge mode is applied to the current block. - In another case, regular DIMD is applied to the current block.
[0141] An example of the coding mode from the inherited mixed-mode information being TIMD-related is shown below: - In one case, TIMD merge mode is applied to the current block. - In another case, regular TIMD is applied to the current block.
[0142] An example of the coding mode from the inherited mixed-mode information being MRL-related is shown below: - In one case, MRL merge mode is applied to the current block. - In another case, regular intra prediction using MRL or TMRL is applied to the current block.
[0143] An example of the coding mode from the inherited mixed-mode information being EIP-related is shown below: - In one case, EIP merge mode is applied to the current block. - In another case, EIP derived mode is applied to the current block.
[0144] In one embodiment, any variations of DIMD merge, TIMD merge, and / or MRL merge proposed in the section II. 3.1, II. 3.2, and / or II. 3.3 can be used when the mixed-mode merge is applied to the current block and indicates to use the corresponding merge mode among DIMD merge, TIMD merge, and / or MRL merge.
[0145] In another embodiment, only one candidate, for example, the first available candidate, according to the inheritance block setting, is used to decide the prediction information for the current block.
[0146] In another embodiment, one or more candidates are used to decide the prediction information for the current block. For example, all available candidates are used to decide the prediction information for the current block. For example, a pre-defined maximum number is set. During checking the available candidates, when the number of the checked available candidates meets the pre-defined maximum number, the checked available candidates are used to decide the prediction information for the current block. After checking all available candidates (the number of the checked available candidates may or may not meet the pre-defined maximum number) , the checked available candidates are used to decide the prediction information for the current block.
[0147] In another embodiment, whether to apply the mixed-mode merge mode to the current block depends on the syntax of the current block. For example, one flag (e.g. mixed-mode merge flag) is signalled to indicate whether to apply the mixed-mode merge mode to the current block.
[0148] In one sub-embodiment, when mixed-mode merge flag indicates to apply the mixed-mode merge mode to the current block, no syntax is further signalled and / or the selection of the candidates for deciding the prediction information for the current block is implicit.
[0149] In another sub-embodiment, when mixed-mode merge flag indicates to apply the mixed-mode merge mode to the current block, one or more syntax elements are further signalled and / or the selection of the candidates for deciding the prediction information for the current block is explicit.
[0150] In another sub-embodiment, when mixed-mode merge flag indicates to apply the mixed-mode merge mode to the current block, one or more syntax elements are further signalled and / or one indicated mixed-mode merge mode is selected among several variations of mixed-mode merge modes according to the signalled syntax elements.
[0151] In another sub-embodiment, the mixed-mode merge mode is an optional mode of a root mode (e.g. general intra) and mixed-mode merge flag is signalled after the enabling flag of the root mode. For example, the mixed-mode merge flag (as a shortcut of general intra) is signalled right after determining the current block as intra or signalled before all or any subset of the sub-modes of general intra where the sub-modes of general intra may include all or any subset of the target modes comprised in the mixed modes. Only if the enabling flag of the root mode indicates to apply the root mode to the current block, the mixed-mode merge flag is further signalled; otherwise, the mixed-mode merge flag is inferred as disabled.
[0152] In another embodiment, if the possible intra merge candidate is coded with ISP, there are cases when the current CU size cannot be coded by the inherited parameters of ISP coding. For example, current CU size is too small to be divided into 4 sub-partitions. Several schemes can be used to deal with these cases. ● Scheme 1: discard this possible merge candidate of ISP coding mode ● Scheme 2: keep the same partition direction and reduce the number of the sub-partition (e.g., reduced from 4 to 2) ● Scheme 3: change the partition direction and code the CU with ISP partition rules
[0153] In another embodiment, if the possible intra merge candidate is coded with ISP, there are cases when merge candidates are coded with sub-partitions not applicable to the current CU according to partition rules of ISP coding. For example, the current CU size is larger and can be divided into 4 sub-partitions, but the merge candidate is coded with 2 sub-partitions of ISP partition. Several schemes can be used to deal with these cases. ● Scheme 1: discard this possible merge candidate of ISP coding mode ● Scheme 2: keep the same partition direction and code the CU with ISP partition rules
[0154] The term “block” in this invention can refer to TU / TB, CU / CB, PU / PB, pre-defined region, or CTU / CTB.
[0155] Any combination of the proposed methods in this invention can be applied.
[0156] The proposed methods in this invention 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.
[0157] 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.
[0158] With reference to the encoder and decoder in Fig. 1A and Fig. 1B, any of the proposed methods can be implemented in an Intra coding module (e.g. Intra Pred. 150 in Fig. 1B) in a decoder or an Intra coding module (e.g. Intra Pred. 110 in Fig. 1A) in an encoder. Any of the proposed methods can also be implemented as a circuit coupled to the intra / inter coding module at the decoder or the encoder. However, the decoder or encoder may also use additional processing unit to implement the required prediction processing. While the Intra Pred. units (e.g. unit 110 in Fig. 1A and unit 150 in Fig. 1B) are shown as individual processing units, they may correspond to executable software or firmware codes stored on a media, such as hard disk or flash memory, for a CPU (Central Processing Unit) or programmable devices (e.g. DSP (Digital Signal Processor) or FPGA (Field Programmable Gate Array) ) .
[0159] Fig. 6 illustrates a flowchart of an exemplary video coding system that derives intra merge candidates according to an embodiment of the present invention. The steps shown in the flowchart may be implemented as program codes executable on one or more processors (e.g., one or more CPUs) at the encoder side. The steps shown in the flowchart may also be implemented based on hardware such as one or more electronic devices or processors arranged to perform the steps in the flowchart. According to the method, input data associated with a current block is received in step 610, wherein the input data comprises pixel data to be encoded at an encoder side or data associated with the current block to be decoded at a decoder side. Two or more intra merge candidates are derived in step 620, wherein inheritance information of said two or more intra merge candidates is from at least two different modes. A target candidate is selected from said two or more intra merge candidates in step 630. Target prediction is generated for the current block in a target mode associated with the target candidate by using target inheritance information of the target candidate in step 640. The current block is encoded or decoded by using the target prediction in step 650.
[0160] The flowchart shown is intended to illustrate an example of video coding according to the present invention. A person skilled in the art may modify each step, re-arranges the steps, split a step, or combine steps to practice the present invention without departing from the spirit of the present invention. In the disclosure, specific syntax and semantics have been used to illustrate examples to implement embodiments of the present invention. A skilled person may practice the present invention by substituting the syntax and semantics with equivalent syntax and semantics without departing from the spirit of the present invention.
[0161] The above description is presented to enable a person of ordinary skill in the art to practice the present invention as provided in the context of a particular application and its requirement. Various modifications to the described embodiments will be apparent to those with skill in the art, and the general principles defined herein may be applied to other embodiments. Therefore, the present invention is not intended to be limited to the particular embodiments shown and described, but is to be accorded the widest scope consistent with the principles and novel features herein disclosed. In the above detailed description, various specific details are illustrated in order to provide a thorough understanding of the present invention. Nevertheless, it will be understood by those skilled in the art that the present invention may be practiced.
[0162] Embodiment of the present invention as described above may be implemented in various hardware, software codes, or a combination of both. For example, an embodiment of the present invention can be one or more circuit circuits integrated into a video compression chip or program code integrated into video compression software to perform the processing described herein. An embodiment of the present invention may also be program code to be executed on a Digital Signal Processor (DSP) to perform the processing described herein. The invention may also involve a number of functions to be performed by a computer processor, a digital signal processor, a microprocessor, or field programmable gate array (FPGA) . These processors can be configured to perform particular tasks according to the invention, by executing machine-readable software code or firmware code that defines the particular methods embodied by the invention. The software code or firmware code may be developed in different programming languages and different formats or styles. The software code may also be compiled for different target platforms. However, different code formats, styles and languages of software codes and other means of configuring code to perform the tasks in accordance with the invention will not depart from the spirit and scope of the invention.
[0163] The invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described examples are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
Claims
1.A method of video coding, the method comprising:receiving input data associated with a current block, wherein the input data comprises pixel data to be encoded at an encoder side or data associated with the current block to be decoded at a decoder side;deriving two or more intra merge candidates, wherein inheritance information of said two or more intra merge candidates is from at least two different modes;selecting a target candidate from said two or more intra merge candidates;generating target prediction for the current block in a target mode associated with the target candidate by using target inheritance information of the target candidate; andencoding or decoding the current block by using the target prediction.2.The method of Claim 1, wherein said at least two different modes comprise at least two modes from a group comprising DIMD (Decoder-side Intra Mode Derivation) , TIMD (Template-based Intra Mode Derivation) , MRL (Multiple Reference Lines) , EIP (Extrapolation filter-based Intra Prediction) , or any combination thereof.3.The method of Claim 2, wherein when the target mode corresponds to the DIMD, setting for the target inheritance information of the target candidate comprises one or more histogram (bar) values, intra prediction modes, weighting information, whether to apply fusion or not, or any combination thereof.4.The method of Claim 2, wherein when the target mode corresponds to the TIMD, setting for the target inheritance information of the target candidate comprises one or more template cost values, intra prediction modes, weighting information, whether to apply fusion or not, reference line information, wide-angle conditions, or any combination thereof.5.The method of Claim 2, wherein when the target mode corresponds to the MRL, setting for the target inheritance information of the target candidate comprises one or more reference lines jointly with intra prediction modes.6.The method of Claim 1, wherein setting for the target candidate comprises a target coding mode that the target candidate belongs to and corresponding information of the target coding mode.7.The method of Claim 6, wherein the target coding mode corresponds to DIMD-related mode, TIMD-related mode, MRL-related mode, or EIP-related mode.8.The method of Claim 1, wherein the inheritance information of said two or more intra merge candidates is obtained based on one or more spatial adjacent candidates, one or more non-adjacent candidates, one or more history candidates, one or more temporal candidates, one or more default candidates, or any combination thereof.9.The method of Claim 1, wherein the target candidate is selected explicitly according to one or more indexes signalled or selected implicitly.10.The method of Claim 9, wherein said one or more indexes indicate the target candidate selected from a reordered candidate list.11.The method of Claim 10, wherein the reordered candidate list is reordered according to cost calculation using a template matching process measuring distortion between prediction samples on a template and reconstruction samples on the template.12.The method of Claim 11, wherein a member candidate with a smaller cost is placed in a more forward position in the reordered candidate list.13.The method of Claim 1, wherein decision regarding whether to derive said two or more intra merge candidates, to select the target candidate from said two or more intra merge candidates, to generate the target prediction and to encode or decode the current block by using the target prediction depends on syntax of the current block or is determined implicitly.14.The method of Claim 1, wherein a flag to indicate whether to derive said two or more intra merge candidates, to select the target candidate from said two or more intra merge candidates, to generate the target prediction and to encode or decode the current block by using the target prediction is signalled right after determining the current block to be intra coded or signalled before all or any subset of sub-modes of general intra, and where the sub-modes of general intra include all or any subset of said at least two different modes.15.An apparatus for video coding, the apparatus comprising one or more electronic circuits or processors arranged to:receive input data associated with a current block, wherein the input data comprises pixel data to be encoded at an encoder side or data associated with the current block to be decoded at a decoder side;derive two or more intra merge candidates, wherein inheritance information of said two or more intra merge candidates is from at least two different modes;select a target candidate from said two or more intra merge candidates;generate target prediction for the current block in a target mode associated with the target candidate by using target inheritance information of the target candidate; andencode or decode the current block by using the target prediction.
Citation Information
Patent Citations
Intra-frame prediction method in hybrid video coding standard
CN105491390A
Method and apparatus for video coding
CN112042200A
Method and apparatus for video coding using decoder side intra prediction derivation
US20190215521A1
Intelligent Mode Assignment In Video Coding
US20190268611A1
Threshold of similarity for candidate list
WO2023217140A1