PREDICTION OF SMOOTH SURFACE.

MX434445BActive Publication Date: 2026-05-19TELEFONAKTIEBOLAGET LM ERICSSON (PUBL) +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
MX2023011306
Authority / Receiving Office
MX · MX
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-03-31
Filing Date
2023-09-25
Publication Date
2026-05-19
Estimated Expiration
2042-03-30

AI Technical Summary

Technical Problem

Current video coding standards face inefficiencies in encoding smooth surfaces, leading to unnecessary overhead and reduced subjective quality, particularly in high dynamic range (HDR) video, due to inadequate prediction methods and quantization parameters for blocks with low variance.

Method used

Implementing modalities that use polynomial models to predict smooth surfaces by fitting a low-order polynomial model to block samples, adjusting quantization parameters based on smoothness, and applying adaptive quantization to enhance encoding efficiency and quality.

Benefits of technology

Improves subjective quality in HDR video by reducing quantization parameters for smooth blocks, minimizing bitrate overhead, and maintaining high fidelity in smooth regions, thereby enhancing overall video encoding performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure MX434445B0
    Figure MX434445B0
Patent Text Reader

Abstract

A method is provided for constructing a soft prediction block of samples in an image or video encoder or decoder. The method includes determining the parameters r of a polynomial model by r = (BTB)-1*(BT*x), where B is a basis matrix and x is a vector sample source. The method includes predicting a block x' based on the parameters r and the basis matrix B.
Need to check novelty before this filing date? Find Prior Art

Description

PREDICTION OF SMOOTH SURFACE TECHNICAL FIELD

[0001] This invention relates to the encoding and decoding of video sequences and / or still images and, more particularly, to the prediction of smooth surfaces. BACKGROUND OF THE INVENTION

[0002] A video sequence includes one or more images (also referred to herein as frames). When viewed on a screen, the image has pixels, and each pixel typically has a red, green, and blue (RGB) value. However, when encoding and decoding a video sequence, the image is often not represented using RGB but typically uses another color space, including, but not limited to, YCbCr, ICTCP, non-constant luminance YCbCr, and constant luminance YCbCr. Taking non-constant luminance YCbCr as an example, which is the most commonly used representation today, it consists of three components: Y, Cb, and Cr. It is often the case that Y, which is called luma and roughly represents luminance, has full resolution, while the other two components, Cb and Cr, called chroma, have lower resolution. A typical example is a high-definition (HD) video sequence containing 1920 x 1080 RGB pixels, which is often ML / a / ZUZO / UI 1 ÓUO is represented by a Y component with a resolution of 1920 x 1080, a Cb component of 960 x 540, and a Cr component of 960 x 540. The elements of the components are called samples. In the example above, there are therefore 1920x1080 samples in the Y component, and thus a direct relationship between samples and pixels. Therefore, in this document, the terms pixels and samples can be used interchangeably. For the Cb and Cr components, there is no direct relationship between samples and pixels; a single Cb sample typically affects several pixels.

[0003] In the Versatile Video Coding (WC) standard developed by the Joint Video Expert Team (JVET) (also referred to herein as WC), image decoding is performed in two stages: prediction coding and loop filtering. In the prediction decoding step, the component samples (Y, Cb, and Cr) are divided into rectangular blocks. For example, one block might be 4x8 samples, while another might be 64x64 samples. The decoder receives instructions on how to obtain a prediction for each block, for example, by copying samples from a previously decoded image (an example of temporal prediction) or by copying samples from already decoded parts of the current image (an example of intra-prediction), or a combination thereof.To improve this prediction, the decoder can obtain a residual, often encoded using transform coding such as discrete sine or cosine transform (DST or DCT). This residual is added to the prediction, and the decoder can proceed to decode the next block. Transforms are widely used to eliminate spatial redundancy from the prediction error of intra- and inter-image prediction in video coding. Transform sizes have increased with the progression of video coding standards. In H.264, the maximum transform size was 16x16, in HEVC the maximum transform size was 32x32, and in WC, the latest MPEG / ITU video coding standard, the maximum transform size is 64x64. In WC, a secondary non-separable low-frequency transform (LFNST) can also be applied after the separable DCT / DST-based transform.Work subsequent to WC version 1 has shown that increasing the transform size can provide greater gains in coding efficiency. Future standards are likely to use even larger transform sizes.

[0004] The output of the prediction decoding stage consists of the three components Y, Cb, and Cr. However, it is possible to further improve the fidelity of these components, and this is done in the loop filtering stage. The loop filtering step in WC consists of three substages: an unlocking filter stage, a sample adaptive offset (SAO) filter substage, and an adaptive loop filter (ALE) substage. In the unlocking filter substage, the decoder modifies Y, Cb, and Cr by smoothing the edges near block boundaries when certain conditions are met. This increases the perceived quality (subjective quality), since the human visual system is very good at detecting regular edges, such as block artifacts along block boundaries.In the SAO substage, the decoder adds or subtracts a signaled value from samples that meet certain conditions, such as being within a specific range of values ​​(band-compensated SAO) or having a specific neighborhood (edge-compensated SAO). This can reduce ringing noise, as such noise is often added within a certain range of values ​​or in specific neighborhoods (e.g., at local maxima). The components of the reconstructed image resulting from this stage are called YSAO, CbSAO, and CrSAO.

[0005] A high-performance video coding standard includes efficient intra-prediction to allow for a small amount of prediction error at a small bit cost. To that end, intra-prediction in HEVC and WC has many modes that can extrapolate the texture of previously encoded neighboring samples. These can provide good prediction of DC, flat surfaces, and lines for the current block to be encoded.

[0006] To adapt video coding for subjectively good video quality, adaptive quantization (QP) parameters of the transformation coefficients are implemented. An exemplary adaptive QP method is to derive the variance of a block and assign a low QP to blocks with low variance and a higher QP to blocks with high variance. This allows for greater accuracy in smooth blocks than in blocks with a lot of detail. This makes more efficient use of bits where they matter most.

[0007] Haralic introduced a faceted model for image data in a 1981 paper form that he used for image restoration. A polynomial model, or faceted model, is a parametric representation of samples using polynomials. A first-order model can be described by f(x,y) = r0+rl*x+r2*y, where r0 and r2 are coefficients that control how much a sample conforms to the model depends on the constant (r0), horizontal slope x (rl), and vertical slope y (r2). Polynomials have also been used for interpolation in image and video encoding. BRIEF DESCRIPTION OF THE INVENTION

[0008] Transformations in current video coding standards are excellent at compressing prediction error, but when dealing with simple signals, they tend to add unnecessary overhead, such as when dealing with smooth source samples beyond DC or when dealing with a low-quality setting that produces an overly coarse image. Transformation coefficients are needed to allow for accurate representation of smooth source samples. Intra-prediction, in current standards, bases the prediction on samples outside the current block, making the prediction sensitive to coding artifacts from previous coding blocks. Adaptive quantization parameter (QP) methods typically favor blocks with source samples close to a constant (DC) value rather than favoring smooth blocks in general.

[0009] Modes can be used in an encoder to improve current and future standards. For example, modalities can be used to detect blocks with a smooth surface and use a high-quality configuration for those blocks (with a quantization parameter (QP) low enough for quantizing transformation coefficients). Modalities can also be used to introduce intra-prediction based on a low-frequency model of the source samples, such as a low polynomial model, to enable accurate prediction of smooth source samples, e.g., a smooth surface. Modalities can also be used as part of large block unlocking, where a low polynomial model is fitted to reconstructed samples.Modalities can also be used to encode with adaptive QP in general, where a larger QP is given to blocks with greater variation from the smooth surface and a smaller QP is given to blocks with less variation from the smooth surface.

[0010] These modes can greatly improve the visual quality of HDR video, especially for sky regions and when the quality settings become more challenging. This corresponds to a QP greater than approximately 27 for WC and HEVC.

[0011] According to a first aspect, a method is provided for constructing a soft prediction block of samples in an image in an image or video encoder or decoder. The method includes determining the parameters r of a polynomial model by r = (BTB)_i* (BT*x) , where B is a basis matrix and x is a sample source in vector form. The method includes predicting a block x' based on the parameters r and the basis matrix B.

[0012] In some modalities, the soft prediction block x' comprises x' = Σ± [ r(i)*b(i) ], where r(i) refers to the i-th component of r(i) and b(i) refers to the i-th basis vector of B, and the sum is taken over the number of basis vectors in B. In some modalities, the soft prediction block x' comprises x' = (Σ±[ r(i)*b(i) ] + 2N-1) >> N, where N is a scaling factor, r(i) refers to the i-th component of r(i) and b(i) refers to the i-th basis vector of B, and the sum is taken over the number of basis vectors in B. In some modalities, the mean of each basis vector b(i) in B is removed so that b(i) := b(i) - mean (b(i) ). In some forms, B includes at least three bases B = { bl, b2, b3}, where bl = {1, 1, 1, . . . , 1}T, b2 = { 0,1, . .Ml, . . , 0,l,..,M}T, and b3 = {0,..,0,1,..,1, Ml, . . , M-1}T, where M is equal to a height of the block.In some forms, B also includes bases (b4, b5, b6) so that B = {bl, b2, b3, b4, b5, b6}, where b4 = {0,.., 0, 1,2,.. Ml,.., Ml, 2*M-1,.., (Ml) * (Ml)}, b5 = { 0, 1,4, . . , (Ml) * (Ml) , . . , 0,1,4,.., (M1)*(M-1)} and b6 = {0,..,0, 1,.., 1, 4,.., 4,.., (Ml)*(Ml)}.

[0013] In some forms, (BTB)-1 is calculated beforehand. In some modalities, the sample source x is determined by taking a subset of samples (for example, one out of every two samples horizontally and vertically). In some modalities, each basis vector b(i) in B is taken at i or u0 sample positions that are multiples of two. In some modalities, the block height (M) is equal to the maximum transformation size used in the image or video encoder / decoder.

[0014] According to a second aspect, a method is provided for adjusting a quantized parameter. The method includes determining that a block in an image is smooth. The method includes determining that the quantized parameter (QP) would reduce the quality of the block after compression. The method includes, as a result of determining that the block in the image is smooth and determining that QP would reduce the quality of the block after compression, decreasing the QP of the block so that it is encoded with higher quality.

[0015] In some modalities, determining that a block in an image is smooth comprises: determining parameters for a model based on low-frequency basis functions; predicting predicted samples with the determined parameters; comparing the predicted samples with source samples of the block to determine an error; and determining that the error is below a threshold. In some modalities, the low-frequency basis functions comprise polynomial functions, and comparing the predicted block with source samples to determine an error comprises calculating one or more of a sum of absolute differences (SAD) value and a sum of squared differences (SSD) value for the differences between the block's source samples and the predicted samples.In some modalities, decreasing the QP for the block so that it is coded with higher quality involves determining the QP decrease based on a linear model such that the decrease is greater for higher QPs and that there is no QP decrease below a specific value.

[0016] In some modalities, the QP reduction is determined by min(0,QPscale*QP+QPoffset), where QPscale and QPoffset are parameters. In some modalities, the QP reduction is limited by a limit value. In some modalities, the QP reduction is determined by max(QPlimit, min(0,QPscale*QP+QPoffset)), where QPscale, QPoffset, and QPlimit are parameters. In some modalities, the method also includes determining whether the image is an intra-coded image type, and where the reduction of the quantized parameter (QP) for the block, such that it is encoded with higher quality, is carried out as a result of determining whether the image is an intra-coded image type.In some modalities, the method further includes determining that the image has a sequence number (e.g., image order count (POC)) within a sequence of images that is a multiple of a value M, and where decreasing the quantized parameter (QP) for the block so that it is encoded with higher quality is carried out as a result of determining that the image has a sequence number that is a multiple of M. In some modalities, M is one of 2, 4, 8, 16, and 32. In some modalities, the determination that a block in an image is smooth is based on information at a subblock granularity level.

[0017] According to a third aspect, a computer program is provided comprising instructions that, when executed by a node's processing circuits, cause the node to carry out the method of any of the modalities of the first and second aspects.

[0018] According to a fourth aspect, a carrier containing the computer program of the third aspect is provided. The carrier is one of an electronic signal, an optical signal, a radio signal, and a computer-readable storage medium.

[0019] According to a fifth aspect, an encoder is provided. The encoder includes processing circuits. The encoder includes a memory that contains instructions executable by the processing circuit. When the instructions are executed, the encoder is configured to carry out the method of any of the modalities of the first and second aspects.

[0020] According to a sixth aspect, an i ouo decoder is provided. The decoder includes processing circuitry. The decoder includes a memory, which contains instructions executable by the processing circuitry. When the instructions are executed, the decoder is configured to carry out the method of any of the modalities of the first aspect.

[0021] According to a seventh aspect, an encoder configured to create a soft prediction block of samples in an image is provided. The encoder is configured to determine the parameters r of a polynomial model by r = (BTB)-1* (BT*x) , where B is a basis matrix and x is a sample source in vector form. The encoder is configured to predict a block x' based on the parameters r and the basis matrix B.

[0022] According to an eighth aspect, an encoder is provided configured to adjust a quantized parameter. The encoder is configured to determine that a block in an image is smooth. The encoder is configured to determine that the quantized parameter (QP) would reduce the quality of the block after compression. The encoder is configured, as a result of determining that the block in the image is smooth and determining that the QP would reduce the quality of the block after compression, to decrease the QP of the block so that it is encoded with higher quality. i ouo

[0023] According to a ninth aspect, a decoder configured to create a soft sample prediction block in an image is provided. The decoder is configured to determine the parameters r of a polynomial model by r = (BTB)-1* (BT*x) , where B is a basis matrix and x is a sample source in vector form. The decoder is configured to predict a block x' based on the parameters r and the basis matrix B. BRIEF DESCRIPTION OF THE DRAWINGS

[0024] The attached drawings, which are incorporated herein and form part of the specification, illustrate various modalities.

[0025] Figure 1 is an example of an encoder architecture according to a modality.

[0026] Figure 2 is an example of a modality-based decoder architecture.

[0027] Figures 3A and 3B are exemplary image block diagrams.

[0028] Figures 4A and 4B are exemplary image block diagrams.

[0029] Figure 5 is a flowchart according to a modality.

[0030] Figure 6 is a flowchart according to a modality.

[0031] Figure 7 is a flowchart according to a modality.

[0032] Figure 8 is a flowchart according to a modality.

[0033] Figure 9 is a block diagram of a modality-based encoder. DETAILED DESCRIPTION

[0034] One aspect of some modalities is to provide a quantization parameter (QP) adaptation for blocks determined to be very simple to encode. The adaptation can be carried out according to a linear model based on the image QP, such that the block QP is reduced more for larger image QPs than for smaller image QPs. Another aspect of some modalities is to determine a low-order polynomial model to allow the representation of uniform source samples. The model can be used as part of video coding to determine whether a block is simple to encode or as an alternative intra-prediction method. Another aspect of some modalities is to determine a low-order polynomial model to allow a smooth representation of reconstructed samples as part of loop filtering (unblocking) in image or video coding.

[0035] Modes are applicable to the encoding of images and videos. Modalities can be incorporated into an encoder (or part of an encoder) only and can use current or future codec standards. Modalities can also be incorporated into both an encoder and a decoder (or parts thereof), and can use future codec standards. In Figure 1 and Figure 2, other looping tools can be implemented before or after unlocking, but other looping filters are not included in Figure 1 and Figure 2. i ouo

[0036] Mode 1

[0037] Based on samples of a block, a smooth representation of the block can be obtained using a polynomial model, a smooth surface prediction. Figure 3A and Figure 3B show examples of blocks; in Figure 3A, an image is divided into four blocks, and in Figure 3B, an image is divided into 16 blocks. An example of how a polynomial model of order 1 (i.e., with basis 1, xey) can be derived is shown below. Additional basis functions such as x², y², and xy can also be used. The basis functions are b₁ = 1 (constant value), b₂ = aₓ (slope in the horizontal direction), and b₃ = aₓ (slope in the vertical direction). For simplicity, the example here uses a 2x2 block size in vector form, where the first two samples of the vector correspond to the first row of the block, and the next two samples correspond to the second row of the block.We also eliminate the mean value to reduce the magnitude of the basis functions. Consequently, the bases are given by: bl' = {1,1,1,1}T, b2' = {1,2,1,2}T, b3' = {1,1,2,2}Tbl = bl', b2 = b2 '-mean(b2'), b3 = b3' - mean(b3')

[0038] The basis functions can then be placed in a matrix B (with the basis functions as columns), such that B = {bl, b2, b3}.

[0039] The model parameters can then be determined as: r = (BTB) -1* (BT*x) where x are the origin samples of the block in vector form.

[0040] Then, a prediction block x' based on the determined parameters and basis functions can be derived as: x'=r(0) +r(1)*b2+r(2)*b3

[0041] Since (BTB)⁻¹ is determined by the basis functions and not by source samples, it can be precomputed. With a precomputed inverse matrix, it is easy to determine the model parameters, even if more basis functions than b₁, b₂, and b₃ are used. In general, more basis functions can be used to model polynomials of order n. ML / a / ZUZO / UI 1 ÓUO superior. Mean elimination of the basis functions (e.g., of b2 and b3 as shown above) can help avoid very small numbers after the inverse of BTB, which can be more efficient, especially for larger block sizes. Mean elimination for this example of basis functions also provides orthogonal basis functions, resulting in only nonzero elements on the diagonal of (BTB)-1. This is not usually the case for higher-order polynomials.

[0042] The size of (BTB)-1 depends on the number of basis functions used. The dimension is nBase x nBase, where nBase is the number of basis functions.

[0043] Mode 2

[0044] Different approaches can be used to reduce the complexity of modality 1.

[0045] One approach to reducing complexity is to reduce the number of samples where the model is determined. Additionally, the number of samples where the model is tested can be reduced. Reducing the number of samples can be achieved by using a sparse sampling grid. For example, by determining and testing every other sample horizontally and every other sample vertically, the complexity can be reduced fourfold. Other sparse sampling techniques can also be used. iviA / a / zuzo / ui ί ouo

[0046] Basis functions can also be taken in sample positions that are multiples of 2 to allow the use of shifts instead of multiplications. That is, 1 (20), 2 (21), 4 (2°), 8 (23), 16 (2°) and 32 (25) correspond respectively to (1 << 0), (1 << 1), (1<<2), (1<<3), (1<<4), (1<<5), etc., where << denotes a left shift operation.

[0047] Complexity can also be reduced by carrying out the prediction in fixed-point arithmetic such as x'= (r (0)+r (1) *b2+r (2) *b3+2N-!) » N where N is a scaling factor. i ouo

[0048] Mode 3 (intra-prediction)

[0049] The modal approach 1-2 can be used as a soft intra-prediction mode in video or image coding for block prediction. For example, Figure 4A shows a block to be intra-predicted, and Figure 4B shows a block to be intra-predicted along with reference samples above a horizontal block boundary and to the left of a vertical block boundary. In this case, the input samples for the block can be source samples before encoding. To better align the block prediction with the previously reconstructed samples outside the block (e.g., the reference samples shown), the input samples could also include reconstructed samples. These reference samples can include rows of samples above and columns of samples to the left of the block, as shown in Figure 4B.An example is having 4 columns above and 4 rows to the left of the current block, although different reference samples can also be selected.

[0050] On the encoder side, the model parameters can be quantized and encoded by entropy. The encoder can also signal an enable / disable indicator on the decoder side. That is, the indicator can inform the decoder whether the modal 1-2 approach is being used as a soft intra-prediction mode. When an enable indicator is received on the decoder side, the decoder can perform inverse entropy encoding and inverse quantization of the model parameters and then derive a prediction block based on them.

[0051] Typical values ​​of interest to retain as part of the quantization are for slope parameters (xey) below a magnitude of 1. Parameters for second-order basis functions are normally below a magnitude of 0.1. For 10-bit video, DC parameters may have a range of 0 to 1023, e.g., 10 bits; first-order parameters may be represented with 11 bits after multiplying the floating-point values ​​by 1024, such that the range is -1024 to 1024, e.g., 11 bits; and second-order parameters (if used) may be represented with 12 bits after multiplication by 2048, such that the range is 2048 to +2048. Higher-order parameters may be represented similarly.

[0052] To reduce the overhead of parameter compression, the parameters of the current block can be predicted based on neighboring samples, e.g., samples immediately above and to the left of the current block (such as the reference samples shown in Figure 4B).

[0053] For example, a prediction of the DC parameter can be derived from the average of samples immediately above and to the left of the current block. A prediction of the parameter for the basis function x₀x² can be estimated based on samples immediately above the current block. A prediction of the parameter for the basis function y₀y² can be estimated based on samples immediately to the left of the current block. In this case, the parameter for the basis function xy is not predicted. If there are several rows above and several columns to the left as reference samples, a prediction of all parameters can be based on samples from those rows and columns. i ouo

[0054] In some modes, the parameters are directly encoded. In some modes, it is only necessary to encode a delta value of the parameters, where the delta is determined based on the prediction of the parameters of the current block. In this case, for example, the DC parameter can be encoded with 10 bits including the sign, a range between -512 and 512. First-order parameters can be represented with 10 bits including the sign, a range between 512 and 512. Second-order parameters can be represented with 10 bits including the sign, a range between -512 and 512. The quantized value to be encoded can be determined as follows: rQ[n] = int(S[n]*(r[n]-rPred[n]) + 0.5), rQ[3] = int(S[3]*r[3]) + 0.5), where rQ[3] is calculated separately if only one row above or one column to the left is available, and otherwise it can be calculated as in the general equation rQ[n] above. In the equations here, 0 <= n < nBases (where nBases = 6 here), S[n] are scaling factors used for quantization, e.g., S[0]=1, S[1]=S[2]=S[4]=S[5]=512, S[3]=2048.

[0055] Then, after encoding (e.g., entropy encoding) the quantized parameters, the decoder can derive the inversely quantized parameters as: r'[n]=rPred[n]+(rQ[n]+ S[n] / 2) / S[n] or with shift notation, where log2 can be pre-calculated, e.g., 1 for S[n] = 2, etc., r'[n]=rPred[n] + (rQ[n]+ 1 << log2(S[n])) >> log2(S[n]) r'[0]=rPred[0]+rQ[0] r'[3]=(rQ[3]+S[3] / 2) / S[3] In this case, r'[0] is calculated separately. Furthermore, r'[3] is calculated separately if only one row above or one column to the left is available; otherwise, it can be calculated as in the general equation for r'[n] above.

[0056] Based on the quantized parameters obtained in the decoder, a prediction block can be derived by multiplying the model parameters with the respective basis function in the respective positions within the block to derive the predicted block: For x=0 to W, For y=0 to H, X' (x,y) r' [0] +r' [l]*(xm[l])+r' [2]*(ym[2])+r' [3]*(x*ym [3] )+r' [4]*(x*xm[4])+ r'[5]*(y*ym[5]); End End where m[1] is the average value of all x, m[2] is the average of all y, m[3] is the average of all x*y, m[4] is the average of all x*x, ym[5] is the average of all y*y.

[0057] In the previous determination of the prediction block, floating-point calculations are used. In some modes, the calculations could be done in fixed point as follows, assuming a constant scale factor F for all non-DC parameters: For x=0 to W, For y=0 to H, X'(x,y) = r'[0]+(F*r'[1]*(xm[1])+ F*r'[2]*(ym[2])+ F*r'[ 3]*(x*ym[3])+ F*r' [4]*(x*xm[4]) + F* r' [5]*(y*ym[5]) +F>>1)>>log2(F); End End

[0058] To obtain an alternative prediction of the reconstructed block model parameters, samples from the top rows and leftmost columns of the block can be used (e.g., as shown in Figure 4B). An example is having 4 columns above and 4 rows to the left of the current block.

[0059] When an adjacent block has been intrapredicted by a polynomial model, the model parameters of the current block can be predicted from the adjacent block. The adjacent block could be a block to the left of or above the current block. The DC parameter for the adjacent model is preferably centered on the current block before using it for prediction. For example, if the neighboring block is to the left of the current block and has a size of 64x64, and the current block has a size of 64x64, then it is necessary to update the DC parameter (constant basis function) of the neighboring block (rNb[0]) according to its x basis function (rNb[1]), y basis function (rNb[2]), xy basis function (rNb[3]), x2 basis function (rNb[4]), and y2 basis function (rNb[5]) for a second-order model: rNb' [0]=rNb[0]+rNb[1]*64 + rNb[2]* 0+rNb[3]* 64* 0 + rNb[4]* 64* 64 + rNb[5]* 0 * 0. As can be seen, only the basis functions in xy x2 perform a horizontal movement. In some forms, the use of updates of higher-order coefficients (e.g., x2e y2) can also be omitted.

[0060] If the neighboring block is above and x-aligned for the same block sizes, DC updates before use can be given as follows: rNb' [0]=rNb[0]+rNb[1]* 0 + rNb[2]* 64 + rNb[3]* 0* 64 + rNb[4]*0*0 +rNb[5]*64* 64.

[0061] Parameters that are not DC of the neighboring block can be used directly.

[0062] An alternative mode of operation is for the encoder to simply indicate the model usage, and then for the decoder to derive the model parameters on the decoder side based on neighboring reconstructed samples outside the block. In this case, it is not necessary to signal the model parameters.

[0063] Mode 4 (QP encoder control)

[0064] Based on the source samples of a block, where the source samples are preferably noise-free, modalities can determine how easy it is to encode the source samples. Ease of encoding can be determined by how well low-frequency basis functions can predict samples from the block. An example of low-frequency basis functions are low-order polynomials (e.g., first- or second-order polynomials). How well the predicted samples match the source samples can be determined by an error metric, such as a sum of absolute differences (SAD) or a sum of squared differences (SSD). If the error according to the error metric is below a predefined threshold, the block is considered easy to encode. Blocks that are considered easy to encode are encoded with better quality than other blocks.Improved quality can be achieved by using finer quantification, for example, a lower QP for these blocks. Preferably, the block size should be approximately the maximum transformation size or the maximum CU size, for example, 64x64 / 128x128 in WC or 32x32 / 64x64 in HEVC. Other sizes are also possible. In WC and HEVC, the method can preferably be used for QPs greater than 27.

[0065] For example, a process can determine whether a large block is smooth and, if so, encode the block with high quality. To determine whether a large block is smooth, the following procedure can be used. For samples of a large block (for example, those that have been temporarily filtered), the parameters of a polynomial model can be determined, and an error (for example, a SAD or SSD value) can be calculated based on the difference between the samples of the large block and the samples predicted based on the polynomial model. If the error is less than a threshold, the large block is determined to be smooth. Encoding the block with high quality can be performed as follows. A delta QP value can be calculated based on a reference QP value and parameters of a linear model, and the reference QP can be modified by adding the delta QP value. The modified reference QP can then be used to encode the block.In certain modalities, this process can continue only if it is first determined that an image is an intra-coded image and / or only for images that are multiples of M (e.g., M=2,4,8,...) within an i ouo sequence of images.

[0066] The error (SAD or SSD) can be calculated as the difference between the source and predicted samples: err = abs(xi-xi') [SAD] err = Σι (xí-Xí')2[SSD] where the sums are each over the block samples.

[0067] If the error (err) is less than a threshold, the QP is reduced for the block. In some modes, the initial QP must be above a QP threshold (e.g., greater than 27), so reducing the QP is likely to affect image quality. The threshold for error (err) can be defined as the total number of samples in the block multiplied by a factor. An example factor is 3, for example, an average distortion of 3 per sample (for 10-bit video).

[0068] The application of QP reduction could preferably depend on the QP for the current image, such that the QP is reduced according to a linear model. An example is using a QP modification determined by min(0,(offset+scale*QP)), where offset and scale are parameters of the linear model, for example, offset is 27 and scale is -1. In this case, for example, the QP is reduced by 16 when QP is 43. Using a smaller magnitude of the scale parameter allows for a less aggressive QP change. By using a higher compensation parameter, the QP change comes into play for larger QPs.

[0069] The application of QP reduction can also depend on the type of image being encoded. For example, QP reduction may be applied only if it is an intra-coded image, or only if it is an inter-coded image, or a combination of both. In some modalities, QP reduction may be applied only at certain intervals, for example every 2nd, 4th, 8th, 16th, or 32nd frame, etc. i ouo

[0070] Mode 5 (unlock)

[0071] The modalities are also applicable to unblocking. The parameters of a polynomial model can be determined based on reconstructed samples of a large encoding block. A large encoding block is usually the same size as the maximum transformation size. Examples of large encoding block sizes are 64x64, 128x128, or 256x256. The large encoding block is typically also a transformation block. The model parameters for the large block can then be applied to derive a predicted block, and the predicted block can be compared to the reconstructed samples to generate distortion or error according to an error metric. An example of a metric is SAD or SSD. If the distortion is below a threshold, the encoding block is considered soft and carries the risk of introducing a block artifact. The risk increases if adjacent blocks are also large encoding blocks.The risk increases significantly if the large block has non-zero transformation coefficients. The risk and visibility of a blocking artifact also increase with QP for blocks with QP greater than a QP threshold (e.g., 2.7 in HEVC / WC).

[0072] If the current block and the neighboring blocks above and to the left have been determined to be smooth, samples of the block can be modified to perform the unlocking. The modification could be based on a polynomial model. In some embodiments, the sample modification can be performed only on samples of the current block. The modification can also be separated into two passes, similar to prior art unlocking where vertical boundaries are unlocked before horizontal boundaries. The modification of block samples could also be based on prior art unlocking, such that a longer take-up unlocking than currently used is introduced. For example, a longer take-up filter can be used that can modify up to half the width or height of the block on both sides of the block boundary for large blocks.

[0073] The modification could also be separated into two passes in a manner similar to the prior art unlocking, such that the vertical block boundaries are treated before the horizontal block boundaries. If the current block and previous neighboring blocks have been determined to be smooth, the samples on the upper side of the block can be modified based on a polynomial model. The objective of the modification is to align the samples on the upper side with the samples of the previous block. Similarly, if the current and left neighboring blocks have been determined to be smooth, the samples on the left side of the block can be modified based on a polynomial model. The objective of the modification is to align the samples on the left side with the samples of the left block. Sample modification could also be performed on both sides of the block boundary.

[0074] The polynomial model used to modify the samples in the current block is preferably based to some extent on model parameters or samples from neighboring blocks. For samples on the upper side of the block, the model parameters are preferably based on model parameters or samples from the previous block. For samples on the left side of the block, the model parameters are preferably based on model parameters or samples from the left block. If the samples are filtered in a single step, the model parameters or samples are preferably based on the upper and left blocks. In addition, the model parameters can also be based on the model parameters or samples of the current block.

[0075] When using model parameters from more than one block, the model parameters are combined using a weighted average. The DC parameter of a neighboring block is preferably adjusted to be centered on the current block before combining. An example of weighting is averaging, but more weight could also be assigned to the neighboring block or the current block.

[0076] The model's predicted samples can replace block samples as part of block unlocking or be added to block samples.

[0077] The amount of modification could also be reduced depending on QP. For example, the approach can only be used for higher QP (e.g., above a QP threshold). The amount of modification can also vary with the distance from the block boundary.

[0078] Figure 5 illustrates a flowchart according to one modality. Process 500 is a method for creating a soft sample prediction block in an image or video encoder or decoder. The method can begin with step s502.

[0079] Step s502 involves determining the parameters r of a polynomial model by r = (BTB)-1* (BT*x) , where B is a basis matrix and x is a sample source in the form ΜΛ / a / ZUZO / UI 1 vector ÓUO.

[0080] Step s504 involves predicting a block x' based on the parameters ry and the basis matrix B.

[0081] In some modalities, the soft prediction block x' comprises x' = Σ± [ r(i)*b(i) ], where r(i) refers to the i-th component of B and b(i) refers to the i-th basis vector of B, and the sum is taken over the number of basis vectors in B. In some modalities, the soft prediction block x' comprises x' = (Σ±[ r(i)*b(i) ] + 2N-3) >> N, where N is a scaling factor, r(i) refers to the i-th component of B and b(i) refers to the i-th basis vector of B, and the sum is taken over the number of basis vectors in B. In some modalities, the mean of each basis vector b(i) in B is removed so that b(i) : = b(i) - mean (b(i)). In some forms, B includes at least three bases B = { bl, b2, b3}, where bl = {1,1,1,..,1}T(constant value) , b2 = {0,1,.. M-1, . . , 0,l,..,M}T(slope in x) , and b3 = {0,..,0,1,..,1, M-1,..,M1}T(slope in y), where M is equal to the height of the block.In some forms, B also includes bases (b4, b5, b6) such that B = {bl, b2, b3, b4, b5, b6}, where b4 = {0,.., 0, 1,2,.., Ml,.., Ml, 2*M-1,.., (M-1)*(M1)} (x*y), b5 = {0,1,4,.., (Ml)*(Ml),.., 0,1,4,..,(Ml)*(M1)} (x*x) and b6 = {0,.., 0, 1,.., 1, 4,.., 4,.., (M-1)*(M-1)} (x*y). In some forms, (BTB)-1 is calculated beforehand.

[0082] In some modalities, the sample source x is determined by taking a subset of samples (e.g., one out of every two samples horizontally and vertically). In some modalities, each basis vector b(i) in B is taken at sample positions that are multiples of two. In some modalities, the block height (M) is equal to the maximum transform size used in the image or video encoder / decoder.

[0083] Process 500 can also be used in a method for encoding an image. In this case, the method may further include steps s506, s508, and s510. The samples in an image are predicted according to any of the above modalities.

[0084] Step s506 involves quantizing the r parameters into quantized qr parameters.

[0085] Step s508 involves encoding a signal indicating that a polynomial intra-coding mode is being used.

[0086] Step s510 involves encoding the quantized qr parameters.

[0087] In some embodiments, the sample source x comprises samples immediately above and / or to the left of block x'. In some embodiments, encoding the quantized parameters qr comprises: predicting parameters iviA / a / zuzo / ui ί ouo rPred based on samples immediately above and / or to the left of block x'; determining a delta value for each component i of qr based on a difference between the quantized parameters qr(i) and the predicted parameters rPred(i); and encoding the delta value.

[0088] Figure 6 illustrates a flowchart according to one modality. Process 600 is a method for encoding an image. The method can begin with step s602.

[0089] Step s602 involves determining the r parameters of a polynomial model based on the model parameters of an adjacent block.

[0090] Step s604 involves quantizing the r parameters into quantized qr parameters.

[0091] Step s606 involves encoding a signal indicating that a polynomial intra-coding mode is being used.

[0092] Step s608 optionally involves encoding the quantized parameters qr.

[0093] Figure 7 illustrates a flowchart according to one modality. Process 700 is a method for decoding an image. The method can begin with step s702.

[0094] Step s702 involves decoding a signal indicating that a polynomial intracoding mode is being used.

[0095] After step s702, steps s704 and s706 can be carried out or step s704b can be carried out.

[0096] Step s704 comprises, in response to the signal, decoding the quantized parameters qr; and step s706 comprises inversely quantizing the quantized parameters qr into unquantized parameters r'.

[0097] Step s704b involves, in response to the signal, determining the r' parameters of a polynomial model based on the model parameters of an adjacent block.

[0098] After step s706 or step s704b, step s708 can be performed.

[0099] Step s708 involves deriving a prediction block x' based on the unquantized parameters r' and a basis matrix B.

[00100] Figure 8 illustrates a flowchart according to one modality. Process 800 is a method for adjusting a quantized parameter and / or a method for unlocking. The method can begin with step s802 and continue with steps s804 and s806 or with step s808.

[00101] Step s802 involves determining whether a block in an image is smooth.

[00102] Step s804 involves determining that the quantized parameter (QP) would reduce the block quality after compression. i ouo

[00103] Step s806 comprises, as a result of determining that the block in the image is smooth and determining that the QP would reduce the quality of the block after compression, decreasing the QP for the block in such a way that it is encoded with higher quality.

[00104] Step s808 involves, as a result of determining that the block in the image is smooth, modifying samples in the block.

[00105] In some modalities, determining that a block in an image is smooth comprises: determining parameters for a model based on low-frequency basis functions; predicting predicted samples with the determined parameters; comparing the predicted samples with source samples of the block to determine an error; and determining that the error is below a threshold. In some modalities, the low-frequency basis functions comprise polynomial functions, and comparing the predicted block with source samples to determine an error comprises calculating one or more of a sum of absolute differences (SAD) value and a sum of squared differences (SSD) value for the differences between the block's source samples and the predicted samples.

[00106] In some modes, reducing the QP for the block so that it is coded with higher quality involves determining the QP reduction based on a linear model such that the reduction is greater for higher QP values ​​and there is no QP reduction below a specified value. In some modes, the QP reduction is determined by min(0, QPscale*QP+QPoffset), where QPscale and QPoffset are parameters. In some modes, the QP reduction is limited by a limit value. In some modes, the QP reduction is determined by max(QPlimit, min(0, QPscale*QP+QPoffset)), where QPscale, QPoffset, and QPlimit are parameters.

[00107] In some modalities, the method further includes determining that the image is an intra-coded image type, and wherein decreasing the quantized parameter (QP) for the block so that it is encoded with higher quality is carried out as a result of determining that the image is an intra-coded image type. In some modalities, the method further includes determining that the image has a sequence number (e.g., image order count (POC)) within an image sequence that is a multiple of a value M, and wherein decreasing the quantized parameter (QP) for the block so that it is encoded with higher quality is carried out as a result of determining that the image has a sequence number that is a multiple of M (e.g., 2, iviA / a / zu¿ó / u ι i óuo 4, 8, 16, 32) .

[00108] In some modalities, the determination that a block in an image is smooth is based on information at a subblock granularity level. For example, if the block size (e.g., CTU size or width of If the CTU / 2 size and CTU / 2 height) is 256x256, the smoothness could be determined in 64x64 or 128x128 subblocks of the 256x256 block. If the block size (e.g., CTU size or CTU / 2 width and CTU / 2 height) is 128x128, the smoothness could be determined in 64x64 subblocks of the block. 128x128. If the block size is 64x64 (e.g., the size of the CTU), the smoothness could be determined in 32x32 subblocks of the 64x64 block.

[00109] In some modes, the modification of samples in the block is based on a polynomial model.

[00110] The following is an example of QP control implemented on the reference encoder for WC (VTM-12.0). int EncModeCtrl::calculateLumaDQPsmooth(const CPelBuf& rcOrg) double avg = 0; double diff = 0; double thr = (double)m_pcEncCfg->getSmoothQPReductionThreshold()* rcOrg.height*rcOrg.width; int QPchange = 0; if (rcOrg.height >= 64 && rcOrg.width >= 64) { const int numBasis = 6; double invb[numBasis][numBasis] = { {0.001*0.244140625000000, 0, 0, 0, 0, 0}, {0, 0.001*0.013204564833946, 0.001*0.002080251479290, 0.001 *0.000066039729501, -0.001 *0.000165220364313, 0.000000000000000}, {0, 0.001*0.002080251479290, 0.001*0.013204564833946, iviA / a / zu¿ó / u ι i óuo > tü r\ c N a 39S — 0.001*0.000066039729501, 0.000000000000000, -0.001*0.000165220364313},£ {0, -0.001*0.000066039729501, -0.001*0.000066039729501,° 0.001*0.000002096499349, 0.000000000000000, 0.000000000000000}, {0, -0.001*0.000165220364313, 0.000000000000000, 0.000000000000000, 0.001 *0.000002622545465, 0.0000000000000000}, {0, 0.0000000000000000, -0.001*0.000165220364313, 0.00000000000000, 0.000000000000000, 0.001*0.000002622545465}}; double boffset[5] = { -31.5, -31.5, -992.25, -1333.5, -1333.5}; int listQuadrantsX[4] = { 0, 64, 0, 64}; int HstQuadrantsY[4] = { 0, 0, 64, 64}; double blossom; double b2sum; double b3sum; double b4sum; double b5sum; double bosum; int numQuadrants = (rcOrg.height == 128 && rcOrg.width == 128) ? 2:1; / / loop over quadrants for (int posy = 0; posy < numQuadrants; posy++) for (int posx = 0; posx < numQuadrants; posx++) b2sum = 0.0; b3sum = 0.0; b4sum = 0.0; b5sum = 0.0; b6sum = 0.0; average = 0.0; for (uint32_t y = 0; y < 64; y++) { for (uint32_t x = 0; x < 64; x++) const Pel& v = rcOrg.at(x + listQuadrantsXfposx + 2 * posy], y + listQuadrantsY[posx + 2 * posy]); b2sum += ((double)v)*((double)x + boffset[0]); b3sum += ((double)v)*((double)y + boffset[l]); b4sum += ((double)v)*((double)x*(double)y + boffset[2]); b5sum += ((double)v)*((double)x*(double)x + boffset[3]); bósum += ((double)v)*((double)y*(double)y + boffset[4]); avg += (double)v; }} blsum = avg; double rfnumBasis]; for (uint32_t b = 0; b < numBasis; b++) r[b] = invb[b][O] * blsum + invb[b][l] * b2sum + invb[b][2] * b3sum + invb[b][3] * b4sum + invb[b][4] * b5sum + invb[b][5] * bósum; } / / compute SAD for model for (uint32_t y = 0; y < 64; y++) { for (uint32_t x = 0; x < 64; x++) const Pel& v = rcOrg.at(x + listQuadrantsX[posx + 2 * posy], y + listQuadrantsY[posx + 2 * posy]); diff += abs((int)v - (int)(r[0] + r[l] * ((double)x + boffset[0]) + r[2] * ((double)y + boffset[l]) + r[3] * ((double)x*(double)y + boffset[2]) + r[4] * ((double)x*(double)x + boffset[3]) + r[5] * ((double)y*(double)y + boffset[4]))); ινΐΛ / a / zuzó / uii óuo if (diff < thr) QPchange = max(m_pcEncCfg->getSmoothQPReductionLimit(),min(0, (int)(m_pcEncCfg->getSmoothQPReductionModelScale()*(double)baseQP + m_pcEncCfg- > getSmoothQPReductionModelOffset()))); return changeQP;

[00111] The example parameters are m_pcEncCfg>getSmoothQPReductionLimit()=-16, m_pcEncCfgRgetSmoothQPReductionModelScale()=-1.0 m_pcEncCfg>getSmoothQPReductionModelOffset()=27. Where baseQP is the QP determined for the image or block by other means, could be an adaptive QP or simply a fixed QP for the image. Then, QPchange modifies the baseQP. QP reduction can be carried out in the CTU size (128x128) or in the 64x64 size in this example.

[00112] Figure 9 is a block diagram of node 900 (e.g., an encoder or decoder), according to some modalities. As shown in Figure 9, node 900 may comprise: processing circuit (PC) 902, which may include one or more processors (P) 955 (e.g., one or more general-purpose microprocessors and / or one or more different processors, such as an application-specific integrated circuit (ASIC), field-programmable gate arrays (FPGAs), and the like), the processors of which may be located together in a single enclosure or in a single data center or may be geographically distributed (i.e., node 900 may be a distributed computing appliance);at least one network interface 948 (for example, a physical or air interface) comprising a transmitter (Tx) 945 and a receiver (Rx) 947 to enable node 900 to transmit data and receive data from other nodes connected to a network 910 (for example, an Internet Protocol (IP) network) to which network interface 948 is connected (physically or wirelessly) (for example, network interface 948 may be coupled to an antenna arrangement comprising one or more antennas to enable node 900 to transmit / receive data wirelessly); and a local storage unit (also known as a data storage system) 908, which may include one or more devices of; ML / a / ZUZO / UI 1 ÓUO non-volatile storage and / or one or more volatile storage devices. In modes in which the PC 902 includes a programmable processor, a computer program product (CPP) 941 may be provided. The CPP 941 includes a computer-readable medium (CRM) 942 that stores a computer program (CP) 943 comprising computer-readable instructions (CRI) 944. The CRM 942 may be a non-transient computer-readable medium, such as magnetic media (e.g., a hard disk), optical media, memory devices (e.g., random-access memory, flash memory), and the like. In some modes, the CRI 944 of the software program 943 are configured so that when executed by PC 902, the CRIs cause node 900 to carry out the steps described in this document (e.g., the steps described in this document with reference to the flowcharts).In other configurations, the 900 node can be configured to perform the steps described herein without any code. For example, the PC 902 might simply consist of one or more ASICs. Therefore, the features of the configurations described herein can be implemented in hardware and / or software.

[00113] As used herein, a network element, node, or subsystem (e.g., an encoder or decoder) may consist of one or more pieces of service network equipment, including hardware and software that communicatively interconnects other equipment on a network (e.g., other network elements, end stations, etc.), and is adapted to host one or more applications or services, either in a virtualized / non-virtualized environment, with respect to a plurality of subscribers and associated user equipment (UE) nodes that are operational for receiving / consuming content on a media distribution network where media content assets can be distributed and delivered using either stream-based or file-based mechanisms.In this way, some network elements may be arranged in a wireless radio network environment while other network elements may be arranged in a public packet-switched network infrastructure, including or otherwise involving a suitable content delivery network (CDN) infrastructure that may comprise public, private, or mixed CDNs.In addition, suitable network elements that include one or more of the modalities set out herein may involve terrestrial and / or satellite broadband delivery infrastructures, for example, a digital subscriber line (DSL) network architecture, a cable modem termination system (CMTS) architecture compliant with the Data over Cable Service (DOCSIS) interface specification, a digital switched video (SDV) network architecture, a hybrid fiber-coaxial (HFC) network architecture, a suitable satellite access network architecture, or a broadband wireless access network architecture via cellular and / or WiFi connectivity.Accordingly, some network elements may comprise multi-service network elements that provide support for various network-based functions (e.g., 360° immersive A / V media readiness delivery policy management, session control, QoS policy enforcement, bandwidth scheduling management, content provider priority policy management, streaming policy management, and the like), in addition to providing support for various application services (e.g., data and multimedia applications that include 360° immersive video assets (also known as 360-degree video assets or simply 360 video assets) in different qualities or definitions).Examples of subscriber end stations or client devices may include various devices, connected or not, that can consume or deliver multimedia content assets using file-based streaming and / or download technologies, which may involve some form of rate adaptation in certain modalities. Therefore, illustrative client devices or UE devices may include any device configured to run, among other things, one or more client applications to receive, record, store, and / or decode / present 360 video content, live and / or static / on-demand media, which may include Virtual Reality (VR) media, Augmented Reality (AR) media, and Mixed Reality (MR) media, from one or more content providers, for example, over a broadband access network, using HTTP, HTTPS, RTP, and similar protocols.Accordingly, such client devices may include next-generation IP-based STBs, network televisions, personal / digital video recorders (PVR / DVR), network media projectors, laptops, netbooks, handheld computers, tablets, smartphones, multimedia / video phones, wireless mobile / user equipment, portable media players, portable gaming systems or consoles (such as Wii®, Play Station 3®, etc.) working in conjunction with 3D display devices and the like, which can access or consume 360-degree content / services provided through a suitable media distribution network in which a bandwidth and quality of experience (QoE) scheme can be provided in accordance with one or more modalities set forth herein. i ouo

[00114] One or more embodiments of the present patent invention may be implemented using different combinations of software, firmware, and / or hardware. Therefore, one or more of the techniques shown in the figures (e.g., flowcharts) may be implemented using code and data stored and executed on one or more electronic devices or nodes (e.g., a subscriber client device or end station, a network element, etc.). Such electronic devices may store and communicate (internally and / or with other electronic devices via a network) code and data using computer-readable media, such as non-transient computer-readable storage media (e.g., magnetic disks, optical disks, random-access memory, read-only memory, flash memory devices, phase-change memory, etc.).), transient, computer-readable transmission media (e.g., electrical, optical, acoustic, or other forms of propagated signals, such as carrier waves, infrared signals, digital signals), etc. In addition, such network elements may typically include a set of one or more processors coupled to one or more components, such as one or more storage devices (e.g., non-transient, machine-readable storage media), as well as storage databases, user input / output devices (e.g., a keyboard, a touch screen, a pointing device, and / or a display), and network connections for signaling and / or transmission of carrier media.The coupling of the processor array and other components can typically be achieved through one or more buses and bridges (also called bus controllers), arranged in any known architecture (e.g., symmetric / shared multiprocessing) or one that is currently unknown. Thus, the storage device or component of a given electronic device or network element can be configured to store code and / or data for execution on one or more processors of that element, node, or electronic device in order to implement one or more techniques of the present invention.

[00115] Experts will recognize that the above generalized example network environment can be implemented in a hierarchical network architecture, with various aspects of media capture and preparation, including, for example, source stream joining, projection mapping, source media compression, mosaic / ABR encoding / transcoding, bundling, etc., as well as distribution / loading and edge node processes taking place in different parts of the network arranged at different hierarchical levels, involving one or more carriers, content delivery networks (CDNs), edge networks, and the like. Furthermore, in some implementations, at least some of the above apparatus and processes may be cloud-based. In some arrangements, a CDN may be a large distributed system of servers deployed across multiple data centers connected to the Internet or another public / private communications network.A CDN can be a managed or unmanaged network and can also be a federation of managed or unmanaged networks.

[00116] Therefore, an exemplary mode of a media server / associated source system can be configured operationally within the above example network environment, for example, as a global headend, to accept media content from live sources and / or static file sources, for example, online content providers such as Hulu®, Netflix®, YouTube®, or Amazon® Prime, as well as VOD catalogs or content providers or studios such as, for example, Disney, Warner, Sony, etc. Media content from live sources may include live programming captured in connection with any type of event, for example, sports / entertainment / gaming events, concerts, live television programs, live news broadcast sources, such as, for example, national broadcasters (e.g., NBC, ABC, etc.), as well as cable television channels such as Time Warner channels like CNN, ESPN, CNBC, etc., and local broadcasters, etc., including any insertion of secondary media, such as advertising media channels.

[00117] In addition to the above description, the following is also noted.

[00118] Large transformations are excellent for reducing spatial redundancy. However, when the source samples are very smooth, subjective quality can drop very rapidly in areas with overly approximate quantization. Therefore, it is suggested to reduce the QP according to a linear model for very smooth regions to prolong the break in subjective quality. Since smooth regions are relatively easy to encode, the bitrate overhead can be manageable. The impact on BDR for HDR CTC is as follows: • VTM-12.0 HDR CTC (luma / Cb / Cr) : 0.07% / 0.02% / 0.16% • HM-16.22 (TE on) HDR CTC (luma / Cb / Cr): 0.70% / -0.18% / -0.05%

[00119] It is suggested to update VTM and HM with this functionality to improve subjective quality.

[00120] It has been observed that HM and VTM can lose quality with a relatively low QP in very smooth regions due to imprecise encoding of the transformation coefficients. This contribution aims to avoid this by reducing ML / a / ZUZO / UI 1 ÓUO the QP for soft blocks.

[00121] Smooth blocks are detected by fitting luma source samples to a low-order polynomial model in regions of (e.g.) 64x64 samples. The distortion of a prediction is then calculated according to model 5 (SAD) and compared to a threshold. When the distortion is below the threshold, the QP luma is reduced according to a linear model. The granularity of the QP fitting is (e.g.) 64x64.

[00122] Configurable parameters are added to allow control of the amount of QP reduction strength and also control for which frames it is applied (every, every second, every quarter, etc.).

[00123] The method was implemented on HM-16.22 [1] and VTM12.0 [2] and tested for HDR CTC [3]:

[00124] VTM-12.0 for CTC HDR RA (QP change for all frames): ινΐΛ / a / zuzó / uii óuo PSNR YUV EncT DecT Class H1 0.10% 0.02% 0.27% 89% 95% Class H2 0.01% 0.03% -0.04% 90% 103% General 0.07% 0.02% 0.16% 90% 98%

[00125] HM-16.22 (TE enabled) for CTC HDR RA (change of QP for all plots): PSNR YUV EncT DecT Class H1 1.02% -0.21% 0.13% 96% 95% Class H2 0.12% -0.14% -0.38% 99% 96% General 0.70% -0.18% -0.05% 97% 95%

[00126] References ινΐΛ / a / zuzó / uii óuo

[00127] [1] HM-16.22, available at https: / / vcgit.hhi.fraunhofer.de / j vet / HM / - / releases / HM-16.22

[00128] [2] VTM-12.0, available at https: / / vcgit.hhi. f raunhof er . de / j vet / WCSof tware_VTM / tags / VTM -12.0

[00129] [3] A. Segall, E. Frangois, W. Husak, S. Iwamura and D. Rusanovskyy, JVET common test conditions and evaluation procedures for HDR / WCG video, JVET-T2011, Teleconference Meeting, October 2020.

[00130] Summary of various modalities A. A method for elaborating a soft sample prediction block in an image in an image or video encoder or decoder, wherein the method comprises: Determine parameters r of a polynomial model by r = (B?B)-1* (BT*x) , where B is a basis matrix and x is a source of samples in vector form; and predict a block x' based on the parameters r and the basis matrix B. A2. The method of modality Al, wherein the soft prediction block x' comprises x' = Σι[ r(i)*b(i) ], wherein r(i) refers to the i-th component of r(i) and b(i) refers to the i-th basis vector of B, and the sum is taken over the number of basis vectors in B. A3. The method of modality Al, wherein the soft prediction block x' comprises x' = (Σ±[ r(i)*b(i) ] + 2N-1) >> N, wherein N is a scaling factor, r(i) refers to the i-th component of r(i), b(i) refers to the i-th basis vector of B, and the sum is taken over the number of basis vectors in B. A4. The method of any of the modalities AlA3, where the mean is removed from each basis vector b(i) in B so that b(i):= b(i) - mean (b(i)). A5. The method of any of the modalities AlA4, wherein B includes at least three bases B = { bl, b2, b3}, wherein bl = {1,1, 1, . . . , 1}T, b2 = {0, 1,..M-1,.., 0,1,.., M}T, and b3 = {0,..,0,1,..,1, Ml,..,Ml}T, wherein M is equal to the height of the block. A5' . The method of modality A5, in which B also includes bases (b4, b5, b6) such that B = {bl, b2, b3, b4, b5, b6}, in which b4 = {0,.., 0, 1,2,..Ml,.., MI, 2*M-1,.., (Ml)* (Ml)}, b5 = {0,1,4,.., (M -1)* (Ml) , . . , 0,1,4, . . , (Ml)* (Ml)} and b6 = {0,..,0, 1,.., 1, 4,.., 4,.., (Ml) * (Ml)} . iviA / a / zuzó / uii óuo A6. The method of any of the modalities AlA5 and A5', where (BTB)-1 is calculated beforehand. A7. The method of any of the modalities AlA6, wherein the source of samples x is determined by taking a subset of samples (e.g., one out of every two samples horizontally and vertically). A8. The method of any of the modalities AlA7, wherein each basis vector b(i) in B is taken in sample positions that are multiples of two. A9. The method of any of the modalities AlA8, wherein a block height (M) is equal to the maximum transformation size used in the image or video encoder / decoder. B1. A method for encoding an image, wherein the method comprises: predict samples in an image according to any of the modalities A1-A9; quantify the r parameters into quantized qr parameters; encode a signal indicating that a polynomial intra-coding mode is being used; and encode the quantized qr parameters. Bl'. A method for encoding an image, wherein the method comprises: Determine the r parameters of a polynomial model i ouo based on the model parameters of an adjacent block; quantize the r parameters into quantized qr parameters; and encode a signal indicating that an intra-polynomial coding mode is being used. Bl'a. The method of modality B1', which also includes encoding the quantified parameters qr. B2. The method of any of the modalities B1, B1' and B1'a, wherein the sample source x comprises samples immediately above and / or to the left of block x'. B3. The method of any of the modalities B1B2, where encoding the quantified parameters qr comprises: predict rPred parameters based on samples immediately above and / or to the left of block x'; determine a delta value for each component i of qr based on a difference between the quantized parameters qr(i) and the predicted parameters rPred(i); and encode the delta value. Cl. A method for decoding an image, wherein the method comprises: decode a signal indicating that a polynomial intra-coding mode is being used; In response to the signal, decode the quantized parameters i ouo qr; inversely quantize the quantized parameters qr into unquantized parameters r'; Derive a prediction block x' based on the unquantized parameters r' and a basis matrix B. Cl'. A method for decoding an image, wherein the method comprises: decode a signal indicating that a polynomial intra-coding mode is being used; In response to the signal, determine the r' parameters of a polynomial model based on the model parameters of an adjacent block; Derive a prediction block x' based on the unquantized parameters r' and a basis matrix B. DI. A method for adjusting a quantified parameter, wherein the method comprises: determine that a block in an image is smooth; determine that the quantized parameter (QP) would reduce the quality of the block after compression; and as a result of determining that the block in the image is smooth and determining that the QP would reduce the quality of the block after compression, decrease the QP of the block so that it is encoded with higher quality. D2. The DI modality method, where determining whether a block in an image is smooth comprises: ML / a / ZUZO / UI 1 ÓUO determine parameters for a model based on low frequency basis functions; predict predicted samples with the determined parameters; Compare the predicted samples with source samples from the block to determine an error; and determine that the error is below a threshold. D3. The method of modality D2, wherein the low-frequency basis functions comprise polynomial functions, and wherein comparing the predicted block with source samples to determine an error comprises calculating one or more of a sum of absolute differences (SAD) value and a sum of squared differences (SSD) value for the differences between the block's source samples and the predicted samples. D4. The method of any of the D2D3 modalities, where decreasing the QP for the block in such a way that it is coded with higher quality comprises determining the decrease of the QP based on a linear model such that the decrease is greater for higher QPs and that there is no decrease of the QP below a specific value. D4' . The method of modality D4, where the decrease of QP is determined by min(0, QPscale*QP+QPoffset), where QPscale and QPoffset are i ouo parameters . D4''. The method of either of the D4 and D4' modalities, where the decrease of QP is limited by a limit value. D4' ' . The method of modality D4, where the decrease of QP is determined by max(QPlimit, min(0,QPscale*QP+QPoffset) ) , where QPscale, QPoffset and QPlimit are parameters. D5. The method of any of the modalities D1D4, D4', D4'' and D4' ' ', which further comprises determining that the image is an intra-coded image type, and wherein decreasing the quantized parameter (QP) for the block so that it is coded with higher quality is carried out as a result of determining that the image is an intra-coded image type. D6. The method of any of the modalities D1D4, D4', D4'' and D4''', further comprising determining that the image has a sequence number (e.g., picture order count (POC)) within a sequence of images that is a multiple of a value M, and wherein the reduction of the quantized parameter (QP) for the block so that it is encoded with higher quality is carried out as a result of determining that the image has a sequence number that is a multiple of M. D7. The method of modality D6, where M is iviA / a / zuzo / ui ί ouo one of 2, 4, 8, 16 and 32. D8. The method of any of the DlD7 modalities, where determining that a block in an image is smooth is based on information at a subblock granularity level. The. A method for unlocking, where the method comprises: determine that a block in an image is smooth; and as a result of determining that the block in the image is smooth, modify samples in the block. E2. The modality method, where determining whether a block in an image is smooth comprises: determine parameters for a model based on low-frequency basis functions; predict predicted samples with the determined parameters; Compare the predicted samples with source samples from the block to determine an error; and determine that the error is below a threshold. E3. The method of modality E2, wherein the low-frequency basis functions comprise polynomial functions, and wherein comparing the predicted block with source samples to determine an error comprises calculating one or more of a sum of absolute differences (SAD) value and a sum of squared differences (SSD) value for the differences between the block's source samples and the predicted samples. E4. The method of any of the modalities E2E3, where the modification of samples in the block is based on a polynomial model. A computer program comprising instructions that, when executed by a node's processing circuits, cause the node to carry out the method of any of the following modalities: A1-A9, B1-B3, C1, C1', D1-D7, and E1-E4. F2. A carrier containing the computer program of mode F1, wherein the carrier is an electronic signal, an optical signal, a radio signal, and a computer-readable storage medium. G1. An encoder, wherein the encoder comprises: processing circuits; and a memory, the memory contains instructions executable by the processing circuit, by which the encoder is configured to carry out the method of any of the modalities A1-A9, B1-B3, D1-D7 and E1-E4. G2. A decoder, wherein the iviA / a / zu¿ó / u ι i óuo decoder comprises: processing circuits; and a memory, the memory contains instructions executable by the processing circuit, by which the decoder is configured to carry out the method of any of the modalities A1-A9, Cl, C1' and ElE4. H1. An encoder configured to create a soft sample prediction block in an image, wherein the encoder is further configured to: Determine the parameters r of a polynomial model by r = (BTB)-1* (BT*x) , where B is a basis matrix and x is a source of samples in vector form; and predict a block x' based on the parameters r and the basis matrix B. H2. The encoder of modality H1, wherein the encoder is further configured to carry out the method of any of modalities A2-A9. II. An encoder configured to encode an image, wherein the encoder is further configured to: predict samples in an image according to any of the modalities A1-A9; quantify the r parameters into quantized qr parameters; encode a signal indicating that a polynomial intra-coding mode is being used; and encode the quantized parameters qr. II'. An encoder configured to encode an image, wherein the encoder is further configured to: determine the r parameters of a polynomial model based on the model parameters of an adjacent block; quantize the r parameters into quantized qr parameters; and encode a signal indicating that a polynomial intra-coding mode is being used 12. The encoder of any of modalities II and II', wherein the encoder is further configured to carry out the method of any of modalities B2-B3. J1. An encoder configured to adjust a quantized parameter, wherein the encoder is further configured to: determine that a block in an image is smooth; determine that the quantized parameter (QP) would reduce the quality of the block after compression; and as a result of determining that the block in the image is smooth and determining that the QP would reduce the quality of the block after compression, decrease the QP of the block so that it is encoded with higher quality. J2. The J1 modality encoder, wherein the encoder is further configured to carry out the i ouo method of any of the D2-D7 modalities. K1. An encoder configured to unlock, wherein the encoder is further configured to: determine that a block in an image is smooth; and as a result of determining that the block in the image is smooth, modify the samples in the block. K2. The encoder of the KI modality, wherein the encoder is further configured to carry out the method of any of the modalities E2-E4. 1. A decoder configured to create a soft sample prediction block on an image, wherein the decoder is further configured to: Determine the parameters r of a polynomial model by r = (BTB)-1* (BT*x) , where B is a basis matrix and x is a source of samples in vector form; and predict a block x' based on the parameters r and the basis matrix B. L2. The Ll mode decoder, wherein the decoder is further configured to carry out the method of any of the A2-A9 modes. MI. A decoder configured to decode an image, wherein the decoder is further configured to: decode a signal indicating that a polynomial intra-coding mode is being used; iviA / a / zu¿ó / u ι i óuo in response to the signal, decode the quantized parameters qr; inversely quantize the quantized parameters qr into unquantized parameters r'; Derive a prediction block x' based on the unquantized parameters r' and a basis matrix B. MI'. A decoder configured to decode an image, wherein the decoder is further configured to: decode a signal indicating that a polynomial intra-coding mode is being used; In response to the signal, determine the r' parameters of a polynomial model based on the model parameters of an adjacent block; Derive a prediction block x' based on the unquantized parameters r' and a basis matrix B. NI. A decoder configured to unlock, wherein the decoder is further configured to: determine that a block in an image is smooth; and as a result of determining that the block in the image is smooth, modify the samples in the block. N2. The decoder of the Kl mode, wherein the decoder is further configured to carry out the method of any of the E2-E4 modes.

[00131] Although various embodiments are described herein, it should be understood that they are presented by way of example only and not as a limitation. Therefore, the scope and extent of this invention shall not be limited by any of the exemplary embodiments described above. Furthermore, any combination of the elements described above in all their possible variations is encompassed by the invention unless otherwise stated herein or clearly contradicted by the context.

[00132] Furthermore, although the processes described above and illustrated in the drawings are shown as a sequence of steps, this was done for illustrative purposes only. Consequently, it is contemplated that some steps may be added, some steps may be omitted, the order of the steps may be rearranged, and some steps may be carried out in parallel.

Claims

1. A method for elaborating a soft prediction block of samples in an image in an image or video encoder or decoder, wherein the method comprises: determining the parameters r of a polynomial model by r = (BTB)-1* (BT*x) , wherein B is a basis matrix and x is a source of samples in vector form; and predicting a block x' based on the parameters r and the basis matrix B.

2. The method according to claim 1, wherein the soft prediction block x' comprises x' = Σι [ r(i)*b(i) ], wherein r(i) refers to the i-th component of r(i), b(i) refers to the i-th basis vector of B, and the sum is taken over the number of basis vectors in B.

3. The method according to claim 1, wherein the soft prediction block x' comprises x' = (Σ±[ r(i)*b(i) ] + 2N-!) » N, wherein N is a scaling factor, r(i) refers to the i-th component of r(i), b(i) refers to the i-th basis vector of B, and the sum is taken over the number of basis vectors in B.

4. The method according to any of claims 1-3, wherein the mean of each basis vector b(i) in B is removed such that b(i) := b(i) - mean (b(i) ) .

5. The method according to any of claims 1-4, wherein B includes at least three bases B = { bl, b2, b3}, wherein bl = {1, 1, 1, . . , 1}T, b2 = { 0,1, ..Ml,.., 0, 1, . . ,M}T, and b3 = {0,..,0,1,..,1, M-1, . .,M-1}-, wherein M is equal to the height of the block.

6. The method according to claim 5, wherein B further includes bases (b4, b5, b6) such that B={ bl, b2, b3, b4, b5, b6}, wherein b4 = {0,.., 0, 1,2, . .Ml, . . , Ml, 2*M-1,.., (Ml)*(Ml)}, b5 = {0,1,4,.., (Ml) * (Ml) , . . , 0, 1, 4, . . , (Ml) * (Ml)} and b6 = {0,..,0, 1,., 1, 4,.., 4,.., (Ml)*(Ml)}.

7. The method in accordance with any of claims 1-6, wherein (BTB)-1 is pre-calculated.

8. The method according to any of claims 1-7, wherein the sample source x is determined by taking a subset of samples (e.g., one out of every two samples horizontally and vertically).

9. The method according to any of claims 1 to 8, wherein each basis vector b(i) in B is taken in sample positions that are multiples of two.

10. The method in accordance with any of claims 1 to 9, wherein the block height (M) is equal to the maximum transformation size used in the image or video encoder / decoder.

11. A method for adjusting a quantized parameter, wherein the method comprises: determining that a block in an image is smooth; determining that the quantized parameter (QP) would reduce the quality of the block after compression; and as a result of determining that the block in the image is smooth and determining that the QP would reduce the quality of the block after compression, decreasing the QP of the block so that it is encoded with higher quality.

12. The method according to claim 11, wherein determining that a block in an image is smooth comprises: determining parameters for a model based on low-frequency basis functions; predicting predicted samples with the determined parameters; comparing the predicted samples with source samples of the block to determine an error; and determining that the error is below a threshold.

13. The method according to claim 12, wherein the low-frequency basis functions comprise polynomial functions, and wherein comparing the predicted block with source samples to determine an error comprises calculating one or more sum of absolute differences (SAD) values ​​and a sum of squared differences (SSD) value for the differences between the block's source samples and the predicted samples.

14. The method according to any of claims 12-13, wherein decreasing the QP for the block so that it is coded with higher quality comprises determining the QP decrease based on a linear model such that the decrease is greater for higher QPs and there is no QP decrease below a specified value.

15. The method according to claim 14, wherein the decrease of QP is determined by min(0,QPscale*QP+QPoffset) , wherein QPscale and QPoffset are parameters.

16. The method in accordance with any of claims 14-15, wherein the decrease in QP is limited by a limit value.

17. The method according to claim 14, wherein the decrease of QP is determined by max(QPlimit, min(0,QPscale*QP+QPoffset)), wherein QPscale, QPoffset and QPlimit are parameters.

18. The method according to any of claims 11-17, further comprising determining that the image is an intra-coded image type, and wherein decreasing the quantized parameter (QP) for the block so that it is encoded with higher quality is carried out as a result of determining that the image is an intra-coded image type.

19. The method according to any of claims 11-17, further comprising determining that the image has a sequence number (e.g., image order count (POC)) within a sequence of images that is a multiple of a value M, and wherein decreasing the quantized parameter (QP) of the block so that it is encoded with higher quality is carried out as a result of determining that the image has a sequence number that is a multiple of M.

20. The method according to claim 19, wherein M is one of 2, 4, 8, 16 and 32.

21. The method according to any of claims 11-20, wherein determining that a block in an image is smooth is based on information at a subblock granularity level.

22. A computer program comprising instructions that, when executed by the processing circuits of a node, cause the node to carry out the method according to any one of claims 1 to 21.

23. A carrier containing the computer program according to claim 22, wherein the carrier is an electronic signal, an optical signal, a radio signal, and a computer-readable storage medium.

24. An encoder, wherein the encoder comprises: processing circuits; and a memory, the memory containing instructions executable by the processing circuit, whereby the encoder is configured to carry out the method in accordance with any one of claims 1 to 21.

25. A decoder, wherein the decoder comprises: processing circuits; and a memory, the memory containing instructions executable by the processing circuit, whereby the decoder is configured to carry out the method in accordance with any one of claims 1 to 10.

26. An encoder configured to create a soft prediction block of samples in an image, wherein the encoder is further configured to: determine the parameters r of a polynomial model by r = (BTB)(BT*x) , wherein B is a basis matrix and x is a sample source in vector form; and predict a block x' based on the parameters r and the basis matrix B.

27. The encoder according to claim 26, wherein the encoder is further configured to carry out the method according to any of claims 2-10.

28. An encoder configured to adjust a quantized parameter, wherein the encoder is further configured to: determine that a block in an image is smooth; determine that the quantized parameter (QP) would reduce the quality of the block after compression; and as a result of determining that the block in the image is smooth and determining that the QP would reduce the quality of the block after compression, decrease the QP of the block so that it is encoded with higher quality.

29. The encoder according to claim 28, wherein the encoder is further configured to carry out the method according to any of claims 12-21.

30. A decoder configured to create a soft sample prediction block in an image, wherein the decoder is further configured to: determine the parameters r of a polynomial model by r = (BTB)-1* (BT*x) , wherein B is a basis matrix and x is a sample source in vector form; and predict a block x' based on the parameters r and the basis matrix B.

31. The decoder according to claim 30, wherein the decoder is further configured to carry out the method according to any of claims 2-10.