Planar intra prediction mode
By introducing planar mode (planar horizontal, vertical, average mode) into the video encoding system for intra prediction, the problem of low video encoding efficiency in the prior art is solved, and more efficient video compression and encoding performance is achieved.
Patent Information
- Application Number
- CN202380043120.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-06-30
- Filing Date
- 2023-07-04
- Publication Date
- 2025-01-07
AI Technical Summary
When existing video encoding technologies realize efficient video compression, it is difficult to effectively utilize the intra-plane prediction mode to improve encoding performance. Especially when dealing with multiple prediction directions and modes, there are problems such as complex and inefficient mode selection.
A method is proposed to use plane modes (including plane horizontal mode, plane vertical mode and plane average mode) to predict the current block, calculate the predicted values through specific formulas and filtering mechanisms, and realize the storage of these modes in the video encoding system. and used to improve the efficiency of intra prediction.
Through the use of planar mode, the compression performance and coding efficiency of the video encoding system are improved, the mode selection process is simplified, and it is suitable for prediction of multiple video blocks, especially in the encoding of brightness and chrominance blocks.
Smart Images

Figure CN119278626A_ABST
Abstract
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This disclosure claims the priority benefit of the following applications: U.S. Provisional Application No. 63 / 358,208, filed on July 4, 2022, entitled “Plane Intra Prediction Mode”, and U.S. Provisional Application No. 18 / 217,429, filed on June 30, 2023, entitled “Plane Intra Prediction Mode”. The entire contents of all of the foregoing provisional applications are incorporated herein by reference. Technical Field
[0002] The present disclosure relates generally to video processing, and more particularly, to methods and systems for implementing a planar intra prediction mode. Background Art
[0003] The Joint Video Experts Group (JVET) of the ITU-T Video Coding Experts Group (ITU-T VCEG) and the ISO / IEC Moving Picture Experts Group (ISO / IEC MPEG) developed a Versatile Video Coding (VVC / H.266) standard. The VVC standard aims to double the compression efficiency of its predecessor, the High Efficiency Video Coding (HEVC / H.265) standard. In other words, one of the goals of VVC is to achieve the same or substantially the same subjective quality as HEVC / H.265 using half the bandwidth.
[0004] To achieve this goal, JVET has been developing technologies that go beyond HEVC using the Joint Exploration Model (JEM) reference software since 2015. As coding techniques are incorporated into JEM, JEM can achieve much higher coding performance than HEVC. In October 2017, VCEG and MPEG issued a joint request for proposals (CfP) to formally start the development of the next generation video compression standard that goes beyond HEVC. The responses to the CfP were evaluated at the JVET meeting held in San Diego in April 2018, and the formal development process of the VVC standard was launched in April 2018. Summary of the invention
[0005] The embodiments of the present disclosure are directed to implementing a planar intra prediction mode.
[0006] In a first aspect, an embodiment of the present disclosure provides a method, comprising: predicting a current block using a planar mode, wherein the planar mode comprises: a planar horizontal mode, a planar vertical mode or a planar average mode.
[0007] In a second aspect, embodiments of the present disclosure provide one or more computer-readable media storing executable instructions that, when executed by one or more processors, cause the one or more processors to perform operations including the following: The current block is predicted using a planar mode, wherein the planar mode comprises: a planar horizontal mode, a planar vertical mode or a planar average mode.
[0008] In a third aspect, an embodiment of the present disclosure provides a system, including: one or more processors; and A memory storing executable instructions that, when executed by one or more processors, cause the one or more processors to perform operations including: A planar mode is used to predict a current block, wherein the planar mode includes: a planar horizontal mode, a planar vertical mode, or a planar average mode.
[0009] In a fourth aspect, an embodiment of the present disclosure provides a computer program product, comprising: computer program instructions, wherein the computer program instructions enable a computer to execute the method according to the present invention.
[0010] In a fifth aspect, an embodiment of the present disclosure provides a computer program, which enables a computer to execute the method described in the first aspect. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] The detailed description is given with reference to the accompanying drawings. In the drawings, the left-most digit(s) of a reference number identifies the drawing in which the reference number first appears. The use of the same reference numbers in different drawings indicates similar or identical items.
[0012] Figure 1 An encoder block diagram of an example hybrid video coding system is shown.
[0013] Figure 2 A decoder block diagram of an example hybrid video coding system is shown.
[0014] Figure 3 Angular intra prediction mode is shown.
[0015] Figure 4 A sample reference sample for use in plane mode is shown.
[0016] Figure 5 A number of example neighboring blocks used in deriving a general MPM list are shown.
[0017] Figure 6 Example templates and example reference samples used in TIMD are shown.
[0018] Figure 7 An example system for implementing the above-described process and method for implementing a planar intra prediction mode is shown. DETAILED DESCRIPTION
[0019] The VVC standard has been in formal development since April 2018 and continues to include more coding techniques that can provide better compression performance. In an exemplary embodiment, VVC can be built on the same hybrid video coding system that has been used in other modern video compression standards (such as HEVC, H.264 / AVC, MPEG2, H.263, etc.). Figure 1 An encoder block diagram of an embodiment hybrid video coding system 100 is shown. An input video 102 may be processed block by block. In an exemplary embodiment, the hybrid video coding system 100 may divide an image or picture of the input video 102 into a plurality of macroblocks ("MBs"), each macroblock having a predefined size (e.g., N×N pixels, where N is a positive integer), and divide or partition each macroblock into a plurality of partitions.
[0020] By way of example and not limitation, the hybrid video coding system 100 may divide an image or picture of the input video 102 into a plurality of coding tree units (CTUs). A coding tree unit (CTU) may be defined as the largest block unit in a VVC and may be as large as 128×128 luma samples (plus corresponding chroma samples depending on the chroma format used). In an exemplary embodiment, a CTU may be further divided into a plurality of coding units (CUs) using a quadtree, a binary tree, or a ternary tree. In an alternative embodiment, the hybrid video coding system 100 may divide an image into a plurality of units of N×N pixels, which may then be further subdivided into a plurality of sub-units. For purposes of the present disclosure, each of these largest subdivision units of an image may be generally referred to as a “block”. In an exemplary embodiment, a CU is encoded using one luma sample block and two corresponding chroma sample blocks, where the picture is not monochrome and is encoded using one coding tree.
[0021] In an exemplary embodiment, at the leaf node of such a partitioning structure, coding information, such as coding mode (e.g., intra mode or inter mode, etc.), motion information (if inter coding) (e.g., reference index, motion vector, etc.), and quantized residual coefficients can be stored and / or sent. In an exemplary embodiment, if intra prediction 104 (also referred to as spatial prediction) is used, spatially adjacent samples can be used to predict the current block to be encoded. In an exemplary embodiment, if inter prediction 106 (also referred to as temporal prediction or motion compensated prediction) is used, multiple samples from multiple images (i.e., multiple reference images) that have been encoded can be used to predict the current block. In an exemplary embodiment, different prediction methods can be used for inter prediction, including but not limited to unidirectional prediction, bidirectional prediction, etc. In an exemplary embodiment, if unidirectional prediction is used, only one motion vector pointing to one reference image is used to generate a prediction value for the current block. In an exemplary embodiment, if bidirectional prediction is used, two motion vectors (each motion vector pointing to its corresponding reference image) are used to generate a prediction value for the current block. In an exemplary embodiment, the motion vector and the reference index can be sent to the decoder to identify where one or more prediction values of the current block come from.
[0022] After performing intra-frame or inter-frame prediction, the mode decision and encoder control block may select or determine a specific prediction mode (e.g., optimal prediction mode, etc.) for the current block, for example, based on a rate-distortion optimization method or other modes. In an exemplary embodiment, after selecting the optimal prediction mode, a prediction block 110 may be generated based on the optimal prediction mode and subtracted from the input video block.
[0023] In an exemplary embodiment, the prediction residual 112 (i.e., the difference between the input video block and the prediction block) may be sent to a transform module 114 and a quantization module 116 to generate a quantized residual coefficient 118. In an exemplary embodiment, based on the prediction residual, the transform module 114 may perform a transform operation on the residual through matrix arithmetic operations to derive a coefficient matrix (which may be referred to as "residual coefficients", "transform coefficients", etc.), thereby encoding the current block into a transform block ("TB"). In an exemplary embodiment, the transform coefficient may be a coefficient representing one of several spatial transforms that may be applied to the sub-block, such as diagonal flipping, vertical flipping, or rotation. In an exemplary embodiment, the quantization module 116 may perform a quantization operation on the residual coefficient through matrix arithmetic operations based on a quantization matrix and a specified quantization parameter (QP). The residual coefficients falling within the interval are retained, and the residual coefficients falling outside the interval step are discarded.
[0024] In an exemplary embodiment, the quantized residual coefficients may then be inverse quantized 120 and inverse transformed 122 to obtain a reconstructed residual. For example, the inverse quantization operation and the inverse transform operation may be performed on the quantized plurality of residual coefficients by matrix arithmetic operations, which are the inverse of the quantization operation and the transform operation as described above. The inverse quantization operation and the inverse transform operation produce a reconstructed residual, for example, the prediction block and the reconstructed residual may be added before loop filtering to generate a reconstructed block 124, which may be used to provide a plurality of reference samples for intra-frame prediction. Loop filtering 126, such as deblocking, sample adaptive offset (SAO), and adaptive loop filter (ALF), etc., may be applied to the reconstructed block to generate a new reconstructed block 128 after loop filtering, which may then be stored in a decoded picture buffer 130 and used to provide a plurality of reference samples for inter-frame prediction. In an exemplary embodiment, encoding information 132, such as encoding mode (e.g., intra-frame or inter-frame prediction, etc.), intra-frame prediction mode, motion information, quantized residual coefficients, etc., may be sent to an entropy encoding module 134 to further reduce the bit rate before being packaged into an output video bitstream.
[0025] Figure 2 A decoder block diagram of an example hybrid video coding system 200 is shown. In an example embodiment, a video bitstream or input video 202 may be unpacked and entropy decoded by an entropy decoding module 204. For example, the entropy decoding module 204 may perform entropy decoding and output a plurality of quantized residual coefficients, wherein the bins are decoded by an inverse mapping of symbols to bins in accordance with CABAC, thereby recovering the entropy encoded quantized residual coefficients. In an exemplary embodiment, after being unpacked and decoded by the entropy decoding module 204, the encoding information 206 (e.g., encoding mode, prediction information, motion information (if encoding has been performed using motion prediction, etc.) may be obtained. In an exemplary embodiment, the encoding mode may be used to select whether to call or reference the spatial prediction module 208 (or referred to as an intra-frame prediction module) or the temporal prediction module 210 (or referred to as a motion compensation prediction module). In an exemplary embodiment, the prediction information obtained after unpacking and decoding may then be sent to an appropriate prediction module (i.e., for example, the spatial prediction module 208 or the temporal prediction module 210) to generate a prediction value 212 (or a prediction block in the figure). In an exemplary embodiment, a plurality of quantized residual coefficients 214 obtained after unpacking and decoding may be sent to an inverse quantization module 216 and an inverse transform module 218 to obtain a reconstructed residual 220. As an example and not a limitation, the inverse quantization module 216 and the inverse transform module 218 may perform inverse quantization operations and inverse transform operations on the decoded quantized residual coefficients in sequence by matrix arithmetic operations, respectively, and these matrix arithmetic operations are inverse operations of the quantization operations and transform operations as described above.
[0026] In an exemplary embodiment, the inverse quantization operation and the inverse transform operation may produce a reconstructed residual. For example, before loop filtering, the prediction value 212 and the reconstructed residual 220 may be added together to generate a reconstructed block 222. A loop filter 224 (e.g., deblocking, SAO and / or ALF, etc.) may be applied to generate a new reconstructed block 226 after loop filtering, which may then be stored in a decoded picture buffer (DPB) 228 to predict future or subsequent images. Multiple reconstructed images stored in the DPB may also be sent to a display, such as a TV, PC, smartphone, or tablet computer, for presentation to an end user.
[0027] In an exemplary embodiment, a variety of intra prediction modes may be provided in VVC.
[0028] In an exemplary embodiment, if Figure 3 As shown in , in order to capture multiple arbitrary edge directions present in natural video, the number of angular intra prediction modes in VVC can be extended to a predefined number, depending on the requirements specified in the VVC standard. As an example and not limitation, the number of angular intra prediction modes in VVC can be extended from 33 used in HEVC to a higher number (e.g. Figure 3 65 in the example), where the angle modes not in HEVC are depicted as dashed arrows. In this example, the 65 angle intra prediction modes from the lower left to the upper right can be represented using indexes 2 to 66.
[0029] In an exemplary embodiment, for multiple blocks having a square shape, an equal number of angle modes may be assigned to the top and left sides of a block, such as Figure 3 As shown. On the other hand, for multiple intra blocks of rectangular shape (which do not exist in HEVC, but are a central part of the VVC partitioning scheme), more intra prediction directions can be assigned to the longer sides of the block. The additional modes assigned along the longer sides can be called wide-angle intra prediction (WAIP) modes, because these additional modes correspond to prediction directions with angles greater than 45 degrees relative to the horizontal or vertical modes. For a given rectangular block, the aspect ratio (i.e., the ratio of width to height) can be used to determine which angle modes will be replaced by corresponding WAIP modes. These WAIP modes can be represented using indices, such as indices -14 to -1 and 67 to 80.
[0030] In an exemplary embodiment, the VVC standard may also implement one or more non-angular intra prediction modes, which may include, but are not limited to, DC mode and planar mode (as in HEVC).
[0031] In an exemplary embodiment, in a DC intra prediction mode (or simply referred to as DC mode), an average sample value of multiple reference samples of a current block to be encoded may be used to generate a prediction. In an exemplary embodiment, in VVC, only multiple reference samples along the longer side of a rectangular block may be used to calculate the average value, while multiple reference samples from the left and top (or above) of a square block may be used to calculate the average value.
[0032] In the planar intra prediction mode (or simply referred to as the planar mode), the prediction value of the current sample can be obtained by the reconstructed values of a predefined number of reference samples (for example, 4 reference samples). For example, if 4 reference samples are used to determine the prediction value of the current sample, the 4 reference samples may include a left reference sample in the same row as the current sample, an upper (or above) reference sample in the same column as the current sample, a lower left reference sample adjacent to the current block, and an upper right reference sample adjacent to the current block. According to the above example, if pred(x, y) represents the prediction value of the current sample, H represents the height of the current block, and W represents the width of the current block, then the reconstructed values of the four reference samples used in the planar mode in this example can be expressed as rec(-1, y), rec(x, -1), rec(-1, H) and rec(W, -1), respectively, as Figure 4 As shown, (x, y) represents the coordinate information of the current sample relative to the upper left position in the current block.
[0033] Continuing with the above example of using 4 reference samples, in an exemplary embodiment, the plane mode can generate a prediction value of the current sample according to the following three formulas, namely formulas (1)-(3). In an exemplary embodiment, an intermediate value predV(x, y) can be obtained from rec(x, -1) and rec(-1, H) according to formula (1), and another intermediate value predH(x, y) can be obtained from rec(-1, y) and rec(W, -1) according to formula (2). Based on these two intermediate values, a prediction value of the current sample can be generated according to formula (3).
[0034] predV(x, y)=((H-1-y)*rec(x,-1)+(y+1)*rec(-1, H))<<log 2 W (1)
[0035] predH(x, y)=((W-1-x)*rec(-1, y)+(x+1)*rec(W,-1))<<log 2 H (2)
[0036] predH(x,y)=(predV(x,y)+predH(x,y)+W*H)>>(log 2 W+log2 H+1) (3)
[0037] In an exemplary embodiment, the prediction process of the planar mode may include the following process: setting the values of all reference samples in the right column to be the same as the reconstructed value rec(W,-1) of a reference sample at the upper right position adjacent to the current block, and setting the values of all reference samples in the bottom row to be the same as the reconstructed value rec(-1,H) of a reference sample at the lower left position adjacent to the current block; generating vertical prediction values, i.e., rec(x,-1) and rec(-1,H), by linearly interpolating the reconstructed values of the upper and lower reference samples of the current sample; generating horizontal prediction values, i.e., rec(-1,y) and rec(W,-1), by linearly interpolating the reconstructed values of the left and right reference samples of the current sample; and performing weighted averaging on the horizontal prediction values and the vertical prediction values to obtain the prediction value of the current sample.
[0038] In an exemplary embodiment, multiple reference samples for intra prediction may be obtained from multiple reconstructed values of neighboring samples of the current block. In some cases (e.g., the current sample is located at the edge or corner of the current block), not all reference samples are available, i.e., located at the reconstructed sample positions. In this case, the unavailable reference samples may be generated by a filling mechanism. In an exemplary embodiment, determining the availability of multiple reference samples may be performed at least in part based on n×n cells or n×n windows of multiple neighboring reconstructed samples, where n may be any predefined integer, such as 2, 4, 6, depending on the availability of multiple neighboring reconstructed samples, the computational or graphics processing capabilities of the processor responsible for determining the availability of the reference samples, etc. In an exemplary embodiment, a group of available cells may form a continuous interval of a reference sample subset, and the outermost reconstructed samples of the interval may then be used as values for the corresponding unavailable portions of these reference samples.
[0039] In an exemplary embodiment, multiple reference samples obtained from the reconstructed values of multiple adjacent samples may be filtered to generate multiple final reference samples that can be used for intra-frame prediction. In an exemplary embodiment, different filtering mechanisms may be applied to multiple reference samples. In an exemplary embodiment, different filtering mechanisms may include, but are not limited to, reference sample smoothing and interpolation filtering, etc. In an exemplary embodiment, one (or only one) of these two mechanisms may be applied to a given block to avoid the increase in delay caused by the continuous application of two filtering operations. In an exemplary embodiment, if a faster processor or a fast dedicated graphics processor is used, multiple filtering mechanisms may be applied. For planar mode, when the number of samples in the current block exceeds a predefined number (e.g., 32, etc.), reference sample smoothing may be performed, or no filtering may be performed. In reference sample smoothing, multiple reference samples may be filtered using a preset filter. In an exemplary embodiment, the preset filter may include, but is not limited to, a finite impulse response filter, such as {1,2,1} / 4.
[0040] In an exemplary embodiment, the VVC standard may implement a direct mode (DM) for chroma intra prediction, where the intra prediction mode of a corresponding luma block may determine the chroma intra mode.
[0041] In an exemplary embodiment, VVC may further implement a most probable mode list (MPM). Figure 3 The example of 67 intra-frame prediction modes in VVC shown, if the prediction mode of each block is signaled separately, 7 bits may be required. In an exemplary embodiment, a method of constructing an MPM list can be adopted in VVC. In image and video coding, adjacent blocks usually have strong correlations, so the probability that the intra-frame prediction modes of adjacent blocks are the same or similar may be relatively high. In an exemplary embodiment, an MPM list can be constructed based on the intra-frame prediction modes of a left adjacent block and an upper (or above) adjacent block. Using the above example, in VVC, the length of its MPM list can be 6. In an exemplary embodiment, in order to keep the complexity of MPM list generation low, an intra-frame prediction mode encoding method with multiple MPMs (for example, 6 MPMs in this example) can be used, and the multiple MPMs are derived from two available adjacent intra-frame prediction modes.
[0042] In an exemplary embodiment, regardless of whether the MRL (multiple reference lines) and ISP (intra subpartitioning) coding tools are applied, a unified k-MPM list (a unified 6-MPM list in this example) (also called a main MPM (PMPM) list) can be used for multiple intra blocks. In an exemplary embodiment, the MPM list can be constructed based on the intra prediction modes of the left and above neighboring blocks. In an exemplary embodiment, if the intra prediction mode of the left block is represented as "Left" and the intra prediction mode of the above block is represented as "Above". In an exemplary embodiment, when a neighboring block is not available, the intra prediction mode of the block can be set to the planar mode by default, and then the MPM list (such as the unified 6-MPM list in this example) can be constructed as follows.
[0043] In an exemplary embodiment, if both the Left and Above modes are non-angle modes, the MPM list may be set to {Planar, DC, V, H, V-4, V+4}, where V is the index of the vertical mode and H is the index of the horizontal mode. If one of the Left and Above modes is an angle mode and the other is a non-angle mode, the mode with a larger index in the Left and Above modes may be set to Max, and the MPM list may be set to {Planar, Max, Max-1, Max+1, Max-2, Max+2}. If both the Left and Above modes are angle modes and are different, the mode with a larger index in the Left and Above modes may be set to Max, and the mode with a smaller index in the Left and Above modes may be set to Min. If Max-Min is equal to 1, the MPM list may be set to {Planar, Left, Above, Min-1, Max+1, Min-2}. Otherwise, if Max-Min is greater than or equal to a predefined number (e.g., 62 in this example), the MPM list may be set to {Planar, Left, Above, Min+1, Max-1, Min+2}. If Max-Min is equal to 2, the MPM list may be set to {Planar, Left, Above, Min+1, Min-1, Max+1}. Otherwise, the MPM list may be set to {Planar, Left, Above, Min-1, Min+1, Max-1}. If the modes of Left and Above are both angle modes and are the same, the MPM list may be set to {Planar, Left, Left-1, Left+1, Left-2, Left+2}.
[0044] In an exemplary embodiment, context-based encoding may be used to context encode the first bin of the MPM index codeword. Examples of context-based encoding may include, but are not limited to, CABAC (context-based adaptive binary arithmetic coding), CAVLC (context-based variable length coding), and the like. In an exemplary embodiment, a predefined number of contexts may be used. For example, continuing with the above example, 3 contexts may be used, corresponding to whether a current intra-block has MRL enabled, ISP enabled, or is a normal intra-block. In an exemplary embodiment, for entropy encoding of non-MPM modes (e.g., the 61 non-MPM modes in the above example), TBC (truncated binary code) may be used.
[0045] In an exemplary embodiment, a secondary MPM method may be used in the ECM. In an exemplary embodiment, a primary MPM (PMPM) list may include a first predefined number of entries (e.g., 6 entries in this example), and a secondary MPM (SMPM) list may include a second predefined number of entries (e.g., 16 entries in this example). In an exemplary embodiment, a general MPM list having a third predefined number of entries (i.e., the sum of the first and second predefined numbers of entries, e.g., 22 entries in this example) may be first constructed, wherein the first few entries (e.g., the first predefined number of entries) may be included in the PMPM list, and the remaining entries may generate an SMPM list. In an exemplary embodiment, the first entry in the general MPM list may be a planar mode. In an exemplary embodiment, the intra-frame prediction mode of the neighboring block may then be added to the general MPM list. Figure 5 FIG. 2 shows a plurality of exemplary neighboring blocks for deriving a general MPM list according to an example implementation of the present disclosure. Figure 5As shown, intra prediction modes of left (L), top (A), bottom left (BL), top right (AR), and top left (AL) neighboring blocks can be used. In this example, if the blocks are vertically oriented, the order of the neighboring blocks can be A, L, BL, AR, AL. Otherwise, if the blocks are horizontally oriented, the order of the neighboring blocks can be L, A, BL, AR, AL. In an exemplary embodiment, two decoder-side intra prediction modes can be added to a common MPM list. In an exemplary embodiment, a derived angle mode obtained by adding an offset from the first two available angle modes in the common MPM list can be added to the common MPM list. In an exemplary embodiment, if the common MPM list is incomplete, a default mode can be added until the common MPM list is complete, i.e., a third predetermined number of entries (or 22 entries in this example) is reached. Continuing with the above example, according to an exemplary embodiment of the present disclosure, the default mode list may be defined as {DC, V, H, V-4, V+4, 14, 22, 42, 58, 10, 26, 38, 62, 6, 30, 34, 66, 2, 48, 52, 16}.
[0046] In an exemplary embodiment, the PMPM flag may be parsed first. In an exemplary embodiment, if the PMPM flag is equal to a predefined value (e.g., 1), a PMPM index may be parsed to determine which entry in the PMPM list to select. Otherwise, an SPMPM flag is parsed to determine whether to parse an SMPM index or multiple remaining modes.
[0047] In an exemplary embodiment, in VVC, the result of intra prediction may be further modified or refined. As an example and not limitation, a position-dependent intra prediction combination (PDPC) method or the like may be used to modify or refine the result of intra prediction. In an exemplary embodiment, PDPC may be applied to the following intra prediction modes without signal notification: planar mode, DC mode, intra angle mode with an index less than or equal to the horizontal mode index, and intra angle mode with an index greater than or equal to the vertical mode index.
[0048] In an exemplary embodiment, for the planar mode, the prediction value of the current sample may be further modified using the following formula (4):
[0049] pred′(x,y)
[0050] =clip(wT*rec(x,-1)+wL*rec(-1,y)+(64-wT-wL)*pred(x,y)+32)>>6 (4)
[0051] Wherein, pred(x, y) represents the predicted value of the current sample obtained by the plane prediction process, rec(x, -1) represents the value of the adjacent sample in the same column of the current sample, rec(-1, y) represents the value of the adjacent sample in the same row of the current sample, pred′(x, y) represents the modified predicted value of the current sample obtained by the PDPC method, which is clipped to the range of 0 to 1 << bitDepth, and wT and wL are two weights, which can be calculated using the following formulas (5) and (6) respectively:
[0052] wT=32>>((y<<1)>nScale) (5)
[0053] wL=32>>((x<<1)>nScale) (6)
[0054] Where nScale is related to the width W and height H of the current block and is calculated based on the following formula (7):
[0055] nScal=(log 2 W+log 2 H-2)>>2 (7)
[0056] In an exemplary embodiment, a decoder-side intra-frame mode derivation method may be used in ECM. As an example and not limitation, the decoder-side intra-frame mode derivation method may include, but is not limited to, a template-based intra-frame mode derivation (TIMD) method. In an exemplary embodiment, the intra-frame prediction mode of a block may be derived using a template-based method on both the encoder side and the decoder side, rather than being notified by a signal. In an exemplary embodiment, a candidate may be constructed from the MPM list, and the candidate mode may be a predetermined number of intra-frame prediction modes (e.g., 67 intra-frame prediction modes in VVC) or an extended number of intra-frame prediction modes (e.g., 131 intra-frame prediction modes). In an exemplary embodiment, as Figure 6 As shown, multiple reference samples of the template are used to generate multiple prediction samples of the template for each candidate mode. In an exemplary embodiment, the cost can be calculated as the SATD (sum of absolute transform differences) between the prediction samples and the reconstructed samples of the template. In an exemplary embodiment, the intra-frame prediction mode with the minimum cost can be selected as the TIMD mode and can be used for intra-frame prediction of the current CU.
[0057] In an exemplary embodiment, TIMD mode may be used as an additional intra prediction method for a CU. A flag may be signaled in a sequence parameter set (SPS) to enable / disable TIMD. When the flag is true, a CU level flag may be signaled to indicate whether TIMD is used. In an exemplary embodiment, the TIMD flag may be signaled immediately after the MIP flag. If the TIMD flag is equal to true, the remaining syntax elements related to the luma intra prediction mode, including the normal parsing phase of MRL, ISP, and multiple luma intra prediction modes, may be skipped.
[0058] In an exemplary embodiment, if the number of intra-frame prediction modes in TIMD is expanded to an extended number (for example, expanded to 131), when storing intra-frame prediction modes for the current block, a predefined data structure (such as a table, a pointer list, etc.) can be used to map these extended number of modes to the original number (for example, 67 using the above example) of intra-frame prediction modes in VVC.
[0059] In an exemplary embodiment, a fusion or combination of two intra prediction modes derived from the TIMD method may be used, which may be referred to as a TIMD fusion method. In an exemplary implementation, instead of selecting a unique mode with a minimum SATD cost, two modes with the first two minimum SATD costs obtained by the TIMD method may be selected, and then the prediction values of the two modes are mixed to generate a final prediction value for the current block. The corresponding weights of the two modes may be set to be inversely proportional to their SATD costs.
[0060] In an exemplary embodiment, another decoder-side intra-mode derivation (DIMD) method may be used in ECM. In an exemplary embodiment, to construct a DIMD histogram for a block, the encoder and decoder may perform a gradient analysis on multiple samples of an L-shaped template of a second adjacent sample line adjacent to the top and left edges of the block. The DIMD pattern may then be derived from the histogram.
[0061] In an exemplary embodiment, in addition to the DCT-2 already adopted in HEVC, the residual coding of the inter-frame and intra-frame coding blocks in VVC may use a multiple transform selection (MTS) scheme. In an exemplary embodiment, the newly added multiple transform cores may include, for example, DCT-8 and DST-7. In an exemplary embodiment, additional transform cores including, for example, DCT-5, DST-4, DST-1, and identity transform (IDT) may also be used. In addition, the MTS transform core may be made dependent on the TU size and the intra-frame prediction mode. In an exemplary embodiment, a predefined number (e.g., 16, etc.) of different TU sizes may be considered. For each TU size, a predefined number (e.g., 3, 4, 5, etc.) of different categories may be considered according to the intra-frame prediction mode. For each category, different transform core pairs (e.g., 1, 4, 6 pairs, etc.) may be considered, each pair including transform cores for horizontal and vertical, respectively. In an exemplary embodiment, multiple intra-frame MTS candidates (e.g., 1, 4, and 6 MTS candidates) may be adaptively selected according to the sum of the absolute values of the transform coefficients.
[0062] In an exemplary embodiment, a low-frequency non-separable transform (LFNST) may be applied between a forward main transform and quantization (at the encoder side) and between inverse quantization and an inverse main transform (at the decoder side). In an exemplary embodiment, a low-frequency non-separable transform of a predefined size (e.g., 4×4 or 8×8, etc.) may be applied according to the block size. As an example and not a limitation, a LFNST of size 4×4 may be applied to a plurality of small blocks (e.g., blocks smaller than a predefined size), and a LFNST of size 8×8 may be applied to a plurality of larger blocks (e.g., blocks greater than or equal to a predefined size). In an exemplary embodiment, a first number (e.g., 4, etc.) of transform core sets and a second number (e.g., 2) of non-separable transform cores per transform set may be used in the LFNST in the VVC. The transform set adopted may be determined by the intra prediction mode of the current block, and in an exemplary embodiment, the number of transform core sets supported by the LFNST may be extended to a preset value (e.g., 35).
[0063] In an exemplary embodiment, since the prediction process of the planar mode always performs weighted averaging of the horizontal interpolation result and the vertical interpolation result to generate the prediction value of the current sample, this process may not be applicable to certain textures.
[0064] In an exemplary embodiment, a plurality of planar modes may be provided. As an example and not a limitation, three different planar modes may be provided herein for illustration. In an exemplary embodiment, a first planar mode may use or perform only horizontal linear interpolation to predict a current sample, as shown in formula (8), which may be referred to herein as a planar horizontal mode. In an exemplary embodiment, a prediction value of a current sample may be obtained from a left reference sample in the same row as the current sample rec(-1,y) and a reference sample at an upper right position adjacent to a current block including the current sample rec(W,-1). In an exemplary embodiment, a second planar mode may use or perform only vertical linear interpolation to predict a current sample, as shown in formula (9), which may be referred to herein as a planar vertical mode. In an exemplary embodiment, a prediction value of a current sample may be obtained from an upper (above) reference sample in the same column as the current sample rec(x,-1) and a reference sample at a lower left corner adjacent to a current block including the current sample rec(-1,H). In an exemplary embodiment, the third planar mode may be the current planar mode used in VVC, which uses both horizontal linear interpolation and vertical linear interpolation to predict the current sample, as shown in formulas (1)-(3), and is referred to as a planar average mode herein. In an exemplary embodiment, all four reference samples as described above may participate in the prediction of the current sample.
[0065] pred(x,y)=((W-1-x)*rec(-1,y)+(x+1)*rec(W,-1)+(W>>1))>>log 2 W (8)
[0066] pred(x,y)=((H-1-y)*rec(x,-1)+(y+1)*rec(-1,H)+(H>>1))>>log 2 H (9)
[0067] In an exemplary embodiment, W>>1 and H>>1 are two offsets used for rounding, which can also be expressed as 1<<(log 2 W-1) and 1<<(log 2 H-1).
[0068] In an exemplary embodiment, when MRL (Multi Reference Line), ISP (Intra Sub Partitioning), and TIMD are disabled, the planar horizontal mode and the planar vertical mode may be applied only to the luma block.
[0069] In an exemplary embodiment, the horizontal interpolation result and the vertical interpolation result may have different weights when pre-weighting the plane, as shown in formula (10):
[0070] pred(x, y)=(wV*predV(x, y)+wH*predH(x, y)+(W*H*(wV+wH))>>1)>>(log 2 W+log 2 H+log 2 (wV+wH)) (10)
[0071] Among them, the two intermediate values predV(x, y) and predH(x, y) are related to the horizontal interpolation result and the vertical interpolation result, and can be obtained by formula (1) and formula (2) respectively. In an exemplary embodiment, the values of the two weights wV and wH can be any non-negative integers, and the sum of the two values can be a power of 2. In an exemplary embodiment, (W*H*(wV+wH))>>1 is an offset used for rounding, which can also be expressed as 1<<(log 2 W+log 2 H+log 2 (wV+wH)-1).
[0072] In an exemplary embodiment, different wV and wH may represent different plane modes. For example, when wV=wH, formula (10) is the same as formula (3), which may represent a plane average mode. When wV=0, formula (10) is the same as formula (8), which may represent a plane horizontal mode. When wH=0, formula (10) is the same as formula (9), which may represent a plane vertical mode.
[0073] In an exemplary embodiment, different planar modes may be supported and represented by different wV and / or wH values by formula (10). As an example and not limitation, three planar modes may be supported, and may include a planar mode of wV=2 and wH=2 (planar average mode), a planar mode of wV=1 and wH=3, and a planar mode of wV=3 and wH=1. For another example, five planar modes may be supported, and may include a planar mode of wV=2 and wH=2 (planar average mode), a planar mode of wV=0 and wH=4 (planar horizontal mode), a planar mode of wV=4 and wH=0 (planar vertical mode), a planar mode of wV=1 and wH=3, and a planar mode of wV=3 and wH=1.
[0074] In an exemplary embodiment, when multiple plane modes are supported, a flag may be signaled to indicate whether a plane mode is used to predict multiple samples in a block. If the flag indicates that the block uses a plane mode, a syntax element may be further signaled to indicate which supported plane mode is used. In an exemplary embodiment, the syntax element may be encoded by TUC (truncated unary code) or a fixed length code.
[0075] For example, if three plane modes are supported (e.g., plane average mode, plane horizontal mode, and plane vertical mode), a flag may be signaled to indicate whether the current block uses the plane mode. If the flag is true (or indicates that the plane mode is used), a syntax element may be further signaled and encoded by TUC (truncated unary code), as shown in Table 1 below, to indicate which mode is used.
[0076] Table 1 Binary code words of TUC in three plane modes model Binary code words of TUC Plane Average Mode 0 Flat Horizontal Mode 10 Plane vertical mode 11
[0077] Additionally or alternatively, in an exemplary embodiment, when multiple planar modes are supported, all planar modes can be signaled based on the MPM list. For example, a planar average mode, a planar horizontal mode, and a planar vertical mode are supported. In this case, the number of non-angular intra-frame prediction modes can be expanded from a first number (e.g., 2 in this example) to a second number (e.g., 4 in this example) of angular intra-frame prediction modes having a third number (e.g., 65 in this example), and a fourth number (i.e., the sum of the first number and the second number, e.g., a total of 69 in this example) of intra-frame prediction modes supported and signaled based on the MPM list.
[0078] In an exemplary embodiment, a unified k-MPM list (i.e., an MPM list with k entries), where k is a positive integer, can be constructed by modification. For example, a unified 6-MPM list can be constructed by the following modification: If both left and above modes are non-angle modes, the MPM list is set to {plane average, plane horizontal, plane vertical, DC, V, H} or any arrangement of these 6 modes.
[0079] In an exemplary embodiment, a general MPM list having PMPM and SMPM lists as described above can be used or constructed by modification. For example, a general MPM list having 22 entries can be used or constructed by the following modifications: the plane average mode is always the first entry in the MPM list, and the plane horizontal mode and the plane vertical mode are in the default mode list.
[0080] Additionally or alternatively, in an exemplary embodiment, when multiple plane modes are supported, an implicit method may be used to decide or determine which plane mode is used by the current block, and no syntax element is signaled to indicate which plane mode is used.
[0081] In an exemplary embodiment, the gradient of the reconstructed values of multiple samples in adjacent rows and columns of the current block can be used to decide or determine which plane mode is implicitly used. As an example and not limitation, if the plane average mode, the plane horizontal mode, and the plane vertical mode are supported, a flag can be signaled to indicate whether the current block uses one of the three plane modes. In an exemplary embodiment, if the flag is true, the horizontal and vertical gradients of the multiple reconstructed values of each sample in the adjacent rows and columns of the current block can be calculated. In an exemplary embodiment, if the sum of the absolute values of the horizontal gradients is greater than (or equal to) the sum of the absolute values of the vertical gradients multiplied by a first predefined threshold, it can be determined that the plane horizontal mode is used. In an exemplary embodiment, if the sum of the absolute values of the vertical gradients is greater than (or equal to) the sum of the absolute values of the horizontal gradients multiplied by a second predetermined threshold, it can be determined that the plane vertical mode is used. Otherwise, if the values of the two sums are close, it is determined that the plane average mode is used.
[0082] Additionally or alternatively, in an exemplary embodiment, a template-based approach may be used to implicitly decide or determine the plane mode. As an example and not limitation, if a plane average mode, a plane horizontal mode, and a plane vertical mode are supported, a flag may be signaled to indicate whether the current block uses one of the three plane modes. In an exemplary embodiment, if the flag is true, multiple "L"-shaped template adjacent samples of the current block are predicted by the three plane modes, respectively. The SATD values between multiple predicted values and multiple reconstructed values of those samples may then be calculated. The plane mode with the minimum SATD value may be selected and used for the current block.
[0083] Additionally or alternatively, in an exemplary embodiment, when multiple plane modes are supported, explicit and implicit methods may be used together to decide or determine which plane mode to use for the current block.
[0084] In an example, a plane average mode, a plane horizontal mode, and a plane vertical mode may be supported. A first flag may be signaled to indicate whether one of the three plane modes is used for the current block, and if the first flag is true, a second flag may be signaled to indicate whether the plane average mode or one of the plane horizontal mode and the plane vertical mode is used. If the second flag indicates that one of the plane horizontal mode and the plane vertical mode is used, the horizontal and vertical gradients of multiple reconstructed values of each sample in adjacent rows and columns of the current block may be calculated. If the sum of the absolute values of the horizontal direction gradients is greater than (or equal to) the sum of the absolute values of the vertical direction gradients multiplied by a threshold, the plane horizontal mode is used, otherwise the plane vertical mode is used.
[0085] In an exemplary embodiment, when a block is predicted by a plane horizontal mode or a plane vertical mode, the propagation mode of the block may be stored as another intra prediction mode. In an exemplary embodiment, the propagation mode of a plane horizontal mode or a plane vertical mode coding block may be stored as a plane average mode. In an exemplary embodiment, the propagation mode of a plane horizontal mode or a plane vertical mode coding block may be stored as a DIMD or TIMD mode. In an exemplary embodiment, the propagation mode of a plane horizontal mode coding block may be stored as a horizontal mode. In an exemplary embodiment, the propagation mode of a plane vertical mode coding block may be stored as a vertical mode. In an exemplary embodiment, the propagation mode of a plane horizontal mode coding block may be stored as a vertical mode. In an exemplary embodiment, the propagation mode of a plane vertical mode coding block may be stored as a horizontal mode. In an exemplary embodiment, the propagation mode of a plane horizontal mode coding block may be stored as a vertical mode. In an exemplary embodiment, the propagation mode of a plane vertical mode coding block may be stored as a horizontal mode. In an exemplary embodiment, the propagation mode of a plane horizontal mode coding block may be stored as a vertical mode. In an exemplary embodiment, the propagation mode of a plane vertical mode coding block may be stored as a horizontal mode. In an exemplary embodiment, the propagation intra prediction mode may be used for DM mode derivation, MTS transform core determination, LFNST transform core determination, and / or MPM list construction of multiple neighboring blocks. For example, for a plane horizontal mode coding block, a vertical mode may be used for MTS transform core determination and LFNST transform core determination, and a plane average mode (original plane mode) may be used for DM mode derivation and MPM list construction of multiple neighboring blocks. For planar vertical mode coding blocks, the horizontal mode can be used for MTS transform kernel determination and LFNST transform kernel determination, and the planar average mode (original planar mode) can be used for DM mode derivation and MPM list construction of multiple adjacent blocks.
[0086] In an exemplary embodiment, the predicted values of the planar horizontal mode and the planar vertical mode may be further modified by the PDPC method.
[0087] In an exemplary embodiment, for both the planar horizontal mode and the planar vertical mode, the PDPC method of the planar average mode can be used. In an exemplary embodiment, a predicted value of the current sample pred(x,y) can be modified according to formula (4) using the value of an upper (or above) reference sample rec(x,-1) and the value of a left reference sample rec(-1,y).
[0088] In an exemplary embodiment, for the planar horizontal mode, only the value of a left reference sample rec(-1, y) may be used to modify a predicted value of the current sample pred(x, y) according to equation (11). In an exemplary embodiment, for the planar vertical mode, only the value of an upper (or above) reference sample rec(x, -1) may be used to modify a predicted value of the current sample pred(x, y) according to formula (12).
[0089] pred′(x, y)=clip(wL*rec(-1, y)+(64-wL)*pred(x, y)+32)>>6 (11)
[0090] pred′(x, y)=clip(wT*rec(x,-1)+(64-wT)*pred(x, y)+32)>>6 (12)
[0091] In an exemplary embodiment, for the planar horizontal mode, only the value of an upper (or above) reference sample rec(x, -1) may be used to modify a predicted value of the current sample pred(x, y) according to formula (12). In an exemplary embodiment, for the planar vertical mode, only the value of a left reference sample rec(-1, y) may be used to modify a predicted value of the current sample pred(x, y) according to formula (11).
[0092] In an exemplary embodiment, the planar horizontal mode and the planar vertical mode can be applied to multiple chroma blocks. For example, when the DM mode is used for the current chroma block and the intra prediction mode of a co-located luminance block is the planar horizontal mode or the planar vertical mode, the mode can also be used for the chroma block.
[0093] In an exemplary embodiment, the plane horizontal mode and the plane vertical mode cannot be applied to multiple chroma blocks. In this case, when the current chroma block uses the DM mode and the intra prediction mode of a co-located luminance block is the plane horizontal mode or the plane vertical mode, the plane average mode can be used for the chroma block.
[0094] In an exemplary embodiment, the planar horizontal mode and the planar vertical mode can be put into the TIMD mode list. For example, these two modes can always be in the TIMD mode list.
[0095] In an exemplary embodiment, when ISP is enabled to the current block, a planar horizontal mode and a planar vertical mode may be applied.
[0096] The above-mentioned embodiments can be freely combined.
[0097] For example, an input video or video stream may be obtained or received. The input video or video stream may include multiple video frames, each of which may be divided into multiple blocks. In an exemplary embodiment, a plane mode may be used to predict a current block. In an exemplary embodiment, a plane mode may be determined from a plurality of plane modes, wherein the plurality of plane modes may include, but are not limited to, a plane horizontal mode, a plane vertical mode, a plane average mode, etc.
[0098] In an exemplary embodiment, different reference samples may be used to predict a current sample in the current block based on which planar mode is used. For example, when a current sample in the current block is predicted using the planar horizontal mode, only a left reference sample and an upper right reference sample are used. When a current sample is predicted using the planar vertical mode, only an upper reference sample and a lower left reference sample are used. When a current sample is predicted using the planar average mode, a left reference sample, an upper right reference sample, an upper reference sample, and a lower left reference sample are used.
[0099] Additionally or alternatively, when a current sample in a current block is predicted using a planar horizontal mode, only horizontal linear interpolation may be used. In an exemplary embodiment, when a current sample is predicted using a planar vertical mode, only vertical linear interpolation may be used. In an exemplary embodiment, when a current sample is predicted using a planar average mode, both horizontal linear interpolation and vertical linear interpolation may be used. In an exemplary embodiment, when weighting is applied to planar prediction, the horizontal interpolation result and the vertical interpolation result are associated with different weights.
[0100] In an exemplary embodiment, when one or more of multiple reference lines (MRL), intra sub-partitioning (ISP), and template-based intra mode derivation (TIMD) are disabled, the planar horizontal mode and the planar vertical mode may be applicable only to multiple luma blocks.
[0101] In an exemplary embodiment, an encoder may encode a flag and a syntax element in an input video or video bitstream during an encoding process. In an exemplary embodiment, when multiple plane modes are supported, the flag may be used to indicate whether the plane mode is used to predict multiple samples in a current block of the input video or video bitstream. In an exemplary embodiment, when the flag indicates that the plane mode is used for the current block in the input video or video bitstream, the syntax element may be used to indicate which of the multiple plane modes is used. In an exemplary embodiment, in response to receiving the input video or video bitstream, a decoder may decode the flag and the syntax element during a decoding process. In an exemplary embodiment, the syntax element may be encoded by a truncated unary code or a fixed length code.
[0102] Additionally or alternatively, in an exemplary embodiment, the encoder may encode a flag in the input video or video bitstream and, when multiple plane modes are supported, use the flag to indicate which of the multiple plane modes is based at least in part on the MPM list. In an exemplary embodiment, the decoder may decode the flag in the input video or video bitstream to determine which of the multiple plane modes is used for the current block. Additionally or alternatively, in an exemplary embodiment, when multiple plane modes are supported, the decoder may use an implicit method to determine which plane mode is used for the current block.
[0103] Those skilled in the art will understand that all of the above aspects of the present disclosure may be implemented simultaneously in any combination, and all aspects of the present disclosure may be implemented in combination as yet another embodiment of the present disclosure.
[0104] Figure 7 An example system 700 is shown for implementing the above-described processes and methods for implementing planar intra prediction mode.
[0105] The techniques and mechanisms described herein may be implemented by multiple instances of the system 700 , as well as any other computing devices, systems, and / or environments. Figure 7 The system 700 shown in is only an example of a system and is not intended to impose any limitation on the scope of use or functionality of any computing device used to perform the above-mentioned processes and / or programs. Other well-known computing devices, systems, environments and / or configurations applicable to the embodiments include, but are not limited to, personal computers, server computers, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, game consoles, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments including any of the above systems or multiple devices, multiple implementations using field programmable gate arrays ("FPGAs") and multiple application-specific integrated circuits ("ASICs"), and / or the like.
[0106] The system 700 may include one or more processors 702 and a system memory 704 communicatively coupled to the one or more processors 702. The one or more processors 702 may execute one or more modules and / or processes to enable the one or more processors 702 to perform various functions. In some embodiments, the one or more processors 702 may include a central processing unit ("CPU"), a graphics processing unit ("GPU"), both a CPU and a GPU, or other processing units or components known in the art. In addition, each of the one or more processors 702 may have its own local memory, which may also store program modules, program data, and / or one or more operating systems.
[0107] Depending on the exact configuration and type of system 700, system memory 704 may be volatile, such as RAM, non-volatile, such as ROM, flash memory, micro hard drive, memory card, etc., or some combination thereof. System memory 704 may include one or more computer executable modules 806 that may be executed by processor 702.
[0108] Module 706 may include, but is not limited to, an encoder module 708 and a decoder module 710 .
[0109] The encoder module 708 may be configured to perform predictive encoding on a plurality of frames from a video source and to signal a plurality of flags in the bitstream by any of the methods described above.
[0110] The decoder module 710 may be configured to perform predictive coding on a plurality of frames from a video source and derive a plurality of prediction modes (eg, inter-frame prediction mode, intra-frame prediction mode, etc.) by any of the methods described above.
[0111] The system 700 may also include an input / output (I / O) interface 712 for receiving video source data and bitstream data, and for outputting decoded multiple frames to a reference frame buffer and / or a display buffer. The system 700 may also include a communication module 714 that allows the system 700 to communicate with other devices (not shown) via a network (not shown). The network may include the Internet, wired media (e.g., a wired network or a direct wired connection), and wireless media (e.g., acoustic, radio frequency ("RF"), infrared, and other wireless media).
[0112] Some or all of the operations of the above methods may be performed by executing computer-readable instructions stored on a computer-readable storage medium, as defined below. The term "computer-readable instructions" as used in the specification and claims includes routines, applications, application modules, program modules, programs, components, data structures, algorithms, etc. Computer-readable instructions may be implemented on a variety of system configurations, including single-processor or multi-processor systems, minicomputers, mainframe computers, personal computers, handheld computing devices, microprocessor-based programmable consumer electronics, combinations of the above devices, etc.
[0113] Computer-readable storage media may include volatile memory (e.g., random access memory ("RAM")) and / or non-volatile memory (e.g., read-only memory ("ROM"), flash memory, etc.). Computer-readable storage media may also include additional removable and / or non-removable memory, including but not limited to flash memory, magnetic memory, optical memory, and / or tape memory, which may provide non-volatile storage of computer-readable instructions, data structures, program modules, etc.
[0114] A non-transitory computer-readable storage medium is an example of a computer-readable medium. Computer-readable media include at least two types of computer-readable media, namely computer-readable storage media and communication media. Computer-readable storage media include volatile and non-volatile, removable and non-removable media implemented in any process or technology for storing information such as computer-readable instructions, data structures, program modules or other data. Computer-readable storage media include, but are not limited to, phase change memory ("PRAM"), static random access memory ("SRAM"), dynamic random access memory ("DRAM"), other types of random access memory ("RAM"), read-only memory ("ROM"), electrically erasable programmable read-only memory ("EEPROM"), flash memory or other memory technology, compact disk read-only memory ("CD-ROM"), digital versatile disk ("DVD") or other optical storage, cassettes, magnetic tapes, disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information for access by a computing device. In contrast, communication media can embody computer-readable instructions, data structures, program modules or other data in a modulated data signal (e.g., a carrier wave) or other transmission mechanism. The computer-readable storage medium used in this article should not itself be interpreted as a transient signal itself, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagated through a waveguide or other transmission medium (such as light pulses through a fiber optic cable), or an electrical signal propagated through wires.
[0115] Computer readable instructions stored on one or more non-transitory computer readable storage media, when executed by one or more processors, may perform the above-mentioned reference Figure 1 A-6 describes the operations. Generally, computer-readable instructions include routines, programs, objects, components, data structures, etc. that perform specific functions or implement specific abstract data types. The order in which the operations are described should not be considered as a limitation, and any number of the described operations may be combined in any order and / or in parallel to implement the process.
[0116] Although the subject matter has been described in language specific to structural features and / or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as example forms of implementing the claims.
[0117] This disclosure may be further understood using the following terms.
[0118] Clause 1: A method, comprising: predicting a current block using a planar mode, wherein the planar mode comprises: a planar horizontal mode, a planar vertical mode, or a planar average mode.
[0119] Clause 2: The method of Clause 1 further comprises: determining the plane mode from a plurality of plane modes, wherein the plurality of plane modes at least comprises the plane horizontal mode, the plane vertical mode and the plane average mode.
[0120] Clause 3: The method as described in Clause 1 further includes: when using the planar horizontal mode to predict a current sample in the current block, only using a left reference sample and an upper right reference sample; when using the planar vertical mode to predict the current sample, only using an upper reference sample and a lower left reference sample; and when using the planar average mode to predict the current sample, using the left reference sample, the upper right reference sample, the upper reference sample and the lower left reference sample.
[0121] Clause 4: The method as described in Clause 1 further includes: when using the planar horizontal mode to predict a current sample in the current block, only horizontal linear interpolation is used; when using the planar vertical mode to predict the current sample, only vertical linear interpolation is used; and when using the planar average mode to predict the current sample, the horizontal linear interpolation and the vertical linear interpolation are used.
[0122] Clause 5: The method of clause 1, wherein, when one or more of multiple reference lines (MRL), intra sub-partitioning (ISP), and template-based intra mode derivation (TIMD) are disabled, the planar horizontal mode and the planar vertical mode are only applicable to multiple luma blocks.
[0123] Clause 6: The method of clause 1, wherein when weighting is applied to planar prediction, horizontal interpolation results and vertical interpolation results are associated with different weights.
[0124] Clause 7: The method as described in Clause 1 further includes: encoding or decoding a flag in a bitstream to indicate whether the plane mode is used to predict multiple samples in the current block when multiple plane modes are supported, the multiple plane modes including at least the plane horizontal mode, the plane vertical mode and the plane average mode; and encoding or decoding a syntax element in the bitstream to indicate which of the multiple plane modes is used when the flag indicates that the plane mode is used for the current block, wherein the syntax element is encoded by a truncated unary code or a fixed length code.
[0125] Clause 8: The method as described in Clause 1 further includes: using a flag to indicate which of the multiple plane modes is at least partially based on the MPM list when multiple plane modes are supported; or using an implicit method to determine which of the plane modes the current block uses when multiple plane modes are supported.
[0126] Item 9: One or more computer-readable media storing executable instructions that, when executed by one or more processors, cause the one or more processors to perform operations including: predicting a current block using a planar mode, wherein the planar mode includes: a planar horizontal mode, a planar vertical mode, or a planar average mode.
[0127] Clause 10: According to one or more computer-readable media of Clause 9, the operation further includes: determining the plane mode from a plurality of the plane modes, wherein the plurality of the plane modes include at least the plane horizontal mode, the plane vertical mode and the plane average mode.
[0128] Clause 11: One or more computer-readable media described in Clause 9, wherein the operation further includes: when using the planar horizontal mode to predict a current sample in the current block, only using a left reference sample and an upper right reference sample; when using the planar vertical mode to predict the current sample, only using an upper reference sample and a lower left reference sample; and when using the planar average mode to predict the current sample, using the left reference sample, the upper right reference sample, the upper reference sample, and the lower left reference sample.
[0129] Clause 12: One or more computer-readable media as described in Clause 9, wherein the operation further includes: when predicting a current sample of the current block using the planar horizontal mode, only using horizontal linear interpolation; when predicting the current sample using the planar vertical mode, only using vertical linear interpolation; and when predicting the current sample using the planar average mode, using the horizontal linear interpolation and the vertical linear interpolation.
[0130] Clause 13: One or more computer-readable media of clause 9, wherein the planar horizontal mode and the planar vertical mode are applicable only to multiple luma blocks when one or more of multiple reference lines (MRL), intra subpartitioning (ISP), and template-based intra mode derivation (TIMD) are disabled.
[0131] Clause 14: The one or more computer-readable media of clause 9, wherein when weighting is applied to the planar prediction, the horizontal interpolation result and the vertical interpolation result are associated with different weights.
[0132] Clause 15: One or more computer-readable media as described in Clause 9, wherein the operation further includes: encoding or decoding a flag in a bitstream to indicate whether the plane mode is used to predict multiple samples in the current block when multiple plane modes are supported, the multiple plane modes including at least the plane horizontal mode, the plane vertical mode and the plane average mode; and encoding or decoding a syntax element in the bitstream to indicate which of the multiple plane modes is used when the flag indicates that the plane mode is used for the current block, wherein the syntax element is encoded by a truncated unary code or a fixed length code.
[0133] Clause 16: The one or more computer-readable media of clause 9, wherein the operations further comprise: Using a flag to indicate which of the plurality of plane modes is based at least in part on the MPM list when multiple plane modes are supported; or An implicit method is used to determine which of the plane modes the current block uses when multiple plane modes are supported.
[0134] Item 17: A system comprising: one or more processors; and a memory storing executable instructions, which, when executed by the one or more processors, causes the one or more processors to perform operations including: predicting a current block using a planar mode, wherein the planar mode includes: a planar horizontal mode, a planar vertical mode, or a planar average mode.
[0135] Clause 18: The system described in Clause 17, wherein the operation further includes: when using the planar horizontal mode to predict a current sample in the current block, only using a left reference sample and an upper right reference sample; when using the planar vertical mode to predict the current sample, only using an upper reference sample and a lower left reference sample; and when using the planar average mode to predict the current sample, using the left reference sample, the upper right reference sample, the upper reference sample and the lower left reference sample.
[0136] Clause 19: The system described in Clause 17, wherein the operation further includes: when using the planar horizontal mode to predict a current sample in the current block, only horizontal linear interpolation is used; when using the planar vertical mode to predict the current sample, only vertical linear interpolation is used; and when using the planar average mode to predict the current sample, the horizontal linear interpolation and the vertical linear interpolation are used.
[0137] Clause 20: The system of Clause 17, wherein the operation further includes: encoding or decoding a flag in a bitstream to indicate whether the plane mode is used to predict multiple samples in the current block when multiple plane modes are supported, the multiple plane modes including at least a plane horizontal mode, a plane vertical mode, and a plane average mode; and encoding or decoding a syntax element in the bitstream to indicate which of the multiple plane modes is used when the flag indicates that the plane mode is used for the current block, wherein the syntax element is encoded by a truncated unary code or a fixed length code.
[0138] Article 21: A computer program product comprising: computer program instructions, wherein the computer program instructions enable a computer to perform the method according to Article 1.
[0139] Article 22: A computer program enabling a computer to perform the method according to Article 1.
Claims
1. A method comprising: A planar mode is used to predict a current block, wherein the planar mode includes: a planar horizontal mode, a planar vertical mode, or a planar average mode.
2. The method according to claim 1, further comprising: The plane mode is determined from a plurality of plane modes, wherein the plurality of plane modes at least include the plane horizontal mode, the plane vertical mode, and the plane average mode.
3. The method according to claim 1, further comprising: When predicting a current sample in the current block using the planar horizontal mode, only a left reference sample and an upper right reference sample are used; When predicting the current sample using the planar vertical mode, only an upper reference sample and a lower left reference sample are used; as well as When predicting the current sample using the planar average mode, the left reference sample, the upper right reference sample, the upper reference sample, and the lower left reference sample are used.
4. The method according to claim 1, further comprising: When predicting a current sample in the current block using the planar horizontal mode, only horizontal linear interpolation is used; When predicting the current sample using the planar vertical mode, only vertical linear interpolation is used; and When predicting the current sample using the planar average mode, the horizontal linear interpolation and the vertical linear interpolation are used.
5. The method according to any one of claims 1 to 4, wherein: When one or more of multiple reference lines (MRL), intra sub-partitioning (ISP), and template-based intra mode derivation (TIMD) are disabled, the planar horizontal mode and the planar vertical mode are only applicable to multiple luma blocks.
6. The method according to any one of claims 1 to 5, wherein: When weighting is applied to planar prediction, the horizontal interpolation result and the vertical interpolation result are associated with different weights.
7. The method according to claim 1, further comprising: encoding or decoding a flag in a bitstream to indicate whether to use the plane mode to predict a plurality of samples in the current block when multiple plane modes are supported, the multiple plane modes comprising at least the plane horizontal mode, the plane vertical mode, and the plane average mode; as well as A syntax element is encoded or decoded in the bitstream to indicate which one of a plurality of the plane modes is used when the flag indicates that the plane mode is used for the current block, wherein the syntax element is encoded by a truncated unary code or a fixed length code.
8. The method according to claim 1, further comprising: using a flag to indicate which of the plurality of said plane modes is based at least in part on the MPM list when multiple said plane modes are supported; or An implicit method is used to determine which of the plane modes the current block uses when multiple plane modes are supported.
9. One or more computer-readable media storing an executable instruction set, which, when executed by one or more processors, causes the one or more processors to perform operations comprising: A planar mode is used to predict a current block, wherein the planar mode includes: a planar horizontal mode, a planar vertical mode, or a planar average mode.
10. The one or more computer readable media of claim 9, the operations further comprising: The plane mode is determined from a plurality of plane modes, wherein the plurality of plane modes at least include the plane horizontal mode, the plane vertical mode, and the plane average mode.
11. The one or more computer-readable media of claim 9, the operations further comprising: When predicting a current sample in the current block using the planar horizontal mode, only a left reference sample and an upper right reference sample are used; When predicting the current sample using the planar vertical mode, only an upper reference sample and a lower left reference sample are used; and When predicting the current sample using the planar average mode, the left reference sample, the upper right reference sample, the upper reference sample, and the lower left reference sample are used.
12. The one or more computer-readable media of claim 9, the operations further comprising: When predicting a current sample of the current block using the planar horizontal mode, only horizontal linear interpolation is used; When predicting the current sample using the planar vertical mode, only vertical linear interpolation is used; and When predicting the current sample using the planar average mode, the horizontal linear interpolation and the vertical linear interpolation are used.
13. One or more computer readable media according to any one of claims 9 to 12, wherein: When one or more of multiple reference lines (MRL), intra sub-partitioning (ISP), and template-based intra mode derivation (TIMD) are disabled, the planar horizontal mode and the planar vertical mode are only applicable to multiple luma blocks.
14. The one or more computer-readable media of any one of claims 9 to 13, wherein when weighting is applied to planar prediction, horizontal interpolation results and vertical interpolation results are associated with different weights.
15. The one or more computer-readable media of claim 9, the operations further comprising: encoding or decoding a flag in a bitstream to indicate whether to use the plane mode to predict a plurality of samples in the current block when multiple plane modes are supported, the multiple plane modes comprising at least the plane horizontal mode, the plane vertical mode, and the plane average mode; as well as A syntax element is encoded or decoded in the bitstream to indicate which of the plurality of plane modes to use when the flag indicates that the plane mode is for the current block, wherein the syntax element is encoded by a truncated unary code or a fixed length code.
16. The one or more computer-readable media of claim 9, the operations further comprising: using a flag to indicate which of the plurality of said plane modes is based at least in part on the MPM list when multiple said plane modes are supported; or An implicit method is used to determine which of the plane modes the current block uses when multiple plane modes are supported.
17. A system comprising: one or more processors; as well as A memory storing executable instructions, which, when executed by one or more processors, causes the one or more processors to perform the following operations: A planar mode is used to predict a current block, wherein the planar mode includes: a planar horizontal mode, a planar vertical mode, or a planar average mode.
18. The system of claim 17, the operations further comprising: When predicting a current sample in the current block using the planar horizontal mode, only a left reference sample and an upper right reference sample are used; When predicting the current sample using the planar vertical mode, only an upper reference sample and a lower left reference sample are used; as well as When predicting the current sample using the planar average mode, the left reference sample, the upper right reference sample, the upper reference sample, and the lower left reference sample are used.
19. The system of claim 17, the operations further comprising: When predicting a current sample in the current block using the planar horizontal mode, only horizontal linear interpolation is used; When predicting the current sample using the planar vertical mode, only vertical linear interpolation is used; and When predicting the current sample using the planar average mode, the horizontal linear interpolation and the vertical linear interpolation are used.
20. The system of claim 17, the operations further comprising: encoding or decoding a flag in a bitstream to indicate whether to use the planar mode to predict a plurality of samples in the current block when multiple planar modes are supported, the multiple planar modes comprising at least a planar horizontal mode, a planar vertical mode, and a planar average mode; as well as A syntax element is encoded or decoded in the bitstream to indicate which of the plurality of plane modes to use when the flag indicates that the plane mode is for the current block, wherein the syntax element is encoded by a truncated unary code or a fixed length code.
21. A computer program product comprising computer program instructions, wherein the computer program instructions enable a computer to perform the method of any one of claims 1 to 8.
22. A computer program, wherein The computer program enables a computer to execute the method according to any one of claims 1 to 8.