Decoding method applying DIMD fusion

The proposed decoding method for DIMD fusion addresses the issue of inconsistent predictors by using a Histogram of Gradients to adaptively determine weights, improving compression performance and video quality through better alignment with content properties.

WO2026085789A1PCT designated stage Publication Date: 2026-04-30SHENZHEN TCL NEW-TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/126886
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-10-23
Publication Date
2026-04-30

AI Technical Summary

Technical Problem

Conventional Decoder-side Intra Mode Derivation (DIMD) fusion processes in video coding do not consider the influence of content properties around the block, leading to inconsistent predictors and limited adaptivity, which affects compression performance.

Method used

A decoding method that determines a template area, applies an edge operator to acquire a Histogram of Gradients (HoG), and uses the HoG to adaptively determine weights for smoothing components in the DIMD fusion process, enhancing the prediction accuracy.

Benefits of technology

Improves the adaptivity and compression performance of DIMD fusion by aligning predictor weights with the content properties of the block, resulting in more accurate prediction and enhanced video quality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024126886_30042026_PF_FP_ABST
    Figure CN2024126886_30042026_PF_FP_ABST
Patent Text Reader

Abstract

A decoding method applying DIMD fusion is provided. The method includes: determining a template area for a current block; applying an edge operator to the template area to acquire a Histogram of gradients (HoG); determining a weight of one or more smoothing components for the DIMD fusion based on the HoG; and generating a predicted block for the current block based on the one or more smoothing components and the weight.
Need to check novelty before this filing date? Find Prior Art

Description

DECODING METHOD APPLYING DIMD FUSIONTECHNICAL FIELD

[0001] The present disclosure generally relates to video encoding and decoding technology, and in particular to a decoding method applying Decoder-side Intra Mode Derivation (DIMD) fusion, a video coding apparatus, and a non-transitory computer readable medium.BACKGROUND

[0002] Under the context of video compression, colour image or a frame of a colour video usually consists of three colour components, namely a luma component Y and two chroma components Cb and Cr. Each component is represented as a data matrix. The data matrix for each component is decomposed into blocks associated with specific encoding parameters. A block is usually a square or rectangle whose dimensions are integer powers of 2. The coding of an image is processed in raster scanning order: from left to right, then from top to bottom. Within a specific block or a plurality of blocks, luma component is usually coded before chroma components.

[0003] Popular video coding standards such as Versatile Video Coding (VVC) uses a prediction / transform hybrid coding framework. Prediction refers to predicting current block (i.e., the block to be coded) using coded blocks or coded areas within the same frame (i.e., intra prediction) or from a different frame (i.e., inter prediction) . When performing intra or inter prediction, the encoder tries multiple intra prediction modes available to the coding standard, computes and compares corresponding prediction blocks and chooses the best prediction mode. The difference between original current block and the prediction block generated by the chosen prediction mode, namely the residual, will also be coded. By transmitting prediction modes and residuals only, the encoder is able to instruct the decoder to decode and reconstruct the original image or video or its approximation.

[0004] Decoder-side intra mode derivation (DIMD) is a promising coding tool in the enhanced compression model (ECM) developed by the joint video experts team (JVET) . In DIMD, the intra prediction mode of a block is derived based on the gradient information of the adjacent samples at both encoder and decoder, rather than being explicitly signaled in the bitstream.

[0005] In DIMD fusion, several prediction modes such as Planar, Intra-TMP and IBC may be taken as smoothing components for fusion. However, in conventional design, Planar, IntraTMP, and IBC predictors are always involved in the DIMD fusion process and their weights are arbitary, which does not consider the influence of properties of the content around the block to be predicted.SUMMARY

[0006] Accordingly, the present disclosure aims to provide a decoding method applying Decoder-side Intra Mode Derivation (DIMD) fusion, a video coding apparatus, and a non-transitory computer readable medium.

[0007] A technical scheme adopted by the present disclosure is to provide a decoding method  applying DIMD fusion. The method includes: determining a template area for a current block; applying an edge operator to the template area to acquire a Histogram of gradients (HoG) ; determining a weight of one or more smoothing components for the DIMD fusion based on the HoG; and generating a predicted block for the current block based on the one or more smoothing components and the weight.

[0008] Another technical scheme adopted by the present disclosure is to provide a decoding method applying DIMD fusion. The method includes: determining a template area for a current block; applying an edge operator to the template area to acquire a Histogram of gradients (HoG) , wherein bins of the HoG correspond to a plurality of directional intra-prediction modes and a plurality of Position Dependent Intra-prediction (PDP) modes; determining one or more Position Dependent Intra-prediction (PDP) modes from the plurality of PDP modes to constitute a PDP-based smoothing component for the DIMD fusion based on the HoG; and determining a predicted block for the current block by applying the DIMD fusion.

[0009] Another technical scheme adopted by the present disclosure is to provide a video coding apparatus. The apparatus includes a processor and a memory. The memory is configured to store executable instructions that, when executed by the processor, cause the processor to perform any of the foregoing methods.

[0010] Another technical scheme adopted by the present disclosure is to provide a computer readable medium. The computer readable medium is configured to store executable instructions that, when executed by the processor, cause the processor to perform any of the foregoing methods.BRIEF DESCRIPTION OF THE DRAWINGS

[0011] In order to clearly explain the technical solutions in the embodiments of the present disclosure, the drawings used in the description of the embodiments will be briefly described below. Obviously, the drawings in the following description are merely some embodiments of the present disclosure. For those of ordinary skill in the art, other drawings may also be obtained based on these drawings without any creative work.

[0012] FIG. 1 shows a schematic diagram of a video encoding system.

[0013] FIG. 2 shows a schematic diagram of a video decoding system.

[0014] FIG. 3 illustrates a flowchart of MIP prediction mode.

[0015] FIG. 4 illustrates a flowchart of Histogram of gradients (HoG) estimation in DIMD.

[0016] FIG. 5 shows the template used in DIMD without Location-dependent Decoder-side Intra Mode Derivation.

[0017] FIG. 6 shows the DIMD regions used to infer the location dependency of DIMD modes.

[0018] FIG. 7 shows an “L” -shaped neighbor reference template for a given predicted block “p” .

[0019] FIG. 8 shows a reference template of a current block of size w by h.

[0020] FIG. 9 shows an example of a weighting matrix employed in the Matrix-based dependent intra prediction mode.

[0021] FIG. 10 is a flowchart of a decoding method applying DIMD fusion according to an  embodiment of the present disclosure.

[0022] FIG. 11 shows the method of determination of the main mode for DIMD fusion based on the HoG.

[0023] FIG. 12 shows the method of determination of gradient threshold from the reference area.

[0024] FIG. 13 is a flowchart of a decoding method applying DIMD fusion according to another embodiment of the present disclosure.

[0025] FIG. 14 shows an exemplary DIMD fusion process with a combination of PDP modes instead of Planar / PV mode.

[0026] FIG. 15 illustrates a flowchart for fetching an additional fusion mode from HoG that will be used to replace BV / planar mode.

[0027] FIG. 16 illustrates a flowchart for determining the presence of BV / planar mode in DIMD fusion process.

[0028] FIG. 17 shows a method for determination of the combination of PDP modes based on the HoG.

[0029] FIG. 18 shows another method for determination of the combination of PDP modes based on the HoG.

[0030] FIG. 19 illustrates the steps to determine the weight of the PDP smoothing component based on template matching cost.

[0031] FIG. 20 is a schematic diagram of a video coding apparatus according to an embodiment of the present disclosure.DETAILED DESCRIPTION

[0032] The disclosure will now be described in detail with reference to the accompanying drawings and examples. Apparently, the described embodiments are only a part of the embodiments of the present disclosure, not all of the embodiments. All other embodiments obtained by a person of ordinary skill in the art based on the embodiments of the present invention without creative efforts shall fall within the protection scope of the present invention.

[0033] To help understand the technical solutions proposed in the embodiments of this application, a brief introduction of video encoding and decoding system will be provided below.

[0034] As shown in FIG. 1, a video encoding system 110 may include multiple modules, such as block partitioning unit 1101, transform and quantization unit 1102, intra-frame estimation unit 1103, intra-frame prediction unit 1104, motion compensation unit 1105, motion estimation unit 1106, an inverse transformation and inverse quantization unit 1107, a filter control analysis unit 1108, a filtering unit 1109, an encoding unit 1110, an encoded image buffer unit 1111 and a subtractor 1112.

[0035] Original video signals include video frames. Each video frame is divided into blocks by a block partitioning unit 1101. For each of the video frames, the subtractor 1112 generates residual pixel information about a residual frame by subtracting the input video frame from the output of the intra-frame prediction unit 1104 or the motion compensation unit 1105. The residual pixel information  obtained after intra-frame prediction or inter-frame prediction (motion compensation) , is transformed by the transformation and quantization unit 1102. The transformation includes transforming the residual pixel information from the pixel domain to a transform domain, and the resulting transform coefficients are quantized to further reduce the bit rate. The intra-frame estimation unit 1103 performs intra-frame estimation, and the intra-frame prediction unit 1104 performs intra-frame prediction on the video reconstructed blocks. Motion estimation performed by the motion estimation unit 1106 is a process of generating a motion vector that can estimate the displacement of the reconstructed video block, and then motion compensation is performed by the motion compensation unit 1105 based on the determined motion vector. After determining an intra-frame prediction mode, the intra-frame prediction unit 1104 provides selected intra-frame predicted data to the encoding unit 1110, and the motion estimation unit 1106 also sends calculated motion vector data to the encoding unit 1110. The inverse transform and inverse quantization unit 1107 reconstructs the video reconstructed blocks and reconstructs a residual block in the pixel domain, and the filtering unit 1109 is controlled by the filter analysis unit 1108 to remove the blocking artifacts in the reconstructed residual block, and the encoding unit 1110 adds the reconstructed residual block to the prediction block of the encoded image buffer unit 1111 to generate a reconstructed block. The encoding unit 1110 is used for encoding various encoding parameters and quantized transform coefficients (quantized transform coefficients) into bitstream, and outputs the bitstream of the video signals. The encoded image buffer unit 1111 is used for storing reconstructed blocks as the reference blocks for intra-frame prediction. As the video image encoding progresses, new reconstructed blocks are continuously generated, and these blocks are stored in the encoded image buffer unit 1111.

[0036] As shown in FIG. 2, a video decoding system 120 may include multiple modules such as a decoding unit 1201, an inverse transform and inverse quantization unit 1202, an intra-frame prediction unit 1203, a motion compensation unit 1204, a filtering unit 1205, a decoded image buffer unit 1206 and a post filtering unit 1207.

[0037] The input signals of video frames are encoded by the video encoding system 110 to obtain an output bitstream. The video encoding system 110 transmits the bitstream to the video decoding system 120. The video decoding system 120 receives the bitstream representing the video frames in an encoded format (i.e., in a compressed format) . In the video decoding system 120, the bitstream is processed by the decoding unit 1201 to obtain decoded transform coefficients. The inverse transform and inverse quantization unit 1202 process the transform coefficients to generate a residual block in the pixel domain. The intra-frame prediction unit 1203 is operable to generate an intra-frame prediction block for a current video decoding block based on a determined intra-frame prediction mode and data from previously decoded blocks of the current video frame or picture. The motion compensation unit 1204 determines the inter-frame prediction information for the current video decoding block and generates an inter-frame prediction block by parsing the motion vector and other associated syntax elements. Finally, the decoded video block is formed by summing the residual block from the inverse transform and inverse quantization unit 1202 and the corresponding prediction block generated by the intra-frame prediction unit 1203 or  the motion compensation unit 1204. In order to improve video quality, the decoded video blocks are filtered through the filtering unit 1205 to remove blocking artifacts. The decoded video block is then stored in the decoded image buffer unit 1206 as the reference block for subsequent intra-prediction or motion compensation, and for video output, i.e., to reproduce and reconstruct the original video signals. The output video can be optionally further processed by a post filtering unit 1207 for more suitable or enhanced viewing experiences.

[0038] Embodiment of the present disclosure are mainly used for the intra-frame prediction unit 1104 of the video encoding system 110 and the intra-frame prediction unit 1203 of the video decoding system 120. If a better prediction effect can be obtained in the video encoding system 110 through the intra-frame prediction method provided by the embodiments of the present application, then the quality of video decoding and reconstruction can also be improved. The video decoding system 120 receives the bitstream representing the video frames. The bitstream includes the luma component of the video frame. The intra-frame prediction unit 1203 of the video decoding system 120 can thus obtain the luma component of the reference blocks and the luma component of the current block and calculate the Hamming difference and the weights accordingly. The intra-frame prediction unit 1203 can perform the same intra-frame prediction method as the intra-frame prediction unit 1104.

[0039] The present disclosure involves determination of several prediction parameters in Decoder side Intra Mode Derivation (DIMD) based on the Histogram of Gradients. The following sections provide introduction for several related technologies of the present disclosure.

[0040] ● Matrix based intra prediction replacing conventional intra modes

[0041] The Matrix-based Intra Prediction (MIP) modes of VVC represent a new concept of intra predictors that are designed by data-driven methods. An overview of the whole MIP process is given in FIG. 3. If W and H denote the width and height of the given block, the input for MIP is comprised by the W reference samples refT directly located above the block and the H reference samples refL directly located left of the block. Out of this input, the MIP intra prediction samples are generated by applying an averaging followed by a matrix-vector multiplication and a linear interpolation.

[0042] The number nMIP of MIP modes supported on a given transform block is equal to 16 for mipSizeId=0 , equal to 8 for mipSizeId=1 and equal to 6 for mipSizeId=2 . Here, mipSizeId is set to 0 for 4×4 blocks, to 1 for 8×8 blocks and for blocks that have exactly one side of length 4, and to 2 for all other blocks. Each MIP mode can be transposed which is determined by a flag mipTranspose.

[0043] In the averaging step, the top and left boundary samples refT and refL are reduced to smaller boundaries redT and redL of size boundarySize=2 for 4×4 blocks and of size boundarySize=4 for all other blocks. If W=boundarySize·2n , then redT is defined as

[0044] where 0≤ i < boundarySize.

[0045] The left reduced boundary redL is defined analogously. The two boundaries redT and redL are concatenated to the single reduced boundary pTemp. Here, redT is taken first if the mode is not transposed, and redL is taken first, otherwise. In order to reduce its magnitude for typical signal characteristics, pTemp is transformed to a vector p of equal size by p [0] =2B-1-pTemp [0] p [i] =pTemp [i] -pTemp [0]

[0046] where B denotes the bit-depth and 0< i <2·boundarySize.

[0047] In the second step, out of the reduced boundary, a reduced prediction signal predMip of size predSize*predSize is generated by matrix-vector multiplication, where predSize (W, H) =4 , if mipSizeId (W, H) ∈ {0, 1} , otherwise predSize (W, H) =8. For the k -th MIP prediction mode, 0≤ k < nMIP , one computes predMip= (Ak·p+32·1) >>6+pTemp [0] ·1

[0048] In this equation, Ak is a matrix whose number of rows is predSize*predSize and whose number of columns equals the size of p. Moreover, the symbol ‘·’ denotes matrix-vector multiplication, 1 denotes the vector of ones having size as predSize*predSize and the right shift is applied elementwise. A clipping to the range [0, 2B-1) is applied to the components of predMip afterward.

[0049] If the horizontal and vertical upsampling factors are set to upHor=W / predSize and upVer=H / predSize , the signal predMip defines the final prediction signal pred at every upHor-th and, respectively, upVer-th sample position of the block. More precisely, if 0 ≤ x < predSize and 0≤ y <predSize , for mipTranspose=0 , pred is defined as: pre [(x+1) ·upHor-1, (y+1) ·upVer-1] =predMip [y·predSize+x]

[0050] For mipTranspose=1 , pred is defined by interchanging x and y on the right-hand side of the last equation.

[0051] In the final step, at the remaining sample positions, the values of pred are derived by linear interpolation, where first a horizontal and then a vertical interpolation are performed. Here, for the horizontal interpolation, the prediction is extended to the left by the reference samples.

[0052] Each matrix Ak occurring in (1) is uniquely determined by mipSizeId and by the MIP-mode k. Its entries can be represented using 7-bit precision. Moreover, for mipSizeId=2 , the first column of each Ak is zero since the corresponding MIP mode maps the constant boundary signal to the constant prediction signal of the same value. Thus, overall, 16 matrices of size 16×4 , used for mipSizeId=0 , 8 matrices of size 16×8 , used for mipSizeId=1 , and 6 matrices of size 64×7 , used for mipSizeId=2 , are specified for MIP.

[0053] The final design of the MIP-modes in VVC can be regarded as a low-complexity variant of neural network-based intra prediction modes. While key aspects of the data-driven training algorithm were also employed to determine the parameters of the matrices Ak , the design finally adopted to VVC represents a different operational point in the gain-complexity tradeoff than the initial variant. The central steps for the complexity reduction are the downsampling of the input and the upsampling of the output of the prediction. In this way, the size of the matrices can be reduced considerably and the same matrices  can be used for different block shapes.

[0054] ● Decoder-side Intra Mode Derivation (DIMD)

[0055] Decoder-side Intra Mode Derivation (DIMD) technique is currently used as one of the intra prediction modes. In this technique, one or several intra prediction modes are determined based on estimation of Histogram of Gradients in the template area located to the left, above-left, and above the current block.

[0056] A flowchart of HoG estimation is shown in FIG. 4. For each position “A” .. “Q” , samples of template area are convolved with 2 filter kernels of an edge operator. One of these kernels is horizontal (it detects gradients for horizontally-aligned edges) and another one is vertical (it detects gradients for vertically-aligned edges) . Results of these convolutions are correspondingly denoted as “horizontal gradient” Gx and “vertical gradient” Gy.

[0057] These gradients are used to update a bin of HoG by increasing a value inside the bin by the sum of the absolute values of the gradients. Index of the bin is determined based on a ratio of Gx to Gy (or vice versa, Gy to Gx) and a combination of gradients’ signs.

[0058] In DIMD without Location-dependent Decoder-side Intra Mode Derivation uniform blending is used, where the DIMD predictors are combined with a Planar or IntraTMP or IBC predictor, using weights that depend on the relative magnitudes of the two directional modes in the histogram of gradients. The template that is used to obtain a HoG is shown in FIG. 5.

[0059] The decision on which of these 3 (planar, IntraTMP and IBC) prediction modes should be taken for fusion may be based on template matching (TM) cost. Weight wSC assigned to the mode selected out of this list (planar, IntraTMP and IBC modes) have fixed values and differ just for 2 cases: 1) around of the overall weight if just one direction is detected by HoG; or 2)  of the overall weight if more than one direction is detected by HoG. This predictor used in the DIMD fusion process is further referred to as smoothing component.

[0060] ● Location-dependent Decoder-side Intra Mode Derivation

[0061] In JVET-AB0116 and JVET-AC0098 a method of Location-dependent Decoder-side Intra Mode Derivation is disclosed. This method introduces non-uniform, sample-based weights to blend the DIMD predictors. The usage of sample-based blending, and the specific weights to use for a given predictor, are inferred during the DIMD derivation process. In particular, when deriving a DIMD mode, it is proposed to also determine whether the derivation of such mode was mostly influenced by the template region above or on the left of the current block. If a DIMD mode was mostly derived from samples above the current block, then when blending the corresponding predictor, higher weights should be used for samples closer to the above portion of the block.

[0062] In order to determine whether specific samples in the template contribute to inferring specific DIMD modes, three separate regions are considered within the DIMD template, as shown in FIG. 6.

[0063] The gradient computation is performed separately for samples in each region, resulting in  three histograms, Habove, Hleft and HaboveLeft, respectively. For a directional mode m, Habove [m] represents the cumulative magnitude of all samples in the region ABOVE at direction m. It should be noticed that the template area is extended by one sample on the top-left and one sample on the bottom-right, with respect to conventional DIMD.

[0064] The full histogram of gradients for the whole template can then be computed as the sum of the three separate histograms. As in conventional DIMD, the two directional modes with largest and second-largest cumulative magnitude in the histogram are selected as main and secondary DIMD modes, dimdMode0 and dimdMode1, respectively.

[0065] Additionally, the histograms Habove and Hleft can be used to determine whether dimdMode0 and / or dimdMode1 depend on a specific template region ABOVE or LEFT. In particular, the location-dependency of dimdModei, denoted as locDepi, can be defined as follows.

[0066] If : (Habove [dimdModei] >2Hleft [dimdModei] ) , then: locDepi=1 , that is dimdModei depends on region ABOVE.

[0067] Otherwise, if : (Hleft [dimdModei] >2Habove [dimdModei] ) , then: locDepi=2, that is dimdModei depends on region LEFT.

[0068] Otherwise, locDepi=0, that is dimdModei is not location-dependent.

[0069] Blending is then performed to fuse the main and secondary DIMD predictors, dimdPred0 and dimdPred1, with the Planar predictor dimdPlanar. In case no DIMD mode is determined to be location-dependent (meaning locDep0==locDep1==0) then uniform blending is applied. Uniform weights wDimd0, wDimd1 and wPlanar are derived based on the relative magnitudes of the modes in the histogram, and the final DIMD prediction is computed as:

[0070] If at least one of the DIMD modes is inferred to be location-dependent, then sample-based blending is used. A different weight is used to blend the predictors at each location (x, y) .

[0071] If locDepi≠0 the sample-based weights wLocDepDimdi (x, y) for predictor dimdPredi are computed so that the average weight used within the block is approximately equal to the uniform weight wDimdi and so that higher weights are used in the portion of the block closer to the region ABOVE or LEFT, depending on locDepi. A range Δi is pre-defined, corresponding to the largest deviation of wLocDepDimdi (x, y) from wDimdi. Higher values of Δi result in a higher variation of the weights within the block. In particular for a block of size H×W, if locDepi=1, then:

[0072] Otherwise, if locDepi=2, then:

[0073] If both locDepi≠0, i=0, 1, then the weights wLocDepDimdi (x, y) are computed for both predictors as in the above two equations, depending on the value of locDepi.

[0074] Conversely, if locDepi=0 and locDep (1-i) ≠0 , then the weights for wLocDepDimdi (x, y) are computed as:

[0075] Finally, the weights for the Planar predictor wLocDepPlanar (x, y) are then computed as:

[0076] The final location-dependent DIMD prediction is then computed as:

[0077] ● Matrix based intra prediction replacing conventional intra modes

[0078] In JVET-AG0197 and JVET-AH0209, a method of matrix based intra prediction replacing conventional intra modes is disclosed. In this method, a matrix of weights, which are defined for a block shape and intra mode, is introduced. Those weights are multiplied by the neighbour reference template to derive the prediction samples replacing conventional intra prediction. The weights are applied to the reference samples of the L shaped causal neighborhood template as shown in FIG. 7.

[0079] The reference samples in the causal neighborhood are denoted as r, and F (x, y) is the matrix of weights. Then the prediction P (x, y) can be derived as:

[0080] where k denotes the index of the reference sample in the template.

[0081] The template size could be set to 4 (i.e., T1 = T2 = 4) , and the template dimension is kept as 2·W and 2·H. The mode is only enabled for block sizes of W≤16 and H≤16, and for modes {0, 1, (2+4*k) } where k= {0, 1, 2, …, 16} , (i.e., every 4th mode) . When enabled, this mode replaces the conventional intra-prediction mode, so no extra signalling is needed.

[0082] In an implementation, this prediction is used for block size with both width and height up to 32 (except for 4x32, 32x4, 8x32 and 32x8) . The template size is 2 for blocks with both width and height up to 16 and it is only used for mode 0, 1, and (2+2*k) . For other blocks, template size is set to 1; is used for mode 0, 1, and (2+4*k) ; prediction is only performed for 16x16 positions, and the rest of the samples are generated by bilinear interpolation. For all block sizes, block shape and mode-based symmetry is used. Reference length is set to W and H for modes greater than 18 and less than 50 and set to 2·W and 2·H otherwise.

[0083] ● Matrix-based position dependent intra prediction (PDP) mode

[0084] Beyond VVC, a matrix-based position dependent intra prediction (PDP) mode has been  included since Enhanced Compression Model (ECM) version 13 maintained by Joint Video Experts Team (JVET) . The generation of prediction block in PDP is achieved by matrix-vector multiplications. For each of the block sizes whose width and height are powers of 2 and are between 4 and 32 (except for block sizes 32x4, 4x32, 32x8 and 8x32) , a set of matrices are pre-trained by machine learning and stored as part of the codec. To predict the current block, reconstructed samples from neighbour reference template are drawn and vectorized. The result of one of the matrices and the vectoized reference template is an output vector, which is then reshaped back to the size of the current block. Therefore, each of the matrix contains the weighting values to derive prediction block from neighbour reference template.

[0085] FIG. 8 shows the reference template of a block of size w-by-h. The reference template is typically 1 or 2 lines of reconstructed samples to the top and the left of the current block and their intersect to the top-left of the current block. For the top line (s) , the reference template can reach up to 2*w samples. For the left line (s) , the reference template can reach up to 2*h samples.

[0086] The prediction block of size w×h is computed as: p=Fr

[0087] In the above equation, p is a column vector of length w·h, r is a column vector of length nr and is the vectorized reference template, and F is a (w·h) ×nr weighting matrix (as shown in FIG. 9) . Each row of the weighting matrix is a mapping from all reference template samples to a sample in the prediction block. The result p of the matrix-vector multiplication is reshaped back to the size of current block as its prediction block and, optionally, up-sampled in depending on the predicted block size.

[0088] The prediction formula can also be written as:

[0089] where p (x, y) is the predicted value at (x, y) , r (k) is the k-th sample of the vectorized reference template and F (x, y, k) indicates the weighting of r (k) for predicting p (x, y) .

[0090] For more detailed information, please refer to: ECM-13.0, vcgit. hhi. fraunhofer. de, https:  / / vcgit. hhi. fraunhofer. de / ecm / ECM / - / tree / ECM-13.0 (accessed 1 Jun. 2024) ; M. Coban, R. -L. Liao, K. Naser, J.  L. Zhang, Algorithm description of Enhanced Compression Model 13 (ECM 13) , document JVET-AH2025, Joint Video Experts Team (JVET) , Jun. 2024; B. Ray, H. Wang, P. Garus, V. Seregin, M. Karczewicz, S. Eadie, G. Verba, EE2-2.13: Matrix based intra prediction replacing conventional intra modes, document JVET-AH0209, Joint Video Experts Team (JVET) , Apr. 2024; H. Wang, P. Garus, B. Ray, M, Coban, V. Seregin, M. Karczewicz, S, Eadie, EE2-2.8: Modifications to Matrix-based Intra Prediction, document JVET-AI0208, Joint Video Experts Team (JVET) , July 2024.

[0091] ● PDP replacing conventional intra prediction modes (IPM)

[0092] In ECM version 13, PDP is used to replace part of the conventional IPM, which include planar, DC and angular modes. Conventional IPMs are assigned mode numbers ranging from 0 to 66, where mode 0 is assigned to planar, mode 1 is assigned to DC and modes 2 to 66 are assigned to the 65  angular modes. PDP is used to replace: 1) Modes 0, 1 and 2+2*k (k is an integer and 0≤k≤32) for blocks whose width and height are both less than or equal to 16 pixels; 2) Modes 0, 1 and 2+4*k (k is an integer and 0≤k≤16) for other block sizes.

[0093] For each block size and each mode number where PDP is available, a corresponding weight matrix is used to generate prediction block as mentioned above.

[0094] For more detailed information, please refer to B. Ray, H. Wang, P. Garus, V. Seregin, M. Karczewicz, S. Eadie, G. Verba, EE2-2.13: Matrix based intra prediction replacing conventional intra modes, document JVET-AH0209, Joint Video Experts Team (JVET) , Apr. 2024.

[0095] ● PDP in template-based intra mode derivation (TIMD)

[0096] It has been proposed to use PDP together with template-based intra mode derivation (TIMD) . TIMD is a decoder-side derivation method that tests all conventional IPMs on a reference template, compares all prediction results against the reconstructed samples on the reference template and chooses up to 3 IPMs to generate prediction values for the current block. With PDP in TIMD, it was proposed to replace some conventional IPMs with respective PDP for TIMD derivation process.

[0097] For more detailed information, please refer to Y. Kidani, H. Kato, K. Kawamura, Non-EE2: Matrix-based position dependent intra prediction for TIMD, document JVET-AI0085, Joint Video Experts Team (JVET) , Jul. 2024.

[0098] ● PDP in spatial geometric partitioning mode (SGPM)

[0099] It has also been proposed that PDP be used in spatial geometric partitioning mode (SGPM) . SGPM is a bi-prediction mode where the prediction block comes from two conventional IPMs, each of which generates prediction values for one of the two partitions specified by a straight line going through the block. With PDP in SGPM, it was proposed to replace some conventional IPMs with respective PDP for prediction block generation.

[0100] For more detailed information, please refer to X. Li, R. -L. Liao, J. Chen, Y. Ye, Non-EE2: Regression-based SGPM blending, document JVET-AI0102, Joint Video Experts Team (JVET) , Jul. 2024.

[0101] In conventional DIMD fusion process, planar, IntraTMP, and IBC predictors are always involved, no matter what distribution between HoG bins is observed for the template area. The problem of this design is that the weight applied to planar, IntraTMP, and IBC predictors are arbitrary and not based on the results derived by means of HoG so that it cannot reflect the content properties of the template area.

[0102] Although Planar, IntraTMP, and IBC modes are capable to provide good predictor for a given block, the correlation between these predictors and the HoG results obtained for the give block is not estimated. As a consequence of this design, the predictors generated by using planar, IntraTMP, and IBC modes might be inconsistent with the HoG results and, hence, not good fits for the given block decreasing  the compression performance of DIMD.

[0103] Moreover, the weight assigned to the mode selected among planar, IntraTMP and IBC modes is switched between 2 values subject to one or more directions determined by HoG. However, the distribution of gradient magnitude over directions is not taken into account by this weight-assignment mechanism. Thus, its adaptivity  / flexibility is limited and restricts the compression performance of DIMD.

[0104] Furthermore, it is well known that smaller blocks tend to localize edges and elements of strong textures whereas larger blocks tend to localize smoother content. Thus, smoother predictors are more appropriate for larger blocks rather than for smaller ones. Since predictors constructed by using the planar mode tend to be smoother compared to predictors generated by using angular modes, their weight applied to these predictors while getting a combined predictor at the stage of the DIMD fusion process, should be allowed to differ for blocks of different sizes.

[0105] The present disclosure aims to provide a scheme for adaptation of the smoothing component of DIMD fusion process in construction of a predictor for a current block. Embodiments of the present disclosure may solve one or several of the foregoing limitations in the conventional DIMD fusion.

[0106] FIG. 10 is a flowchart of a decoding method applying DIMD fusion according to an embodiment of the present disclosure. As shown in FIG. 10, the method includes operations described in blocks S201 to S204.

[0107] In S201, a template area for a current block is determined.

[0108] The template area includes reconstructed samples used for predicting the current block. For example, the template area may include one or more reference lines (adjacent or non-adjacent to the current block) . The template area may be pre-defined (e.g., by the coding standard) , or it may be indicated by an encoder to the decoder in a bitstream.

[0109] The template area may be close to the current block such that properties such as directionality of the template area may be similar to those of the current block.

[0110] In S202, an edge operator is applied to the template area to acquire a Histogram of Gradient (HoG) .

[0111] The edge operator may be used to generate gradient-related information of positions within the template area. The edge operator includes a horizontal edge operator Fx and a vertical edge operator Fy. The size of the edge operator may correspond to the size of the template area. For example, if the template area includes 2 reference lines, a 2 by 2 edge operator may be applied; if the template area includes 3 reference lines, a 3 by 3 edge operator may be applied. However, in some cases, the size of the edge operator may be different from the size of the template area. For example, the size of the edge operator may be larger than that of the template area. In this situation, the edge operator may be applied to positions of the template area and the proximity of the template area to acquire the gradient-related information of the template area.

[0112] As an example, the edge operator involved in the present embodiment may be same or similar as that used in conventional DIMD process (e.g., the 3×3 edge operator as shown in FIG. 4) .  Correspondingly, the process for acquiring the HoG may be similar to that used in conventional DIMD process. It should be understand, other types of operator used for determination of directionality of the template area can also be used.

[0113] For example, the edge operator may be applied to different positions of the template area. For each area, a horizontal gradient Gx and a vertical gradient Gy are acquired, and the value of the gradient magnitude M and the gradient direction A are calculated as follows: M=abs (Gx) +abs (Gy)

[0114] Then these results can be used to construct or update the bins of the HoG.

[0115] The above-described filtering operator serves to acquire the directional property of the reference area or acquire the HoG. It should be understood, other types of operators to determine directionality within the reference area could be engaged.

[0116] One approach for determining the directionality within the reference area may include: 1) determining a subarea by applying an edge or line detector; 2) applying an edge operator inside this subarea to determine direction within the subarea. The purpose of this combination is to apply edge detection only within such areas of reference samples, that contain directional content.

[0117] For example, for larger reference areas (e. g, with template width greater than 8 or template height greater than 8) directionality could be detected by applying e.g., edge detector based on the Gabor filter (see, e.g., Mehrotra, R. &Namuduri, Kamesh &Ranganathan, N.. (1992) . Gabor filter-based edge detection. Pattern Recognition. 25.1479-1494.10.1016 / 0031-3203 (92) 90121-X) . Based on the results of Gabor edge detection, a subarea in the reference area is selected, e.g. edge operator is applied to the positions that are detected, i.e. classified to be a part of an edge.

[0118] For example, line detection using Radon transform (and its variations, e.g., weighted Radon transform) could be utilized to detect position of lines within the template area. Result of line detection is further used to specify a subarea, in which edge operators are applied.

[0119] Another approach to determine a subarea is to apply a texture Segmentation method. In this method, edge operator is applied to the samples that are located on the boundaries of textures of different classes. For more details, please refer to “Texture Segmentation Comparison Using Grey Level Co-occurrence Probabilities and Markov Random Fields” (David A, Claussi and Bing Yue) .

[0120] In S203, a weight of one or more smoothing components for the DIMD fusion is determined based on the HoG. The smoothing component is a predictor that is involved in DIMD fusion process which is obtained intra prediction methods that produces smooth predictors, such as DC, Planar or PDP. Block Vector predictors could be also regarded as smoothing components.

[0121] When building a HoG, gradient magnitudes are accumulated in the bins of HoG. The same gradient magnitude could be obtained by either 1) accumulation of many relatively small gradients; or 2) accumulation of one or several larger gradients. The presence of strong edges in the content corresponds to the case where one or several larger gradients are accumulated. Hence, determination of directionality  within the template area should distinguish these two cases.

[0122] FIG. 11 shows the method of determination of the main mode for DIMD fusion based on the HoG. As shown in FIG. 11, a bin with the highest magnitude corresponds to an intra prediction mode that is referred to as “Main mode” .

[0123] Determination of directionality and determination of weights for smoothing component (s) may base on comparison of HoG with a threshold. Specifically, the threshold may include a gradient threshold and a quantity threshold. Detailed explanation is given below.

[0124] The operation of determining the weight of one or more smoothing components for the DIMD fusion based on the HoG may include: acquiring a gradient threshold and a quantity threshold; determining a quantity of bins within the HoG whose corresponding gradient magnitudes exceed the gradient threshold; when the quantity exceeds the quantity threshold, selecting a lower weight to be the weight of one or more smoothing components; and / or, when the quantity does not exceed the quantity threshold, selecting a higher weight to be the weight of one or more smoothing components.

[0125] In one embodiment, the values of the gradient magnitude are compared with a gradient threshold value, and the gradient threshold value may be set in dependence of the bit depth of a compressed picture. For example, GT= (bitdepth) >>6, or GT= (bitdepth) >>5.

[0126] In the above case, the value of the gradient threshold is defined with regard to the bit-depth of the picture in a form of GT= (bitdepth) >>k, where k can be considered as a threshold coefficient. The value of k could be signalled in a bitstream for a sequence, a picture or a slice. For example, a sequence header, a picture header or a slice header may comprise a symbol “directionality_threshold_shift_minus_2” . The value of k could be resotred on the decoder side as follows: k=directionality_threshold_shift_minus_2+2

[0127] The value of k may be higher than 2 because it is not reasonable to determine thresholds higher than of the range of reconstructed sample values.

[0128] In another embodiment, the gradient threshold may be determined in an alternative way, which includes: determining a reference area; applying the edge operator to the reference area to acquire gradient magnitudes within the reference area; calculating an average gradient magnitude within the reference area; and determining the gradient threshold based on the average gradient magnitude within the reference area.

[0129] In other words, the values of the gradient magnitude are compared with an adaptively determined threshold. The adaptation of the threshold could be performed based on the average value of the gradients within a reference area (see FIG. 12) . The reference area may be determined by the template width WT and template height HT of the template area, and the maximum number of rows and columns within the template that is determined by the size of the predicted block. For example, this number may be set equal to the height and width of the predicted block, respectively. In another example, this number is set equal to k·HT and k·WT, respectively, and the value of k is equal to 2. In another example, this number is set equal to k·HT and k·WT, respectively, and the value of k is equal to 3. In another  example, this number is set equal to k·HT and k·WT, respectively, and the value of k is equal to 4. In all the examples, the reference area comprises only previously reconstructed samples.

[0130] In another example, this number is set equal to k·HT and l·WT , respectively, and the values of k and l are integer numbers greater or equal to 2. The coefficients k and l for this mode may be pre-defined. Alternatively, the coefficients k and l may be included in a bitstream transmitted for the encoder to the decoder.

[0131] It should be understood, in a special case, the reference area in this embodiment for determining the average gradient magnitude may be identical to the template area for generating the predicted block. Moreover, the size WR, HR of the reference area for which average gradient value was determined is defined to be no smaller than the size WT, HT of the template:

[0132] where WR is the width of the reference area, and HR is the height of the reference area.

[0133] As for a simple application, the gradient threshold may be equal to the average gradient magnitude within the reference area. As for a more general application, the gradient threshold may be equal to the average gradient magnitude within the reference area multiplied by a pre-defined coefficient.

[0134] Specifically, for each position (x, y) within the reference area, an edge operator may be applied and a value of the gradient magnitude is determined as |G (x, y) | . The average value of the gradient magnitude for the reference area T is obtained as follows:

[0135] where |T| is a number of edge operator positions within the reference area.

[0136] The derived value Gμ may be utilized as the gradient threshold, i.e., GT=Gμ. Alternatively, the gradient threshold may be determined as GT=m·Gμ, where m>1. Particularly, m may be set equal to 2. In another example m may be set equal to 1.5. Similarly, the coefficient m may be pre-defined, or may be included in a bitstream transmitted for the encoder to the decoder. It should be understood, in some cases, a mean-square value (or other similar statistics) of gradients within the reference area may be utilized to replace the average value for determining the gradient threshold.

[0137] The quantity threshold may also be determined in various ways.

[0138] In one embodiment, the quantity threshold is a fixed value equal to 1, 2 or 4, which may be predefined, or may be included in a bitstream transmitted for the encoder to the decoder.

[0139] In another embodiment, the quantity threshold may be determined based on the number of samples within the template area or the current block. Specifically, the quantity threshold may be defined with respect to the number of samples within a block to be predicted, e.g. qT=max (1, log2 (W) +log2 (H) -4) , where qT refers to the quantity threshold, W is the width of the bock and H is the height of the block (as shown in FIG. 12) .

[0140] With the determined gradient threshold GT and the quantity threshold qT, the directionality  of the template may be determined, and weights for smoothing component may be determined.

[0141] Specifically, the number Q of positions for which gradient magnitudes |Gi (x, y) | (where i∈ [1, Q] ) exceed the threshold GT is compared with the quantity threshold qT.

[0142] When the number Q is greater than the predetermined value qT, it means the directionality of the template area is arbitrary, and fluctuation may exist within contents of the template area. Accordingly, the weight of the smoothing component for DIMD may be set to a lower value (e.g., 0.05) . Otherwise, when the number Q is less than the predetermined value qT, the weight of the smoothing component for DIMD may be set to a higher value of 8 / 64.

[0143] Other possible options for the lower weight value include, but are not limited to, 2 / 64, 4 / 64 or 16 / 64. Experimental results show all of these values may bring performance gain in comparison with the conventional fixed weight.

[0144] It should be noticed, the above determined weight value may be used as a total weight for all smoothing components such as planar, Intra-TMP and IBC or other types of predictors used in DIMD fusion process. If there exist multiple smoothing components, weights for these components may be identical to each other, and the sum of weights is equal to the above determined weight value.

[0145] In S204, a predicted block is generated for the current block based on the one or more smoothing components and the weight.

[0146] According to this method, the directionality of the template area is taken into consideration in the prediction process, especially in determination of weights for smoothing components involved in DIMD fusion process. Thus, the prediction result may be more accurate.

[0147] The present disclosure further provides a method applying DIMD fusion. The method shares a similar idea of prediction based on content properties as the method above, but is achieved in a different way. FIG. 13 is a flowchart of a decoding method applying DIMD fusion according to another embodiment of the present disclosure. As shown in FIG. 13, the method includes operations described in blocks S301 to S304.

[0148] In S301, a template area for a current block is determined.

[0149] In S302, an edge operator is applied to the template area to acquire a Histogram of Gradients (HoG) .

[0150] Operations S301 and S302 are similar to operations S201 and S202 described in foregoing sections of the present disclosure, and will not be repeated herein for simplicity and clarity.

[0151] In S303, one or more Position Dependent Intra-prediction (PDP) modes are determined to constitute a PDP-based smoothing component for the DIMD fusion based on the HoG.

[0152] As introduced in previous sections of the present disclosure, PDP modes can be utilized to replace convention intra prediction modes in DIMD fusion process. In this method, a smoothing component is obtained as a combination of predictors obtained from PDP modes that are determined from the DIMD histogram. An exemplary flowchart is shown in FIG. 14. The list of PDP modes which are utilized to construct the PDP-based smoothing component may be in accordance with the properties of the acquired HoG. Specifically, weights for the selected PDP modes to obtain the PDP-based  smoothing components for construction of the PDP-based smoothing component. Then, the weight for the PDP-based smoothing component used in DIMD fusion may be determined. Optionally, when there are other smoothing components, a total weight for all the smoothing components and / or the weight for each smoothing component may be determined. Detailed explanation will be given below.

[0153] Bins of the HoG acquired in previous steps may correspond to a plurality of directional intra-prediction modes and a plurality of Position Dependent Intra-prediction (PDP) modes.

[0154] In one embodiment, the modes involved in the DIMD fusion may be pre-set to the decoder. Alternatively, the modes involved in the DIMD fusion may be derived.

[0155] The operation of determining the plurality of components involved in the DIMD fusion may include: acquiring a plurality of intra-prediction modes for the DIMD fusion based on the HoG; acquiring a number of PDP modes contained in the plurality of intra-prediction modes; comparing the number of the PDP modes with a pre-defined number threshold; when the number of the PDP modes is larger than the pre-defined number threshold, inserting an additional intra fusion mode into the plurality of modes involved in the DIMD fusion, and removing a Block Vector (BV)  / Planar mode from the plurality of modes involved in the DIMD fusion ; or when the number of the PDP modes is less than the pre-defined number threshold, removing an intra fusion mode that corresponds to a lowest magnitude in the HoG from the plurality of modes involved in the DIMD fusion, and inserting a BV / Planar mode into the plurality of modes involved in the DIMD fusion.

[0156] FIG. 15 illustrates a flowchart for fetching an additional fusion mode from HoG that will be used to replace BV / planar mode, and FIG. 16 illustrates a flowchart for determining the presence of BV / planar mode in DIMD fusion process.

[0157] In the process shown in FIG. 15, the main mode and additional 4 modes are firstly derived from the HoG (e.g., by selecting those with the largest gradient magnitudes) . The number of PDP modes within the additional 4 modes is compared with a first threshold, which is equal to 3 in this example. If the number of the PDP modes exceed the threshold, an additional intra fusion mode is determined to be involved in the DIMD fusion, and correspondingly the Block Vector (BV)  / Planar predictor is removed. The motivation behind this condition is that PDP mode provides smooth prediction, and applying yet another smooth prediction (i.e., Block Vector (BV)  / Planar) may lead to the generated predictor being too smooth (oversmoothing) .

[0158] In the process shown in FIG. 16, the main mode and additional 5 modes are firstly derived from the HoG (e.g., by selecting those with the largest gradient magnitudes) . The number of PDP modes within the additional 4 modes is compared with a second threshold, which is equal to 3 in this example. If the number of the PDP modes is less than the threshold, the intra fusion mode that corresponds to the lowest gradient magnitude among the additional 5 modes is removed, and correspondingly the Block Vector (BV)  / Planar predictor is determined to be involved in DIMD fusion.

[0159] It should be understood, value of the first threshold or the second threshold may be a pre-defined fixed value. For example, the first threshold or the second threshold may be equal to 1, 2, 3, or 4. Alternatively, value of the first threshold or the second threshold may be included in a bitstream  transmitted from the encoder to the decoder.

[0160] In an alternative method, the operation of determining the plurality of components involved in the DIMD fusion may include: calculating a sum of magnitudes of the bins within the HoG; acquiring a maximum magnitude within the HoG; including a BV / Planar mode in the plurality of modes involved in the DIMD fusion when a ratio of the maximum magnitude to the sum of magnitudes is larger than a ratio threshold; and excluding the BV / Planar mode from the plurality of modes involved in the DIMD fusion when a ratio of the maximum magnitude to the sum of magnitudes is less than the ratio threshold. That is, the ratio of maximum magnitude to the sum of magnitudes within a HoG may be used to determine the presence of a BV / planar mode in a DIMD fusion process. An example is given below.

[0161] Firstly, a sum of magnitudes S within a HoG is calculated (as it is done in DIMD) . The sum of magnitudes S within a HoG is obtained as a sum of magnitudes for all the bins:

[0162] where i is the index of bin, N is the number of bins in the HoG, Hi is a magnitude of an i-th bin.

[0163] Then, a maximum magnitude M within a HoG is calculated. The maximum value of M is determined for a set of bins H as follows: M=max {Hi}

[0164] Finally, the maximum magnitude M is compared with a sum of magnitudes S. If the ratio of M to S is greater than a predetermined threshold a BV / planar mode is included in DIMD fusion process. This result represents that the template area has a significant direction, which means a smoothing operation to the predictor of DIMD fusion would be beneficial. Otherwise, if the ratio of M to S is less than the predetermined threshold, the BV / planar mode is excluded from DIMD fusion. This result represents that directionality of the template area is arbitrary, and the smoothing operation is less important to the DIMD fusion.

[0165] The pre-defined ratio threshold may be equal to, for example, 0.15, 0.25, 0.5 or 0.75. Alternatively, the pre-defined ratio threshold may be determined based on a size of the current block. The larger the current block is, the smaller the ratio threshold should be. Two examples of the ratio threshold options are given in Table 1 and Table 2, respectively.

[0166] Table 1 Dependency of the value of threshold TR on the block size (1st example)

[0167] Table 2 Dependency of the value of threshold TR on the block size (2nd example)

[0168] In one embodiment, the PDP modes involved in the DIMD fusion may be pre-set to the decoder. Alternatively, the PDP modes involved in the DIMD fusion may be derived.

[0169] As explained in foregoing sections of the present disclosure, bins of the HoG acquired in previous steps may correspond to a plurality of directional intra-prediction modes and a plurality of Position Dependent Intra-prediction (PDP) modes.

[0170] The operation of determining one or more Position Dependent Intra-prediction (PDP) modes from the plurality of PDP modes to constitute the PDP-based smoothing component may include: acquiring a first number of modes from the HoG that have largest magnitudes; when quantity of PDP modes contained in the first number of modes is no less than quantity of non-PDP modes contained in the first number of modes, determining the PDP modes contained in the first number of modes to be the one or more PDP modes for constituting the PDP-based smoothing component; or when quantity of PDP modes contained in the first number of modes is less than quantity of non-PDP modes contained in the first number of modes, acquiring a second number of additional PDP modes from the HoG that have next largest magnitudes, and determining the PDP modes contained in the first number of modes and the second number of additional PDP modes to be the one or more PDP modes for constituting the PDP-based smoothing component. An exemplary process is illustrated in FIG. 17.

[0171] As shown in FIG. 17, after the HoG is determined, a list of N modes are determined that have the maximum value of magnitudes within the HoG. When a minority of these N modes are PDP ones or when all the modes are non-PDP ones (i.e., NPDP<Nnon-PDP) , the next M highest-magnitude modes, which are PDP modes, are determined.

[0172] To acquire the next M PDP modes which have the next-highest gradient magnitudes, non-PDP modes having higher gradient magnitudes may be skipped from consideration.

[0173] Alternatively, the next M PDP modes may include those closest (in terms of mode indexes) to the highest-magnitude non-PDP modes. An example is given in FIG. 18. Assuming modes A and B have the next two highest gradient magnitudes, and both of them are non-PDP modes. For the M PDP modes, the PDP mode #K which is the PDP mode closest to the mode A and the PDP mode #K+4 which is the PDP mode closest to the mode B may be selected.

[0174] The M+NPDP PDP modes may be selected for construction of the PDP-based smoothing component. On average, the accuracy of a predictor is higher if higher number of intra prediction modes is involved. PDP-based prediction shown in Fig. 14, involve a set of PDP modes to obtain a smoothing component. So, fetching more modes from a HoG for a smoothing component may improve accuracy of the smoothing component. The number M+NPDP of PDP modes is constrained by hardware complexity which could be equal, e.g. to 5 or 6 modes.

[0175] When the PDP modes for construction of the PDP-based smoothing component are determined, their weights for construction of the PDP-based smoothing component can be determined.

[0176] In one embodiment, the one or more weights of the one or more PDP modes are determined based on ratios of the gradient magnitudes of the one or more PDP modes to the sum of gradient magnitudes corresponding to the one or more PDP modes, respectively.

[0177] The smoothing component is obtained from the set of the PDP modes as a weighted sum of predictors obtained with PDP modes. The weights of these PDP modes may be determined from HoG,  e.g proportionally to the bins magnitudes that correspond to these PDP modes. An exemplary process is given below.

[0178] A sum of magnitudes S within a HoG is obtained as a sum of magnitudes for all the bins:

[0179] wherein i is the index of bin, N is the number of bins in the HoG, Hi is a magnitude of an i-th bin.

[0180] Then, a sum of magnitudes SPDP within a HoG is obtained as a sum of magnitudes for all the bins that correspond to PDP modes:

[0181] wherein j is the index of bin, Hj is a magnitude of an i-th bin. It should be understood, in the case, all the PDP modes indicated in the HoG may be involved to calculate SPDP; in other cases, the PDP modes selected (as introduced in foregoing sections of the present disclosure) may be utilized to calculate SPDP.

[0182] The weight of the PDP-based smoothing component wSC is determined as the total weight for PDP modes and is calculated as follows:

[0183] The parameter “prec” refers to the precision, and it could be set equal to 6.

[0184] Each weight for individual PDP mode could be calculated as:

[0185] which satisfies:

[0186] In another embodiment, the one or more weights of the one or more PDP modes are substantially equal to each other. In this case, all the values of the weights for PDP modes except the last one could be defined as follows:

[0187] The value of the weight for the last PDP mode could be defined with regard to the constraint on the sum of weights, i.e.:

[0188] The weight for the last PDP mode is determined differently as compared to other weights in order to compensate inaccuracy of integer division, so as to guarantee that The value of precision “prec” for weights could be set equal to 6. It should be understood, the precision  value “6” is a predetermined weighting scale defined in ECM for weight in DIMD process. In other implementation, this value could be changed depending on actual design requirement.

[0189] Moreover, the weight for the PDP-based smoothing component involved in the DIMD fusion can be determined.

[0190] In one embodiment, the operation of determining the weight for the PDP-based smoothing component involved in the DIMD fusion includes: acquiring a gradient threshold, wherein a corresponding magnitude of each of the one or more PDP modes is no less than the gradient threshold; determining a template matching (TM) cost of the one or more PDP modes with regard to the template area; determining a signal-to-error ratio based on the TM cost; and determining the weight for the PDP-based smoothing component based on the signal-to-error ratio. FIG. 19 shows an example of this embodiment.

[0191] Firstly, the HoG is calculated and at least 1 dominant direction is determined. The dominant direction is determined by selection of the bin within a HoG that provides a maximum value of magnitude. The direction of an intra prediction mode associated with the selected bin is the determined dominant direction. Alternatively, several dominant directions which have the largest gradient magnitudes may be determined

[0192] Then, based on the determined dominant directions, a fusion (linear combination) of predictors is obtained. Template matching (TM) cost is calculated for the template area (the one used by DIMD for building HoG) . This template matching cost estimation could be a part of a signal-to-error ratio (SER) calculation.

[0193] For acquiring the template-matching cost, a sum of squared mean-removed reconstructed samples within a template area is calculated, to estimate signal energy:

[0194] In the above equation,  are mean-removed reconstructed samples within a template area T, i.e.  r (x, y) are reconstructed samples within a template area T.  is the mean value of reconstructed samples within a template area T. |T| is the number of samples within the area T.

[0195] A sum of squared differences between reconstructed samples and predicted samples (fusion of predictors) within a template area is calculated, to estimate signal energy EE=∑x, y∈T (p (x, y) -r (x, y) ) 2. Then, A signal-to-error ratio could be calculated as It is understood that this ratio could be calculated as a fixed-point value with some predetermined precision. For example, for a 10-bit precision, it may be calculated as:

[0196] At last, The value of signal-to-error ratio obtained is further used to obtain the weight for the  smoothing component in the DIMD fusion process. For example, the weight of smoothing component could be defined as a decreasing function of SER.

[0197] For example, the weight of the PDP-based smoothing component wSC may be determined as follows:

[0198] In the above equation, wSC is the weight for the PDP-based smoothing component;  is a maximum weight value;  is a minimum weight value; SER is the signal-to-error ratio; and kis a coefficient.

[0199] The values of k,  and could be signaled by the encoder to the decoder. Alternatively or additionally, the values of k,  and could be defined in accordance with the size of the predicted block.

[0200] Examples of how these values could be defined is given in Table 3 and Table 4.

[0201] Table 3

[0202] Table 4

[0203] Selection of the parameters is determined by the content type (natural content, screen content, etc. ) and presence of alternative intra prediction tools that may be invoked by an encoder to intra-predict a current block. For example, if MIP is enabled for encoding a block in a picture, parameters from Table 3 may be selected to determine a weight of a smoothing component; otherwise, parameters from Table 4 may be selected. The selection of the table may be signaled by the encoder to the decoder. The reasoning behind this example is that MIP typically provides a smooth predictor and therefore, the values for the smoothing component weight could be reduced.

[0204] Content adaptation could be performed by indicating a symbol in a sequence header, picture header or slice header. The symbol may be used to switch between sets of predetermined values.

[0205] In another embodiment, the operation of determining the weight for the PDP-based smoothing component involved in the DIMD fusion may include: calculating a sum of all gradient magnitudes within the HoG; calculating a sum of gradient magnitudes corresponding to the one or more PDP modes within the HoG; and determining the weight for the PDP-based smoothing component based on a ratio of the sum of gradient magnitudes corresponding to the one or more PDP modes to the sum of all gradient magnitudes.

[0206] In DIMD fusion process, some of predictors are obtained using matrix-based Position Dependent intra Prediction (PDP) . In this embodiment the weight of the smoothing component used in DIMD fusion based on the weights that are assigned to PDP fusion modes is determined. The steps of the embodiments are as follows.

[0207] Firstly, the sum of weights SPDP associated with PDP modes are calculated. For the set of weights {wi} obtained from a HoG by DIMD process, the weights {wj} that are associated with PDP modes are selected. Determination of a mode being a PDP or non-PDP could be performed by its index as follows: mi mod 4=0. For example, when an index of a mode is divisible by 4 (see the formula below) , prediction for the current block by replacing one or more conventional intra prediction modes by the PDP modes. The sum of weights that correspond to PDP modes could be obtained as follows:

[0208] Then, the sum of weights SPDP associated with PDP modes is compared with a threshold Tw.

[0209] The threshold Tw could be defined with regard to the size of the block and depending on the precision of weighting operation, e.g. the sum of all the weights. In ECM-14, the sum of all the weights is equal to 64. For example, threshold Tw could be set equal to the half of the sum of all the weights, i.e. 32. In another example, threshold Tw could be set equal to the sum of all the weights, i.e. 16. In yet another example, the value of threshold Tw depends on the block size, an example of which is shown in Table 5.

[0210] Table 5 Dependency of the value of threshold Tw on the block size

[0211] Moreover, the weight for another smoothing component other than the PDP-based smoothing component involved in the DIMD fusion can also be determined.

[0212] The operation of determining the weight of another smoothing component for the DIMD fusion may include: calculating a sum of gradient magnitudes corresponding to the one or more PDP modes within the HoG; determining whether the sum of gradient magnitudes corresponding to the one or more PDP modes is larger than a threshold; when it is determined that the sum of gradient magnitudes corresponding to the one or more PDP modes is larger than the threshold, determining the weight of the  another smoothing component for the DIMD fusion based on the sum of gradient magnitudes corresponding to the one or more PDP modes. In this embodiment, the same threshold Tw and relative operations may be applied.

[0213] For the implementations that use a floating-point arithmetic, a sum of all the weights is equal to 1. When SPDP>Tw , the weight of the smoothing component (predictor, obtained using planar or block-vector prediction) used in DIMD fusion is defined as follows: wsc= (1-SPDP)  / 4

[0214] For the implementations that uses a fixed-point arithmetic, a sum of all the weights is set to 2N. When SPDP>Tw, the weight of the smoothing component in DIMD fusion process is defined as follows: wsc= (2N-SPDP) >>2

[0215] After the weight of the smoothing component in DIMD fusion process is determined, the weighs of the PDP and non-PDP modes are recalculated so as to keep the sum of all the weights equal to 2N. This could be performed by consecutively subtracting 1 from each of the weights (starting from the largest weight) until the sum of weights is equal to (2N-wsc) .

[0216] In an embodiment, if after the subtraction the updated value of weight becomes equal to 0, the corresponding mode is removed from the DIMD fusion process and the weight is not considered in further consecutive subtraction of 1.

[0217] In an embodiment, if after the subtraction the updated value of weight becomes equal to 1, the corresponding mode is not removed from the DIMD fusion process but the weight is not considered in further consecutive subtraction of 1.

[0218] To illustrate the assignment of weights the following example is given. Let the PDP weights from the DIMD process are determined as {24, 16} and non-PDP weights are determined as {11, 8, 5} .

[0219] The sum of weights for PDP mode will be determined as SPDP=24+16=40. Then, the weight of the smoothing component is determined as wSC= (26-40) >>2= (64-40) >>2=6.

[0220] After subtracting 1 from the weights (starting from larger weight) , the updated weights will be as follows: wPDP= {23, 16} , wnon-PDP= {11, 8, 5} and the remaining part to be subtracted equal to 5.

[0221] After the next round of subtracting 1 from the weights (starting from larger weight) , the updated weights will be as follows: wPDP= {23, 15} , wnon-PDP= {11, 8, 5} and the remaining part to be subtracted equal to 4.

[0222] After the next round of subtracting 1 from the weights (starting from larger weight) , the updated weights will be as follows: wPDP= {23, 15} , wnon-PDP= {10, 8, 5} and the remaining part to be subtracted equal to 3.

[0223] After the next round of subtracting 1 from the weights (starting from larger weight) , the updated weights will be as follows: wPDP= {23, 15} , wnon-PDP= {10, 7, 5} and the remaining part to be subtracted equal to 2.

[0224] After the next round of subtracting 1 from the weights (starting from larger weight) , the  updated weights will be as follows: wPDP= {23, 15} , wnon-PDP= {10, 7, 4} and the remaining part to be subtracted equal to 1.

[0225] Finally, after the next round of subtracting 1 from the weights (starting from larger weight) , the updated weights will be as follows: wPDP= {22, 15} , wnon-PDP= {10, 7, 4} and the remaining part to be subtracted equal to 0.

[0226] It could be verified that ∑wPDP+∑wnonPDP+wsc=37+21+6=64.

[0227] In yet another embodiment, the operation of determining the weight for the PDP-based smoothing component involved in the DIMD fusion may include: determining the weight for the PDP-based smoothing component based on a size of the current block.

[0228] In this case, the weight of the smoothing component could be determined as a value that is taken from a lookup table. In an example, the value of weight for the smoothing component is dependent on the area of a block. Table 6 shows an example of weight value.

[0229] Table 6 Determination of the smoothing component weight based on the predicted block area

[0230] It should be understood, the values given in Table 6 are given with regard to the sum of the weights for smoothing and non-smoothing component being equal to 1. In the case where the sum of the weights for smoothing and non-smoothing component is not equal to 1, the values given in Table 6 may be proportionally enlarged or reduced.

[0231] In yet another embodiment, when a size of the current block is larger than a size threshold, weights of the one or more PDP modes for constituting the PDP-based smoothing component are substantially equal to each other; and when the size of the current block is smaller than the size threshold, weights of the one or more PDP modes for constituting the PDP-based smoothing component are proportional to their corresponding gradient magnitudes in the HoG.

[0232] In this case, the weights for PDP modes are determined to be almost equal to each other for the larger blocks, while for smaller blocks the weights of these PDP modes are determined from HoG, e.g proportionally to the bins magnitudes that correspond to these PDP modes (see foregoing sections) . A threshold to classify a block to large and small one is defined in Table 7.

[0233] Table 7 Classification of a block size to small and large to define a method of weights determination for PDP modes

[0234] Alternatively, a threshold to classify a block to large and small one is defined as shown in Table 8.

[0235] Table 8 Classification of a block size to small and large to define a method of weights

[0236] In S304, a predicted block is generated for the current block by applying the DIMD fusion.

[0237] With the determined weights for the smoothing components (including the PDP-based smoothing component) , the DIMD fusion may be applied to generate prediction for the current block.

[0238] This method involves adjusting a DIMD predictor by using PDP modes according to the properties of a predicted block, and implementation of this method may improve the compression performance of DIMD fusion.

[0239] FIG. 21 conceptually illustrates a video coding apparatus 400 with which some embodiments of the invention are implemented. For example, the apparatus 400 may be a video decoder or a video encoder. The apparatus 400 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 apparatus includes various types of computer readable media and interfaces for various other types of computer readable media. The Apparatus 400 includes a processor 402 and a memory 404. The memory 404 is configured to store executable instructions that, when executed by the processor, cause the processor to perform any one of the foregoing decoding or encoding methods.

[0240] The processor 402 may be a single processor or a multi-core processor in different embodiments. In some embodiments, the processor may include a GPU, NPU or DSP which may offload various computations or complement the image processing provided by the processor 402.

[0241] 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.

[0242] While the above discussion primarily refers to microprocessor or multi-core processors that execute software, some embodiments 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.

[0243] 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. 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.

[0244] The present disclosure further provides a computer readable media which is configured to store executable instructions. When the instructions are executed by a processor, the processor may perform any one of the foregoing methods and processes. Many of the above-described features and applications are implemented as software processes that are specified as a set of instructions recorded on a computer readable storage medium (also referred to as computer readable medium) . When these instructions are executed by one or more computational or processing unit (s) (e.g., one or more processors, cores of processors, or other processing units) , they cause the processing unit (s) to perform the actions indicated in the instructions. Examples of computer readable media include, but are not limited to, CD-ROMs, flash drives, random access memory (RAM) chips, hard drives, erasable programmable read only memories (EPROMs) , electrically erasable programmable read-only memories (EEPROMs) , etc. The computer readable media does not include carrier waves and electronic signals passing wirelessly or over wired connections.

[0245] 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 invention. 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.

[0246] While the disclosure has been described with reference to numerous specific details, one of ordinary skill in the art will recognize that the invention can be embodied in other specific forms without departing from the spirit of the invention. In addition, a number of the figures conceptually illustrate processes and methods. 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.

[0247] The foregoing is merely embodiments of the present disclosure, and is not intended to limit  the scope of the disclosure. Any transformation of equivalent structure or equivalent process which uses the specification and the accompanying drawings of the present disclosure, or directly or indirectly application in other related technical fields, are likewise included within the scope of the protection of the present disclosure.

Claims

1.A decoding method applying Decoder-side Intra Mode Derivation (DIMD) fusion, comprising:determining a template area for a current block;applying an edge operator to the template area to acquire a Histogram of gradients (HoG) ;determining a weight of one or more smoothing components for the DIMD fusion based on the HoG; andgenerating a predicted block for the current block based on the one or more smoothing components and the weight.2.The method of claim 1, wherein the determining the weight of one or more smoothing components for the DIMD fusion based on the HoG comprising:acquiring a gradient threshold and a quantity threshold;determining a quantity of bins within the HoG whose corresponding gradient magnitudes exceed the gradient threshold;when the quantity exceeds the quantity threshold, selecting a lower weight to be the weight of one or more smoothing components;when the quantity does not exceed the quantity threshold, selecting a higher weight to be the weight of one or more smoothing components.3.The method of claim 2, wherein the acquiring the gradient threshold comprises:receiving a threshold coefficient in a bitstream;determining the gradient threshold based on the threshold coefficient and a bit-depth of color components in the current block.4.The method of claim 2, wherein the acquiring the gradient threshold comprises:determining a reference area;applying the edge operator to the reference area to acquire gradient magnitudes within the reference area;calculating an average gradient magnitude within the reference area; anddetermining the gradient threshold based on the average gradient magnitude within the reference area.5.The method of claim 4,wherein the gradient threshold is equal to the average gradient magnitude within the reference area multiplied by a pre-defined coefficient.6.The method of claim 4,wherein a size of the reference area is no less than a size of the template area.7.The method of claim 2, wherein the acquiring the quantity threshold comprises:determining the quantity threshold based on the number of samples within the template area or within the current block.8.The method of claim 2,wherein the quantity threshold is a fixed value equal to 1, 2 or 4.9.A decoding method applying Decoder-side Intra Mode Derivation (DIMD) fusion, comprising:determining a template area for a current block;applying an edge operator to the template area to acquire a Histogram of gradients (HoG) , wherein bins of the HoG correspond to a plurality of directional intra-prediction modes and a plurality of Position Dependent Intra-prediction (PDP) modes;determining one or more Position Dependent Intra-prediction (PDP) modes from the plurality of PDP modes to constitute a PDP-based smoothing component for the DIMD fusion based on the HoG; anddetermining a predicted block for the current block by applying the DIMD fusion.10.The method of claim 9, further comprising:determining a plurality of modes involved in the DIMD fusion.11.The method of claim 10, wherein the determining the plurality of components involved in the DIMD fusion comprises:acquiring a plurality of intra-prediction modes for the DIMD fusion based on the HoG;acquiring a number of PDP modes contained in the plurality of intra-prediction modes;comparing the number of the PDP modes with a pre-defined number threshold;when the number of the PDP modes is larger than the pre-defined number threshold, inserting an additional intra fusion mode into the plurality of modes involved in the DIMD fusion, and removing a Block Vector (BV)  / Planar mode from the plurality of modes involved in the DIMD fusion ; orwhen the number of the PDP modes is less than the pre-defined number threshold, removing an intra fusion mode that corresponds to a lowest magnitude in the HoG from the plurality of modes involved in the DIMD fusion, and inserting a BV / Planar mode into the plurality of modes involved in the DIMD fusion.12.The method of claim 10, wherein the determining the plurality of components involved in the DIMD fusion comprises:calculating a sum of magnitudes of the bins within the HoG;acquiring a maximum magnitude within the HoG;including a BV / Planar mode in the plurality of modes involved in the DIMD fusion when a ratio of the maximum magnitude to the sum of magnitudes is larger than a ratio threshold; andexcluding the BV / Planar mode from the plurality of modes involved in the DIMD fusion when a ratio of the maximum magnitude to the sum of magnitudes is less than the ratio threshold.13.The method of claim 12, whereinthe pre-defined ratio threshold is determined based on a size of the current block.14.The method of claim 9, wherein the determining one or more Position Dependent Intra-prediction (PDP) modes from the plurality of PDP modes to constitute the PDP-based smoothing component comprises:acquiring a first number of modes from the HoG that have largest magnitudes;when quantity of PDP modes contained in the first number of modes is no less than quantity of non-PDP modes contained in the first number of modes, determining the PDP modes contained in the first number of modes to be the one or more PDP modes for constituting the PDP-based smoothing component; orwhen quantity of PDP modes contained in the first number of modes is less than quantity of non-PDP modes contained in the first number of modes, acquiring a second number of additional PDP modes from the HoG that have next largest magnitudes, and determining the PDP modes contained in the first number of modes and the second number of additional PDP modes to be the one or more PDP modes for constituting the PDP-based smoothing component.15.The method of claim 9, further comprising:determining a weight for the PDP-based smoothing component involved in the DIMD fusion.16.The method of claim 15, wherein the determining the weight for the PDP-based smoothing component involved in the DIMD fusion comprises:acquiring a gradient threshold, wherein a corresponding magnitude of each of the one or more PDP modes is no less than the gradient threshold;determining a template matching (TM) cost of the one or more PDP modes with regard to the template area;determining a signal-to-error ratio based on the TM cost; anddetermining the weight for the PDP-based smoothing component based on the signal-to-error ratio.17.The method of claim 16, wherein the weight for the PDP-based smoothing component is determined as: whereinwSC is the weight for the PDP-based smoothing component;is a maximum weight value;is a minimum weight value;SER is the signal-to-error ratio;k is a coefficient;whereinand k are determined based on a size of the current block.18.The method of claim 15, wherein the determining the weight for the PDP-based smoothing component involved in the DIMD fusion comprises:calculating a sum of all gradient magnitudes within the HoG;calculating a sum of gradient magnitudes corresponding to the one or more PDP modes within the HoG; anddetermining the weight for the PDP-based smoothing component based on a ratio of the sum of gradient magnitudes corresponding to the one or more PDP modes to the sum of all gradient magnitudes.19.The method of claim 18, further comprising: determining one or more weights of the one or more PDP modes for generating the PDP-based smoothing component.20.The method of claim 19,wherein the one or more weights of the one or more PDP modes are determined based on ratios of the gradient magnitudes of the one or more PDP modes to the sum of gradient magnitudes corresponding to the one or more PDP modes, respectively.21.The method of claim 19,wherein the one or more weights of the one or more PDP modes are substantially equal to each other.22.The method of claim 15, wherein the determining the weight for the PDP-based smoothing component involved in the DIMD fusion comprises:determining the weight for the PDP-based smoothing component based on a size of the current block.23.The method of claim 9, further comprising:determining a weight of another smoothing component for the DIMD fusion.24.The method of claim 23, wherein the determining the weight of another smoothing component for the DIMD fusion comprises:calculating a sum of gradient magnitudes corresponding to the one or more PDP modes within the HoG;determining whether the sum of gradient magnitudes corresponding to the one or more PDP modes is larger than a threshold;when it is determined that the sum of gradient magnitudes corresponding to the one or more PDP modes is larger than the threshold, determining the weight of the another smoothing component for the DIMD fusion based on the sum of gradient magnitudes corresponding to the one or more PDP modes.25.The method of claim 9, whereinwhen a size of the current block is larger than a size threshold, weights of the one or more PDP modes for constituting the PDP-based smoothing component are substantially equal to each other; andwhen the size of the current block is smaller than the size threshold, weights of the one or more PDP modes for constituting the PDP-based smoothing component are proportional to their corresponding gradient magnitudes in the HoG.26.A video coding apparatus, comprising a processor and a memory, wherein the memory is configured to store executable instructions that, when executed by the processor, cause the processor to perform the method of any of claims 1 to 25.27.A non-transitory computer readable medium storing executable instructions that, when executed by a processor, cause the processor to perform the method of any of claims 1 to 25.