Intra-frame prediction method

By introducing multiple local enhancement filters and a Template-Derived LBCCP scheme, the method adapts to diverse image textures, improving prediction accuracy and coding efficiency in video encoding and decoding systems.

WO2025152048A1PCT designated stage expired Publication Date: 2025-07-24SHENZHEN TCL NEW-TECH CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/072642
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-01-16
Publication Date
2025-07-24

AI Technical Summary

Technical Problem

Current Local-Boosting Cross-Component Prediction (LBCCP) implementations use a single filter with a constant magnitude and isotropic nature, which is suboptimal for images with diverse textures, leading to diminished texture preservation and reduced coding efficiency.

Method used

Introduce multiple local enhancement filters, including directional and edge-adaptive filters, allowing the encoder to select the most suitable filter for each block, and implement a Template-Derived LBCCP scheme to infer filter choice based on neighboring coded areas, reducing signaling overhead.

Benefits of technology

Enhances prediction accuracy and coding efficiency by adapting to various texture orientations and edge detection, optimizing compression efficiency and minimizing signaling costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024072642_24072025_PF_FP_ABST
    Figure CN2024072642_24072025_PF_FP_ABST
Patent Text Reader

Abstract

An intra-frame prediction method is provided. A decoder determines whether a current block in a current picture of video data is coded in a Local-Boosting Cross-Component Prediction (LBCCP) mode. The decoder decodes an index of a local enhancement filter from the video data when the current block is coded in the LBCCP mode. The decoder performs a prediction by generating an enhanced prediction block of the current block using the local enhancement filter with the index as a selected local enhancement filter.
Need to check novelty before this filing date? Find Prior Art

Description

INTRA-FRAME PREDICTION METHOD

[0001] BACKGROUND OF DISCLOSURE

[0002] 1. Field of Disclosure

[0003] The present disclosure relates to the field of communication systems, and more particularly, to an intra-frame prediction method.

[0004] 2. Description of Related Art

[0005] Cross-component prediction (CCP) is a technique that allows predicting the values of one component of a multivariate time series based on the values of another component. This can be useful for forecasting, anomaly detection, or imputation tasks. Local-Boosting Cross-Component Prediction (LBCCP) is a novel mode of cross-component prediction that leverages local linear models to capture the nonlinear relationship between components. LBCCP can achieve high accuracy and robustness in cross-component prediction, especially when the components have complex and dynamic dependencies.

[0006] In related art, as shown in FIG. 1, the decoding process for cross-component prediction with Local-Boosting Cross-Component Prediction (LBCCP) mode includes the following steps:

[0007] a) decoding cross-component prediction (CCP) method;

[0008] b) decoding an LBCCP flag if the prediction method is Multi-Model Cross-Component Linear Model (MM-CCLM) or Multi-Model Convolutional Cross-Component Model (MM-CCCM) ;

[0009] c) using the decoded CCP method to generate a chroma prediction block; and

[0010] d) filtering the chroma prediction block to form a final chroma prediction block if LBCCP flag is true.

[0011] The current LBCCP implementation employs a single filter with a constant magnitude and isotropic nature. This filter is suboptimal for images with diverse textures.SUMMARY

[0012] An object of the present disclosure is to propose an intra-frame prediction method.

[0013] In a first aspect, an embodiment of the disclosure provides an intra-frame prediction method, comprising: selecting a local enhancement filter from candidate local enhancement filters; and

[0014] applying the selected local enhancement filter for Local-Boosting Cross-Component Prediction (LBCCP) , wherein the applying the selected local enhancement filter for LBCCP comprises performing a prediction by generating an enhanced prediction block from a prediction block or a reference block of the current block using the local enhancement filter.

[0015] In a second aspect, an embodiment of the disclosure provides an intra-frame prediction method, comprising: acquiring a current block in a current picture of video data;

[0016] acquiring a prediction block of the current block by Cross-Component Prediction (CCP) ; and

[0017] applying a directional filter to generate an enhanced prediction block of the current block;

[0018] wherein the directional filter is a convolution kernel which is configured to smooth the prediction block of the current block in a specific direction by image convolution.

[0019] In a third aspect, an embodiment of the disclosure provides an intra-frame prediction method, comprising: acquiring a current block in a current picture of video data;

[0020] acquiring a prediction block of the current block by Cross-Component Prediction (CCP) ; and

[0021] applying an edge-adaptive filter to generate an enhanced prediction block of the current block;

[0022] wherein filter strength of the edge-adaptive filter is determined based on image gradient at pixels of the prediction block.

[0023] In a fourth aspect, an embodiment of the disclosure provides an encoding device comprising a processor configured to call and run a computer program stored in a memory, to cause a device in which the processor is installed to execute the disclosed method.

[0024] In a fifth aspect, an embodiment of the disclosure provides a decoding device comprising a processor configured to call and run a computer program stored in a memory, to cause a device in which the chip is installed to execute the disclosed method and any combination of embodiments of the disclosed method.

[0025] The disclosed method may be programmed as computer executable instructions stored in non-transitory computer readable medium. The non-transitory computer readable medium, when loaded to a computer, directs a processor of the computer to execute the disclosed method.

[0026] The non-transitory computer readable medium may comprise at least one from a group consisting of: a hard disk, a CD-ROM, an optical storage device, a magnetic storage device, a Read Only Memory, a Programmable Read Only Memory, an Erasable Programmable Read Only Memory, EPROM, an Electrically Erasable Programmable Read Only Memory and a Flash memory.

[0027] The disclosed method may be programmed as a computer program product that causes a computer to execute the disclosed method.

[0028] The disclosed method may be programmed as a computer program that causes a computer to execute the disclosed method.BRIEF DESCRIPTION OF DRAWINGS

[0029] In order to more clearly illustrate the embodiments of the present disclosure or related art, the following figures will be described in the embodiments are briefly introduced. It is obvious that the drawings are merely some embodiments of the present disclosure, a person having ordinary skill in this field may obtain other figures according to these figures without paying the premise.

[0030] FIG. 1 illustrates a schematic view showing a scheme of Local Boosting Cross-Component Prediction (LBCCP) .

[0031] FIG. 2 illustrates a schematic view of an encoding system.

[0032] FIG. 3 illustrates a schematic view of a decoding system.

[0033] FIG. 4 illustrates a schematic view showing a color image with a block in the color image processed as a current block, three color components of the image and blocks collocated with the current block.

[0034] FIG. 5 illustrates a schematic view showing the luma and chroma components of a current block and its reference blocks.

[0035] FIG. 6 illustrates a schematic view showing a LBCCP filter applied to a predicted block.

[0036] FIG. 7 illustrates a schematic view showing an example of a decoding method with selectable LBCCP filters.

[0037] FIG. 8 illustrates a schematic view showing an example of a procedure of TD-LBCCP mode with selectable LBCCP filters.

[0038] FIG. 9 illustrates a schematic view showing an example of a decoding method using Template-Derived Local-Boosting Cross-Component Prediction (TD-LBCCP) mode.

[0039] FIG. 10 illustrates a schematic view of a communication system including electronic devices executing an  intra-frame prediction method.

[0040] FIG. 11 illustrates a schematic view showing electronic devices executing an intra-frame prediction method.

[0041] FIG. 12 illustrates a schematic view showing an overall solution of an intra-frame prediction method.

[0042] FIG. 13 illustrates a schematic view showing an aspect of the intra-frame prediction method.

[0043] FIG. 14 illustrates a schematic view showing another aspect of the intra-frame prediction method.

[0044] FIG. 15 illustrates a schematic view showing a first embodiment of an intra-frame prediction method.

[0045] FIG. 16 illustrates a schematic view showing a second embodiment of an intra-frame prediction method.

[0046] FIG. 17 illustrates a schematic view showing a third embodiment of an intra-frame prediction method.

[0047] FIG. 18 illustrates a schematic view showing a fourth embodiment of an intra-frame prediction method.

[0048] FIG. 19 illustrates a schematic view showing a fifth embodiment of an intra-frame prediction method.

[0049] FIG. 20 illustrates a schematic view showing a sixth embodiment of an intra-frame prediction method.

[0050] FIG. 21 illustrates a schematic view showing a seventh embodiment of an intra-frame prediction method.

[0051] FIG. 22 illustrates a schematic view showing an eighth embodiment of an intra-frame prediction method.

[0052] FIG. 23 illustrates a schematic view showing a ninth embodiment of an intra-frame prediction method.

[0053] FIG. 24 illustrates a schematic view showing five 3×3 filter operators.

[0054] FIG. 25 illustrates a schematic view showing centrally symmetric 3x3, 5x5 and 7x7 diamond-shaped templates.

[0055] FIG. 26 illustrates a schematic view showing an example of 7x7 filter.

[0056] FIG. 27 illustrates a schematic view showing a left template and a top template denoted by L and T respectively.

[0057] FIG. 28 illustrates a schematic view showing left, top and top-left templates denoted by L, T and LT respectively.

[0058] FIG. 29 illustrates a schematic view showing a chip or executing the disclosed method in an encoder.

[0059] FIG. 30 illustrates a schematic view showing a chip or executing the disclosed method in a decoder.DETAILED DESCRIPTION OF EMBODIMENTS

[0060] Embodiments of the disclosure are described in detail with the technical matters, structural features, achieved objects, and effects with reference to the accompanying drawings as follows. Specifically, the terminologies in the embodiments of the present disclosure are merely for describing the purpose of the certain embodiment, but not to limit the disclosure.

[0061] Under the context of video compression, color image or a frame of a color video usually consists of three color 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 of which 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.

[0062] In video coding standards such as Versatile Video Coding (VVC) , intra prediction refers to predicting current block (i.e., the block to be coded) using coded blocks or coded areas within the same frame. When performing intra prediction, an encoder tries multiple intra prediction modes available according to a coding standard for the current block to computes corresponding prediction blocks, compares corresponding prediction blocks, and chooses the best prediction mode. The difference between original current block and the prediction block generated for the current  block by the selected prediction mode, namely the residual, will also be coded. By transmitting the selected prediction modes and residuals only, the encoder is able to instruct a decoder to decode and reconstruct the original color image or video or its approximation.

[0063] Therefore, when encoding chroma blocks, and the coding of the luma block in the same location has been completed and forms as a portion of reconstructed data, the reconstructed data is ready to be used as a reference sample. When encoding the current block of the chroma component, the luma-chroma correlation of neighboring blocks can be utilized to predict the chroma component from luma component. The approach is often referred to as cross-component prediction (CCP) .

[0064] To facilitate understanding of the technical solutions presented in this application’s embodiments, a concise overview of the video encoding and decoding system will be given in the following.

[0065] As shown in FIG. 2, a video encoding system 110 is composed of multiple modules, including a 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. The video encoding system 110 may be implemented as an encoder, an encoding device, a computer program, a system on chip (SIC) , an integrated circuit (IC) , or a chip. The intra-frame prediction unit 1104 may be implemented as a computer program, a system on chip (SIC) , an integrated circuit (IC) , or a chip.

[0066] Original video signals comprise video frames. Each video frame can be divided into blocks by the block partitioning unit 1101. For each of the video frames, the subtractor 1112 generates residual pixel information of a residual frame by subtracting the video frame by prediction blocks output by 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 to generate resulting transform coefficients, 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 reconstruction blocks. Motion estimation performed by the motion estimation unit 1106 is a process of generating a motion vector that can estimate the motion of the video reconstruction 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 reconstruction 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 will be stored in the encoded image buffer unit 1111.

[0067] As shown in FIG. 3, the video decoding system 120 is composed of multiple modules comprising 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. The video decoding system 120 may be implemented as a decoder, a decoding device, a computer program, a system on chip (SIC) , an integrated circuit (IC) , or a chip. The intra-frame prediction unit 1203 may be implemented as a computer program, a system on chip (SIC) , an integrated circuit (IC) , or a chip.

[0068] 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 (i.e., current video block that undergoes video decoding) 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.

[0069] The embodiments 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, 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 frames. 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, calculate the Hamming difference between the luma component of the reference block and the luma component of the current block and derive the weights of the luma component of the reference block accordingly. The Hamming distance is a metric used to measure the difference between two strings of equal length. When the two set of luma components are treated as two strings, the Hamming difference is calculated by counting the number of positions where the corresponding luma component in the two strings are different. The weights are calculated based on these Hamming differences to determine the contribution of each reference block in the prediction. In the intra-frame prediction unit 1203, the weights are used to combine the information from different reference blocks to generate a prediction for the current block. The contribution of each reference block is determined by its weight, so blocks with higher weights will have a stronger influence on the prediction. The intra-frame prediction unit 1203 can perform the same intra-frame prediction method as the intra-frame prediction unit 1104.

[0070] Cross-component prediction model

[0071] The data structure of a color image is illustrated in the following. As shown in FIG. 4, a color image 300,  which may be a frame of a color video, consists of three color components, namely a luma component Y 301 and two chroma components Cb 302 and Cr 303. Each component is represented as a data matrix. The data matrix for each component is decomposed into blocks associated with specific encoding parameters. For example, a block 304 of the luma component Y, a block 305 of the chroma component Cb, and a block 306 of the chroma component Cr all correspond to spatial positions 307 on the color image 300. In video encoding, the luma component is usually processed first, and then the chroma components are processed.

[0072] In popular 4: 2: 0 color format, the luma component (e.g., 301) of a color image (e.g., color image 300) has a higher resolution than any chroma component, with twice the number of pixels in both vertical and horizontal directions. Should this inequality happen, in order to facilitate cross-component prediction (CCP) , the luma component is sometimes downsampled to match the resolution of the chroma components, resulting in an equal number of pixels in both vertical and horizontal directions for all components.

[0073] The principle of cross-component prediction is to use a reconstructed image area of one color component to predict an image area of another color component within the same image. As shown in FIG. 5, the current block 405 of any chroma component (which can be Cb or Cr) is about to be coded, and at the same time the current block 401 of the luma component Y corresponding to the same spatial position as current block 405 has been encoded and reconstructed. The reference blocks 402, 403 and 404 corresponding to current block 401 also correspond to the same spatial positions as the reference blocks 406, 407 and 408 corresponding to current block 405, and have been coded and reconstructed. The reference blocks 406, 407 and 408 may constitute a reference area of the current block 405. The principle of cross-component prediction is to calculate the relationship between the reference blocks 402, 403, and 404 of the luma component and the reference blocks 406, 407 and 408 of the chroma component, and apply the relationship to the current block 401 of the luma component to calculate a predicted value of the chroma component of the current block 405. Alternatively, a subset of the reference blocks 406, 407 and 408 may constitute a reference area of the current block 405.

[0074] One prediction mode for chroma image intra coding is Cross-Component Linear Model (CCLM) . CCLM predicts chroma image or chroma block (e.g. 405) using reconstructed luma image or luma block (e.g. 401) . This mode provides significant coding gain when luma and chroma components are highly correlated.

[0075] The formula for predicting a chroma block (Cb or Cr) in CCLM is as follows: predC (x, y) =α·Rec′L (x, y) +β         (1)

[0076] In the formula (1) , predC (x, y) is a value of a pixel to be predicted in a chroma block (e.g. 405) . Rec′L (x, y) is a value of a corresponding pixel in the co-located reconstructed luma block (e.g. 401) , which has been adjusted to the size of the chroma block (e.g. 405) . (x, y) is the coordinate of the pixel. As the dimensions (height and width) of the luma image are twice the dimensions of the chroma image in the 4: 2: 0 picture format, Rec′L is usually obtained by downsampling an actually reconstructed luma image RecL.

[0077] The model coefficients α and β are calculated according to relations between the luma and chroma images in the reference area. β=M (tC) -αM (tL)           (3)

[0078] Where tL is a value of a pixel in the downsampled luma reference area, tC is a value of a pixel in the chroma  reference area, and (x, y) is the coordinate of the pixel. M (·) is a mean operation that calculates the average of pixel values.

[0079] Another method of CCLM is realized as a formula for predicting a chroma block (Cb or Cr) as follows:

[0080] In the formula (4) , α0 and β0 are the model coefficients α and β that correspond to a set of pixels in the above-mentioned luma reference area, luma value of which is smaller than the mean of luma pixel values in the whole reference area. α1 and β1 are the model coefficients α and β that correspond to a set of remaining pixels in the above-mentioned luma reference area, luma value of which is no less than the mean of luma pixel values in the whole reference area. This method is called Multi-Model CCLM (MM-CCLM) . The model coefficients α and β are specific parameters calculated using formulas (2) and (3) under different conditions.

[0081] Another prediction mode for chroma image intra coding is Convolutional Cross-Component Model (CCCM) . CCCM also predicts chroma image or chroma block using reconstructed luma image or luma block. This mode provides significant coding gain when luma and chroma components are highly correlated.

[0082] The formula for predicting a chroma block (Cb or Cr) in CCCM is as follows: predC (x, y) =c0·Rec′L (x, y) +c1·Rec′L (x-1, y) +c2·Rec′L (x+1, y) +c3·Rec′L (x, y-1) +c4· Rec′L (x, y+1) +c5· [Rec′L (x, y) ] 2+c6·2D-1      (5)

[0083] Where D is color bit depth of the image.

[0084] The model coefficients c= {c0, c1, …, c6} in CCCM are obtained by a cost minimization formula:

[0085] Where R is the set of coordinates of all pixels in the chroma reference area. This numerical optimization problem can be solved with Gaussian elimination method or other approximation algorithms.

[0086] Similar to MM-CCLM, one model coefficient set cL= {cL0, cL1, …, cL6} can be obtained from the set of pixels in the above-mentioned luma reference area, luma value of which is smaller than the mean of luma pixel values in the whole reference area, and another model coefficient set cG= {cG0, cG1, …, cG6} can be obtained from the set of remaining pixels in the above-mentioned luma reference area. The prediction formulae are: predC (x, y) =cL0·Rec′L (x, y) +cL1·Rec′L (x-1, y) +cL2·Rec′L (x+1, y) +cL3·Rec′L (x, y-1) +cL4 ·Rec′L (x, y+1) +cL5· [Rec′L (x, y) ] 2+cL6·2D-1

[0087] when Rec′L (x, y) <M (tL) ;          (7) predC (x, y) =cG0·Rec′L (x, y) +cG1·Rec′L (x-1, y) +cG2·Rec′L (x+1, y) +cG3·Rec′L (x, y-1) +cG4  ·Rec′L (x, y+1) +cG5· [Rec′L (x, y) ] 2+cG6·2D-1

[0088] when Rec′L (x, y) ≥M (tL) .         (8)

[0089] This method is called Multi-Model CCCM (MM-CCCM) .

[0090] Local-boosting Cross-Component Prediction

[0091] In certain scenarios, prediction results from CCP may not be able to maintain spatial continuity or  correlations between adjacent pixels. Applying spatial filters on such prediction blocks can alleviate this problem. The principle of CCP is to predict chroma block by estimating the luma-chroma correlations in neighboring coded areas and applying the correlations on current luma block, which has been reconstructed before chroma coding. Current CCP modes include CCLM, CCCM, Gradient Linear Model (GLM) , etc. The multi-model linear model (MMLM) variants of CCLM and CCCM (namely MM-CCLM and MM-CCCM respectively, which have been introduced above) classify pixels in the reference area into multiple bins based on their luma values. Although MMLM proves beneficial for multiple objects in the current block, adjacent chroma pixels might be predicted with functions of different coefficients, which could disrupt the spatial continuity. In addition, should misclassified pixels exist due to noise in the original image, the spatial discontinuity becomes more apparent. Therefore, a Local-Boosting Cross-Component Prediction (LBCCP) technique is used to apply a low-pass filter on the chroma prediction block in order to ‘boost’ or improve prediction results by cancelling local noise and increasing spatial continuity.

[0092] After predicting chroma image using MM-CCLM or MM-CCCM, an LBCCP filter is applied on the chroma prediction block to generate a new chroma prediction block to replace the original prediction. As shown in FIG. 6, the formula of LBCCP filter is: Pred′C (x, y) = [predC (x-1, y-1) +predC (x, y-1) +predC (x+1, y-1) +predC (x-1, y) +8× predC (x, y) +predC (x+1, y) +predC (x-1, y+1) +predC (x, y+1) +predC (x+1, y+1) +8] >>4

[0093] (9)

[0094] Where Pred′C is the prediction block after filtering, and >> is binary right shift operation. Specific technical solutions can be obtained from Z. Deng, K. Zhang, L. Zhang, EE2-1.3: Local-Boosting Cross-Component Prediction, document JVET-AD0120, Joint Video Experts Team (JVET) , Apr. 2023.

[0095] As illustrated above, the current LBCCP implementation employs a single filter with a constant magnitude and isotropic nature. This filter is suboptimal for images with diverse textures. Analysis of prediction blocks from CCP modes in natural images and screen content images reveals that 98.9%and 99.8%of the prediction blocks, respectively, would have smaller Sum of Absolute Differences (SAD) values if the encoder could choose from a selection of additional filters with various directional textures and magnitudes. This finding suggests that it is often desirable to seek an optimal filter for specific images or blocks to achieve greater coding gains. By leveraging statistical characteristics of neighboring coded areas, such as their texture intensities and directions, a closer-to-optimal filter can be selected for the current block, enabling more accurate predictions and potentially reducing bitrates.

[0096] Embodiments of the disclosure introduce a variety of local enhancement filters for use in local-boosting cross-component prediction (LBCCP) , diverging from the traditional single-filter approach. The current single-filter method may diminish the textures in the original image. The introduction of multiple filters allows for adaptation to various texture orientations and edge detection, thus enhancing the accuracy of image prediction.

[0097] Additionally, the disclosure presents a Template-Derived LBCCP strategy that enables the decoder to deduce the most suitable filters, thereby streamlining the process of encoding filter indices and optimizing compression efficiency.

[0098] The intra-frame prediction method, as described in the embodiments of this disclosure, significantly enhances the prediction capabilities of the video encoding system and video decoding system, leading to improved compression efficiency.

[0099] One objective of this disclosure is to make LBCCP adaptable to current blocks to be coded. For this objective, this disclosure introduces multiple filters as LBCCP options and enables the encoder to choose one for current blocks.

[0100] Another objective is to minimize signaling overhead that comes with the expanded selection of candidate filters. This disclosure introduces a Template-Derived LBCCP scheme, which uses neighboring coded areas as a reference to infer filter choice or implicitly change the way available filters are indexed so as to lower signaling cost.

[0101] Some embodiments of the disclosure introduce local enhancement filters and allow the selection of a suitable filter from multiple filters. The overall decoding process is shown in FIG. 7. In addition to existing LBCCP filter, multiple filters are available for the encoder to choose from for better coding performance. As shown in FIG. 7, the available filters include existing LBCCP filter, directional filters, edge-adaptive filter, etc.

[0102] Some embodiments of the disclosure introduce a new Template-Derived Local Boosting Cross-Component Prediction (TD-LBCCP) , as shown in FIG. 8. The index of the selected local enhancement filter can be either derived at decoder side or signaled by the encoder. The index of the selected local enhancement filter can be signaled in a way that can reduce code length. By constructing templates in the neighboring coded areas of the current block and testing reconstruction costs of different filters on the templates, the costs for using every available local enhancement filter are calculated and ranked. The selection of LBCCP filter can be determined implicitly or indicated explicitly. The overall decoding process is shown in FIG. 9. After decoding a CCP mode, the decoder determines whether TD-LBCCP is enabled. If the TD-LBCCP is enabled, the decoder proceeds to execute the TD-LBCCP.

[0103] The following are several implementation examples, demonstrating possible executions for this disclosure within video codec standards.

[0104] With reference to FIG. 10, a system including electronic devices 10a and 10b, a base station (BS) 20a, and a network entity device 30 executes the disclosed method according to an embodiment of the present disclosure. The electronic devices 10a and 10b may be computers, laptops, tablets, mobile phones, AR glasses, or other AR processing devices. FIG. 10 is shown for illustrative not limiting, and the system may comprise more electronic devices, BSs, and CN entities. Connections between devices and device components are shown as lines and arrows in the FIGs. The electronic device 10a may include a processor 11a, a memory 12a, a transceiver 13a, a camera 14a, a depth camera 15a, and an inertial measurement unit (IMU) 16a. The electronic device 10b may include a processor 11b, a memory 12b, a transceiver 13b, and a camera 14b. In some embodiments, each electronic device may comprise a depth camera that catches depth images. In some embodiments, each electronic device may comprise an inertial measurement unit (IMU) that measures and generates external odometry of the device. Odometry of a device is an estimation that uses data from motion sensors to estimate the position change of the device over time.

[0105] Each of the cameras 14a and 14b captures and generates color space images from a scene. A color space image camera, such as camera 14a or 14b, is configured to capture a sequence of input frames, wherein each of the input frames comprises a color space image.

[0106] The base station 20a may include a processor 21a, a memory 22a, and a transceiver 23a. The network entity device 30 may include a processor 31, a memory 32, and a transceiver 33. Each of the processors 11a, 11b, 21a, and 31 may be configured to implement proposed functions, procedures and / or methods described in the description. Layers of radio interface protocol may be implemented in the processors 11a, 11b, 21a, and 31. Each of the memory 12a, 12b, 22a, and 32 operatively stores a variety of programs and information to operate a connected processor. Each of the transceivers 13a, 13b, 23a, and 33 is operatively coupled with a connected processor, transmits and / or receives radio signals or wireline signals. The base station 20a may be an access point, eNB, a gNB, or one of other types of radio nodes, and may configure radio resources for the electronic device 10a and electronic device 10b.

[0107] Each of the processors 11a, 11b, 21a, and 31 may include an application-specific integrated circuit (ASIC) , other chipsets, logic circuits and / or data processing devices. Each of the memory 12a, 12b, 22a, and 32 may include  read-only memory (ROM) , a random access memory (RAM) , a flash memory, a memory card, a storage medium and / or other storage device. Each of the transceivers 13a, 13b, 23a, and 33 may include baseband circuitry and radio frequency (RF) circuitry to process radio frequency signals. When the embodiments are implemented in software, the techniques described herein can be implemented with programs, instructions, modules, procedures, functions, entities and so on, that perform the functions described herein. The modules can be stored in a memory and executed by the processors. The memory can be implemented within a processor or external to the processor, in which those can be communicatively coupled to the processor via various means are known in the art.

[0108] An example of the electronic device in the description may include one of the electronic device 10a or electronic device 10b. The electronic device 10a may communicate with the electronic device 10b through a direct connection or through the base station 20a and / or the network device entity 30.

[0109] With reference to FIG. 11, the electronic device 10a may communicate with the electronic device 10b through a wireline or a wireless communication connection. One of the electronic device 10a or electronic device 10b may serve as an image encoder and the other may serve as an image decoder. Each of the electronic device 10a and electronic device 10b may include both an image encoder and an image decoder.

[0110] An image encoder may be implemented as an intra-frame prediction unit, a chip, an electronic device, or a video encoding system. An image decoder may be implemented as an intra-frame prediction unit, a chip, an electronic device, or a video decoding system. The intra-frame prediction unit in an image encoder and / or an image decoder performs intra-frame prediction method.

[0111] With reference to FIG. 12, an  embodiment of an intra-frame prediction method, comprising:

[0112] selecting a local enhancement filter from candidate local enhancement filters (S001) ; and

[0113] applying the selected local enhancement filter for Local-Boosting Cross-Component Prediction (LBCCP) , wherein the applying the selected local enhancement filter for LBCCP comprises performing a prediction by generating an enhanced prediction block from a prediction block or a reference block of the current block using the local enhancement filter (S002) .

[0114] The candidate local enhancement filters may include, for example, directional filter, edge-adaptive filter, isotropic filter etc.

[0115] In some embodiments of the disclosure, the method is executed by a decoding device and further comprises:

[0116] determining whether a current block in a current picture of video data is coded in a Local-Boosting Cross-Component Prediction (LBCCP) mode;

[0117] wherein the selecting the local enhancement filter from candidate local enhancement filters comprises:

[0118] decoding an index of the local enhancement filter from the video data when the current block is coded in the LBCCP mode; and

[0119] selecting the local enhancement filter based on the index.

[0120] The selection of the local enhancement filter may be determined by an encoder. The encoder may transmit the index of the local enhancement filter. Accordingly, the decoder may determine the local enhancement filter directly based on the index.

[0121] In some embodiments of the disclosure, the candidate local enhancement filters comprise at least one directional filter;

[0122] wherein the at least one directional filter is a convolution kernel which is configured to smooth the prediction block of the current block in a specific direction by image convolution.

[0123] In some embodiments of the disclosure, elements of a respective one of the at least one directional filter along a specific direction are non-zero, and other elements of the respective one of the at least one directional filter are substantially zero. Alternatively, the elements along the specific direction in a directional filter may have non-zero value significantly greater than non-zero values of other elements in the direction filter.

[0124] In some embodiments of the disclosure, the at least one directional filter comprises a horizontal filter, wherein elements of the horizontal filter along a horizontal direction are non-zero.

[0125] In some embodiments of the disclosure, the at least one directional filter comprises a vertical filter, wherein elements of the vertical filter along a vertical direction are non-zero.

[0126] In some embodiments of the disclosure, the at least one directional filter comprises a diagonal filter, wherein elements of the diagonal filter along a first diagonal direction are non-zero.

[0127] In some embodiments of the disclosure, the at least one directional filter comprises a reverse diagonal filter, wherein elements of the reverse diagonal filter along a second diagonal direction are non-zero.

[0128] Exemplary directional filters are given in FIG. 24. For example, the horizontal filter (0 0 0; 1 2 1; 0 0 0)  / 4 may be utilized to smooth the prediction block of the current block in the horizontal direction, elements of the horizontal filter along the central horizontal direction (1 2 1) are non-zero while other elements are significantly smaller. Similarly, the vertical filter (0 1 0; 0 2 0; 0 1 0)  / 4 may be utilized to smooth the prediction block of the current block in the vertical direction. The diagonal filter (1 0 0; 0 6 0; 0 0 1)  / 8 may be utilized to smooth the prediction block of the current block in a first diagonal direction. The reverse diagonal filter (0 0 1; 0 6 0; 1 0 0) may be utilized to smooth the prediction block of the current block in a second diagonal direction. It should be noticed, values of elements of directional filters may be determined based on actual requirement and are not limited to those illustrated in FIG. 24.

[0129] In some embodiments of the disclosure, each pixel of the current block serves as a current pixel for applying the local enhancement filter, each of the at least one directional filter comprises a 3 by 3 matrix applied to the current pixel with a coordinate (x, y) of the current block. Note that the directional filters are not limited to 3 by 3 matrices. Examples of the 3 by 3 matrix with weights are shown in FIG. 24. The local enhancement filter may be implemented as one of formulas (11) to (14) .

[0130] The at least one directional filter comprises at least one of a horizontal filter, a vertical filter, a diagonal filter, and a reverse diagonal filter;

[0131] the horizontal filter generates a new value of the current pixel by dividing a first sum by a first total weight, wherein the first sum is a summation of a neighbor pixel (x-1, y) multiplied by a weight wx-1, y, the current pixel (x, y) multiplied by a weight wx, y, 1, and a neighbor pixel (x+1, y) multiplied by a weight wx+1, y, the first total weight is a sum of wx-1, y+wx, y, 1+wx+1, y;

[0132] the vertical filter generates a new value of the current pixel by dividing a second sum by a second total weight, wherein the second sum is a summation of a neighbor pixel (x, y-1) multiplied by a weight wx, y-1, the current pixel (x, y) multiplied by a weight wx, y, 2, and a neighbor pixel (x, y+1) multiplied by a weight wx, y+1, and the second total weight that is a sum of wx, y-1+wx, y, 2+wx, y+1;

[0133] the diagonal filter generates a new value of the current pixel by dividing a third sum by a third total weight, wherein the third sum is a summation of a neighbor pixel (x-1, y-1) multiplied by a weight wx-1, y-1, the current pixel (x, y) multiplied by a weight wx, y, 3, and a neighbor pixel (x+1, y+1) multiplied by a weight wx+1, y+1, and the third  total weight that is a sum of wx-1, y-1+wx, y, 3+wx+1, y+1;

[0134] the reverse diagonal filter generates a new value of the current pixel by dividing a fourth sum by a fourth total weight, wherein the fourth sum is a summation of a neighbor pixel (x+1, y-1) multiplied by a weight wx+1, y-1, the current pixel (x, y) multiplied by a weight wx, y, 4, and a neighbor pixel (x-1, y+1) multiplied by a weight wx-1, y+1, and the fourth total weight that is a sum of wx+1, y-1+wx, y, 4+wx-1, y+1.

[0135] In some embodiments of the disclosure, the local enhancement filter is used to perform image convolution on the prediction block.

[0136] In some embodiments of the disclosure, the candidate local enhancement filters comprise an edge-adaptive filter; wherein filter strength of the edge-adaptive filter is determined based on image gradient at pixels of the prediction block.

[0137] In some embodiments of the disclosure, the edge-adaptive filter is controlled by the filter strength, a sub-filter, and a rescaling parameter; wherein the sub-filter is configured for preprocessing the prediction block; wherein the filter strength is configured for determining a weight of a difference of the preprocessed prediction block and the prediction block; wherein the rescaling parameter is configured for normalizing the filter strength.

[0138] In some embodiments of the disclosure, the enhanced prediction block is generated following a relation:

[0139] where

[0140] Pred′C (x, y) is a pixel (x, y) of the enhanced prediction block;

[0141] predC (x, y) is a pixel (x, y) of the prediction block;

[0142] Q is the rescaling parameter;

[0143] g (x, y) is the image gradient at a pixel (x, y) of the prediction block;

[0144] α (m, n) are coefficients of the sub-filter, and the sub-filter is an Adaptive Loop Filter.

[0145] FIG. 25 shows different examples of the sub-filter. In some embodiments, the sub-filter may be an Adaptive Loop Filter. The sub-filter is configured to apply a specific operation to the prediction block, such as smoothing, sharpening, or noise reduction. The rescaling operation Q [] effectively scales the input values within an image processing context. A scaling factor q is incorporated into the formula, adjusting the input value. The final output is rounded down to the nearest integer.

[0146] In some embodiments of the disclosure, the enhanced prediction block is generated following a relation:

[0147] where

[0148] Pred′C (x, y) is a pixel (x, y) of the enhanced prediction block;

[0149] predC (x, y) is a pixel (x, y) of the prediction block;

[0150] Q is the rescaling parameter;

[0151] g (x, y) is the image gradient at a pixel (x, y) of the prediction block;

[0152] A is an isotropic filter.

[0153] It should be noticed, in this embodiment the sub-filter may have different options. A is a filter that includes multiple taps, and the taps are arranged in a uniform manner. The isotropic filter is merely an example of the sub-filter  A but not a limitation.

[0154] In some embodiments of the disclosure, each pixel of the current block serves as a current pixel for applying the local enhancement filter. The edge-adaptive filter is configured to generate a new value of the current pixel by adjusting a predictive value of the current pixel with an output of a rescaling operation. An input of the rescaling operation comprises an image gradient g (x, y) multiplied by a summation of pixel-wise differences. One of the pixel-wise differences comprise a filter coefficient α (m, n) of the sub-filter multiplied by a difference between a predicted value of a neighbor pixel (x+m, y+n) and a predicted value of the current pixel.

[0155] In some embodiments of the disclosure, each pixel of the current block serves as a current pixel for applying the local enhancement filter. The edge-adaptive filter generates a new value of the current pixel by adjusting a predictive value of the current pixel with a product of an output of a normalization operation and a pixel-based difference. An input of the normalization operation comprises an image gradient g (x, y) . The pixel-based difference is obtained by an output of convolution operation subtracted by a predicted value of the current pixel. An input of the convolution operation comprises an LBCCP convolution kernel A and the predicted value of the current pixel.

[0156] In some embodiments of the disclosure, the LBCCP convolution kernel A comprises a 3 by 3 matrix, the convolution operation output a result of dividing a fifth sum by a fifth total weight, wherein the fifth sum is a summation of the neighbor pixel (x-1, y) multiplied by a weight wx-1, y, the neighbor pixel (x+1, y) multiplied by a weight wx+1, y, the neighbor pixel (x, y-1) multiplied by a weight wx, y-1, the neighbor pixel (x, y+1) multiplied by a weight wx, y+1, the neighbor pixel (x-1, y-1) multiplied by a weight wx-1, y-1, the neighbor pixel (x+1, y+1) multiplied by a weight wx+1, y+1, the neighbor pixel (x+1, y-1) multiplied by a weight wx+1, y-1, the neighbor pixel (x-1, y+1) multiplied by a weight wx-1, y+1, the neighbor pixel (x+1, y-1) multiplied by the weight wx+1, y-1, the current pixel (x, y) multiplied by a weight wx, y, 5, and the neighbor pixel (x-1, y+1) multiplied by the weight wx-1, y+1, and the fourth total weight that is a sum of wx-1, y+wx+1, y+wx, y-1+wx, y+1+wx-1, y-1+wx+1, y+1+wx+1, y-1+wx, y, 5+wx-1, y+1.

[0157] In some embodiments of the disclosure, the normalization operation is to compute a reciprocal of a sum of 1 and an exponential function raised to a power of a negative image gradient g (x, y) at a pixel (x, y) .

[0158] In some embodiments of the disclosure, the enhanced prediction block comprises an enhanced chroma prediction block and an enhanced luma prediction block, the enhanced chroma prediction block is generated by applying the selected local enhancement filter to a chroma prediction block of the current block directly (See section 1.1.1) .

[0159] In some embodiments of the disclosure, the enhanced prediction block comprises an enhanced chroma prediction block and an enhanced luma prediction block, the enhanced chroma prediction block is generated by applying the selected local enhancement filter to a luma block of the current block and generating the enhanced chroma predicted block using cross-component prediction (CCP) mode with the filtered luma block (See section 1.1.1) .

[0160] In some embodiments of the disclosure, the selecting the local enhancement filter from the candidate local enhancement filters comprises:

[0161] evaluating a coding cost of each filter in the candidate filters; and

[0162] selecting the local enhancement filter with a minimum coding cost.

[0163] The coding cost of each candidate filter can be evaluated by the encoder or both the encoder and the decoder. Based on evaluation, the candidate filter with the minimum coding cost may be chosen as the local enhancement filter. Method for evaluating the coding cost may be found in section 1.2.3.

[0164] In some embodiments of the disclosure, the method is executed by an encoding device, and further comprises: signaling an index of the local enhancement filter in a bitstream that conveys the video data.

[0165] In some embodiments of the disclosure, the method is executed by a decoding device, and further comprises, before the evaluating the coding cost of each filter in the candidate filters, determining whether Template Derived Local Boosting Cross-Component Prediction (TD-LBCCP) is available.

[0166] In some embodiments of the disclosure, the determining whether the TD-LBCCP is available comprises: determining whether the prediction block of the current block is generated with a pre-defined Cross-Component Prediction (CCP) mode; and when it is determined that the prediction block of the current block is generated with the pre-defined CCP mode, determining that the TD-LBCCP is available.

[0167] In some embodiments of the disclosure, the determining whether the TD-LBCCP is available comprises: receiving a control flag; and determining whether the TD-LBCCP is available based on the control flag.

[0168] In some embodiments of the disclosure, the evaluating the coding cost of each filter in the candidate filters comprises: determining a template block; acquiring a reconstructed block and a prediction block of the template block; applying a respective filter in the candidate filters on the prediction block of the template block to acquire an enhanced prediction block of the template block corresponding to the respective filter; and determining the coding cost of the respective filter based on a difference between the reconstructed block of the template block and the enhanced prediction block of the template block corresponding to the respective filter.

[0169] In some embodiments of the disclosure, the template block comprises a plurality of blocks adjacent to the current block; wherein the determining the coding cost of the respective filter based on the difference between the reconstructed block the template block and the enhanced prediction block of the template block corresponding to the respective filter comprises: calculating differences between the reconstructed block and the enhanced prediction block of the plurality of blocks respectively; and determining the coding cost of the respective filter based on a sum of the differences.

[0170] In some embodiments of the disclosure, the sum of the differences is a weighted sum, and wherein:

[0171] a weight corresponding to a respective one of the plurality of blocks is proportional to a number of samples in the respective one of the plurality of blocks; or a weight corresponding to a respective one of the plurality of blocks is

[0172] proportional to a number of samples in the respective one of the plurality of blocks next to the current block.

[0173] In some embodiments of the disclosure, the difference between the reconstructed block of the template block and the enhanced prediction block of the template block corresponding to the respective filter comprises a quality assessment metric using one of Sum of Absolute Transformed Differences (SATD) , Sum of Squared Errors (SSE) , or Sum of Absolute Differences (SAD) .

[0174] In some embodiments of the disclosure, the template block comprises a rectangular coded area denoted as L at the left of the current block and a rectangular coded area denoted as T on top of the current block.

[0175] In some embodiments of the disclosure, the rectangular coded area L is set with a dimension at most L1 columns by H rows; the rectangular coded area T is set with a dimension at most W columns by T1 rows, where W and H represent width and height of the current block respectively.

[0176] In some embodiments of the disclosure, the template block comprises rectangular coded areas on the left, top and top-left of the current block, which are denoted by L, T and LT respectively.

[0177] In some embodiments of the disclosure, the rectangular coded area L is set with a dimension to at most L1 columns by H rows; the rectangular coded area is set with a dimension at most W columns by T1 rows; the  rectangular coded area LT is set a dimension at most L1 columns by T1 rows; where W and H represent width and height of the current block respectively.

[0178] In some embodiments of the disclosure, the values of L1 and T1 are signaled in the bitstream or derivable from coding information.

[0179] In some embodiments of the disclosure, the coding information comprises a block size of the current block or neighboring blocks of the current block.

[0180] In some embodiments of the disclosure, the coding information comprises a size / dimension of the local enhancement filter.

[0181] In some embodiments of the disclosure, the template block comprises a plurality of blocks adjacent to the current block; wherein the determining the template block comprises: acquiring sizes of the plurality of blocks; and adjusting the sizes of at least some of the plurality of blocks to make aspect ratios of the plurality of blocks be substantially equal to each other. As illustrated in FIG. 28, the blocks may include block L, block T, and block LT. The sizes of the block L and block T may be adjusted to make their aspect ratios be substantially equal to each other.

[0182] With reference to FIG. 13, an embodiment of an intra-frame prediction method, comprising:

[0183] acquiring a current block in a current picture of video data (S011) ; acquiring a prediction block of the current block by Cross-Component Prediction (CCP) (S012) ; and applying a directional filter to generate an enhanced prediction block of the current block (S013) ; wherein the directional filter is a convolution kernel which is configured to smooth the prediction block of the current block in a specific direction by image convolution.

[0184] In some embodiments of the disclosure, elements of the directional filter along a specific direction are non-zero, and other elements of the respective one of the at least one directional filter are substantially zero.

[0185] In some embodiments of the disclosure, the directional filter comprises one of a horizontal filter, a vertical filter, a diagonal filter and a reverse filter; wherein elements of the horizontal filter along a horizontal direction are non-zero; wherein elements of the vertical filter along a vertical direction are non-zero; wherein elements of the diagonal filter along a first diagonal direction are non-zero; and wherein elements of the reverse diagonal filter along a second diagonal direction are non-zero.

[0186] With reference to FIG. 14, an embodiment of an intra-frame prediction method, comprising:

[0187] acquiring a current block in a current picture of video data; acquiring a prediction block of the current block by Cross-Component Prediction (CCP) ; and applying an edge-adaptive filter to generate an enhanced prediction block of the current block; wherein filter strength of the edge-adaptive filter is determined based on image gradient at pixels of the prediction block.

[0188] In some embodiments of the disclosure, the edge-adaptive filter is controlled by the filter strength, a sub-filter, and a rescaling parameter; wherein the sub-filter is configured for preprocessing the prediction block; wherein the filter strength is configured for determining a weight of a difference of the preprocessed prediction block and the prediction block; wherein the rescaling parameter is configured for normalizing the filter strength.

[0189] In some embodiments of the disclosure, the enhanced prediction block is generated following a relation:

[0190] where

[0191] Pred′C (x, y) is a pixel (x, y) of the enhanced prediction block;

[0192] predC (x, y) is a pixel (x, y) of the prediction block;

[0193] Q is the rescaling parameter;

[0194] g(x, y) is the image gradient at a pixel (x, y) of the prediction block;

[0195] α (m, n) are coefficients of the sub-filter, and the sub-filter is an Adaptive Loop Filter.

[0196] In some embodiments of the disclosure, the enhanced prediction block is generated following a relation:

[0197] where

[0198] Pred′c (x, y) is a pixel (x, y) of the enhanced prediction block;

[0199] predC (x, y) is a pixel (x, y) of the prediction block;

[0200] Q is the rescaling parameter;

[0201] g(x, y) is the image gradient at a pixel (x, y) of the prediction block;

[0202] A is an isotropic filter.

[0203] Embodiment 1

[0204] The following embodiments involve the process of selecting the optimal filter according to the decoded signal (flag) as shown in FIG. 7. With reference to FIG. 15, an embodiment of the intra-frame prediction method in a decoding process comprises:

[0205] S101: Decoding a flag of the local enhancement filter if LBCCP is applied on current chroma block; and

[0206] S102: Generating a prediction block of the current block using the filter selected in S101.

[0207] The detailed solutions of step S101 is provided in Section “Filter selection and signaling” . The detailed solutions of step S102 is provided in Section 1.3 titled “Generate prediction block” .

[0208] Embodiment 2

[0209] The following is an implementation example involving the decoding process shown in FIG. 16. An embodiment of the intra-frame prediction method in a decoding process comprises steps S201 to S205.

[0210] S200: Checking whether LBCCP is enabled for the current block. For detailed solutions, please refer to Section 1.2.1 with a heading “Check whether TD-LBCCP is enabled for current block” .

[0211] S201: Defining templates for the current block. For detailed solutions, please refer to Section 1.2.2 with a heading “Define templates from neighboring coded areas of current block” .

[0212] S202: Calculating the first cost of using different local enhancement filters on the templates defined in S201. The implementation of local enhancement filters should refer to Section 1.1.1 with a heading Filter implementation. For detailed solutions, please refer to Section 1.2.3.1 with a heading “Template-based derivation” .

[0213] S203: Calculating a second cost based on the first cost and template weighting. For detailed solutions, please refer to Section 1.2.3.1 with a heading “Template-based derivation” .

[0214] S204: Selecting an optimal filter based on the second cost. For detailed solutions, please refer to Section 1.2.3.1 with a heading “Template-based derivation” .

[0215] S205: Generating a prediction block on the current block using the filter selected in S204. For detailed solutions, please refer to Section 1.3 titled “Generate prediction block” .

[0216] Embodiment 3

[0217] The following is an implementation example involving the decoding process shown in FIG. 17. An embodiment of the intra-frame prediction method in a decoding process comprises steps S300 to S304.

[0218] S300: Checking whether LBCCP is enabled for a current block. For detailed solutions, please refer to Section 1.2.1 with a heading “Check whether TD-LBCCP is enabled for current block” .

[0219] S301: Defining templates for the current block. For detailed solutions, please refer to Section 1.2.2 with a heading “Define templates from neighboring coded areas of current block” .

[0220] S302: Calculating the first cost of using different local enhancement filters on the templates defined in S301 wherein the implementation of local enhancement filters should refer to Section 1.1.1 with a heading Filter implementation. For detailed solutions, please refer to Section 1.2.3.1 with a heading “Template-based derivation” .

[0221] S303: Selecting an optimal filter based on a second cost, which is calculated by unweighted sum of the first cost. For detailed solutions, please refer to Section 1.2.3.1 with a heading “Template-based derivation” .

[0222] S304: Generating a prediction block on the current block using the filter selected in S303. For detailed solutions, please refer to Section 1.3 titled “Generate prediction block” .

[0223] Embodiment 4

[0224] With reference to FIG. 18, an embodiment of the intra-frame prediction method in a decoding process comprises steps S400 to S405.

[0225] S400: Checking whether LBCCP is enabled for current block. For detailed solutions, please refer to Section 1.2.1 with a heading “Check whether TD-LBCCP is enabled for current block” .

[0226] S401: Defining templates for current block. For detailed solutions, please refer to Section 1.2.2 with a heading “Define templates from neighboring coded areas of current block” .

[0227] S402: Calculating the first cost of available multiple filters on the templates defined in S401. For detailed solutions, please refer to Section 1.2.3.1 with a heading “Template-based derivation” .

[0228] S403: Calculating the second cost based on the first cost and template weighting. For detailed solutions, please refer to Section 1.2.3.1 with a heading “Template-based derivation” .

[0229] S404: Selecting the optimal filter based on the second cost. For detailed solutions, please refer to Section 1.2.3.1 with a heading “Template-based derivation” .

[0230] S405: Generating prediction block on the current block using the filter selected in S404. For detailed solutions, please refer to Section 1.3 titled “Generate prediction block” .

[0231] Embodiment 5

[0232] With reference to FIG. 19, an embodiment of the intra-frame prediction method in a decoding process comprises steps S500 to S504.

[0233] S500: Checking whether LBCCP is enabled for current block. For detailed solutions, please refer to Section 1.2.1 with a heading “Check whether TD-LBCCP is enabled for current block” .

[0234] S501: Defining templates for current block. For detailed solutions, please refer to Section 1.2.2 with a heading “Define templates from neighboring coded areas of current block” .

[0235] S502: Calculating the first cost of available multiple filters on the templates defined in S501. For detailed solutions, please refer to Section 1.2.3.1 with a heading “Template-based derivation” .

[0236] S503: Selecting the optimal filter based on the second cost, which is calculated by the unweighted sum of the first cost. For detailed solutions, please refer to Section 1.2.3.1 with a heading “Template-based derivation” .

[0237] S504: Generating prediction block on the current block using the filter selected in S503. For detailed solutions, please refer to Section 1.3 titled “Generate prediction block” .

[0238] Embodiment 6

[0239] With reference to FIG. 20, an embodiment of the intra-frame prediction method in a decoding process comprises steps S601 to S605.

[0240] S601: Defining templates for current block. For detailed solutions, please refer to Section 1.2.2 with a heading “Define templates from neighboring coded areas of current block” .

[0241] S602: Calculating the first cost of using different local enhancement filters on the templates defined in S601 wherein the implementation of local enhancement filters should refer to Section 1.1.1 with a heading Filter implementation. For detailed solutions, please refer to Section 1.2.3.1 with a heading “Template-based derivation” .

[0242] S603: Calculating the second cost based on the first cost and template weighting. For detailed solutions, please refer to Section 1.2.3.1 with a heading “Template-based derivation” .

[0243] S604: Selecting the optimal filter based on the second cost. For detailed solutions, please refer to Section 1.2.3.1 with a heading “Template-based derivation” .

[0244] S605: Generating prediction block on the current block using the filter selected in S604. For detailed solutions, please refer to Section 1.3 titled “Generate prediction block” .

[0245] Embodiment 7

[0246] With reference to FIG. 21, an embodiment of the intra-frame prediction method in a decoding process comprises steps S701 to S704.

[0247] S701: Defining templates for current block. For detailed solutions, please refer to Section 1.2.2 with a heading “Define templates from neighboring coded areas of current block” .

[0248] S702: Calculating the first cost of using different local enhancement filters on the templates defined in S701 wherein the implementation of local enhancement filters should refer to Section 1.1.1 with a heading Filter implementation. For detailed solutions, please refer to Section 1.2.3.1 with a heading “Template-based derivation” .

[0249] S703: Selecting the optimal filter based on the second cost, which is calculated by the unweighted sum of the first cost. For detailed solutions, please refer to Section 1.2.3.1 with a heading “Template-based derivation” .

[0250] S704: Generating prediction block on the current block using the filter selected in S703. For detailed solutions, please refer to Section 1.3 titled “Generate prediction block” .

[0251] Embodiment 8

[0252] With reference to FIG. 22, an embodiment of the intra-frame prediction method in a decoding process  comprises steps S801 to S805.

[0253] S801: Defining templates for current block. For detailed solutions, please refer to Section 1.2.2 with a heading “Define templates from neighboring coded areas of current block” .

[0254] S802: Calculating the first cost of available multiple filters on the templates defined in S801. For detailed solutions, please refer to Section 1.2.3.1 with a heading “Template-based derivation” .

[0255] S803: Calculating the second cost based on the first cost and template weighting. For detailed solutions, please refer to Section 1.2.3.1 with a heading “Template-based derivation” .

[0256] S804: Selecting the optimal filter based on the second cost. For detailed solutions, please refer to Section 1.2.3.1 with a heading “Template-based derivation” .

[0257] S805: Generating prediction block on the current block using the filter selected in S804. For detailed solutions, please refer to Section 1.3 titled “Generate prediction block” .

[0258] Embodiment 9:

[0259] With reference to FIG. 23, an embodiment of the intra-frame prediction method in a decoding process comprises steps S901 to S904.

[0260] S901: Defining templates for current block. For detailed solutions, please refer to Section 1.2.2 with a heading “Define templates from neighboring coded areas of current block” .

[0261] S902: Calculating the first cost of available multiple filters on the templates defined in S901. For detailed solutions, please refer to Section 1.2.3.1 with a heading “Template-based derivation” .

[0262] S903: Selecting the optimal filter based on the second cost, which is calculated by the unweighted sum of the first cost. For detailed solutions, please refer to Section 1.2.3.1 with a heading “Template-based derivation” .

[0263] S904: Generating prediction block on the current block using the filter selected in S903. For detailed solutions, please refer to Section 1.3 titled “Generate prediction block” .

[0264] Solutions:

[0265] 1.1 Multiple filters as LBCCP options

[0266] In order to make LBCCP adaptive to and optimized for the encoding of current blocks, local enhancement filters scheme is introduced as LBCCP options. In addition to existing LBCCP filter, local enhancement filters include different directional, edge-adaptive filters, and other filters. Among the local enhancement filters, the encoder and the decoder can choose the filter with the best coding performance for the current block.

[0267] In some embodiments of the disclosure, introducing options of local enhancement filters include the following aspects:

[0268] 1) Filter implementation: the types of filters available to local enhancement filters; and

[0269] 2) Filter selection and signaling.

[0270] 1.1.1 Filter implementation

[0271] In one embodiment, the filtering operation can be represented as: Pred′C (x, y) = f (predC (x, y) )       (10)

[0272] where predC (x, y)  is the original predicted sample value as defined in formula (4) , Pred′C (x, y)  is a predicted sample value after filtering, and f (·) is the filtering operation. Two types of filters, namely directional filters and edge-adaptive filter, are detailed below.

[0273] In this case, the filter can be applied to a chroma prediction block to generate an enhanced chroma prediction block.

[0274] In another embodiment, the filtering operation can be represented as: Rec*L (x, y) = f (Rec′L (x, y) )

[0275] where Rec′L (x, y) is a value of a corresponding pixel in the co-located reconstructed luma block.

[0276] In this case, the filter can be applied to a luma block of the current block to generate a filtered luma block. The filtered luma block may be further utilized to generate an enhanced chroma prediction block using, for example, cross-component prediction mode.

[0277] 1.1.1.1 Directional filters

[0278] Directional filters work by applying a convolution kernel to the image to either smooths or enhances certain directional patterns.

[0279] FIG. 24 shows five 3×3 filter operators.

[0280] Calculation method for horizontal filtering is represented by the following formula: Pred′C (x, y) = [predC (x-1, y) +2×predC (x, y) +predC (x+1, y) +2] >>2     (11)

[0281] Calculation method for vertical filtering is represented by the following formula: Pred′C (x, y) = [predC (x, y-1) +2×predC (x, y) +predC (x, y+1) +2] >>2     (12)

[0282] Calculation method for diagonal filtering is represented by the following formula: Pred′C (x, y) = [predC (x-1, y-1) +6×predC (x, y) +predC (x+1, y+1) +4] >>3     (13)

[0283] Calculation method for reverse diagonal filtering is represented by the following formula: Pred′C (x, y) = [predC (x+1, y-1) +6×predC (x, y) +predC (x-1, y+1) +4] >>3     (14)

[0284] Calculation method for isotropic filter is represented by the following formula: Pred′C (x, y) = [predC (x-1, y-1) +predC (x, y-1) +predC (x+1, y-1) +predC (x-1, y) +8× predC (x, y) +predC (x+1, y) +predC (x-1, y+1) +predC (x, y+1) +predC (x+1, y+1) +8] >>4

[0285] (15)

[0286] where >> denotes the right shift operation.

[0287] 1.1.1.2 Edge-adaptive filter

[0288] The purpose of edge-adaptive filter is to preserve edges in image textures. In some embodiments of the disclosure, edge preservation is done by forcing pixels near an edge to either side of the edge.

[0289] The edge-adaptive filter is controlled by at least one of the following features:

[0290] 1) Filter coefficients, signaled in the slice header, image header, group of pictures (GOP) header, picture parameter set (PPS) , sequence parameter set (SPS) or derived from coded information.

[0291] 2) Filter strength, computed from the edge strength of the pixel to be predicted.

[0292] 3) A re-scaling parameter for normalizing the filter strength.

[0293] In general, the formula of edge-adaptive filter is: Pred′C (x, y) =predC (x, y) +Q [g (x, y) ∑m, nα (m, n) (predC (x+m, y+n) -predC (x, y) ) ]   (16a)

[0294] Where α (m, n) is the filter coefficient at location (m, n) relative to the pixel’s coordinates, g (x, y) is the filter strength and Q [·] is a rescaling operation.

[0295] To enhance each pixel within the current block, application of the edge-adaptive filter comprises the following steps:

[0296] 1) . Target a pixel for enhancement:

[0297] Selecting a single pixel within the block as the "current pixel. "

[0298] 2) . Generate a new value:

[0299] Adjusting the predicted value (an initial estimate of its value) of the current pixel using a carefully calculated adjustment factor. This adjusted value becomes the new, enhanced value of the pixel.

[0300] 3) . Calculating the adjustment factor:

[0301] 3.1) Performing a rescaling operation:

[0302] Input for the rescaling operation includes:

[0303] Image gradient (measuring intensity changes in the image) .

[0304] Sum of pixel-wise differences (accounting for variations between neighboring pixels) .

[0305] 3.2) Determining pixel-wise differences:

[0306] For each neighboring pixel specified by a k x k diagonal matrix (defining a surrounding region) , where k is a positive integer:

[0307] Calculating the difference between its predicted value and the predicted value of the current pixel;

[0308] Multiplying this difference by a filter coefficient α (m, n) (controlling the influence of each neighbor) ; and

[0309] Summing up these weighted differences to get the total pixel-wise difference.

[0310] 4) Applying the adjustment:

[0311] Multiplying the image gradient by the total pixel-wise difference.

[0312] Rescaling the result within an appropriate range.

[0313] Adding this rescaled value to the predicted value of the current pixel to obtain its new, enhanced value.

[0314] 5) Repeating for every pixel:

[0315] Systematically repeating this process for each pixel within the current block, resulting in an enhanced image block.

[0316] In some implementations, the edge-adaptive filter is controlled by at least one of the following features:

[0317] 1) Filter strength, computed from the edge strength of the pixel to be predicted.

[0318] 2) A re-scaling parameter for normalizing the filter strength.

[0319] In some implementations, the following variant is used:

[0320] Where A is the LBCCP convolution kernel (formula 9) , and is the convolution operation.

[0321] Q [·] is a normalization operation which is computed as: Q [g (x, y) ] =1 /  (1+e-g (x, y) )                (16c)

[0322] This normalization operation Q [·] effectively scales the gradient value between 0 and 1, ensuring its suitability for subsequent calculations. To enhance each pixel within the current block, application of the edge-adaptive filter comprises the following steps:

[0323] 1) . Focusing on a single pixel:

[0324] Selects one pixel within the block as the "current pixel" for enhancement.

[0325] 2) . Calculating a pixel-based difference:

[0326] 2.1) Performing a convolution operation (blending values) using:

[0327] An LBCCP convolution kernel (specific filter for edge-adaptive processing) ; and

[0328] The predicted value of the current pixel (an initial estimate of its value) .

[0329] 2.2) Subtracting the predicted value from the convolution output to get a measure of difference.

[0330] 3) . Normalizing the image gradient:

[0331] Adjusting the image gradient (which reflects intensity changes in the image) using a normalization operation to bring it within a suitable range.

[0332] 4) . Combining factors for adjustment:

[0333] Multiplying the normalized image gradient with the pixel-based difference to create a carefully calibrated adjustment factor.

[0334] 5) . Creating the enhanced pixel value:

[0335] Adding the adjustment factor to the predicted value of the current pixel, resulting in its new, enhanced value.

[0336] 6) . Repeating for all pixels:

[0337] Systematically applying this process to every pixel within the current block, enhancing the entire block.

[0338] Filter coefficients

[0339] The shape of the filter α (m, n) is a centrally symmetric 3x3, 5x5 or 7x7 diamond-shaped template as shown  in FIG. 25. The coefficients of the filter can be arranged in a matrix, where (m, n) is the coordinate of the filter. FIG. 26 shows an example of 7x7 filter. α3 is the coefficient for location (1, -2) .

[0340] The filter coefficients can be copied from Adaptive Loop Filter (ALF) coefficients in the image header or coded separately.

[0341] Filter strength

[0342] Each pixel to be predicted is associated with filter strength g (x, y) , which is represented as the magnitude of image gradient at the pixel’s location. For example, image gradient g at (x, y) can be computed using Sobel operators:  hsobel, hot=PredC*Gx hsobel, ver=PredC*Gy

[0343] Where hsobel, hor and hsobel, ver are horizontal and vertical gradients, Gx and Gy are convolution kernels of horizontal and vertical Sobel operators and * is 2D convolution. Sobel operator can be replaced by other edge detection operators such as Prewitt operator.

[0344] Rescaling operation

[0345] As the scale of the above-mentioned filter strength can vary, a rescaling operation is introduced if necessary. The rescaling operation Q [·] is computed as:

[0346] Where q is the scaling factor, and is rounding down to the nearest integer.

[0347] The value of q can be signaled in the bitstream, or pre-defined, or dependent on coding information such as number of pixels.

[0348] In addition, the intra-frame prediction method may include no filtering as an option, which can be represented by : Pred′C (x, y) =predC (x, y)           (19)

[0349] 1.1.2 Filter selection and signaling

[0350] The optimal filter is selected from the previously mentioned directional filters and edge-adaptive filter according to the coded signal (flag) or based on template derivation.

[0351] 1.1.2.1 Filter selection based on coded signal:

[0352] The encoder evaluates the coding cost for each filter and selects the best one. The index of the best filter shall be signaled in the bitstream.

[0353] By receiving the index, the decoder can reconstruct the prediction block with the indicated filter.

[0354] 1.1.2.2 Filter selection based on template derivation:

[0355] The encoder and decoder select the optimal filter through Template-Derived LBCCP procedures (with detailed specifics of Template-Derived LBCCP provided in Section 1.2 TD-LBCCP)

[0356] 1.2 TD-LBCCP

[0357] To minimize signaling overhead associated with an increased number of filters, this section introduces Template-derived LBCCP (TD-LBCCP) . The principle of TD-LBCCP is to try local enhancement filters on neighboring coded areas (templates) as an estimation of coding cost in order to gauge the probability of each filter being used and enable decoder-side derivation to reduce the signaling overhead. The scope of TD-LBCCP should be determined before its execution by certain rules.

[0358] The procedures of TD-LBCCP include these steps:

[0359] 1) Defining templates from the neighboring coded areas of the current block;

[0360] 2) Calculating coding costs for multiple local enhancement filters based on the templates; and

[0361] 3) Selecting the optimal filter for the current block based on the calculated costs.

[0362] 1.2.1 Check whether TD-LBCCP is enabled for current block:

[0363] The scope of TD-LBCCP defines whether TD-LBCCP is available to current block and is determined based on CCP mode or control flags. Some rules for the scope of TD-LBCCP are illustrated in the following:

[0364] Rule 1: Use TD-LBCCP only on specific CCP modes. Check whether the CCP mode in the decoding process is MM-CCLM or MM-CCCM. If the decoding mode is “MM-CCLM” or “MM-CCCM” , the encoder and the decoder proceed to execute TD-LBCCP. Otherwise, the encoder and the decoder do not execute TD-LBCCP.

[0365] Rule 2: Use TD-LBCCP on every CCP mode. Under this rule, TD-LBCCP is always executed.

[0366] Rule 3: Use TD-LBCCP based on high level syntax. The encoder uses one control flag signaled in block, slice, picture or group of picture level to indicate whether the TD-LBCCP is executed or not.

[0367] Embodiments of the disclosed method may apply one of the rules for the scope of TD-LBCCP or other rules.

[0368] 1.2.2 Define templates from neighboring coded areas of current block:

[0369] To derive the selection of local enhancement filter for current block, the encoder and the decoder must first define templates on which the costs calculation is performed.

[0370] The template is controlled by one or more of the following features:

[0371] 1) Template composition, determined according to certain coded information of the current block.

[0372] 2) Template range, which are regions surrounding the current block.

[0373] 3) Adaptive adjustments to template size.

[0374] Template composition:

[0375] Each template area is made up of pixels that have reconstructed pixel component values. These pixels should be in the coded / reconstructed data.

[0376] Template range structure:

[0377] a) The encoder and the decoder define rectangular coded areas on the left and top of the current block as the template range. As illustrated in FIG. 27, the left template and top template are denoted by L and T respectively. If L is available, the encoder and the decoder set its dimensions to at most L1 columns by H  rows; if T is available, the encoder and the decoder set its dimensions to at most W columns by T1 rows based on the current block dimensions (W×H) .

[0378] b) The encoder and the decoder define rectangular coded areas on the left, top and top-left of the current block as the template range. As illustrated in FIG. 28, the left, top and top-left template are denoted by L, T and LT respectively. If L is available, the encoder and the decoder set its dimensions to at most L1 columns by H rows; if T is available, the r set its dimensions to at most W columns by T1 rows; if LT is available, the encoder and the decoder set its dimensions to at most L1 columns by T1 rows based on the current block dimensions (W×H) .

[0379] The values of L1 and T1 may be signaled in the bitstream or depend on coding information. For example, the coding information is defined in the specification of the video coding standard. For example, the coding information may comprise the block size of the current block or neighboring blocks. For example, the coding information may comprise the size / dimension of the filter that will be applied onto the template.

[0380] Adaptive adjustments

[0381] The encoder and the decoder may adjust the sizes of the templates by adding columns or rows of pixels to the templates such that the aspect ratios of all templates are equal or closer to each other. For example, when H is larger than W, the encoder and the decoder set subject to data availability. As another example, when W is larger than H, let subject to data availability.

[0382] 1.2.3 LBCCP filter selection

[0383] LBCCP filter selection can be transmitted either: “by template-based derivation” and “by signaling the index” . In these methods, the optimal filter is chosen based on the templates or a coded signal which is defined by template-based cost ranking.

[0384] 1.2.3.1 Template-based derivation:

[0385] In the template-based derivation approach, the optimal filter is derived based on the costs calculated on the templates. LBCCP filter selection in the template-based derivation approach comprises the following steps:

[0386] Step 1: Template cost calculation. The encoder and the decoder apply multiple filters to the templates, and calculate costs for each filter. The cost of each filter on a template is represented as the difference between the filtered prediction values. The process yields the filtered prediction values by applying the CCP mode to the template and filtering the prediction, and yields the difference by comparing the filtered prediction with the actual reconstructed samples. The difference may be quantified using a cost metric like SATD, SSE, SAD, or another suitable quality assessment metric. The cumulative cost for each filter across all templates is determined through either a weighted or unweighted summation. The details are explained below.

[0387] Step 2: Optimal filter selection. The optimal filter is the one that has the minimum cost among available filters.

[0388] Filter cost on all templates

[0389] With examples of using SATD as cost metric, methods for calculating cost for a filter on all templates are as follows. SATD can be replaced by other metrics mentioned above.

[0390] Method 1: Weighted sum

[0391] The weighted sum of cost CostF is the cost for a local enhancement filter on all templates. The optimal local  enhancement filter i*is the filter with the lowest cost CostF:

[0392] The function argmin (f (x) ) simply returns the value of filter index I which minimizes over the set of candidates [1, n] for i. The constant n represents a total number of filters. For example, with top and left templates being available,  is calculated using the following formula:

[0393] Where and are the SATD computed on the top and left templates respectively, wT and wL are their respective weights and >> is right-shift operation.

[0394] For example, with top, left and top-left templates being available,  is calculated using the following formula:

[0395] Where and are the SATD computed on the top, left and top-left templates respectively, wT, wL and wLT are their respective weights.

[0396] Template weights: The weights for the templates are given based on one or more of the following rules:

[0397] 1) Weights are proportional to a) the number of samples in each template; or b) the number of samples in each template that are adjacent to the current block.

[0398] 2) When the cost of one template is significantly larger than that of another, a higher weight is assigned to the template with lower cost.

[0399] A weight for the left template is denoted as wL. A weight for the top template is denoted as wT. A weight for the top-left template is denoted as wLT . For example, under rule (1) (a) , the weights for left, top and top-left templates can be expressed as:

[0400] The rule (1) (a) may be applied to some embodiments of the disclosure.

[0401] For example, under rule (1) (b) , the weights for top and left templates can be expressed as: wL= 64-wT             (27)

[0402] The rule (1) (b) may be applied to some embodiments of the disclosure. Alternatively, the rules (1) (b) and (2) may be applied to some embodiments of the disclosure.

[0403] As another example, with rule (2) on top of rule (1) (b) , the weights can be expressed in terms of SATDT and SATDL, and a predefined factor K that is greater than or equal to 1. wL= 64-wT             (28b)

[0404] Method 2: Unweighted sum

[0405] An alternative method is to directly use sum of all SATDs CostS as the cost for local enhancement filter selection. The optimal local enhancement filter i*is the one with the lowest CostS:

[0406] where is computed as the direct sum of costs from all template areas:

[0407] In another case,  is computed as:

[0408] 1.2.3.2 By signaling the index

[0409] In the index signaling approach, the optimal filter is indicated based on the coded signal which is obtained by template-based cost ranking. LBCCP filter selection in the index signaling approach comprises the following steps:

[0410] 1) Creating a first list that includes local enhancement filters.

[0411] 2) Ordering the first list based on the costs of each filter on the templates in ascending order and optionally truncate the ordered list to first N filters to get the second list. The steps of cost calculation can be referred to Section 1.2.3.1 with a heading “Template-based derivation” .

[0412] 3) Signaling the candidate index i*to indicate which filter is selected from the second list.

[0413] 1.2.3.3 By inheriting from historical parameters

[0414] The available local enhancement filter parameters of the current block can be inherited from neighboring coded blocks that use TD-LBCCP.

[0415] LBCCP filter selection in the inheriting approach comprises the following steps:

[0416] 1) Creating a list to include local enhancement filters from the spatially adjacent and non-adjacent neighboring blocks.

[0417] 2) Adding the filter index into the list when merging a directional filter, and adding filter coefficients into the list when merging an edge-adaptive filter. Optionally order and truncate the list as in 1.2.3.2.

[0418] 3) Computing the costs of all filters in the list on current block and selecting the one or two filters with the lowest cost.

[0419] 4) Signaling the candidate index i*to indicate which filter is selected.

[0420] 1.3 Generate prediction block:

[0421] The final prediction block is obtained from applying the selected local enhancement filter. The chroma prediction block is generated using one of the following rules:

[0422] Rule 1: Apply filter to the chroma block. The encoder and the decoder utilize the optimal local enhancement filter to enhance the chroma component directly, resulting in the final chroma prediction block.

[0423] Rule 2: Apply filter to the luma block and calculate the chroma prediction block. The encoder and the decoder apply the optimal local enhancement filter to the luma block and calculate the chroma prediction block using the CCP mode.

[0424] Rule 3: Rule 1 + Rule 2. The encoder and the decoder apply the optimal local enhancement filter to the luma block and calculate the chroma prediction block using the CCP mode. Then apply the optimal local enhancement filter of chroma to enhance the chroma component, resulting in the final chroma prediction block.

[0425] With reference to FIG. 29, the embodiment of the disclosure also provides a chip 70 that may correspond to an encoder in the embodiments of the disclosure. The chip 70 may implement a corresponding process realized by the encoder (i.e., video encoding system 110) in various methods of the embodiments of the disclosure. The chip 70 includes a processor 71, and the processor 71 may call and run a computer program from memory to implement the methods in the embodiments of the present application.

[0426] Optionally, the chip 70 may also include a memory 72. In particular, the processor 71 may call and run the computer program from the memory 72 to implement the methods in the embodiments of the present application.

[0427] Moreover, the memory 72 may be a separate device from the processor 71 or may be integrated into the processor 71.

[0428] Optionally, the chip 70 may further include an input interface 73. Note that the processor 71 may control the input interface 73 to communicate with other devices or chips, specifically, to obtain messages or data sent by other devices or chips.

[0429] Optionally, the chip 70 may further include an output interface 74. Note that the processor 71 may control the output interface 74 to communicate with other devices or chips, specifically, to output messages or data to other devices or chips.

[0430] With reference to FIG. 30, the embodiment of the disclosure also provides another chip 80 that may correspond to a decoder (i.e., video decoding system 120) in the description, and the chip 80 may implement the corresponding processes implemented by the decoder in the various methods of the embodiments of the disclosure. The chip 80 includes a processor 81, and the processor 81 may call and run a computer program from the memory 82 to implement the methods in the embodiments of the present application.

[0431] Optionally, the chip 80 may further include a memory 82. In particular, the processor 81 may call and run the computer program from the memory 82 to implement the methods in the embodiments of the present application.

[0432] Wherein the memory 82 may be a separate device from the processor 81 or may be integrated into the processor 81.

[0433] Optionally, the chip 80 may also include an input interface 83. In particular, the processor 81 may control the input interface 83 to communicate with other devices or chips, specifically, to obtain messages or data sent by other devices or chips.

[0434] Optionally, the chip may further include an output interface 84. In particular, the processor 81 may control the output interface 84 to communicate with other devices or chips, specifically, to output messages or data to other devices or chips.

[0435] While the present disclosure has been described in connection with what is considered the most practical and preferred embodiments, it is understood that the present disclosure is not limited to the disclosed embodiments but is intended to cover various arrangements made without departing from the scope of the broadest interpretation of the appended claims.

Claims

1.An intra-frame prediction method, comprising:selecting a local enhancement filter from candidate local enhancement filters; andapplying the selected local enhancement filter for Local-Boosting Cross-Component Prediction (LBCCP) , wherein the applying the selected local enhancement filter for LBCCP comprises performing a prediction by generating an enhanced prediction block from a prediction block or a reference block of the current block using the local enhancement filter.2.The intra-frame prediction method of claim 1, wherein the method is executed by a decoding device and further comprises:determining whether a current block in a current picture of video data is coded in a Local-Boosting Cross-Component Prediction (LBCCP) mode;wherein the selecting the local enhancement filter from candidate local enhancement filters comprises:decoding an index of the local enhancement filter from the video data when the current block is coded in the LBCCP mode; andselecting the local enhancement filter based on the index.3.The intra-frame prediction method of claim 1, wherein the candidate local enhancement filters comprise at least one directional filter;wherein the at least one directional filter is a convolution kernel which is configured to smooth the prediction block of the current block in a specific direction by image convolution.4.The intra-frame prediction method of claim 3, wherein elements of a respective one of the at least one directional filter along a specific direction are non-zero, and other elements of the respective one of the at least one directional filter are substantially zero.5.The intra-frame prediction method of claim 4, wherein the at least one directional filter comprises a horizontal filter, wherein elements of the horizontal filter along a horizontal direction are non-zero.6.The intra-frame prediction method of claim 4, wherein the at least one directional filter comprises a vertical filter, wherein elements of the vertical filter along a vertical direction are non-zero.7.The intra-frame prediction method of claim 4, wherein the at least one directional filter comprises a diagonal filter, wherein elements of the diagonal filter along a first diagonal direction are non-zero.8.The intra-frame prediction method of claim 4, wherein the at least one directional filter comprises a reverse diagonal filter, wherein elements of the reverse diagonal filter along a second diagonal direction are non-zero.9.The intra-frame prediction method of claim 3, wherein each pixel of the current block serves as a current pixel for applying the local enhancement filter, each of the at least one directional filter comprises a 3 by 3 matrix applied to the current pixel with a coordinate (x, y) of the current block;wherein the at least one directional filter comprises at least one of a horizontal filter, a vertical filter, a diagonal filter, and a reverse diagonal filter;the horizontal filter generates a new value of the current pixel by dividing a first sum by a first total weight, wherein the first sum is a summation of a neighbor pixel (x-1, y) multiplied by a weight wx-1, y , the current pixel (x, y) multiplied by a weight wx, y, 1, and a neighbor pixel (x+1, y) multiplied by a weight wx+1, y, the first total weight is a sum of wx-1, y+wx, y, 1+wx+1, y;the vertical filter generates a new value of the current pixel by dividing a second sum by a second total weight, wherein the second sum is a summation of a neighbor pixel (x, y-1) multiplied by a weight wx, y-1, the current pixel (x, y) multiplied by a weight wx, y, 2, and a neighbor pixel (x, y+1) multiplied by a weight wx, y+1, and the second total weight that is a sum of wx, y-1+wx, y, 2+wx, y+1;the diagonal filter generates a new value of the current pixel by dividing a third sum by a third total weight, wherein the third sum is a summation of a neighbor pixel (x-1, y-1) multiplied by a weight wx-1, y-1, the current pixel (x, y) multiplied by a weight wx, y, 3, and a neighbor pixel (x+1, y+1) multiplied by a weight wx+1, y+1, and the third total weight that is a sum of wx-1, y-1+wx, y, 3+wx+1, y+1;the reverse diagonal filter generates a new value of the current pixel by dividing a fourth sum by a fourth total weight, wherein the fourth sum is a summation of a neighbor pixel (x+1, y-1) multiplied by a weight wx+1, y-1, the current pixel (x, y) multiplied by a weight wx, y, 4, and a neighbor pixel (x-1, y+1) multiplied by a weight wx-1, y+1, and the fourth total weight that is a sum of wx+1, y-1+wx, y, 4+wx-1, y+1.10.The intra-frame prediction method of claim 1, wherein the local enhancement filter is used to perform image convolution on the prediction block.11.The intra-frame prediction method of claim 1, wherein the candidate local enhancement filters comprise an edge-adaptive filter; wherein filter strength of the edge-adaptive filter is determined based on image gradient at pixels of the prediction block.12.The intra-frame prediction method of claim 11, wherein the edge-adaptive filter is controlled by the filter strength, a sub-filter, and a rescaling parameter;wherein the sub-filter is configured for preprocessing the prediction block;wherein the filter strength is configured for determining a weight of a difference of the preprocessed prediction block and the prediction block;wherein the rescaling parameter is configured for normalizing the filter strength.13.The intra-frame prediction method of claim 12, wherein the enhanced prediction block is generated following a relation: wherePred′C (x, y) is a pixel (x, y) of the enhanced prediction block;PredC (x, y) is a pixel (x, y) of the prediction block;Q is the rescaling parameter;g (x, y) is the image gradient at a pixel (x, y) of the prediction block;α (m, n) are coefficients of the sub-filter, and the sub-filter is an Adaptive Loop Filter.14.The intra-frame prediction method of claim 12, wherein the enhanced prediction block is generated following a relation: Q [g (x, y) ] =1 /  (1+e-g (x, y) )wherePred′C (x, y) is a pixel (x, y) of the enhanced prediction block;PredC (x, y) is a pixel (x, y) of the prediction block;Q is the rescaling parameter;g (x, y) is the image gradient at a pixel (x, y) of the prediction block;A is an isotropic filter.15.The intra-frame prediction method of claim 12, wherein each pixel of the current block serves as a current pixel for applying the local enhancement filter, the edge-adaptive filter is configured to generate a new value of the current pixel by adjusting a predictive value of the current pixel with an output of a rescaling operation;an input of the rescaling operation comprises an image gradient g (x, y) multiplied by a summation of pixel-wise differences;one of the pixel-wise differences comprise a filter coefficient α (m, n) of the sub-filter multiplied by a difference between a predicted value of a neighbor pixel (x+m, y+n) and a predicted value of the current pixel.16.The intra-frame prediction method of claim 12, wherein each pixel of the current block serves as a current pixel for applying the local enhancement filter, the edge-adaptive filter generates a new value of the current pixel by adjusting a predictive value of the current pixel with a product of an output of a normalization operation and a pixel-based difference;an input of the normalization operation comprises an image gradient g (x, y) ;the pixel-based difference is obtained by an output of convolution operation subtracted by a predicted value of the current pixel;an input of the convolution operation comprises an LBCCP convolution kernel A and the predicted value of the current pixel.17.The intra-frame prediction method of claim 16, the LBCCP convolution kernel A comprises a 3 by 3 matrix, the convolution operation output a result of dividing a fifth sum by a fifth total weight, wherein the fifth sum is a summation of the neighbor pixel (x-1, y) multiplied by a weight wx-1, y, the neighbor pixel (x+1, y) multiplied by a weight wx+1, y, the neighbor pixel (x, y-1) multiplied by a weight wx, y-1, the neighbor pixel (x, y+1) multiplied by a weight wx, y+1, the neighbor pixel (x-1, y-1) multiplied by a weight wx-1, y-1, the neighbor pixel (x+1, y+1) multiplied by a weight wx+1, y+1, the neighbor pixel (x+1, y-1) multiplied by a weight wx+1, y-1, the neighbor pixel (x-1, y+1) multiplied by a weight wx-1, y+1, the neighbor pixel (x+1, y-1) multiplied by the weight wx+1, y-1, the current pixel (x, y) multiplied by a weight wx, y, 5, and the neighbor pixel (x-1, y+1) multiplied by the weight wx-1, y+1, and the fourth total weight that is a sum of wx-1, y+wx+1, y+wx, y-1+wx, y+1+wx-1, y-1+wx+1, y+1+wx+1, y-1+wx, y, 5+wx-1, y+1.18.The intra-frame prediction method of claim 16, wherein the normalization operation is to compute a reciprocal of a sum of 1 and an exponential function raised to a power of a negative image gradient g (x, y) at a pixel (x, y) .19.The intra-frame prediction method of claim 1, wherein the enhanced prediction block comprises an enhanced chroma prediction block and an enhanced luma prediction block, the enhanced chroma prediction block is generated by applying the selected local enhancement filter to a chroma prediction block of the current block directly.20.The intra-frame prediction method of claim 1, wherein the enhanced prediction block comprises an enhanced chroma prediction block and an enhanced luma prediction block, the enhanced chroma prediction block is generated by applying the selected local enhancement filter to a luma block of the current block and generating the enhanced chroma predicted block using cross-component prediction (CCP) mode with the filtered luma block.21.The intra-frame prediction method of claim 1, wherein the selecting the local enhancement filter from the candidate local enhancement filters comprises:evaluating a coding cost of each filter in the candidate filters; andselecting the local enhancement filter with a minimum coding cost.22.The intra-frame prediction method of claim 21, wherein the method is executed by an encoding device, and further comprises:signaling an index of the local enhancement filter in a bitstream that conveys the video data.23.The intra-frame prediction method of claim 21, wherein the method is executed by a decoding device, and further comprises, before the evaluating the coding cost of each filter in the candidate filters, determining whether Template Derived Local Boosting Cross-Component Prediction (TD-LBCCP) is available.24.The intra-frame prediction method of claim 23, wherein the determining whether the TD-LBCCP is available comprises:determining whether the prediction block of the current block is generated with a pre-defined Cross-Component Prediction (CCP) mode; andwhen it is determined that the prediction block of the current block is generated with the pre-defined CCP mode, determining that the TD-LBCCP is available.25.The intra-frame prediction method of claim 23, wherein the determining whether the TD-LBCCP is available comprises:receiving a control flag; anddetermining whether the TD-LBCCP is available based on the control flag.26.The intra-frame prediction method of claim 21, wherein the evaluating the coding cost of each filter in the candidate filters comprises:determining a template block;acquiring a reconstructed block and a prediction block of the template block;applying a respective filter in the candidate filters on the prediction block of the template block to acquire an enhanced prediction block of the template block corresponding to the respective filter; anddetermining the coding cost of the respective filter based on a difference between the reconstructed block of the template block and the enhanced prediction block of the template block corresponding to the respective filter.27.The intra-frame prediction method of claim 26, wherein the template block comprises a plurality of blocks adjacent to the current block;wherein the determining the coding cost of the respective filter based on the difference between the reconstructed block the template block and the enhanced prediction block of the template block corresponding to the respective filter comprises:calculating differences between the reconstructed block and the enhanced prediction block of the plurality of blocks respectively; anddetermining the coding cost of the respective filter based on a sum of the differences.28.The intra-frame prediction method of claim 27, wherein the sum of the differences is a weighted sum, and wherein: a weight corresponding to a respective one of the plurality of blocks is proportional to a number of samples in the respective one of the plurality of blocks; ora weight corresponding to a respective one of the plurality of blocks is proportional to a number of samples in the respective one of the plurality of blocks next to the current block.29.The intra-frame prediction method of claim 26, wherein the difference between the reconstructed block of the template block and the enhanced prediction block of the template block corresponding to the respective filter  comprises a quality assessment metric using one of Sum of Absolute Transformed Differences (SATD) , Sum of Squared Errors (SSE) , or Sum of Absolute Differences (SAD) .30.The intra-frame prediction method of claim 26, wherein the template block comprises a rectangular coded area denoted as L at the left of the current block and a rectangular coded area denoted as T on top of the current block.31.The intra-frame prediction method of claim 26, wherein the rectangular coded area L is set with a dimension at most L1 columns by H rows;the rectangular coded area T is set with a dimension at most W columns by T1 rows, where W and H represent width and height of the current block respectively.32.The intra-frame prediction method of claim 26, wherein the template block comprises rectangular coded areas on the left, top and top-left of the current block, which are denoted by L, T and LT respectively.33.The intra-frame prediction method of claim 32, wherein the rectangular coded area L is set with a dimension to at most L1 columns by H rows;the rectangular coded area is set with a dimension at most W columns by T1 rows;the rectangular coded area LT is set a dimension at most L1 columns by T1 rows;where W and H represent width and height of the current block respectively.34.The intra-frame prediction method of claim 1 or 27, wherein the values of L1 and T1 are signaled in the bitstream or derivable from coding information.35.The intra-frame prediction method of claim 34, wherein the coding information comprises a block size of the current block or neighboring blocks of the current block.36.The intra-frame prediction method of claim 34, wherein the coding information comprises a size / dimension of the local enhancement filter.37.The intra-frame prediction method of claim 26, wherein the template block comprises a plurality of blocks adjacent to the current block;wherein the determining the template block comprises:acquiring sizes of the plurality of blocks; andadjusting the sizes of at least some of the plurality of blocks to make aspect ratios of the plurality of blocks be substantially equal to each other.38.An intra-frame prediction method, comprising:acquiring a current block in a current picture of video data;acquiring a prediction block of the current block by Cross-Component Prediction (CCP) ; andapplying a directional filter to generate an enhanced prediction block of the current block;wherein the directional filter is a convolution kernel which is configured to smooth the prediction block of the current block in a specific direction by image convolution.39.The intra-frame prediction method of claim 38, wherein elements of the directional filter along a specific direction are non-zero, and other elements of the respective one of the at least one directional filter are substantially zero.40.The intra-frame prediction method of claim 39, wherein the directional filter comprises one of a horizontal filter, a vertical filter, a diagonal filter and a reverse filter;wherein elements of the horizontal filter along a horizontal direction are non-zero;wherein elements of the vertical filter along a vertical direction are non-zero;wherein elements of the diagonal filter along a first diagonal direction are non-zero; andwherein elements of the reverse diagonal filter along a second diagonal direction are non-zero.41.An intra-frame prediction method, comprising:acquiring a current block in a current picture of video data;acquiring a prediction block of the current block by Cross-Component Prediction (CCP) ; andapplying an edge-adaptive filter to generate an enhanced prediction block of the current block;wherein filter strength of the edge-adaptive filter is determined based on image gradient at pixels of the prediction block.42.The intra-frame prediction method of claim 41, wherein the edge-adaptive filter is controlled by the filter strength, a sub-filter, and a rescaling parameter;wherein the sub-filter is configured for preprocessing the prediction block;wherein the filter strength is configured for determining a weight of a difference of the preprocessed prediction block and the prediction block;wherein the rescaling parameter is configured for normalizing the filter strength.43.The intra-frame prediction method of claim 42, wherein the enhanced prediction block is generated following a relation: wherePred′C (x, y) is a pixel (x, y) of the enhanced prediction block;PredC (x, y) is a pixel (x, y) of the prediction block;Q is the rescaling parameter;g (x, y) is the image gradient at a pixel (x, y) of the prediction block;α (m, n) are coefficients of the sub-filter, and the sub-filter is an Adaptive Loop Filter.44.The intra-frame prediction method of claim 42, wherein the enhanced prediction block is generated following a relation: Q [g (x, y) ] =1 /  (1+e-g (x, y) )wherePred′C (x, y) is a pixel (x, y) of the enhanced prediction block;PredC (x, y) is a pixel (x, y) of the prediction block;Q is the rescaling parameter;g (x, y) is the image gradient at a pixel (x, y) of the prediction block;A is an isotropic filter.45.A chip, comprising:a processor, configured to call and run a computer program stored in a memory, to cause a device in which the chip is installed to execute the method of any of claims 1 to 44.46.A computer-readable storage medium, in which a computer program is stored, wherein the computer program causes a computer to execute the method of any of claims 1 to 44.47.A computer program product, comprising a computer program, wherein the computer program causes a computer to execute the method of any of claims 1 to 44.48.A computer program, wherein the computer program causes a computer to execute the method of any of claims 1  to 44.49.A decoding device comprising:a processor configured to execute the method of any of claims 1 to 44.50.An encoding device comprising:a processor configured to execute the method of any of claims 1 to 44.

Citation Information

Patent Citations

  • Image encoding method, image decoding method and related device

    CN116456101A

  • Bilateral filter for predicted video data

    US20190320171A1

  • Systems and methods for intra prediction smoothing filter

    US20220060702A1