Encoding / decoding video image data
By blending the predictors of the nonlinear model in the chroma blocks of the video image, the problem of low coding efficiency of intra-frame prediction chroma blocks in the existing technology is solved, and higher video codec coding efficiency and Global encoding performance.
Patent Information
- Application Number
- CN202380044579.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-06-29
- Filing Date
- 2023-04-24
- Publication Date
- 2025-01-21
- Estimated Expiration
- 2043-04-24
AI Technical Summary
When existing video encoding and decoding technologies predict chromaticity blocks intraframes, their encoding efficiency is low, and it is difficult to make full use of chromaticity blending to improve global encoding performance.
By using a nonlinear model-based predictor in the chroma blocks of the video image, disabling the linear model-based modes, mode blending of the nonlinear models is employed to generate the final chroma block predictor.
Improved coding efficiency of video codecs, ensuring that even when linear model-based modes are disabled, chroma predictions can still be optimized by blending multiple nonlinear model predictors, thereby improving global coding performance.
Smart Images

Figure CN119343923A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims priority to and the benefit of European Patent Application No. 22305945.2 filed with the European Patent Office on June 29, 2022, the entire contents of which are incorporated herein by reference. Technical Field
[0003] The present application generally relates to video image encoding and decoding. In particular, but not exclusively, the technical field of the present application relates to intra-frame prediction of chrominance blocks of video images. Background Art
[0004] This section is intended to introduce the reader to various aspects of the art that may be related to various aspects of at least one exemplary embodiment of the present application described and / or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of various aspects of the present application. Therefore, it should be understood that these statements should be read in this light, and not as admissions of prior art.
[0005] A pixel corresponds to the smallest display unit on the screen, which can be composed of one or more light sources (1 for a monochrome screen and 3 or more for a color screen).
[0006] A video image (also called a frame or image frame) comprises at least one component (also called an image component or channel) determined by a specific image / video format, which specifies all information related to pixel values and all information related to the video image data that can be used by a display unit and / or any other device to display and / or decode the video image data related to the video image.
[0007] A video image comprises at least one component which is typically represented in the shape of an array of samples.
[0008] A monochrome video image includes a single component, while a color video image may include three components.
[0009] For example, a color video image may include a luminance (or luminance) component and two chrominance components when the image / video format is the well-known (Y,Cb,Cr) format, or may include three color components (one for red, one for green, and one for blue) when the image / video format is the well-known (R,G,B) format.
[0010] Each component of the video image may comprise a number of samples relative to the number of pixels of the screen on which the video image is intended to be displayed. In a variant, the number of samples contained in a component may be a multiple (or fraction) of the number of samples contained in another component of the same video image.
[0011] For example, in case the video format includes a luma component and two chroma components (such as a (Y, Cb, Cr) format), the chroma components may contain half the number of samples in width and / or height relative to the luma components, depending on the color format considered.
[0012] A sample is the smallest visual information unit that makes up a component of a video image. A sample value can be, for example, a brightness or chrominance value or a color value in (R, G, B) format.
[0013] The pixel value is the value of a screen pixel. For a monochrome video image, a pixel value can be represented by one sample, and for a color video image, a pixel value can be represented by multiple co-located samples. The co-located sample associated with a pixel refers to a sample corresponding to the position of the pixel in the screen.
[0014] A video image is usually considered as a set of pixel values, with each pixel represented by at least one sample.
[0015] A block of a video image is a group of samples of a component of a video image. When the image / video format is the well-known (Y, Cb, Cr) format, a block of at least one luminance sample (referred to as a luminance block) or a block of at least one chrominance sample (referred to as a chrominance block) may be considered, or when the image / video format is the well-known (R, G, B) format, a block of at least one color sample may be considered.
[0016] At least one exemplary embodiment is not limited to a particular image / video format.
[0017] In state-of-the-art video compression systems such as HEVC (ISO / IEC 23008-2 High Efficiency Video Coding, ITU-T Recommendation H.265, https: / / www.itu.int / rec / T-REC-H.265-202108-P / en) or VVC (ISO / IEC 23090-3 Generic Video Coding, ITU-T Recommendation H.266, https: / / www.itu.int / rec / T-REC-H.266-202008-I / en), low-level and high-level picture partitioning are provided to divide a video picture into picture regions, so-called coding tree units (CTUs), which for HEVC may typically have a size between 16×16 and 64×64 pixels, while for VVC the size of the coding tree unit (CTU) may be 32×32, 64×64 or 128×128 pixels.
[0018] The CTU partitioning of the video image forms a grid of CTUs of a fixed size, i.e., a CTU grid, in which the upper and left boundaries coincide spatially with the upper and left borders of the video image. The CTU grid represents the spatial partitioning of the video image.
[0019] In VVC and HEVC, the CTU size (CTU width and CTU height) of all CTUs of the CTU grid 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) may 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 in a sequence parameter set (SPS).
[0020] The spatial position of a CTU in the CTU grid is determined by the CTU address ctuAddr, which defines the spatial position of the upper left corner of the CTU from the origin. Figure 1 As illustrated, a CTU address may define a spatial position from the upper left corner of a higher-level spatial structure S that contains the CTU.
[0021] A coding tree is associated with each CTU to determine the tree partitioning of the CTU.
[0022] like Figure 1 As shown, in HEVC, the coding tree is a quadtree partition of CTU, where each leaf is called a coding unit (CU). The spatial position of the CU in the video image is defined by the CU index cuIdx, which indicates the spatial position from the upper left corner of the CTU. The CU is spatially partitioned into one or more prediction units (PUs). The spatial position of the PU in the video image VP is defined by the PU index puIdx, which defines the spatial position from the upper left corner of the CTU, and the spatial position of the elements of the partitioned PU is defined by the PU partition index puPartIdx, which defines the spatial position from the upper left corner of the PU. Each PU is assigned some intra-frame or inter-frame prediction data.
[0023] Intra or inter coding modes are assigned on CU level. This means the same intra / inter coding mode is assigned to each PU of a CU, although the prediction parameters vary from PU to PU.
[0024] According to a quadtree called a transform tree, a CU can also be spatially partitioned into one or more transform units (TUs). A transform unit is a leaf of a transform tree. The spatial position of a TU in a video image is defined by a TU index tuIdx, which defines the spatial position from the upper left corner of the CU. Each TU is assigned some transform parameters. The transform type is assigned at the TU level, and a 2D separate transform is performed at the TU level during encoding or decoding of an image block.
[0025] The PU partition types that exist in HEVC are as follows: Figure 2 As shown. They include square partitions (2N×2N and N×N), which are the only partitions used in both intra- and inter-prediction CUs; symmetric non-square partitions (2N×N, N×2N, used only in inter-prediction CUs); and asymmetric partitions (used only in inter-prediction CUs). For example, PU type 2N×nU represents an asymmetric horizontal partition of a PU, where a smaller partition is located at the top of the PU. According to another example, PU type 2N×nL represents an asymmetric horizontal partition of a PU, where a smaller partition is located at the top of the PU.
[0026] like Figure 3 As shown, in VVC, the coding tree starts from the root node (i.e., CTU). Next, a quadtree (or quadtree) partitioning divides the root node into 4 nodes (solid lines) corresponding to 4 sub-blocks of equal size. Next, the quadtree (or quadtree) leaves can then be further partitioned by the so-called multi-type tree, which involves Figure 4 Binary or ternary segmentation of one of the 4 segmentation modes shown. These segmentation types are vertical and horizontal binary segmentation modes, denoted SBTV and SBTH; and vertical and horizontal ternary segmentation modes SPTTV and STTH.
[0027] In the case of a joint coding tree shared by luma and chroma components, the leaves of the coding tree of a CTU are CUs.
[0028] In contrast to HEVC, in VVC, in most cases, CU, PU, and TU have equal sizes, which means that coding units are generally not partitioned into PUs or TUs except in some specific coding modes.
[0029] Figure 5 and Figure 6 An overview of video encoding / decoding methods used in current video standard compression systems (such as, for example, HEVC or VVC) is provided.
[0030] Figure 5 A schematic block diagram showing the steps of a method 100 for encoding a video image VP according to the prior art is shown.
[0031] In step 110, the video picture VP is partitioned into blocks of samples and the partition information data is signaled into the bitstream. Each block comprises samples of one component of the video picture VP. Thus, the blocks comprise samples defining each component of the video picture VP.
[0032] For example, in HEVC, a picture is divided into coding tree units (CTUs). Each CTU can be further subdivided using a quadtree partition, where each leaf of the quadtree represents a coding unit (CU). The partition information data may then include data describing the quadtree subdivision of the CTU and each CTU.
[0033] Then, each block of samples (block for short) may be a CU (if the CU includes a single PU) or a PU of the CU.
[0034] Each block is encoded along a coding loop (also called "in-loop") using intra or inter prediction mode.
[0035] Intra prediction (step 120) uses intra prediction data. Intra prediction consists in predicting the current block with the help of intra prediction blocks based on already coded, decoded and reconstructed samples located around the current block (usually located at the top and left of the current block). Intra prediction is performed in the spatial domain.
[0036] In inter prediction mode, motion estimation (step 130) and motion compensation (135) are performed. Motion estimation searches for a reference block that is a good predictor of the current block in one or more reference pictures used to predictively encode the current video picture. In unidirectional motion estimation / compensation, the candidate reference blocks belong to a single reference picture of a reference picture list denoted L0 or L1, and in bidirectional motion estimation / compensation, the candidate reference blocks are derived from reference blocks of reference picture list L0 and reference blocks of reference picture list L1.
[0037] For example, a good predictor for the current block is a candidate reference block that is similar to the current block. It may also correspond to a reference block that provides a good compromise between its similarity to the current block and the rate cost of indicating its motion information required for temporal prediction of the current block.
[0038] The output of the motion estimation step 130 is inter-frame prediction data, which includes motion information associated with the current block and other information for obtaining the same prediction block at the encoding / decoding side. Typically, the motion information includes one motion vector and reference image index for unidirectional estimation / compensation, and two motion vectors and two reference image indexes for bidirectional estimation / compensation). Next, motion compensation (step 135) obtains the prediction block with the help of the (one or more) motion vectors and (one or more) reference image indexes determined by the motion estimation step 130. Basically, the reference block belonging to the selected reference image and pointed to by the motion vector can be used as the prediction block of the current block. In addition, since the motion vector is represented as a fraction of an integer pixel position (this is called sub-pixel precision motion vector representation), motion compensation usually involves spatial interpolation of some reconstructed samples of the reference image to calculate the prediction block.
[0039] The prediction information data is signaled into the bitstream.The prediction information may include the prediction mode (intra or inter or skip), intra / inter prediction data and any other information for obtaining the same prediction block at the decoding side.
[0040] The method 100 optimizes the rate-distortion trade-off to select a prediction mode (intra-frame or inter-frame prediction mode) by considering, for example, the encoding of a prediction residual block calculated by subtracting a candidate prediction block from a current block, and the signaling of the prediction information data required to determine the candidate prediction block at the decoding side.
[0041] Typically, the best prediction mode is given as the prediction mode of the best coding mode p* for the current block given by the following equation:
[0042]
[0043] Where P is the set of all candidate coding modes for the current block, P represents the candidate coding mode in the set, and RD cost (p) is the rate-distortion cost of candidate coding mode p, usually expressed as:
[0044] RD cost(p) =D(p)+λ.R(p)
[0045] D(p) is the distortion between the current block and the reconstructed block obtained after encoding / decoding the current block with candidate coding mode p, R(p) is the rate cost associated with encoding the current block with coding mode p, and λ is a Lagrangian parameter that represents the rate constraint for encoding the current block and is typically calculated based on the quantization parameter used to encode the current block.
[0046] The current block is usually encoded according to a 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 (step 140) by using, for example, a DCT (discrete cosine transform) or DST (discrete sine transform) type transform or any other suitable transform, and the obtained transform coefficient block is quantized (step 150).
[0047] In a variant, the method 100 may also skip the transform step 140 and apply quantization (step 150) directly to the prediction residual block PR according to a so-called transform skip coding mode.
[0048] The block of quantized transform coefficients (or the block of quantized prediction residuals) is entropy encoded into a bitstream (step 160).
[0049] 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 inverse transformed), producing a decoded prediction residual block. The decoded prediction residual block and the prediction block are then combined, usually summed, which provides a reconstructed block.
[0050] Further information data may also be entropy encoded in step 160 to encode the current block of the video picture VP.
[0051] An in-loop filter (step 190) may be applied to the reconstructed image (including the reconstructed blocks) to reduce compression artifacts. After all image blocks are reconstructed, a loop filter may be applied. For example, they include a deblocking filter, a sample adaptive offset (SAO), or an adaptive loop filter.
[0052] The reconstructed block or the filtered reconstructed block forms a reference picture which can be stored into a decoded picture buffer (DPB) so that it can be used as a reference picture for encoding of the next current block of the video picture VP or the next video picture to be encoded.
[0053] Figure 6 A schematic block diagram showing the steps of a method 200 for decoding a video image VP according to the prior art is shown.
[0054] In step 210 , partition information data, prediction information data and quantized transform coefficient blocks (or quantized residual blocks) are obtained by entropy decoding the bit stream of the encoded video image data. For example, the bit stream is generated according to method 100 .
[0055] The other information data may also be entropy decoded to decode the current block of the video picture VP from the bitstream.
[0056] In step 220, the reconstructed image is divided into current blocks based on the partition information. Each current block is entropy decoded from the bitstream along a decoding loop (also referred to as "in-loop"). Each decoded current block is a quantized transform coefficient block or a quantized prediction residual block.
[0057] In step 230, the current block is dequantized and possibly inversely transformed (step 240) to obtain a decoded prediction residual block.
[0058] On the other hand, the prediction information data is used to predict the current block. The prediction block is obtained by its intra prediction (step 250) or its motion compensated temporal prediction (step 260). The prediction process performed at the decoding side is the same as the prediction process performed at the encoding side.
[0059] Next, the decoded prediction residual block and the prediction block are then combined, typically summed, which provides the reconstructed block.
[0060] In step 270, the in-loop filter may be applied to the reconstructed image (including the reconstructed block), and the reconstructed block or the filtered reconstructed block forms a reference image, which may be stored in a decoded picture buffer (DPB) as discussed above ( Figure 5 ).
[0061] In VVC, motion information is stored in every 4×4 block in each video image. This means that once the reference image is stored in the decoded picture buffer (DPB, Figure 5 Or in 6), the motion vector and reference image index for temporal prediction of the video image block are stored on a 4×4 block basis, which can be used as temporal prediction for motion information of subsequent inter-frame prediction video images for encoding / decoding.
[0062] In order to reduce cross-component redundancy, VVC defines the so-called linear model-based intra prediction mode (LM mode).
[0063] One of them is the so-called cross-component linear model (CCLM), which derives a linear model-based predictor (LM predictor for short) by using the following linear model consisting of co-located reconstructed luminance samples rec of the same CU: ′ L The predicted chrominance sample pred of (i,j) C (i,j):
[0064] pred C (i,j)=α·rec L ′(i,j)+β
[0065] where α and β are linear parameters of the linear model, which are derived from the reference samples (i.e., the reconstructed chrominance and luminance samples).
[0066] Reconstructed brightness samples rec ′ L (i,j) is downsampled to match the CU chroma size after filtering.
[0067] In VVC, three CCLM modes are specified, denoted as CCLM_LT, CCLM_T, and CCLM_L. These three CCLM modes differ in the location of the reference samples used for linear parameter derivation. Reference samples from the top boundary are included in the CCLM_T mode, and reference samples from the left boundary are included in the CCLM_L mode. In the CCLM_LT mode, reference samples from both the top boundary and the left boundary are used.
[0068] In general, the prediction process of CCLM mode consists of the following three steps: 1) reconstruct the brightness samples rec of the brightness block and its adjacent brightness samples rec ′ L (i, j) are downsampled to match the size of the corresponding chroma block, 2) linear parameters are derived based on the adjacent reconstructed luma samples, and 3) equation (10) is applied to generate the chroma intra-frame prediction samples (predicted chroma block).
[0069] Another LM mode is the so-called multi-model linear model (MMLM, [K. Zhan et al., "Enhanced Cross-component Linear Model Intra Prediction", JVET-D0110, San Diego, October 2016]). MMLM is an extension of CCLM because more than one linear model is used to reconstruct the luminance samples rec from the co-located ′ L (i, j). In MMLM, adjacent reconstructed luminance samples and adjacent chrominance samples are classified into several groups, and each group is used as a training set to derive linear parameters of the linear model (i.e., specific α and β are derived for a specific group). In addition, the samples of the current luminance block are also classified based on the same rules used for the classification of adjacent luminance samples. For example, adjacent samples are classified into M groups. The MMLM method of M=2 and M=3 is designed as two additional LM modes for chrominance in addition to the original LM mode (CCLM), named MMLM2 and MMLM3. The encoder selects the best LM mode in the rate / distortion optimization process and signals the best LM mode. For example, when M is equal to 2, the threshold is calculated as the average of the adjacent reconstructed luminance samples. Adjacent reconstructed samples rec' that are lower than or equal to the threshold L[x,y] is classified into group 1; and the adjacent reconstructed samples rec' L [x,y] is classified into group 2.
[0070] Then, the following two LM predictors are derived:
[0071]
[0072] MMLM is included in the Enhanced Compression Model (ECM) that explores compression performance improvements beyond VVC (M. Coban et al., "Algorithm description of Enhanced Compression Model 4 (ECM 4)", JVET-Y2025, online, July 2021), where adjacent reconstructed samples are classified into two classes using a threshold that is the average of the brightness adjacent reconstructed samples. A linear model for each class is derived using the least mean square (LMS) method.
[0073] VVC further defines a decoder-side intra mode derivation (DIMD) mode for both luma and chroma samples. The DIMD mode is not a linear model-based mode (referred to as non-LM mode), i.e., an intra prediction mode that does not involve a linear model and does not require explicit intra prediction mode signaling, such as a planar prediction mode or a direct mode (DM).
[0074] For luma sample prediction, the use of DIMD luma mode is signaled in the bitstream by a single flag, and the intra predictor is not explicitly signaled in the bitstream but is derived by using gradient analysis of neighboring reconstructed luma samples, i.e. the DIMD luma mode is implicit. Therefore, the intra predictor is derived from the DIMD luma mode equally at the encoder and decoder side during the reconstruction process.
[0075] In DIMD brightness mode, if Figure 7 As shown, a 3-sample wide (in width or height) template area T (consisting of the left, above, and above-left reconstructed luminance samples of the reconstructed region R) is defined, wherein an edge detection filter (3×3 horizontal and vertical Sobel filter) adjacent to the current block B (current CU) is applied to determine the magnitude (amplitude) and angle of the luminance direction (orientation) of each middle line sample of the (available) template area T. A histogram of gradients (HoG) is calculated, where each entry corresponds to a conventional intra-frame angle pattern, and the accumulated intensity (amplitude) is stored:
[0076] Angle = arctan(G hor / Gver )
[0077] Amplitude = |G hor |+|G hor |
[0078] Where Ghor and Gver are the pure horizontal and vertical intensities calculated by the Sobel filter.
[0079] In DIMD luma mode, luma blending (mixing, fusion) is applied as a weighted average of three luma predictors: two HoG-based predictors and a planar predictor (M. Abdoli et al., “Non-CE3: Decoder-side IntraMode Derivation with Prediction Fusion Using Planar”, JVET-O0449, Gothenburg, July 2019).
[0080] The planar predictor is derived from the planar mode, where the predicted sample value is obtained as a weighted average of 4 reference sample values. Here, reference samples in the same row or column as the current sample and reference samples in the lower left and upper right positions relative to the current block are used. In VVC, depending on the block size, the reference sample smoothing filter is also applied to the planar mode in the luma component.
[0081] like Figure 8 As shown, the two most representative angular intramodes M1 and M2 (having the largest histogram amplitude values) are selected from the HoG and combined (fused) with the planar mode, where the weights w1, w2, w3 are derived from the ratio of the selected angular intra prediction amplitudes (where planar has a ratio of 1 / 3, i.e. 21 / 64 with 6-bit integer precision).
[0082] For chroma sample prediction, the use of DIMD chroma mode is signaled in the bitstream by a single flag, and the intra predictor is not explicitly signaled in the bitstream, but is derived by gradient analysis using neighboring reconstructed luma and chroma samples, i.e., the DIMD chroma mode is implicit. Therefore, the intra predictor is derived from the DIMD chroma mode equally at the encoder and decoder side during the reconstruction process.
[0083] In DIMD chroma mode, the intra predictor for a chroma block can be derived based on the co-located reconstructed luma samples of the luma block associated with the chroma block to be predicted. In particular, for each co-located reconstructed luma sample ( Fig. 9The gray circles in Figure 2, taken from JVET-Y0092) calculate the horizontal and vertical gradients to construct the HoG. Then, the intra prediction mode with the largest histogram magnitude value is selected from the HoG.
[0084] In a variant, in DIMD chroma mode, the intra predictor for the chroma block may be derived based on neighboring reconstructed chroma samples.
[0085] In a variant, the intra predictor for a chroma block may be derived based on co-located reconstructed luma samples and neighboring reconstructed chroma samples of a luma block associated with the chroma block to be predicted.
[0086] When the intra prediction mode derived from the DIMD chroma mode is the same as the intra prediction mode derived from the DM (Direct Mode) mode, the intra prediction mode having the second largest histogram magnitude value is selected as the DIMD chroma mode.
[0087] Direct mode (DM) is a chroma intra prediction mode corresponding to an intra prediction mode that co-locates reconstructed luma samples.
[0088] Then, the non-linear model-based predictor (referred to as non-LM predictor for short) of the chroma block is derived from the non-LM modes selected from the DM mode, the five default modes, and the DIMD chroma mode. The chroma predictor is derived from those non-LM modes, and the selected non-LM mode corresponds to the non-LM predictor that minimizes the rate / distortion tradeoff.
[0089] The five default modes are DC, planar, direct mode, horizontal, and vertical angle prediction.
[0090] DC is an intra prediction mode that uses the average sample value of reference samples to the left and above the block for prediction.
[0091] The planar mode is a weighted average of 4 reference sample values (picked as orthogonal projections of the samples for prediction in the top and left reconstruction regions).
[0092] The horizontal and vertical modes use copies of the reconstructed samples from the left and above, respectively, without interpolation, to predict the sample rows and columns, respectively.
[0093] The non-LM predictor of the chroma block derived from the selected non-LM mode is then fused (blended, mixed) with the LM predictor derived from the MMLM_LT mode as follows:
[0094] pred=(w0*pred0+w1*pred1)>>shift
[0095] Where pred0 is the predictor obtained by applying the non-LM mode, pred1 is the predictor obtained by applying the LM mode, and pred is the final predictor of the chroma block. For I slices (intra-coded slices), the two weights w0 and w1 are determined by the intra-prediction mode of the adjacent chroma blocks, and shift is set to be equal to 2. In particular, when both the upper and left adjacent blocks are encoded in LM mode, {w0,w1}={1,3}; when both the upper and left adjacent blocks are encoded in non-LM mode, {w0,w1}={3,1}; otherwise, {w0,w1}={2,2}. For non-I slices, w0 and w1 are both set to be equal to 2.
[0096] If non-LM mode is selected, a flag is signaled to indicate whether fusion is applied.
[0097] In a variant, for I slices (i.e., intra-frame coded slices), non-LM predictors derived from DM mode, four default modes and DIMD chroma mode can be fused with the LM predictor derived from LM mode, while for non-I slices, only the non-LM predictor derived from DIMD chroma mode can be fused with the LM predictor derived from LM mode using equal weights.
[0098] Chroma Fusion mode can be used with DIMD Chroma (if selected as the best non-LM mode), but any other non-LM mode can be used instead.
[0099] In case LM mode is disabled at the encoder / decoder (e.g. by profiling or due to bitstream constraints), then chroma fusion cannot be applied, thus reducing encoding performance. This can be achieved in the case of applications requiring very low latency / delay (where cross-component tools can be disabled) or in the case of applications with low power requirements where chroma savings are not of utmost importance (e.g. video surveillance on embedded devices).
[0100] The problem to be solved by the present disclosure is to improve the coding efficiency of the state of the art video codec. More particularly, the present disclosure proposes, in a non-limiting manner, to overcome the limitations discussed above.
[0101] At least one exemplary embodiment of the present application has been designed in view of the foregoing. Summary of the invention
[0102] The following section presents a simplified summary of at least one exemplary embodiment in order to provide a basic understanding of some aspects of the present application. This summary is not an exhaustive overview of the exemplary embodiments. It is not intended to identify the key or important elements of the exemplary embodiments. The following summary only presents some aspects of at least one exemplary embodiment in a simplified form as a prelude to a more detailed description provided elsewhere in the document.
[0103] According to a first aspect of the present application, a method for intra-predicting a chroma block of a video image is provided, wherein the method comprises deriving a first predictor of the chroma block according to a first non-linear model-based mode; if deriving the chroma predictor according to a linear model-based mode is disabled, deriving a second predictor of the chroma block according to a second non-linear model-based mode; and determining a final predictor of the chroma block by blending the first predictor and the second predictor.
[0104] In one exemplary embodiment, the first non-linear model-based mode and the second non-linear model-based mode are selected from a set of non-linear model-based modes by minimizing a rate-distortion tradeoff.
[0105] In one exemplary embodiment, the first predictor is derived from a first non-linear model-based pattern based on co-located reconstructed luma samples and / or neighboring reconstructed chroma samples.
[0106] In an exemplary embodiment, the blending of the first predictor and the second predictor is a weighted combination between the first predictor and the second predictor, and the weight of the weighted combination is derived based on the presence of samples predicted by the first predictor or the second predictor in the top, left, or upper-left neighbor of the chroma block.
[0107] In an exemplary embodiment, the first non-linear model based mode is a non-angular intra prediction mode, and the second non-linear model based mode is an angular intra prediction mode.
[0108] According to a second aspect of the present application, a method for encoding a video image block into a bit stream of encoded video image data is provided, and the video image block includes a chrominance block of the video image predicted according to the method according to the first aspect.
[0109] In an exemplary embodiment, the encoding method further comprises writing data indicating whether to enable deriving the chrominance predictor according to the linear model based mode into the bitstream.
[0110] According to a third aspect of the present application, a method for decoding a video image block from a bit stream of encoded video image data is provided, which comprises predicting a chrominance block of the video image block according to the first aspect.
[0111] In an exemplary embodiment, the decoding method further comprises reading data indicating whether to enable deriving the chrominance predictor according to the linear model based mode from the bitstream.
[0112] In an exemplary embodiment, data indicating whether to enable deriving the chrominance predictor according to the linear model-based mode is written to / read from the bitstream via a syntax element, which is equal to 0 to indicate that blending the first predictor and the second predictor is disabled, equal to 1 to indicate that the first predictor is blended with the predictor derived from the linear model-based mode, and equal to 2 to indicate that the first predictor is blended with the second predictor when the first non-linear model-based predictor and the second non-linear model-based predictor are different.
[0113] According to a fourth aspect of the present application, there is provided a bit stream of encoded video image data generated by one of the methods according to the second aspect of the present application.
[0114] According to a fifth aspect of the present application, an apparatus is provided, which includes a tool for executing one of the methods according to the first and / or second and / or third aspect of the present application.
[0115] According to the sixth aspect of the present application, a computer program product is provided, which includes instructions. When the program is executed by one or more processors, the instructions cause the one or more processors to execute the method according to the first and / or second and / or third aspect of the present application.
[0116] According to a seventh aspect of the present application, a non-transitory storage medium is provided, which carries program code instructions for executing the method according to the first and / or second and / or third aspect of the present application.
[0117] Specific properties of at least one embodiment of the exemplary embodiments and other objects, advantages, features and uses of at least one embodiment of the exemplary embodiments will become apparent from the following description of the examples in conjunction with the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0118] Reference will now be made, by way of example, to the accompanying drawings which show exemplary embodiments of the present application, and in which:
[0119] Figure 1 An example of a coding tree unit according to HEVC is shown;
[0120] Figure 2 An example of partitioning a coding unit into prediction units according to HEVC is shown;
[0121] Figure 3 An example of CTU partitioning according to VVC is shown;
[0122] Figure 4 An example of supported partitioning modes in multi-type tree partitioning according to VVC is shown;
[0123] Figure 5 A schematic block diagram showing the steps of a method 100 for encoding a video image VP according to the prior art;
[0124] Figure 6 A schematic block diagram showing the steps of a method 200 for decoding a video image VP according to the prior art;
[0125] Figure 7 Schematically illustrates a method of deriving a chroma block predictor from a DIMD mode according to the prior art;
[0126] Figure 8 A method of blending multiple chromaticity predictors according to the prior art is schematically shown;
[0127] Fig. 9 schematically illustrates an example of co-located luma samples of a chroma block according to the prior art;
[0128] Fig.10 A block diagram schematically illustrates a method 300 for predicting a chrominance block according to an exemplary embodiment; and
[0129] Fig.11 A schematic block diagram of an example of a system in which various aspects and exemplary embodiments are implemented is illustrated.
[0130] Similar or identical elements are denoted by the same reference numerals. DETAILED DESCRIPTION
[0131] At least one of the exemplary embodiments will be described more fully below with reference to the accompanying drawings, wherein an example of at least one exemplary embodiment of the exemplary embodiments is depicted. However, the exemplary embodiments can be implemented in many alternative forms and should not be interpreted as being limited to the examples set forth herein. Thus, it should be understood that the exemplary embodiments are not intended to be limited to the specific forms disclosed. On the contrary, the present application is intended to cover all modifications, equivalents, and alternatives that fall within the spirit and scope of the present application.
[0132] At least one of these aspects generally relates to video image encoding and decoding, another aspect generally relates to transmitting a provided or encoded bitstream, and one of the other aspects relates to receiving / accessing a decoded bitstream.
[0133] At least one of these exemplary embodiments is described for encoding / decoding video images, but is extended to encoding / decoding video images (image sequences) in that each video image is sequentially encoded / decoded as described below.
[0134] In addition, at least one exemplary embodiment is not limited to 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 Basic Video Coding), HEVC (ISO / IEC 23008-2 High Efficiency Video Coding, ITU-T Recommendation H.265, https: / / www.itu.int / rec / T-REC-H.265-202108-P / en), VVC (ISO / IEC 23090-3 General Video Coding, ITU-T Recommendation H.266, https: / / www.itu.int / rec / T-REC-H.266-202008-I / en), but may be applicable to other standards and recommendations such as AV1 (AOMedia Video 1, http: / / aomedia.org / av1 / specification / ). The at least one exemplary embodiment may be applicable to existing or future developed standards and recommendations and extensions of any such standards and recommendations. Unless otherwise specified or technically excluded, the aspects described in the present application may be used alone or in combination.
[0135] In general, the present application relates to intra-predicting a chroma block of a video image into a bitstream of encoded video image data. A first predictor for the chroma block is derived according to a first non-linear model-based mode. If deriving the chroma predictor according to the linear model-based mode is disabled, a second predictor for the chroma block is derived according to a second non-linear model-based mode, and a final predictor for the chroma block is determined by blending the first predictor and the second predictor.
[0136] The present disclosure improves chroma prediction as defined in VVC and thus improves global coding performance, since chroma prediction can be based on blending multiple predictions even if the linear model based mode is disabled or deactivated. It allows the use of chroma blending (fusion) to be exploited in any case.
[0137] Fig.10 A block diagram of a method 300 for predicting a chroma block according to an exemplary embodiment is schematically shown.
[0138] The method 300 is applied in both the encoding method 100 and the decoding method 200 for predicting a chroma block associated with a current CU.
[0139] In step 310, a first predictor pred1 of the chroma block is derived based on a first non-LM mode.
[0140] In step 320 , the method 300 checks whether deriving the chrominance predictor based on the LM mode is disabled.
[0141] If deriving the chroma predictor based on LM mode is enabled, the final chroma prediction for the chroma block is obtained, as discussed above in the introductory part of this application.
[0142] If deriving the chroma predictor based on the LM mode is disabled, then in step 330, a second predictor pred2 of the chroma block is derived based on the second non-LM mode, and in step 340, a final predictor pred of the chroma block is derived by blending the first predictor and the second predictor:
[0143] pred=(w1*pred1+w2*pred2)>>shift
[0144] where shift may be equal to 2.
[0145] In an exemplary embodiment, data is signaled into the bitstream in step 350. The data indicates whether the derivation of the chrominance predictor based on the LM mode is enabled.
[0146] Signaling data into a bitstream refers to writing data into the bitstream during method 100 and reading data from the bitstream during method 200 .
[0147] In an exemplary embodiment, the first predictor is derived from a first non-linear model-based pattern based on co-located reconstructed luma samples and / or based on neighboring reconstructed chroma samples.
[0148] For example, the first predictor is derived from DIMD luminance (as direct mode) or DIMD chrominance mode.
[0149] In one exemplary embodiment, the first non-LM mode and the second non-LM mode are selected from a set of non-LM modes by minimizing a rate-distortion tradeoff.
[0150] For example, the group of non-LM modes includes a planar prediction mode, a DC mode, a DM mode, or a DIMD mode. The chrominance predictor of the chrominance block is derived based on each mode in the group of modes. Then, a rate / distortion cost function is evaluated for each chrominance predictor, and the first non-LM mode corresponding to the best non-LM predictor is selected, i.e., minimizing the rate / distortion cost function (rate / distortion optimization). Then, each non-LM mode can be sorted based on the rate / distortion cost function, and the second non-linear model-based mode can be a second ordered non-NL model mode.
[0151] In a variation, the first non-linear model-based mode is a DIMD mode.
[0152] In a variation, the weights w1 and w2 of the first non-LM mode and the second non-LM mode are respectively equal to 1 / 2.
[0153] In a variant, w1 = 3 / 4, and w2 = 1 / 4.
[0154] In a variant, weights w1 and w2 are derived according to the presence of samples predicted by the first predictor or the second predictor in the top, left or top-left neighbour of the chroma block.
[0155] For example, if the best (first) non-LM mode is the intra prediction mode of the top and left neighbors, the weight is set to w0= 3 / 4 and w1=1 / 4. If the first non-LM mode is the intra prediction mode of the top or left neighbor, the weights are set to w0=2 / 4 and w1=2 / 4. If the first non-LM mode is not the intra prediction mode of the top and left neighbors, the weights are set to w0=1 / 4 and w1=3 / 4.
[0156] In a variant, the first non-LM mode and the second non-LM mode correspond to intra prediction modes having two maximum histogram magnitude values for performing chroma prediction of the chroma block based on the DIMD chroma mode.
[0157] In a variation, at most one of the first non-LM mode and the second non-LM mode is a DIMD mode.
[0158] In a variant, in step 340, the final predictor for the chroma block is determined by blending the first predictor and the second predictor and a third predictor derived from planar prediction, DC or DM mode with a weight equal to 1 / 3.
[0159] In a variant, chroma fusion is applied only when the best non-LM mode is different from the default mode (including DC, DM, planar, ...) which is selected as the second non-LM mode.
[0160] In a variant, chroma fusion is applied only when the best non-LM mode is different from the default mode (including DC, DM, planar, ...). In a variant, weights wi (i=1, 2 or 3) are assigned according to the presence of samples predicted by the first predictor or the second predictor or the third predictor in the top, left or upper-left neighbor of the chroma block.
[0161] A score is determined for each predictor in order to set the chrominance fusion weights. Initialized to 1, each score is increased by 1 when a predictor is present. The denominator of each score is equal to the number of neighbors considered plus 1.
[0162] In a variant, the first non-LM mode is a non-angular intra prediction mode (including DIMD chroma, direct mode, planar, DC, ...) and the second non-LM mode is an angular intra prediction mode.
[0163] In a variant, the angular intra prediction mode is carried in the bitstream as an intra chroma mode or derived from the co-located reconstructed luma samples (ie, DM).
[0164] In a variant, if the second non-LM mode is identical to the first non-LM mode, step 350 of method 300 is disabled.
[0165] In a variation, if the first non-LM based mode is planar or DC, step 350 of method 300 is disabled.
[0166] In a variant, if deriving the chroma predictor based on the LM mode is enabled, the LM mode competes (at the encoder) with the second non-LM mode, i.e. the first non-LM mode is merged with the second non-LM mode or the LM mode according to rate / distortion optimization.
[0167] In an exemplary embodiment of step 350, data indicating whether to enable the derivation of the chrominance predictor based on the LM mode is written to / read from the bitstream via a syntax element chroma_fusion_mode_idc, wherein chroma_fusion_mode_idc is equal to 0 to indicate that blending of the first predictor and the second predictor is disabled for the current CU / (one or more) coded blocks, when chroma_fusion_mode_idc is equal to 1, indicating that the first non-linear model predictor is blended with the predictor derived from the linear model based mode, and when chroma_fusion_mode_idc is equal to 2, indicating that when the first non-linear model based predictor and the second non-linear model based predictor are different (for example, the first predictor is the best non-LM mode, and the second predictor is the default mode, which includes DM, DC, planar mode...), the first predictor is blended with the second predictor.
[0168] The first non-LM mode can be signaled in the bitstream either in a conventional way (chroma intra-frame prediction mode) or in an implicit way (for example in the case of DIMD chroma, where the DIMD chroma mode is indicated as enabled, but the actual chroma intra-frame prediction mode is derived at the decoder side).
[0169] In a variant, when chroma_fusion_mode_idc is equal to 1, the LM mode is blended with the default mode (including DM or DC or planar prediction mode).
[0170] In a variant, if deriving the chroma predictor according to a linear model based mode is enabled in a video image or a slice or CTU or CU of a video image, chroma blending is applied between the best non-LM mode and the LM mode, and if deriving the chroma predictor according to a linear model based mode is disabled in a slice or CTU or CU of a video image, chroma blending / fusion is applied between the best non-LM mode and a default mode.
[0171] Fig.11 A schematic block diagram illustrating an example of a system 700 in which various aspects and exemplary embodiments are implemented is shown.
[0172] The system 700 may be embedded as one or more devices, including various components described below. In various exemplary embodiments, the system 700 may be configured to implement one or more aspects described in this application.
[0173] Examples of equipment that may constitute all or part of system 700 include personal computers, laptop computers, smart phones, tablet computers, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected household appliances, connected vehicles and their associated processing systems, head-mounted display devices (HMD, perspective glasses), projectors (projectors), "caves" (systems including multiple displays), servers, video encoders, video decoders, post-processors for processing outputs from video decoders, pre-processors for providing inputs to video encoders, web servers, video servers (e.g., broadcast servers, video-on-demand servers, or network servers), static or video cameras, encoding or decoding chips, or any other communication devices. The elements of system 700 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 700 may be distributed across multiple ICs and / or discrete components. In various exemplary embodiments, system 700 may be coupled to other similar systems or other electronic devices via, for example, a communication bus or by dedicated input and / or output ports.
[0174] The system 700 may include at least one processor 710 configured to execute instructions loaded therein for implementing, for example, various aspects described in the present application. The processor 710 may include embedded memory, input-output interfaces, and various other circuits known in the art. The system 700 may include at least one memory 720 (e.g., a volatile memory device and / or a non-volatile memory device). The system 700 may include a storage device 740, which may include a non-volatile memory and / or a volatile memory, including but not limited to an electrically erasable programmable read-only memory (EEPROM), a read-only memory (ROM), a programmable read-only memory (PROM), a random access memory (RAM), a dynamic random access memory (DRAM), a static random access memory (SRAM), a flash memory, a disk drive, and / or an optical drive. As a non-limiting example, the storage device 740 may include an internal storage device, an attached storage device, and / or a network accessible storage device.
[0175] The system 700 may include an encoder / decoder module 730, which is configured to, for example, process data to provide encoded / decoded video image data, and the encoder / decoder module 730 may include its own processor and memory. The encoder / decoder module 730 may represent a module (one or more) that may be included in a device to perform encoding and / or decoding functions. As known, a device may include one or both of the encoding and decoding modules. In addition, the encoder / decoder module 730 may be implemented as a separate element of the system 700, or may be incorporated into the processor 710 as a combination of hardware and software known to those skilled in the art.
[0176] Program code to be loaded onto the processor 710 or the encoder / decoder 730 to perform various aspects described in the present application may be stored in the storage device 740 and subsequently loaded onto the memory 720 to be executed by the processor 710. According to various exemplary embodiments, during the execution of the processes described in the present application, one or more of the processor 710, the memory 720, the storage device 740, and the encoder / decoder module 730 may store one or more of various items. Such stored items may include, but are not limited to, video image data, information data for encoding / decoding video image data, bit streams, matrices, variables, and intermediate or final results of equations, formulas, operations, and operation logic processing.
[0177] In several exemplary embodiments, memory internal to the processor 710 and / or encoder / decoder module 730 may be used to store instructions and provide working memory for processes that may be performed during encoding or decoding.
[0178] However, in other exemplary embodiments, memory external to the processing device (e.g., the processing device may be the processor 710 or the encoder / decoder module 730) is used for one or more of these functions. The external memory may be a memory 720 and / or a storage device 740, such as a dynamic volatile memory and / or a non-volatile flash memory. In several exemplary embodiments, an external non-volatile flash memory is used to store an operating system for the television. In at least one exemplary embodiment, a fast external dynamic volatile memory such as RAM may be used as working memory for video encoding and decoding operations, such as 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, AV1, etc.
[0179] As indicated in block 790, input to the elements of system 700 may be provided through various input devices. Such input devices include, but are not limited to, (i) an RF section that may receive an RF signal transmitted over the air, for example, by a broadcast device, (ii) a composite input terminal, (iii) a USB input terminal, (iv) an HDMI input terminal, (v) when the present disclosure is implemented in the automotive field, a bus such as a CAN (Controller Area Network), CAN FD (Controller Area Network Flexible Data Rate), FlexRay (ISO 17458), or Ethernet (ISO / IEC 802-3) bus.
[0180] In various exemplary embodiments, the input device of block 790 has associated corresponding input processing elements, as known in the art. For example, the RF portion may be associated with elements necessary for: (i) selecting a desired frequency (also referred to as selecting a signal, or band-limiting a signal to a frequency band), (ii) down-converting the selected signal, (iii) band-limiting the frequency band again to a narrower frequency band to select a signal band that may be referred to as a channel in certain exemplary embodiments, (iv) demodulating the down-converted and band-limited signal, (v) performing error correction, and (vi) demultiplexing to select a desired packet stream. The RF portion of various exemplary embodiments may include one or more elements that perform these functions, such as a frequency selector, a signal selector, a band limiter, a channel selector, a filter, a down-converter, a demodulator, an error corrector, and a demultiplexer. The RF portion may include a tuner that performs various of these functions, including, for example, down-converting a received signal to a lower frequency (e.g., an intermediate frequency or a near-baseband frequency) or a baseband.
[0181] 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 filtering again to a desired frequency band.
[0182] Various exemplary embodiments rearrange the order of the above-described (and other) elements, remove some of these elements, and / or add other elements that perform similar or different functions.
[0183] Adding components may include inserting components between existing components, such as, for example, inserting an amplifier and an analog-to-digital converter.In various exemplary embodiments, the RF portion may include an antenna.
[0184] In addition, the USB and / or HDMI terminals may include corresponding interface processors for connecting the system 700 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, in a separate input processing IC or in the processor 710 when necessary. Similarly, various aspects of USB or HDMI interface processing may be implemented in a separate interface IC or in the processor 710 when necessary. The demodulated, error-corrected, and demultiplexed streams may be provided to various processing elements, including, for example, the processor 710 and the encoder / decoder 730, which operate in conjunction with memory and storage elements to process the data streams for presentation on output devices when necessary.
[0185] The various elements of system 700 may be provided within an integrated housing. Within the integrated housing, the various elements may be interconnected and data transferred between them using a suitable connection arrangement 790, such as an internal bus (including an I2C bus), wiring, and printed circuit boards known in the art.
[0186] The system 700 may include a communication interface 750 that enables communication with other devices via a communication channel 751. The communication interface 750 may include, but is not limited to, a transceiver configured to send and receive data over the communication channel 751. The communication interface 750 may include, but is not limited to, a modem or a network card, and the communication channel 751 may be implemented, for example, within a wired and / or wireless medium.
[0187] In various exemplary embodiments, a Wi-Fi network such as IEEE 802.11 may be used to stream data to the system 700. The Wi-Fi signals of these exemplary embodiments may be received via a communication channel 751 suitable for Wi-Fi communications and a communication interface 750. The communication channel 751 of these exemplary embodiments may typically connect to an access point or router that provides access to external networks including the Internet to allow streaming applications and other over-the-top communications.
[0188] Other exemplary embodiments may provide streamed data to system 700 using a set-top box that delivers the data through an HDMI connection to input block 790 .
[0189] Still other exemplary embodiments may provide streaming data to the system 700 using an RF connection to input block 790 .
[0190] The streamed data may be used as a means of signaling information used by the system 700. The signaling information may include the bitstream B and / or information such as 7a the number of pixels of a video image and / or any encoding / decoding setting parameters.
[0191] It should be appreciated that signaling may be implemented in a variety of ways. For example, in various exemplary embodiments, one or more syntax elements, flags, etc. may be used to signal information to a corresponding decoder.
[0192] The system 700 may provide output signals to various output devices, including a display 761, speakers 771, and other peripherals 781. In various examples of the exemplary embodiments, the other peripherals 781 may include one or more of a stand-alone DVR, a disk player, a stereo system, a lighting system, and other devices that provide functionality based on the output of the system 700.
[0193] In various exemplary embodiments, control signals may be communicated between the system 700 and the display 761, speakers 771, or other peripheral devices 781 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.
[0194] Output devices may be communicatively coupled to system 700 through respective interfaces 760 , 770 , and 780 via dedicated connections.
[0195] Optionally, output devices may be connected to the system 700 using a communication channel 751 via the communication interface 750. The display 761 and the speaker 71 may be integrated into a single unit with the other components of the system 700 in an electronic device such as, for example, a television.
[0196] In various exemplary embodiments, the display interface 760 may include a display driver such as, for example, a timing controller (TCon) chip.
[0197] For example, if the RF portion of input 790 is part of a separate set-top box, then display 761 and speaker 771 may optionally be separate from one or more of the other components. In various exemplary embodiments where display 761 and speaker 771 may 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.
[0198] exist Figures 1 to 11 In the present invention, various methods are described herein, and each method includes one or more steps or actions to implement the described method. Unless a specific order of steps or actions is required for the correct operation of the method, the order and / or use of specific steps and / or actions can be modified or combined.
[0199] Some examples are described about block diagrams and / or operational flow charts. Each square block represents a portion of a circuit element, 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 embodiments, the (one or more) functions marked in the square block may not occur in the order indicated. For example, depending on the functions involved, two square blocks shown in succession can actually be executed substantially concurrently, or sometimes these square blocks can be executed in reverse order.
[0200] The embodiments and aspects described herein may be implemented in, for example, a method or process, an apparatus, a computer program, a data stream, a bit stream, or a signal. Even if only discussed in the context of a single form of embodiment (e.g., discussed only as a method), the embodiments of the features discussed may also be implemented in other forms (e.g., an apparatus or a computer program).
[0201] The method may be implemented in, for example, a processor, which generally refers to a processing device, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. The processor also includes a communication device.
[0202] In addition, 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 a computer-readable program code implemented thereon that can be executed by a computer. Considering the inherent ability to store information therein and the inherent ability to provide information retrieval therefrom, the computer-readable storage medium used herein can be considered as a non-transitory storage medium. The computer-readable storage medium can be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared or semiconductor system, device or device, or any suitable combination of the foregoing. It should be appreciated that although more specific examples of computer-readable storage media to which the present exemplary embodiment can be applied are provided below, as those of ordinary skill in the art will readily recognize, it is merely an illustrative and non-exhaustive list: portable computer floppy disk; hard disk; read-only memory (ROM); erasable programmable read-only memory (EPROM or flash memory); portable compact disk read-only memory (CD-ROM); optical storage device; magnetic storage device; or any suitable combination of the foregoing.
[0203] The instructions may form an application program tangibly embodied on a processor-readable medium.
[0204] For example, instructions may be in hardware, firmware, software, or a combination. For example, instructions may be found in an operating system, a separate application, or a combination of both. Thus, a processor may be characterized as, for example, a device configured to perform a process and a device including a processor-readable medium (such as a storage device) having instructions for performing the process. Additionally, in addition to or in lieu of instructions, a processor-readable medium may store data values generated by an embodiment.
[0205] Device can be realized in suitable hardware, software and firmware for example.The example of such device comprises personal computer, laptop computer, smart phone, tablet computer, digital multimedia set-top box, digital television receiver, personal video recording system, connected household appliances, head-mounted display device (HMD, perspective glasses), projector (projector), "cave" (system including multiple displays), server, video encoder, video decoder, post-processor for processing the output from video decoder, pre-processor for providing input to video encoder, web server, set-top box, and any other equipment for processing video image, or other communication equipment.It should be clear that equipment can be mobile and even installed in a mobile vehicle.
[0206] Computer software may be implemented by processor 710 or by hardware, or by a combination of hardware and software. As a non-limiting example, exemplary embodiments may also be implemented by one or more integrated circuits. Memory 720 may be of any type suitable for the technical environment and may be implemented using any appropriate data storage technology (such as optical memory devices, magnetic memory devices, semiconductor-based memory devices, fixed memory, and removable memory, as non-limiting examples). Processor 710 may be of any type suitable for the technical environment and may encompass one or more of a microprocessor, a general-purpose computer, a special-purpose computer, and a processor based on a multi-core architecture, as non-limiting examples.
[0207] As will be apparent to one of ordinary skill in the art, embodiments may generate various signals formatted to carry information that may be stored or transmitted, for example. The information may include, for example, instructions for executing a method or data generated by one of the described embodiments. For example, a signal may be formatted to carry a bit stream of the described exemplary embodiments. Such a signal may be formatted, for example, as an electromagnetic wave (e.g., using a radio frequency portion of a spectrum) or a baseband signal. Formatting may include, for example, encoding a data stream and modulating a carrier with the encoded data stream. The information carried by the signal may be, for example, analog or digital information. As is known, the signal may be transmitted over a variety of different wired or wireless links. The signal may be stored on a processor readable medium.
[0208] The terms used herein are only used to describe the purpose of specific exemplary embodiments and are not intended to be limited. As used herein, the singular "a / kind (a)", "an / kind (an)" and "the / said (the)" may also be intended to include 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 existence of stated, for example, features, integers, steps, operations, elements and / or components, but do not exclude the existence or addition of one or more other features, integers, steps, operations, elements, components and / or their groups. Moreover, when an element is referred to as "response" or "connection" or "associated" to another element, it may directly respond or be connected to another element or be associated with another element, or there may be an intermediate element. On the contrary, when an element is referred to as "direct response" or "direct connection" to another element or "directly associated" with another element, there is no intermediate element.
[0209] It should be appreciated that use of any of the symbols / terms " / ", "and / or", and "at least one of" may be intended to encompass selection of only the first listed option (A), or only the second listed option (B), or both options (A and B), such as in the case of "A / B", "A and / or B", and "at least one of A and B". As a further example, in the case of "A, B, and / or C" and "at least one of A, B, and C", such wording is intended to encompass 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 all three options (A and B and C). This may be extended to as many items as listed, as will be apparent to one of ordinary skill in this and related arts.
[0210] Various numerical values may be used in the present application. Specific values may be used for example purposes and the described aspects are not limited to these specific values.
[0211] It will be understood that although the terms first, second, etc. can be used to describe various elements in this article, these elements are not limited by these terms. These terms are only used to distinguish one element from another element. For example, without departing from the teaching of this application, the first element can be referred to as the second element, and similarly, the second element can be referred to as the first element. There is no suggestion of sorting between the first element and the second element.
[0212] References to "an exemplary embodiment" or "exemplary embodiments" or "one implementation" or "implementation" and other variations thereof are frequently used to convey that a particular feature, structure, characteristic, etc. (described in conjunction with an exemplary embodiment / implementation) is included in at least one exemplary embodiment / implementation. Thus, the appearances of the phrases "in an exemplary embodiment" or "in an exemplary embodiment" or "in one implementation" or "in an implementation" and any other variations appearing in various places in this application are not necessarily all referring to the same exemplary embodiment.
[0213] Similarly, references herein to "according to an exemplary embodiment / example / implementation" or "in an exemplary embodiment / example / implementation" and other variations thereof 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 in various places in this application do not necessarily all refer to the same exemplary embodiment / example / implementation, nor are separate or alternative exemplary embodiments / examples / implementations necessarily mutually exclusive of other exemplary embodiments / examples / implementations.
[0214] Reference numerals appearing in the claims are for illustration purposes only and have no limiting effect on the scope of the claims.The present exemplary embodiments / examples and variants may be employed in any combination or sub-combination although not explicitly described.
[0215] When a figure is presented as a flow chart, it should be understood that it also provides a block diagram of the corresponding apparatus. Similarly, when a figure is presented as a block diagram, it should be understood that it also provides a flow chart of the corresponding method / process.
[0216] While some diagrams include arrows on communication paths to illustrate a primary direction of communication, it should be understood that communication can occur in the opposite direction to the depicted arrows.
[0217] Various embodiments relate to decoding. As used in this application, "decoding" may encompass, for example, all or part of a process performed on a received video image (which may include a received bitstream encoding one or more video images) 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 of the processes typically performed by a decoder. In various exemplary embodiments, for example, such a process also or alternatively includes a process performed by a decoder of the various embodiments described in this application.
[0218] As a further example, in one exemplary embodiment, "decoding" may refer only to dequantization, in one exemplary embodiment, "decoding" may refer to entropy decoding, in another exemplary embodiment, "decoding" may refer only to differential decoding, and in another exemplary embodiment, "decoding" may refer to a combination of dequantization, entropy decoding, and differential decoding. Whether the phrase "decoding process" may be intended to specifically refer to a subset of operations, or to generally refer to a broader decoding process will be clear, and is believed to be well understood by those skilled in the art, based on the context of the particular description.
[0219] Various embodiments are all related to encoding. In a manner similar to the above discussion about "decoding", "encoding" as used in this application can cover, for example, all or part of a process performed on an input video image to produce an output bit stream. In various exemplary embodiments, such a process includes one or more of the 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 in this application.
[0220] As a further example, in one exemplary embodiment, "encoding" may refer only to quantization, in one exemplary embodiment, "encoding" may refer only to entropy coding, in another exemplary embodiment, "encoding" may refer only to differential coding, and in another exemplary embodiment, "encoding" may refer to a combination of quantization, differential coding, and entropy coding. Based on the context of the particular description, whether the phrase "encoding process" may be intended to specifically refer to a subset of operations, or to generally refer to a broader encoding process will be clear and is believed to be well understood by those skilled in the art.
[0221] Additionally, the present application may refer to "obtaining" various information. Obtaining information may include, for example, one or more of estimating information, calculating information, predicting information, or retrieving information from a memory, processing information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information.
[0222] Additionally, this application may refer to "receiving" various information. Receiving information may include, for example, one or more of accessing information or receiving information from a communication network.
[0223] Moreover, as used herein, the word "signal" especially refers to indicating something to a corresponding decoder, etc. For example, in some exemplary embodiments, the encoder signals specific information, such as encoding parameters or encoded video image data. In this way, in exemplary embodiments, the same parameter can be used on the encoder side and the decoder side. Therefore, for example, the encoder can transmit (explicit signaling) specific parameters to the decoder so that the decoder can use the same specific parameters. On the contrary, if the decoder already has specific parameters and other parameters, signaling can be used without transmission (implicit signaling) to simply allow the decoder to know and select specific parameters. By avoiding the transmission of any actual function, bit saving is achieved in various exemplary embodiments. It should be recognized that signaling can be completed in a variety of 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 word "signal" is mentioned above, the word "signal" can also be used as a noun in this article.
[0224] A number of embodiments have been described. However, it should be understood that various modifications may be made. For example, elements of different embodiments may be combined, supplemented, modified, or removed to produce other embodiments. In addition, it will be understood by those of ordinary skill that other structures and processes may replace the disclosed structures and processes, and that the resulting embodiments will perform at least substantially the same (one or more) functions in at least substantially the same (one or more) manners to achieve at least substantially the same (one or more) results as the disclosed embodiments. Thus, the present application contemplates these and other embodiments.
Claims
1. A method for intra-predicting a chrominance block of a video image, wherein the method comprises: - deriving (310) a first predictor for said chrominance block according to a first non-linear model-based mode; - If you disable deriving the chrominance predictor according to the linear model based mode, then i. deriving (340) a second predictor of the chrominance block according to a second nonlinear model-based mode; ii. Determining (350) a final predictor for the chroma block by blending the first predictor and the second predictor. 2 . The method of claim 1 , wherein the first non-linear model-based mode and the second non-linear model-based mode are selected from a set of non-linear model-based modes by minimizing a rate-distortion tradeoff.
3. The method according to claim 1 or 2, wherein the first predictor is derived from a first non-linear model-based pattern based on co-located reconstructed luma samples and / or adjacent reconstructed chroma samples.
4. The method according to any one of claims 1 to 4, wherein the blending of the first predictor and the second predictor is a weighted combination between the first predictor and the second predictor, and the weight of the weighted combination is derived according to the presence of the sample predicted by the first predictor or the second predictor in the top, left or upper-left neighbor of the chroma block.
5. The method according to one of claims 1 to 5, wherein the first non-linear model based mode is a non-angular intra prediction mode, and the second non-linear model based mode is an angular intra prediction mode.
6. A method of encoding a video image block into a bit stream of encoded video image data, the video image block comprising a chrominance block of the video image predicted according to a method according to one of claims 1 to 7.
7. The method of claim 6, wherein the method further comprises writing (350) data into the bitstream indicating whether deriving a chrominance predictor according to a linear model based mode is enabled.
8. A method for decoding a video image block from a bit stream of encoded video image data, comprising predicting a chrominance block of the video image block according to a method according to one of claims 1 to 7.
9. The method of claim 8, wherein the method further comprises reading (350) from the bitstream data indicating whether deriving a chrominance predictor according to a linear model based mode is enabled.
10. The method according to claim 7 or 9, wherein data indicating whether to enable deriving a chrominance predictor according to a linear model-based mode is written to / read from the bitstream via a syntax element, the syntax element being equal to 0 to indicate that blending the first predictor and the second predictor is disabled, equal to 1 to indicate that the first predictor is blended with a predictor derived from a linear model-based mode, and equal to 2 to indicate that the first predictor is blended with the second predictor when the first non-linear model-based predictor and the second non-linear model-based predictor are different.
11. A bit stream formatted to include encoded video image data and information data obtained from the method of claim 7 or 10.
12. An apparatus comprising means for performing the method of any one of claims 1 to 5, the method of any one of claims 6 to 7, or the method of any one of claims 8 to 10.
13. A computer program product comprising instructions which, when the program is executed by one or more processors, cause the one or more processors to perform the method of any one of claims 1 to 5, the method of any one of claims 6 to 7, or the method of any one of claims 8 to 10.
14. A non-transitory storage medium carrying program code instructions for executing the method of any one of claims 1 to 5, the method of any one of claims 6 to 7, or the method of any one of claims 8 to 10.
15. An electronic device, comprising: processor; and a memory for storing instructions executable by the processor; The processor is configured to implement the method of any one of claims 1 to 5, the method of any one of claims 6 to 7, or the method of any one of claims 8 to 10.
Citation Information
Patent Citations
A method for encoding an input video comprising a luma component and two chroma components, the method comprising reshaping of said input video based on reshaping functions
CN109155859A
Method and apparatus for video coding using decoder side intra prediction derivation
US20190215521A1
Intra-prediction-based image coding method and device therefor
US20210112263A1
Method and apparatus of encoding or decoding video data with intra prediction mode mapping
WO2021023158A1
Cross-component prediction using multiple components
WO2021115235A1