Encoding / decoding video image data
By employing a predictor blending technique with a nonlinear model in video coding, the problem of low efficiency in chroma block coding when the linear model is disabled is solved, achieving a more efficient video coding effect.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- BEIJING XIAOMI MOBILE SOFTWARE CO LTD
- Filing Date
- 2023-04-24
- Publication Date
- 2026-04-10
AI Technical Summary
Existing video coding techniques have room for improvement in the coding efficiency of intra-frame chroma block prediction, especially when the linear model-based mode is disabled, resulting in poor chroma prediction performance.
A predictor based on a nonlinear model is employed, and when the mode based on a linear model is disabled, the final predictor for the chroma block is determined by blending the first and second nonlinear model-based predictors, thereby improving coding efficiency.
Even with the linear model-based mode disabled, chroma prediction can still improve coding performance by blending multiple predictors, thereby enhancing the overall coding efficiency of video coding.
Smart Images

Figure CN119343923B_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 June 29, 2022, to the European Patent Office, the entire contents of which are incorporated herein by reference. TECHNICAL FIELD
[0003] The present application relates generally to video image encoding and decoding. In particular, but not exclusively, the technical field of the present application relates to intra prediction chroma blocks of video images. BACKGROUND
[0004] This section is intended to introduce the reader to various aspects of art that can be related to various aspects of at least one exemplary embodiment of the present application that is 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 the various aspects of the present application. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.
[0005] A pixel corresponds to the smallest display unit on a screen, which can be composed of one or more light sources (1 for monochrome screens, 3 or more for color screens).
[0006] A video image (also referred to as a frame or image frame) comprises at least one component (also referred to as image component or channel) determined by a specific image / video format, which specifies all the information related to the pixel values and all the information that can be used by a display unit and / or any other device to display and / or decode the video image data related to said video image.
[0007] A video image comprises at least one component, usually represented in the shape of an array of samples.
[0008] A monochrome video image comprises a single component, while a color video image can comprise three components.
[0009] For example, a color video image can comprise a luminance (or brightness) component and two chrominance components when the image / video format is the well-known (Y, Cb, Cr) format, or three color components (one for red, one for green, one for blue) when the image / video format is the well-known (R, G, B) format.
[0010] Each component of a video image can comprise a number of samples relative to the number of pixels of a screen on which the video image is intended to be displayed. In variants, the number of samples contained in a component can be a multiple (or a fraction) of the number of samples contained in another component of the same video image.
[0011] For example, in the case where the video format comprises a luminance component and two chrominance components, such as the (Y, Cb, Cr) format, the chrominance components can contain, depending on the color format considered, a number of samples equal to half the width and / or height with respect to the luminance component.
[0012] A sample is the smallest unit of visual information that composes a component of a video image. A sample value can be, for example, a luminance or chrominance value or a color value in (R, G, B) format.
[0013] A pixel value is the value of a screen pixel. For monochrome video images, a pixel value can be represented by one sample, for color video images, a pixel value can be represented by a plurality of co-located samples. Co-located samples associated with a pixel mean samples corresponding to the position of the pixel in the screen.
[0014] A video image is generally considered as a set of pixel values, each pixel being represented by at least one sample.
[0015] A block of a video image is a set of samples of one component of the video image. When the image / video format is the well-known (Y, Cb, Cr) format, one can consider blocks of at least one luminance sample (referred to as luminance blocks) or blocks of at least one chrominance sample (referred to as chrominance blocks), or when the image / video format is the well-known (R, G, B) format, one can consider blocks of at least one color sample.
[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 Versatile Video Coding, ITU-T Recommendation H.266, https: / / www.itu.int / rec / T-REC-H.266-202008-I / en), low-level and high-level image partitioning is provided to divide a video image into image regions, i.e. so-called Coding Tree Units (CTU), the size of which can typically be between 16x16 and 64x64 pixels for HEVC, while for VVC, the size of the Coding Tree Units (CTU) can be 32x32, 64x64 or 128x128 pixels.
[0018] The CTU partitioning of a video picture forms a grid of CTUs of fixed size, i.e. a CTU grid, where the upper and left boundaries coincide spatially with the upper and left borders of the video picture. The CTU grid represents the spatial partitioning of the video picture.
[0019] In VVC and HEVC, the CTU size (CTU width and CTU height) of all CTUs of a 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) can be equal to 128 (CTU DW = CTU DH = 128). The default CTU size (height, width) is coded into the bitstream, e.g. at the sequence level in the sequence parameter set (SPS).
[0020] The spatial position of a CTU in the CTU grid is determined according to a CTU address ctuAddr defining the spatial position of the top-left corner of the CTU from the origin. As Figure 1 illustrated, the CTU address can define the spatial position from the top-left corner of a higher-level spatial structure S containing the CTU.
[0021] A coding tree is associated with each CTU to determine the tree partitioning of the CTU.
[0022] As Figure 1 illustrated, in HEVC, the coding tree is a quad-tree partitioning of the CTU, where each leaf is called a coding unit (CU). The spatial position of a CU in the video picture is defined by a CU index cuIdx indicating the spatial position from the top-left corner of the CTU. The CU is spatially partitioned into one or more prediction units (PUs). The spatial position of a PU in the video picture VP is defined by a PU index puIdx defining the spatial position from the top-left corner of the CTU, and the spatial position of the elements of the partitioned PU is defined by a PU partition index puPartIdx defining the spatial position from the top-left corner of the PU. Each PU is assigned some intra- or inter-prediction data.
[0023] The intra- or inter-encoding mode is assigned at the CU level. This means that the same intra- / inter-encoding mode is assigned to each PU of a CU, although the prediction parameters differ from PU to PU.
[0024] A CU can also be spatially partitioned into one or more transform units (TUs) according to a quadtree called transform tree. A transform unit is a leaf of the transform tree. The spatial position of a TU in the video picture is defined by a TU index tuIdx which defines a spatial position from the top-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 the encoding or decoding of the image block.
[0025] The PU partition types present in HEVC are illustrated as Figure 2 They include square partitions (2Nx2N and NxN), which are the only partitions used in both intra and inter predicted CUs; symmetric non-square partitions (2NxN, Nx2N, used only in inter predicted CUs); and asymmetric partitions (used only in inter predicted CUs). For example, PU type 2Nx nU represents an asymmetric horizontal partition of a PU, with the smaller partition on top. According to another example, PU type 2Nx nL represents an asymmetric horizontal partition of a PU, with the smaller partition on the bottom.
[0026] As illustrated in Figure 3 In VVC, the coding tree starts from a root node, i.e. a CTU. Next, a quadtree (or quaternary tree) partitioning divides the root node into 4 nodes corresponding to 4 sub-blocks of equal size (solid lines). Next, the quaternary tree (or quadtree) leaves can then be further partitioned by a so-called multi-type tree, which involves a binary or ternary split according to one of the 4 splitting modes illustrated in Figure 4 These splitting types are vertical and horizontal binary splitting modes, noted SBTV and SBTH; and vertical and horizontal ternary splitting modes SPTTV and STTH.
[0027] In the case of a joint coding tree shared by the luma and chroma components, the leafs of the coding tree of a CTU are CUs.
[0028] In contrast with HEVC, in VVC, in most cases, CUs, PUs and TUs have equal size, which means that, unless in some specific coding modes, a coding unit is not generally partitioned into PUs or TUs.
[0029] Figure 5 and Figure 6 An overview of the video encoding / decoding method used in current video standard compression systems, such as HEVC or VVC, is provided.
[0030] Figure 5 A schematic block diagram illustrating the steps of a method 100 of encoding a video picture VP according to the prior art is shown.
[0031] In step 110, the video picture VP is partitioned into sample blocks and partitioning information data is signaled into the bitstream. Each block comprises samples of one component of the video picture VP. Thus, these blocks comprise the samples defining each component of the video picture VP.
[0032] For example, in HEVC, the picture is divided into coding tree units (CTU). Each CTU can be further subdivided using a quad-tree, where each leaf of the quad-tree represents a coding unit (CU). The partitioning information data can then comprise data describing the CTU and the quad-tree subdivision of each CTU.
[0033] Each sample block (in short, block) can then be a CU (if the CU comprises a single PU) or a PU of a CU.
[0034] Each block is encoded along a coding loop (also called "in-loop") using an intra or inter prediction mode.
[0035] Intra prediction (step 120) uses intra prediction data. Intra prediction consists in predicting the current block by means of an intra prediction block based on already encoded, decoded and reconstructed samples located around the current block (typically on the top and on the 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 for predictively encoding the current video picture. In single direction motion estimation / compensation, the candidate reference block belongs to a single reference picture of a reference picture list denoted L0 or L1, in bi-directional motion estimation / compensation, the candidate reference block is derived from a reference block of reference picture list L0 and a reference block of reference picture list L1.
[0037] For example, a good predictor of the current block is a candidate reference block that is similar to the current block. It can also correspond to a reference block that provides a good trade-off between its similarity with the current block and the rate cost of the motion information needed to indicate its temporal prediction for the current block.
[0038] The output of the motion estimation step 130 is inter prediction data, which includes motion information associated with the current block and other information used to obtain the same prediction block at the encoding / decoding side. Typically, the motion information includes one motion vector and a reference picture index for single-direction estimation / compensation, and two motion vectors and two reference picture indexes for bi-directional estimation / compensation. Next, motion compensation (step 135) obtains the prediction block by means of the motion vector(s) and the reference picture index(es) determined by the motion estimation step 130. Basically, the reference block belonging to the selected reference picture and pointed by the motion vector can be used as the prediction block for the current block. Moreover, since the motion vector is expressed with a fraction of an integer pixel position (this is referred to as sub-pixel accuracy motion vector representation), motion compensation usually involves a spatial interpolation of some reconstructed samples of the reference picture to compute the prediction block.
[0039] The prediction information data is signaled into the bitstream. The prediction information can include the prediction mode (intra or inter or skip), the intra / inter prediction data and any other information needed to obtain the same prediction block at the decoding side.
[0040] The method 100 optimizes the rate-distortion trade-off by considering the encoding of the prediction residual block computed, for example, by subtracting the candidate prediction block from the current block, and the signaling of the prediction information data needed at the decoding side to determine said candidate prediction block, to select one prediction mode (intra or inter prediction mode).
[0041] Generally, the best prediction mode is given as the prediction mode of the best encoding mode p* for the current block given by the following equation:
[0042]
[0043] where P is the set of all candidate encoding modes for the current block, p denotes a candidate encoding mode in this set, RD cost (p) is the rate-distortion cost of the candidate encoding mode p, typically 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 the candidate encoding mode p, R(p) is the rate cost associated with encoding the current block with the encoding mode p, and λ is a Lagrangian parameter representative of the rate constraint for encoding the current block, and typically computed from the quantization parameter used to encode the current block.
[0046] The current block is usually coded according to the prediction residual block PR. More precisely, the prediction residual block PR is computed, for example, by subtracting the best prediction block from the current block. Then, the prediction residual block PR is transformed (step 140) by using, for example, a DCT (Discrete Cosine Transform) or DST (Discrete Sine Transform) type transform or any other appropriate transform, and the obtained transform coefficient block is quantized (step 150).
[0047] In a variant, the method 100 can also skip the transform step 140 and directly apply the quantization (step 150) to the prediction residual block PR according to a so-called transform skip coding mode.
[0048] The quantized transform coefficient block (or quantized prediction residual block) is entropy coded into a bitstream (step 160).
[0049] Next, as part of the coding loop, the quantized transform coefficient block (or quantized residual block) is dequantized (step 170) and inverse transformed (180) (or not inverse transformed), yielding a decoded prediction residual block. Then, the decoded prediction residual block and the prediction block are combined, usually summed, which provides a reconstructed block.
[0050] Other information data can also be entropy coded in step 160 to code the current block of the video picture VP.
[0051] In-loop filters (step 190) can be applied to the reconstructed picture (including the reconstructed blocks) to reduce compression artifacts. They can be applied after all the picture blocks have been reconstructed. They include, for example, 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 that can be stored into a decoded picture buffer (DPB) so that it can be used as a coded reference picture for the next current block of the video picture VP or for the next video picture to be coded.
[0053] Figure 6 A schematic block diagram showing steps of a method 200 of decoding a video picture 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 a bitstream of coded video picture data. For example, the bitstream is generated according to the method 100.
[0055] Other information data can also be entropy decoded to decode the current block of the video picture VP from the bitstream.
[0056] In step 220, the reconstructed picture is partitioned into current blocks based on the partitioning information. Each current block is entropy decoded from the bitstream along the decoding loop (also referred to as “in-loop”). Each decoded current block is either a quantized transform coefficient block or a quantized prediction residual block.
[0057] In step 230, the current block is dequantized and possibly inverse transformed (step 240) to obtain a decoded prediction residual block.
[0058] In another aspect, prediction information data is used to predict the current block. A prediction block is obtained either by its intra prediction (step 250) or its motion compensated temporal prediction (step 260). The prediction process performed at the decoding side is identical to 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 a reconstructed block.
[0060] In step 270, in-loop filters can be applied to the reconstructed picture (including the reconstructed blocks), and the reconstructed blocks or filtered reconstructed blocks form a reference picture that can be stored into the decoded picture buffer (DPB) as discussed above (step 280). Figure 5 ) at the decoding side.
[0061] In VVC, motion information is stored in every 4x4 block in each video picture. This means that once a reference picture is stored in the decoded picture buffer (DPB, Figure 5 or 6), the motion vectors and reference picture indices for temporal prediction of the video picture blocks are stored on a 4x4 block basis. They can be used as temporal prediction for the motion information for encoding / decoding of subsequent inter predicted video pictures.
[0062] To reduce cross-component redundancy, VVC defines so-called linear model based intra prediction modes (LM modes).
[0063] One of them is the so-called cross-component linear model (CCLM) which derives a linear model based predictor (in short: LM predictor) by using the following linear model that includes the collocated reconstructed luma samples rec ′ L (i,j) of the prediction of the chroma samples pred C (i,j):
[0064] pred C (i,j) = a rec L ′(i,j) + b
[0065] where a and b are linear parameters of the linear model, which are derived from reference samples (i.e. reconstructed luma and chroma samples).
[0066] reconstructed luma samples rec ′ L (i,j) are down-sampled after filtering to match the CU chroma size.
[0067] In VVC, three CCLM modes are specified, denoted as CCLM LT, CCLM T and CCLM L. These three CCLM modes differ in the position of the reference samples used for linear parameter derivation. Reference samples from the top boundary are included in the CCLM T mode, reference samples from the left boundary are included in the CCLM L mode. In the CCLM LT mode, reference samples of both the top boundary and the left boundary are used.
[0068] In summary, the prediction process of a CCLM mode consists of the following three steps: 1) down-sampling of the luma block and its neighboring reconstructed luma samples rec ′ L (i,j) to match the size of the corresponding chroma block, 2) linear parameter derivation based on the neighboring reconstructed luma samples, 3) applying equation (10) to generate the chroma intra 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, Oct. 2016]). MMLM is an extension of CCLM, as more than one linear model is derived from the collocated reconstructed luma samples rec ′ L (i,j). In MMLM, neighboring reconstructed luma samples and neighboring chroma samples are classified into several groups, each group is used as a training set to derive the linear parameters of a linear model (i.e. a specific a and b are derived for a specific group). Furthermore, samples of the current luma block are also classified based on the same rules as for the classification of the neighboring luma samples. For example, the neighboring samples are classified into M groups. M=2 and M=3 MMLM methods are designed as two additional LM modes for chroma 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, a threshold is calculated as the average of the neighboring reconstructed luma samples. Neighboring reconstructed samples rec L[x, y] is classified into group 1; while neighboring reconstructed samples rec’ larger than a threshold L [x, y] is classified into group 2.
[0070] Then, two LM predictors are derived as follows:
[0071]
[0072] MMLM is included in the Enhanced Compression Model (ECM) that explores compression performance improvement beyond VVC (M. Coban et al., “Algorithm description of Enhanced Compression Model 4 (ECM 4),” JVET-Y2025, online, July 2021), where neighboring reconstructed samples are classified into two classes using a threshold that is the average of luma neighboring reconstructed samples. A linear model is derived for each class 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. DIMD mode is a non-LM mode (short for non-linear model-based 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, for example, Planar prediction mode or Direct mode (DM).
[0074] For luma sample prediction, the usage 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 derived by gradient analysis using neighboring reconstructed luma samples, i.e., DIMD luma mode is implicit. Thus, the intra predictor is derived from DIMD luma mode identically at the encoder and decoder side during the reconstruction process.
[0075] In DIMD luma mode, as illustrated in Figure 7 a 3-sample-wide (in width or height) template area T (consisting of left, top, and top-left reconstructed luma samples of the reconstructed area R) is defined, where an edge detection filter (3x3 horizontal and vertical Sobel filter) adjacent to the current block B (current CU) is applied in order to determine the amplitude and angle of the luma direction (orientation) of each middle line sample of the (available) template area T. A histogram of gradients (HoG) is computed, where each entry corresponds to a regular intra angular mode, and the accumulated strength (amplitude) is stored:
[0076] Angle = arctan(G hor / Gver )
[0077] Magnitude = |G hor | + |G hor |
[0078] where Ghorand Gverare the pure horizontal and vertical direction strengths computed by the Sobel filter.
[0079] In the DIMD luma mode, luma blending (mixing, fusion) is applied as a weighted average of the three luma predictors: two HoG-based predictors and the planar predictor (M. Abdoli et al., “Non-CE3: Decoder-side IntraMode Derivation with Prediction Fusion Using Planar,” JVET-0449, Gothenburg, July 2019).
[0080] The planar predictor is derived from the planar mode, where the predicted sample values are obtained as a weighted average of 4 reference sample values. Here, the reference samples in the same row or column as the current sample and the reference samples in the lower-left and upper-right positions relative to the current block are used. In VVC, depending on the block size, a reference sample smoothing filter is also applied to the planar mode in the luma component.
[0081] As Figure 8 illustrated, two most representative angular intra modes M1 and M2 (with the largest histogram magnitude values) are selected from the HoG and combined (fused) with the planar mode, where the weights w1, w2, w3 are derived from the ratios of the selected angular intra prediction magnitudes (where the planar has a ratio of 1 / 3, i.e., 21 / 64 with 6-bit integer precision).
[0082] For chroma sample prediction, the use of the DIMD chroma mode is signaled in the bitstream by a single flag, and the intra predictor is not explicitly signaled in the bitstream but derived by using gradient analysis of the 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 the DIMD chroma mode, the intra predictor for a chroma block can be derived based on the collocated reconstructed luma samples of the luma block associated with the chroma block to be predicted. In particular, for each collocated reconstructed luma sample (x, y) of the luma block, the corresponding chroma sample (x, y) is predicted by using the gradient of the collocated reconstructed luma sample (x, y) and the gradient of the neighboring reconstructed luma sample (x+1, y) in the same row as the collocated reconstructed luma sample (x, y) and the gradient of the neighboring reconstructed luma sample (x, y+1) in the same column as the collocated reconstructed luma sample (x, y). Figure 9The horizontal and vertical gradients are computed to construct the HoG. Then, the intra prediction mode with the largest histogram amplitude value is selected from the HoG.
[0084] In a variant, in the DIMD chroma mode, the intra predictor of a chroma block can be derived based on neighboring reconstructed chroma samples.
[0085] In a variant, the intra predictor of a chroma block can be derived based on collocated reconstructed luma samples of a luma block associated with the chroma block to be predicted and on neighboring reconstructed chroma samples.
[0086] When the intra prediction mode derived from the DIMD chroma mode is identical to the intra prediction mode derived from the DM (direct mode) mode, the intra prediction mode with the second largest histogram amplitude value is selected as the DIMD chroma mode.
[0087] The direct mode (DM) is the chroma intra prediction mode corresponding to the intra prediction mode of the collocated reconstructed luma samples.
[0088] Then, the non-linear model based predictor of a chroma block (referred to as non-LM predictor for short) is derived from the non-LM modes selected among 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 trade-off.
[0089] The five default modes are DC, Planar, Direct mode, horizontal and vertical angular predictions.
[0090] The DC is the intra prediction mode generated using the average sample value of the reference samples on the left and above the block.
[0091] The Planar mode is a weighted average of the 4 reference sample values (the orthogonal projection of the samples picked as samples to make the prediction in the top and left reconstructed areas).
[0092] The horizontal and vertical modes use respectively copies of the left and above reconstructed samples without interpolation to predict respectively the sample rows and columns.
[0093] Then, the non-LM predictor of a chroma block derived from the selected non-LM mode is blended with the LM predictor derived from the MMLM LT mode as follows:
[0094] pred = (w0 * pred0 + w1 * pred1) » shift
[0095] where predO is the predictor obtained by applying the non-LM mode, predl is the predictor obtained by applying the LM mode, and pred is the final predictor for the chroma block. For I slices (intra coded slices), the two weights wO and wl are determined by the intra prediction modes of the neighboring chroma blocks, and shift is set equal to 2. In particular, when both the above and left neighboring blocks are coded with LM mode, {wO, wl} = {1, 3}; when both the above and left neighboring blocks are coded with non-LM mode, {wO, wl} = {3, 1}; otherwise, {wO, wl} = {2, 2}. For non-I slices, both wO and wl are set equal to 2.
[0096] If the non-LM mode is selected, a flag is signaled to indicate whether or not to apply blending.
[0097] In a variant, for I slices (i.e. intra coded slices), the non-LM predictors derived from the DM mode, the four default modes and the DIMD chroma mode can be blended with the LM predictors derived from the LM mode, while for non-I slices, only the non-LM predictors derived from the DIMD chroma mode can be blended with the LM predictors derived from the LM mode with equal weights.
[0098] The chroma blending 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 the LM mode is disabled at the encoder / decoder (e.g. by profiling or due to bitstream constraints), then chroma blending cannot be applied, thus reducing the coding performance. This can be achieved in case of applications requiring very low latency / delay (where cross-component tools can be disabled) or in case of low power requirements applications where chroma savings are not the most important (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 taking into account the foregoing. SUMMARY
[0102] The following presents a simplified summary of at least one exemplary embodiment in order to provide a basic understanding of some aspects of the application. This summary is not an extensive overview of the exemplary embodiments. It is not intended to identify key or critical elements of the exemplary embodiments. The following summary merely presents some aspects of the at least one exemplary embodiment in a simplified form as a prelude to the more detailed description provided elsewhere in the document.
[0103] According to a first aspect of the application, there is provided a method of intra-predicting a chroma block of a video picture, wherein the method comprises deriving a first predictor for the chroma block according to a first non-linear model based mode; deriving a second predictor for the chroma block according to a second non-linear model based mode if deriving a chroma predictor according to a linear model based mode is disabled; determining a final predictor for 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 among a set of non-linear model based modes by minimizing a rate-distortion trade-off.
[0105] In one exemplary embodiment, the first predictor is derived from a first non-linear model based mode based on collocated reconstructed luma samples and / or neighboring reconstructed chroma samples.
[0106] In one 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 weights of said weighted combination are derived according to the presence of samples predicted by the first predictor or the second predictor in the top, left or top-left neighbor of the chroma block.
[0107] In one 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 application, there is provided a method of encoding a video picture block into a bitstream of encoded video picture data, and said video picture block comprises a chroma block of a video picture predicted according to the method according to the first aspect.
[0109] In one exemplary embodiment, the encoding method further comprises writing data into the bitstream indicating whether deriving a chroma predictor according to a linear model based mode is enabled.
[0110] According to a third aspect of the application, there is provided a method of decoding a video picture block from a bitstream of encoded video picture data, comprising predicting a chroma block of the video picture block according to the first aspect.
[0111] In one exemplary embodiment, the decoding method further includes reading data from the bitstream indicating whether a chromaticity predictor is enabled based on a linear model-based pattern.
[0112] In one exemplary embodiment, a syntax element indicates whether data writing to / reading from a bitstream based on a pattern derived from a linear model is enabled. This syntax element is equal to 0 to indicate that blending the first and second predictors is disabled, equal to 1 to indicate that the first predictor is blended with the predictor derived from the linear model, and equal to 2 to indicate that the first predictor is blended with the second predictor when the first and second nonlinear model-based predictors are different.
[0113] According to a fourth aspect of this application, a bitstream of encoded video image data generated by one of the methods according to a second aspect of this application is provided.
[0114] According to a fifth aspect of this application, an apparatus is provided comprising tools for performing one of the methods according to the first and / or second and / or third aspects of this application.
[0115] According to a sixth 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 method according to the first and / or second and / or third aspects of this application.
[0116] According to a seventh aspect of this application, a non-transitory storage medium is provided, which carries instructions for performing program code for executing the methods according to the first and / or second and / or third aspects of this application.
[0117] The specific nature of at least one embodiment in the exemplary embodiments, as well as other objects, advantages, features, and uses of the at least one embodiment in the exemplary embodiments, will become apparent from the following description of the examples taken in conjunction with the accompanying drawings. Attached Figure Description
[0118] Reference will now be made to the accompanying drawings, which illustrate exemplary embodiments of this application, and wherein:
[0119] Figure 1 An example of a coding tree unit based on HEVC is shown;
[0120] Figure 2 An example of partitioning coding units into prediction units according to HEVC is shown;
[0121] Figure 3 An example of CTU partitioning based on VVC is shown;
[0122] Figure 4 An example of supported partition modes in multi-type tree partitioning according to VVC is shown;
[0123] Figure 5 A schematic block diagram showing steps of a method 100 of encoding a video picture VP according to the prior art is shown;
[0124] Figure 6 A schematic block diagram showing steps of a method 200 of decoding a video picture VP according to the prior art is shown;
[0125] Figure 7 A method of deriving a chroma block predictor from a DIMD mode according to the prior art is schematically shown;
[0126] Figure 8 A method of blending multiple chroma predictors according to the prior art is schematically shown;
[0127] Figure 9 An example of collocated luma samples of a chroma block according to the prior art is schematically shown;
[0128] Figure 10 A block diagram of a method 300 of predicting a chroma block according to an exemplary embodiment is schematically shown; and
[0129] Figure 11 A schematic block diagram illustrating an example of a system in which various aspects and exemplary embodiments are implemented.
[0130] Similar or identical elements are denoted by the same reference signs. DETAILED DESCRIPTION
[0131] At least one of the exemplary embodiments will be described more fully hereinafter with reference to the accompanying drawings, in which a certain exemplary embodiment of the inventive concept is illustrated. The exemplary embodiments may, however, be implemented in many different forms and should not be construed as limited to the specific embodiments set forth herein. Rather, these exemplary embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the exemplary embodiments to those skilled in the art. Like reference numerals refer to like elements throughout the specification.
[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 generally relates to receiving / accessing a decoded bitstream.
[0133] At least one of these exemplary embodiments is described for encoding / decoding a video image, but extends to encoding / decoding a video image (sequence of images) as each video image is sequentially encoded / decoded as described hereinafter.
[0134] Furthermore, the at least one example embodiment 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 Elementary 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 Versatile Video Coding, ITU-T Recommendation H.266, https: / / www.itu.int / rec / T-REC-H.266-202008-I / en), but can be applicable to other standards and recommendations such as AV1 (AOMedia Video 1, http: / / aomedia.org / av1 / specification / ) for example. The at least one example embodiment can be applicable to existing or future developed standards and recommendations and extensions of any such standards and recommendations. The aspects described in this application can be used individually or in combination, unless otherwise stated or technically precluded.
[0135] Generally, the present application relates to intra-predicting a chroma block of a video picture into a bitstream of encoded video picture data. A first predictor of the chroma block is derived according to a first non-linear model based mode. If deriving a chroma predictor according to a linear model based mode is disabled, a second predictor of the chroma block is derived according to a second non-linear model based mode, and a final predictor of 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, as chroma prediction can be based on blending multiple predictions even if the linear model based mode is disabled or deactivated. It allows exploiting the use of chroma blending (fusion) in any case.
[0137] Figure 10 A block diagram of a method 300 of predicting a chroma block according to an example embodiment is schematically illustrated.
[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 predl of the chroma block is derived based on a first non-LM mode.
[0140] In step 320, the method 300 checks whether the derivation of a chroma predictor based on a LM mode is disabled.
[0141] If the derivation of a chroma predictor based on a LM mode is enabled, a final chroma prediction of the chroma block is obtained, as discussed above in the introductory part of the present application.
[0142] If the derivation of a chroma predictor based on a LM mode is disabled, in step 330, a second predictor pred2 of the chroma block is derived based on a 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 = (wl*predl + w2*pred2) » shift
[0144] where shift can be equal to 2.
[0145] In one exemplary embodiment, in step 350, data is signaled into the bitstream. The data indicates whether the derivation of a chroma predictor based on a LM mode is enabled.
[0146] Signaling data into the bitstream means writing the data into the bitstream during the method 100 and reading the data from the bitstream during the method 200.
[0147] In one exemplary embodiment, the first predictor is derived from a first non-linear model based mode based on collocated reconstructed luma samples and / or based on neighboring reconstructed chroma samples.
[0148] For example, the first predictor is derived from a DIMD luma (as a direct mode) or a DIMD chroma mode.
[0149] In one exemplary embodiment, the first non-LM mode and the second non-LM mode are selected among a set of non-LM modes by minimizing a rate-distortion trade-off.
[0150] For example, the set of non-LM modes includes a planar prediction mode, a DC mode, a DM mode, or a DIMD mode. A chroma predictor for a chroma block is derived based on each mode of the set. A rate / distortion cost function is then evaluated for each chroma predictor, and a first non-LM mode corresponding to the best non-LM predictor, i.e. minimizing the rate / distortion cost function (rate / distortion optimization) is selected. Then, each non-LM mode can be ordered based on the rate / distortion cost function, and the second non-linear model based mode can be the second ordered non-NL model mode.
[0151] In a variant, the first non-linear model based mode is a DIMD mode.
[0152] In a variant, the weights w1 and w2 of the first and second non-LM modes are equal to 1 / 2, respectively.
[0153] In a variant, w1 = 3 / 4 and w2 = 1 / 4.
[0154] In a variant, the weights w1 and w2 are derived from the presence of samples predicted by the first or second predictor in the top, left or top-left neighbor of the chroma block.
[0155] For example, if the best (first) non-LM mode is an intra prediction mode of the top and left neighbors, the weights are set to w0 = 1 / 4 and w1 = 1 / 4. If the first non-LM mode is an 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 an intra prediction mode of the top and left neighbors, the weights are set to w0 = 1 / 4 and w1 = 3 / 4. 3 / 4 and w1 = 1 / 4. If the first non-LM mode is an 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 an 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 and second non-LM modes correspond to intra prediction modes having two maximum histogram amplitude values for performing chroma prediction of the chroma block based on a DIMD chroma mode.
[0157] In a variant, at most one of the first and second non-LM modes is a DIMD mode.
[0158] In a variant, in step 340, the final predictor of the chroma block is determined by blending the first and second predictors and a third predictor derived from a planar prediction, a DC or a DM mode, with weights equal to 1 / 3.
[0159] In a variant, chroma blending is applied only if the best non-LM mode is different from a default mode (including DC, DM, planar...) selected as the second non-LM mode.
[0160] In a variant, chroma blending is applied only if the best non-LM mode is different from the default mode (including DC, DM, Planar...). In a variant, the 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 top-left neighbor of the chroma block.
[0161] A score is determined for each predictor in order to set the chroma blending weight. It is initialized to 1 and each time a predictor is present, it is incremented by 1. 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 either carried in the bitstream as an intra chroma mode, or derived from the collocated reconstructed luma samples (i.e. DM).
[0164] In a variant, if the second non-LM mode is the same as the first non-LM mode, step 350 of method 300 is disabled.
[0165] In a variant, if the first non-LM based mode is Planar or DC, step 350 of method 300 is disabled.
[0166] In a variant, if the LM mode based derivation of chroma predictors is enabled, the LM mode (at the encoder) competes with the second non-LM mode, i.e. the first non-LM mode is blended with the second non-LM mode or the LM mode according to a rate / distortion optimization.
[0167] In one exemplary embodiment of step 350, data indicating whether the LM mode based derivation of chroma predictors is enabled is written / read from the bitstream by a syntax element chroma_fusion_mode_idc, wherein chroma_fusion_mode_idc equal to 0 indicates that blending of the first predictor and the second predictor is disabled for the current CU / block(s) coded, when chroma_fusion_mode_idc is equal to 1, it indicates that the first non-linear model predictor is blended with the predictor derived from the linear model based mode, when chroma_fusion_mode_idc is equal to 2, it indicates 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 (e.g. the first predictor is the best non-LM mode, while the second predictor is the default mode including DM, DC, Planar mode...).
[0168] The first non-LM mode can be signaled in the bitstream in a regular way (chroma intra prediction mode) or in an implicit way (e.g. in the case of DIMD chroma where the DIMD chroma mode is indicated as enabled but the actual chroma intra 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 the derivation of chroma predictors according to the linear model based mode is enabled in a video picture or slice or CTU or CU of the video picture, a chroma blending is applied between the best non-LM mode and the LM mode and if the derivation of chroma predictors according to the linear model based mode is disabled in a slice or CTU or CU of the video picture, a chroma blending / fusion is applied between the best non-LM mode and the default mode.
[0171] Figure 11 A schematic block diagram illustrating an example of a system 700 in which various aspects and example embodiments are implemented is shown.
[0172] The system 700 can be embedded in one or more devices including the various components described below. In various example embodiments, the system 700 can be configured to implement one or more aspects described in this application.
[0173] Examples of equipment in which all or part of the system 700 can be included are a personal computer, a laptop computer, a smartphone, a tablet computer, a digital multimedia set-top box, a digital television receiver, a personal video recording system, a connected home appliance, a connected vehicle and its associated processing system, a head-mounted display device (HMD, see-through glasses), a projector (projector), a “cave” (a system comprising multiple displays), a server, a video encoder, a video decoder, a post-processor processing the output from a video decoder, a pre-processor providing input to a video encoder, a web server, a video server (e.g. a broadcast server, a video-on-demand server or a web server), a still or video camera, an encoding or decoding chip or any other communication device. The elements of the system 700 can be implemented in a single integrated circuit (IC), multiple ICs, and / or discrete components, individually or in combination. For example, in at least one example embodiment, the processing and encoder / decoder elements of the system 700 can be distributed across multiple ICs and / or discrete components. In various example embodiments, the system 700 can be communicatively coupled to other similar systems or other electronic devices, for example via a communications bus or through dedicated input and / or output ports.
[0174] The system 700 can include at least one processor 710 configured to execute instructions therein to implement, for example, the various aspects described in this application. The processor 710 can include embedded memory, input output interface, and various other circuitries as known in the art. The system 700 can include at least one memory 720 (e.g., a volatile memory device, and / or a non-volatile memory device). The system 700 can include a storage device 740, which can 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, magnetic disk drive, and / or optical disk drive. By way of non-limiting example only, the storage device 740 can include an internal storage device, an attached storage device, and / or a network accessible storage device.
[0175] The system 700 can include an encoder / decoder module 730 configured, for example, to process data to provide encoded / decoded video image data, and the encoder / decoder module 730 can include its own processor and memory. The encoder / decoder module 730 can represent module(s) that can be included in a device to perform the encoding and / or decoding functions. As is known, a device can include one or both of the encoding and decoding modules. Also, the encoder / decoder module 730 can be implemented as a separate element of the system 700 or can be incorporated internal to the processor 710 as a combination of hardware and software as known to those skilled in the art.
[0176] The program code to be loaded onto the processor 710 or the encoder / decoder 730 to perform the various aspects described in this application can be stored in the storage device 740 and then loaded onto the memory 720 for execution by the processor 710. In accordance with various exemplary embodiments, one or more of the processor 710, the memory 720, the storage device 740, and the encoder / decoder module 730 can store one or more of various items during the execution of the processes described in this application. Such stored items can include, but are not limited to, video image data, information data for encoding / decoding video image data, bitstreams, matrices, variables, and intermediate or final results of equations, formulas, operations, and operation logic processing.
[0177] In several exemplary embodiments, the memory internal to the processor 710 and / or the encoder / decoder module 730 can be used to store instructions and provide working memory for processing that can be performed during encoding or decoding.
[0178] However, in other example embodiments, memory external to the processing device (e.g., the processing device can be the processor 710 or the encoder / decoder module 730) is used for one or more of these functions. The external memory can be the memory 720 and / or the storage device 740, e.g., dynamic volatile memory and / or non-volatile flash memory. In several example embodiments, external non-volatile flash memory is used to store the operating system of the television. In at least one example embodiment, fast external dynamic volatile memory, such as RAM, can be used as working memory for video encoding and decoding operations, e.g., 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 elements of the system 700 can be provided through various input devices. Such input devices include, but are not limited to, (i) an RF portion that can receive RF signals transmitted, e.g., by a broadcast device over the air, (ii) a composite input terminal, (iii) a USB input terminal, (iv) an HDMI input terminal, (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 present disclosure is implemented in the automotive field.
[0180] In various example embodiments, the input devices of block 790 have associated respective input processing elements as known in the art. For example, the RF portion can be associated with elements necessary for (i) selecting a desired frequency (also known as selecting a signal, or limiting a signal band to within a frequency band), (ii) downconverting the selected signal, (iii) limiting the frequency band again to a narrower frequency band to select a signal frequency band that can be referred to as a channel in certain example embodiments, (iv) demodulating the downconverted and band-limited signal, (v) performing error correction, and (vi) demultiplexing to select a desired stream of data packets. The RF portion of various example embodiments can include one or more elements that perform these functions, e.g., a frequency selector, a signal selector, a band limiter, a channel selector, a filter, a downconverter, a demodulator, an error corrector, and a demultiplexer. The RF portion can include a tuner that performs various of these functions, including, e.g., downconverting a received signal to a lower frequency (e.g., an intermediate frequency or a near-baseband frequency) or baseband.
[0181] In a set-top box embodiment, the RF portion and its associated input processing elements can receive RF signals transmitted on a wired (e.g., cable) medium. The RF portion can then perform frequency selection by filtering, downconverting, and filtering again to a desired frequency band.
[0182] The 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 functionality.
[0183] Adding elements can include inserting elements between existing elements, such as, for example, inserting an amplifier and an analog-to-digital converter. In various exemplary embodiments, the RF portion can include an antenna.
[0184] Further, the USB and / or HDMI terminals can include respective interface processors for connecting the system 700 to other electronic devices through USB and / or HDMI connections. It will be appreciated that various aspects of input processing (e.g., Reed-Solomon error correction) can be implemented, for example, within separate input processing ICs or within the processor 710, as necessary. Similarly, various aspects of USB or HDMI interface processing can be implemented within separate interface ICs or within the processor 710, as necessary. The demodulated, error corrected, and demultiplexed streams can 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, as necessary, for presentation on output devices.
[0185] The various elements of the system 700 can be provided within an integrated housing. Within the integrated housing, the various elements can be interconnected and transmit data therebetween using suitable connection arrangements 790, for example, internal buses (including I2C buses), wiring, and printed circuit boards, as known in the art.
[0186] The system 700 can include a communication interface 750 that enables communication with other devices via a communication channel 751. The communication interface 750 can include, but is not limited to, a transceiver configured to transmit and to receive data on the communication channel 751. The communication interface 750 can include, but is not limited to, a modem or network card, and the communication channel 751 can be implemented, for example, within wired and / or wireless media.
[0187] In various example embodiments, data can be streamed to system 700 using a Wi-Fi network such as IEEE 802.11. Wi-Fi signals of these example embodiments can be received through a communication channel 751 and a communication interface 750 adapted for Wi-Fi communication. Communication channel 751 of these example 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 communications.
[0188] Other example embodiments can use a set-top box to provide streamed data to system 700, with the set-top box delivering data through an HDMI connection of input block 790.
[0189] Still other example embodiments can use an RF connection of input block 790 to provide streamed data to system 700.
[0190] Streamed data can be used as a way of signaling information for use by system 700. Signaling information can include a bitstream B and / or information such as a number of pixels of a 7a video image and / or any encoding / decoding setting parameters.
[0191] It should be recognized that signaling can be implemented in a variety of ways. For example, in various example embodiments, one or more syntax elements, flags, etc. can be used to signal information to a corresponding decoder.
[0192] System 700 can provide output signals to various output devices including a display 761, speakers 771, and other peripheral devices 781. In various examples of example embodiments, other peripheral devices 781 can include one or more of a stand-alone DVR, a disc player, a stereo system, a lighting system, and other devices that provide functionality based on output of system 700.
[0193] In various example embodiments, control signals can be communicated between system 700 and 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 can be communicatively coupled to system 700 through respective interfaces 760, 770, and 780 via dedicated connections.
[0195] Optionally, an output device can be connected to system 700 via communication interface 750 using communication channel 751. Display 761 and speakers 771 can be integrated in a single unit with other components of system 700 in an electronic device such as, for example, a television.
[0196] In various exemplary embodiments, display interface 760 can 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, display 761 and speakers 771 can optionally be separate from one or more of the other components. In various exemplary embodiments in which display 761 and speakers 771 can be external components, the output signals can be provided via dedicated output connections including, for example, HDMI ports, USB ports, or COMP outputs.
[0198] In Figures 1 to 11 Various methods are described herein, and each method includes one or more steps or actions for achieving the described method. The order in which specific steps and / or actions are carried out can be modified or combined with other steps and / or actions without departing from the spirit of the method, unless a particular order of steps or specific grouping of steps is required by the method.
[0199] Some examples are described with respect to block and / or operational flow diagrams. Each block is representative of a circuit element, module, or portion of code that includes one or more executable instructions for implementing the specified logical function(s). It should also be noted that in other implementations, the function(s) noted in the blocks can occur out of the order noted. For example, two blocks shown in succession can in fact be executed substantially concurrently or at times in the reverse order, depending on the functionality involved.
[0200] Implementations and aspects described herein can be implemented in, for example, a method or process, an apparatus, a computer program, a data stream, a bitstream, or a signal. Even if discussed in the context of only a single form of implementation (for example, only as a method), implementations of the features discussed can be realized in other forms (for example, an apparatus or computer program).
[0201] Methods can be implemented in, for example, a processor, which generally refers to processing devices comprising, for example, computers, microprocessors, integrated circuits, or programmable logic devices. Processors also include communication devices.
[0202] 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 an exhaustive list, as will be readily recognized by 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.
[0203] Instructions can form applications that are tangibly implemented on processor-readable media.
[0204] 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.
[0205] 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 for processing video images, or other communication devices. It should be clear that the equipment can be mobile and even mounted in mobile vehicles.
[0206] Computer software can be implemented by the processor 710 or by hardware, or by a combination of hardware and software. The example embodiments can also be implemented by one or more integrated circuits, by way of non-limiting example. The memory 720 can be of any type appropriate for the technology environment and can be implemented using any appropriate data storage technology, such as optical, magnetic, semiconductor-based, fixed, removable or transitory data storage devices, by way of non-limiting example. The processor 710 can be of any type appropriate for the technology environment, and can encompass one or more of microprocessors, general purpose computers, special purpose computers, and processors based on a multi-core architecture, as non-limiting examples.
[0207] As will be evident to one of ordinary skill in the art, implementations can produce a variety of signals formatted to carry information that can be, for example, stored or transmitted. The information can include instructions for performing a method, or data created by one of the described implementations. For example, a signal can be formatted to carry the bitstream of an example embodiment, for storage or transmission. Such a signal can be formatted, for example, as an electromagnetic wave (for example, using a radio frequency portion of spectrum) or a baseband signal. The formatting can include, for example, encoding a data stream and modulating a carrier with the encoded data stream. The information that the signal carries can be, for example, analog or digital information. The signal can be transmitted by various
[0208] The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting. As used herein, the singular forms "a," "an," and "the" can be intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms "comprise," "comprises," "comprising," "include," "includes," and / or "including," when used in this specification, 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. Moreover, when an element is referred to as being "responsive" or "connected" to another element, it can be directly responsive or connected to the other element, or indirectly responsive or connected to the other element through one or more other elements. In contrast, when an element is referred to as being "directly responsive" or "directly connected" to another element, it is directly responsive or connected to the other element without any intervening elements.
[0209] It should be appreciated that the use of any of the following 1) the term “example,” 2) the term “exemplary,” and 3) some variation of either of these terms, indicates that certain examples or implementations do not include other examples or implementations. It is also contemplated that the use of the terms first, second, etc. herein does not limit the scope of these terms but rather these terms are used to distinguish elements or implement from each other. For example, a first element could be termed a second element, and, similarly, a second element could be termed a first element, without departing from the scope of example embodiments.
[0210] Various numerical values can be used in this application. Particular values can be used for example purposes and the aspects described are not limited to these particular values.
[0211] It will be understood that, although the terms first, second, etc. can be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element could be termed a second element, and, similarly, a second element could be termed a first element, without departing from the teachings of this application. The first element and the second element are not necessarily distinguished by the aforesaid terms. The terms first, second, etc. are used to distinguish elements from one another.
[0212] Reference to “one example embodiment” or “an example embodiment” or “one implementation” or “an implementation” and other variations thereof, frequently appear throughout this application. These terms are not necessarily referring to the same example embodiment or implementation. Accordingly, use of these terms in various places in the specification are not necessarily all referring to the same example embodiment or implementation.
[0213] Similarly, reference to "an example embodiment" or "in an example embodiment", or "in an example implementation", and other variations thereof, throughout this application, and in the claims, is not a limitation on the scope of use of features described in that and other examples. One of ordinary skill in the art will recognize that an example embodiment described and / or illustrated herein can include features from one or more other embodiments as combinations, subcombinations, permutations, and / or variations of the described or illustrated features, except where such combinations, subcombinations, permutations, and / or variations are generally not different, functionally, from the example embodiment just describing. One of ordinary skill in the art will also recognize the interdependencies between various features of the example embodiments and combinations, subcombinations, permutations, and / or variations of such features can include related dependent features.
[0214] Reference signs in the claims are provided merely for the sake of readability and should in no way be construed as limiting the scope of the claims. Described and / or illustrated examples merely consist of examples of combinations of features that can be employed in various embodiments and / or implementations.
[0215] When a figure is presented as a flow diagram, it is understood that it also provides a block diagram of a corresponding apparatus. Similarly, when a figure is presented as a block diagram, it is understood that it also provides a flow diagram of a corresponding method / process.
[0216] While some figures include arrows on communication paths to demonstrate the primary direction of communication, it is to be understood that communication can occur in the opposite direction to the depicted arrows.
[0217] Various implementations relate to decoding. As used in this application, "decoding" can encompass all or part of the process performed on a received video image (possibly including a received bitstream that encodes one or more video images) in order to produce a final output suitable for display or further processing in a reconstructed video domain. In various example embodiments, such a process includes one or more of the processes typically performed by a decoder. In various example embodiments, such a process also or alternatively includes processes performed by decoders of various implementations described in this application, for example.
[0218] As a further example, in one example embodiment "decoding" can refer only to dequantization, in one example embodiment "decoding" can refer to entropy decoding, in another example embodiment "decoding" can refer only to differential decoding, and in another example embodiment "decoding" can refer to a combination of dequantization, entropy decoding, and differential decoding. Based on the specific context of the description, it will be clear whether the phrase "decoding process" is intended to refer specifically to a subset of operations, or more generally to a broader decoding process, and it is believed to be well within the understanding of one of ordinary skill in the art.
[0219] Various embodiments are directed to encoding. In a manner similar to the discussion above regarding "decoding," "encoding" as used in this application can encompass all or a portion of the process performed on input video images to produce an output bitstream, for example. In various example embodiments, such a process includes one or more of the processes typically performed by an encoder. In various example embodiments, such a process also includes or alternatively includes the processes performed by the encoders of the various embodiments described in this application.
[0220] As a further example, in one example embodiment "encoding" can refer only to quantization, in one example embodiment "encoding" can refer only to entropy encoding, in another example embodiment "encoding" can refer only to differential encoding, and in another example embodiment "encoding" can refer to a combination of quantization, differential encoding, and entropy encoding. Whether the phrase "encoding process" is intended to refer specifically to a subset of operations or more generally to a broader encoding process will be clear based on the particular context in which it is described, and is believed to be well understood by those skilled in the art.
[0221] Furthermore, this application can refer to "obtaining" various information. Obtaining information can include one or more of, for example, estimating information, calculating information, predicting information, or retrieving information from memory, processing information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information.
[0222] Furthermore, this application can refer to "receiving" various information. Receiving information can include one or more of, for example, accessing information or receiving information from a communication network.
[0223] Also, as used herein, the word "signal" refers to, among other things, indicating something or the like to a corresponding decoder. For example, in certain example embodiments, an encoder signals certain information, such as encoding parameters or encoded video image data. In this manner, in example embodiments, the same parameters can be used on the encoder side and the decoder side. Thus, for example, an encoder can transmit (explicit signaling) certain parameters to a decoder so that the decoder can use the same certain parameters. Conversely, if the decoder already has the certain parameters as well as other parameters, signaling can be used without transmission (implicit signaling) to simply allow the decoder to know and select the certain parameters. By avoiding the transmission of any actual functionality, bit savings are achieved in various example embodiments. It should be recognized that signaling can be accomplished in a variety of ways. For example, in various example embodiments, one or more syntax elements, flags, or the like are used to signal information to a corresponding decoder. Although the foregoing involves the verb form of the word "signal," the word "signal" can also be used as a noun herein.
[0224] A number of implementations have been described. Nevertheless, it will 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. Additionally, one of ordinary skill will understand that other structures and processes can be substituted for those disclosed and that are of at least a substantially similar function. Accordingly, this application is intended to embrace all such alterations, combinations, modifications, and permutations of the implementations described.
Claims
1. A method for intra-frame prediction of chroma blocks in a video image, wherein the method comprises: - A first predictor for the chroma block is derived from the first nonlinear model-based pattern (310); - If you disable the chromaticity predictor derived from the pattern based on the linear model, then i. Derive the second predictor for the chroma block (340) according to the second nonlinear model-based mode; ii. Determine the final predictor of the chroma block (350) by blending the first predictor and the second predictor.
2. The method of claim 1, wherein the first nonlinear model-based mode and the second nonlinear model-based mode are selected from a set of nonlinear model-based modes by minimizing rate distortion trade-offs.
3. The method according to claim 1 or 2, wherein the first predictor is derived from a pattern based on a first nonlinear model based on co-located reconstructed luminance samples and / or adjacent reconstructed chrominance samples.
4. The method according to any one of claims 1 to 2, 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 based on the presence of a 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 any one of claims 1 to 2, wherein the first nonlinear model-based mode is a non-angular intra-prediction mode, and the second nonlinear model-based mode is an angular intra-prediction mode.
6. A method for encoding video image blocks into a bitstream of encoded video image data, said video image blocks comprising chroma blocks of the video image predicted by any one of claims 1 to 5.
7. The method of claim 6, wherein the method further comprises writing (350) data indicating whether to enable a chromaticity predictor derived according to a linear model pattern into the bitstream.
8. A method for decoding a video image block from a bitstream of encoded video image data, comprising predicting a chroma block of the video image block according to any one of claims 1 to 5.
9. The method of claim 8, wherein the method further comprises reading (350) data from the bitstream indicating whether to enable the chromaticity predictor derived according to a pattern based on a linear model.
10. The method of claim 7 or 9, wherein a syntax element indicates whether data is written to / read from the bitstream based on a pattern derived from a linear model is enabled, 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 pattern based on a linear model, and equal to 2 to indicate that the first predictor is blended with the second predictor when the first predictor based on a nonlinear model and the second predictor based on a nonlinear model are different.
11. An apparatus comprising tools for performing the method of any one of claims 1 to 5, any one of claims 6 to 7, or any one of claims 8 to 10.
12. A computer program product comprising instructions that, when executed by one or more processors, cause the one or more processors to perform the method of any one of claims 1 to 5, any one of claims 6 to 7, or any one of claims 8 to 10.
13. A non-transitory storage medium storing instructions that, when executed by a processor, cause the method of any one of claims 1 to 5, any one of claims 6 to 7, or any one of claims 8 to 10 to be implemented.
14. An electronic device, comprising: processor; and Memory for storing instructions that can be executed by the processor; The processor is configured to implement the method of any one of claims 1 to 5, any one of claims 6 to 7, or 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