Intra prediction for video encoding and decoding
By employing a quadratic model-based interpolation method in the video encoding and decoding system, and utilizing four adjacent reference samples and a threshold, the computational complexity of intra-frame prediction in the off-diagonal direction is simplified, thereby improving encoding and decoding efficiency.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-06-22
- Publication Date
- 2026-03-24
AI Technical Summary
Existing video encoding and decoding systems have high computational complexity when handling intra-frame prediction in non-diagonal directions, especially the interpolation operation of luma and chroma blocks, which requires multiple multiplication and addition operations, resulting in low efficiency.
An interpolation method based on a quadratic model is adopted, which simplifies the interpolation process of luminance and chrominance blocks and reduces computational complexity by using four adjacent reference samples and combining them with threshold judgment.
It reduces the computational complexity of intra-frame prediction in the off-diagonal direction, improves the efficiency of video encoding and decoding, simplifies interpolation operations, and reduces the demand for computing resources.
Smart Images

Figure CN114402593B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to video encoding and decoding. Background Technology
[0002] To achieve high compression efficiency, image and video coding schemes typically employ prediction and transform to utilize spatial and temporal redundancy in video content. Generally, intra-frame or inter-frame prediction is used to leverage intra-frame or inter-frame correlations, and then the difference between the original and predicted frame patches (typically represented as prediction error or prediction residual) is transformed, quantized, and entropy-coded. To reconstruct the video, the compressed data is decoded through the inverse process corresponding to prediction, transform, quantization, and entropy coding. Various modifications and implementations are envisioned below, which can provide improvements to video coding and / or decoding systems, including but not limited to one or both of increased compression or coding efficiency and reduced complexity. Summary of the Invention
[0003] Typically, examples of implementations may involve a method comprising: determining a value associated with a prediction of pixels of a block of image information, wherein the prediction is based on intra-frame prediction along a non-diagonal direction, determining four reference samples of the block from a plurality of decoded pixels adjacent to the block at the top and left sides based on the non-diagonal direction, and wherein the determination of the value includes interpolation based on a quadratic model and the four reference samples; and decoding at least a portion of the image information based on the value.
[0004] Typically, another example of an implementation may involve a method comprising: determining a value associated with a prediction of pixels of a block of image information, wherein the prediction is based on intra-frame prediction along a non-diagonal direction, determining four reference samples of the block from a plurality of pixels adjacent to the block at the top and left sides based on the non-diagonal direction, and wherein the determination of the value includes interpolation based on a quadratic model and the four reference samples; and encoding at least a portion of the image information based on the value.
[0005] Typically, another example of an implementation may involve an apparatus comprising: one or more processors configured to determine a value associated with a prediction of pixels of a block of picture information, wherein the prediction is based on intra-frame prediction along a non-diagonal direction, determining four reference samples of the block from a plurality of decoded pixels adjacent to the block at the top and left sides based on the non-diagonal direction, and wherein the one or more processors are configured to determine the value including the one or more processors being further configured to interpolate based on a quadratic model and the four reference samples; and decoding at least a portion of the picture information based on the value.
[0006] Typically, another example of an implementation may involve an apparatus comprising: one or more processors configured to determine a value associated with a prediction of pixels of a block of picture information, wherein the prediction is based on intra-frame prediction along a non-diagonal direction, determining four reference samples of the block from a plurality of decoded pixels adjacent to the block at the top and left sides based on the non-diagonal direction, and wherein determining the value includes the processors being further configured to interpolate based on a quadratic model and the four reference samples; and encoding at least a portion of the picture information based on the value.
[0007] Typically, another example of an implementation may involve a bitstream that is formatted to contain picture information, wherein the picture information is encoded by processing the picture information based on any one or more examples of the implementation of the method according to this disclosure.
[0008] Typically, one or more other examples of the embodiments may also provide a computer-readable storage medium, such as a non-volatile computer-readable storage medium, having instructions stored thereon for encoding or decoding picture information (such as video data) according to the methods or apparatus described herein. One or more embodiments may also provide a computer-readable storage medium having a bitstream generated according to the methods or apparatus described herein stored thereon. One or more embodiments may also provide methods and apparatus for transmitting or receiving bitstreams generated according to the methods or apparatus described herein.
[0009] As explained below, various modifications and implementations are envisioned that can provide improvements to video encoding and / or decoding systems, including but not limited to one or more of increased compression efficiency and / or encoding efficiency and / or processing efficiency and / or reduced complexity.
[0010] The foregoing presents a simplified overview of the subject matter to provide a basic understanding of some aspects of this disclosure. This invention is not a broad overview of the subject matter. It is not intended to identify key / essential elements of embodiments or to depict the scope of the subject matter. Its sole purpose is to present some conceptual ideas of the subject matter in a simplified form as a preface to the more detailed description provided below. Attached Figure Description
[0011] This disclosure can be better understood by considering the following specific embodiments in conjunction with the accompanying drawings, wherein:
[0012] Figure 1 A block diagram illustrating an example implementation of a video encoder is provided;
[0013] Figure 2 A block diagram illustrating an example implementation of a video decoder is provided;
[0014] Figure 3 An example of reference samples for intra-frame prediction, for example, for a target block having a width of W pixels and a height of H pixels, is shown, with the top reference array having 2W+1 samples and the left reference array having 2H+1 samples.
[0015] Figure 4 Examples of interpolation for predictors used in off-diagonal directions are shown. For example, P0, P1, P2, and P3 are recent reference samples used to interpolate predictors for the luminance component using Gaussian or cubic filters, while for the chrominance component, P1 and P2 are used for linear interpolation of predictors.
[0016] Figure 5 An example of a quadratic function approximation with four samples is shown, where the function can be divided into a linear part and a quadratic part;
[0017] Figure 6 An example of a piecewise linear approximation of a quadratic function is shown, for example, in each half of the interval [0, 1], the function is approximated by a straight line, where the slope of the line depends on four given sample values p0, p1, p2, and p3;
[0018] Figure 7 Block diagrams are provided illustrating examples of embodiments of the apparatus or system according to the various aspects and embodiments described herein; and
[0019] Figure 8 An example of an implementation according to this disclosure is shown.
[0020] It should be understood that the accompanying drawings are for illustrative purposes, showing various aspects and examples of embodiments, and are not necessarily the only possible configurations. Throughout the drawings, the same reference numerals refer to the same or similar features. Detailed Implementation
[0021] Now turn to the attached diagram. Figure 1 An example of a video encoder 100 (such as an HEVC encoder) is shown. HEVC is a compression standard developed by the Joint Collaborative Team for Video Coding (JCT-VC) (see, for example, "ITU-TH.265 Telecommunications Standardization ITU Sector (10 / 2014), H Series: Audiovisual and Multimedia Systems, Infrastructure for Audiovisual Services - Coding of Mobile Video, Efficient Video Coding, Recommendation ITU-TH.265"). Figure 1It may also be shown encoders that improve upon the HEVC standard or employ technologies similar to HEVC, such as encoders based on JEM (Joint Probe Model) or its improvements, which are being developed by the Joint Video Experts Group (JVET) and, for example, associated with development work designated as Multi-Functional Video Coding (VVC).
[0022] In this application, the terms “reconstruction” and “decoding” are used interchangeably, the terms “pixel” and “sample” are used interchangeably, and the terms “picture” and “frame” are used interchangeably.
[0023] The HEVC specification distinguishes between “blocks” and “cells”. A “block” processes a specific region in the sample array (e.g., luminance, Y), while a “cell” includes a juxtaposed block of all encoded color components (Y, Cb, Cr, or monochrome), syntax elements, and prediction data associated with the block (e.g., motion vectors).
[0024] For encoding, the image is partitioned into Code Tree Blocks (CTBs) of configurable size squares, and a contiguous set of CTBs is grouped into slices. A Code Tree Unit (CTU) contains the CTBs of the encoded color components. A CTB is the root of a quadtree partitioned into Code Blocks (CBs), and a Code Block can be partitioned into one or more Prediction Blocks (PBs) and form the root of a quadtree partitioned into Transform Blocks (TBs). Corresponding to the Code Block, Prediction Block, and Transform Frame, a Code Unit (CU) includes Prediction Units (PUs) and Transform Units (TUs) of a tree structure set. PUs contain prediction information for all color components, and TUs contain the residual coding syntax structure for each color component. The sizes of the CBs, PBs, and TBs for the luma component are appropriate for the corresponding CUs, PUs, and TUs. In this application, the term "block" can be used to refer to any of CTUs, CUs, PUs, TUs, CBs, PBs, and TBs. Additionally, "block" can also refer to macroblocks and partitions specified in H.264 / AVC or other video coding standards, and more generally refers to data arrays of various sizes.
[0025] exist Figure 1In encoder 100, the picture is encoded by encoder elements as described below. The picture information to be encoded is provided at the input and undergoes mapping (101) and image partitioning (102). Mapping (101) is typically applied per sample and applies a 1D function to the input sample values to transform them into other sample values. For example, the 1D function can extend the range of sample values and provide a better distribution of codewords within the codeword range. Image partitioning (102) divides the image into blocks of different sizes and shapes to optimize the rate distortion tradeoff. Mapping and partitioning enable the processing of picture information at the CU (Computer Unit) level, as described above. Each CU is encoded using either intra-frame mode or inter-frame mode. When a CU is encoded in intra-frame mode, it performs intra-frame prediction (160). In inter-frame mode, motion estimation (175) and compensation (170) are performed. The encoder determines (105) which of the intra-frame mode or inter-frame mode is used to encode the CU and indicates the intra / inter-frame decision via a prediction mode flag. Following the intra- or inter-frame prediction decision (105) is a forward mapping (191) to produce a prediction block. Typically, the forward mapping process (191) is similar to and can be complementary to the mapping (101). The prediction residual is calculated by subtracting the prediction block (110) from the original image block.
[0026] The prediction residual is then transformed (125) and quantized (130). The quantized transform coefficients, motion vectors, and other syntax elements are entropy-coded (145) to output a bitstream. The encoder may also skip the transform and apply quantization directly to the untransformed residual signal based on a 4×4 TU. Alternatively, the encoder may bypass both the transform and quantization, i.e., encode the residual directly without applying either the transform or quantization process. In direct PCM encoding, no prediction is applied and the coding unit samples are directly encoded into the bitstream.
[0027] The encoder decodes the coded block to provide a reference for further prediction. The quantized transform coefficients are dequantized (140) and inverse transformed (150) to decode the prediction residual. The decoded prediction residual and the prediction block are combined (155) to reconstruct the image block. A loop filter (165) is applied to the reconstructed image to perform, for example, deblocking / SAO (sample adaptive offset) filtering to reduce coded artifacts. The inverse mapping (190) is the inverse of the forward mapping (191). The filtered image is stored in a reference image buffer (180).
[0028] Figure 2 A block diagram of an example video decoder 200 (such as an HEVC decoder) is shown. In the example decoder 200, a signal or bitstream is decoded by decoder elements, as described below. The video decoder 200 typically performs functions similar to... Figure 1 The described decoding channel is the inverse of the encoding channel, and the decoding channel performs video decoding as part of the encoded video data. Figure 2Decoders that improve upon the HEVC standard or employ technologies similar to HEVC, such as JEM-based decoders or their improvements, may also be shown.
[0029] Specifically, the input to the decoder includes inputs that can be obtained from a video encoder (such as...) Figure 1 The video signal or bitstream generated by the video encoder 100 is first entropy decoded (230) to obtain transform coefficients, motion vectors, and other encoded information. Partitioning (210) divides the image into blocks of different sizes and shapes based on the decoded data. The transform coefficients are dequantized (240) and inverse transformed (250) to decode the prediction residuals. The decoded prediction residuals and prediction blocks are combined (255) to reconstruct the image blocks. The prediction blocks (270) can be obtained from intra-frame prediction (260) or motion-compensated prediction (i.e., inter-frame prediction) (275). Advanced motion vector prediction (AMVP) and merging mode techniques can be used to derive motion-compensated motion vectors, which can be interpolated using interpolation filters to compute interpolated values of sub-integer samples of the reference block. A loop filter (265) is applied to the reconstructed image. The filtered image is stored in a reference frame buffer (280).
[0030] In Multifunctional Video Coding (VVC), target blocks are intra-frame predicted in non-angular modes (such as planar or DC) or with one of several angular modes. In angular prediction, predictor samples from the reference array are directly copied to the target pixel location along the corresponding direction. For non-diagonal directions other than strictly horizontal and strictly vertical modes, predictor samples are interpolated by filtering the four nearest reference samples using a cubic or Gaussian filter, in the case of luma blocks. The filters are pre-computed and stored as two 32×4 arrays, which require memory. Furthermore, since the coefficients are not always powers of 2, each target pixel requires four multiplications to compute its prediction. For some low-power and low-latency applications, the required complexity can be high.
[0031] Typically, one aspect of this disclosure may relate to a reduced-complexity filtering method for interpolating predictions for non-diagonal directions that do not include strictly horizontal and strictly vertical directions. The filtering is still applied to the four nearest samples, but in at least one embodiment, it can be based on two linear models, each applied to half the interval. The resulting computation is much simpler, requiring only two multiplications per target pixel. Since a four-sample-based model is unsuitable for modeling the edges of an object, at least one example of the embodiment provides a thresholding method to decide between the proposed model and linear interpolation using the two nearest reference samples. If the prediction requires the use of pre-filtered reference samples, depending on the prediction direction and block size (e.g., in HEVC), then at least one example of the embodiment applies a pre-filter [1 21] to the two nearest reference samples, followed by the interpolation described above. Thus, a single, unified interpolation method is applied in all cases.
[0032] Multifunctional Video Coding (VVC) defines several prediction modes for intra-frame prediction of target blocks. Planar and DC modes are designed to model regions of gradually and slowly changing intensity, while angular prediction modes are designed to model directionality in different object structures. In addition to the regular 65 angular prediction modes covering prediction directions from 45 degrees to -135 degrees, several wide-angle modes with directions exceeding the range of the regular modes are included. Wide-angle modes are defined only for non-square blocks. For any given target block, a wide-angle mode can replace a regular prediction mode in the opposite direction. Therefore, the total number of available prediction modes for a target block remains consistently 67 (i.e., one planar mode, one DC mode, and 65 angular modes).
[0033] To effectively implement these modes, the VVC reference software, designated as the Multi-Functional (or VVC) Test Model (VTM), defines two reference arrays: a top reference array consisting of decoded pixels from the top, top right, and top left corners; and a left reference array consisting of decoded pixels from the left, bottom left, and top left corners. For any angular prediction mode, samples from these reference arrays are copied onto the target block along the corresponding direction. However, since the reference samples are only located at integer positions, the predicted reference samples for all target pixels are inconsistent with the actual reference samples, except for modes along the diagonal direction (i.e., modes 2, 66, and 34) and strictly vertical and horizontal modes (i.e., modes 18 and 50). In this case, the predicted samples are interpolated using adjacent reference samples. In VTM version 5, for the luma block, the predicted samples are interpolated using the four nearest reference samples, with two reference samples on either side of the predicted sample's position on the reference array. For the chroma block, the predicted samples are linearly interpolated using the two nearest reference samples, with one reference sample on either side of the predicted sample's position on the reference array.
[0034] While using four reference samples for interpolation produces more accurate values, it results in greater complexity. Early versions of VTM used only linear interpolation with the two most recent reference samples for both luma and chroma target blocks. Linear interpolation is a weighted sum and can be efficiently implemented with just one multiplication and two addition operations. In contrast, interpolation using four samples is performed via a cubic or Gaussian filter, whose coefficients are pre-computed and stored in memory. Therefore, each interpolation requires four multiplications and three addition operations.
[0035] Typically, at least one example of the embodiments described herein provides an interpolation method that also uses at least four adjacent reference samples but requires less complex operations. Typically, in at least one example of the embodiments, the described method can be applied to both luma and chroma target blocks, rather than processing them separately.
[0036] Regarding intra-frame prediction in VTM 5.0, for a given target block to be intra-frame predicted, the encoder or decoder first constructs two reference arrays, one at the top of the target block and the other at the left. Reference samples are obtained from decoded samples on the top, top right, left, bottom left, and top left decoded blocks. If some samples on the top or left are unavailable, due to the corresponding CU not being in the same slice, or the current CU being at a frame boundary, etc., a method called reference sample replacement is then performed, in which the missing samples are copied from the available samples in a clockwise direction. Both reference arrays are filtered with a low-pass filter [1 2 1] / 4, and both the filtered and unfiltered versions are available for prediction. For any prediction mode, prediction is performed using either the filtered or unfiltered reference array, not both. If the prediction mode corresponds to a diagonal direction (i.e., mode 2, mode 66, or mode 34), prediction is performed using the filtered reference array. For all other angular prediction modes, prediction is performed using the unfiltered reference array.
[0037] Generally, we will use a rectangular target block with a width of W pixels and a height of H pixels. We will denote the top and left reference arrays as refMain and refSide, respectively. The refMain array has 2*W+1 pixels and they are indexed as refMain[0] to refMain[2W], where refMain[0] corresponds to the top-left reference pixel. Similarly, the refSide array has 2*H+1 pixels and they are indexed as refSide[0] to refSide[2H], where refSide[0] again corresponds to the top-left reference pixel. For the special case of a square block with N pixels on each side, the reference array will have 2N+1 pixels. Figure 3 An example of a reference array for a rectangular target block is shown.
[0038] For the positive vertical direction (i.e., for patterns with an index greater than or equal to 50), prediction only requires reference samples from refMain[0] to refMain[2W+1]. For the negative vertical direction (i.e., for patterns with an index greater than or equal to 34 but less than 50), samples on refSide are projected onto the negative side of refMain to generate reference samples refMain[-1], refMain[-2]...refMain[-k], where refMain[-k] corresponds to the projection of the last reference sample refSide[2H]. Projection is performed using the inverse angle parameter invAngle, which corresponds to the angle parameter predIntraAngle associated with the prediction pattern. In the VVC test model VTM, the horizontal prediction pattern (patterns with an index greater than 1 and less than 34, i.e., the diagonal pattern DIA_IDX) is implemented by swapping the top and left reference arrays and the height and width of the target block. This is due to the symmetry of the vertical (horizontal) patterns around the strictly vertical (horizontal) direction. Throughout this specification, it will be assumed that for the horizontal prediction mode, refMain and refSide, after being swapped, represent the top reference array and the left reference array.
[0039] For any target pixel, the reference sample on refMain will be referred to as its predictor. If the prediction mode is one of the diagonal modes, i.e., mode 2, mode 66, or mode 34, then the predictor for each target sample will be consistent with the reference sample. In this case, the corresponding reference sample will be used as the predictor. For all other angular prediction modes, the two or four most recent reference samples of the predictor are used to interpolate the predictor as follows.
[0040] Let P0, P1, P2, and P3 represent the four reference samples that are closest to the predictor sample, such as... Figure 4 As shown. They are determined as follows. First, the integer and fractional parts of the predictor's position on refMain are determined. The position of the predictor relative to the horizontal offset of the target pixel at (x, y) is represented as deltaPos, and its integer part deltaInt and fractional part deltaFract are calculated as follows:
[0041] deltaPos=(1+y)*predIntraAngle
[0042] deltaInt = deltaPos >> 5;
[0043] deltraFract = deltaPos & 31;
[0044] Since deltaPos is defined with a pixel resolution of (1 / 32), deltaInt determines the position of the nearest reference sample on the left, i.e., P1, and deltaFract represents the distance between the predictor and P1 with a resolution of (1 / 32).
[0045] Therefore, the four reference samples were identified as:
[0046] P0≡refMain[x+deltaInt],
[0047] P1≡refMain[x+deltaInt+1],
[0048] P2≡refMain[x+deltaInt+2],
[0049] P3≡refMain[x+deltaInt+3],
[0050] like Figure 4 As shown. For the brightness target block, the predictor sample value is calculated as follows:
[0051] P pred (x, y)=(F[0]*P0+F[1]*P1+F[2]*P2+F[3]*P3+32)>>6......(1)
[0052] Where F[i] represents the i-th filter coefficient. The filter coefficients F[i], i = 0, 1, 2, 3, are normalized to integer values such that their sum equals 64. The selected filter depends on the value deltaFract and a Boolean parameter called useFilter. If useFilter is enabled, a Gaussian filter is used; otherwise, a cubic filter is used. The value of useFilter is determined based on several intra-frame prediction parameters (such as block size, prediction direction, etc.). Therefore, its value is the same for all target pixels. When the specified cubic filter has both negative and positive coefficient values, a cropping operation is additionally performed when useFilter is disabled to preserve the prediction values within the effective dynamic range of the luma component.
[0053] P pred (x, y)=Clip((F[0]*P0+F[1]*P1+F[2]*P2+F[3]*P3+32)>>6......(2)
[0054] Since deltaFract has integer values in the range [0-31], VVC specifies 32 Gaussian filters and 32 cubic filters corresponding to these 32 deltaFract values, which are calculated offline and stored in memory.
[0055] For the chroma target block, the predictor is interpolated using only two reference samples, P1 and P2. This is similar to linear interpolation of the predictor values in HEVC.
[0056] P pred (x, y)=((32-deltaFract)*P1+deltaFract*P2+16)>>5;......(3)
[0057] In this case, since the predicted value is a weighted sum of the two samples, no pruning operation is required.
[0058] VVC also supports intra prediction with multiple reference lines (MRLs) and intra prediction with sub-segments (ISPs). In an MRL, the usual top and left reference arrays are referred to as constituting the first reference line, where the nth reference line consists of a reference array offset n pixels from the target block. In addition to the first reference line, the MRL also considers the second and fourth reference lines for prediction. The index of the reference line indicated by the flag multiRefIdx is signaled so that the decoder also uses the same reference lines for prediction. If the multiRefIdx flag is non-zero, i.e., the second or fourth reference line is used for prediction, the useFilter flag is disabled, meaning that the predictor for the luma block uses the specified cubic filter as interpolated in Equation (2). Therefore, although for ease of interpretation, “adjacent” reference samples, as used herein, can refer to the usual top and left reference arrays, such as samples of the first reference line, “adjacent” is not limited to this and can refer to other reference lines or arrays.
[0059] In ISP, the target block is divided into 2 or 4 sub-partitions, either vertically or horizontally. Prediction of the sub-partitions is performed sequentially, such that predictions in one sub-partition can use decoded pixels from previous sub-partitions. In other words, a reference array for each sub-partition is constructed using decoded pixels from previous sub-partitions. This type of partitioning is signaled using a flag called ispMode. ISP only supports the first reference line. Therefore, if the multiRefIdx flag is non-zero, the target block is not partitioned. If the ispMode flag is non-zero, the usefilter flag is enabled if the prediction direction is vertical (i.e., the mode index is greater than or equal to 34) and the target block width is greater than 8, or if the prediction direction is horizontal (i.e., the mode index is less than 34) and the target block height is greater than 8; otherwise, the useFilter flag is disabled. In the former case, the predictors are interpolated using a Gaussian filter as specified in Equation (1), and in the latter case, they are interpolated using a cubic filter as specified in Equation (2).
[0060] Generally, a method for intra-frame prediction according to this disclosure will now be described. In at least one embodiment, a single uniform interpolation method is applied to both the luma and chroma components. For interpolation predictors with off-diagonal directions, the same four nearest reference samples P0, P1, P2, and P3 given in the previous section are considered. For predictions along the diagonal direction (i.e., for modes 2, 66, and 34), prediction methods such as those in VTM 5.0 can be used.
[0061] First, to distinguish between the two cases where the flag `useFilter` is enabled (Gaussian filter used in VTM5.0) and disabled (cubic filter used in VTM5.0), when `useFilter` is enabled, a relatively low-complexity [1 2 1] / 4 filter can be applied to P1 and P2, which are otherwise derived as described in the previous section. This auxiliary step is necessary because the reference array used for predictions along the off-diagonal direction is not filtered.
[0062] Therefore, if the useFilter flag is true:
[0063] P1=(refMain[x+deltaInt]+2*refMain[x+deltaInt+1]+refMain[x+deltaInt+2]+2)>>2;
[0064] P2=(refMain[x+deltaInt+1]+2*refMain[x+deltaInt+2]+refMain[x+deltaInt+3]+2)>>2;
[0065] Typically, one aspect of this disclosure involves the calculation of the predictor sample value as follows:
[0066] P pred (x, y)=Clip(P1+((((P2-P1)<<2)*deltaFract+(P1+P2-P0-P3)*deltaFract2+64)>>7))....(4)
[0067] in
[0068] If deltaFract < 16, then deltaFract2 = deltaFract; otherwise, it = 32 - deltaFract.
[0069] Typically, another aspect of this disclosure involves first comparing the absolute value of the difference between P1 and P2 with a preset threshold. If the value is less than the threshold, we perform linear interpolation using P1 and P2; otherwise, we interpolate as described above. Therefore, Th represents the preset threshold.
[0070] If |P1-P2| <= Th
[0071] P pred (x, y)=(P1*(32-deltaFract)+P2*deltaFract+16)>>5;
[0072] otherwise
[0073] P pred (x,y)=Clip(P1+((((P2-P1)<<2)*deltaFract+(P1+P2-P0-P3)*deltaFract2+64)>>7))
[0074] The derivation of the expression in formula (4) is given in the next section.
[0075] The prediction formula can be derived as follows. Let f(x) represent the 1D signal that has been sampled at integer values x. Let p0, p1, p2, and p3 represent the values sampled at coordinates x = -1, 0, 1, and 2, respectively. Cubic interpolation involves first modeling f(x) as a third-order polynomial:
[0076] f(x) = ax 3 +bx 2 +cx+d.
[0077] The four coefficients a, b, c, and d can be solved using four conditions:
[0078] f(0) = p1
[0079] f(1) = p2
[0080] f'(0)=(p2-p0) / 2
[0081] f'(1)=(p3-p1) / 2
[0082] Here, f′(t) represents the derivative of f(x) at x = t. These are not the only conditions, but the derivative conditions produce the continuity and smoothness of f(x) at f(0) and f(1). The resulting polynomial is also called a Catmull-Rom spline.
[0083] One aspect of this disclosure relates to starting with the following quadratic model:
[0084] f(x) = ax 2 +bx+c.....(5)
[0085] Considering the first three samples at x = -1, 0, and 1, solve for the coefficients a, b, and c using the following conditions.
[0086] f(0) = p1;
[0087] f(1) = p2;
[0088] f'(0) = (p2-p0) / 2;
[0089] Substituting the value x = 0 and 1 into formula (5) produces:
[0090] c = p1
[0091] a + b + c = p2
[0092] Since f′(x) = 2ax + b,
[0093] f′(0)=b=(p2-p0) / 2;
[0094] Therefore, the coefficients a, b, and c can be solved as follows:
[0095] a=p2-((p2-p0) / 2+p1)=(p0+p2-2p1) / 2;
[0096] b = (p2 - p0) / 2;
[0097] c = p1;
[0098] Replace these values in the expression with f(x) (Formula (5)), and then simplify to provide:
[0099]
[0100] Rearranging these items produces
[0101]
[0102] If there are only two samples p1 and p2, then the best function f(x) for interpolation between them will be a linear function:
[0103] f(x) = (1-x)p1 + xp2.
[0104] As mentioned above, the deviation from the linear function generated using a quadratic function with three samples is the third term:
[0105]
[0106] This bias is the result considering the third sample p0. If we now use the three samples at x = 0, 1, and 2, the result will be a similar function, as shown below:
[0107]
[0108] Therefore, considering the third sample p3, the deviation from the linear approximation is:
[0109]
[0110] Including the deviations caused by both p0 and p3, the final approximation becomes:
[0111]
[0112] Compared to the cubic formula, the described result provides a less complex approximation of the function that can be used for interpolation in the interval [0 1]. This formula can be further simplified by a piecewise linear approximation, as shown below.
[0113] The function f(x) can be decomposed into two parts: a part consisting of the first two terms and a second part consisting of only the third term.
[0114] f(x)=f linear (x)+f quadratic (x)where
[0115] f linear ≡(1-x)p1+xp2,
[0116]
[0117] These two functions are Figure 5 As shown in the image.
[0118] It can be observed that the quadratic function has a maximum or minimum value at x = 1 / 2, depending on whether (p1 + p2 - p0 - p3) is positive or negative. The function f(x) at... The value at that location is equal to
[0119]
[0120] A parabola can be linearly approximated by two lines, one extending from x=0 to... And another line from Extending to x = 1. This is in Figure 6 As shown in the image.
[0121] Therefore, the function f(x) can be expressed as
[0122]
[0123] The above formula can be restated as follows:
[0124]
[0125] For current applications in intra-frame prediction, Now, replacing p0, p1, p2, p3 in the above formula with P0, P1, P2, P3, the interpolation value is provided as:
[0126]
[0127] Where P represents the interpolation value. Now, using the variable deltaFract2, if deltaFract < 16, then this variable is equal to deltaFract, and if deltaFract ≥ 16, then this variable is equal to 32 - deltaFract. Furthermore, to round to the nearest integer, the above equation can be reformulated more compactly as follows:
[0128]
[0129] Because we need to keep the interpolated values within the dynamic range of the signal, we need to clip the values to the desired range when they are out of range:
[0130] P=Clip(P1+((((P2-P1)<<2)*deltaFract+(P1+P2-P0-P3)*deltaFract2+64)>>7)).
[0131] Note that the expression in formula (6) can also be rewritten with only one multiplication instead of two:
[0132]
[0133] by After the replacement as described above, the following is provided
[0134]
[0135] Typically, the example above based on a quadratic model and four reference samples can be described as using a model with the first three samples, and then using a model with the last three samples (the middle two samples are common to both the first and last three samples), and then taking the average. This corresponds to a biquadratic model, but applied to four samples.
[0136] The following describes various examples of implementations including the interpolation methods presented above and some related variations. For ease of description, the examples of the implementations provided herein are described in the context of a VVC VTM 5.0 codec with 67 intra-prediction modes. Except for the interpolation of predictors for off-diagonal modes, all other intra-prediction parameters are assumed to remain constant. Therefore, in all the following implementations, only intra-prediction angle modes along off-diagonal directions are considered. As mentioned above, this context is used for ease of description and is intended to be illustrative only and is not restrictive.
[0137] In at least one example of the implementation scheme referred to herein as “Implementation Scheme 1”, such as in the above formula (4), at least four adjacent reference samples are always used as interpolation predictor values for both the luminance and chrominance target blocks.
[0138] Figure 8 An example of implementation scheme 1 is shown in the figure. Figure 8 At 810, input including picture information is processed to determine a value associated with a prediction of pixels in a picture information block, where the prediction is based on intra-frame prediction along a non-diagonal direction. For example, this value could be a predictor value or a predictor sample value associated with an intra-frame prediction angle pattern along a non-diagonal direction. The picture information block could be, for example, a luma or chroma information block. Then, at 820, at least four reference samples of the block are determined from a plurality of decoded pixels adjacent to the block on the top and left sides. The at least four reference samples are determined based on a non-diagonal direction, such as the overall direction in which the pixels are located non-diagonally from the block. For example, the at least four reference samples could be four decoded neighbor pixels among a plurality of decoded neighbor pixels closest to the predictor sample, for example, two on each side of the predictor sample location. As mentioned above, "adjacent" can refer to a common reference array to the left and above the block, such as the first row above, or it can refer to other reference arrays, such as other rows. Determining the value (e.g., the value of the predictor sample) includes interpolation based on a quadratic model and the at least four reference samples as described herein. Then, at 830, at least a portion of the picture information (e.g., the current block) is decoded based on that value to produce decoded picture information.
[0139] Figure 8 The examples of implementation schemes described herein can also be applied to encoders or encoders. For applications involving encoders or encoders, [the following applies]... Figure 8 The modifications to the implementation scheme described herein include: input to 810 will provide screen information to be encoded, such as the current block of screen information. Moreover, at 830, at least a portion of the screen information is encoded based on this value to generate screen information.
[0140] In at least one other example of the embodiment referred to herein as "Implementation Scheme 2," the predictor values for both the luminance and chrominance target blocks are interpolated using two adjacent reference samples or at least four reference samples. The decision is made by comparing the absolute value of the difference between the two nearest reference samples with a preset threshold. If the absolute difference is less than the threshold, only the two nearest reference samples are used for linear interpolation of the predictor factors. Alternatively, all four nearest reference samples are used for predictor interpolation, as in Implementation Scheme 1. The thresholds used for luminance and chrominance can have the same or different values, which are determined heuristically or experimentally or based on any other objective or subjective metric.
[0141] In at least one other example of the embodiment referred to herein as "Implementation 3", the predictor values are interpolated only for the luminance target block, as in Implementation 1 or Implementation 2. The predictor for the chrominance target block is always interpolated linearly.
[0142] In at least one other example of the implementation scheme referred to herein as "Implementation Scheme 4," intra-frame prediction is performed as described in Implementation Schemes 1-3, but instead of using two piecewise linear approximations, a direct quadratic function approximation is used. second-order terms It can be computed offline and stored as a 1D array of 32 elements, or its computation can be combined with linear terms.
[0143] In at least one other example of the embodiment referred to herein as "Implementation 5," intra-frame prediction is performed as described in Implementations 1-3, but instead a quadratic function approximation is used, with the quadratic term replaced by any other smoothing function such as a sine or logarithmic term. This term can be computed offline for different values of deltaFract and stored as a 1D array of 32 elements.
[0144] In at least one other example of the embodiment referred to herein as “Implementation 6”, the operation is performed according to any of the embodiments 1-5 but as an optional feature, wherein the option of interpolation is used to signal in the slice / tile header that all CUs in the slice / tile use a particular interpolation method.
[0145] In at least one other example of the embodiment referred to herein as “Symbol 7”, the operation is performed according to any one of the embodiments 1-5 but as an optional feature, wherein the option of using the interpolation is signaled in the Picture Parameter Set (PPS) to instruct all CUs in the frame to use this interpolation method.
[0146] In at least one other example of the embodiment referred to herein as “Implementation 8”, the operation is performed according to any one of the embodiments 1-5 but as an optional feature, wherein the option of the interpolation is used to signal in the Sequence Parameter Set (SPS) that all CUs in the sequence use this interpolation method.
[0147] Systems according to one or more embodiments relating to video encoding and / or decoding described herein may provide one or more non-limiting examples of the following features, either individually or in various arrangements and combinations:
[0148] • A filtering method to reduce complexity for interpolating predictor values for off-diagonal directions that do not include strict horizontal and strict vertical directions;
[0149] • Apply filtering to the four nearest samples, but based on two linear models, each of which applies to half of the interval.
[0150] The resulting computation offers reduced complexity, requiring only two multiplications per target pixel;
[0151] Since a four-sample-based model is not suitable for modeling the edges of objects, a thresholding method can be used to decide between the interpolation model described in this paper and a common linear interpolation using the two most recent reference samples.
[0152] • If the prediction requires the use of pre-filtered reference samples (depending on the prediction direction and block size), the [1 21] pre-filter is commonly applied to the two most recent reference samples, followed by interpolation as described in this paper;
[0153] • A single, unified interpolation method can be applied in all cases.
[0154] Both luminance and chromaticity components can use the same interpolation method;
[0155] Filtered and unfiltered reference samples are processed in a uniform manner;
[0156] • No additional memory is needed to store the Gaussian and cubic filter coefficients;
[0157] • Improved coding performance and reduced complexity.
[0158] This document describes various examples of implementation schemes, features, models, methods, etc. Many such examples are described in detail and, at least to illustrate the various characteristics, are often described in a way that may appear restrictive. However, this is for clarity and does not limit the application or scope. In fact, the various examples of implementation schemes, features, etc., described herein can be combined and interchanged in various ways to provide further examples of implementation schemes.
[0159] Typically, the examples of implementation schemes described and envisioned in this document can be implemented in many different forms. The above-described... Figure 1 and Figure 2 and the following description Figure 7 Some implementation schemes are provided, but other implementation schemes are considered, and Figure 1 , Figure 2 and Figure 7The discussion does not limit the breadth of implementations. At least one embodiment generally provides examples related to video encoding and / or decoding, and at least one other embodiment generally relates to the transmission of generated or encoded bitstreams or signals. These and other embodiments may be implemented as methods, apparatus, computer-readable storage media having instructions stored thereon for encoding or decoding video data according to any of the methods, and / or computer-readable storage media having bitstreams or signals generated according to any of the methods stored thereon.
[0160] This disclosure uses the terms HDR (High Dynamic Range) and SDR (Standard Dynamic Range). These terms generally convey to those skilled in the art a specific value for dynamic range. However, it is also intended to employ additional embodiments in which references to HDR are understood to mean “higher dynamic range” and references to SDR are understood to mean “lower dynamic range”. Such additional embodiments are not bound by any specific value of dynamic range that may generally be associated with the terms “high dynamic range” and “standard dynamic range”.
[0161] This document describes various methods, and each method includes one or more steps or actions for implementing the method. Unless the correct operation of the method requires a specific order of steps or actions, the order and / or purpose of a particular step and / or action may be modified or combined.
[0162] The various methods and other aspects described in this document can be used to modify modules of video encoders and / or decoders, such as Figure 1 The intra-frame prediction module 160 of the encoder 100 shown and Figure 2 The decoder 200 shown is 260. Furthermore, aspects of the invention are not limited to VVC or HEVC, and can be applied to, for example, other standards and recommendations (whether pre-existing or future-developed) and any extensions to such standards and recommendations (including VVC and HEVC). Unless otherwise specified or technically excluded, the aspects described in this document may be used alone or in combination.
[0163] For example, various numerical values are used in this document. Specific values are for illustrative purposes, and the aspects described are not limited to these specific values.
[0164] Figure 7A block diagram illustrating examples of systems in which various aspects and implementations can be implemented. System 1000 may be embodied as a device including the various components described below and configured to perform one or more aspects described in this document. Examples of such devices include, but are not limited to, various electronic devices such as personal computers, laptop computers, smartphones, tablet computers, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected home appliances, and servers. Elements of system 1000 may be embodied individually or in combination in a single integrated circuit (IC), multiple ICs, and / or discrete components. For example, in at least one embodiment, the processing elements and encoder / decoder elements of system 1000 are distributed across multiple ICs and / or discrete components. In various embodiments, system 1000 is communicatively coupled to other similar systems or other electronic devices via, for example, a communication bus or through dedicated input and / or output ports. In various embodiments, system 1000 is configured to implement one or more aspects described in this document.
[0165] System 1000 includes at least one processor 1010 configured to execute instructions loaded thereon for implementing various aspects, such as those described in this document. Processor 1010 may include embedded memory, input / output interfaces, and various other circuitry known in the art. System 1000 includes at least one memory 1020 (e.g., a volatile memory device and / or a non-volatile memory device). System 1000 includes a storage device 1040 that may include non-volatile memory and / or volatile memory, including but not limited to EEPROM, ROM, PROM, RAM, DRAM, SRAM, flash memory, disk drives, and / or optical disk drives. As a non-limiting example, storage device 1040 may include internal storage devices, attached storage devices, and / or network-accessible storage devices.
[0166] System 1000 includes an encoder / decoder module 1030 configured to, for example, process data to provide encoded or decoded video, and the encoder / decoder module 1030 may include its own processor and memory. The encoder / decoder module 1030 represents a module that can be included in a device to perform encoding and / or decoding functions. It is well known that a device may include one or both of an encoding module and a decoding module. Furthermore, the encoder / decoder module 1030 may be implemented as a standalone element of system 1000, or may be incorporated within processor 1010 as a combination of hardware and software known to those skilled in the art.
[0167] Program code to be loaded onto processor 1010 or encoder / decoder 1030 to execute the various aspects described in this document may be stored in storage device 1040 and subsequently loaded onto memory 1020 for execution by processor 1010. According to various embodiments, one or more of processor 1010, memory 1020, storage device 1040, and encoder / decoder module 1030 may store one or more items from various projects during the execution of the processes described in this document. Such stored items may include, but are not limited to, input video, decoded or partially decoded video, bitstreams or signals, matrices, variables, and intermediate or final results of processing equations, formulas, operations, and operational logic.
[0168] In several embodiments, the memory within processor 1010 and / or encoder / decoder module 1030 is used to store instructions and provide working memory for processing required during encoding or decoding. However, in other embodiments, external memory (e.g., the processing device may be processor 1010 or encoder / decoder module 1030) is used for one or more of these functions. The external memory may be memory 1020 and / or storage device 1040, such as volatile memory and / or non-volatile flash memory. In several embodiments, external non-volatile flash memory is used to store the television's operating system. In at least one embodiment, fast external volatile memory, such as RAM, is used as working memory for video encoding and decoding operations, such as for MPEG-2, HEVC, or VVC (Variety Video Coding).
[0169] Inputs to the components of system 1000 may be provided by various input devices as shown in box 1130. Such input devices include, but are not limited to: (i) an RF section that receives, for example, RF signals transmitted over the air by a broadcaster, (ii) a composite input terminal, (iii) a USB input terminal, and / or (iv) an HDMI input terminal.
[0170] In various embodiments, the input device of block 1130 has associated corresponding input processing elements as known in the art. For example, the RF section may be associated with elements suitable for: (i) selecting a desired frequency (also known as selecting a signal, or limiting a signal band to a band), (ii) down-converting the selected signal, (iii) re-band-limiting the signal to a narrower band to select (e.g.,) a signal band that may be referred to as a channel in some embodiments), (iv) demodulating the down-converted and band-limited signal, (v) performing error correction, and (vi) demultiplexing to select the desired data packet stream. The RF section of various embodiments includes one or more elements for performing these functions, such as frequency selectors, signal selectors, band limiters, channel selectors, filters, downconverters, demodulators, error correctors, and demultiplexers. The RF section may include tuners that perform various functions among these functions, including, for example, down-converting received signals to a lower frequency (e.g., intermediate frequency or near-baseband frequency) or to baseband. In one set-top box implementation, the RF section and its associated input processing elements receive RF signals transmitted via a wired (e.g., cable) medium and perform frequency selection by filtering, down-converting, and re-filtering to the desired frequency band. Various implementations rearrange the order of the aforementioned (and other) components, remove some of these components, and / or add other components that perform similar or different functions. Adding components may include inserting components between existing components, such as inserting amplifiers and analog-to-digital converters. In various implementations, the RF section includes an antenna.
[0171] Furthermore, the USB and / or HDMI terminals may include corresponding interface processors for connecting the system 1000 to other electronic devices across USB and / or HDMI connections. It should be understood that various aspects of input processing (e.g., Reed-Solomon error correction) may be implemented, for example, within a separate input processing IC or within the processor 1010. Similarly, aspects of USB or HDMI interface processing may be implemented within a separate interface IC or within the processor 1010. Demodulated streams, error-corrected streams, and demultiplexed streams are provided to various processing elements, including, for example, the processor 1010 and the encoder / decoder 1030, which operate in conjunction with memory and storage elements to process the data streams as needed for presentation on the output device.
[0172] Various components of system 1000 can be housed within an integrated housing. Within the integrated housing, various components can be interconnected and transmit data therebetween using a suitable connection arrangement 1140 (e.g., internal buses as known in the art, including inter-IC (I2C) buses, wiring, and printed circuit boards).
[0173] System 1000 includes a communication interface 1050 capable of communicating with other devices via a communication channel 1060. The communication interface 1050 may include, but is not limited to, a transceiver configured to transmit and receive data via the communication channel 1060. The communication interface 1050 may include, but is not limited to, a modem or network interface card (NIC), and the communication channel 1060 may be implemented, for example, in a wired and / or wireless medium.
[0174] In various implementations, data is streamed to system 1000 using a Wi-Fi network such as IEEE 802.11. The Wi-Fi signal in these implementations is received via a communication channel 1060 and a communication interface 1050 suitable for Wi-Fi communication. The communication channel 1060 in these implementations is typically connected to an access point or router that provides access to external networks, including the Internet, to allow streaming applications and other cloud-based communications. Other implementations use a set-top box to provide streaming data to system 1000, delivering data via an HDMI connection to input block 1130. Still other implementations use an RF connection to input block 1130 to provide streaming data to system 1000.
[0175] System 1000 can provide output signals to various output devices, including display 1100, speaker 1110, and other peripheral devices 1120. In various embodiments, other peripheral devices 1120 include one or more of a standalone DVR, disk player, stereo system, lighting system, and other devices that provide output functionality based on system 1000. In various embodiments, control signals are transmitted between system 1000 and display 1100, speaker 1110, or other peripheral devices 1120 using signaling such as AV.Link, CEC, or other communication protocols that enable device-to-device control with or without user intervention. Output devices can be communicatively coupled to system 1000 via dedicated connections through corresponding interfaces 1070, 1080, and 1090. Alternatively, output devices can be connected to system 1000 via communication interface 1050 using communication channel 1060. Display 1100 and speaker 1110 can be integrated into a single unit with other components of system 1000 in electronic devices (e.g., television sets). In various implementations, the display interface 1070 includes a display driver, such as a timing controller (T Con) chip.
[0176] Alternatively, if the RF portion of input 1130 is part of a separate set-top box, the display 1100 and speaker 1110 may be separated from one or more other components. In various embodiments where the display 1100 and speaker 1110 are external components, the output signal may be provided via a dedicated output connection, including, for example, an HDMI port, a USB port, or a COMP output.
[0177] These implementations can be executed by processor 1010 or by computer software implemented in hardware or a combination of hardware and software. As a non-limiting example, these implementations can be implemented by one or more integrated circuits. As a non-limiting example, memory 1020 can be of any type suitable for the technical environment and can be implemented using any suitable data storage technology.
[0178] Such as optical memory devices, magnetic memory devices, semiconductor-based memory devices, fixed memory, and removable memory. As a non-limiting example, processor 1010 can be any type suitable for the technical environment and can encompass one or more of microprocessors, general-purpose computers, special-purpose computers, and processors based on multi-core architectures.
[0179] Throughout this disclosure, various embodiments relate to decoding. As used herein, “decoding” may encompass all or part of a process performed, for example, on a received encoded sequence to produce a final output suitable for display. In various embodiments, such a process includes one or more processes typically performed by a decoder, such as entropy decoding, inverse quantization, inverse transform, and differential decoding. In various embodiments, such a process also includes, or alternatively includes, processes performed by a decoder of the various embodiments described in this application, such as extracting a frame from a tiled (packed) frame, determining an upsampling filter to use, then upsampling the frame, and flipping the frame back to its intended orientation.
[0180] As a further example, in one embodiment, "decoding" refers only to entropy decoding; in another embodiment, "decoding" refers only to differential decoding; and in yet another embodiment, "decoding" refers to a combination of entropy decoding and differential decoding. Whether the phrase "decoding process" specifically refers to a subset of operations or broadly refers to a wider decoding process will be clear based on the specific context of the description and is believed to be well understood by those skilled in the art.
[0181] Furthermore, various specific implementations involve encoding. In a manner similar to the discussion above regarding “decoding,” the term “encoding,” as used herein, can encompass all or part of the process performed on an input video sequence to produce an encoded bitstream or signal. In various embodiments, such processes include one or more processes typically performed by an encoder, such as partitioning, differential coding, transform, quantization, and entropy coding. In various embodiments, such processes also include, or alternatively include, processes performed by the encoders of the various specific implementations described in this application.
[0182] As a further example, in one implementation, "encoding" refers only to entropy encoding; in another implementation, "encoding" refers only to differential encoding; and in yet another implementation, "encoding" refers to a combination of differential and entropy encoding. Whether the phrase "encoding process" specifically refers to a subset of operations or broadly refers to a wider encoding process will be clear based on the specific context of the description and is believed to be well understood by those skilled in the art.
[0183] Note that the grammatical elements used in this article are descriptive terms. Therefore, the use of other grammatical element names is not excluded.
[0184] When the accompanying drawings are presented as flowcharts, it should be understood that block diagrams of the corresponding devices are also provided. Similarly, when the accompanying drawings are presented as block diagrams, it should be understood that flowcharts of the corresponding methods / processes are also provided.
[0185] Various implementation schemes refer to rate-distortion optimization. Specifically, during the encoding process, a balance or trade-off between rate and distortion is typically considered, often taking into account computational complexity constraints. Rate-distortion optimization is generally formulated as minimizing a rate-distortion function, which is a weighted sum of rate and distortion. Different approaches exist to solve the rate-distortion optimization problem. For example, these methods may be based on extensive testing of all encoding options (including all considered modes or encoding parameter values) and a complete evaluation of their encoding costs and the associated distortion of the reconstructed signal after encoding and decoding. Faster methods can also be used to reduce encoding complexity, particularly for the computation of approximate distortion based on prediction or prediction of the residual signal rather than the reconstructed residual signal. A hybrid of these two approaches can also be used, such as by using approximate distortion for only some of the possible encoding options and full distortion for others. Other methods evaluate only a subset of the possible encoding options. More generally, many methods employ any of a variety of techniques to perform optimization, but optimization is not necessarily a complete evaluation of both encoding costs and associated distortion.
[0186] The specific embodiments and aspects described herein may be implemented, for example, in methods or processes, apparatus, software programs, data streams, or signals. Even if discussed only in the context of a single form of specific embodiment (e.g., discussed only as a method), specific embodiments of the discussed features may be implemented in other forms (e.g., apparatus or program). Apparatus may be implemented, for example, in suitable hardware, software, and firmware. Methods may be implemented, for example, in a processor, which generally refers to a processing device.
[0187] The processing device includes, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. The processor also includes communication devices, such as computers, mobile phones, portable / personal digital assistants (“PDAs”), and other devices that facilitate information communication between end users.
[0188] The reference to “an implementation plan” or “implementation plan” or “a specific implementation” or “specific implementation”, and their other variations, means that the specific features, structures, characteristics, etc., described in connection with the implementation plan are included in at least one implementation plan. Therefore, the appearance of the phrase “in an implementation plan” or “in an implementation plan” or “in a specific implementation” or “in a specific implementation”, and any other variations appearing throughout this document, do not necessarily refer to the same implementation plan.
[0189] Furthermore, this document may refer to "obtaining" each piece of information. Obtaining information may include, for example, determining information, estimating information, calculating information, predicting information, or retrieving information from memory, or one or more of these.
[0190] Furthermore, this document may refer to "accessing" each piece of information. Accessing information may include, for example, receiving information, retrieving information (e.g., from memory), storing information, moving information, copying information, calculating information, determining information, predicting information, or estimating information, or more of these.
[0191] Furthermore, this document may refer to "receiving" individual pieces of information. Like "access," "receiving" is intended as a broad term. Receiving information may include, for example, accessing information or retrieving information (e.g., from memory). Moreover, "receiving" typically participates in one or more of the following operations: such as storing information, processing information, transmitting information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information.
[0192] It should be understood that, for example, in the cases of “A / B,” “A and / or B,” “one or more of A and B,” and “at least one of A and B,” the use of any of the following “ / ,” “and / or,” “one or more of,” and “at least one” is intended to cover selecting only the first listed option (A), or only the second listed option (B), or selecting both options (A and B). As a further example, in the cases of “A, B, and / or C,” “one or more of A, B, and C,” and “at least one of A, B, and C,” such phrases are intended to cover selecting only the first listed option (A), or only the second listed option (B), or only the third listed option (C), or only the first and second listed options (A and B), or only the first and third listed options (A and C), or only the second and third listed options (B and C), or selecting all three options (A, B, and C). As will be apparent to those skilled in the art and related fields, this can be extended to as many of the listed items as possible.
[0193] Moreover, as used herein, the term "signaling" refers to (among other things) instructing the corresponding decoder to do something. For example, in some implementations, the encoder encodes a specific parameter among a plurality of parameters for refinement. Thus, in one implementation, the same parameter is used on both the encoder and decoder sides. Therefore, for example, the encoder may transmit (explicit signaling) the specific parameter to the decoder so that the decoder can use the same specific parameter. Conversely, if the decoder already has the specific parameter and others, signaling may be used without transmission (implicit signaling) to simply allow the decoder to know and select the specific parameter. Bit savings are achieved in various implementations by avoiding the transmission of any actual function. It should be understood that signaling can be implemented in various ways. For example, in various implementations, information is signaled to the corresponding decoder using one or more syntax elements, flags, etc. Although the verb form of the term "signal" has been used above, the term "signal" may also be used as a noun herein.
[0194] It will be apparent to those skilled in the art that the embodiments can generate various signals formatted to carry, for example, storable or transmissible information. The information may include, for example, instructions for performing a method or data generated by one of the embodiments. For example, the signal may be formatted to carry a bitstream or signal of the embodiments described. Such signals may be formatted as, for example, electromagnetic waves (e.g., using the radio frequency portion of the spectrum) or baseband signals. Formatting may include, for example, encoding the data stream and modulating the carrier with the encoded data stream. The information carried by the signal may be, for example, analog or digital information. It is known that signals can be transmitted via various wired or wireless links. The signal may be stored on a processor-readable medium.
[0195] Various broad and specific implementations are also supported and contemplated throughout this disclosure. Examples of implementations according to this disclosure include, but are not limited to, the following implementations.
[0196] Typically, examples of implementations may involve a method comprising: determining a value associated with a prediction of pixels of a block of image information, wherein the prediction is based on intra-frame prediction along a non-diagonal direction; determining at least four reference samples of the block from a plurality of decoded pixels adjacent to the block on the top and left sides based on the non-diagonal direction, and wherein the determination of the value includes interpolation based on a quadratic model and the at least four reference samples; and decoding at least a portion of the image information based on the value.
[0197] Typically, another example of an implementation may involve a method comprising: determining a value associated with a prediction of pixels of a block of picture information, wherein the prediction is based on intra-frame prediction along a non-diagonal direction; determining at least four reference samples of the block from a plurality of pixels adjacent to the block on the top and left sides based on the non-diagonal direction, wherein determining the value includes interpolation based on a quadratic model and the at least four reference samples; and encoding at least a portion of the picture information based on the value.
[0198] Typically, another example of an implementation may involve an apparatus comprising: one or more processors configured to determine a value associated with a prediction of pixels of a block of picture information, wherein the prediction is based on intra-frame prediction along a non-diagonal direction, determining at least four reference samples of the block from a plurality of decoded pixels adjacent to the block at the top and left sides based on the non-diagonal direction, and wherein determining the value includes the one or more processors being further configured to interpolate based on a quadratic model and the at least four reference samples; and decoding at least a portion of the picture information based on the value.
[0199] Typically, another example of an implementation may involve an apparatus comprising: one or more processors configured to determine a value associated with a prediction of pixels of a block of picture information, wherein the prediction is based on intra-frame prediction along a non-diagonal direction, at least four reference samples of the block are determined from a plurality of decoded pixels adjacent to the block at the top and left sides based on the non-diagonal direction, and wherein determining the value includes the one or more processors being further configured to interpolate based on a quadratic model and the at least four reference samples; and encoding at least a portion of the picture information based on the value.
[0200] Typically, another example of the implementation may involve a method comprising: determining a value associated with a pixel of a predicted picture information block, wherein, in response to the intra-frame prediction mode of the block being an angular mode along a non-diagonal direction, determining at least four reference samples of the block from a plurality of decoded neighboring pixels on the top and left sides of the block based on the non-diagonal direction associated with the angular mode, and wherein the determination of the value includes interpolation based on a quadratic model and the at least four reference samples; and decoding at least a portion of the picture information based on the value.
[0201] Typically, another example of the implementation may involve a method comprising: determining a value associated with a pixel of a predicted image information block, wherein, in response to the prediction pattern of the block being an angular pattern along a non-diagonal direction, determining at least four reference samples of the block from a plurality of adjacent pixels on the top and left side of the block based on the non-diagonal direction associated with the angular pattern, and wherein the determination of the value includes interpolation based on a quadratic model and the at least four reference samples; and encoding at least a portion of the image information based on the value.
[0202] Typically, another example of an implementation may involve an apparatus comprising: one or more processors configured to determine a value associated with a pixel of a predicted picture information block, wherein, in response to the block’s intra-frame prediction mode being an angular mode along a non-diagonal direction, at least four reference samples of the block are determined from a plurality of decoded neighboring pixels on the top and left sides of the block based on the non-diagonal direction associated with the angular mode, and wherein determining the value includes the one or more processors being further configured to interpolate based on a quadratic model and the at least four reference samples; and decoding at least a portion of the picture information based on the value.
[0203] Typically, another example of an implementation may involve an apparatus comprising: one or more processors configured to determine a value associated with a pixel of a predicted picture information block, wherein, in response to the block’s intra-frame prediction mode being an angular mode along a non-diagonal direction, at least four reference samples of the block are determined from a plurality of adjacent pixels on the top and left of the block based on the non-diagonal direction associated with the angular mode, and wherein determining the value includes one or more processors being configured to interpolate based on a quadratic model and the at least four reference samples; and encoding at least a portion of the picture information based on the value.
[0204] Typically, another example of an implementation may involve a method comprising: determining that the prediction mode of a block of image information corresponds to an intra-frame prediction angle mode along a non-diagonal direction; determining at least four reference samples from a plurality of decoded pixels adjacent to the top and left of the block based on the non-diagonal direction; using the at least four reference samples and a quadratic model to determine, based on interpolation, a value associated with the prediction of pixels included in the block; and decoding at least a portion of the image information based on the value.
[0205] Typically, another example of the implementation may involve a method comprising: determining that the prediction mode of a block of image information corresponds to an intra-frame prediction angle mode along a non-diagonal direction; determining at least four reference samples from a plurality of pixels adjacent to the top and left of the block based on the non-diagonal direction; using the at least four reference samples and a quadratic model to determine, based on interpolation, a value associated with the prediction of pixels included in the block; and encoding at least a portion of the image information based on the value.
[0206] Typically, another example of an implementation may involve an apparatus comprising: one or more processors configured to determine that a prediction mode of a block of picture information corresponds to an intra-frame prediction angle mode along a non-diagonal direction; to determine at least four reference samples from a plurality of decoded pixels adjacent to the top and left of the block based on the non-diagonal direction; to determine, using the at least four reference samples and a quadratic model, a value associated with the prediction of pixels included in the block based on interpolation; and to decode at least a portion of the picture information based on the value.
[0207] Typically, another example of an implementation may involve an apparatus comprising: one or more processors configured to determine that a prediction mode of a block of picture information corresponds to an intra-frame prediction angle mode along a non-diagonal direction; to determine at least four reference samples from a plurality of pixels adjacent to the top and left of the block based on the non-diagonal direction; to determine, using the at least four reference samples and a quadratic model, a value based on interpolation to be associated with the prediction of pixels included in the block; and to encode at least a portion of the picture information based on the value.
[0208] Typically, another example of an implementation may involve the method or apparatus described herein, where interpolation is based on a function comprising a linear part and a quadratic part.
[0209] Typically, another example of an implementation may involve the method or apparatus described herein, where interpolation is based on a piecewise linear approximation of the quadratic portion of a function.
[0210] Typically, another example of an implementation may involve the method or apparatus described herein, wherein the piecewise linear approximation includes a first piecewise linear approximation and a second piecewise linear approximation.
[0211] Typically, another example of an implementation may involve a method or apparatus as described herein, wherein determining at least four reference samples includes: determining the position of a predictor sample adjacent to the current block in a non-diagonal direction from a pixel, wherein a value associated with the prediction is associated with the predictor sample; determining the positions of four pixels from a plurality of pixels adjacent to the block that are closest to the position of the predictor sample, having two pixels on each side of the position of the predictor sample, wherein each of the four nearest pixels corresponds to one of the at least four reference samples.
[0212] Typically, another example of an implementation may involve a method or apparatus as described herein, which further includes determining two reference samples from at least four reference samples that are closest to the location of the predictor sample, one reference sample on each side of the location of the predictor sample; determining the absolute value of the difference between the values of the two nearest reference samples; and comparing the absolute value of the difference with a threshold.
[0213] Typically, another example of an implementation may involve the method or apparatus described herein, wherein if the absolute value of the difference is less than a threshold, interpolation is based only on the two reference samples that are closest to the predictor sample, and otherwise interpolation is based on at least four reference samples.
[0214] Typically, another example of an implementation may involve the method or apparatus described herein, wherein the threshold includes a first threshold and a second threshold, and comparing the absolute value with the threshold includes: if the image information block includes luminance information, comparing the absolute value with the first threshold, and if the image information block includes chrominance information, comparing the absolute value with the second threshold.
[0215] Typically, another example of an implementation may involve the method or apparatus described herein, wherein the first threshold is different from the second threshold.
[0216] Typically, another example of an implementation may involve the method or apparatus described herein, wherein the quadratic function includes a quadratic function approximation.
[0217] Typically, another example of an implementation may involve the method or apparatus described herein, wherein interpolation is based on a function that includes a linear portion and a smooth function that includes a sine or logarithmic term.
[0218] Typically, another example of an implementation may involve the method or apparatus described herein, wherein the use of interpolation as described herein is signaled in a bitstream that is encoded to be generated or received for decoding in at least one of the following portions of the bitstream: a slice / tile header indicating that all coded units in a slice / tile use the claimed interpolation; or a frame parameter set (PPS) indicating that all coded units in a frame use the claimed interpolation; or a sequence parameter set (SPS) indicating that all coded units in a sequence use the claimed interpolation.
[0219] Typically, another example of an implementation may involve a bitstream that is formatted to contain picture information, wherein the picture information is encoded by processing the picture information based on any one or more examples of the implementation of the method according to this disclosure.
[0220] Typically, one or more other examples of the implementation may also provide a computer-readable storage medium, such as a non-volatile computer-readable storage medium, having stored instructions thereon for encoding or decoding picture information (such as video data) according to the methods or apparatus described herein.
[0221] Typically, at least one example of an implementation scheme may relate to a computer program product that includes instructions that, when executed by a computer, cause the computer to perform a method according to one or more examples of the implementation scheme described herein.
[0222] Typically, at least one example of an implementation may involve a non-transitory computer-readable medium storing executable program instructions to cause a computer executing the instructions to perform a method according to one or more examples of the implementation described herein.
[0223] Typically, at least one example of an implementation scheme may involve a signal that includes data generated according to any one or more examples of the implementation scheme described herein.
[0224] Typically, at least one example of an implementation scheme may involve a bitstream that is formatted to include syntax elements and encoded image information generated according to any one or more examples of the implementation schemes described herein.
[0225] Typically, at least one example of an implementation may involve a computer-readable storage medium on which a bit stream generated according to the methods or apparatus described herein is stored.
[0226] Typically, at least one example of an implementation may involve transmitting or receiving a bit stream or signal generated according to the methods or apparatus described herein.
[0227] Typically, at least one example of an implementation may relate to an apparatus that includes means of any one or more examples of the implementations described herein; at least one of the following: (i) an antenna configured to receive a signal including data representing image information; (ii) a bandwidth limiter configured to limit the received signal to a bandwidth including data representing image information; and (iii) a display configured to display an image from the image information.
[0228] Typically, at least one example of an implementation may relate to a device as described herein, wherein the device includes one of a television, a television signal receiver, a set-top box, a gateway device, a mobile device, a cellular phone, a tablet computer, or other electronic devices.
[0229] Various embodiments have been described. Embodiments may include any of the following features or entities, individually or in any combination, across a wide variety of claim classes and types:
[0230] • As in Equation (4) above, at least four adjacent reference samples are always used in the encoder and / or decoder to provide prediction factor values for both the luma and chroma target blocks for interpolation;
[0231] • Based on a decision made by comparing the absolute value of the difference between two nearest reference samples with a preset threshold, predictor values for both luminance and chrominance are provided in the encoder and / or decoder using two adjacent reference samples or at least four reference samples, wherein if the absolute difference is less than the threshold, the predictor is linearly interpolated using only the two nearest reference samples, otherwise the predictor is interpolated using all four nearest reference samples, as in implementation 1, and wherein the thresholds for luminance and chrominance may have the same or different values, which may be determined heuristically or experimentally or based on any other objective or subjective metric;
[0232] • The encoder and / or decoder provide prediction factor values for interpolating the luma target block as described in any of the examples above, and the prediction factor values for the chroma target block are linearly interpolated.
[0233] • Provide intra-frame prediction in the encoder and / or decoder to perform any of the above examples, where a quadratic function approximation is used directly instead of two piecewise linear approximations;
[0234] • Provide intra-frame prediction in the encoder and / or decoder to perform any of the above examples, where a quadratic function approximation is used directly instead of two piecewise linear approximations, and where Second-order terms at time It can be computed offline and stored as a 1D array of 32 elements, or its computation can be combined with linear terms;
[0235] • Provide the encoder and / or decoder to perform intra-frame prediction in any of the first three examples above, where instead of using a quadratic function approximation, the quadratic term is replaced by any other smooth function, such as a sine or logarithmic term;
[0236] • Provide the encoder and / or decoder to perform intra-frame prediction in any of the first three examples above, where instead of using a quadratic function approximation, the quadratic term is replaced with any other smooth function such as a sine or logarithmic term, and where the term can be computed offline for different deltaFract values and stored as a 1D array of 32 elements.
[0237] • Provide intra-frame prediction in the encoder and / or decoder to perform any of the above examples, where a specific interpolation is signaled in the slice / tile header, instructing all CUs in the slice / tile to use a specific interpolation method;
[0238] • Provide intra-frame prediction in the encoder and / or decoder to perform any of the above examples, where a specific interpolation is signaled in the Sequence Parameter Set (SPS) to indicate that all CUs in the sequence use a specific interpolation method;
[0239] • Provide intra-frame prediction in the encoder and / or decoder to perform any of the above examples, where a specific interpolation is signaled in the set of picture parameters (PPS) to indicate that all CUs in the frame use a specific interpolation method;
[0240] • Provides intra-frame prediction in the encoder and / or decoder based on the reduced complexity and / or improved compression efficiency, according to the implementation scheme, feature or entity (alone or any combination) as described herein;
[0241] • Insert syntax elements into the signaling to enable the encoder and / or decoder to provide encoding and / or decoding of any of the embodiments, features, or entities (alone or in any combination) as described herein;
[0242] • Based on these grammatical elements, select features or entities (alone or in any combination) as described in this article to apply at the decoder;
[0243] • A bitstream or signal comprising one or more of the aforementioned syntax elements or variations thereof;
[0244] • Insert syntax elements into the signaling so that the decoder can provide decoding in a manner corresponding to the encoding method used by the encoder;
[0245] • Creating and / or transmitting and / or receiving and / or decoding bitstreams or signals that include one or more syntax elements or variations thereof;
[0246] • TV, set-top box, mobile phone, tablet computer, or other electronic device that provides encoding and / or decoding of any of the embodiments, features, or entities (alone or in any combination) as described herein;
[0247] • TV, set-top box, mobile phone, tablet computer or other electronic device that performs encoding and / or decoding (alone or in any combination) of any of the embodiments, features or entities described herein and displays (e.g., using a monitor, screen or other type of display) the resulting image;
[0248] • TV, set-top box, mobile phone, tablet computer, or other electronic device that tunes (e.g., using a tuner) channels to receive signals including encoded images and to perform encoding and / or decoding according to any of the embodiments, features, or entities (alone or in any combination) described herein.
[0249] • TVs, set-top boxes, mobile phones, tablets, or other electronic devices that receive (e.g., using an antenna) air signals including encoded images and perform encoding and / or decoding according to any of the embodiments, features, or entities (alone or in any combination) described herein.
[0250] • A computer program product storing program code that is executed by a computer to encode and / or decode any of the embodiments, features, or entities (alone or in any combination) as described herein;
[0251] A non-transitory computer-readable medium includes executable program instructions that cause a computer executing the instructions to implement an embodiment as described herein.
[0252] Encoding and / or decoding of any of the features or entities (alone or in any combination). Various other generalized and specific implementations are also supported and contemplated throughout this disclosure.
Claims
1. A method for decoding, the method comprising: Determine the values associated with the prediction of pixels in a block of image information, wherein the prediction is based on intra-frame prediction along a non-diagonal direction. At least four reference samples of the block are determined from multiple decoded pixels adjacent to the block on the top and left sides based on the off-diagonal direction, and wherein The determination of the value includes interpolation based on a quadratic model and the at least four reference samples, wherein the quadratic model comprises a linear part and a quadratic part, and the quadratic model is based on a piecewise linear approximation of the quadratic part; as well as At least a portion of the image information is decoded based on the value.
2. The method of claim 1, wherein the prediction based on the intra-prediction along the off-diagonal direction corresponding to the intra-prediction mode of the block is an angular mode along the off-diagonal direction.
3. The method according to claim 1 or 2, wherein the piecewise linear approximation includes a first piecewise linear approximation and a second piecewise linear approximation.
4. The method according to any one of claims 1 or 2, wherein determining the at least four reference samples comprises: Determine the position of a predictor sample adjacent to the current block from the pixel in the off-diagonal direction, wherein the value is associated with the predictor sample; as well as The positions of four pixels closest to the position of the predictor sample are determined from the plurality of pixels adjacent to the block, two of the four pixels closest to the position of the predictor sample being located on each side of the position of the predictor sample, wherein each of the four pixels closest to the position of the predictor sample corresponds to one of the at least four reference samples.
5. The method according to claim 4, further comprising: Two reference samples are determined from the at least four reference samples that are closest to the position of the predictor sample, with one reference sample on each side of the position of the predictor sample; Determine the absolute value of the difference between the values of the two reference samples that are closest to the position of the predictor sample; as well as The absolute value of the difference is compared with a threshold.
6. The method according to claim 5, Wherein, under the condition that the absolute value of the difference is less than the threshold, the interpolation is based on the two reference samples closest to the position of the predictor sample, and Wherein, if the absolute value of the difference is greater than the threshold, the interpolation is based on the at least four reference samples.
7. The method according to claim 5 or 6, wherein, The threshold includes a first threshold and a second threshold, and wherein comparing the absolute value of the difference with the threshold includes: If the block of image information includes brightness information, then the absolute value is compared with the first threshold; and If the block of image information includes chroma information, then the absolute value is compared with the second threshold.
8. The method according to any one of claims 1 to 2 or 5 to 6, wherein the interpolation is based on a function including a linear portion and a smoothing function, wherein the smoothing function includes a sine term or a logarithmic term.
9. The method according to any one of claims 1 to 2 or 5 to 6, wherein the indication for the use of interpolation is signaled in video data generated or received for decoding by encoding, and wherein the indication for the use of interpolation includes at least one of the following: A slice header or tile header that indicates one or more coding units in a corresponding slice or tile to use the interpolation; A set of picture parameters (PPS) that indicates one or more coding units in a frame to use the interpolation; or A sequence parameter set (SPS) that indicates one or more coding units in a sequence to use the interpolation.
10. A method for encoding, the method comprising: Determine the values associated with the prediction of pixels in a block of image information, wherein the prediction is based on intra-frame prediction along a non-diagonal direction. At least four reference samples of the block are determined from multiple pixels adjacent to the block on the top and left sides based on the non-diagonal direction, and wherein The determination of the value includes interpolation based on a quadratic model and the at least four reference samples, wherein the quadratic model comprises a linear part and a quadratic part, and the quadratic model is based on a piecewise linear approximation of the quadratic part; as well as At least a portion of the image information is encoded based on the value.
11. The method of claim 10, wherein the prediction based on the intra-prediction along the off-diagonal direction corresponding to the intra-prediction mode of the block is an angular mode along the off-diagonal direction.
12. The method according to claim 10 or 11, wherein the piecewise linear approximation comprises a first piecewise linear approximation and a second piecewise linear approximation.
13. The method of any one of claim 10 or 11, wherein determining the at least four reference samples comprises: Determine the position of a predictor sample adjacent to the current block from the pixel in the off-diagonal direction, wherein the value is associated with the predictor sample; as well as The positions of four pixels closest to the position of the predictor sample are determined from the plurality of pixels adjacent to the block, two of the four pixels closest to the position of the predictor sample being located on each side of the position of the predictor sample, wherein each of the four pixels closest to the position of the predictor sample corresponds to one of the at least four reference samples.
14. The method according to claim 13, further comprising: Two reference samples are determined from the at least four reference samples that are closest to the position of the predictor sample, with one reference sample on each side of the position of the predictor sample; Determine the absolute value of the difference between the values of the two reference samples that are closest to the position of the predictor sample; as well as The absolute value of the difference is compared with a threshold.
15. The method according to claim 14, Wherein, under the condition that the absolute value of the difference is less than the threshold, the interpolation is based on the two reference samples closest to the position of the predictor sample, and Wherein, if the absolute value of the difference is greater than the threshold, the interpolation is based on the at least four reference samples.
16. The method according to claim 14 or 15, wherein, The threshold includes a first threshold and a second threshold, and wherein comparing the absolute value of the difference with the threshold includes: If the block of image information includes brightness information, then the absolute value is compared with the first threshold; and If the block of image information includes chroma information, then the absolute value is compared with the second threshold.
17. The method according to any one of claims 10 to 11 or 14 to 15, wherein the interpolation is based on a function including a linear portion and a smoothing function, wherein the smoothing function includes a sine term or a logarithmic term.
18. The method according to any one of claims 10 to 11 or 14 to 15, wherein the indication for the use of interpolation is signaled in video data generated or received by encoding for decoding, and wherein the indication for the use of interpolation includes at least one of the following: A slice header or tile header that indicates one or more coding units in a corresponding slice or tile to use the interpolation; A set of picture parameters (PPS) that indicates one or more coding units in a frame to use the interpolation; or A sequence parameter set (SPS) that indicates one or more coding units in a sequence to use the interpolation.
19. An apparatus for decoding, the apparatus comprising: One or more processors, said one or more processors being configured to: Determine the values associated with the predicted pixels of a block of image information, wherein the prediction is based on intra-frame prediction along a non-diagonal direction. At least four reference samples of the block are determined from multiple decoded pixels adjacent to the block on the top and left sides based on the off-diagonal direction, and wherein The one or more processors are configured to determine the value, including the one or more processors being further configured to perform interpolation based on a quadratic model and the at least four reference samples, the quadratic model comprising a linear part and a quadratic part, and the quadratic model being based on a piecewise linear approximation of the quadratic part; and At least a portion of the image information is decoded based on the value.
20. The apparatus of claim 19, wherein the intra-prediction based on the intra-prediction along the off-diagonal direction corresponding to the intra-prediction mode of the block is an angular mode along the off-diagonal direction.
21. The apparatus of claim 19 or 20, wherein the piecewise linear approximation comprises a first piecewise linear approximation and a second piecewise linear approximation.
22. The apparatus of any one of claims 19 or 20, wherein the one or more processors are configured to determine the at least four reference samples, and the one or more processors are further configured to: Determine the position of a predictor sample adjacent to the current block from the pixel in the off-diagonal direction, wherein the value is associated with the predictor sample; and The positions of four pixels closest to the position of the predictor sample are determined from the plurality of pixels adjacent to the block, two of the four pixels closest to the position of the predictor sample being located on each side of the position of the predictor sample, wherein each of the four pixels closest to the position of the predictor sample corresponds to one of the at least four reference samples.
23. The apparatus of claim 22, wherein the one or more processors are further configured to: From the at least four reference samples, determine the two reference samples that are closest to the position of the predictor sample, with one reference sample on each side of the position of the predictor sample; Determine the absolute value of the difference between the values of the two reference samples that are closest to the position of the predictor sample; as well as The absolute value of the difference is compared with a threshold.
24. The apparatus according to claim 23, Wherein, under the condition that the absolute value of the difference is less than the threshold, the interpolation is based on the two reference samples closest to the position of the predictor sample, and Wherein, if the absolute value of the difference is greater than the threshold, the interpolation is based on the at least four reference samples.
25. The apparatus of claim 23 or 24, wherein the threshold comprises a first threshold and a second threshold, and the one or more processors are configured to compare the absolute value of the difference with the threshold, comprising the one or more processors being configured to: If the block of image information includes brightness information, then the absolute value is compared with the first threshold, and If the block of image information includes chroma information, then the absolute value is compared with the second threshold.
26. The apparatus according to any one of claims 19 to 20 or 23 to 24, wherein the interpolation is based on a function including a linear portion and a smoothing function, wherein the smoothing function includes a sine term or a logarithmic term.
27. The apparatus according to any one of claims 19 to 20 or 23 to 24, wherein the indication for the use of interpolation is signaled in video data generated or received by encoding for decoding, and wherein the indication for the use of interpolation includes at least one of the following: A slice header or tile header that indicates one or more coding units in a corresponding slice or tile to use the interpolation; A set of picture parameters (PPS) that indicates one or more coding units in a frame to use the interpolation; or A sequence parameter set (SPS) that indicates one or more coding units in a sequence to use the interpolation.
28. An apparatus for encoding, the apparatus comprising: One or more processors, said one or more processors being configured to: Determine the values associated with the predicted pixels of a block of image information, wherein the prediction is based on intra-frame prediction along a non-diagonal direction. At least four reference samples of the block are determined from multiple pixels adjacent to the block on the top and left sides based on the non-diagonal direction, and wherein The one or more processors are configured to determine the value, including the one or more processors being further configured to perform interpolation based on a quadratic model and the at least four reference samples, the quadratic model comprising a linear part and a quadratic part, and the quadratic model being based on a piecewise linear approximation of the quadratic part; and At least a portion of the image information is encoded based on the value.
29. The apparatus of claim 28, wherein the intra-prediction based on the intra-prediction along the off-diagonal direction corresponding to the intra-prediction mode of the block is an angular mode along the off-diagonal direction.
30. The apparatus of claim 28 or 29, wherein the piecewise linear approximation comprises a first piecewise linear approximation and a second piecewise linear approximation.
31. The apparatus of any one of claims 28 or 29, wherein the one or more processors are configured to determine that the at least four reference samples include the one or more processors being further configured to: Determine the position of a predictor sample adjacent to the current block from the pixel in the off-diagonal direction, wherein the value is associated with the predictor sample; and The positions of four pixels closest to the position of the predictor sample are determined from the plurality of pixels adjacent to the block, two of the four pixels closest to the position of the predictor sample being located on each side of the position of the predictor sample, wherein each of the four pixels closest to the position of the predictor sample corresponds to one of the at least four reference samples.
32. The apparatus of claim 31, wherein the one or more processors are further configured to: From the at least four reference samples, determine the two reference samples that are closest to the position of the predictor sample, with one reference sample on each side of the position of the predictor sample; Determine the absolute value of the difference between the values of the two reference samples that are closest to the position of the predictor sample; as well as The absolute value of the difference is compared with a threshold.
33. The apparatus according to claim 32, Wherein, under the condition that the absolute value of the difference is less than the threshold, the interpolation is based on the two reference samples closest to the position of the predictor sample, and Wherein, if the absolute value of the difference is greater than the threshold, the interpolation is based on the at least four reference samples.
34. The apparatus of claim 32 or 33, wherein the threshold comprises a first threshold and a second threshold, and the one or more processors are configured to compare the absolute value of the difference with the threshold, comprising the one or more processors being configured to: If the block of image information includes brightness information, then the absolute value is compared with the first threshold, and If the block of image information includes chroma information, then the absolute value is compared with the second threshold.
35. The apparatus according to any one of claims 28 to 29 or 32 to 33, wherein the interpolation is based on a function including a linear portion and a smoothing function, wherein the smoothing function includes a sine term or a logarithmic term.
36. The apparatus according to any one of claims 28 to 29 or 32 to 33, wherein the indication for the use of interpolation is signaled in video data generated or received by encoding for decoding, and wherein the indication for the use of interpolation includes at least one of the following: A slice header or tile header that indicates one or more coding units in a corresponding slice or tile to use the interpolation; A set of picture parameters (PPS) that indicates one or more coding units in a frame to use the interpolation; or A sequence parameter set (SPS) that indicates one or more coding units in a sequence to use the interpolation.
37. A computer-readable storage medium comprising instructions for causing one or more processors to perform the method as described in any one of claims 1 to 18.