Methods and apparatus for video coding
The proposed video coding method improves intra prediction mode inheritance by constructing merge candidate lists and computing costs for spatial distance and template matching, resulting in enhanced coding efficiency and reduced complexity.
Patent Information
- Application Number
- PCT/CN2025/090481
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-04-23
- Filing Date
- 2025-04-22
- Publication Date
- 2025-10-30
AI Technical Summary
Existing video coding technologies face inefficiencies in intra prediction mode inheritance, leading to increased complexity and reduced coding efficiency.
A video coding method that constructs a merge candidate list for intra mode blocks, using inheritance information from previously coded blocks, computes costs based on spatial distance and template matching, and reorders candidates to determine prediction data for improved coding efficiency.
Enhances coding efficiency by optimizing intra prediction mode inheritance, reducing complexity, and improving video quality through refined prediction data generation.
Smart Images

Figure CN2025090481_30102025_PF_FP_ABST
Abstract
Description
METHODS AND APPARATUS FOR VIDEO CODINGCROSS REFERENCE TO RELATED PATENT APPLICATION
[0001] The present disclosure is part of a non-provisional application that claims the priority benefit of U.S. Provisional Patent Application No. 63 / 637, 410, filed onApril 23, 2024. Content of the above-listed application is herein incorporated by reference.TECHNICAL FIELD
[0002] The present disclosure relates to the technical field of video coding, in particular to a method and an apparatus for video coding.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 (i.e., encoded or decoded) 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. A CU can be further split into smaller CUs using one of the five split types: quad-tree partitioning, vertical binary tree partitioning, horizontal binary tree partitioning, vertical triple-tree partitioning, horizontal triple tree partitioning.
[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 / or 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 / or associated syntax elements. A similar relationship is valid for CU, PU, and TU.
[0009] FIG. 1A illustrates an exemplary apparatus or system for video coding. The apparatus may be configured for Inter / Intra video coding and may incorporate loop processing. For Intra Prediction, 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, are 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.
[0010] As illustrated 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.
[0011] The decoder, as illustrated in FIG. 1B, may 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.
[0012] In the related art, only the intra prediction mode signaled in the previous coded block may be inherited by the current block. In order to improve the coding efficiency or reduce the complexity of inheritance information, methods and apparatus for video coding are proposed.SUMMARY
[0013] 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.
[0014] According to a first aspect of the present disclosure, a video coding method is disclosed in one embodiment of the present disclosure. The video coding method includes: receiving input data associated with a current block of a current image of a video, 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, and wherein the current block is coded in an intra mode; constructing a merge candidate list for the current block, wherein the merge candidate list comprises a plurality of candidates, each of the plurality of candidates comprises inheritance information that is inherited from a previously coded block and matches a target intra mode; computing a respective cost for each of the plurality of candidates; reordering the plurality of candidates according to their respective cost to form a reordered merge candidate list; determining one or more target candidates from the reordered merge candidate list; generating prediction data for the current block based on the inheritance information of the one or more target candidates; and encoding or decoding the current block based on the prediction data, wherein the operation of computing the respective cost for each of the plurality of candidates comprises: computing the cost for each candidate based on a spatial distance between the previously coded block of the each candidate and the current block, wherein the greater the spatial distance is, the greater the cost; and / or computing the cost for the each candidate through a template matching method.
[0015] According to a second aspect of the present disclosure, an electronic apparatus for video coding is further provided. The electronic apparatus includes one or more electronic circuits or processors configured toperform operations comprises: receivinginput data associated with a current block of a current image of a video, 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, and wherein the current block is coded in an intra mode; constructing a merge candidate list for the current block, wherein the merge candidate list comprises a plurality of candidates, each of the plurality of candidates comprises inheritance information that is inherited from a previously coded block and matches a target intra mode; computing a cost for each of the plurality of candidates; reordering the plurality of candidates according to their respective cost to form a reordered merge candidate list; determining one or more target candidates from the reordered merge candidate list; generating prediction data for the current block based on the inheritance information of the one or more target candidates; and encodingor decoding the current block based on the prediction data, wherein the operation of computing the respective cost for each of the plurality of candidates comprises: computing the cost for each candidate based on a spatial distance between the previously coded block of the each candidate and the current block, wherein the greater the spatial distance is, the greater the cost; and / or computing the cost for the each candidate through a template matching method.BRIEF DESCRIPTION OF THE DRAWINGS
[0016] FIG. 1A illustrates an exemplary apparatus for video coding.
[0017] FIG. 1B illustrates a corresponding decoder for the encoder in FIG. 1A.
[0018] FIG. 1C exemplarily illustrates positions of spatial merge candidates of a current luma block.
[0019] FIG. 2 illustrates the intra-prediction modes in different directions.
[0020] FIG. 3 conceptually illustrates top reference samples with extended lengths for supporting wide-angular direction modes for non-square blocks of different aspect ratios.
[0021] FIG. 4 conceptually illustrates left reference samples with extended lengths for supporting wide-angular direction modes for non-square blocks of different aspect ratios.
[0022] FIG. 5 exemplarily illustrates a window applied in a decoder-side intra mode derivation (DIMD) process.
[0023] FIG. 6 exemplarily illustrates a Histogram of Gradient (HoG) generated by the DIMD process.
[0024] FIG. 7 exemplarily illustrates the TIMD process.
[0025] FIG. 8 exemplarily illustrates three types of 15 tap filters for the EIP mode.
[0026] FIG. 9 exemplarily illustrates three types of pre-determined template for the EIP mode.
[0027] FIG. 10 exemplarily illustrates the TMRL intra mode.
[0028] FIG. 11 illustrates a flowchart of an exemplary video coding method provided according to one embodiment of the present disclosure.
[0029] FIG. 12exemplarily illustrates a series of candidates.
[0030] FIG. 13 exemplarily illustrates the template matching method for computing a cost.
[0031] FIG. 14 exemplarily illustrates an apparatus for video coding.DETAILED DESCRIPTION
[0032] 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.
[0033] 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.
[0034] In order to better illustrate the solutions of the present disclosure, the related arts are first introduced. I. Inter prediction (More details in JVET-T2002) a. Spatial adjacent candidate derivation
[0035] Spatial adjacent candidates are selected among candidates located in the positions illustrated in FIG. 1C.
[0036] As illustrated in FIG. 1C, the spatial merge candidates can be selected among candidates in an above neighboring block and / or a left neighboring block of a current luma block, for example, the block A0, the block A1, the block B0, the block B1, and the block B2. II. Intra Prediction a. Intra mode coding modes with 35 or 67 intra prediction modes
[0037] FIG. 2 shows the conventional intra-prediction modes in 33 different directions. These intra-prediction modes are referred to as directional modes and do not include DC mode or Planar mode. As illustrated, there are 33 directional modes (V: vertical direction; H: horizontal direction) , so H, H+1~H+8, H-1~H-7, V, V+1~V+8, V-1~V-8 are used. Generally directional modes can be represented as either as H+k or V+k modes, where k=±1, ±2, ..., ±8. Each of such intra-prediction mode can also be referred to as an intra-prediction angle. To capture arbitrary edge directions presented in natural video, the number of directional intra modes is extended from 33, as used in HEVC, to 65 direction modes as used in VVC, so that the range of k is from ±1 to ±16. These denser directional intra prediction modes apply for all block sizes and for both luma and chroma intra predictions. By including DC and Planar modes, the number of intra-prediction mode is 35 or 67 (not illustrated) .
[0038] Out of the 35 (or 67) intra-prediction modes, some modes (e.g., 3 or 5 or 6) are identified as a set of most probable modes (MPM) for intra-prediction in current prediction block. The encoder may reduce bit rate by signaling an index to select one of the MPMs instead of an index to select one of the 35 (or 67) intra-prediction modes. The most probable mode (MPM) list is generated by considering two available neighboring intra modes.
[0039] Conventional angular intra prediction directions are defined from 45 degrees to -135 degrees in clockwise direction. In VVC, several conventional angular intra prediction modes are adaptively replaced with wide-angle intra prediction modes for non-square blocks. The replaced modes are signaled using the original mode indices, which are remapped to indices of wide angular modes after parsing.
[0040] For some embodiments, the total number of intra prediction modes is unchanged, i.e., 67, and the intra mode coding method is unchanged. To support these prediction directions, a top reference samples with length 2W+1 and a left reference samples with length 2H+1 defined. FIG. 3 and FIG. 4 conceptually illustrate top and left reference samples with extended lengths for supporting wide-angular direction mode for non-square blocks of different aspect ratios, respectively.
[0041] The number of replaced modes in wide-angular direction mode may depend on the aspect ratio of a block. b. Decoder Side Intra Mode Derivation (DIMD)
[0042] When DIMD is applied, two intra prediction modes are derived from reconstructed neighbor samples (template) , and two predictors (using the two derived intra prediction modes) are combined with a planar mode predictor with a weight derived from a gradient.
[0043] To implicitly derive the intra prediction mode of a block, a texture gradient analysis is performed at both encoder and decoder sides. The texture gradient analysis starts with an empty Histogram of Gradient (HoG) with for example 65 entries, the 65 entries correspond to the above-mentioned 65 angular modes. Amplitudes of these entries are determined during the texture gradient analysis. An intra prediction mode with the highest amplitude is selected, and the combination weight is derived based on the amplitude.
[0044] As illustrated in FIG. 5 and FIG. 6, FIG. 5 exemplarily illustrates a window applied in a decoder side intra mode derivation (DIMD) process, FIG. 6 exemplarily illustrates a Histogram of Gradient (HoG) generated by the DIMD process.
[0045] As is illustrated in FIG. 5, a template area located at the left side and above side of the current block is picked as a reference area for the gradient based intra prediction modes derivation. Horizontal and vertical filters (such as Sobel filter, or the like) are applied on all window positions, centered on the pixels of the middle line of the template. On each window position, 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 may be converted into one of the 65 angular intra prediction modes. Once the intra prediction modes (IPM) index of current window is derived as idx, the amplitude of the entry of the IPMin the HoG [idx] is updated by addition of ampl= |Gx|+|Gy|.
[0046] FIG. 6 shows an example Histogram of Gradient (HoG) that is calculated after applying the above-mentioned amplitude calculation operations on all pixel positions in the template area of FIG. 5. Once the HoG is computed, the indices of the two tallest histogram bars are selected as the two implicitly derived intra prediction modes (IPMs) for the block. The prediction of the two IPMs are further combined with the planar mode prediction as the prediction of DIMD mode. The prediction fusion is applied as a weighted average of the above three predictors (the two IPMs and the planar mode prediction) . To this aim, the weight of planar may be set to 21 / 64 (~1 / 3) . The remaining weight of 43 / 64 (~2 / 3) is then shared between the two HoG IPMs, proportionally to the amplitude of their HoG bars. c. Template-based intra mode derivation (TIMD)
[0047] As illustrated in FIG. 7, FIG. 7 exemplarily illustrates the TIMD process.
[0048] Template-based intra mode derivation (TIMD) mode implicitly derived the intra prediction mode of a CU by using a neighboring template (as illustrated in FIG. 7) at both encoder and decoder, instead of being signalled exact intra prediction mode bits to the decoder. The prediction samples of the template are generated using the samples of the reference of the template (as illustrated in FIG. 7) for each candidate mode. A cost is calculated as the sum of absolute transformed difference (SATD) between the prediction and the reconstruction samples of the template. For example, first two intra prediction modes with the minimum SATD are selected as the TIMD modes. These two TIMD modes are fused with the weights to generate prediction for the current CU.
[0049] First two intra prediction modes with the minimum costs, namely the Costbest and the CostsecondBestrespectively, are selected as the TIMD modes. If CostsecondBest<Costbest*2, these two TIMD modes may be weighted fused to determine the final intra prediction mode, otherwise the intra prediction mode with the smallest cost is used. d. Extrapolation filter-based intra prediction (EIP)
[0050] As illustrated in FIG. 8 and FIG. 9, FIG. 8 exemplarily illustrates the three types of 15 tap filters for the EIP mode, FIG. 9 exemplarily illustrates the three types of pre-determined template for the EIP mode. In the EIP mode, the samples in a CU are predicted from the top-left position to the bottom-right position by applying an extrapolation filter to neighboring reconstructed samples or predicted samples. The EIP mode uses a 15-tap filter for prediction as below: where the pred (x, y) represents the predicted value at position (x, y) in the CU, ci represents the filter coefficient, and the represents the reconstructed samples or the predicted samples.
[0051] The EIP filter may be derived from the neighboring reconstructed samples or be inherited from a previous EIP coded block. As illustrated in FIG. 8 and FIG. 9, there are three EIP filter shapes and three types of reconstructed areas supported in ECM, respectively.
[0052] For a CU coded in the EIP mode, an EIP merge flag is signaled to indicate whether the EIP filter is inherited from previous blocks coded in EIP mode. When the EIP merge flag is true, an EIP merge list is constructed from the spatial adjacent, spatial non-adjacent, temporal and history candidates. The position and inclusion order of these candidates are the same as those used in CCP merge candidate list. An EIP merge index is further signaled to indicate which EIP merge candidate is selected. The filter shape and the filter coefficients of the selected candidate are then inherited to code the CU.
[0053] When the EIP merge flag is false, the EIP filter is derived from the neighboring reconstructed samples and the relevant syntax element is signaled to indicate which one of the three types of reconstructed area and which one of the three filter shapes are used for the CU. 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 cross-component chroma model (CCCM) .
[0054] In some embodiments, after generating the prediction samples of the CU using the EIP filter, an intra prediction mode is derived by applying the DIMD process to the prediction samples. Specifically, a horizontal gradient and a vertical gradient are calculated for each predicted sample to build a histogram of gradient. Then the intra prediction mode corresponding to the largest histogram count is used to determine the low-frequency non-separable transform (LFNST) , the non-separable primary transform (NSPT) or the multiple transform selection (MTS) transform set. e. Template-based multiple reference line intra prediction (TMRL) mode
[0055] As illustrated in FIG. 10, FIG. 10 exemplarily illustrates the TMRL intra mode. The TMRL mode combines reference lines 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 signaled to indicate which reference line and prediction mode is used in coding the current block.
[0056] The extended reference line starts from reference line 1. Reference line 0 (the top template and / or the left template of FIG. 10) is used for template matching. The SAD costs (TMRL costs) over the template area are calculated between the predictions (generated by 50 combinations) and the reconstructions. The 20 combinations with the least SAD cost are selected in an ascending order to form the TMRL candidate list. III. Proposed Methodand Apparatus
[0057] A proposed video coding method is discussed hereafter. The video coding method relates to an innovative intra coding mode which may be referred to as intra mixed merge mode or decoder-derived intra prediction (DIP) merge mode. The “merge mode” herein may refer to deriving the prediction information from previously coded block such as spatially or temporally neighboring blocks. In other words, the core idea of the intra mixed merge mode is to inherit (or reference) the information from previous coded blocks and use the inheritance information to predict the current block. The previous coded blocks are blocks previously coded relative to the current block. Inheritance blocks are selected from the previously coded blocks based on the inheritance block setting. In other words, the inheritance blocks constitute a subset of the previous coded blocks.
[0058] As illustrated in FIG. 11, FIG. 11 illustrates a flowchart of an exemplary video coding method provided according to one embodiment of the present disclosure. The proposed video coding method includes the following operations.
[0059] At operation 1101, receiving input data associated with a current block of a current image of a video, where 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, and wherein the current block is coded in an intra mode.
[0060] At operation 1102, constructing a merge candidate list for the current block, wherein the merge candidate list comprises a plurality of candidates, each of the plurality of candidates comprises inheritance information that is inherited from a previously coded block and matches a target intra mode. 1. Candidate or Inheritance block Setting
[0061] In some embodiments, 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.
[0062] In some embodiment, a merge candidate list, containing inheritance information, is built for the current block. Like the inter merge mode candidate list, the merge candidate list includes spatial adjacent candidates and / or non-adjacent candidates, history candidates, temporal candidates, default candidates, or any subset of above-mentioned candidates. 1.1 Spatial adjacent candidates and non-adjacent candidates
[0063] The spatial adjacent candidates are from the adjacent neighbouring blocks of the current block. The adjacent neighbouring blocks may be the same as the 5 spatial neighbouring blocks for inter merge mode or any subset of the adjacent neighbouring blocks of the current block. For example, for adding the spatial adjacent candidates into the merge list, as in Figure 1, the inclusion order may be A1 → B1 → A0 → B0 → B2 or B1 → A1 → B0 → A0 → B2.
[0064] The non-adjacent candidates are from a search range around (but not adjacent to) the current block. The search range may be the same as the search range of non-adjacent candidates for inter merge mode. The non-adjacent candidates can be from pre-defined positions and are added into the merge list in a pre-defined inclusion order. For example, the pre-defined positions and the inclusion order are the same as those of the non-adjacent candidates of inter merge mode.
[0065] As illustrated in FIG. 12, a series of candidates indexed from 1 to 23 are illustrated, where the candidates indexed from 1-5 are spatial adjacent candidates, and the candidates indexed from 6-23 are non-adjacent candidates. 1.2 History candidates
[0066] 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. 1.3Temporal candidates
[0067] The temporal candidates are obtained from the inheritance information stored in one or more previous coded picture. The temporal candidates are obtainable when the current slice / picture is a non-intra slice / picture.
[0068] In one embodiment, the temporal candidates can be from the block at some pre-defined positions (x′, y′) of the previous coded slices / picture.
[0069] In one sub-embodiment, the positions are inside the corresponding area of the current coding block.
[0070] In one sub-embodiment, the pre-defined positions are outside of the corresponding area of the current coding block.
[0071] In one sub-embodiment, the pre-defined positions may be determined based on the position, width and height of the current block.
[0072] In one sub-embodiment, the pre-defined positions may be determined based on the position, and some pre-defined fixed xdistances and ydistances.
[0073] In one embodiment, the previous coded pictures are among the pictures in the reference lists.
[0074] In one embodiment, the previous coded pictures are the same pictures as the collocated picture of the regular inter merge mode.
[0075] In one embodiment, there may be more than one selected / pre-defined previous coded pictures.
[0076] In one embodiment, the previous coded pictures may be signalled in the picture / slice header. The reference list and the reference index are signalled in the picture / slice header. For example, L0 [0] is signalled. For another example, L1 [0] is signalled.
[0077] In one embodiment, the previous coded pictures are selected from a picture set with some pre-defined rules.
[0078] In one embodiment, the previous coded pictures are selected from pictures in the reference lists. The selection can be determined based on POC, and / or POC distance, and / or QP, and / or QP difference. For another example, pictures with the smaller POC are selected. For another example, the picture with the larger POC is selected. For example, the picture whose POC distance between it and the current picture is the smallest is selected. For another example, the picture with the smaller QP is selected. For another example, the picture with the larger QP is selected. For another example, the picture with smaller QP difference between it and the current picture is selected.
[0079] In one embodiment, the previous coded picture is the most recently coded I-picture.
[0080] In one embodiment, the rules to select / not select the previous coded pictures described in the paragraphs above can be combined. For example, the picture whose QP is the smallest among the un-scaled pictures in the reference lists is selected. 1.4 Default candidates
[0081] The default candidates are the candidates containing default information and / or the default information is derived according to the candidates already put in a merge candidate list.
[0082] In one embodiment, the default modes for the default candidates may be derived using MIMD scheme and / or occurrence-based intra coding (OBIC) scheme and / or EIP derived mode scheme and / or any existing or mentioned intra scheme (for example, TIMD, DIMD, EIP, and / or MRL) and / or any variations of the existing or mentioned intra scheme.
[0083] In one embodiment, there is a maximum number N of allowed candidates in the merge candidate list, wherein N is an integer greater than or equal to 1.
[0084] In one sub-embodiment, the maximum number N is 12. 2. Target intra mode
[0085] The target intra mode may refer to the intra mode enabled or allowed by the proposed intra mixed merge mode for the current block, and may also be referred to as the enabled intra mode or allowed intra mode for the current block.
[0086] In an embodiment, the target intra mode includes at least one selected from a group consisting of the DIMD mode, the TIMD mode, the EIP mode, the TMRL mode, a spatial geometric partitioning (SGPM) mode, an intra sub-partition (ISP) mode, an intra template matching prediction (IntraTMP) mode, a matrix-based intra prediction (MIP) mode, the intra mixed merge mode, or a combination thereof.
[0087] In a sub-embodiment, the target intra mode at least includes the intra mixed merge mode, and at least two of the DIMD mode, the TIMD mode, the EIP mode, the TMRL mode, the SGPM mode, the ISP mode, the IntraTMP mode, or the MIP mode.
[0088] In another sub-embodiment, the target intra mode at least includes the intra mixed merge mode, and at least two of the DIMD mode, the TIMD mode, the EIP mode, or the TMRL mode. 3. inheritance information
[0089] When generating the prediction of the current block coded by the target intra mode, one or more inheritance blocks are selected from a merge candidate list or among several merge candidates. Then, the inheritance information from the inheritance blocks is used for the target intra mode to generate prediction. In some embodiments, the inheritance information of each merging candidate can belong to different target intra modes, that is, mixed modes. For example, the inheritance information of merge candidates can be related to DIMD, and / or TIMD, and / or MRL, and / or EIP. One merge list may contain the merge candidates with different target modes. The current block can be predicted following DIMD or TIMD or MRL or EIP depending on which merge candidate is used.
[0090] In the proposed intra merge scheme, the inheritance information may be any mode information, any sample information, any block information, any model information, and / or any information associated with prediction generation. The mode information may be the type of the coding mode of the candidate.
[0091] Here defines the inheritance information for generating prediction data of the current block using a target intra mode, namely the prediction information matching the coding mode of the candidate. 3.1 Inheritance information setting for the DIMD mode
[0092] For the DIMD mode, the inheritance information includes at least one of the following (a) and / or (b) and / or (c) and / or (d) : (a) one or more histogram (bar) values for the available DIMD intra prediction modes (such as DC, planar, and / or directional prediction modes) ; (b) the N intra prediction modes (with the highest N histogram bars) suggested by the histogram values; (c) DIMD weighting information and / or fusion or not (or fusion indication) ; or (d) reference line information and / or a wide-angle condition. 3.2 Inheritance information setting for the TIMD mode
[0093] For the TIMD mode, the inheritance information includes at least one of the following (a) and / or (b) and / or (c) and / or (d) : (a) one or more TIMD cost values for the available TIMD intra prediction modes (such as DC, planar, and / or directional prediction modes) ; (b) the N intra prediction modes (with the smallest N TIMD costs) suggested by the TIMD costs; (c) TIMD weighting information and / or TIMD fusion or not (or TIMD fusion indication) ; or (d) reference line information and / or the wide-angle condition. 3.3 Inheritance information setting for the MRL mode
[0094] For the MRL mode, the inheritance information includes at least one of the following (a) and / or (b) and / or (c) and / or (d) : (a) one or more reference lines jointly with intra prediction modes (such as DC, planar, and / or directional prediction modes) ; (b) the N intra prediction modes (with the smallest N TIMD costs) suggested by the TIMD costs; (c) weighting information and / or fusion or not (or fusion indication) ; or (d) reference line information and / or the wide-angle condition. 3.4 Inheritance information setting for EIP mode
[0095] For the EIP mode, the inheritance information includes at least one of the following (a) and / or (b) and / or (c) : (a) the filter shape; (b) all or parts of the filter coefficients; or (c) the template used to derive the filter coefficients. 3.5 Inheritance information setting for the intra mixed merge mode
[0096] When the target mode is the intra mixed merge mode proposed by the Applicant, the inheritance information includes all or any subset of the following items: the above-mentioned inheritanceinformation setting for the DIMD mode; the above-mentioned inheritance information setting for the TIMD mode; the above-mentioned inheritance information setting for the MRL mode; or the above-mentioned inheritance information setting for the EIP mode.
[0097] When the target mode is the intra mixed merge mode proposed by the Applicant, the inheritance information may further include the enabled coding mode type, for example, whether the coding mode is the DIMD-related mode or not, whether the coding mode is TIMD-related mode or not, whether the coding mode is the MRL-related mode or not, whether the coding mode is the SGPM-related mode or not, whether the coding mode is the ISP-related mode or not, whether the coding mode is the intraTMP-related mode or not, whether the coding mode is the MPM-related mode or not, whether the coding mode is the MIP-related mode or not, whether the coding mode is the EIP-related mode or not, and / or whether the coding mode is any mode related to a pre-defined intra mode. The inheritance information may further include corresponding information of the coding mode.
[0098] In another embodiment, the enabled coding mode type value is included in the inheritance information and / or the enabled coding mode type value decides the corresponding information to be further included in the intra mixed merge mode inheritance information. For example, the enabledcoding mode is anMRL-related mode and only the corresponding information from the above-mentioned inheritance information for the MRL mode is included in the intra mixed merge mode inheritance information.
[0099] In one embodiment, the coding mode in the inheritance information setting for the intra mixed merge modeis from a previous coded block. The previous coded block may store the intra mixed merge mode inheritance information or the mixed-mode inheritance information. The stored mixed-mode inheritance information of the previous coded block may be referenced by subsequent coding blocks (e.g., 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, the mixed-mode information is stored and / or referenced by subsequent coding blocks. The unit can be any pre-defined region or k x k grids, where k can be 2, 4, 8, 16, or any pre-defined positive integer.
[0100] In one sub-embodiment, the enabled coding mode type is EIP. 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) .
[0101] In one sub-embodiment, the enabled coding mode type is SGPM. This mode generates multiple 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. 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) .
[0102] In one sub-embodiment, the enabled coding mode type is ISP. This 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) .
[0103] In one sub-embodiment, the enabled coding mode type is the IntraTMP. This mode uses template matching to find a displacement (i.e., block vector) to refer 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 (for example, one or more block vectors) and / or stores the mixed-mode inheritance information (coding mode and / or the corresponding information) .
[0104] In another embodiment, the enabled coding mode type is MIP. This 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 (for example, 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) .
[0105] In another embodiment, instead of storing all mixed-mode information (which may be used for reference) , to reduce the storage, only the subset of mixed-mode information is stored. 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 always include the enabled coding mode type.
[0106] In one embodiment, the inheritance information of the target mode depends on an inherited coding mode value of the selected merge candidate.
[0107] In one sub-embodiment, if the coding mode of the selected merge candidate is DIMD, TIMD, EIP or MRL, the inherited coding mode value is the same as the coding mode (i.e., is DIMD, TIMD, EIP or MRL respectively) .
[0108] In one sub-embodiment, for a block coded in DIP merge mode, the inherited mode type value is set as following: when the current block is coded in DIP merge mode, the block will select a merge candidate to generate prediction. If the selected merging candidate for the current block is coded in DIMD, TIMD, MRL or EIP, the inherited mode type value of the current block is set to DIMD, TIMD, MRL or EIP respectively. If the selected merging candidate for the current block is coded in DIP merge mode, the inherited mode type value of the current block is set to the inherited mode type value of the selected merging candidate.
[0109] In one sub-embodiment, if the inherited mode type is DIMD, the inheritance information setting following the description in the above-mentioned III. 3.1 Section of the Inheritance information setting for the DIMD mode.
[0110] In one sub-embodiment, if the inherited mode type is TIMD, the inheritance information setting following the description in the above-mentioned III. 3.2Section of the Inheritance information setting for the TIMD mode.
[0111] In one sub-embodiment, if the inherited mode type is MRL, the inheritance information setting following the description in the above-mentioned III. 3.3Section of the Inheritance information setting for the MRL mode.
[0112] In one sub-embodiment, if the inherited mode type is EIP, the inheritance information setting may follow the above-mentioned description in III. 3.4Section Inheritance information setting for the EIP mode.
[0113] At operation 1103, computing a cost for each of the plurality of candidates.
[0114] In one embodiment, after building the merge candidate list, the cost foreach candidate is computed based on a pre-defined method.
[0115] In one sub-embodiment, the cost is computed with a template matching method. The template matching method includes: determining a template that is previously reconstructed and adjacent to the current block; generating prediction values for samples of the template based on the inheritance information of the each candidate; andgenerating the cost for the each candidate based on the differences between the prediction values and reconstructed values of the samples of the template.
[0116] As is illustrated in FIG. 13, FIG. 13 exemplarily illustrates the template matching method for computing the cost. The predictions of the neighboring templates based on each candidate are first generated. Then the difference between the prediction samples and the reconstructed samples are computed. The difference is referred as the template cost. The difference may be SAD or SATD.
[0117] In one sub-embodiment, as shown in the FIG. 13, the size of above neighboring reconstructed template of the current block is wa×ha, and the size of left neighboring reconstructed template of the current block is wb×hb. For example, wais greater than or equals to the current block width, hbis greater than or equals to the current block height. For example, haand wb are constant value. For example, ha=wb=1. For another example, ha=wb=2. For example, ha and wb can be adaptively determined according to the current block size, width or height. If the current block size / width / height is larger than and / or equal to a threshold, ha and wbare set to a larger number, otherwise, ha and wb are set to a smaller number.
[0118] In one sub-embodiment, if the above neighboring template is not available, the template cost is computed solely with the left neighboring template. Similarly, if the left neighboring template is not available, the template cost is computed solely with the above neighboring template. If both neighboring templates are not available, the reordering method is not applied.
[0119] In one sub-embodiment, the template cost for the each candidate is generated based on all or a part of the pixels of the template. In other words, partial positions inside the above and left neighboring template are chosen to calculate the template cost. For example, a first start position and / or a first subsampling interval maybe defined depending on the width of the current block to partially select positions inside the above neighboring template. Similarly, a second start position and a second subsampling interval can be defined depending on the height of the current block to partially select positions inside the left neighboring template.
[0120] In one sub-embodiment, the costs of candidates with some specific coding modes are further adjusted. For example, the specific coding modes refer to DIMD modes, any subset of DIMD modes, DIMD related modes, any subset of DIMD-related modes, or any combination thereof. The cost of candidates with the specific coding modes are reducedby subtracting a positive offset, by scaling by a factor smaller than one, or by setting the cost to a minimum value, or the like. For another example, the specific coding modes refer to the TIMD modes, any subset of TIMD modes, TIMD related modes, any subset of TIMD related modes, EIP modes, any subset of EIP modes, or any combination thereof. The cost of candidates with the specific coding modes are increased by adding a positive offset, by scaling by a factor larger than one, or by setting the cost to a maximum value. The reordering of the list is performed on the adjusted costs. For candidates coded in DIP merge mode, the coding mode refers to the inherited mode type value of the DIP merge mode.
[0121] In one sub-embodiment, the cost is computed based on a spatial distance metric between the candidate and the current block. The greater the spatial distance is, the greater the cost. The candidates are reordered based the distance metric in an ascending order. The distance between a first point in the candidate and a second point in the current block is computed. The first point can be the top-left, top-right, center, bottom-left, or bottom-right position of the candidate. The second point can be the top-left, top-right, center, bottom-left, or bottom-right position of the current block. The spatial distance metric can be computed with Euclidean distance, horizontal distance, vertical distance, Manhattan distance, or Minkowski distance.
[0122] In one sub-embodiment, if the cost is computed based on a spatial distance metric between the candidate and the current block, and the candidate is a temporal candidate (more details are in Section 2.2.1.3 “Temporal candidates” ) , the collocated block of the temporal candidate is first used to compute the spatial distance, and then the spatial distance is further adjusted. Assume the temporal candidate is at (x, y) with width w and height h, the collocated block is the block at with width w and height h in the current picture. The spatial distance is then adjusted by adding a positive offset or by scaling by a factor larger than one. The positive offset or the scaling factor can be determined based on the POC distance of the picture of the temporal candidate and the current picture. If the POC distance is larger, the offset or scaling factor is set to a larger value.
[0123] In one sub-embodiment, if the cost is computed based on a spatial distance metric between the candidate and the current block, and the candidate is a temporal candidate, the distance of the temporal candidate is set to a maximum value.
[0124] At operation 1104, reordering the plurality of candidates according to their respective cost to form a reordered merge candidate list.
[0125] The candidatesare reordered based their respective template cost in ascending order.
[0126] In one embodiment, after building the merge candidate list, the merge list is reordered. The reordering rules can depend on the coding information of neighboring blocks. If the neighboring block is coded in certain coding mode, the candidates with that certain coding mode is moved towards the beginning of the list. For candidates coded in DIP merge mode, the coding mode refers to the inherited mode type value of the DIP merge mode. For example, if neighboring above or left blocks are coded by DIMD, the DIMD candidates in the list can be moved towards the beginning of the list.
[0127] In one embodiment, when there are multiple merge candidate lists constructed, the reordering method used for different merge candidate lists can be different.
[0128] In one sub-embodiment, the merge list is reordered with a first method, the first I candidates are then reordered again with a second method. I is a positive value smaller than the maximum number N of allowed candidates in the merge candidate list. For example, the first method is the spatial distance metric, and the second method is the template matching method.
[0129] In one sub-embodiment, after merge list is reordered, the redundancy of the candidate is further checked. In a case where the cost of a candidate and that of its precedent candidate in the reordered merge candidate list is less than or equal to a predefined threshold, this candidate is redundant. If a candidate is redundant, it maybe removed from the reordered merge candidate list, or it may be move to the end of the list.
[0130] At operation 1105, determining one or more target candidates from the reordered merge candidate list.
[0131] In one sub-embodiment, the determined candidates may only be from the first M candidates after reordering. M is a positive value smaller than the maximum number N of allowed candidates in the merge candidate list. For example, M may be 2. For example, M may be 3.
[0132] In one embodiment, after building the merge candidates list, one or more candidates are selected from the list for the current block to use. An index of the target candidate for predicting the current block in the reordered merge candidate list is explicitly signalled or implicitly set. The selection of the one or more target candidate for predicting the current block depends on explicitly signalling an index or implicitly setthe one or more (promising) candidates. 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.
[0133] The above-mentioned cost calculation and / or list reordering process 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. The candidates in the list are reordered based on cost in ascending order.
[0134] At operation 1106, generating prediction data for the current block based on the inheritance information of the one or more target candidates.
[0135] The prediction data may be the sample or pixel values of the current block that are predicted based on the inheritance information of the determined one or more target candidates. 4. Target mode setting and shortcut syntax setting 4.1 Target mode setting for DIMD (DIMD merge mode)
[0136] This section specifies a DIMD merge mode. When DIMD merge mode is used, the DIMD inheritance information from one or more pre-defined candidates 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 (one kind of prediction information) and / or corresponding weights 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. 4.2 Target mode setting for TIMD (TIMD merge mode)
[0137] This section specifies a TIMD merge mode. When the TIMD merge mode is used, the TIMD inheritance information from one or more pre-defined candidates (for example, each candidate providing N intra prediction modes for the available TIMD intra prediction modes and TIMD weighting information, such as {IPM1, IPM2, W1, W2} , and / or fusion or not, and wide-angle conditions) 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 candidates from the list are kept for signaling. 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. 4.3 Target mode setting for MRL (MRL merge mode)
[0138] This section specifies a MRL merge mode. When the MRL merge mode is used, the inheritance information from one or more pre-defined candidates (for example, each candidate providing toone or more reference lines jointly with intra prediction modes (IPM1 and MRL1) and / or fusion or not, and wide-angle conditions) 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 candidates from the list are kept for signaling. Then, unified with regular intra prediction, for the example of inherited IPM1 and MRL1, 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 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 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. 4.4 Target mode setting for the intra mixed merge mode
[0139] This section specifies a mixed-mode merge mode. When the mixed-mode merge mode is used, the inherited mixed-mode information is used to generate the prediction of the current block. 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] For an example of the coding mode from the inherited mixed-mode information being DIMD-related: in one case or another, DIMD merge mode or regular DIMD is applied to the current block.
[0141] For an example of the coding mode from the inherited mixed-mode information being TIMD-related: in one case or another, TIMD merge mode or regular TIMD is applied to the current block.
[0142] For an example of the coding mode from the inherited mixed-mode information being MRL-related: in one case or another, MRL merge mode or regular intra prediction using MRL or TMRL is applied to the current block.
[0143] For an example of the coding mode from the inherited mixed-mode information being EIP-related: in one case or another, EIP merge mode or EIP derived mode is applied to the current block.
[0144] In another embodiment, only one candidate (e.g., the first available candidate) according to the inheritance block setting, is used to decide the prediction information for the current block.
[0145] 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, assume a pre-defined maximum number be J. The first J available candidates according to the checking order are used to decide the prediction information for the current block. If the number of total available candidate is smaller than J, all the available candidates are used to decide the prediction information for the current block.
[0146] In one embodiment, an additional flag is signaled to indicate whether DIP merge mode is used or not before the DIMD flag. If DIP merge mode is used, a candidate index is additionally signaled.
[0147] At operation 1107, encoding or decoding the current block based on the prediction data.
[0148] The proposed video coding method brings more flexible inheritance flows and / or more efficient inheritance information. Further, by reordering the candidate merge list, the more promising candidate may be coded by fewer bits, thereby increasing the coding efficiency of the video.
[0149] In one embodiment, the candidate index is coded using truncated unary, and each bin of candidate index is context coded with a separate context.
[0150] The term “block” in this invention can refer to TU / TB, CU / CB, PU / PB, pre-defined region, or CTU / CTB.
[0151] Any combination of the proposed methods in this invention can be applied.
[0152] 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.
[0153] 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. However, the decoder or encoder may also use additional processing unit to implement the required processing. While the intra / inter prediction units are 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) ) .
[0154] As is illustrated in FIG. 14, according to an embodiment of the present disclosure, an apparatus 200 for video coding including one or more electronic circuits or processors 21 is disclosed. The one or more electronic circuits or processors is configured to perform operations comprises: receiving input data associated with a current block of a current image of a video, 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, and wherein the current block is coded in an intra mode; constructing a merge candidate list for the current block, wherein the merge candidate list comprises a plurality of candidates, each of the plurality of candidates comprises inheritance information that is inherited from a previously coded block and matches a target intra mode; computing a respective cost for each of the plurality of candidates; reordering the plurality of candidates according to their respective cost to form a reordered merge candidate list; determining one or more target candidates from the reordered merge candidate list; generating prediction data for the current block based on the inheritance information of the one or more target candidates; and encoding or decoding the current block based on the prediction data, wherein the operation of computing the respective cost for each of the plurality of candidates comprises: computing the cost for each candidate based on a spatial distance between the previously coded block of the each candidate and the current block, wherein the greater the spatial distance is, the greater the cost; and / or computing the cost for the each candidate through a template matching method.
[0155] When the apparatus 200 is used as an encoder, the apparatus 200 may be constructed as the encoder illustrated in the above-mentioned FIG. 1A. When the apparatus 200 is used as a decoder, the apparatus 200 may be constructed as the decoder illustrated in the above-mentioned FIG. 1B.
[0156] In one embodiment, the apparatus 200 is constructed as the encoder of FIG. 1A. The input data associated with the current block of the current image of the video may be received by the Intra Prediction 110 of the apparatus 200. The input data may include pixel data to be encoded at the apparatus 200. The current block is coded in the intra mode. The Switch 114 correspondingly selects the Intra Prediction 110. The Intra Prediction 110 may construct the merge candidate list for the current block. The merge candidate list may include a plurality of candidates, each of the plurality of candidates includes inheritance information that is inherited from a previously coded block and matches a target intra mode. The Intra Prediction 110 may compute a respective cost for each of the plurality of candidates, reorder the plurality of candidates according to their respective cost to form a reordered merge candidate list, determine one or more target candidates from the reordered merge candidate list, generate prediction data for the current block based on the inheritance information of the one or more target candidates, and encode the current block based on the prediction data. Further, the operation of computing the respective cost for each of the plurality of candidates may include: computing the cost for each candidate based on a spatial distance between the previously coded block of the each candidate and the current block, wherein the greater the spatial distance is, the greater the cost; and / orcomputing the cost for each candidate through a template matching method.
[0157] In one embodiment, the apparatus 200 is constructed as the decoder of FIG. 1B. The input data associated with the current block of the current image of the video may be received by the Intra Prediction 150 of the apparatus 200. The input data may include data associated with the current block to be decoded at the apparatus 200. The current block is coded in the intra mode. The Intra Prediction 150 may construct the merge candidate list for the current block. The merge candidate list may include a plurality of candidates, each of the plurality of candidates includes inheritance information that is inherited from a previously coded block and matches a target intra mode. The Intra Prediction 150 may compute a respective cost for each of the plurality of candidates, reorder the plurality of candidates according to their respective cost to form a reordered merge candidate list, determine one or more target candidates from the reordered merge candidate list, generate the prediction data for the current block based on the inheritance information of the one or more target candidates, and encode the current block based on the prediction data. Further, the operation of computing the respective cost for each of the plurality of candidates may include: computing the cost for each candidate based on a spatial distance between the previously coded block of the each candidate and the current block, wherein the greater the spatial distance is, the greater the cost; and / or, computing the cost for each candidate through a template matching method.
[0158] The flowcharts shown are 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.
[0159] 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.
[0160] 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.
[0161] 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 video coding method, comprising:receiving input data associated with a current block of a current image of a video, 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, and wherein the current block is coded in an intra mode;constructing a merge candidate list for the current block, wherein the merge candidate list comprises a plurality of candidates, each of the plurality of candidates comprises inheritance information that is inherited from a previously coded block and matches a target intra mode;computing a respective cost for each of the plurality of candidates;reordering the plurality of candidates according to their respective cost to form a reordered merge candidate list;determining one or more target candidates from the reordered merge candidate list;generating prediction data for the current block based on the inheritance information of the one or more target candidates; andencoding or decoding the current block based on the prediction data,wherein the operation of computing the respective cost for each of the plurality of candidates comprises:computing the cost for each candidate based on a spatial distance between the previously coded block of the each candidate and the current block, wherein the greater the spatial distance is, the greater the cost; and / orcomputing the cost for the each candidate through a template matching method.2.The video coding method as claimed in claim 1, whereinthe plurality of candidates areselected from a group comprises: spatial adjacent candidates, spatial non-adjacent candidates, history candidates, temporal candidates, and / or default candidates.3.The video coding method as claimed in claim 1, whereinthe inheritance information of a previously coded block of a candidate comprises a type of a coding mode, and / or prediction information matching the coding mode of the previously coded block.4.The video coding method as claimed in claim 3, whereinthe target intra mode comprises at least one selected from a group consisting of a decoder side intra mode derivation (DIMD) mode, a template-based intra mode derivation (TIMD) mode, an extrapolation filter-based intra prediction (EIP) mode, a template-based multiple reference line intra prediction (TMRL) mode, a spatial geometric partitioning (SGPM) mode, an intra sub-partition (ISP) mode, an intra template matching prediction (IntraTMP) mode, a matrix-based intra prediction (MIP) , an intra mixed merge mode, or a combination thereof.5.The video coding method as claimed in claim1, whereinthe operation of computing the cost for the each candidate through the template matching method comprises:determining a template that is previously reconstructed and adjacent to the current block;generating prediction values for samples of the template based on the inheritance information of the each candidate; andgenerating the cost for the each candidate based on the differences between the prediction values and reconstructed values of the samples of the template.6.The video coding method as claimed in claim 5, whereinthe template comprises a left reconstructed region and / or an above reconstructed region of the current block;in a case where the template comprises the left reconstructed region, a height of the left reconstructed region is greater than or equal to aheight of the current block; orin a case where the template comprises the above reconstructed region, awidth of the above reconstructed region is greater than or equal to awidth of the current block.7.The video coding method as claimed in claim 1, whereinthe cost for the each candidate is generated based on all or a part of the pixels of the template.8.The video coding method as claimed in claim 4, whereinin a case where the type of the coding mode of the candidate is the DIMD mode, the prediction information comprises at least one of:one or more histogram values for available DIMD intra prediction modes;one or more intra prediction modes suggested by the one or morehistogram values;DIMD weighting information and / or a fusion indication; orreference line information and / or a wide-angle condition; orin a case where the type of the coding mode of the candidate is the TIMD mode, the prediction information comprises at least one of:one or more TIMD cost values for available TIMD intra prediction modes;one or more intra prediction modes suggested by the one or moreTIMD cost values;TIMD weighting information and / or the fusion indication; ora reference line information and / or a wide-angle condition; orin a case where the type of the coding mode of the candidate is the MRL mode, the prediction information comprises at least one of:one or more reference lines jointly with one or more intra prediction modes;the one or more intra prediction modes suggested by a TIMD cost;weighting information and / or afusion indication; ora reference line information and / or a wide-angle condition; orin a case where the type of the coding mode of the candidate is the EIP mode, the prediction information comprises at least one of:a shape of a filter;all or a part of filter coefficients for the filter; ora template configured to derive the filter coefficients.9.The video coding method as claimed in claim 4, whereinin a case where the type of the coding mode of the candidate is the intra mixed merge mode, the inheritance information further comprises an enabled coding mode type.10.The video coding method as claimed in claim 4, whereinthe operation of computing the cost for each of the plurality of candidates further comprises:in a case where the type of the coding mode of a candidate is the DIMD mode, reducing the computed cost of the candidate.11.The video coding method as claimed in claim 4, whereinthe operation of computing the cost for each of the plurality of candidates further comprises:in a case where the type of the coding mode of a candidate is the TIMD mode or the EIP mode, increasing the computed cost of the candidate.12.The video coding method as claimed in claim 1, whereinthe operation of reordering the plurality of candidates according to their respective cost to form the reordered merge candidate list further comprise:in a case where the cost of a candidate and that of its precedent candidate in the reordered merge candidate list is less than or equal to a predefined threshold, removing the candidate from the reordered merge candidate list, or moving the candidate to the end of the reordered merge candidate list.13.The video coding method as claimed in claim 1, whereinat least one index of the one or more target candidate in the reordered merge candidate list is explicitly signalled or implicitly set.14.An apparatus for video coding comprising one or more electronic circuits or processors, wherein the one or more electronic circuits or processors are configured to perform operations comprises:receiving input data associated with a current block of a current image of a video, 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, and wherein the current block is coded in an intra mode;constructing a merge candidate list for the current block, wherein the merge candidate list comprises a plurality of candidates, each of the plurality of candidates comprises inheritance information that is inherited from a previously coded block and matches a target intra mode;computing a respective cost for each of the plurality of candidates;reordering the plurality of candidates according to their respective cost to form a reordered merge candidate list;determining one or more target candidates from the reordered merge candidate list;generating prediction data for the current block based on the inheritance information of the one or more target candidates; andencoding or decoding the current block based on the prediction data,wherein the operation of computing the respective cost for each of the plurality of candidates comprises:computing the cost for each candidate based on a spatial distance between the previously coded block of the each candidate and the current block, wherein the greater the spatial distance is, the greater the cost; and / orcomputing the cost for the each candidate through a template matching method.
Citation Information
Patent Citations
Neighbor based signaling of intra prediction modes
CN109196869A
Method and device for coding and decoding mode selection in video coding and decoding system
CN116366837A
Merge candidate reordering in video coding
CN117546465A
Adaptive construction of most probable modes candidate list for video data encoding and decoding
WO2020056779A1