Encoding / decoding video picture data
By detecting and segmenting changes in the reference samples of the video frame analysis template, and using weighted values to form a cross-component prediction model, the problem of low encoding and decoding efficiency caused by inconsistencies in cross-component content is solved, and more efficient video frame encoding and decoding is achieved.
Patent Information
- Application Number
- CN202480072898.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-12-19
- Filing Date
- 2024-01-17
- Publication Date
- 2026-06-26
AI Technical Summary
In existing technologies, cross-component prediction models suffer from low encoding and decoding efficiency due to inconsistencies in cross-component content. In particular, when the texture or lighting conditions around the boundaries of video frame blocks change, the blind selection of L-shaped templates leads to low prediction efficiency.
By detecting and analyzing changes in the reference samples of the template, it is divided into multiple reference sample subsets. Each subset is then weighted based on a weighted value to form a cross-component prediction model. The optimal prediction model is then determined using the activation information.
It improves the efficiency of cross-component prediction, optimizes the video image encoding and decoding process, and enhances encoding efficiency and decoding quality.
Smart Images

Figure CN122295938A_ABST
Abstract
Description
Cross-references to related applications
[0001] This application is based on and claims priority to European Patent Application No. 23307259.4, filed on 19 December 2023, the entire contents of which are incorporated herein by reference. Technical Field
[0002] This application generally relates to video image encoding and decoding. In particular, but not exclusively, the technical field of this application relates to cross-component prediction of chroma blocks in video images. Background Technology
[0003] This section is intended to introduce the reader to various aspects of the art that may relate to aspects of at least one exemplary embodiment of the present application described below and / or claimed. This detailed description is intended to provide background information to facilitate a better understanding of the various aspects of the present application. Therefore, it should be understood that these statements should be interpreted in this light rather than as an admission of prior art.
[0004] In existing technologies, the linear parameters of cross-component prediction models are derived from reference samples of an L-shaped template surrounding the current block. Cross-component inconsistency refers to a phenomenon where chroma prediction tools rely on an assumed correlation with the luminance component, based on a predefined pixel neighborhood (i.e., a template). Within this pixel neighborhood, the texture may locally vary, weakening the correlation in certain areas. Therefore, due to cross-component inconsistency, continuing to rely on those low-correlation regions for prediction leads to encoding / decoding inefficiency. Cross-component content inconsistency may occur, for example, when one or both of the texture or lighting conditions around the boundary of the current block change, or when outliers appear in the samples or when sharpness is excessive, etc. When cross-component content inconsistency occurs, the blind selection of the L-shaped template can cause inefficiency in cross-component prediction models, i.e., applying the cross-component prediction model to samples of the current block becomes suboptimal.
[0005] Figure 1 This example illustrates how object boundaries in a video frame can introduce cross-component content inconsistencies. It can be seen that the current block of the video frame is scaled, and regions with cross-component content inconsistencies appear in the samples of the upper-left and left-side portions of the L-shaped template of the current block. Because the object occupies samples in both the current block and the top of the current block, the samples of the luma (Y) and chroma (Cb, Cr) blocks have more content similarity to the top portion of the L-shaped template than to the upper-left and left-side portions.
[0006] Deriving linear parameters for a cross-component prediction model that takes into account content inconsistencies across components will improve cross-component prediction efficiency.
[0007] In view of the above, at least one exemplary embodiment of this application has been designed. Summary of the Invention
[0008] The following section provides a brief overview of at least one embodiment to provide a basic understanding of some aspects of this application. This summary is not an exhaustive overview of exemplary embodiments. Its purpose is not to identify key or essential elements of the exemplary embodiments. The following summary presents only some aspects of at least one exemplary embodiment in a simplified form, serving as a prelude to a more detailed description provided elsewhere in this document.
[0009] According to a first aspect of this application, a method for cross-component prediction of chroma blocks in a video frame is provided, the video frame including a luminance component and at least one chroma component, the method comprising: - Obtain an analysis template, the analysis template including a reference sample as a reconstructed luminance sample of the co-position luminance block of the chroma block and a reference sample of a model template, the model template including chroma samples in a chroma L-shaped template around the chroma block and corresponding reference samples as reconstructed luminance samples in a luminance L-shaped template defined around the co-position luminance block of the chroma block; - Detect at least one change in the reference sample of the analysis template, each change in the reference sample indicating that the content in the reference sample of the analysis template is inconsistent across components; - Based on at least one detected change in the reference samples of the analysis template, the reference samples of the analysis template are segmented into at least two reference sample subsets; -Weighted reference samples of the model template are obtained by weighting the reference samples of a subset of the analysis template belonging to the model template with weighted values, and each weighted value indicates the content consistency between the reference samples of a subset belonging to at least one subset of the model template and the reconstructed samples of the co-occurrence luminance block of the analysis template. - Determine at least one cross-component prediction model based on the weighted reference samples in the model template; and -Predict the chromaticity block based on at least one determined cross-component prediction model.
[0010] In some embodiments, a single cross-component prediction model is determined from all weighted reference samples, or a cross-component prediction model is determined for each subset based on weighted reference samples corresponding to reference samples belonging to a single subset of the model template.
[0011] In some embodiments, detecting at least one change in a reference sample of the analysis template includes applying an edge detection filter to the reference sample of the analysis template, and detecting a change in the reference sample of the analysis template when an edge is detected in the reference sample of the analysis template.
[0012] In some embodiments, detecting at least one change in a reference sample of the analysis template further includes calculating the edge intensity of at least one detected edge.
[0013] In some embodiments, detecting at least one change in the reference sample of the analysis sample further includes dividing the reference sample of the model template and / or the reference sample of the analysis template.
[0014] In some embodiments, detecting at least one change in the reference sample of the analysis template further includes block partitioning and filtering of the reference sample of the model template.
[0015] In some embodiments, detecting at least one change in the reference sample of the analysis template further includes modifying the reference sample of the analysis template.
[0016] In some embodiments, detecting at least one change in the reference sample of the analysis template further includes modifying the reconstructed chromaticity sample of the chromaticity block and / or the chromaticity L-shaped template surrounding the chromaticity block.
[0017] In some embodiments, the weighting value is obtained by comparing the reconstructed luminance samples in the model template with the reconstructed luminance samples of the co-located luminance blocks in the analysis template.
[0018] In some embodiments, a single weighted value is assigned to a subset, and the single weighted value is assigned to each reference sample of the subset.
[0019] In some embodiments, the method further includes signaling an enabling information that indicates the determination of the at least one cross-component prediction model based on a weighted reference sample.
[0020] In some embodiments, it is determined whether to enable the determination of the at least one cross-component prediction model based on weighted reference samples, based on chromaticity or co-location block features.
[0021] According to a second aspect of this application, a method for encoding video frame data is provided, the method comprising the method according to the first aspect of this disclosure.
[0022] According to a third aspect of this application, a method for decoding video image data is provided, the method comprising the method according to the first aspect of this disclosure.
[0023] According to a fourth aspect of this application, an apparatus is provided comprising means for performing one of the methods according to the first, second and / or third aspects of this disclosure.
[0024] According to a fifth aspect of this application, a computer program product is provided, comprising instructions that, when the program is executed by one or more processors, cause the one or more processors to perform the methods according to the first, second, and / or third aspects of this disclosure.
[0025] According to a sixth aspect of this application, a non-transient storage medium is provided, which carries instructions for executing program code according to the first, second and / or third aspects of this disclosure.
[0026] The specific nature of at least one exemplary embodiment, as well as other objects, advantages, features, and uses of the at least one exemplary embodiment, will become apparent from the following description of the examples taken in conjunction with the accompanying drawings.
[0027] Brief description of the attached figures Reference will now be made to the accompanying drawings, which illustrate exemplary embodiments of this application, wherein: Figure 1 This illustrates how object boundaries in a video frame can introduce inconsistencies across components; Figure 2 An example of a codec tree unit based on HEVC is shown; Figure 3 An example of dividing encoding / decoding units into prediction units according to HEVC is shown; Figure 4 An example of CTU partitioning based on VVC is shown; Figure 5 Examples of the splitting patterns supported in multi-type tree partitioning based on VVC are shown; Figure 6 A schematic block diagram of a method 100 for encoding a video frame VP according to the prior art is shown; Figure 7 A schematic block diagram of a method 200 for decoding a video frame VP according to the prior art is shown; Figure 8 An example of a chromaticity and luminance L-shaped template for deriving the linear parameters α and β of a CCLM according to existing techniques is shown; Figure 9 An example of a Sobel filter mode according to the prior art is shown; Figure 10 An example of adjacent reference samples according to the prior art is shown; Figure 11 An example of a chromatic L-shaped template around a chromaticity block according to the prior art is shown; Figure 12 An example of a non-downsampled brightness sample used in CCCM according to the prior art is shown; Figure 13 A block diagram of a cross-component prediction method 300 for video chroma blocks according to at least one exemplary embodiment of the present disclosure is shown; Figure 14 An example of a reference sample set corresponding to chromaticity blocks of a YCbCr video frame is shown according to at least one exemplary embodiment of the present disclosure; Figure 15 An illustrative example of a method 300 according to an exemplary embodiment of the present disclosure is shown; Figure 16 An example of a reference sample set for detecting changes (edges) according to an exemplary embodiment of this disclosure is shown; Figure 17 An example of a reference sample set for detecting changes (edges) according to an exemplary embodiment of this disclosure is shown; Figure 18 An example of signaling to enable information according to an exemplary embodiment of this disclosure is shown; Figure 19 An example is shown of signaling a weighted value when an enable message is active and indicates that CCLM is enabled, according to an exemplary embodiment of the present disclosure; Figure 20 A block diagram of a system example is shown, in which various aspects and exemplary embodiments are implemented.
[0028] Similar or identical elements are indicated by the same reference numerals.
[0029] Description of exemplary embodiments At least one exemplary embodiment will be described more fully below with reference to the accompanying drawings, which depict examples of at least one exemplary embodiment. However, exemplary embodiments may be embodied in various alternative forms and should not be construed as limited to the examples described herein. Therefore, it should be understood that this application is not intended to limit exemplary embodiments to the specific forms disclosed. Rather, this application is intended to cover all modifications, equivalents, and alternatives falling within the spirit and scope of this application.
[0030] At least one of these aspects relates generally to the encoding and decoding of video images, another generally relates to the transmission of bitstreams provided or encoded, and yet another relates to the reception / access of decoded bitstreams.
[0031] At least one exemplary embodiment for encoding / decoding video frames is described, but it is extended to the encoding / decoding of video frames (frame sequences) since each video frame is encoded / decoded in the order described below.
[0032] At least one exemplary embodiment is described in the context of the MPEG standard, but it is not limited to MPEG standards such as AVC (ISO / IEC 14496-10 Advanced Video Coding for generic audio-visual services, ITU-T Recommendation H.264). https: / / www.itu.int / rec / T-REC-H.264-202108-P / en) EVC (ISO / IEC 23094-1 Essential Video Coding), HEVC (ISO / IEC 23008-2 HighEfficiency Video Coding, ITU-T Recommendation H.265, https: / / www.itu.int / rec / T-REC-H.265-202108-P / en), VVC (ISO / IEC 23090-3 Versatile Video Coding, ITU-T Recommendation H.266, https: / / www.itu.int / rec / T-REC-H.266-202008-I / en), and can also be applied to other standards and recommendations, such as AV1 (AOMedia Video 1, http: / / aomedia.org / av1 / specification / ). Furthermore, at least one exemplary embodiment is not limited to the ongoing standardization activities of JVET, and is called the Enhanced Compression Model (ECM, Algorithm Description of the Enhanced Compression Model). The architecture of the ECM is almost entirely based on VVC, except that it integrates several newly introduced tools.
[0033] At least one exemplary embodiment can be applied to existing or future developments, as well as any such standard and recommended extensions. Unless otherwise stated or technically excluded, the aspects described in this application can be used alone or in combination.
[0034] A pixel corresponds to the smallest display unit on a screen, and it can consist of one or more light sources (one for a monochrome screen and three or more for a color screen).
[0035] A video frame, also known as a frame or video frame, includes at least one component (also known as a frame component or channel) defined by a specific video / video format that specifies all information related to pixel values and all information that a display unit and / or any other device can use to display and / or decode video frame data related to the video frame.
[0036] The video frame includes at least one component, which is typically represented as an array of samples.
[0037] Monochrome video footage consists of a single component, while color video footage can consist of three components.
[0038] For example, when the picture / video format is the well-known (Y,Cb,Cr) format, a color video picture can include a luminance component (Y) and two chrominance components (Cb, Cr), or an equivalent luminance component (Y') and two chrominance components (Cb, Cr). Note that the luminance component Y' can be derived by applying gamma correction to the luminance component Y. When the picture / video format is the well-known (R,G,B) format, a color picture can also include three color components (one for red, one for green, and one for blue).
[0039] Each component of a video frame may include a number of samples relative to the number of pixels on the screen on which the video frame will be displayed. In variations, the number of samples included in a component may be a multiple (or fraction) of the number of samples contained in another component of the same video frame.
[0040] For example, in video formats that include a luma component and two chroma components (such as the (Y,Cb,Cr) format), depending on the color format under consideration, the chroma component may contain half the number of samples relative to the luma component in width and / or height.
[0041] The YCbCr color space is a family of color spaces used in digital photography and video systems. It is defined by mathematical coordinate transformations from the relevant RGB primary colors and the white point.
[0042] In the context of video compression, the YCbCr color space is used to reduce the amount of data required to display video images while maintaining a high level of visual quality. This is achieved by separating the luminance information (Y) from the chrominance information (Cb and Cr) and then applying different compression techniques to each component.
[0043] In video compression, chroma subsampling is a technique used to reduce the amount of data required to display a video image while maintaining a high level of visual quality. Chroma subsampling is achieved by separating luminance information (Y') from chrominance information (Cb and Cr) and then applying different compression techniques to each component. The Y' component is typically compressed using lossless compression techniques, while the Cb and Cr components are compressed using lossy compression techniques. This method is effective because the human eye is more sensitive to changes in luminance than to changes in chrominance. Several chroma subsampling formats exist, including 4:4:4, 4:2:2, and 4:2:0. In the 4:4:4 format, there is no subsampling, and all information from both luminance and chrominance data is displayed completely. In a 4x2 pixel array, the chrominance of 4:2:2 is half that of 4:4:4, while the color information of 4:2:0 is one-quarter available. A 4:2:2 signal will have half the sampling rate horizontally but will remain fully sampled vertically. On the other hand, 4:2:0 will sample color only from half of the pixels in the first row and completely ignore the samples in the second row.
[0044] At least one exemplary embodiment is described by considering the YCbCr format 4:2:0, but at least one exemplary embodiment is not limited to a particular picture / video format.
[0045] A sample is the smallest unit of visual information that makes up a video frame. A sample can be, for example, a luminance or chrominance sample or a color sample in (R, G, B) format.
[0046] In the following text, a luminance sample is defined as the value of the luminance component (or equivalent luminance (Y) component) of a video image, and a chrominance sample is defined as the value of the chrominance component (Cb or Cr).
[0047] A pixel value is the value of a pixel on the screen. A pixel value can be represented by a single sample of a monochrome video frame and by multiple co-located samples of a color video frame. A co-located sample associated with a pixel means a sample corresponding to the position of the pixel on the screen.
[0048] Video frames are typically viewed as a set of pixel values, with each pixel represented by at least one sample.
[0049] A video frame block is a set of samples of one component of the video frame. A luminance block is a set of at least one luminance sample, and a luminance block is a set of at least one chrominance sample. When the frame / video format is a well-known (Y,Cb,Cr) or (Y',Cb,Cr) format, either luminance or chrominance blocks can be considered, or when the frame / video format is a well-known (R, G, B) format, a block of at least one color sample can be considered.
[0050] In the prior art, video compression systems such as HEVC or VVC with low-level and high-level screen partitioning are provided to divide the video screen into screen areas called codec tree units (CTUs). For HEVC, the size of a CTU is usually between 16x16 and 64x64 pixels, while for VVC it is between 32x32, 64x64, or 128x128 pixels.
[0051] The CTU (Central Unit) division of a video frame forms a grid of fixed-size CTUs, known as the CTU grid. Its upper and left boundaries spatially coincide with the top and left boundaries of the video frame. The CTU grid represents the spatial partitioning of the video frame.
[0052] In VVC and HEVC, the CTU size (CTU width and CTU height) of all CTUs in the CTU mesh is equal to the same default CTU size (default CTU width CTU DW and default CTU height CTU DH). For example, the default CTU size (default CTU height, default CTU width) can be equal to 128 (CTU DW = CTU DH = 128). The default CTU size (height, width) is encoded into the bitstream, for example, at the sequence level of the Sequence Parameter Set (SPS).
[0053] The spatial location of a CTU within the CTU grid is determined by its CTU address ctuAddr, which defines the spatial position of the CTU's top-left corner, starting from the origin. For example... Figure 2 As shown, the CTU address can define the spatial location starting from the top left corner of the high-level spatial structure S containing the CTU.
[0054] The codec tree is associated with each CTU to determine the tree partitioning of the CTU.
[0055] like Figure 2 As shown, in HEVC, the codec tree is a quadtree partition of the CTU, where each node is called a Codec Unit (CU). The spatial location of a CU in the video frame is defined by the CU index cuIdx, which indicates the spatial location starting from the top left corner of the CTU. A CU is spatially divided into one or more Prediction Units (PUs). The spatial location of a PU in the video frame VP is defined by the PU index puIdx, which defines the spatial location starting from the top left corner of the CTU. The spatial location of the elements of a partitioned PU is defined by the PU partition index puPartIdx, which defines the spatial location starting from the top left corner of the PU. Each PU is assigned some intra-frame or inter-frame prediction data.
[0056] The intra-frame or inter-frame codec mode is assigned at the CU level. This means that the same intra-frame / inter-frame codec mode is assigned to each PU of the CU, although the prediction parameters vary from PU to PU.
[0057] A CU (Cubic Containment Unit) can also be spatially divided into one or more Transform Units (TUs) based on a quadtree known as a transform tree. A transform unit is a leaf of the transform tree. The spatial location of a TU in the video frame is defined by the TU index tuIdx, which defines the spatial location starting from the top left corner of the CU. Each TU is assigned a number of transform parameters. The transform type is assigned at the TU level and is performed individually at the TU level during the encoding or decoding of a frame block.
[0058] The PU partition types that exist in HEVC are as follows: Figure 3 As shown. These include: square partitions (2Nx2N and NxN), which are the only partitions used in both intra-frame and inter-frame prediction CUs; symmetric non-square partitions (2NxN, Nx2N, used only for inter-frame prediction CUs); and asymmetric partitions (used only for intra-frame prediction CUs). For example, PU type 2NxnU represents an asymmetric horizontal partition of the PU, where the smaller partition is located at the top of the PU. According to another example, PU type 2NxnL represents an asymmetric horizontal partition of the PU, where the smaller partition is located at the top of the PU.
[0059] like Figure 4 As shown, in VVC, the codec tree begins at the root node, the CTU. Next, a quadtree (or quaternion tree) partition divides the root node into four nodes, corresponding to four equal-sized sub-blocks (solid lines). The leaves of the quadtree (or quaternion tree) can then be further partitioned by what is known as a multi-type tree, which involves... Figure 5 The diagram shows one of four segmentation patterns: a binary or ternary segmentation. These segmentation types are vertical and horizontal binary segmentation patterns (denoted as SBTV and SBTH), and vertical and horizontal ternary segmentation patterns SPTTV and STTH.
[0060] In the case of a joint codec tree where luminance and chrominance components share a common codec tree, the leaf of the CTU's codec tree is the CU.
[0061] In contrast to HEVC, in VVC, the CU, PU, and TU are of equal size in most cases, which means that codec units are usually not divided into PUs or TUs, except in certain specific codec modes.
[0062] Figure 6 and Figure 7 This provides an overview of the video encoding / decoding methods used in current video standard compression systems (such as HEVC or VVC, for example).
[0063] Figure 6 A schematic block diagram of a method 100 for encoding a video frame VP according to the prior art is shown.
[0064] In step 110, the video frame VP is divided into sample blocks, and the division information data is signaled to the bitstream. Each block includes a sample of one component of the video frame VP. Therefore, these blocks include samples that define each component of the video frame VP.
[0065] For example, in HEVC, the frame is divided into codec tree units (CTUs). Each CTU can be further subdivided using a quadtree partition, where each leaf of the quadtree represents a codec unit (CU). The partition information data can include data describing the CTUs and the quadtree subdivisions of each CTU.
[0066] In a short block, each sample block can be a CU (if the CU includes a single PU) or a PU of the CU.
[0067] Each block is encoded using intra-frame or inter-frame prediction modes along a coding loop also known as "in loop".
[0068] Intra-frame prediction (step 120) uses intra-frame prediction data. Intra-frame prediction involves predicting the current block based on intra-frame prediction blocks of encoded, decoded, and reconstructed samples located around the current block (typically on top and to the left of the current block). Intra-frame prediction is performed in the spatial domain.
[0069] A reconstructed sample refers to a sample (luminance or chrominance sample) obtained after applying at least one processing step (such as preprocessing; encoding, e.g., encoding based on intra- or inter-frame prediction; decoding, e.g., encoding based on intra- or inter-frame prediction; or post-processing, e.g., post-filtering) to the original sample (luminance or chrominance sample). The reconstructed sample has undergone both prediction and residual encoding / decoding stages, therefore, at a given encoding / decoding stage, the same so-called "reconstructed" value is accessible on both the encoder and decoder sides. Furthermore, the reconstructed sample may or may not have been filtered using loop filters (e.g., deblocking, etc.).
[0070] In inter-frame prediction mode, motion estimation (step 130) and motion compensation (135) are performed. Motion estimation searches for candidate reference blocks in one or more reference video frames used for predictive coding of the current video frame to serve as good predictors for the current block. For example, a good predictor for the current block is a predictor similar to the current block. The output of motion estimation step 130 is inter-frame prediction data, which includes motion information associated with the current block (typically one or more motion vectors and one or more reference video frame indices) and other information for obtaining the same prediction block on the encoding / decoding side. Next, motion compensation (step 135) obtains the prediction block using the one or more motion vectors and one or more reference video frame indices determined by motion estimation step 130. Essentially, a block belonging to a selected reference video frame and pointed to by a motion vector can be used as the prediction block for the current block. Furthermore, since motion vectors are represented as fractions of integer pixel positions (referred to as sub-pixel precision motion vector representation), motion compensation typically involves spatial interpolation of some reconstructed samples of the reference video frames to compute the prediction block.
[0071] Prediction information data is signaled to the bitstream. Prediction information may include prediction mode (intra-frame, inter-frame, or skipped), intra-frame / inter-frame prediction data, and any other information used to obtain the same prediction CU on the decoding side.
[0072] Method 100 selects a prediction mode (intra-frame or inter-frame prediction mode) by optimizing the rate-distortion tradeoff, taking into account the encoding of the calculated prediction residual block (e.g., calculated by subtracting the candidate prediction block from the current block) and the signaling notification of the prediction information data required to determine the candidate prediction block on the decoding side.
[0073] Typically, intra-frame and inter-frame prediction modes are set from the most likely candidate mode list (MPM list), and the best prediction mode is given as the prediction mode for the current block. It is given by the following formula: (1) in It is the list of MPMs for the current block. This indicates the candidate codec modes in the MPM list. It is a candidate prediction model The rate-distortion cost is typically expressed as:
[0074] Is the current block and the candidate prediction pattern? Distortion between reconstructed blocks obtained after encoding / decoding the current block It is based on prediction patterns The rate cost associated with encoding and decoding the current block, where λ is a Lagrangian parameter representing the rate constraint for encoding and decoding the current block, and is typically calculated from the quantization parameter Qp used for decoding the current block.
[0075] The current block is typically encoded by the prediction residual block PR. More precisely, the prediction residual block PR is calculated, for example, by subtracting the best prediction block from the current block. The prediction residual block PR is then transformed using a transform of type DCT (Discrete Cosine Transform) or DST (Discrete Sine Transform) or any other suitable transform (step 140), and the resulting transform coefficient block is quantized (step 150).
[0076] In a variant, method 100 can also skip transformation step 140 according to the so-called transform skip encoding / decoding mode and apply quantization (step 150) directly to the predicted residual block PR.
[0077] The quantized transform coefficient block (or quantized prediction residual block) is entropy encoded into the bit stream (step 160).
[0078] Next, as part of the encoding loop, the quantized transform coefficient block (or quantized residual block) is dequantized (step 170) and inverse transformed (180) (or not performed) to obtain the decoded prediction residual block. The decoded prediction residual block and the prediction block are then combined (usually by summation) to provide the reconstructed block.
[0079] In step 160, other information data can also be entropy encoded to encode the current block of the video frame VP.
[0080] A loop filter (step 190) can be applied to the reconstructed image (including reconstructed blocks) to reduce compression artifacts. Loop filters can be applied after all image blocks have been reconstructed. Examples include deblocking filters, sample adaptive offset (SAO) filters, or adaptive loop filters.
[0081] The reconstructed block or the filtered reconstructed block forms a reference frame, which can be stored in the decoded frame buffer (DPB) so that it can be used as a reference frame for encoding the next current block of the video frame VP or for encoding the next video frame to be encoded.
[0082] Figure 7 A schematic block diagram of a method 200 for decoding a video frame VP according to the prior art is shown.
[0083] In step 210, partitioning information data, prediction information data, and quantization transform coefficient blocks (or quantization residual blocks) are obtained by entropy decoding of the bitstream of encoded video frame data. For example, this bitstream is generated according to method 100.
[0084] Other information data can also be entropy decoded to decode the current block of the video frame VP from the bitstream.
[0085] In step 220, the reconstructed image is divided into current blocks based on the partitioning information. Each current block is entropy decoded from the bitstream along a decoding loop, also known as "in-loop". Each decoded current block is either a quantized transform coefficient block or a quantized prediction residual block.
[0086] In step 230, the current block is dequantized and possibly inversely transformed (step 240) to obtain the decoded prediction residual block.
[0087] On the other hand, prediction information data is used to predict the current block. The predicted block is obtained through its intra-frame prediction (step 250) or its motion-compensated temporal prediction (step 260). The prediction processing performed on the decoding side is the same as the prediction processing performed on the encoding side.
[0088] Next, the decoded prediction residual block and prediction block are combined (usually by summing) to provide the reconstruction block.
[0089] In step 270, a loop filter can be applied to the reconstructed frame (including reconstructed blocks) and the reconstructed blocks or filtered reconstructed blocks to form a reference frame, which can be stored in the decoded frame buffer (DPB) as described above. Figure 6 ).
[0090] exist Figure 6 Step 130 / 135 or Figure 7 In step 260, the inter-frame prediction block is defined by inter-frame prediction data associated with the current block (CU or PU of the CU) of the video frame. This inter-frame prediction data includes motion information, which can be represented (encoded) according to either a so-called full-block-based AMVP (Adaptive Motion Vector Prediction) mode or a so-called full-block-based merging mode.
[0091] Cross-component prediction refers to the process of predicting one color component (such as a luminance or chrominance component) based on information from one color component (such as a luma or chrominance component). The basic principle behind cross-component prediction is to reduce redundancy in the video signal. Instead of encoding and decoding each color component independently, the encoder predicts one component from another and only encodes the prediction error. Specifically, for each chrominance component (Cb or Cr) block, cross-component prediction is performed by predicting luma samples reconstructed from co-bit.
[0092] One existing cross-component prediction model is the so-called cross-component linear model (CCLM) for VVC. CCLM reconstructs luminance samples based on downsampling of co-occurring luminance blocks of chrominance blocks using a linear model. Obtain the predicted chromaticity sample of the current block (CU). :
[0093] in and These are the linear parameters of a linear model.
[0094] linear parameters and The chromaticity samples are derived from the model template and reference samples. The chromaticity samples of the model template are reconstructed chromaticity samples from the L-shaped chromaticity template surrounding the chromaticity block (size NxN). The reference sample of the model template It is a downsampled reconstruction of the luminance sample from the L-shaped luminance template surrounding the co-occurrence luminance block of the chroma block (when the video format is YCbCr 4:2:0, the size is 2Nx2N). ,like Figure 8 As shown. After filtering, the reconstructed luminance samples of the luminance L-shaped template are downsampled to match the size of the chrominance blocks. More precisely, the linear parameter... and It is derived by minimizing the minimum mean square (LMS) error between the chromaticity samples of the model template and the reference samples of the model template.
[0095] VVC's CCLM was extended in ECM by adding a Multi-Model LM (MMLM) mode (Kai Zhang et al., "Enhanced Cross-component Linear Model Intra-prediction", JVET, Chengdu, CN, 15-21 oct. 2016). In MMLM, a threshold is used to classify the reference samples of the model template into two classes; this threshold is the average of the reference samples. Linear parameters of the linear model are derived for each class by minimizing the least mean square (LMS) error between the chromaticity samples of the model template and the reference samples of the model template for each class.
[0096] Sometimes, due to local variations in texture and brightness, it can be useful to exclude a portion of the model template that is less relevant to the current block (CU). A characteristic of CCLM is its limited freedom in selecting the chroma and reference samples for the model template. Specifically, in the so-called MDLM_T_IDX mode, only the top portions of the chroma L-shaped template and the brightness L-shaped template are used, and in the so-called MDLM_L_IDX mode, only the left portions of the chroma L-shaped template and the brightness L-shaped template are used.
[0097] In MDLM_T_IDX mode, the top portions of both the chroma L-shaped template and the luma L-shaped template can be expanded to (W+H) samples, where W and H represent the sizes of the luma and chroma blocks (CUs), respectively. In MDLM_L_IDX mode, the top portions of both the chroma L-shaped template and the luma L-shaped template are expanded to (W+H) samples.
[0098] In ECM, the following CCLM considers sample selection to derive the prediction of chroma blocks: • CHROMA_LM_IDX: Single-model CCLM with chroma L-shaped template and luminance L-shaped template; ·MMLM_IDX: Multi-model CCLM with chroma L-shaped template and luminance L-shaped template; •MDLM_L_IDX: Single-model CCLM, containing only the left portion of the chroma L-shaped template and the left portion of the luminance L-shaped template; ·MDLM_T_IDX: Single-model CCLM, containing only the top portion of the chroma L-shaped template and the top portion of the luminance L-shaped template; ·MMLM_L_IDX: Multi-model CCLM, with only the left portion of the L-shaped template and the left portion of the brightness L-shaped template; ·MMLM_T_IDX: Multi-model CCLM, with only the top portion of the L-shaped template and the top portion of the luminance L-shaped template.
[0099] In CCLM, linear parameters and It is derived from a maximum of four chromaticity samples of the model template and their corresponding reference samples of the model template. The number of reference samples of the model template is given by W'xH', which can be set as follows: • When applying the CHROMA_LM_IDX (or MMLM_IDX) mode, W'=W, H'=H; • When applying MDLM_T_IDX (or MMLM_T_IDX) mode, W' = W + H; • When applying MDLM_L_IDX (or MMLM_L_IDZ) mode, H' = H + W.
[0100] The position of the top reference sample in the model template can be denoted as S[0, -1] … S[W']. 1, 1], the position of the left reference sample of the model template can be denoted as S[ 1, 0 ]…S[ 1, H' 1). Using these notations, the reference sample of the model template has a position S[.] defined as follows: • When applying the CHROMA_LM_IDX (or MMLM_IDX) mode and both the top and left reference samples of the model template are available, ; • When applying MDLM_T_IDX (or MMLM_T_IDX) mode or when only the top reference sample of the model template is available, ; • When applying MDLM_L_IDX (or MMLM_L_IDX) mode or when only the left-hand reference sample of the model template is available, .
[0101] Downsample the reference samples of the model template at the selected location, and compare the downsampled reference samples of the model template together to find the two larger sample values: x 0 A and x 1 A And two smaller sample values: x 0 B and x 1 B The corresponding reconstructed chromaticity sample values are denoted as... y 0 A、 y 1 A、 y 0 B and y 1 B .
[0102] Then ,x A , x B、 y A and y B It can be exported as: x a =( x 0 A + x 1 A +1)>>1; x b =( x 0 B + x 1B +1)>>1; y a =( y 0 A + y 1 A +1)>>1; y b =( y 0 B + y 1 B +1)>>1 Finally, the linear parameters are obtained according to the following equation. and :
[0103]
[0104] Parameters are calculated using a lookup table. Division operation.
[0105] This parameter export is performed as part of the encoding and decoding of the current block. Therefore, the values of the linear parameters α and β are not passed to the decoder using syntax.
[0106] To match the chroma sample positions of the 4:2:0 video sequence, two downsampling filters were applied to the reference samples to achieve a 2:1 downsampling rate in both the horizontal and vertical directions. The selection of the downsampling filters was specified by the SPS (Sequence Parameter Set) level flag. The two downsampling filters are as follows, corresponding to "Type 0" and "Type 2" respectively:
[0107]
[0108] Where i and j are the indices of pixels on the x and y axes, respectively.
[0109] Another existing cross-component prediction model is the Gradient Linear Model (GLM). GLM is a variant of CCLM. Specifically, for the YUV 4:2:0 color format, GLM can be used to predict the chromaticity samples of a model template from the gradient of a reference sample (reconstructing the luminance sample gradient). Two modes are supported: a two-parameter-based GLM mode and a three-parameter-based GLP mode.
[0110] In a two-parameter-based GLM, the reference sample gradient of the model template is calculated for each reference sample (i,j) of the brightness L-shaped template. The linear parameters are derived by minimizing the minimum mean square (LMS) error between the gradients of the chromaticity samples of the model template and the gradients of the reference samples of the model template. and The predicted chromaticity samples are given by using a linear model. :
[0111] In a three-parameter-based GLM, a linear model is used to provide the predicted chromaticity samples. :
[0112] Using the LDL decomposition-based MSE minimization method described below in CCCM, linear parameters of the three-parameter GLM are derived from 6 rows and 6 columns of adjacent samples. and .
[0113] GLM employs four Sobel-based gradient filters to compute the gradient of the reference samples for the model template. The gradient filter mode is as follows: Figure 9 As shown.
[0114] For signaling, when the current block (CU) has CCLM mode enabled, a flag is used to indicate whether GLM is enabled for the chroma components. If GLM is enabled, another flag is signaled to indicate which of the two-parameter-based GLM and the three-parameter-based GLP is selected, and a syntax element is further signaled to select one of the four Sobel-based gradient filters.
[0115] Another existing cross-component prediction model is the Convolutional Cross-Component Model (CCCM). CCCM can be applied to the downsampling reconstruction of luminance samples based on co-located luminance blocks of chrominance blocks. To obtain the predicted chromaticity samples of the chromaticity blocks Its spirit is similar to that of CCLM. Like CCLM, the chroma samples of the model template are reconstructed chroma samples from the chroma L-shaped template around the chroma blocks, while the reference samples of the model template are defined as downsampled reconstructed luminance samples from the luminance L-shaped template around the co-occurrence luminance blocks. Similar to CCLM above, the left or top and left portions of the L-shaped template are used as templates for deriving CCLM model parameters. Furthermore, similar to CCLM, a single-model or multi-model variant can be selected. The multi-model variant uses two models: a linear model whose linear parameters are derived from the reference samples of the model template below the average value of the model template reference samples, and another linear model whose linear parameters are derived from the remaining reference samples of the model template (following the spirit of CCLM design).
[0116] CCCM includes a 7-tap convolutional filter, which consists of a 5-tap spatial term with a sign shape, a nonlinear term P, and a bias term B. The input to the filter's 5-tap spatial term consists of a reference sample C of the model template (this reference sample C is a co-located reconstructed luminance sample of the chrominance sample to be predicted) and its adjacent reference samples at top / north (N), bottom / south (S), left / west (W), and right / east, as shown below. Figure 10 As shown. The nonlinear term P is represented as a second power of the reference sample C, scaled to the range of sample values in the video content:
[0117] In other words, for 10-bit video content, the calculation is as follows:
[0118] The deviation term B represents the scalar offset between the input and output (similar to the linear parameter (offset term) in CCLM). ), and was set to an intermediate chroma value (512 for 10-bit content).
[0119] The output of the convolutional 7-tap filter is calculated as 7 filter coefficients c. i The convolution of (the linear parameters of CCCM) with the 5 input reference samples N, S, E, W, and C, as well as the nonlinear term P and the bias term B: predChromaVal = c0C + c1N + c2S + c3E + c4W + c5P + c6B The output of the 7-tap convolution filter is limited to the range of the effective chroma samples.
[0120] The filter coefficients c are derived by minimizing the MSE error between the chromaticity samples of the model template and the reference samples of the model template. i .
[0121] Figure 11 An example of a chroma L-shaped template around a chroma block according to prior art is shown. The chroma samples of the chroma L-shaped template around the chroma block are chroma samples of the model template. In this example, the chroma L-shaped template includes chroma samples located in the top 6 rows and the left 6 columns. The chroma L-shaped template extends to the right by one chroma block width and extends below the chroma block boundary by one chroma block height. The chroma L-shaped template is adjusted to include only the available reconstructed chroma samples. The extension of the chroma L-shaped template requires "side samples" to support the plus-space filter and fills in unavailable areas.
[0122] In single-model CCCM, whether to use 6 rows or 2 rows of chroma samples to derive CCCM model parameters depends on the template cost (ECM Section 3.1.13.2). Similarly, for multi-model CCCM, both models use 6 rows of luma samples to derive the average, which divides the samples into two classes. The cost is derived by applying candidate CCPs (2 or 6 rows) to the luma L-shaped template (ECM Section 3.1.15); calculating the sum of absolute differences (SAD) between the CCP prediction samples (ECM Section 3.1.15) and the reference samples in the luma L-shaped template. MSE minimization is performed by calculating the autocorrelation matrix of the luma input (reference sample) and the cross-correlation vector between the luma input and the chroma output (chroma sample). The autocorrelation matrix is decomposed using LDL (https: / / en.wikipedia.org / wiki / Cholesky_decomposition#LDL_decomposition), and back-substitution is used to compute the final filter coefficients. This process roughly follows the computation of ALF filter coefficients in ECM. However, to avoid using square root operations, LDL decomposition was chosen instead of Cholesky decomposition. The autocorrelation matrix is calculated using reconstructed values from chroma samples of the model template and reference samples. These samples are full-range (e.g., between 0 and 1023 for 10-bit content), resulting in relatively large values in the autocorrelation matrix. This necessitates high-bit depth operations during model parameter derivation. A proposal has been made to remove fixed offsets from the luma and chroma samples in each CU of each model. This reduces the magnitude of the values used in model creation and allows for a reduction in the precision required for fixed-point arithmetic. Therefore, 16-bit decimal precision is proposed instead of the 22-bit precision in the original CCCM implementation. For simplicity, luma and chroma reference samples located just outside the top-left corner of the CU are used as offsets (offsetLuma, offsetCb, and offsetCr). The chroma and luma sample values used in model creation and final prediction (i.e., luma and chroma in the reference region and luma in the current PU) are reduced by these fixed values as follows: C' = C – offsetLuma N' = N – offsetLuma S' = S – offsetLuma E' = E – offsetLuma W' = W – offsetLuma P' = nonLinear(C') B = midValue = 1<<(bitDepth - 1) The following equations are used to predict chromaticity values, where offsetChroma equals offsetCr for the Cr component and offsetChroma equals offsetCb for the Cb component: predChromaVal = c0C' + c1N' + c2S' + c3E' + c4W' + c5P' + c6B +offsetChroma To avoid any additional sample-level computations, the luminance offset is removed during luminance reference sample interpolation. This can be achieved, for example, by replacing the rounding term used in luminance reference sample interpolation with an updated offset that includes the rounding term and offsetLuma. The chrominance offset can be removed by directly subtracting it from the reference chrominance sample. As an alternative, the effect of the chrominance offset can be removed from the cross-component vectors, yielding the same result. To add the chrominance offset back to the output of the convolution prediction operation, the chrominance offset is added to the bias term of the convolution model.
[0123] The CCCM model parameter derivation process requires division operations. Division operations are not always considered advantageous for implementation. Multiplication (with a scaling factor) and shift operations are used instead, where the scaling factor and the number of shifts are calculated based on common characteristics similar to those used in calculating CCLM parameters.
[0124] Alternatively, a CCCM using a 3x2 filter with unsampled luminance samples can be used. The CCCM using a 3x2 filter with unsampled luminance samples consists of a 6-tap spatial term, four nonlinear terms, and a bias term. The 6-tap spatial term corresponds to the 6 reference samples (i.e., C) surrounding the chrominance sample to be predicted (i.e., C). Figure 9 of L 0 、L 1 、…、 L 5 ), The four nonlinear terms are derived from the brightness samples. L 0 、L 1 、L 2 and L 3. Export, such as Figure 12 As shown.
[0125]
[0126] in For coefficients, For offset. Similar to existing CCCM designs, up to 6 rows / columns of chroma samples from the top and left of the current CU are applied to derive the filter coefficients. The filter coefficients are derived based on the same LDL decomposition method used in CCCM. The proposed method is signaled as an additional CCCM model besides the existing CCCM model. When CCCM is selected, a single flag is signaled simultaneously for both chroma components to indicate whether the default CCCM model or the CCCM model is applied. Furthermore, SPS signaling is introduced to indicate whether CCCM using non-downsampled luminance samples is enabled.
[0127] Based on the aforementioned existing technologies, existing cross-component prediction models have shortcomings in compression when cross-component content is inconsistent.
[0128] For example, using the LM_CHROMA_IDX mode treats all reference samples of the model template equally, clearly ignoring existing cross-component content inconsistencies, and optimizes the linear model for all reference samples. This leads to low compression efficiency when the reference samples of the model template are not completely consistent with the corresponding chroma samples in terms of content.
[0129] For example, using the MDLM_T_IDX mode results in the exclusion (in terms of content) of inconsistent reference samples located on the left side of the model template used to derive the linear parameters of the CCLM. However, using the MDLM_T_IDX mode assumes that the reference samples located on the left side of the model template (in terms of content) are inconsistent with the corresponding chroma samples of the model template. This means that, in cases of different forms of cross-component content inconsistency, the parameters of the cross-component chroma prediction model will be derived based on the inconsistent reference samples of the model template. Furthermore, it requires additional signaling to select this mode. This prediction mode leads to inefficient compression.
[0130] For example, using multi-model patterns such as MMLM_CHROMA_IDX or MMLM_T_IDX results in the reference samples of the model template being classified into different categories, with a dedicated cross-component model assigned to each category. While MMLM_CHROMA_IDX and MMLM_T_IDX patterns offer more flexibility in classifying the reference samples of the model template, they still tend to merge inconsistent reference samples into one model. Furthermore, when there are more than two distinct objects in the model template, multi-model patterns are limited to only two objects. Additionally, MMLM_CHROMA_IDX or MMLM_T_IDX requires additional signaling to select this pattern. This predictive pattern leads to inefficient compression.
[0131] Embodiments of this disclosure relate to a method for cross-component prediction of chroma blocks in a video frame comprising a luminance component and at least one chroma component. The method derives parameters of a cross-component prediction model based on weighted reference samples in a model template defined around a co-located luminance block of the chroma block to be predicted. The model template includes chroma samples in a chroma L-shaped template surrounding the chroma block to be predicted, and the reference samples are reconstructed luminance samples of a luminance L-shaped template defined around the co-located luminance block. An analysis template is obtained. The analysis template includes reconstructed luminance samples of the co-located luminance block of the chroma block and reference samples of the model template. Based on at least one detected change in the reference samples of the analysis template, the reference samples of the model template are segmented into at least two subsets of reference samples of the analysis template. The weighted reference samples in the model template are obtained by weighting the reference samples of the subsets of the analysis template belonging to the model template with weighted values, each weighting value being determined based on the content consistency between the reference samples of the subsets of the analysis template belonging to the model template and the reconstructed samples of the co-located luminance block of the analysis template.
[0132] "Content consistency between subset reference samples and reconstructed samples of co-occurring luminance blocks by weighting reference samples of a subset of the analysis template belonging to the model template" can be a preprocessing step for any method used to derive parameters of any existing cross-component prediction model that depends on reference samples of the model template surrounding the co-occurring luminance block.
[0133] Embodiments of this disclosure result in classifying reference samples of the model template into at least two subsets, and then determining a cross-component prediction model based on weighted reference samples of each subset, thereby improving compression efficiency compared to a cross-component prediction model based on reference samples that include inconsistent cross-component content.
[0134] Figure 13 A block diagram of a cross-component prediction method 300 for video chroma blocks according to at least one exemplary embodiment of the present disclosure is shown. For example, method 300 may be performed by an encoder or a decoder. In some examples, steps 320-360 may represent components within the encoder or decoder. For example, steps 320-360 may be sub-steps of step 120 of method 100 or sub-steps of step 250 of method 200.
[0135] In step 310, an analysis template is obtained. This analysis template includes reference samples of reconstructed luminance samples from co-located luminance blocks serving as chroma blocks, and reference samples from a model template. The model template includes chroma samples from a chroma L-shaped template surrounding the chroma block and corresponding reference samples from a luminance L-shaped template defined around the co-located luminance block serving as reconstructed luminance samples.
[0136] In step 320, at least one change in the reference sample of the analysis template is detected, and each change in the reference sample indicates that the content identified by analyzing the reference sample of the analysis template is inconsistent across components.
[0137] In step 330, based on at least one detected change in the reference sample of the analysis template, the reference sample of the analysis template is segmented into at least two reference sample subsets.
[0138] In step 340, a weighted reference sample of the model template is obtained by weighting the reference samples of a subset of the analysis template belonging to the model template with weighted values. Each weighted value indicates the content consistency between the reference samples of a subset belonging to at least one subset of the model template and the reconstructed samples of the co-position luminance block of the analysis template.
[0139] In step 350, at least one cross-component prediction model is determined based on the weighted reference samples in the model template.
[0140] In step 360, a chromaticity block is predicted based on at least one determined cross-component prediction model.
[0141] In some embodiments, a single cross-component prediction model can be determined from all weighted reference samples (step 350).
[0142] In some embodiments, a cross-component prediction model can be determined based on weighted reference samples corresponding to reference samples belonging to a single subset of the model template (step 350).
[0143] Figure 14 An example of a reference sample set corresponding to chromaticity blocks of a YCbCr 4:2:0 video frame is shown according to at least one exemplary embodiment of the present disclosure.
[0144] The region shown illustrates the luminance and chrominance samples. This region comprises a 4x4 chrominance block of 16 chrominance samples and a chrominance L-shaped template defined around this chrominance block. The chrominance L-shaped template includes the top two rows and left two columns of chrominance samples from the chrominance block. An 8x8 co-located luminance block includes 64 reconstructed luminance samples as reference samples. A model template can be defined by the chrominance L-shaped template and the luminance L-shaped template defined around the co-located luminance block. The model template includes the chrominance samples in the chrominance L-shaped template and the reference samples, which are defined as the reconstructed luminance samples in the luminance L-shaped template. The reference samples of the model template correspond to the chrominance samples of the model template. The analysis template can include the reference samples of the model template and the 64 reconstructed luminance samples from the 8x8 co-located luminance block.
[0145] Figure 15 An example of method 300 according to an exemplary embodiment of the present disclosure is shown.
[0146] A cross-component prediction mode needs to be determined for the chromaticity (Cb, Cr) block of the YCbCr video frame. Figure 16 Example A shows an analysis and model template. For instance, an edge detection filter is applied to a reference sample of the analysis template to detect inconsistencies in cross-component content within the analysis template. A vertical edge is detected ( Figure 16 B). Then, the reference samples of the model template are divided into a first reference sample subset S1 and a second reference sample subset S2 of the analysis template. Figure 16 C). The reference samples of subset S1 have a lower correlation in content with the reconstructed luminance samples of the co-located luminance block (the reference samples of the analysis template) than the reference samples of subset S2 because no edges were detected between subset S2 and the reconstructed luminance samples of the co-located luminance block. In other words, the cross-component content consistency of the reference samples of subset S2 relative to the reconstructed luminance samples of the co-located luminance block is better than that of the reference samples of subset S1 relative to the reconstructed luminance samples of the co-located luminance block. Weighted reference samples of subsets (i.e., reconstructed luminance samples of the analysis template belonging to the model template) are weighted by a weighting value. The weighting value associated with subset S1 (or S2) is determined based on the content consistency between the reference samples of subset S1 (or S2) and the reconstructed samples of the co-located luminance block of the analysis template. For example, the weighting value assigned to the reference samples of subset S2 is higher than the weighting value assigned to the reference samples of subset S1.
[0147] In some embodiments, a single cross-component prediction model can be determined based on all weighted reference sample values (e.g., subsets S1 and S2).
[0148] In some embodiments, a cross-component prediction model can be determined for each subset based on weighted reference samples corresponding to reference samples belonging to a single subset of the model template.
[0149] For example, a first cross-component prediction model can be determined based on weighted reference samples belonging to the first subset S1 of the model template, and a second cross-component prediction model can be determined based on weighted reference samples belonging to the second subset S2 of the model template.
[0150] In some embodiments, detecting (step 320) at least one change in the reference sample of the analysis template may include applying an edge detection filter to the reference sample of the analysis template, and detecting the change in the reference sample of the analysis template when an edge is detected in the reference sample of the analysis template.
[0151] For example, an edge detection filter is a Sobel filter.
[0152] In some embodiments, detecting (step 320) at least one variation of the reference sample of the analysis template may further include calculating the edge intensity of at least one detected edge to assess the different extent of the reference sample along each side of at least one detected edge.
[0153] In some embodiments, the edge intensity of the detected edge can be calculated using luminance sample statistics (e.g., the mean and variance of a reference sample) on each side of the detected edge.
[0154] For example, the edge intensity of a detected edge can be calculated by first dividing the reference sample of the analysis template into two subsets based on whether the reference sample of the analysis template belongs to one side or the other side of the detected edge. Then, a first average brightness of the reference sample in the first subset is calculated, and a second average brightness of the reference sample in the second subset is calculated. The difference between the first and second average brightness is then compared to a predefined threshold. If the difference is higher than the threshold, the detected edge is considered strong, i.e., it represents a change in the reference sample of the analysis template.
[0155] In some embodiments, detecting (step 320) at least one change in the reference sample of the analysis sample may further include dividing the reference sample of the model template and / or the reference sample of the analysis template.
[0156] This exemplary embodiment can be improved because, during the cross-component prediction phase, the reconstructed chromaticity samples and reference samples of the analysis template may not have been filtered (e.g., unblocking filters). Therefore, the detected edges are likely due to partitioning rather than object boundaries. Thus, this exemplary embodiment further improves the determination of the cross-component chromaticity prediction model by leveraging the advantage of partitioning information.
[0157] In some embodiments, detecting (step 320) at least one change in the reference sample of the analysis template may further include block partitioning and filtering of the reference sample of the model template.
[0158] In some embodiments, detecting (step 320) at least one change in the reference sample of the analysis sample may further include block partitioning and filtering of the reconstructed chromaticity sample in the chromaticity L-shaped template.
[0159] In some embodiments, detecting (step 320) at least one change in the reference sample of the analysis template may further include block partitioning and filtering of the reference sample of the model template and block partitioning and filtering of the reconstructed chromaticity sample in the chromaticity L-shaped template.
[0160] In some embodiments, detecting (step 320) at least one change in the reference sample of the analysis template may further include modifying the reference sample of the analysis template.
[0161] In some embodiments, modifying the reference samples of the analysis template may include filtering the reference samples of the analysis template.
[0162] For example, a smoothing filter can be applied to the reference sample of the analysis template to remove edges detected in the reference sample of the analysis template.
[0163] For example, a deblocking filter can be applied to a reference sample of the analysis template to deblock block boundaries in the reference sample of the analysis template.
[0164] For example, a denoising process can be applied to the reference sample of the analysis template to remove noise from the reference sample of the analysis template.
[0165] In some embodiments, detecting (step 320) at least one change in the reference sample of the analysis template may further include modifying the reconstructed chromaticity sample of the chromaticity block and / or the chromaticity L-shaped template surrounding the chromaticity block.
[0166] In some embodiments, modifying the reconstructed chromaticity samples may include filtering the reconstructed chromaticity samples.
[0167] For example, a smoothing filter can be applied to the reconstructed chroma sample to remove the edges detected in the reconstructed chroma sample.
[0168] For example, unblocking filtering can be applied to the reconstructed chroma samples to unblock and reconstruct the block boundaries in the chroma samples.
[0169] For example, a denoising process can be applied to the reconstructed chroma samples to remove noise from the reconstructed chroma samples.
[0170] In some embodiments, a weighted value can be obtained by comparing reconstructed luminance samples in the model template with reconstructed luminance samples from co-located luminance blocks in the analysis template. For example, an average luminance value of the analysis template can be calculated. The difference between the luminance samples in the model template and the calculated average value then determines the weighted value associated with a reference sample of the model template.
[0171] In some embodiments, the cross-component prediction model is one of the existing cross-component prediction models as described above, and determining (step 350) the cross-component prediction model may include determining the parameters of the cross-component prediction model based on weighted reference samples. The parameters of the cross-component prediction model are derived using weighted reference samples, rather than reference samples in the prior art.
[0172] In some embodiments, a single weighting value may be assigned to each subset, and a single weighting value may be assigned to each reference sample of a subset.
[0173] Figure 16An example of a reference sample set is shown, where changes (edges) are detected. The reference samples of the analysis template are segmented into a first subset S1 and a second subset S2, meaning each reference sample of the analysis template is assigned to either subset S1 or subset S2. This is a sample-based segmentation. A first single weighted value is assigned to reference sample RS1 belonging to subset S1 of the model template, and a second single weighted value is assigned to reference sample RS2 belonging to subset S2 of the model template. In this example, the second single weighted value can be greater than the first single weighted value to indicate better content consistency between reference sample RS2 of subset S2 and the reconstructed luminance sample of the co-located luminance block.
[0174] Figure 17 An example of a reference sample set in which changes were detected is shown. Based on sample-based segmentation, the reference samples of the analysis template are segmented into a first subset S1 and a second subset S2. A first single weighting value is assigned to the reference sample RS1(i,j) belonging to subset S1 of the model template, and a second single weighting value is assigned to the reference sample RS2(i,j) belonging to subset S2 of the model template. In this example, the second single weighting value may be greater than the first single weighting value to indicate better content consistency between the reference sample RS2 of subset S2 and the reconstructed luminance sample of the co-located luminance block. This example shows that subsets of the analysis template can include non-adjacent reference samples of the analysis template.
[0175] In some embodiments, the weighting value may be equal to 0 to indicate that at least one reference sample of the model template is not considered for deriving parameters of the cross-component prediction model.
[0176] In some embodiments, the MPM list may include at least one cross-component prediction model (method 300) determined based on a weighted reference sample and at least one cross-component prediction model determined in the prior art, and the prediction mode p* of the chroma block is given by equation (1).
[0177] In some embodiments, method 300 may further include signaling an activation message that indicates the determination of a cross-component prediction model based on a weighted reference sample.
[0178] In some embodiments, high-level syntax (HLS) flags are used to signal enabling information, such as sequence parameter sets (SPS), picture parameter sets (PPS), slice headers, etc.
[0179] In some embodiments, the activation information is signaled at the CU level.
[0180] Figure 18An example is shown where enabling information is signaled in the form of the sps_proposed_enabled_flag flag in the sequence parameter set (SPS) of the codec.
[0181] Figure 19 An example is shown where the weighting value is signaled in the codec unit (CU) syntax of the codec when the enable information (sps_proposed_enabled_flag) is active and indicates that CCLM is enabled (cclm_mode_flag).
[0182] In some embodiments, enabling the determination of at least one cross-component prediction model based on weighted reference samples is implicit (i.e., without signaling).
[0183] In some embodiments, it can be determined whether to enable a cross-component prediction model based on weighted reference samples based on chromaticity or co-occurrence luminance block features (such as size, adjacent CUs, etc.).
[0184] In some embodiments, determining at least one cross-component prediction model based on weighted reference samples may also be enabled in some cross-component prediction modes defined in the prior art.
[0185] For example, cross-component prediction models based on weighted reference samples can be enabled only in CCLM.
[0186] Figure 20 A schematic block diagram of an example system 600 is shown, in which various aspects and exemplary embodiments are implemented.
[0187] System 600 can be embedded as one or more devices, including the various components described below. In various exemplary embodiments, system 600 can be configured to implement one or more aspects described in this application.
[0188] Examples of equipment that may constitute all or part of System 600 include personal computers, laptop computers, smartphones, tablet computers, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected home appliances, connected vehicles and their associated processing systems, head-mounted display devices (HMDs, see-through glasses), projectors, "caves" (systems including multiple displays), servers, video encoders, video decoders, post-processors that process the output from the video decoder, pre-processors that provide input to the video encoder, web servers, video servers (e.g., broadcast servers, video-on-demand servers, or web servers), still or video cameras, encoding or decoding chips, or any other communication devices. The elements of System 600 may be implemented individually or in combination in a single integrated circuit (IC), multiple ICs, and / or discrete components. For example, in at least one exemplary embodiment, the processing and encoder / decoder elements of System 600 may be distributed across multiple ICs and / or discrete components. In various exemplary embodiments, System 600 may be communicatively connected to other similar systems or other electronic devices via, for example, a communication bus or through dedicated input and / or output ports.
[0189] System 600 may include at least one processor 610 configured to execute instructions loaded therein for implementing various aspects, such as those described in this application. Processor 610 may include embedded memory, input / output interfaces, and various other circuitry known in the art. System 600 may include at least one memory 620 (e.g., a volatile memory device and / or a non-volatile memory device). System 600 may include a storage device 640, which may include non-volatile memory and / or volatile memory, including but not limited to electrically erasable programmable read-only memory (EEPROM), read-only memory (ROM), programmable read-only memory (PROM), random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), flash memory, disk drives, and / or optical disk drives. As a non-limiting example, storage device 640 may include internal storage devices, attached storage devices, and / or network-accessible storage devices.
[0190] System 600 may include an encoder / decoder module 630 configured, for example, to process data to provide encoded / decoded video image data, and the encoder / decoder module 630 may include its own processor and memory. The encoder / decoder module 630 may represent one or more modules that can be included in a device to perform encoding and / or decoding functions. As is known, a device may include one or both of the encoding and decoding modules. Furthermore, the encoder / decoder module 630 may be implemented as a separate element of system 600, or may be incorporated into processor 610 as a combination of hardware and software known to those skilled in the art.
[0191] Program code to be loaded into processor 610 or encoder / decoder 630 to execute the various aspects described in this application may be stored in storage device 640 and subsequently loaded into memory 620 for execution by processor 610. According to various exemplary embodiments, during the execution of the processes described in this application, one or more of processor 610, memory 620, storage device 640, and encoder / decoder module 630 may store one or more of various items. Such stored items may include, but are not limited to, video frame data, information data for encoding video frame data, bitstreams, matrices, variables, and intermediate or final results of equations, formulas, operations, and arithmetic logic processing.
[0192] In several exemplary embodiments, the memory within the processor 610 and / or encoder / decoder module 630 may be used to store instructions and provide working memory for processes that can be performed during encoding or decoding.
[0193] However, in other exemplary embodiments, external memory (e.g., the processing device may be processor 610 or encoder / decoder module 630) is used for one or more of these functions. External memory may be memory 620 and / or storage device 640, such as dynamic volatile memory and / or non-volatile flash memory. In several exemplary embodiments, external non-volatile flash memory is used to store the television's operating system. In at least one exemplary embodiment, fast external dynamic volatile memory, such as RAM, may be used as working memory for video encoding / decoding operations, for example, for MPEG-2 Part 2 (also known as ITU-T Recommendation H.262 and ISO / IEC 13818-2, also known as MPEG-2 video), AVC, HEVC, EVC, VVC, AVI, etc.
[0194] As indicated in box 690, input to the components of system 600 can be provided through various input devices. Such input devices include, but are not limited to, (i) an RF section capable of receiving, for example, RF signals transmitted over the air by a broadcasting device, (ii) a composite input terminal, (iii) a USB input terminal, (iv) an HDMI input terminal, and (v) a bus, such as CAN (Controller Area Network), CAN FD (Controller Area Network Flexible Data Rate), FlexRay (ISO 17458), or Ethernet (ISO / IEC 802-3) bus, when the invention is implemented in the automotive field.
[0195] In various exemplary embodiments, the input device of block 690 has associated corresponding input processing elements, as known in the art. For example, the RF section may be associated with elements necessary for: (i) selecting a desired frequency (also known as selecting a signal, or limiting the signal band to a band), (ii) down-converting the selected signal, (iii) further limiting the band to a narrower band to select, for example, the signal band that may be referred to as a channel in some exemplary embodiments, (iv) demodulating the down-converted and band-limited signal, (v) performing error correction, and (vi) demultiplexing to select the desired data packet stream. The RF section of various exemplary embodiments may include one or more elements performing these functions, such as a frequency selector, signal selector, band limiter, channel selector, filter, downconverter, demodulator, error corrector, and demultiplexer. The RF section may include tuners performing various functions among these functions, including, for example, down-converting a received signal to a lower frequency (e.g., intermediate frequency or near-baseband frequency) or baseband.
[0196] In one set-top box embodiment, the RF section and its associated input processing elements can receive RF signals transmitted over a wired (e.g., cable) medium. The RF section can then perform frequency selection by filtering, down-converting, and re-filtering to the desired frequency band.
[0197] Various exemplary embodiments may rearrange the order of the above (and other) elements, remove some of these elements, and / or add other elements that perform similar or different functions.
[0198] Adding components may include inserting components between existing components, such as, for example, inserting amplifiers and analog-to-digital converters. In various exemplary embodiments, the RF portion may include an antenna.
[0199] Furthermore, the USB and / or HDMI terminals may include corresponding interface processors for connecting system 600 to other electronic devices via USB and / or HDMI connections. It should be understood that various aspects of input processing (e.g., Reed-Solomon error correction) may be implemented, for example, within a separate input processing IC or within processor 610, as needed. Similarly, various aspects of USB or HDMI interface processing may be implemented within a separate interface IC or within processor 610, as needed. The demodulated, error-corrected, and demultiplexed streams may be provided to various processing elements, including, for example, processor 610 and encoder / decoder 630, which operate in conjunction with memory and storage elements to process the data streams for presentation on an output device as needed.
[0200] Various components of system 600 can be provided within an integrated housing. Within the integrated housing, suitable connection arrangements 690, such as internal buses (including I2C buses), wiring, and printed circuit boards known in the art, can be used to interconnect various components and transfer data between them.
[0201] System 600 may include a communication interface 650 that enables communication with other devices via a communication channel 651. The communication interface 650 may include, but is not limited to, a transceiver configured to send and receive data on the communication channel 651. The communication interface 650 may include, but is not limited to, a modem or network interface card (NIC), and the communication channel 651 may be implemented, for example, within a wired and / or wireless medium.
[0202] In various exemplary embodiments, a Wi-Fi network such as IEEE 802.11 can be used to stream data to system 600. The Wi-Fi signals of these exemplary embodiments can be received via a communication channel 651 and a communication interface 650 suitable for Wi-Fi communication. The communication channel 651 of these exemplary embodiments can typically be connected to an access point or router that provides access to external networks, including the Internet, to allow streaming applications and other over-the-top cloud communications.
[0203] Other exemplary embodiments may use a set-top box to provide streaming data to system 600, the set-top box delivering data via an HDMI connection in input block 690.
[0204] Other exemplary embodiments may use the RF connection of input block 690 to provide streaming data to system 600.
[0205] Streamed data can be used as a means of signaling notification information by System 600. Signaling notification information may include bitstream B and / or information such as the number of video frame pixels and / or any encoding / decoding settings parameters.
[0206] It should be recognized that signaling notification can be implemented in a variety of ways. For example, in various exemplary embodiments, one or more syntax elements, flags, etc., can be used to send signaling notification information to the corresponding decoder.
[0207] System 600 can provide output signals to various output devices, including a display 661, a speaker 671, and other peripheral devices 681. In various examples of exemplary embodiments, other peripheral devices 681 may include one or more of a standalone DVR, a disc player, a stereo system, a lighting system, and other devices that provide functionality based on the output of system 600.
[0208] In various exemplary embodiments, control signals may be communicated between system 600 and display 661, speaker 671 or other peripheral devices 681 using signaling such as AV.Link (audio / video link), CEC (consumer electronics control), or other communication protocols that enable device-to-device control with or without user intervention.
[0209] Output devices can be connected to system 600 via dedicated connections through the corresponding interfaces 660, 670 and 680.
[0210] Alternatively, the output device can be connected to the system 600 via communication interface 650 using communication channel 651. The display 661 and speaker 671 can be integrated with other components of the system 600 into a single unit in an electronic device, such as a television set.
[0211] In various exemplary embodiments, the display interface 660 may include a display driver, such as, for example, a timing controller (T Con) chip.
[0212] For example, if the RF portion of input 690 is part of a separate set-top box, then display 661 and speaker 671 may optionally be separate from one or more other components. In various exemplary embodiments where display 661 and speaker 671 can be external components, output signals may be provided via dedicated output connections, including, for example, an HDMI port, a USB port, or a COMP output.
[0213] exist Figure 1-19This document describes various methods, each comprising one or more steps or actions to implement the described method. Unless the correct operation of the method requires a specific order of steps or actions, the order and / or use of specific steps and / or actions may be modified or combined.
[0214] Examples of block diagrams and / or operation flowcharts are described. Each block represents a portion of circuitry, a module, or code, which includes one or more executable instructions for implementing one or more specified logical functions. It should also be noted that in other implementations, the functions (one or more) marked in the blocks may occur out of order. For example, depending on the functions involved, two blocks shown sequentially may actually execute substantially concurrently, or sometimes these blocks may be executed in reverse order.
[0215] The embodiments and aspects described herein may be implemented in, for example, methods or processes, apparatus, computer programs, data streams, bit streams, or signals. Even if discussed only in the context of a single form of implementation (e.g., discussed only as a method), implementations of the discussed features may be implemented in other forms (e.g., apparatus or computer programs).
[0216] The method can be implemented in, for example, a processor, which generally refers to a processing device, including, for example, a computer, microprocessor, integrated circuit, or programmable logic device. Processors also include communication devices.
[0217] Furthermore, the method can be implemented by instructions executed by a processor, and such instructions (and / or data values generated by the implementation) can be stored on a computer-readable storage medium. The computer-readable storage medium can take the form of a computer-readable program product implemented in one or more computer-readable media and having computer-executable computer-readable program code implemented thereon. Considering the inherent ability to store information therein and the inherent ability to retrieve information provided therefrom, the computer-readable storage medium as used herein can be considered a non-transitory storage medium. The computer-readable storage medium can be, for example, but not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatuses, or devices, or any suitable combination of the foregoing. It should be understood that while more specific examples of computer-readable storage media to which this exemplary embodiment can be applied are provided below, they are merely illustrative and not exhaustive, as will be readily apparent to those skilled in the art: portable computer floppy disks; hard disks; read-only memory (ROM); erasable programmable read-only memory (EPROM or flash memory); portable optical disc read-only memory (CD-ROM); optical storage devices; magnetic storage devices; or any suitable combination of the foregoing.
[0218] Instructions can form applications that are tangibly implemented on processor-readable media.
[0219] For example, instructions can be found in hardware, firmware, software, or a combination thereof. Instructions can be found, for example, in an operating system, a standalone application, or a combination of both. Therefore, a processor can be characterized as, for example, a device configured to execute a process and a device including a processor-readable medium (such as a storage device) having instructions for executing the process. Additionally, in addition to or instead of instructions, the processor-readable medium can store data values generated by the implementation.
[0220] The device can be implemented, for example, in appropriate hardware, software, and firmware. Examples of such devices include personal computers, laptops, smartphones, tablets, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected home appliances, head-mounted display devices (HMDs, see-through glasses), projectors, "caves" (systems comprising multiple displays), servers, video encoders, video decoders, post-processors that process the output from the video decoder, pre-processors that provide input to the video encoder, web servers, set-top boxes, and any other devices used to process video images, or other communication devices. It should be clear that the equipment can be mobile and even mounted in mobile vehicles.
[0221] The computer software may be implemented by the processor 610, by hardware, or by a combination of hardware and software. As a non-limiting exemplary embodiment, embodiments may also be implemented by one or more integrated circuits. The memory 620 may be of any type suitable for the technical environment and may be implemented using any suitable data storage technology, such as optical memory devices, magnetic memory devices, semiconductor-based memory devices, fixed memory, and removable memory, as non-limiting examples. The processor 610 may be of any type suitable for the technical environment and may encompass one or more of microprocessors, general-purpose computers, special-purpose computers, and processors based on multi-core architectures, as non-limiting examples.
[0222] As will be apparent to those skilled in the art, implementations can generate various signals formatted to carry, for example, information that can be stored or transmitted. The information may include, for example, instructions for performing a method or data generated by one of the described implementations. For example, the signal may be formatted to carry a bit stream of the described exemplary embodiments. Such a signal may be formatted as, for example, electromagnetic waves (e.g., using the radio frequency portion of a spectrum) or baseband signals. Formatting may include, for example, encoding the data stream and modulating a carrier wave with the encoded data stream. The information carried by the signal may be, for example, analog or digital information. As is known, the signal can be transmitted via various wired or wireless links. The signal may be stored on a processor-readable medium.
[0223] The terminology used herein is for the purpose of describing particular exemplary embodiments only and is not intended to be limiting. As used herein, the singular forms “an,” “a,” and “the” may also be intended to include the plural forms unless the context clearly indicates otherwise. It will be further understood that, when used in this specification, the terms “include / comprise” and / or “including / comprising” may specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof. Furthermore, when an element is referred to as “in response to,” “connected to,” or “associated with,” another element, it may be directly responsive to, connected to, or associated with another element, or there may be intermediate elements. In contrast, when an element is referred to as “directly responsive to,” “directly connected to,” or “directly associated with,” another element, there are no intermediate elements.
[0224] It should be recognized that, for example, in the cases of “A / B,” “A and / or B,” and “at least one of A and B,” the use of any of the symbols / terms “ / ,” “and / or,” and “at least one of” can be intended to cover the selection of only the first listed option (A), or only the second listed option (B), or the selection of both options (A and B). As a further example, in the cases of “A, B, and / or C” and “at least one of A, B, and C,” such wording is intended to cover the selection of only the first listed option (A), or only the second listed option (B), or only the third listed option (C), or only the first and second listed options (A and B), or only the first and third listed options (A and C), or only the second and third listed options (B and C), or the selection of all three options (A, B, and C). As will be clear to those skilled in the art and related fields, this can be extended to as many items as are listed.
[0225] Various numerical values may be used in this application. Specific values may be used for illustrative purposes and the aspects described are not limited to these specific values.
[0226] It will be understood that while the terms first, second, etc., may be used herein to describe various elements, these elements are not limited by these terms. These terms are used only to distinguish one element from another. For example, without departing from the teachings of this application, a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element. There is no implied order between the first element and the second element.
[0227] References to “an exemplary embodiment” or “an exemplary embodiment” or “an implementation” or “implementation” and other variations thereof are frequently used to convey that a particular feature, structure, characteristic, etc. (described in conjunction with the embodiment / implementation) is included in at least one exemplary embodiment / implementation. Therefore, the phrases “in an exemplary embodiment” or “in an exemplary embodiment” or “in one implementation” or “in one implementation” appearing throughout this application, as well as any other variations, do not necessarily refer to the same exemplary embodiment.
[0228] Similarly, the references to "according to an exemplary embodiment / example / implementation" or "in an exemplary embodiment / example / implementation" and their variations are frequently used to convey that a particular feature, structure, or characteristic (described in conjunction with an exemplary embodiment / example / implementation) may be included in at least one exemplary embodiment / example / implementation. Therefore, the expressions "according to an exemplary embodiment / example / implementation" or "in an exemplary embodiment / example / implementation" appearing throughout this application do not necessarily refer to the same exemplary embodiment / example / implementation, nor are individual or alternative exemplary embodiments / examples / implementations necessarily mutually exclusive with other exemplary embodiments / examples / implementations.
[0229] The reference numerals appearing in the claims are for illustrative purposes only and do not limit the scope of the claims. Although not explicitly described, these exemplary embodiments / examples and variations may be employed in any combination or subcombination.
[0230] When a diagram is presented as a flowchart, it should be understood that it also provides a block diagram of the corresponding apparatus. Similarly, when a diagram is presented as a block diagram, it should be understood that it also provides a flowchart of the corresponding method / process.
[0231] While some diagrams include arrows along the communication path to indicate the main direction of communication, it should be understood that communication can occur in the opposite direction to the arrows depicted.
[0232] Various implementations involve decoding. As used herein, "decoding" can encompass all or part of a process performed, for example, on a received video frame (which may include a received bitstream encoded with one or more video frames) to produce a final output suitable for display or further processing in a reconstructed video domain. In various exemplary embodiments, such a process includes one or more processes typically performed by a decoder. In various exemplary embodiments, such a process, for example, also includes, or optionally includes, a process performed by a decoder of the various embodiments described herein.
[0233] As a further example, in one exemplary embodiment, "decoding" may refer only to dequantization; in another exemplary embodiment, "decoding" may refer to entropy decoding; in yet another exemplary embodiment, "decoding" may refer only to differential decoding; and in yet another exemplary embodiment, "decoding" may refer to a combination of dequantization, entropy decoding, and differential decoding. It will be clear, and believed to be well understood by those skilled in the art, whether the phrase "decoding process" is intended to specifically refer to a subset of operations or generally to a broader decoding process, depending on the context of the specific description.
[0234] Various implementations involve encoding. In a manner similar to the above discussion of "decoding," the term "encoding" as used herein can encompass all or part of a process performed on an input video frame to generate an output bitstream. In various exemplary embodiments, such a process includes one or more processes typically performed by an encoder. In various exemplary embodiments, such a process also includes, or optionally includes, a process performed by an encoder of the various embodiments described herein.
[0235] As a further example, in one exemplary embodiment, "encoding" may refer only to quantization; in another exemplary embodiment, "encoding" may refer only to entropy encoding; in yet another exemplary embodiment, "encoding" may refer only to differential encoding; and in still another exemplary embodiment, "encoding" may refer to a combination of quantization, differential encoding, and entropy encoding. It will be clear, and believed to be well understood, by those skilled in the art, whether the phrase "encoding process" is intended to specifically refer to a subset of operations or generally to a broader encoding process, depending on the context of the particular description.
[0236] Furthermore, this application may refer to "obtaining" various types of information. Obtaining information may include one or more of the following: estimated information, calculated information, predicted information, or information retrieved from memory, processed information, moved information, copied information, erased information, calculated information, determined information, predicted information, or estimated information.
[0237] Furthermore, this application may refer to "receiving" various messages. Receiving messages may include one or more of the following, such as access information or receiving information from a communication network.
[0238] Moreover, as used herein, the term "signaling" specifically refers to instructing the corresponding decoder to do something. For example, in some exemplary embodiments, the encoder signals specific information, such as encoding / decoding parameters or encoded video frame data. In this way, in exemplary embodiments, the same parameter can be used on both the encoder and decoder sides. Thus, for example, the encoder can transmit (explicitly signal) a specific parameter to the decoder so that the decoder can use the same specific parameter. Conversely, if the decoder already has the specific parameter as well as other parameters, signaling can be used without transmission (implicitly signaling) to simply allow the decoder to know and select the specific parameter. Bit savings are achieved in various exemplary embodiments by avoiding the transmission of any actual functionality. It should be recognized that signaling can be accomplished in various ways. For example, in various exemplary embodiments, one or more syntax elements, flags, etc., are used to signal information to the corresponding decoder. Although the verb form of the term "signal" has been referred to above, the term "signaling" can also be used as a noun herein.
[0239] Several implementations have been described. However, it should be understood that various modifications can be made. For example, elements of different implementations can be combined, supplemented, modified, or removed to produce other implementations. Furthermore, those skilled in the art will understand that other structures and processes can replace the disclosed structures and processes, and the resulting implementations will perform at least substantially the same functions in at least substantially the same manner to achieve at least substantially the same results as the disclosed implementations. Therefore, these and other implementations are contemplated in this application.
Claims
1. A method (300) for cross-component prediction of chroma blocks in a video frame, the video frame comprising a luminance component and at least one chroma component, the method comprising: Obtain (310) an analysis template, the analysis template including a reference sample as a reconstructed luminance sample of the co-position luminance block of the chroma block and a reference sample of a model template, the model template including chroma samples in a chroma L-shaped template around the chroma block and corresponding reference samples as reconstructed luminance samples in a luminance L-shaped template defined around the co-position luminance block of the chroma block; Detect (320) at least one change in the reference sample of the analysis template, each change in the reference sample indicating that the content in the reference sample of the analysis template is inconsistent across components; Based on at least one detected change in the reference sample of the analysis template, the reference sample of the analysis template is segmented (330) into at least two reference sample subsets; (340) Weighted reference samples of the model template are obtained by weighting the reference samples of a subset of the analysis template belonging to the model template by weighting the reference samples of at least one subset of the model template, and each weighting value indicates the content consistency between the reference samples of a subset belonging to at least one subset of the model template and the reconstructed samples of the co-position luminance block of the analysis template. Based on the weighted reference samples in the model template, determine (350) at least one cross-component prediction model; and The chromaticity block is predicted (360) based on at least one determined cross-component prediction model.
2. The method according to claim 1, wherein, A single cross-component prediction model is determined from all weighted reference samples, or Specifically, a cross-component prediction model is determined for each subset based on weighted reference samples corresponding to reference samples belonging to a single subset of the model template.
3. The method according to claim 1 or 2, wherein detecting at least one change in the reference sample of the analysis template (320) comprises applying an edge detection filter to the reference sample of the analysis module, and detecting the change in the reference sample of the analysis template when an edge is detected in the reference sample of the analysis template.
4. The method of claim 3, wherein detecting at least one change in the reference sample of the analysis template (320) further comprises calculating the edge intensity of at least one detected edge.
5. The method according to any one of claims 1 to 4, wherein detecting (320) at least one change in the reference sample of the analysis sample further comprises dividing the reference sample of the model template and / or the reference sample of the analysis template.
6. The method according to any one of claims 1 to 4, wherein detecting at least one change in the reference sample of the analysis template (320) further comprises dividing and filtering the reference sample of the model template into blocks.
7. The method according to any one of claims 1 to 6, wherein detecting at least one change in the reference sample of the analytical template (320) further comprises modifying the reference sample of the analytical template.
8. The method according to any one of claims 1 to 7, wherein detecting (step 320) at least one change in the reference sample of the analysis template further comprises modifying the reconstructed chromaticity sample of the chromaticity block and / or the chromaticity L-shaped template surrounding the chromaticity block.
9. The method according to any one of claims 1 to 8, wherein the weighting value is obtained by comparing the reconstructed luminance sample in the model template with the reconstructed luminance sample of the co-located luminance block of the analysis template.
10. The method according to any one of claims 1 to 9, wherein a single weighted value is assigned to a subset, and the single weighted value is assigned to each reference sample of the subset.
11. The method according to any one of claims 1 to 10, further comprising signaling an activation message, the activation message indicating that the at least one cross-component prediction model is determined based on a weighted reference sample.
12. The method of any one of claims 1 to 10, wherein determining whether to enable the determination of the at least one cross-component prediction model based on weighted reference samples is based on chromaticity or co-location block features.
13. A method for encoding video image data, comprising the method according to any one of claims 1 to 12.
14. A method for decoding video image data, comprising the method according to any one of claims 1 to 13.
15. An apparatus comprising means for performing one of the methods according to any one of claims 1 to 14.
16. A computer program product comprising instructions that, when executed by one or more processors, cause the one or more processors to perform the method according to any one of claims 1 to 14.
17. A non-transient storage medium carrying instructions for performing program code according to any one of claims 1 to 16.
