Intra merge mode

By modifying decoder-side intra mode derivation in video coding to combine texture analysis from neighboring and reference blocks, the method improves coding performance and reduces complexity in adapting to local motion and texture characteristics.

WO2025016418A1PCT designated stage expired Publication Date: 2025-01-23MEDIATEK INC

Patent Information

Application Number
PCT/CN2024/106085
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-07-18
Filing Date
2024-07-18
Publication Date
2025-01-23

AI Technical Summary

Technical Problem

Existing video coding standards face challenges in efficiently encoding pixel blocks, particularly in adapting to local motion and texture characteristics, which affects coding performance and complexity.

Method used

The proposed method modifies decoder-side intra mode derivation (DIMD) by generating a final set of texture analysis information through combining neighboring and reference block analysis, allowing for improved intra prediction modes and reduced complexity.

Benefits of technology

This approach enhances coding performance by accurately deriving intra prediction modes, reducing prediction residuals, and optimizing computational complexity in video coding.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024106085_23012025_PF_FP_ABST
    Figure CN2024106085_23012025_PF_FP_ABST
Patent Text Reader

Abstract

A method for using modified or adjusted information associated with decoder-side intra mode derivation (DIMD) for encoding or decoding a pixel block is provided. A video coder receives data to be encoded or decoded as a current block of pixels of a current picture of a video. The video coder analyzes samples neighboring the current block to generate a first set of texture analysis (DIMD) information and / or the video coder obtains or derives at least one second set of texture analysis information associated with the current block or at least one reference block. The video coder generates a final set of texture analysis information based on the first set of texture analysis information, the at least one second set of texture analysis information, or both. The video coder encodes or decodes the current block based on the final set of texture analysis information or stores the final set of texture analysis information.
Need to check novelty before this filing date? Find Prior Art

Description

INTRA MERGE MODECROSS REFERENCE TO RELATED PATENT APPLICATION (S)The present disclosure is part of a non-provisional application that claims the priority benefit of U.S. Provisional Patent Application No. 63 / 514, 155, filed on 18 July 2023. Content of above-listed application is herein incorporated by reference.TECHNICAL FIELDThe present disclosure relates generally to video coding. In particular, the present disclosure relates to methods of coding pixel blocks by intra-prediction and merge mode.BACKGROUNDUnless 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.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) .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.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.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.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.For each inter-predicted CU, motion parameters consisting of motion vectors, reference picture indices and reference picture list usage index, and additional information are used for inter-predicted sample generation. The motion parameter can be signalled in an explicit or implicit manner. When a CU is coded with skip mode, the CU is associated with one PU and has no significant residual coefficients, no coded motion vector delta or reference picture index. A merge mode is specified whereby the motion parameters for the current CU are obtained from neighbouring CUs, including spatial and temporal candidates, and additional schedules introduced in VVC. The merge mode can be applied to any inter-predicted CU. The alternative to merge mode is the explicit transmission of motion parameters, where motion vector, corresponding reference picture index for each reference picture list and reference picture list usage flag and other needed information are signalled explicitly per each CU.In order to improve the coding performance and / or to reduce complexity for a system using texture analysis information, methods and apparatus for coding video blocks using texture analysis information are disclosedSUMMARYThe 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.Some embodiments of the disclosure provide methods for modifying or adjusting information associated with decoder-side intra mode derivation (DIMD) for encoding or decoding a pixel block. A video coder (i.e., encoder or decoder) receives data to be encoded or decoded as a current block of pixels of a current picture of a video. The video coder analyzes samples neighboring the current block to generate a first set of texture analysis information (also referred to as e.g., DIMD information) . A set of texture analysis information may include histogram values, intra prediction modes, or both. The video coder obtains or derives at least one second set of texture analysis information associated with the current block or at least one reference block. The video coder generates a final set of texture analysis information based on the first set of texture analysis information, the second set of texture analysis information, or both. The video coder encodes or decodes the current block based on the final set of texture analysis information, or stores the final set of texture analysis information.The at least one reference block may be determined based on at least one candidate selected from a list of candidates. The video coder may check one or more candidates for the current block. The one or more candidates may include all or any subset of spatial adjacent candidates, non-adjacent candidates, history candidates, temporal candidates, and default candidates.The at least one second set of texture analysis information may be inherited from the at least one reference block, or may be inherited from at least one candidate selected from a list of candidates. In some embodiments, the at least one second set of texture analysis information is allowed to be inherited only if the at least one reference block is coded by intra prediction or contains texture analysis information. In some embodiments, the at least one second set of texture analysis is allowed to be inherited only if the at least one reference block is located at a pre-defined region.In some embodiments, the at least one second set of texture analysis information is derived by analyzing samples associated with the at least one reference block. In some embodiments, the at least one second set of texture analysis information is derived by analyzing predicted samples of the current block or the at least one reference block.In some embodiments, multiple sets of texture analysis information may be combined to be the final set of texture analysis information. The video coder may store the final set of texture analysis information, e.g., to be inherited or referenced by a subsequently coded block. The stored final set of texture analysis information being a subset of the final set of texture analysis information. The final set of texture analysis information may include one or more intra prediction modes that are determined to be used to generate multiple hypotheses of prediction to form a final prediction of the current block. The video coder may generate the final prediction based on the intra prediction modes from the final set of texture analysis information.BRIEF DESCRIPTION OF THE DRAWINGSThe accompanying drawings are included to provide a further understanding of the present disclosure, and are incorporated in and constitute a part of the present disclosure. The drawings illustrate implementations of the present disclosure and, together with the description, serve to explain the principles of the present disclosure. It is appreciable that the drawings are not necessarily in scale as some components may be shown to be out of proportion than the size in actual implementation in order to clearly illustrate the concept of the present disclosure.FIG. 1 shows the intra-prediction modes in different directions.FIGS. 2A-B conceptually illustrate top and left reference samples with extended lengths for supporting wide-angular direction modes for non-square blocks of different aspect ratios.FIG. 3 illustrates using template-based intra mode derivation (TIMD) to implicitly derive an intra prediction mode for a current block.FIG. 4 illustrates using decoder-side intra mode derivation (DIMD) to implicitly derive an intra prediction mode for a current block.FIG. 5 illustrates neighboring reconstructed samples used for DIMD chroma mode of a current block.FIG. 6 shows the mapping from intra prediction modes to a transform set.FIG. 7 illustrates using matrix-based intra-prediction samples to build a Histogram of Gradients.FIG. 8 illustrates the positions of spatial merge candidates.FIG. 9 shows spatial neighboring blocks used to derive the spatial merge candidates.FIG. 10 illustrates motion vector scaling for temporal merge candidate.FIG. 11 shows candidate positions for temporal merge candidate.FIG. 12 illustrates an example video encoder that may implement DIMD.FIG. 13 illustrates portions of the video encoder that implement intra prediction based on proposed DIMD information.FIG. 14 conceptually illustrates a process for encoding a pixel block using proposed DIMD information.FIG. 15 illustrates an example video decoder that may implement DIMD.FIG. 16 illustrates portions of the video decoder that implement intra prediction based on proposed DIMD information.FIG. 17 conceptually illustrates a process for decoding a pixel block using proposed DIMD information.FIG. 18 conceptually illustrates an electronic system with which some embodiments of the present disclosure are implemented.DETAILED DESCRIPTIONIn the following detailed description, numerous specific details are set forth by way of examples in order to provide a thorough understanding of the relevant teachings. Any variations, derivatives and / or extensions based on teachings described herein are within the protective scope of the present disclosure. In some instances, well-known methods, procedures, components, and / or circuitry pertaining to one or more example implementations disclosed herein may be described at a relatively high level without detail, in order to avoid unnecessarily obscuring aspects of teachings of the present disclosure.I. Intra Prediction Modesa. Directional Intra Prediction ModesIntra-prediction method exploits one reference tier which may be adjacent to the current prediction unit (PU) and one of the intra-prediction modes to generate the predictors for the current PU.The Intra-prediction direction can be chosen among a mode set containing multiple prediction directions. For each PU coded by Intra-prediction, one index will be used and encoded to select one of the intra-prediction modes. The corresponding prediction will be generated and then the residuals can be derived and transformed.FIG. 1 shows the intra-prediction modes in 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 may be extended from 33, as used in HEVC, to 65 direction modes 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) .The intra-prediction mode determined for the luma component may be directly used for the chroma component. This is referred to as chroma DM (direct mode) .Out of the 35 (or 67) intra-prediction modes, some modes (e.g., 3 or 5) 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. For example, the intra-prediction mode used in the left prediction block and the intra-prediction mode used in the above prediction block are used as MPMs.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 signalled using the original mode indices, which are remapped to indices of wide angular modes after parsing.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 are defined. FIGS. 2A-B conceptually illustrate top and left reference samples with extended lengths for supporting wide-angular direction mode for non-square blocks of different aspect ratios.The number of replaced modes in wide-angular direction mode depends on the aspect ratio of a block. The replaced intra prediction modes for different blocks of different aspect ratios are shown in Table 1 below.Table 1: Intra prediction modes replaced by wide-angular modesb. Chroma Intra Mode CodingFor chroma intra mode coding, a total of 8 intra modes are allowed for chroma intra mode coding. Those modes include five traditional intra modes and three cross-component linear model modes (CCLM, LM_A, and LM_L) . Chroma mode coding may directly depend on the intra prediction mode of the corresponding luma block. Since separate block partitioning structure for luma and chroma components is enabled in I slices, one chroma block may correspond to multiple luma blocks. Therefore, for chroma DM mode, the intra prediction mode of the corresponding luma block covering the center position of the current chroma block is directly inherited or derived from corresponding luma intra prediction mode.c. Template-based Intra Mode Derivation (TIMD)For mode selection, template matching method can be applied by computing the cost between reconstructed samples and predicting samples on the template. One of the examples is template-based intra mode derivation (TIMD) . TIMD is a coding method in which the intra prediction mode of a CU is implicitly derived by using a neighboring template at both encoder and decoder, instead of the encoder signaling the exact intra prediction mode to the decoder.FIG. 3 illustrates using template-based intra mode derivation (TIMD) to implicitly derive an intra prediction mode for a current block 300. As illustrated, the neighboring pixels of the current block 300 is used as template 310. For each candidate intra prediction mode, prediction samples of the template 310 are generated using the reference samples, which are in a L-shape reference region 320 above and left of the template 310. A TM cost for a candidate intra prediction mode is calculated based on a difference (e.g., SATD) between reconstructed samples of the template and the prediction samples of the template generated by the candidate intra prediction mode. The candidate intra prediction mode with the minimum cost is selected (as the TIMD mode similar to the implicit mode derivation in the DIMD mode) and used for intra prediction of the CU. The candidate intra prediction modes may include 67 intra prediction modes (as in VVC) or extended to 131 intra prediction modes. MPMs may be used to indicate the directional information of a CU. Thus, to reduce the intra mode search space and utilize the characteristics of a CU, the intra prediction mode is implicitly derived from the MPM list.In some embodiments, for each intra prediction mode in the MPM list, the SATD between the prediction and reconstructed samples of the template is calculated as the TM cost of the intra prediction mode. First two intra prediction modes with the minimum SATD are selected as the TIMD modes. These two TIMD modes are fused with the weights after applying PDPC process, and such weighted intra prediction is used to code the current CU. Position dependent intra prediction combination (PDPC) is included in the derivation of the TIMD modes.The costs of two selected intra prediction modes (mode1 and mode2) are compared with a threshold, for example, the cost factor of 2 is applied as follows:costMode2 < 2*costMode1If this condition is true, the prediction fusion is applied, otherwise only mode1 is used. Weights of the modes are computed from their SATD costs as follows:weight1 = costMode2 /  (costMode1+ costMode2)weight2 = 1 -weight1II. Decoder Side Intra Mode Derivation (DIMD)a. Preliminary DIMDDecoder-Side Intra Mode Derivation (DIMD) is a technique in which one or more, for example, two, intra prediction modes such as angles or directions are derived from the reconstructed neighbor samples (template) of a block, and those two predictors are combined with the non-angular predictor such as planar mode predictor with the weights derived from the gradients. The DIMD mode is used as an alternative prediction mode and / or is always checked in high-complexity RDO mode. To implicitly derive the intra prediction modes of a block, a texture gradient analysis is performed at both encoder and decoder sides. This process starts with an empty Histogram of Gradient (HoG) having 65 entries, corresponding to the 65 angular / directional intra prediction modes. Amplitudes of these entries are determined during the texture gradient analysis.A video coder performing DIMD performs the following steps: in a first step, the video coder picks a template of T=3 columns and lines from respectively left and above current block. This area is used as the reference for the gradient based intra prediction modes derivation. In a second step, the horizontal and vertical Sobel filters are applied on all 3×3 window positions, centered on the pixels of the middle line of the template. On each window position, Sobel filters calculate the intensity of pure horizontal and vertical directions as Gx and Gy , respectively. Then, the texture angle of the window is calculated as:angle=arctan (Gx / Gy) ,which can be converted into one of the 65 angular intra prediction modes. Once the intra prediction modes index of current window is derived as idx, the amplitude of its entry in the HoG [idx] is updated by addition ofamapl= |Gx|+|Gy|FIG. 4 illustrates using decoder-side intra mode derivation (DIMD) to implicitly derive an intra prediction mode for a current block. The figure shows an example Histogram of Gradient (HoG) 410 that is calculated after applying the above operations on all pixel positions in a template 415 that includes neighboring lines of pixel samples around a current block 400. Once the HoG is computed, the indices of the two tallest histogram bars (M1 and M2) 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 (M1 prediction, M2 prediction, and 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. The prediction fusion or combined prediction for DIMD can be:PredDIMD = (43* (w1*predM1 + w2*predM2) + 21*predplanar) >>6w1 = ampM1  /  (ampM1 +ampM2)w2 = ampM2  /  (ampM1 +ampM2)In addition, derived intra prediction modes, for example, the two implicitly derived intra prediction modes, are added into the most probable modes (MPM) list, so the DIMD process is performed before the MPM list is constructed. The primary derived intra prediction mode of a DIMD block is stored with a block and is used for MPM list construction of the neighboring blocks.As mentioned, when DIMD is applied, two intra prediction modes are derived from the reconstructed neighbor samples, and those two predictors are combined with the planar mode predictor with the weights derived from the gradients. The division operations in weight derivation are performed utilizing the same lookup table (LUT) based integerization scheme used by the CCLM. For example, the division operation in the orientation calculationOrient=Gy / Gxis computed by the following LUT-based scheme:x = Floor (Log2 (Gx) )normDiff = ( (Gx<< 4) >> x) &15x += (3 + (normDiff ! = 0) ? 1 : 0)Orient = (Gy* (DivSigTable [normDiff ] | 8) + (1<< (x-1) ) ) >> xwhereDivSigTable

[0016] = {0, 7, 6, 5 , 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0 } .b. DIMD Chroma ModeThe DIMD chroma mode uses the DIMD derivation method to derive the chroma intra prediction mode of the current (chroma) block based on the neighboring reconstructed Y, Cb and Cr samples in the second neighboring row and column (second from the collocated luma block of the current block or the current block) as shown in FIG. 5, which illustrates neighboring reconstructed samples used for DIMD chroma mode of a current block. Specifically, a horizontal gradient and a vertical gradient are calculated for each collocated reconstructed luma sample (such as the neighboring collocated reconstructed Y samples) of the current chroma block and the neighboring reconstructed Cb and Cr samples to build a HoG. Then the intra prediction mode with the largest histogram amplitude value is used for performing chroma intra prediction of the current chroma block.When the intra prediction mode derived from the DIMD chroma mode is the same as the intra prediction mode derived from the DM mode, the intra prediction mode with the second largest histogram amplitude value is used as the DIMD chroma mode. A CU level flag is signaled to indicate whether the DIMD chroma mode is applied.c. Transform Selection and DIMDThe encoder has the ability to apply non-separable or separable mode-dependent transforms to the inputs, for example, prediction residuals or low frequency coefficients after the primary transform, such as DCT type-II. The non-separable mode-dependent transform can be Low-Frequency Non-Separable Transform (LFNST) which performs on low frequency coefficients after the primary transform. The decoder performs inverse transform process.An example of LFNST is shown as follows. Three different kernels, LFNST4, LFNST8, and LFNST16, are defined to indicate LFNST kernel sets, which are applied to 4xN / Nx4 (N≥4) , 8xN / Nx8 (N≥ 8) , and MxN (M, N≥ 16) , respectively. The kernel dimensions are specified by: (LFSNT4, LFNST8, LFNST16) = (16x16, 32x64, 32x96) . The forward LFNST is applied to top-left low frequency region, which is called Region-Of-Interest (ROI) . When LFNST is applied, primary-transformed coefficients that exist in the region other than ROI are zeroed out. The ROI for LFNST16 consists of six 4x4 sub-blocks, which are consecutive in scan order. Since the number of input samples is 96, transform matrix for forward LFNST16 can be Rx96. R is chosen to be 32 in this example, 32 coefficients (two 4x4 sub-blocks) are generated from forward LFNST16 accordingly.In some embodiments, an intra prediction mode can be used to determine which kernel (or matrix) set of the mode-dependent transform, for example, LFNST set, is used.For blocks using matrix-based intra-prediction (MIP) , the LFNST set index is derived as shown in FIG. 6, which shows the mapping from intra prediction modes to LFNST sets. DIMD is used to derive the intra prediction mode of the current block based on the MIP predicted samples before upsampling. Specifically, a horizontal gradient and a vertical gradient are calculated for each predicted sample to build a Histogram of Gradients (HoG) . FIG. 7 illustrates using MIP prediction samples before upsampling to build a Histogram of Gradients. Then the intra prediction mode with the largest histogram amplitude value is used to determine the LFNST transform set and LFNST transpose flag.d. DIMD Merge ModeWhen using DIMD, up to five DIMD modes such as intra prediction modes may be derived, by analysing the directionality of the content in the surrounding of the current block such as the template of the current block. A Histogram of Gradients (HoG) is computed on a three-sample wide / high L-shaped template formed of already reconstructed samples. This is obtained using the Sobel filter, accumulating the magnitudes of all gradients at a given direction, for all the samples within the center line of the template of the current block. The directions with highest cumulative magnitude are selected as main and secondary DIMD modes. The predictors obtained with the DIMD modes are then blended to form the final DIMD prediction. Uniform or spatial blending is used, where the DIMD predictors are combined with a Planar predictor, using weights that depend on the relative magnitudes of the modes in the histogram of gradients. The DIMD merge mode is described as follows. When using DIMD Merge, the DIMD information extracted from neighbouring blocks is used to compute the intra prediction for the current block. In particular, a new Merged Histogram of Gradients (MHoG) is computed for the current block based on the HoGs of neighbouring blocks. Only neighbouring blocks encoded or decoded with DIMD or with DIMD Merge are considered. When a single DIMD or DIMD Merge neighbouring block is available, then its histogram of gradients is used to form the MHoG for the current block. If more than one DIMD or DIMD Merge neighbouring blocks are available, the corresponding histograms are combined by means of amplitude averaging to derive the MHoG. Finally, the MHoG is used to compute intra prediction modes and weights, as in conventional DIMD. The directional modes and their weights corresponding to the five highest amplitudes in the MHoG are selected, and the corresponding predictors are blended as in conventional DIMD. DIMD Merge is only available as an option if the current block has at least one neighbour that is coded with DIMD or DIMD Merge. Under these conditions, usage of DIMD Merge is then signalled with a CABAC coded CU level flag. One new CABAC context was included to support coding of the DIMD Merge flag. When it comes to signalling, DIMD Merge is considered as a sub-mode of DIMD. That is, the DIMD Merge flag is only signalled if DIMD flag = 1 and if there are neighbouring CUs that are coded with DIMD or DIMD Merge.III. Inter Predictiona. Merge Candidate ListA number of inter prediction coding tools are listed as follows.■ Extended merge prediction■ Merge mode with MVD (MMVD)■ Symmetric MVD (SMVD) signalling■ Affine motion compensated prediction■ Subblock-based temporal motion vector prediction (SbTMVP)■ Adaptive motion vector resolution (AMVR)■ Motion field storage: 1 / 16th luma sample MV storage and 8x8 motion field compression■ Bi-prediction with CU-level weight (BCW)■ Bi-directional optical flow (BDOF)■ Decoder side motion vector refinement (DMVR)■ Geometric partitioning mode (GPM)■ Combined inter and intra prediction (CIIP)For (regular) merge mode, the merge candidate list may be constructed by including the following five types of candidates in order:■ Spatial MVP from spatial neighbour CUs (Spatial Merge Candidates)■ Temporal MVP from collocated CUs (Temporal Merge Candidates)■ History-based MVP from a FIFO table (HMVP Merge Candidate)■ Pairwise average MVP (Pairwise Average Candidate)■ Zero MVs.FIG. 8 illustrates the positions of spatial merge candidates. A maximum of four merge candidates are selected among candidates located in the positions depicted in the figure. The order of derivation is B0, A0, B1, A1 and B2. Position B2 is considered only when one or more than one CUs of position B0, A0, B1, A1 are not available (e.g. because it belongs to another slice or tile or is intra coded) . After candidate at position A1 is added, the addition of the remaining candidates is subject to a redundancy check which ensures that candidates with same motion information are excluded from the list so that coding efficiency is improved.In addition to the above-mentioned spatial merge candidates, the non-adjacent spatial merge candidates are inserted after the TMVP (temporal MVP such as temporal merge candidate) in the regular merge candidate list. FIG. 9 shows spatial neighboring blocks used to derive the spatial merge candidates. 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.For temporal merge candidate, only one candidate is added to the list. Particularly, in the derivation of this temporal merge candidate, a scaled motion vector is derived based on co-located CU belonging to the collocated reference picture. The reference picture list and the reference index to be used for derivation of the co-located CU is explicitly signaled in the slice header. FIG. 10 illustrates motion vector scaling for temporal merge candidate. The scaled motion vector is scaled from the motion vector of the co-located CU using the POC distances, tb and td, where tb is defined to be the POC difference between the reference picture of the current picture and the current picture and td is defined to be the POC difference between the reference picture of the co-located picture and the co-located picture. The reference picture index of temporal merge candidate is set equal to zero.FIG. 11 shows candidate positions for temporal merge candidate. As illustrated, the position for the temporal merge candidate is selected between candidates C0 and C1. If CU at position C0 is not available, is intra coded, or is outside of the current row of CTUs, position C1 is used. Otherwise, position C0 is used in the derivation of the temporal merge candidate.The history-based MVP (HMVP) merge candidates are added to merge list after the spatial MVP such as spatial merge candidates and TMVP. In this method, the motion information of a previously coded block is stored in a table and used as MVP for the current CU. The table with multiple HMVP candidates is maintained during the encoding / decoding process. The table is reset (emptied) when a new CTU row is encountered. Whenever there is a non-subblock inter-coded CU, the associated motion information is added to the last entry of the table as a new HMVP candidate.Pairwise average candidates are generated by averaging predefined pairs of candidates in the existing merge candidate list, using the first two merge candidates. The first merge candidate is defined as p0Cand and the second merge candidate can be defined as p1Cand, respectively. The averaged motion vectors are calculated according to the availability of the motion vector of p0Cand and p1Cand separately for each reference list. If both motion vectors are available in one list, these two motion vectors are averaged even when they point to different reference pictures, and its reference picture is set to the one of p0Cand; if only one motion vector is available, use the one directly; if no motion vector is available, keep this list invalid. Also, if the half-pel interpolation filter indices of p0Cand and p1Cand are different, it is set to 0.When the merge list is not full after pair-wise average (merge) candidates are added, the zero MVPs are inserted in the end until the maximum merge candidate number is encountered.IV. Proposed Methods to improve or use or store DIMD InformationSome embodiments of the disclosure provide methods for enhancing information associated with DIMD. For example, in some embodiments, information associated with DIMD (e.g., histogram, intra prediction modes such as angular direction, etc., also referred to as DIMD information or texture analysis information) may be adjusted or refined or derived to be more accurate (e.g., resulting in smaller prediction residual) by using inheritance or derivation. In some embodiments, DIMD information is enhanced by settings related to at least one of the following: (1) proposed DIMD information; (2) using DIMD information inherited from the previous coded blocks; (3) re-deriving DIMD information of previous coded blocks; (4) constraints related to inheriting or re-deriving DIMD information. These settings are described in the Sections IV. athrough IV. d below. In some embodiments, one or more of these settings are applied to all prediction modes, for example, referring to coding tools, with the syntax under DIMD enabling flag equal to true, or any subset (sub-modes such as DIMD merge mode) of the intra prediction modes, for example, referring to intra coding tools, with the syntax under DIMD enabling flag equal to true.a. Proposed DIMD InformationIn some embodiments, for a block containing DIMD information (e.g., an intra DIMD coding block) , the DIMD information (also referred to as e.g., texture analysis information) includes the histogram (bar) values for the available DIMD intra prediction modes (such as DC, planar, and / or directional prediction modes) and / or the N intra prediction modes suggested by the histogram values (with the highest N histogram bars) . The directional prediction modes can be in a pre-defined directional range such as 0 to 64 (so there are total 65 directional prediction modes) , or 0 to 128 or 130 (so there are total 129 or 131 directional prediction modes. ) The histogram values for available intra prediction modes can be obtained by performing texture analysis on a specified region associated with a block such as performing gradient analysis on samples of the block and / or samples of a template of the block to get histogram of gradients. One example of getting histogram of gradients by performing gradient analysis on reconstructed samples of the template of the block is the texture gradient analysis of preliminary DIMD. Another example of getting histogram of gradients by performing gradient analysis on predicted samples of the block is the predictor-DIMD.As mentioned above Section II. a, a preliminary DIMD information is calculated based on the neighboring template of the current block. In some embodiment, the preliminary DIMD information is further adjusted according to the inherited DIMD information obtained in the Section IV. b and / or the re-derived DIMD information obtained in the Section IV. c and / or predictor-DIMD. The adjustment can be performed by at least one combining operation (for example, adding the inherited and / or re-derived DIMD information onto the preliminary DIMD information with a pre-defined weighting) . In some embodiments, the weighting for the preliminary DIMD information is higher than the weighting for the inherited and / or re-derived DIMD information. For example, the ratio of the weighting for the preliminary DIMD information and the weighting for the inherited and / or re-derived DIMD information is 3: 1. In some embodiments, the weighting for the preliminary DIMD information is lower than the weighting for the inherited and / or re-derived DIMD information. For example, the ratio of the weighting for the preliminary DIMD information and the weighting for the inherited and / or re-derived DIMD information is 1: 3.In some embodiments, the weighting varies according to the inherited and / or re-derived DIMD information being “promising” or not. For example, if the reference block for the inherited and / or re-derived DIMD information is intra coded, the reference block is identified as being “promising” and the weighting prefers the inherited and / or re-derived DIMD information, for example, the weighting for the inherited and / or re-derived DIMD information is higher than the weighting for the preliminary DIMD information.In some embodiments, the adjustment is to use the inherited and / or re-derived DIMD information instead of the preliminary DIMD information. In some embodiments, if multiple inherited and / or re-derived DIMD information is available for the current block, the multiple inherited and / or re-derived DIMD information is combined with a pre-defined weighting. For example, if the multiple DIMD information is from multiple reference positions or blocks from merge candidates, for example, from a merge candidate list, in the Section IV. b, the weighting for the DIMD information from the front of candidates (referenced before other candidates) , e.g., spatial adjacent candidates, which may be in the merge candidate list, has higher weighting than others.In some embodiments, texture analysis is performed on the predicted samples of the current block to generate predictor-DIMD information. The predictor-DIMD information can be stored and / or referenced by the following / subsequent coding block. That is, the current block can be a reference block for the following / subsequent coding block which may use the predictor-DIMD information. The information generated using the predictor-DIMD is the texture analysis information, for example, histogram values and / or intra prediction modes, specified before. The current block may or may not be a DIMD coded block to have a predictor-DIMD. The current block may be coded by MIP, intraTMP, cross-component chroma modes, or is a block that uses predictor-DIMD to select transform set, as described in Section II. c above and / or any blocks, for example, any intra or inter blocks. In some embodiments, for each block containing DIMD information (e.g., DIMD coded block) , the DIMD information is stored to be referenced or inherited by the following / subsequent coding blocks.In some embodiments, the predictor-DIMD can be used to adjust the preliminary DIMD information by weighting averaging with the preliminary DIMD information or replacing preliminary DIMD information. The predictor-DIMD is performed on all or any subset of the predictors of the current block (which may be intermediate predictors not final predictors) .In some embodiments, after using the proposed methods to adjust / modify the DIMD information for the current block, the current block can use the adjusted DIMD information (such as the preliminary DIMD information, predictor-DIMD information, re-derived DIMD information, and / or inherited DIMD information) to obtain one or more intra prediction modes as regular DIMD process. The one or more intra prediction modes will be used to generate multiple hypotheses of prediction to form the final prediction of the current block.In some embodiments, for each pre-defined unit containing DIMD information (e.g. k×k grids in a coded block, for example, DIMD coded blocks where k can be 2, 4, 8, 16, or any pre-defined positive integer) , the DIMD information is stored and / or referenced by the following / subsequent coding blocks. In some embodiments, instead of storing all DIMD information for reference, to reduce the storage, only a subset of the DIMD 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 can be the largest 3 in the histogram bars or the 3 suggested intra prediction modes.b. Using Inherited DIMD InformationThe inherited DIMD information is obtained from the previous coded blocks. In some embodiments, multiple merge candidates, for example, a merge candidate list, containing DIMD information, is built for the current block. As what regular inter merge mode does, the merge candidates, for example, the merge candidate list, include the candidates of spatial adjacent candidates, non-adjacent candidates, history candidates, temporal candidates, and default candidates, or any subset of above-mentioned candidates. These candidates are similar to candidates described in Section III above.The spatial adjacent candidates, which may correspond but is not limited to spatial merge candidates, are from the adjacent neighboring blocks of the current block where the adjacent neighboring blocks can be the same as the 5 spatial neighboring blocks for regular inter merge mode or any subset of the adjacent neighboring blocks of the current block. The non-adjacent candidates, which may correspond but is not limited to non-adjacent spatial merge candidate, are from a search range around (but not adjacent to) the current block. The search range can be the same as the search range of non-adjacent candidates for regular inter merge mode or different search range of the current block.The history candidates, which may correspond but is not limited to HMVP merge candidates, are selected from a history-based buffer array. In the history-based buffer array, the DIMD information of each valid previous coded block is stored where the valid previous coded block refers to any block containing DIMD information (e.g., a DIMD coded block) . 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. The buffer array is cleaned up (becomes empty) in the beginning or the end of a pre-defined unit. The pre-defined unit can be a CTU, slice, tile, picture, or any pre-defined region. In some embodiments, the merge candidates, for example, the merge candidate list, refer to the history buffer array only. That is, only history candidates are included and / or will not use the candidates from a far non-adjacent region.The temporal candidates, which may correspond but is not limited to temporal merge candidates, are obtained from the DIMD information stored in one or more pre-defined previous coded picture. In some embodiments, the temporal candidates are only available for inter slices which have the pre-defined previous coded picture such as the collocated picture for regular inter merge mode.The default candidates are the candidates containing default DIMD information and / or derived according to the candidates already checked, for example, put in the merge candidate list.In some embodiments, the merge candidates, for example, the merge candidate list, are aligned with or are any subset of the merge candidates, for example, the merge candidate list, for regular inter merge mode. In some embodiments, full or partial pruning is used to avoid duplicated DIMD information in the list. Before using a candidate, for example, adding a candidate in the list, all or subset of DIMD information of the to-be-added candidate is checked with the corresponding DIMD information of all or any subset candidates for example, those already in the list. All DIMD information refers to all stored DIMD information (e.g., the histogram (bar) values for the available DIMD intra prediction modes and / or N intra prediction modes with highest histogram bars) . The subset of DIMD information can be only 3 or any pre-defined positive number from all. For example, the subset is the first 3 from all. The first 3 can be the largest 3 in the histogram bars or the 3 suggested intra prediction modes.In some embodiments, 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 signaling an index or implicitly selecting the first one or more candidates or the identified “promising” candidate (e.g., the reference block being intra and / or DIMD coded, and / or the first candidate in the reordered list) .c. Using Re-derived DIMD InformationIn some embodiments, if the current block references the DIMD information of the previous coded block (e.g., a reference block determined by a candidate which may be any candidate specified in Section IV. b or may be from the merge candidate list) , the DIMD process is applied to the reference block to re-derive the DIMD information for that reference block. In this case, the current block may reference the DIMD information of the previous coded block. In one embodiment, the DIMD information associated with the reference block is derived by analyzing samples associated with the reference block. For example, analyzing the samples in the reference block and / or analyzing the samples neighboring the reference block. In another embodiment, with re-deriving, the DIMD information is not needed to be stored. Re-derivation can entirely replace the storing method of DIMD information or conditionally replace the storing method of DIMD information.d. Constraint on Inheritance and / or Re-derivationIn some embodiments, the DIMD information of a block (e.g., a previously coded block or reference block) can only be inherited / re-derived and / or may be referenced by the current block to use only when a constraint on the block is satisfied. In some embodiments, only the DIMD information from the intra-coded blocks and / or the blocks containing DIMD information, for example, DIMD-coded blocks, can be used. In some embodiments, only the DIMD 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.The methods described in this disclosure 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 or larger than a threshold. The term “block” in this invention can refer to TU / TB, CU / CB, PU / PB, pre-defined region, or CTU / CTB. Any combination of the proposed methods in this invention can be applied.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.V. Example Video EncoderFIG. 12 illustrates an example video encoder 1200 that may implement DIMD. As illustrated, the video encoder 1200 receives input video signal from a video source 1205 and encodes the signal into bitstream 1295. The video encoder 1200 has several components or modules for encoding the signal from the video source 1205, at least including some components selected from a transform module 1210, a quantization module 1211, an inverse quantization module 1214, an inverse transform module 1215, an intra-picture estimation module 1220, an intra-prediction module 1225, a motion compensation module 1230, a motion estimation module 1235, an in-loop filter 1245, a reconstructed picture buffer 1250, a MV buffer 1265, and a MV prediction module 1275, and an entropy encoder 1290. The motion compensation module 1230 and the motion estimation module 1235 are part of an inter-prediction module 1240.In some embodiments, the modules 1210 –1290 are modules of software instructions being executed by one or more processing units (e.g., a processor) of a computing device or electronic apparatus. In some embodiments, the modules 1210 –1290 are modules of hardware circuits implemented by one or more integrated circuits (ICs) of an electronic apparatus. Though the modules 1210 –1290 are illustrated as being separate modules, some of the modules can be combined into a single module.The video source 1205 provides a raw video signal that presents pixel data of each video frame without compression. A subtractor 1208 computes the difference between the raw video pixel data of the video source 1205 and the predicted pixel data 1213 from the motion compensation module 1230 or intra-prediction module 1225 as prediction residual 1209. The transform module 1210 converts the difference (or the residual pixel data or residual signal 1208) into transform coefficients (e.g., by performing Discrete Cosine Transform, or DCT) . The quantization module 1211 quantizes the transform coefficients into quantized data (or quantized coefficients) 1212, which is encoded into the bitstream 1295 by the entropy encoder 1290.The inverse quantization module 1214 de-quantizes the quantized data (or quantized coefficients) 1212 to obtain transform coefficients, and the inverse transform module 1215 performs inverse transform on the transform coefficients to produce reconstructed residual 1219. The reconstructed residual 1219 is added with the predicted pixel data 1213 to produce reconstructed pixel data 1217. In some embodiments, the reconstructed pixel data 1217 is temporarily stored in a line buffer 1227 (or intra prediction buffer) for intra-picture prediction and spatial MV prediction. The reconstructed pixels are filtered by the in-loop filter 1245 and stored in the reconstructed picture buffer 1250. In some embodiments, the reconstructed picture buffer 1250 is a storage external to the video encoder 1200. In some embodiments, the reconstructed picture buffer 1250 is a storage internal to the video encoder 1200.The intra-picture estimation module 1220 performs intra-prediction based on the reconstructed pixel data 1217 to produce intra prediction data. The intra-prediction data is provided to the entropy encoder 1290 to be encoded into bitstream 1295. The intra-prediction data is also used by the intra-prediction module 1225 to produce the predicted pixel data 1213.The motion estimation module 1235 performs inter-prediction by producing MVs to reference pixel data of previously decoded frames stored in the reconstructed picture buffer 1250. These MVs are provided to the motion compensation module 1230 to produce predicted pixel data.Instead of encoding the complete actual MVs in the bitstream, the video encoder 1200 uses MV prediction to generate predicted MVs, and the difference between the MVs used for motion compensation and the predicted MVs is encoded as residual motion data and stored in the bitstream 1295.The MV prediction module 1275 generates the predicted MVs based on reference MVs that were generated for encoding previously video frames, i.e., the motion compensation MVs that were used to perform motion compensation. The MV prediction module 1275 retrieves reference MVs from previous video frames from the MV buffer 1265. The video encoder 1200 stores the MVs generated for the current video frame in the MV buffer 1265 as reference MVs for generating predicted MVs.The MV prediction module 1275 uses the reference MVs to create the predicted MVs. The predicted MVs can be computed by spatial MV prediction or temporal MV prediction. The difference between the predicted MVs and the motion compensation MVs (MC MVs) of the current frame (residual motion data) are encoded into the bitstream 1295 by the entropy encoder 1290.The entropy encoder 1290 encodes various parameters and data into the bitstream 1295 by using entropy-coding techniques such as context-adaptive binary arithmetic coding (CABAC) or Huffman encoding. The entropy encoder 1290 encodes various header elements, flags, along with the quantized transform coefficients 1212, and the residual motion data as syntax elements into the bitstream 1295. The bitstream 1295 is in turn stored in a storage device or transmitted to a decoder over a communications medium such as a network.The in-loop filter 1245 performs filtering or smoothing operations on the reconstructed pixel data 1217 to reduce the artifacts of coding, particularly at boundaries of pixel blocks. In some embodiments, the filtering or smoothing operations performed by the in-loop filter 1245 include deblock filter (DBF) , sample adaptive offset (SAO) , and / or adaptive loop filter (ALF) . In some embodiments, luma mapping chroma scaling (LMCS) is performed before the loop filters.FIG. 13 illustrates portions of the video encoder 1200 that implement intra prediction based on proposed DIMD information. A DIMD module 1310 may receive pixel samples from the reconstructed picture buffer 1250 or neighboring reconstructed samples from the intra-prediction buffer 1227, and use those samples to perform DIMD operation (for example, texture analysis) and to provide DIMD information such as histogram values (for example, HoG) and / or one or more intra prediction modes. The DIMD module 1310 may perform DIMD on neighboring pixel samples of the current block to generate preliminary DIMD information 1312 (referring to DIMD information generated using preliminary DIMD) . The DIMD module 1310 may perform DIMD based on pixels associated with a reference block (in a previous coded picture or in the current picture) , for example, neighboring pixels of a reference block, to generate re-derive DIMD information 1314 (referring to DIMD information generated using re-derivation) . The DIMD module 1310 may perform DIMD based on predicted pixels of a block to generate predictor-DIMD information 1313 (referring to DIMD information generated using predictor-DIMD) . The preliminary DIMD information 1312 and / or the re-derived DIMD information 1314 and / or the predictor-DIMD information 1313 may be stored in a candidate storage 1335 and / or may be inherited and used by a subsequent coded block. In some embodiments, DIMD information originated from a block can only be inherited or re-derived and / or may be referenced for a subsequent block to use only when the block satisfies certain constraint, such as only DIMD information from DIMD or intra-coded blocks can be inherited and used, or only DIMD information from blocks located at a pre-defined region can be used.A candidate constructor 1330 identifies multiple candidates, for example, a list of candidates 1345 (or merge candidate list) for the current block that includes spatial adjacent candidates, non-adjacent candidates, history candidates, temporal candidates, and default candidates, or any subset of above-mentioned candidates. DIMD information associated with these candidates are available to be inherited by the current block. The entropy encoder 1290 may provide a selection index to a candidate selector 1348. The selection index may also be signaled in the bitstream 1295. The candidate selector 1348 fetches the corresponding DIMD information of the selected candidate from the candidate storage 1335 and provide it as inherited DIMD information 1316 (referring to DIMD information obtaining using inheritance) .An DIMD adjustment 1340 uses the preliminary DIMD information 1312, the predictor-DIMD information 1313, the re-derived DIMD information 1314, and / or the inherited DIMD information 1316 to generate a set of final DIMD information 1350. Section IV above describes the adjustment of DIMD information based on the preliminary DIMD information, the predictor-DIMD information, the re-derived DIMD information, and / or the inherited DIMD for different embodiments. For example, in some embodiments, the preliminary DIMD information (e.g., histogram values or intra prediction modes) is adjusted according to the inherited or derived DIMD information or predictor-DIMD information. In some embodiments, the inherited or derived DIMD information or predictor-DIMD information is used as the final DIMD information instead of the preliminary DIMD information. In some embodiments, multiple inherited or derived DIMD information are combined according to a pre-defined weighting.The intra prediction module 1225 may use the final DIMD information 1350 to perform intra prediction and generate intra prediction samples as the predicted pixel data 1213. For example, the intra-prediction module may use the histogram or intra prediction modes in the final DIMD information 1350 to identify intra prediction modes for generating the intra prediction predictor of the current block. The final DIMD information 1350 that may be used to encode the current block may be stored in the candidate storage 1335 and / or may be inherited by subsequent blocks.FIG. 14 conceptually illustrates a process 1400 for encoding a pixel block using adjusted texture analysis information (e.g., DIMD information) . In some embodiments, one or more processing units (e.g., a processor) of a computing device implementing the encoder 1200 performs the process 1400 by executing instructions stored in a computer readable medium. In some embodiments, an electronic apparatus implementing the encoder 1200 performs the process 1400.The encoder receives (at block 1410) data to be encoded as a current block of pixels in a current picture of a video. The encoder analyzes (at block 1420) samples neighboring the current block to generate a first set of texture analysis (DIMD) information. In some embodiments, a set of texture analysis information may be DIMD information or any other kind of texture analysis information, which may include histogram values, intra prediction modes, or both.The encoder obtains (at block 1430) or derives at least one second set of texture analysis information associated with the current block or at least one reference block. The at least one reference block is determined based on at least one candidate selected from a list of candidates. The encoder may check one or more candidates for the current block. The one or more candidates may include all or any subset of spatial adjacent candidates, non-adjacent candidates, history candidates, temporal candidates, and default candidates. In some embodiments, at least one of block 1420 and block 1430 may be performed to determine the texture analysis information.The at least one second set of texture analysis information may be inherited from the at least one reference block, or is inherited from at least one candidate selected from a list of candidates. In some embodiments, the at least one second set of texture analysis information is allowed to be inherited only if the at least one reference block is coded by intra prediction or contains texture analysis information. In some embodiments, the at least one second set of texture analysis is allowed to be inherited only if the at least one reference block is located at a pre-defined region.In some embodiments, the at least one second set of texture analysis information is derived by analyzing samples associated with the at least one reference block. In some embodiments, the at least one second set of texture analysis information is derived by analyzing predicted samples of the current block or the at least one reference block.The encoder generates (at block 1440) a final set of texture analysis information based on the first set of texture analysis information, the second set of texture analysis information, or both. Multiple sets of texture analysis information may be combined to be the final set of texture analysis information. The encoder may store the final set of texture analysis information to be inherited or referenced by a subsequently coded block, the stored set of texture analysis information being a subset of texture analysis information.The encoder encodes (at block 1450) the current block based on (by e.g., using or storing) the final set of texture analysis information or stores the final set of texture analysis information for subsequent encoding. The final set of texture analysis information may include one or more intra prediction modes that are determined to be used to generate multiple hypotheses of prediction to form a final prediction of the current block. The encoder may generate the final prediction based the intra prediction modes from the final set of texture analysis information. The final prediction may be used to generate prediction residuals for the current block.VI. Example Video DecoderIn some embodiments, an encoder may signal (or generate) one or more syntax element in a bitstream, such that a decoder may parse said one or more syntax element from the bitstream.FIG. 15 illustrates an example video decoder 1500 that may implement DIMD. As illustrated, the video decoder 1500 is an image-decoding or video-decoding circuit that receives a bitstream 1595 and decodes the content of the bitstream into pixel data of video frames for display. The video decoder 1500 has several components or modules for decoding the bitstream 1595, including some components selected from an inverse quantization module 1511, an inverse transform module 1510, an intra-prediction module 1525, a motion compensation module 1530, an in-loop filter 1545, a decoded picture buffer 1550, a MV buffer 1565, a MV prediction module 1575, and a parser 1590. The motion compensation module 1530 is part of an inter-prediction module 1540.In some embodiments, the modules 1510 –1590 are modules of software instructions being executed by one or more processing units (e.g., a processor) of a computing device. In some embodiments, the modules 1510 –1590 are modules of hardware circuits implemented by one or more ICs of an electronic apparatus. Though the modules 1510 –1590 are illustrated as being separate modules, some of the modules can be combined into a single module.The parser 1590 (or entropy decoder) receives the bitstream 1595 and performs initial parsing according to the syntax defined by a video-coding or image-coding standard. The parsed syntax element includes various header elements, flags, as well as quantized data (or quantized coefficients) 1512. The parser 1590 parses out the various syntax elements by using entropy-coding techniques such as context-adaptive binary arithmetic coding (CABAC) or Huffman encoding.The inverse quantization module 1511 de-quantizes the quantized data (or quantized coefficients) 1512 to obtain transform coefficients, and the inverse transform module 1510 performs inverse transform on the transform coefficients 1516 to produce reconstructed residual signal 1519. The reconstructed residual signal 1519 is added with predicted pixel data 1513 from the intra-prediction module 1525 or the motion compensation module 1530 to produce decoded pixel data 1517. The decoded pixels data are filtered by the in-loop filter 1545 and stored in the decoded picture buffer 1550. In some embodiments, the decoded picture buffer 1550 is a storage external to the video decoder 1500. In some embodiments, the decoded picture buffer 1550 is a storage internal to the video decoder 1500.The intra-prediction module 1525 receives intra-prediction data from bitstream 1595 and according to which, produces the predicted pixel data 1513 from the decoded pixel data 1517 stored in the decoded picture buffer 1550. In some embodiments, the decoded pixel data 1517 is also stored in a line buffer 1527 (or intra prediction buffer) for intra-picture prediction and spatial MV prediction.In some embodiments, the content of the decoded picture buffer 1550 is used for display. A display device 1505 either retrieves the content of the decoded picture buffer 1550 for display directly, or retrieves the content of the decoded picture buffer to a display buffer. In some embodiments, the display device receives pixel values from the decoded picture buffer 1550 through a pixel transport.The motion compensation module 1530 produces predicted pixel data 1513 from the decoded pixel data 1517 stored in the decoded picture buffer 1550 according to motion compensation MVs (MC MVs) . These motion compensation MVs are decoded by adding the residual motion data received from the bitstream 1595 with predicted MVs received from the MV prediction module 1575.The MV prediction module 1575 generates the predicted MVs based on reference MVs that were generated for decoding previous video frames, e.g., the motion compensation MVs that were used to perform motion compensation. The MV prediction module 1575 retrieves the reference MVs of previous video frames from the MV buffer 1565. The video decoder 1500 stores the motion compensation MVs generated for decoding the current video frame in the MV buffer 1565 as reference MVs for producing predicted MVs.The in-loop filter 1545 performs filtering or smoothing operations on the decoded pixel data 1517 to reduce the artifacts of coding, particularly at boundaries of pixel blocks. In some embodiments, the filtering or smoothing operations performed by the in-loop filter 1545 include deblock filter (DBF) , sample adaptive offset (SAO) , and / or adaptive loop filter (ALF) . In some embodiments, luma mapping chroma scaling (LMCS) is performed before the loop filters.FIG. 16 illustrates portions of the video decoder 1500 that implement intra prediction based on proposed DIMD information. A DIMD module 1610 may receive pixel samples from the decoded picture buffer 1550 or neighboring reconstructed samples from the intra-prediction buffer 1527, and use those samples to perform DIMD operation (for example, texture analysis) and to provide DIMD information such as histogram values (for example, HoG) and / or one or more intra prediction modes. The DIMD module 1610 may perform DIMD on neighboring pixel samples of the current block to generate preliminary DIMD information 1612 (referring to DIMD information generated using preliminary DIMD) . The DIMD module 1610 may perform DIMD based on pixels associated with a reference block (in a previous coded picture or in the current picture) , for example, neighboring pixels of a reference block, to generate re-derive DIMD information 1614 (referring to DIMD information generated using re-derivation) . The DIMD module 1610 may perform DIMD based on predicted pixels of a block to generate predictor-DIMD information 1613 (referring to DIMD information generated using predictor-DIMD) . The preliminary DIMD information 1612 and / or the re-derived DIMD information 1614 and / or the predictor-DIMD information 1613 may be stored in a candidate storage 1635 and / or may be inherited and used by a subsequent coded block. In some embodiments, DIMD information originated from a block can only be inherited or re-derived and / or may be referenced for a subsequent block to use only when the block satisfies certain constraint, such as only DIMD information from DIMD or intra-coded blocks can be inherited and used, or only DIMD information from blocks located at a pre-defined region can be used.A candidate constructor 1630 identifies multiple candidates, for example, a list of candidates 1645 (or merge candidate list) for the current block that includes spatial adjacent candidates, non-adjacent candidates, history candidates, temporal candidates, and default candidates, or any subset of above-mentioned candidates. DIMD information associated with these candidates are available to be inherited by the current block. The entropy decoder 1590 may provide a selection index to a candidate selector 1648 based on content of the bitstream 1595. The candidate selector 1648 fetches the corresponding DIMD information of the selected candidate from the candidate storage 1635 and provide it as inherited DIMD information 1616 (referring to DIMD information obtaining using inheritance) .An DIMD adjustment 1640 uses the preliminary DIMD information 1612, the predictor-DIMD information 1613, the re-derived DIMD information 1614, and / or the inherited DIMD information 1616 to generate a set of final DIMD information 1650. Section IV above describes the adjustment of DIMD information based on the preliminary DIMD information, the predictor-DIMD information, the re-derived DIMD information, and / or the inherited DIMD for different embodiments. For example, in some embodiments, the preliminary DIMD information (e.g., histogram values or intra prediction modes) is adjusted according to the inherited or derived DIMD information or predictor-DIMD information. In some embodiments, the inherited or derived DIMD information or predictor-DIMD information is used as the final DIMD information instead of the preliminary DIMD information. In some embodiments, multiple inherited or derived DIMD information are combined according to a pre-defined weighting.The intra prediction module 1525 may use the final DIMD information 1650 to perform intra prediction and generate intra prediction samples as the predicted pixel data 1513. For example, the intra-prediction module may use the histogram or intra prediction modes in the final DIMD information 1650 to identify intra prediction modes for generating the intra prediction predictor of the current block. The final DIMD information 1650 that may be used to decode the current block may be stored in the candidate storage 1635 and / or may be inherited by subsequent blocks.FIG. 17 conceptually illustrates a process 1700 for decoding a pixel block using adjusted DIMD information. In some embodiments, one or more processing units (e.g., a processor) of a computing device implementing the decoder 1500 performs the process 1700 by executing instructions stored in a computer readable medium. In some embodiments, an electronic apparatus implementing the decoder 1500 performs the process 1700.The decoder receives (at block 1710) data to be decoded as a current block of pixels in a current picture of a video. The decoder analyzes (at block 1720) samples neighboring the current block to generate a first set of texture analysis information. In some embodiments, a set of texture analysis information may be DIMD information or any other kind of texture analysis information, which may include histogram values, intra prediction modes, or both.The decoder obtains (at block 1730) or derives at least one second set of texture analysis information associated with the current block or at least one reference block. The at least one reference block is determined based on at least one candidate selected from a list of candidates. The decoder may check one or more candidates for the current block. The one or more candidates may include all or any subset of spatial adjacent candidates, non-adjacent candidates, history candidates, temporal candidates, and default candidates. In some embodiments, at least one of block 1720 and block 1730 is performed to determine the texture analysis information.The at least one second set of texture analysis information may be inherited from the at least one reference block, or is inherited from at least one candidate selected from a list of candidates. In some embodiments, the at least one second set of texture analysis information is allowed to be inherited only if the at least one reference block is coded by intra prediction or contains texture analysis information. In some embodiments, the at least one second set of texture analysis is allowed to be inherited only if the at least one reference block is located at a pre-defined region.In some embodiments, the at least one second set of texture analysis information is derived by analyzing samples associated with the at least one reference block. In some embodiments, the at least one second set of texture analysis information is derived by analyzing predicted samples of the current block or the at least one reference block.The decoder generates (at block 1740) a final set of texture analysis information based on the first set of texture analysis information, the second set of texture analysis information, or both. Multiple sets of texture analysis information may be combined to be the final set of texture analysis information. The decoder may store the final set of texture analysis information to be inherited or referenced by a subsequently coded block, the stored final set of texture analysis information may be a subset of texture analysis information.The decoder reconstructs (at block 1750) the current block based on the final set of texture analysis information or stores the final set of texture analysis information for subsequent decoding. The final set of texture analysis information may include one or more intra prediction modes that are determined to be used to generate multiple hypotheses of prediction to form a final prediction of the current block. The decoder may generate the final prediction based the intra prediction modes from the final set of texture analysis information. The decoder may then provide the reconstructed current block for display as part of the reconstructed current picture.VII. Example Electronic SystemMany of the above-described features and applications are implemented as software processes that are specified as a set of instructions recorded on a computer readable storage medium (also referred to as computer readable medium) . When these instructions are executed by one or more computational or processing unit (s) (e.g., one or more processors, cores of processors, or other processing units) , they cause the processing unit (s) to perform the actions indicated in the instructions. Examples of computer readable media include, but are not limited to, CD-ROMs, flash drives, random-access memory (RAM) chips, hard drives, erasable programmable read only memories (EPROMs) , electrically erasable programmable read-only memories (EEPROMs) , etc. The computer readable media does not include carrier waves and electronic signals passing wirelessly or over wired connections.In this specification, the term “software” is meant to include firmware residing in read-only memory or applications stored in magnetic storage which can be read into memory for processing by a processor. Also, in some embodiments, multiple software inventions can be implemented as sub-parts of a larger program while remaining distinct software inventions. In some embodiments, multiple software inventions can also be implemented as separate programs. Finally, any combination of separate programs that together implement a software invention described here is within the scope of the present disclosure. In some embodiments, the software programs, when installed to operate on one or more electronic systems, define one or more specific machine implementations that execute and perform the operations of the software programs.FIG. 18 conceptually illustrates an electronic system 1800 with which some embodiments of the present disclosure are implemented. The electronic system 1800 may be a computer (e.g., a desktop computer, personal computer, tablet computer, etc. ) , phone, PDA, or any other sort of electronic device. Such an electronic system includes various types of computer readable media and interfaces for various other types of computer readable media. Electronic system 1800 includes a bus 1805, processing unit (s) 1810, a graphics-processing unit (GPU) 1815, a system memory 1820, a network 1825, a read-only memory 1830, a permanent storage device 1835, input devices 1840, and output devices 1845.The bus 1805 collectively represents all system, peripheral, and chipset buses that communicatively connect the numerous internal devices of the electronic system 1800. For instance, the bus 1805 communicatively connects the processing unit (s) 1810 with the GPU 1815, the read-only memory 1830, the system memory 1820, and the permanent storage device 1835.From these various memory units, the processing unit (s) 1810 retrieves instructions to execute and data to process in order to execute the processes of the present disclosure. The processing unit (s) may be a single processor or a multi-core processor in different embodiments. Some instructions are passed to and executed by the GPU 1815. The GPU 1815 can offload various computations or complement the image processing provided by the processing unit (s) 1810.The read-only-memory (ROM) 1830 stores static data and instructions that are used by the processing unit (s) 1810 and other modules of the electronic system. The permanent storage device 1835, on the other hand, is a read-and-write memory device. This device is a non-volatile memory unit that stores instructions and data even when the electronic system 1800 is off. Some embodiments of the present disclosure use a mass-storage device (such as a magnetic or optical disk and its corresponding disk drive) as the permanent storage device 1835.Other embodiments use a removable storage device (such as a floppy disk, flash memory device, etc., and its corresponding disk drive) as the permanent storage device. Like the permanent storage device 1835, the system memory 1820 is a read-and-write memory device. However, unlike storage device 1835, the system memory 1820 is a volatile read-and-write memory, such a random access memory. The system memory 1820 stores some of the instructions and data that the processor uses at runtime. In some embodiments, processes in accordance with the present disclosure are stored in the system memory 1820, the permanent storage device 1835, and / or the read-only memory 1830. For example, the various memory units include instructions for processing multimedia clips in accordance with some embodiments. From these various memory units, the processing unit (s) 1810 retrieves instructions to execute and data to process in order to execute the processes of some embodiments.The bus 1805 also connects to the input and output devices 1840 and 1845. The input devices 1840 enable the user to communicate information and select commands to the electronic system. The input devices 1840 include alphanumeric keyboards and pointing devices (also called “cursor control devices” ) , cameras (e.g., webcams) , microphones or similar devices for receiving voice commands, etc. The output devices 1845 display images generated by the electronic system or otherwise output data. The output devices 1845 include printers and display devices, such as cathode ray tubes (CRT) or liquid crystal displays (LCD) , as well as speakers or similar audio output devices. Some embodiments include devices such as a touchscreen that function as both input and output devices.Finally, as shown in FIG. 18, bus 1805 also couples electronic system 1800 to a network 1825 through a network adapter (not shown) . In this manner, the computer can be a part of a network of computers (such as a local area network ( “LAN” ) , a wide area network ( “WAN” ) , or an Intranet, or a network of networks, such as the Internet. Any or all components of electronic system 1800 may be used in conjunction with the present disclosure.Some embodiments include electronic components, such as microprocessors, storage and memory that store computer program instructions in a machine-readable or computer-readable medium (alternatively referred to as computer-readable storage media, machine-readable media, or machine-readable storage media) . Some examples of such computer-readable media include RAM, ROM, read-only compact discs (CD-ROM) , recordable compact discs (CD-R) , rewritable compact discs (CD-RW) , read-only digital versatile discs (e.g., DVD-ROM, dual-layer DVD-ROM) , a variety of recordable / rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc. ) , flash memory (e.g., SD cards, mini-SD cards, micro-SD cards, etc. ) , magnetic and / or solid state hard drives, read-only and recordable discs, ultra-density optical discs, any other optical or magnetic media, and floppy disks. The computer-readable media may store a computer program that is executable by at least one processing unit and includes sets of instructions for performing various operations. Examples of computer programs or computer code include machine code, such as is produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter.While the above discussion primarily refers to microprocessor or multi-core processors that execute software, many of the above-described features and applications are performed by one or more integrated circuits, such as application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) . In some embodiments, such integrated circuits execute instructions that are stored on the circuit itself. In addition, some embodiments execute software stored in programmable logic devices (PLDs) , ROM, or RAM devices.As used in this specification and any claims of this application, the terms “computer” , “server” , “processor” , and “memory” all refer to electronic or other technological devices. These terms exclude people or groups of people. For the purposes of the specification, the terms display or displaying means displaying on an electronic device. As used in this specification and any claims of this application, the terms “computer readable medium, ” “computer readable media, ” and “machine readable medium” are entirely restricted to tangible, physical objects that store information in a form that is readable by a computer. These terms exclude any wireless signals, wired download signals, and any other ephemeral signals.While the present disclosure has been described with reference to numerous specific details, one of ordinary skill in the art will recognize that the present disclosure can be embodied in other specific forms without departing from the spirit of the present disclosure. In addition, a number of the figures (including FIG. 14 and FIG. 17) conceptually illustrate processes. The specific operations of these processes may not be performed in the exact order shown and described. The specific operations may not be performed in one continuous series of operations, and different specific operations may be performed in different embodiments. Furthermore, the process could be implemented using several sub-processes, or as part of a larger macro process. Thus, one of ordinary skill in the art would understand that the present disclosure is not to be limited by the foregoing illustrative details, but rather is to be defined by the appended claims.Additional NotesThe herein-described subject matter sometimes illustrates different components contained within, or connected with, different other components. It is to be understood that such depicted architectures are merely examples, and that in fact many other architectures can be implemented which achieve the same functionality. In a conceptual sense, any arrangement of components to achieve the same functionality is effectively "associated" such that the desired functionality is achieved. Hence, any two components herein combined to achieve a particular functionality can be seen as "associated with" each other such that the desired functionality is achieved, irrespective of architectures or intermediate components. Likewise, any two components so associated can also be viewed as being "operably connected" , or "operably coupled" , to each other to achieve the desired functionality, and any two components capable of being so associated can also be viewed as being "operably couplable" , to each other to achieve the desired functionality. Specific examples of operably couplable include but are not limited to physically mateable and / or physically interacting components and / or wirelessly interactable and / or wirelessly interacting components and / or logically interacting and / or logically interactable components.Further, with respect to the use of substantially any plural and / or singular terms herein, those having skill in the art can translate from the plural to the singular and / or from the singular to the plural as is appropriate to the context and / or application. The various singular / plural permutations may be expressly set forth herein for sake of clarity.Moreover, it will be understood by those skilled in the art that, in general, terms used herein, and especially in the appended claims, e.g., bodies of the appended claims, are generally intended as “open” terms, e.g., the term “including” should be interpreted as “including but not limited to, ” the term “having” should be interpreted as “having at least, ” the term “includes” should be interpreted as “includes but is not limited to, ” etc. It will be further understood by those within the art that if a specific number of an introduced claim recitation is intended, such an intent will be explicitly recited in the claim, and in the absence of such recitation no such intent is present. For example, as an aid to understanding, the following appended claims may contain usage of the introductory phrases "at least one" and "one or more" to introduce claim recitations. However, the use of such phrases should not be construed to imply that the introduction of a claim recitation by the indefinite articles "a" or "an" limits any particular claim containing such introduced claim recitation to implementations containing only one such recitation, even when the same claim includes the introductory phrases "one or more" or "at least one" and indefinite articles such as "a" or "an, " e.g., “a” and / or “an” should be interpreted to mean “at least one” or “one or more; ” the same holds true for the use of definite articles used to introduce claim recitations. In addition, even if a specific number of an introduced claim recitation is explicitly recited, those skilled in the art will recognize that such recitation should be interpreted to mean at least the recited number, e.g., the bare recitation of "two recitations, " without other modifiers, means at least two recitations, or two or more recitations. Furthermore, in those instances where a convention analogous to “at least one of A, B, and C, etc. ” is used, in general such a construction is intended in the sense one having skill in the art would understand the convention, e.g., “a system having at least one of A, B, and C” would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and / or A, B, and C together, etc. In those instances where a convention analogous to “at least one of A, B, or C, etc. ” is used, in general such a construction is intended in the sense one having skill in the art would understand the convention, e.g., “a system having at least one of A, B, or C” would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and / or A, B, and C together, etc. It will be further understood by those within the art that virtually any disjunctive word and / or phrase presenting two or more alternative terms, whether in the description, claims, or drawings, should be understood to contemplate the possibilities of including one of the terms, either of the terms, or both terms. For example, the phrase “A or B” will be understood to include the possibilities of “A” or “B” or “A and B. ”From the foregoing, it will be appreciated that various implementations of the present disclosure have been described herein for purposes of illustration, and that various modifications may be made without departing from the scope and spirit of the present disclosure. Accordingly, the various implementations disclosed herein are not intended to be limiting, with the true scope and spirit being indicated by the following claims.

Claims

1.A video coding method comprising:receiving data to be encoded or decoded as a current block of pixels of a current picture of a video;determining texture analysis information comprising at least one of:analyzing samples neighboring the current block to generate a first set of texture analysis information; andobtaining or deriving at least one second set of texture analysis information associated with the current block or at least one reference block;generating a final set of texture analysis information based on the first set of texture analysis information, the at least one second set of texture analysis information, or both; andencoding or decoding the current block based on the final set of texture analysis information or storing the final set of texture analysis information.2.The video coding method of claim 1, wherein the at least one second set of texture analysis information is inherited from the at least one reference block.3.The video coding method of claim 1, wherein the at least one second set of texture analysis information is inherited from at least one candidate selected from a list of candidates.4.The video coding method of claim 1, wherein the at least one second set of texture analysis information is allowed to be inherited only if the at least one reference block is coded by intra prediction or contains texture analysis information.5.The video coding method of claim 1, wherein the at least one second set of texture analysis is allowed to be inherited only if the at least one reference block is located at a pre-defined region.6.The video coding method of claim 1, wherein the at least one second set of texture analysis information is derived by analyzing samples associated with the at least one reference block.7.The video coding method of claim 1, wherein the at least one second set of texture analysis information is derived by analyzing predicted samples of the current block or the at least one reference block.8.The video coding method of claim 1, wherein the at least one reference block is determined based on at least one candidate selected from a list of candidates.9.The video coding method of claim 1, further comprising checking one or more candidates for the current block, the one or more candidates comprising all or any subset of spatial adjacent candidates, non-adjacent candidates, history candidates, temporal candidates, and default candidates.10.The video coding method of claim 1, wherein a plurality of sets of texture analysis information are combined to be the final set of texture analysis information.11.The video coding method of claim 1, further comprising inheriting or referencing the stored final set of texture analysis information by a subsequently coded block.12.The video coding method of claim 1, wherein a set of texture analysis information comprises histogram values, intra prediction modes, or both.13.The video coding method of claim 1, wherein the stored final set of texture analysis information is a subset of texture analysis information.14.The video coding method of claim 1, wherein encoding or decoding the current block based on using the final set of texture analysis information comprises determining one or more intra prediction modes for generating multiple hypotheses of prediction to form a final prediction of the current block.15.An electronic apparatus comprising:a video coder circuit configured to perform operations comprising:receiving data to be encoded or decoded as a current block of pixels of a current picture of a video;determining texture analysis information comprising at least one of:analyzing samples neighboring the current block to generate a first set of texture analysis information; andobtaining or deriving at least one second set of texture analysis information associated with the current block or at least one reference block;generating a final set of texture analysis information based on the first set of texture analysis information, the at least one second set of texture analysis information, or both; andencoding or decoding the current block based on the final set of texture analysis information or storing the final set of texture analysis information.16.A video decoding method comprising:receiving data to be decoded as a current block of pixels of a current picture of a video;determining texture analysis information comprising at least one of:analyzing samples neighboring the current block to generate a first set of texture analysis information; andobtaining or deriving at least one second set of texture analysis information associated with the current block or at least one reference block;generating a final set of texture analysis information based on the first set of texture analysis information, the at least one second set of texture analysis information, or both; andreconstructing the current block based on the final set of texture analysis information or storing the final set of texture analysis information.

Citation Information

Patent Citations

  • Video decoding method, video coding method and related equipment

    CN115866263A

  • A Method, An Apparatus and a Computer Program Product for Video Encoding and Video Decoding

    US20230262223A1

Cited By

  • Selection-based intra coding using non-angular candidates

    WO2026011172A1