Methods and apparatus of matrix-based reference sample refinement for video coding
The matrix-based intra prediction technique refines reference samples using gradient and residual values, addressing inefficiencies in existing video coding systems and enhancing prediction accuracy and quality.
Patent Information
- Application Number
- PCT/CN2025/107004
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-07-10
- Filing Date
- 2025-07-04
- Publication Date
- 2026-01-15
AI Technical Summary
Existing video coding systems, such as VVC, face challenges in improving intra prediction efficiency due to impairments in reconstructed video data quality, which affect the accuracy of reference samples used for prediction.
The implementation of a matrix-based intra prediction (MIP) technique that refines reference samples by using a matrix-weighted approach, incorporating gradient values and additional inputs like reconstruction, prediction, or residual values, and applying non-linear operations to enhance the prediction process.
Enhances the accuracy and efficiency of intra prediction by refining reference samples, leading to improved video coding performance and quality.
Smart Images

Figure CN2025107004_15012026_PF_FP_ABST
Abstract
Description
METHODS AND APPARATUS OF MATRIX-BASED REFERENCE SAMPLE REFINEMENT FOR VIDEO CODINGCROSS REFERENCE TO RELATED APPLICATIONS
[0001] The present invention is a non-Provisional Application of and claims priority to U.S. Provisional Patent Application No. 63 / 669,324, filed on July 10, 2024. The U.S. Provisional Patent Application is hereby incorporated by reference in its entirety.FIELD OF THE INVENTION
[0002] The present invention relates to video coding system. In particular, the present invention relates to techniques to improve the performance of intra prediction by refining reference samples using Matrix-based Intra Prediction (MIP) in a video coding system. BACKGROUND AND RELATED ART
[0003] Versatile video coding (VVC) is the latest international video coding standard developed by the Joint Video Experts Team (JVET) of the ITU-T Video Coding Experts Group (VCEG) and the ISO / IEC Moving Picture Experts Group (MPEG) . The standard has been published as an ISO standard: ISO / IEC 23090-3: 2021, Information technology -Coded representation of immersive media -Part 3: Versatile video coding, published Feb. 2021. VVC is developed based on its predecessor HEVC (High Efficiency Video Coding) by adding more coding tools to improve coding efficiency and also to handle various types of video sources including 3-dimensional (3D) video signals.
[0004] Fig. 1A illustrates an exemplary adaptive Inter / Intra video encoding system incorporating loop processing. For Intra Prediction 110, the prediction data is derived based on previously coded video data in the current picture. For Inter Prediction 112, Motion Estimation (ME) is performed at the encoder side and Motion Compensation (MC) is performed based on the result of ME to provide prediction data derived from other picture (s) and motion data. Switch 114 selects Intra Prediction 110 or Inter Prediction 112 and the selected prediction data is supplied to Adder 116 to form prediction errors, also called residues. The prediction error is then processed by Transform (T) 118 followed by Quantization (Q) 120. The transformed and quantized residues are then coded by Entropy Encoder 122 to be included in a video bitstream corresponding to the compressed video data. The bitstream associated with the transform coefficients is then packed with side information such as motion and coding modes associated with Intra prediction and Inter prediction, and other information such as parameters associated with loop filters applied to underlying image area. The side information associated with Intra Prediction 110, Inter prediction 112 and in-loop filter 130, is provided to Entropy Encoder 122 as shown in Fig. 1A. When an Inter-prediction mode is used, a reference picture or pictures have to be reconstructed at the encoder end as well. Consequently, the transformed and quantized residues are processed by Inverse Quantization (IQ) 124 and Inverse Transformation (IT) 126 to recover the residues. The residues are then added back to prediction data 136 at Reconstruction (REC) 128 to reconstruct video data. The reconstructed video data may be stored in Reference Picture Buffer 134 and used for prediction of other frames.
[0005] As shown in Fig. 1A, incoming video data undergoes a series of processing in the encoding system. The reconstructed video data from REC 128 may be subject to various impairments due to a series of processing. Accordingly, in-loop filter 130 is often applied to the reconstructed video data before the reconstructed video data are stored in the Reference Picture Buffer 134 in order to improve video quality. For example, deblocking filter (DF) , Sample Adaptive Offset (SAO) and Adaptive Loop Filter (ALF) may be used. The loop filter information may need to be incorporated in the bitstream so that a decoder can properly recover the required information. Therefore, loop filter information is also provided to Entropy Encoder 122 for incorporation into the bitstream. In Fig. 1A, Loop filter 130 is applied to the reconstructed video before the reconstructed samples are stored in the reference picture buffer 134. The system in Fig. 1A is intended to illustrate an exemplary structure of a typical video encoder. It may correspond to the High Efficiency Video Coding (HEVC) system, VP8, VP9, H.264 or VVC.
[0006] The decoder, as shown in Fig. 1B, can use some of the functional blocks as the encoder. For example, the decoder can reuse Inverse Quantization 124 and Inverse Transform 126; however, Transform 118 and Quantization 120 are not needed at the decoder. Instead of Entropy Encoder 122, the decoder uses an Entropy Decoder 140 to decode the video bitstream into quantized transform coefficients and needed coding information (e.g. ILPF information, Intra prediction information and Inter prediction information) . The Intra prediction 150 at the decoder side does not need to perform the mode search. Instead, the decoder only needs to generate Intra prediction according to Intra prediction information received from the Entropy Decoder 140. Furthermore, for Inter prediction, the decoder only needs to perform motion compensation (MC 152) according to Inter prediction information received from the Entropy Decoder 140 without the need for motion estimation.
[0007] In VVC, the Sequence Parameter Set (SPS) and the Picture Parameter Set (PPS) contain high-level syntax elements that apply to entire coded video sequences and pictures, respectively. The Picture Header (PH) and Slice Header (SH) contain high-level syntax elements that apply to a current coded picture and a current coded slice, respectively.
[0008] In VVC, a coded picture is partitioned into non-overlapped square block regions represented by the associated coding tree units (CTUs) . A coded picture can be represented by a collection of slices, each comprising an integer number of CTUs. The individual CTUs in a slice are processed in raster-scan order. A bi-predictive (B) slice may be decoded using intra prediction or inter prediction with at most two motion vectors and reference indices to predict the sample values of each block. A predictive (P) slice is decoded using intra prediction or inter prediction with at most one motion vector and reference index to predict the sample values of each block. An intra (I) slice is decoded using intra prediction only.
[0009] Matrix weighted Intra Prediction (MIP)
[0010] Matrix weighted intra prediction (MIP) method is a newly added intra prediction technique into VVC. For predicting the samples of a rectangular block of width W and height H, matrix weighted intra prediction (MIP) takes one line of H reconstructed neighbouring boundary samples left of the block and one line of W reconstructed neighbouring boundary samples above the block as input. If the reconstructed samples are unavailable, they are generated as it is done in the conventional intra prediction. The generation of the prediction signal is based on the following three steps, which are averaging, matrix vector multiplication and linear interpolation as shown in Fig. 2. One line of H reconstructed neighbouring boundary samples 212 left of the block and one line of W reconstructed neighbouring boundary samples 210 above the block are shown as dot-filled small squares. After the averaging process, the boundary samples are down-sampled to top boundary line 214 and left boundary line 224. The down-sampled samples are provided to the matrix-vector multiplication unit 220 to generate the down-sampled prediction block 230. An interpolation process is then applied to generate the prediction block 240.
[0011] Matrix-based Intra Prediction Replacing Existing Conventional Intra Modes
[0012] A matrix of weights, which are defined for a block shape and intra mode, is introduced. Those weights are multiplied by the neighbour reference template to derive the prediction samples replacing conventional intra prediction. The weights are applied to the reference samples of the L-shaped causal neighbourhood template as shown in the Fig. 3. In Fig. 3, the L-shaped causal neighbourhood template for a W x H prediction block 310 is shown, where the size of the top template 320 is 2W x T1 and the size for the left template 330 is T2 x 2H.
[0013] The reference samples in the causal neighbourhood are denoted as r, and F (x, y) is the matrix of weights. Then, the prediction P (x, y) can be derived as: P (x, y) = ∑k F (x, y, k) *r (k) , where k denotes the index of the reference sample in the template.
[0014] In the test, this prediction is used for block size with both width and height up to 32 (except for 4x32, 32x4, 8x32 and 32x8) . The template size is 2 for blocks with both width and height up to 16; and it is only used for modes 0, 1, and (2+2*k) . For other blocks, the template size is set to 1 and the method is used for modes 0, 1, and (2+4*k) ; prediction is only performed for 16x16 positions, and the rest of the samples are generated by bilinear interpolation. For all block sizes, block shape and mode-based symmetry is used. Reference length is set to W and H for modes greater than 18 and less than 50; and set to 2*W and 2*H otherwise.
[0015] In the above method, the matrix-based model is used to generate prediction. In this disclosure, we propose to apply the model output to the L-shaped causal neighbourhood template with some extension to improve the matrix-based model (dubbed as refinement model in this disclosure) . BRIEF SUMMARY OF THE INVENTION
[0016] Methods and apparatus for video coding using matrix-based model to refine reference samples in a template area are disclosed. According to this method, input data associated with a current block is received, wherein the input data comprise pixel data to be encoded at an encoder side or data associated with the current block to be decoded at a decoder side. A template area for the current block is determined. A target matrix-based refinement model is determined, wherein the target matrix-based refinement model comprises a refinement model input and a weight matrix, and the refinement model input comprises reconstructed samples in the template area. Refined reference samples in the template area are generated by multiplying the refinement model input with the weight matrix. Intra prediction is generated using the refined reference samples. The current block is encoded or decoded using the intra prediction.
[0017] In one embodiment, the refinement model input comprises at least one additional input term in addition to the reconstructed samples in the template area. In one embodiment, said at least one additional input term comprises one or more gradient values derived from reconstruction, prediction or residual values in the template area. In one embodiment, the current block comprises a first-colour component and a second-colour component, and said one or more gradient values for the first-colour component are derived from a first-colour template for the first-colour component or from a collocated area for the second-colour component.
[0018] In one embodiment, the refinement model input comprises one or more residual values in the template area.
[0019] In one embodiment, the current block comprises multiple colour components, the refinement model input comprises reconstruction, prediction, or residual values of any component in the template area.
[0020] In one embodiment, wherein a non-linear operation or an activation function is applied to the refinement model input to derive the refined reference samples, and wherein the non-linear operation comprises minimum, maximum, or clipping, and the activation function comprises ReLU (Rectified Linear Unit) , Sigmoid, Leaky ReLU, or hyperbolic tangent.
[0021] In one embodiment, one or more position terms are used as additional inputs to the refinement model input to generate the refined reference samples.
[0022] In one embodiment, a plurality of matrix-based refinement models is generated and the target matrix-based refinement model is selected from the plurality of matrix-based refinement models according to one or more implicit or explicit constraints. In one embodiment, said one or more implicit constraints comprise intra mode, MIP (Matrix-weighted Intra Prediction) mode or QP (Quantization Parameter) value of the current block, or width or height of picture containing the current block. In one embodiment, said one or more explicit constraints are signalled or parsed in a slice, picture, CTU (Coding Tree Unit) , CU (Coding Unit) or PU (Prediction Unit) level.
[0023] In one embodiment, the refinement model input, refinement model output or both are clipped. In one embodiment, a clipping range for clipping the refinement model input, the refinement model output or both is signalled or parsed in a PU (Prediction Unit) , CU (Coding Unit) , CTU (Coding Tree Unit) , slice, picture, or sequence level. In one embodiment, wherein a clipping range for clipping the refinement model input, the refinement model output, or both is pre-defined in an encoder or decoder. In one embodiment, a clipping range for clipping the refinement model input, the refinement model output, or both is derived from reconstruction, prediction, residual values on a template area or on a collocated area when the current block is a multi-colour block. In one embodiment, the refinement model input, the refinement model output, or both are clipped according to a function, and wherein the function comprises ReLU (Rectified Linear Unit) , sigmoid, or polynomial function.
[0024] In one embodiment, the template area is divided into multiple blocks, and each block is classified into one of multiple classes based on one or more values calculated using reconstruction, prediction, or residual values within each block. In one embodiment, said one or more values comprise a sum of reconstruction values in each block or an absolution sum of residual values in each block. In one embodiment, multiple refinement models are used for multiple classes.BRIEF DESCRIPTION OF THE DRAWINGS
[0025] Fig. 1A illustrates an exemplary adaptive Inter / Intra video coding system incorporating loop processing.
[0026] Fig. 1B illustrates a corresponding decoder for the encoder in Fig. 1A.
[0027] Fig. 2 illustrates an example of matrix weighted intra prediction process.
[0028] Fig. 3 illustrates an example of the L shaped causal neighbourhood template used to derive the prediction.
[0029] Fig. 4 illustrates an example of using gradient values on an available area as additional model input for template refinement according to one embodiment of the present invention.
[0030] Fig. 5 illustrates an example of using gradient values on a collocated area as additional model input for template refinement according to one embodiment of the present invention.
[0031] Fig. 6 illustrates a flowchart of an exemplary video coding system that uses matrix-based model to refine reference samples in a template area and the refined reference samples are further used to derive intra prediction according to an embodiment of the present invention.DETAILED DESCRIPTION OF THE INVENTION
[0032] It will be readily understood that the components of the present invention, as generally described and illustrated in the figures herein, may be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of the embodiments of the systems and methods of the present invention, as represented in the figures, is not intended to limit the scope of the invention, as claimed, but is merely representative of selected embodiments of the invention. References throughout this specification to “one embodiment, ” “an embodiment, ” or similar language mean that a particular feature, structure, or characteristic described in connection with the embodiment may be included in at least one embodiment of the present invention. Thus, appearances of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment.
[0033] Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. One skilled in the relevant art will recognize, however, that the invention can be practiced without one or more of the specific details, or with other methods, components, etc. In other instances, well-known structures, or operations are not shown or described in detail to avoid obscuring aspects of the invention. The illustrated embodiments of the invention will be best understood by reference to the drawings, wherein like parts are designated by like numerals throughout. The following description is intended only by way of example, and simply illustrates certain selected embodiments of apparatus and methods that are consistent with the invention as claimed herein.
[0034] Matrix-based Reference Sample Refinement
[0035] In the present invention, reference samples used to derive intra prediction are refined. For example, the reference samples in one or more template areas are refined before they are used to derive intra prediction. There are various means to refine the reference samples. For example, matrix-based techniques can be used to refine the reference samples.
[0036] In one embodiment, the reference samples of the template area from the reconstruction can be used as inputs to the refinement model, whereas the output of the model is a refined version of the template to further improve the output of intra prediction. The term “template” here and in this disclosure is defined as a region in the causal reconstructed picture including, but not limited to, the L-shaped region to the upper-left of the current block.
[0037] If the reference samples in the causal neighbourhood are denoted as r and F (x, y) is the matrix of weights, then the refinement for the ith sample R (i) can be derived as: R (i) = ∑k F (i, k) *r (k) , where k denotes the index of the reference sample in the template.
[0038] The refinement model has different parameters and input shapes defined for different CU sizes to generate the correct output shape.
[0039] Below are extensions to the idea of the refinement model.
[0040] Scheme 1: More Input for the Refinement Model
[0041] In one embodiment, the gradient term can be used as an additional input for the refinement model. The gradient value can be derived from the reconstruction, prediction or residual values in the template area.
[0042] For example, the gradient term is derived from the reconstruction value in the upper and left template area of current block as shown in Fig. 4, where the template 420 for a current block 410, and related positions are shown. The reconstruction at position (x, y) is denoted as R [x] [y] , and the horizontal gradient term can be in the form (R [x] [y] -R [x-1] [y] ) , (-R [x-1] [y] +2*R [x] [y] -R [x+1] [y] ) , (R [x-1] [y] -R [x+1] [y] ) , …etc. The vertical gradient term can be in the form (R [x] [y] -R [x] [y-1] ) , (-R [x] [y-1] + 2*R [x] [y] -R [x] [y+1] ) , (R [x] [y-1] -R [x] [y+1] ) , …etc.
[0043] In one embodiment, all the gradient values in the available template area can be used as additional input. In another embodiment, gradient is calculated only on the upper one line and / or left one line.
[0044] In another embodiment, when generating prediction at position (x, y) , the additional gradient input only applies at the position close to (x, y) . For example, the horizontal and vertical gradient at position (x-1, y) , (x, y-1) can be used when generating prediction at position (x, y) .
[0045] In another embodiment, for video with multiple colour components, the gradient can be derived from the template area or the collocated area from different colour component.
[0046] For example, in 444 video formats, when the current block is a chrominance component, the reconstruction value in collocated luminance component can be used for gradient calculation.
[0047] In another embodiment, the reconstruction, prediction, or residual value of any component in the template area can be used as an input to the refinement model.
[0048] For example, the luma component in the reconstructed template area can be used as an additional input to the refinement model to refine the template of the chroma component.
[0049] In another example, the residual signal can be used to refine the template area.
[0050] In one embodiment, any term that can be further derived from the reconstruction, prediction or residual value of any component can as also be used as an additional input to the refinement model.
[0051] For example, the square, square root, or cube of the reconstruction value in the template area can be used as an additional input to the refinement model.
[0052] In another example, non-linear operations including taking the minimum, maximum, and clipping can be applied to the input of the refinement model.
[0053] In another example, activation functions used in neural networks such as ReLU (Rectified Linear Unit) , Sigmoid, Leaky ReLU, and hyperbolic tangent can be applied to the input of the refinement model.
[0054] In one embodiment, the position terms are added as the additional input to generate refinement at different positions.
[0055] For example, to generate the refinement at (x, y) , the values of x and y are used as input, and x is in the range of [0, w-1] , y in [0, h-1] as shown in Fig. 5, where block 510 corresponds to the current block and block 520 corresponds to the collocated block.
[0056] In one embodiment, the regularization term is used when deriving the refinement model.
[0057] Scheme 2: Multiple Sets of Refinement Model
[0058] In one embodiment, multiple prediction sets are defined in the encoder and decoder, and the refinement model set is selected according to different implicit or explicit constraints, the constraint can be indicated in sequence, GOP (Group of Pictures) , slice, picture, CTU, CU or PU level.
[0059] For example, the refinement model set can be defined for different intra modes. For every intra mode, a different model is used.
[0060] In another example, the refinement model set is selected according to the MIP mode of the current block. For every MIP mode, a different model is used.
[0061] In another example, the refinement model set is selected according to the video width and height. For videos in 4k or larger resolutions, refinement model set 0 is selected and refinement model set 1 is used in other resolutions.
[0062] In another example, QP values are used for selecting the model set. For example, for QP values smaller than 27, model set 0 is used; otherwise, model set 1 is used.
[0063] In another example, an index is signalled in PU, CU, CTU, slice, picture or sequence level to indicate which model set to use.
[0064] In another example, the implicit method is used for model set selection for each CU. For each CU, the characteristic of its template area is used to derive the model set. The characteristic can be spatial activity, HoG or any other metrics.
[0065] In another example, temporal layer ID is used for selecting model set. For example, for Temporal layer IDs smaller than 3, model set 0 is used; otherwise, model set 1 is used.
[0066] Scheme 3: Refinement of Refinement Model Input / Output
[0067] In one embodiment, clipping can be further applied to the output of the refinement model. In another embodiment, clipping can be further applied to the input of the refinement model. The clipping range can be signalled in PU, CU, CTU, slice, picture, or sequence level. In another embodiment, the clipping range is predefined in the encoder and decoder.
[0068] In another embodiment, the clipping range is derived from reconstruction, prediction, residual values on the template area or collocated area.
[0069] For example, the mean denoted by μ of reconstruction value is calculated, and the clipping range can be in [μ-c, μ+c] to further refine the refinement model output. c can be a predefined value or adaptive value determined by the encoder with the best rate-distortion trade-off and signalled to the decoder.
[0070] In another embodiment, the clipping can be applied on the difference between the predictions generated by the refinement model and the conventional ones.
[0071] For example, the refinement model replaces the conventional intra angular mode. The output of the refinement model is denoted by O1 and the conventional intra angular mode is denoted by O2. The clipping can be applied on the value (O1-O2) .
[0072] In one embodiment, any function can be applied to the same refinement process as the clipping method above. The function can be ReLU, sigmoid, polynomial function, …etc.
[0073] For example, the ReLU function can be applied on the difference between the prediction generated by the refinement model and the conventional ones.
[0074] Scheme 4: Classification for the Refinement Model Input
[0075] In one embodiment, the input reference area can be further divided into blocks / samples, where each block / sample can be classified based on values calculated using the reconstruction, prediction, or residual in the template area or collocated area. Different models can be applied to samples with different classes.
[0076] For example, the template area can be divided into 2x2 blocks. By representing a reconstruction sample at (x, y) as R [x] [y] , the horizontal gradient value can be calculated as (-R [x-1] [y] + 2*R [x] [y] -R [x+1] [y] ) for each sample. The sum of gradient values for samples in the block can be further classified using a predefined threshold. For example, for blocks with sums of gradients smaller than the threshold, model set 0 is used; otherwise, model set 1 is used.
[0077] In another example, the template area can be divided into 2x2 blocks. By representing a reconstruction sample at (x, y) as R [x] [y] , the sum of each block can be calculated as (R [x] [y] +R [x+1] [y] + R [x] [y+1] + R [x+1] [y+1] ) . The sum of reconstruction in the block can be further classified using a predefined threshold. For the blocks with sums smaller than the threshold, model set 0 is used; otherwise, model set 1 is used.
[0078] In another example, the template area can be divided into 2x2 blocks. The sum of absolute values for residuals from a 4x4 region in and around the block can be further classified using a predefined threshold. For template areas with sums smaller than the threshold, model set 0 is used; otherwise, model set 1 is used.
[0079] In the above embodiment, the 2x2 block can be replaced by one sample and / or the number of model sets can be increased from 2 to any integer number greater than or equal to 2.
[0080] Any of the foregoing proposed methods can be implemented in encoders and / or decoders. For example, any of the proposed methods of refining reference samples in a template area by using a matrix-based refinement model can be implemented in intra / inter prediction module of an encoder and / or a decoder. Alternatively, any of the proposed methods can be implemented as a circuit coupled to intra / inter module of the encoder and / or the decoder. With reference to the exemplary video encoder / decoder in Fig. 1A and Fig. 1B, any of the proposed methods can be implemented in an Intra / Inter coding module (e.g. Intra Pred. 150 / MC 152 in Fig. 1B) in a decoder or an Intra / Inter coding module is an encoder (e.g. Intra Pred. 110 / Inter Pred. 112 in Fig. 1A) . While the Intra / Inter Pred. units (e.g. unit 110 / 112 in Fig. 1A and unit 150 / 152 in Fig. 1B) are shown as individual processing units, they may correspond to executable software or firmware codes stored on a media, such as hard disk or flash memory, for a CPU (Central Processing Unit) or programmable devices (e.g. DSP (Digital Signal Processor) or FPGA (Field Programmable Gate Array) ) .
[0081] Fig. 6 illustrates a flowchart of an exemplary video coding system that uses matrix-based model to refine reference samples in a template area and the refined reference samples are further used to derive intra prediction according to an embodiment of the present invention. The steps shown in the flowchart may be implemented as program codes executable on one or more processors (e.g., one or more CPUs) at the encoder side. The steps shown in the flowchart may also be implemented based on hardware such as one or more electronic devices or processors arranged to perform the steps in the flowchart. According to the method, input data associated with a current block is received in step 610, wherein the input data comprise pixel data to be encoded at an encoder side or data associated with the current block to be decoded at a decoder side. A template area for the current block is determined in step 620. A target matrix-based refinement model is determined in step 630, wherein the target matrix-based refinement model comprises a refinement model input and a weight matrix, and the refinement model input comprises reconstructed samples in the template area. Refined reference samples in the template area are generated by multiplying the refinement model input with the weight matrix in step 640. Intra prediction is generated using the refined reference samples in step 650. The current block is encoded or decoded using the intra prediction in step 660.
[0082] The flowchart shown is intended to illustrate an example of video coding according to the present invention. A person skilled in the art may modify each step, re-arranges the steps, split a step, or combine steps to practice the present invention without departing from the spirit of the present invention. In the disclosure, specific syntax and semantics have been used to illustrate examples to implement embodiments of the present invention. A skilled person may practice the present invention by substituting the syntax and semantics with equivalent syntax and semantics without departing from the spirit of the present invention.
[0083] The above description is presented to enable a person of ordinary skill in the art to practice the present invention as provided in the context of a particular application and its requirement. Various modifications to the described embodiments will be apparent to those with skill in the art, and the general principles defined herein may be applied to other embodiments. Therefore, the present invention is not intended to be limited to the particular embodiments shown and described, but is to be accorded the widest scope consistent with the principles and novel features herein disclosed. In the above detailed description, various specific details are illustrated in order to provide a thorough understanding of the present invention. Nevertheless, it will be understood by those skilled in the art that the present invention may be practiced.
[0084] Embodiment of the present invention as described above may be implemented in various hardware, software codes, or a combination of both. For example, an embodiment of the present invention can be one or more circuit circuits integrated into a video compression chip or program code integrated into video compression software to perform the processing described herein. An embodiment of the present invention may also be program code to be executed on a Digital Signal Processor (DSP) to perform the processing described herein. The invention may also involve a number of functions to be performed by a computer processor, a digital signal processor, a microprocessor, or field programmable gate array (FPGA) . These processors can be configured to perform particular tasks according to the invention, by executing machine-readable software code or firmware code that defines the particular methods embodied by the invention. The software code or firmware code may be developed in different programming languages and different formats or styles. The software code may also be compiled for different target platforms. However, different code formats, styles and languages of software codes and other means of configuring code to perform the tasks in accordance with the invention will not depart from the spirit and scope of the invention.
[0085] The invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described examples are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
Claims
1.A method of video coding, the method comprising:receiving input data associated with a current block, wherein the input data comprise pixel data to be encoded at an encoder side or data associated with the current block to be decoded at a decoder side;determining a template area for the current block;determining a target matrix-based refinement model, wherein the target matrix-based refinement model comprises a refinement model input and a weight matrix, and the refinement model input comprises reconstructed samples in the template area;generating refined reference samples in the template area by multiplying the refinement model input with the weight matrix;generating intra prediction using the refined reference samples; andencoding or decoding the current block using the intra prediction.2.The method of Claim 1, wherein the refinement model input comprises at least one additional input term in addition to the reconstructed samples in the template area.3.The method of Claim 2, wherein said at least one additional input term comprises one or more gradient values derived from reconstruction, prediction or residual values in the template area.4.The method of Claim 3, wherein the current block comprises a first-colour component and a second-colour component, and said one or more gradient values for the first-colour component are derived from a first-colour template for the first-colour component or from a collocated area for the second-colour component.5.The method of Claim 1, wherein the refinement model input comprises one or more residual values in the template area.6.The method of Claim 1, wherein the current block comprises multiple colour components, the refinement model input comprises reconstruction, prediction, or residual values of any component in the template area.7.The method of Claim 1, wherein a non-linear operation or an activation function is applied to the refinement model input to derive the refined reference samples, and wherein the non-linear operation comprises minimum, maximum, or clipping, and the activation function comprises ReLU (Rectified Linear Unit) , Sigmoid, Leaky ReLU, or hyperbolic tangent.8.The method of Claim 1, wherein one or more position terms are used as additional inputs to the refinement model input to generate the refined reference samples.9.The method of Claim 1, wherein a plurality of matrix-based refinement models is generated and the target matrix-based refinement model is selected from the plurality of matrix-based refinement models according to one or more implicit or explicit constraints.10.The method of Claim 9, wherein said one or more implicit constraints comprise intra mode, MIP (Matrix-weighted Intra Prediction) mode or QP (Quantization Parameter) value of the current block, or width or height of picture containing the current block.11.The method of Claim 9, wherein said one or more explicit constraints are signalled or parsed in a slice, picture, CTU (Coding Tree Unit) , CU (Coding Unit) or PU (Prediction Unit) level.12.The method of Claim 1, wherein the refinement model input, refinement model output or both are clipped.13.The method of Claim 12, wherein a clipping range for clipping the refinement model input, the refinement model output or both is signalled or parsed in a PU (Prediction Unit) , CU (Coding Unit) , CTU (Coding Tree Unit) , slice, picture, or sequence level.14.The method of Claim 12, wherein a clipping range for clipping the refinement model input, the refinement model output, or both is pre-defined in the encoder side or the decoder side.15.The method of Claim 12, wherein a clipping range for clipping the refinement model input, the refinement model output, or both is derived from reconstruction, prediction, residual values in the template area or on a collocated area when the current block is a multi-colour block.16.The method of Claim 12, wherein the refinement model input, the refinement model output, or both are clipped according to a function, and wherein the function comprises ReLU (Rectified Linear Unit) , sigmoid, or polynomial function.17.The method of Claim 1, wherein the template area is divided into multiple blocks, and each block is classified into one of multiple classes based on one or more values calculated using reconstruction, prediction, or residual values within each block.18.The method of Claim 17, wherein said one or more values comprise a sum of reconstruction values in each block or an absolute sum of residual values in each block.19.The method of Claim 17, wherein multiple refinement models are used for multiple classes.20.An apparatus of video coding, the apparatus comprising one or more electronics or processors arranged to:receiving input data associated with a current block, wherein the input data comprise pixel data to be encoded at an encoder side or data associated with the current block to be decoded at a decoder side;determining a template area for the current block;determining a target matrix-based refinement model, wherein the target matrix-based refinement model comprises a refinement model input and a weight matrix, and the refinement model input comprises reconstructed samples in the template area;generating refined reference samples in the template area by multiplying the refinement model input with the weight matrix;generating intra prediction using the refined reference samples; andencoding or decoding the current block using the intra prediction.
Citation Information
Patent Citations
Method and apparatus for intra prediction with multiple weighted references
EP3422718A1
Multiple reference intra prediction using variable weights
EP3606069A1
Multi-stage block coding
US20210243455A1
Intra prediction method and apparatus in image coding system
US20220038691A1