Smooth Surface Prediction

JP7708876B2Active Publication Date: 2025-07-15TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2023560446
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-03-31
Filing Date
2022-03-30
Publication Date
2025-07-15
Estimated Expiration
2042-03-30

AI Technical Summary

Technical Problem

Current video coding standards struggle with accurately representing smooth surfaces, leading to unnecessary overhead and subjective quality degradation in high-definition and high dynamic range (HDR) video, particularly in areas with simple signals, due to inefficient transform coefficients and intra prediction methods.

Method used

Implement a polynomial model-based smooth surface prediction and adaptive quantization parameter (QP) adjustment for blocks identified as smooth, using a low-order polynomial model to enhance prediction accuracy and reduce QP for improved encoding quality.

Benefits of technology

Significantly improves visual quality in HDR video by reducing unnecessary overhead and enhancing subjective quality in smooth regions, especially for empty areas, with minimal bitrate impact.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007708876000006
    Figure 0007708876000006
  • Figure 0007708876000007
    Figure 0007708876000007
  • Figure 0007708876000008
    Figure 0007708876000008
Patent Text Reader

Abstract

A method is provided for creating a smooth prediction block of samples in a picture in an image or video encoder or decoder. The method comprises: T B) -1 *(B T *x), where B is a base matrix and x is a source of samples in vector form. The method includes predicting block x' based on the parameters r and the base matrix B.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the coding and decoding of video sequences and / or still images, and more particularly, to smooth surface prediction.

Background Art

[0002] A video sequence includes one or more images (also referred to herein as "pictures"). When viewed on a screen, an image has pixels, and each pixel generally has red, green, and blue (RGB) values. However, when coding and decoding a video sequence, the image is often not represented using RGB, but generally, without limitation, using another color space including YCbCr, ICTCP, non-uniform luminance YCbCr, and uniform luminance YCbCr. Taking the example of non-uniform luminance YCbCr, which is the currently most used representation, it consists of three components, namely, Y, Cb, and Cr. Y, which is called luma and roughly represents luminance, is of full resolution, while the other two components, called chroma, namely, Cb and Cr, are often of a smaller resolution. A common example is a high-definition (HD) video sequence including 1920×1080 RGB pixels, which is often represented by a Y component of 1920×1080 resolution, a Cb component of 960×540, and a Cr component of 960×540. The elements in a component are called samples. In the above example, therefore, there are 1920×1080 samples in the Y component, and therefore, there is a direct relationship between the samples and the pixels. Therefore, in this specification, the terms pixel and sample may be used interchangeably. In the case of the Cb component and the Cr component, there is no direct relationship between the samples and the pixels, and a single Cb sample generally affects several pixels.

[0003] (Also referred to herein as “VVC”) In the Versatile Video Coding (VVC) standard developed by the Joint Video Expert Team (JVET), video decoding is performed in two stages, namely, predictive coding and loop filter processing. In the predictive decoding stage, samples of components (Y, Cb, and Cr) are partitioned into rectangular blocks. As an example, one block can be of samples of size 4×8, while another block can be of samples of size 64×64. The decoder obtains instructions on how to obtain a prediction for each block, for example, to copy samples from a previously decoded picture (example of temporal prediction), or to copy samples from a previously decoded portion of the current picture (example of intra prediction), or for a combination thereof. To improve this prediction, the decoder can obtain the residual, which is 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. Transform is widely used to remove spatial redundancy from prediction errors from intra-picture and inter-picture prediction in video coding. The transform size has increased with the advancement of video coding standards. In H.264, the maximum transform size is 16×16, in HEVC, the maximum transform size is 32×32, and in VVC, i.e., the latest MPEG / ITU video coding standard, the maximum transform size is 64×64. In VVC, also, a second-order low-frequency non-separable transform (LFNST) can be applied after a separable DCT / DST-based transform. It has been shown that in work beyond version 1 of VVC, the increase in transform size can provide further gains in coding efficiency. Future standards will probably use even larger transform sizes.

[0004] The output from the prediction decoding stage consists of three components Y, Cb, and Cr. However, it is possible to further improve the fidelity of these components, which is done in the loop filter processing stage. The loop filter processing stage in VVC consists of three sub-stages, namely the deblocking filter stage, the sample adaptive offset (SAO) filter sub-stage, and the adaptive loop filter (ALF) sub-stage. In the deblocking filter sub-stage, the decoder changes Y, Cb, and Cr by smoothing the edges near the block boundaries when some conditions are met. This increases the perceptual quality (subjective quality) because the human visual system is very good at detecting regular edges such as block artifacts along the block boundaries. In the SAO sub-stage, the decoder adds or subtracts the signaled value to samples that meet some conditions, such as being within a certain value range (band offset SAO) or having a specific neighborhood (edge offset SAO). This can reduce ringing noise because such noise often aggregates within a certain value range or in a specific neighborhood (e.g., at the maximum value). The reconstructed image components that are the result of this stage are denoted as YSAO, CbSAO, CrSAO.

[0005] Video coding standards that can be well implemented include efficient intra prediction to allow for a small amount of prediction error at a small bit cost. For that purpose, intra prediction in HEVC and VVC has many modes that can extrapolate the texture from neighboring previously coded samples. They can provide good prediction of the DC, planar, and line of the current block to be coded.

[0006] To adapt video coding for good subjective video quality, an adaptive quantization parameter (QP) of the transform coefficients is developed. One exemplary adaptive QP method is to derive the variance of a block, give a low QP to blocks with low variance, and give a higher QP to blocks with high variance. This enables better accuracy for smooth blocks than for blocks with many details. This results in a more efficient use of bits, where bits are most important.

[0007] Haralic introduced a facet model for image data in his 1981 paper form used for image restoration. Polynomial models or facet models are parametric representations of samples that use polynomials. A first-order model can be described by f(x, y) = r0 + r1*x + r2*y, where r0 to r2 are coefficients that control how much the samples by the model depend on a constant (r0), a horizontal slope x (r1), and a vertical slope y (r2). Polynomials are also used for interpolation in image and video coding. Summary of the Invention

[0008] In the current video coding standard, the transform is excellent at compressing prediction errors, but when faced with smooth source samples beyond DC or in low-quality settings that produce a representation of the transform coefficients that is too coarse to allow for an accurate representation of smooth source samples, i.e., when faced with simple signals, the transform in the current video coding standard tends to add unnecessary overhead. Intra prediction in the current standard bases the prediction on samples outside the current block, which makes the prediction sensitive to coding artifacts from the coding of previous coding blocks. Adaptive quantization parameter (QP) methods generally prefer blocks with source samples close to a constant value (DC) rather than generally preferring smooth blocks.

[0009] Embodiments can be used in an encoder to improve current and future standards. For example, embodiments can be used to detect blocks with smooth surfaces and use high-quality settings for those blocks (using quantization parameters (QPs) that are low enough for quantization of transform coefficients). Embodiments can also be used to introduce intra prediction based on a low-frequency model of source samples, such as a low polynomial model, to enable accurate prediction of smooth source samples, such as smooth surfaces. Embodiments may be used as part of the deblocking of large blocks, where the low polynomial model is adapted to the reconstructed samples. Embodiments may generally be used for encoding using adaptive QP, where larger QPs are given to blocks with higher variance from smooth surfaces and smaller QPs are given to blocks with smaller variance from smooth surfaces.

[0010] Embodiments can significantly improve the visual quality of HDR video, especially for empty regions and when quality settings become more difficult. This corresponds to QPs greater than about 27 in the case of VVC and HEVC.

[0011] According to a first aspect, a method is provided for creating a smooth prediction block of samples in a picture in an image or video encoder or decoder. The method includes determining a parameter r of a polynomial model by r = (B T B) -1 *(B T *x), where B is a base matrix and x is a source of samples in vector form. The method includes predicting a block x' based on the parameter r and the base matrix B.

[0012] In some embodiments, the smooth prediction block x' is x' = Σ iComprising [r(i)*b(i)], where r(i) refers to the i-th component of r and b(i) refers to the i-th basis vector of B, and the sum is taken over some basis vectors in B. In some embodiments, the smooth prediction block x' is x'=(Σ i [r(i)*b(i)] + 2 N-1 )>>N, where N is a scaling factor, r(i) refers to the i-th component of r, b(i) refers to the i-th basis vector of B, and the sum is taken over some basis vectors in B. In some embodiments, for each basis vector b(i) in B, its average is removed, such as b(i):=b(i) - average(b(i)). In some embodiments, B includes at least three bases B={b1, b2, b3}, where b1={1, 1, 1,.., 1} T , b2={0, 1,..M - 1,.., 0, 1,.., M} T , and b3={0,.., 0, 1,.., 1, M - 1,.., M - 1}, T where M is equal to the height of the block. In some embodiments, B further includes bases (b4, b5, b6) such that B={b1, b2, b3, b4, b5, b6}, where b4={0,.., 0, 1, 2,..M - 1,.., M - 1, 2*M - 1,.., (M - 1)*(M - 1)}, b5={0, 1, 4,.., (M - 1)*(M - 1),.., 0, 1, 4,.., (M - 1)*(M - 1)} and b6={0,.., 0, 1,.., 1, 4,.., 4,.., (M - 1)*(M - 1)}.

[0013] In some embodiments, (B T B) -1 is pre-computed. In some embodiments, the source x of the samples is determined by taking a subset of the samples (e.g., every 1 sample horizontally and vertically). In some embodiments, each basis vector b(i) in B is taken at sample positions that are multiples of 2. In some embodiments, the height (M) of the block is equal to the maximum transformation size used in an image or video encoder / decoder.

[0014] According to a second aspect, a method for adjusting quantization parameters is provided. The method includes determining that a block in an image is smooth. The method includes determining that a quantization parameter (QP) reduces the quality of the block after compression. The method includes reducing the QP for the block such that the block is encoded with higher quality, as a result of determining that the block in the image is smooth and determining that the QP reduces the quality of the block after compression.

[0015] In some embodiments, determining that a block in an image is smooth comprises determining parameters for a model based on a low-frequency basis function, predicting prediction samples using the determined parameters, comparing the prediction samples to source samples of the block to determine an error, and determining that the error is below a threshold. In some embodiments, the low-frequency basis function includes a polynomial function, and comparing the predicted block to the source sample to determine the error comprises calculating one or more of a sum of absolute differences (SAD) value and a sum of squared differences (SSD) value for the difference between the source sample of the block and the prediction sample. In some embodiments, reducing the QP for the block such that the block is encoded with higher quality comprises determining the reduction of the QP based on a linear model such that the reduction is greater for higher QPs and there is no reduction of the QP below a specified value.

[0016] In some embodiments, the reduction of QP is determined by min(0, QPscale * QP + QPoffset), where QPscale and QPoffset are parameters. In some embodiments, the reduction of QP is limited by a limit value. In some embodiments, the reduction of QP is determined by max(QPlimit, min(0, QPscale * QP + QPoffset)), where QPscale, QPoffset, and QPlimit are parameters. In some embodiments, the method further includes determining that the image is an intra-coded picture type, wherein reducing the quantization parameter (QP) for a block so that the block is coded with higher quality is performed as a result of determining that the image is an intra-coded picture type. In some embodiments, the method further includes 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, wherein reducing the quantization parameter (QP) for a block so that the block is coded with higher quality is performed as a result of determining that the image has a sequence number that is a multiple of M. In some embodiments, M is one of 2, 4, 8, 16, and 32. In some embodiments, determining that a block in an image is smooth is based on information at a sub-block level of granularity.

[0017] According to a third aspect, there is provided a computer program comprising instructions that, when executed by a processing circuit of a node, cause the node to perform the method according to any one of the embodiments of the first and second aspects.

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

[0019] According to a fifth aspect, an encoder is provided. The encoder includes a processing circuit. The encoder includes a memory, and the memory contains instructions executable by the processing circuit. When the instructions are executed, the encoder is configured to implement the method according to any one of the embodiments of the first and second aspects.

[0020] According to a sixth aspect, a decoder is provided. The decoder includes a processing circuit. The decoder includes a memory, and the memory contains instructions executable by the processing circuit. When the instructions are executed, the decoder is configured to implement the method according to any one of the embodiments of the first aspect.

[0021] According to a seventh aspect, an encoder is provided that is configured to create a smooth prediction block of samples in a picture. The encoder is configured to determine a parameter r of a polynomial model by r = (B T B) -1 *(B T *x), where B is a base matrix and x is a source of samples in vector form, and is configured to determine the parameter r. The encoder is configured to predict a block x' based on the parameter r and the base matrix B.

[0022] According to an eighth aspect, an encoder is provided that is configured to adjust quantization parameters. The encoder is configured to determine that a block in an image is smooth. The encoder is configured to determine that a quantization parameter (QP) reduces the quality of the block after compression. As a result of determining that a block in the image is smooth and that the QP reduces the quality of the block after compression, the encoder is configured to decrease the QP for the block so that the block is encoded with higher quality.

[0023] According to a ninth aspect, a decoder is provided that is configured to create a smooth prediction block of samples in a picture. The decoder is such that r = (B T B) -1*(B T *x) to determine the parameter r of the polynomial model, where B is the base matrix and x is the source of the samples in vector form, and is set to determine the parameter r. The decoder is set to predict the block x' based on the parameter r and the base matrix B.

[0024] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate various embodiments.

Brief Description of the Drawings

[0025]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Modes for Carrying Out the Invention

[0026] One aspect of some embodiments is to provide an adaptation of quantization parameter (QP) for blocks determined to be very simple to encode. The adaptation may be performed according to a linear model based on picture QP such that the block QP is further reduced for larger picture QP than for smaller picture QP. Another aspect of some embodiments is to determine a low-order polynomial model to enable a smooth representation of source samples. The model may be used as part of video encoding or as an alternative intra prediction method to determine whether a block is simple to encode. Another aspect of some embodiments is to determine a low-order polynomial model to enable a smooth representation of reconstructed samples as part of loop filter processing (deblocking) in image or video coding.

[0027] Embodiments are applicable to image and video coding. Embodiments may be incorporated only into an encoder (or a part of the encoder) and may use current codec standards or future codec standards. Embodiments may be incorporated into both an encoder and a decoder (or parts thereof) and may use future codec standards. An exemplary encoder is shown in FIG. 1 and an exemplary decoder is shown in FIG. 2. Other in-loop tools may be performed before or after deblocking, but other in-loop filters are not included in FIGS. 1 and 2.

[0028] Embodiment 1 Based on the samples of a block, a smooth representation of the block can be obtained by a polynomial model, i.e., smooth surface prediction. FIGS. 3A and 3B show examples of blocks. In FIG. 3A, the image is divided into four blocks, and in FIG. 3B, the image is divided into sixteen blocks. Subsequently, an example of how a polynomial model of degree 1 (in other words, having bases 1, x, and y) can be derived will be described. x 2 , y 2Additional basis functions such as xy may also be used. The basis functions are b1 equal to 1 (a constant value), b2 equal to x (the slope in the horizontal direction), and b3 equal to y (the slope in the vertical direction). To simplify the illustration, the example here uses a 2×2 block size in vector form, where the first two samples of the vector correspond to the first row of the block and the second two samples correspond to the second row of the block. Also, to reduce the magnitude of the basis functions, the mean value is removed. Thus, the basis is b1’ = {1, 1, 1, 1} T , b2’ = {1, 2, 1, 2} T , b3’ = {1, 1, 2, 2} T b1 = b1’, b2 = b2’ - mean(b2’), b3 = b3’ - mean(b3’) is given by.

[0029] Next, the basis functions can be put into a matrix B (with the basis functions as columns), so that B = {b1, b2, b3}.

[0030] Next, the parameters of the model are r = (B T B) -1 *(B T *x) and can be determined, where x is the source sample of the block in vector form.

[0031] Next, the predicted block x’ based on the determined parameters and basis functions is x’ = r(0) + r(1)*b2 + r(2)*b3 and can be derived.

[0032] (B T B) -1 is determined by the basis functions and not by the source samples, so (B T B) -1can be calculated in advance. Using the pre-calculated inverse matrix, it is easy to determine the model parameters even when more basis functions than b1, b2, and b3 are used. Generally, more basis functions can be used to model higher-order polynomials. Mean removal from the basis functions (e.g., from b2 and b3 as shown above) helps to avoid extremely small numbers after the inverse of B T and can be more efficient especially for larger block sizes. Mean removal in this example of basis functions also gives orthogonal basis functions, which results in non-zero elements only on the diagonal of (B T B) -1 . This generally does not hold for higher-order polynomials.

[0033] (B T B) -1 is of size that depends on the number of basis functions used. The dimension is nBase×nBase, where nBase is the number of basis functions.

[0034] Embodiment 2 Different techniques can be used to reduce the complexity of Embodiment 1.

[0035] One technique for reducing complexity is to reduce the number of samples on which the model is determined. Additionally, the number of samples on which the model is tested can be reduced. The reduction in the number of samples can be achieved by having a sparse sampling grid. For example, by determining and testing every other sample horizontally and every other sample vertically, the complexity can be reduced by a factor of 4. Other sparse sampling techniques can also be used.

[0036] The basis functions can also be taken at sample positions that are multiples of 2 to enable the use of shifts instead of multiplications. That is, 1(2 0 ), 2(2 1 ), 4(2 2 ), 8(23 )、16(2 4 )、and 32(2 5 ) respectively correspond to (1<<0)(1<<1), (1<<2), (1<<3), (1<<4), (1<<5), etc., where << represents the left shift operation.

[0037] The complexity is x’=(r(0)+r(1)*b2+r(2)*b3+2 N-1 )>>N etc., can also be reduced by performing predictions in fixed-point arithmetic, where N is a scaling factor.

[0038] Embodiment 3 (Intra Prediction) The techniques in Embodiments 1 - 2 can be used as a smooth intra prediction mode in video or image coding for block prediction. For example, FIG. 4A shows a block to be intra predicted, and FIG. 4B shows the block to be intra predicted together with reference samples above the horizontal block boundary and to the left of the vertical block boundary. The input samples for the block can, in this case, be the source samples before coding. To obtain a better match between the block prediction and the previously reconstructed samples outside the block (e.g., the shown reference samples), the input samples can also include the reconstructed samples. These reference samples can include, as shown in FIG. 4B, the row of samples above the block and the column of samples to the left of the block. One example is having 4 columns above the current block and 4 rows to the left of the current block, but different reference samples may be selected.

[0039] On the encoder side, the model parameters can be quantized and entropy-coded. The encoder can also signal a flag that enables / disables a mode on the decoder side. That is, the flag can notify the decoder as to whether the techniques in Embodiments 1-2 are being used as a smooth intra prediction mode. When the enable flag is received on the decoder side, the decoder can perform inverse entropy-coding and inverse quantization of the model parameters and then derive prediction blocks based thereon.

[0040] Such general values to be maintained as part of quantization are for the slope parameters (x and y) that are less than the magnitude of 1. The parameters for the quadratic basis functions are generally less than the magnitude of 0.1. For 10-bit video, the DC parameter can have 10 bits in the range from 0 to 1023, for example, the first-order parameters can be represented using 11 bits after multiplication by a floating-point value with 1024, and thus the range is from -1024 to 1024, for example, 11 bits, and (if used) the second-order parameters can be represented using 12 bits after multiplication by 2048, and thus the range is -2048 to +2048. Higher-order parameters can be represented similarly.

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

[0042] For example, the prediction of the DC parameter can be derived from the average of the samples immediately above and to the left of the current block. x or x 2 The prediction of the parameters for the basis functions can be estimated based on the samples immediately above the current block. y or y 2The prediction of the parameters for the basis function can be estimated based on the samples immediately to the left of the current block. In this case, the parameters for the xy basis function are not predicted. If the several rows above and several columns to the left are available as reference samples, the prediction of all parameters can be based on the samples from those rows and columns.

[0043] In some embodiments, the parameters are directly encoded. In some embodiments, only the delta values of the parameters need to be encoded, 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 in 10 bits including a sign, i.e., in the range between -512 and 512. The first-order parameter can be represented using 10 bits including a sign, i.e., in the range between -512 and 512. The second-order parameter can be represented using 10 bits including a sign, i.e., in the range between -512 and 512. The quantization value to be encoded is, hereinafter, i.e., rQ[n]=int(S[n]*(r[n]-rPred[n])+0.5), rQ[3]=int(S[3]*r[3])+0.5), can be determined as such, where rQ[3] is calculated separately if only one row above or one column to the left is available, otherwise rQ[3] can be calculated as in the case of the general rQ[n] formula above. In the formula here, 0 <= n < nBases (where here nBases = 6), and S[n] is the scale factor used for quantization, for example S[0]=1, S[1]=S[2]=S[4]=S[5]=512, S[3]=2048.

[0044] Then, after encoding the quantization parameters (e.g., entropy encoding), the decoder is, hereinafter, i.e., r’[n]=rPred[n]+(rQ[n]+S[n] / 2) / S[n] or, for example, in shift notation where log2 can be pre-calculated, such as 1 when S[n]=2, 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] The inverse quantization parameter can be derived as follows. In this case, r’[0] is calculated separately. Also, r’[3] is calculated separately if only one row above or one column to the left is available, otherwise r’[3] can be calculated as in the case of the general r’[n] formula above.

[0045] Based on the quantization parameters obtained in the decoder, the prediction block is as follows, i.e., For x = 0 to W For y = 0 to H X’(x, y) = r’[0] + r’[1] * (x - m[1]) + r’[2] * (y - m[2]) + r’[3] * (x * y - m[3]) + r’[4] * (x * x - m[4]) + r’[5] * (y * y - m[5]); End End Here, 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, and m[5] is the average of all y * y. As such, in order to derive the predicted block, it can be derived by multiplying the model parameters with their respective basis functions at each position inside the block.

[0046] In the above determination of the prediction block, floating-point calculations are used. In some embodiments, the calculations assume a constant scale factor F for all non-DC parameters, i.e., For x = 0 to W For y = 0 to H X’(x, y) = r’[0] + (F * r’[1] * (x - m[1]) + F * r’[2] * (y - m[2]) + F * r’[3] * (x * y - m[3]) + F * r’[4] * (x * x - m[4]) + F * r’[5] * (y * y - m[5]) + F >> 1) >> log2(F); It can be performed in fixed-point like EndEnd.

[0047] To obtain an alternative prediction of the model parameters of the block to be reconstructed, samples from the row above the block and the column to the left of the block can be used (as shown, for example, in FIG. 4B). An example is having 4 columns above the current block and 4 rows to the left of the current block.

[0048] When an adjacent block is intra-predicted by a polynomial model, the model parameters of the current block can be predicted from the adjacent block. The adjacent block can be the block to the left of the current block or the block above the current block. The DC parameter for the adjacent model is preferably centered in the current block before it is used for prediction. For example, if the neighboring block is to the left of the current block, has a size of 64×64, and the current block has a size of 64×64, the DC parameter (constant basis function) of the neighboring block (rNb[0]) needs to be updated according to its x-basis (rNb[1]), y-basis (rNb[2]), xy-basis (rNb[3]), x rNb’[0] = rNb[0] + rNb[1] * 64 + rNb[2] * 0 + rNb[3] * 64 * 0 + rNb[4] * 64 * 64 + rNb[5] * 0 * 0 as its x-basis (rNb[1]), y-basis (rNb[2]), xy-basis (rNb[3]), x 2 basis (rNb[4]), and y 2 basis (rNb[5]) functions for the quadratic model. As can be seen, only the basis functions in x and x 2 cause a shift in the horizontal direction. In some embodiments, higher-order coefficients (e.g., x 2 and y 2) can also be omitted from using the update from.

[0049] If neighboring blocks are above and aligned in x for the same block size, the DC update before its use is as follows, i.e., rNb’[0]=rNb[0]+rNb[1]*0+rNb[2]*64+rNb[3]*0*64+rNb[4]*0*0+rNb[5]*64*64 can be given as.

[0050] Non-DC parameters from neighboring blocks can be used directly.

[0051] The alternative operation mode is for the encoder to only indicate the use of the model, and then for the decoder to derive the decoder-side model parameters based on the neighboring reconstructed samples outside the block. In this case, the model parameters do not need to be signaled.

[0052] Embodiment 4 (Encoder control of QP) Based on the source samples, preferably noise - removed, of the block, an embodiment can determine how easy it is to encode the source samples. The ease can be determined by how well the low - frequency basis function can predict the samples of the block. One example of a low - frequency basis function is a low - order polynomial (e.g., a first - or second - order polynomial). How well the predicted samples match the source samples can be determined by an error metric, such as the sum of absolute differences (SAD) or the sum of squared differences (SSD). If the error by the error metric is below a predefined threshold, the block is considered easy to encode. Blocks determined to be easy to encode are encoded with better quality than other blocks. Better quality can be achieved by using finer quantization for those blocks, e.g., using a lower QP. Preferably, the block size should be around the maximum transform size or the maximum CU size, e.g., 64×64 / 128×128 in VVC or 32×32 / 64×64 in HEVC. Other sizes are also possible. In VVC and HEVC, the method can preferably be used for QPs greater than 27.

[0053] For example, the process may determine whether a large block is smooth, and if so, may encode the block with high quality. Determining whether a large block is smooth may proceed as follows. For samples of a large block (e.g., temporally filtered), based on the difference between the samples of the large block and the predicted samples based on a polynomial model, the parameters of the polynomial model may be determined, and an error (e.g., SAD or SSD value) may be calculated. If the error is less than a threshold, the large block is determined to be smooth. Encoding the block with high quality may proceed as follows. A delta QP value may be calculated based on a reference QP value and the parameters of a linear model, and the reference QP may be modified by adding the delta QP value. The modified reference QP may then be used to encode the block. In an embodiment, this process may proceed only if the picture is first determined to be an intra-coded picture and / or if the picture is a multiple of M (e.g., M = 2, 4, 8,...) within the sequence of pictures.

[0054] The error (SAD or SSD) is hereinafter, i.e., err = Σ i abs(x i - x i ’)[SAD] err = Σ i (x i - x i ’) 2 [SSD] calculated as the difference between the source and the predicted samples, where the sum is over the samples in the block, respectively.

[0055] If the error (err) is less than the threshold, the QP is reduced for the block. In some embodiments, the initial QP must be above the QP threshold (e.g., greater than 27), and thus reducing the QP may affect the picture quality. The threshold for the error (err) can be defined as the total number of samples in the block multiplied by a factor. One exemplary factor is 3, e.g., an average distortion of 3 per sample (for 10-bit video).

[0056] The application of QP reduction can preferably depend on the QP for the current picture such that the QP is reduced according to a linear model. One example is to use a QP correction determined by min(0, (offset + scale * QP)), where the offset and scale are parameters of the linear model, e.g., the offset is 27 and the scale is -1. In this case, for example, the QP is reduced by 16 when the QP is 43. Using a smaller magnitude of the scale parameter can result in a less aggressive QP change. Using a higher offset parameter causes the QP change to act on higher QPs.

[0057] The application of QP reduction can also depend on the type of the coded picture. For example, QP reduction can be applied only if it is an intra-coded picture, or only if it is an inter-coded picture, or a combination thereof. In some embodiments, QP reduction can be applied only at certain intervals, e.g., every second, fourth, eighth, sixteenth, or thirty-second frame, etc.

[0058] Embodiment 5 (Deblocking) The embodiments are also applicable to deblocking. Model parameters for a polynomial model can be determined based on the reconstructed samples of large coding blocks. A large coding block is generally of the same size as the maximum transform size. Examples of large coding block sizes are 64×64, 128×128 or 256×256. A large coding block is also generally a transform block. The model parameters for the large block can then be applied to derive a predicted block, which can be compared with the reconstructed samples to generate distortion or error according to an error metric. Examples of the metric are SAD or SSD. If the distortion is below a threshold, the coding block is considered smooth and has a risk of introducing block artifacts. The risk increases if adjacent blocks are also large coding blocks. The risk is significantly increased if the large block has non-zero transform coefficients. The risk and visibility of block artifacts also increase with the QP for blocks with a QP greater than the QP threshold (e.g., 27 in HEVC / VVC).

[0059] If it is determined that the current block and the upper neighboring block and the left neighboring block are smooth, the samples of the block can be modified to perform deblocking. The modification can be based on a polynomial model. In some embodiments, the modification of the samples can be performed only on the samples of the current block. The modification can also be separated into two passes, similar to state-of-the-art deblocking where vertical boundaries are deblocked before horizontal boundaries. The modification of the samples of the block can also be based on state-of-the-art deblocking such that a longer tap deblocking is introduced. For example, a longer tap filter can be used that can modify up to 1 / 2 of the width or height of the blocks on both sides of the block boundary of the large block.

[0060] The correction can also be split into two passes, similar to state-of-the-art deblocking, such that vertical block boundaries are processed before horizontal block boundaries. If the current block and the neighboring block above are determined to be smooth, the samples on the upper side of the block can be corrected based on a polynomial model. The purpose of the correction is to align the upper samples with the samples of the block above. Similarly, if the current block and the neighboring block to the left are determined to be smooth, the samples on the left side of the block can be corrected based on a polynomial model. The purpose of the correction is to align the left samples with the samples of the block to the left. The sample correction may be performed on both sides of the block boundary.

[0061] The polynomial model used to correct the samples of the current block is preferably based to some extent on the model parameters or samples of neighboring blocks. In the case of the samples on the upper side of the block, the model parameters are preferably based on the model parameters or samples from the block above. In the case of the samples on the left side of the block, the model parameters are preferably based on the model parameters or samples from the block to the left. When the samples are filtered in a single step, the model parameters or samples are preferably based on both the block above and the block to the left. In addition, the model parameters can also be based on the model parameters or samples of the current block.

[0062] When model parameters from two or more blocks are used, the model parameters are combined by weighted averaging. The DC parameters of the neighboring blocks are preferably adjusted to be centered on the current block before being combined. One exemplary weighting is averaging, but more weight may be assigned to the neighboring blocks or the current block.

[0063] The predicted samples of the model can either replace the samples of the block as part of the block deblocking or be added to the samples of the block.

[0064] The amount of correction may be reduced according to the QP. For example, the method may be employed only for higher QP (e.g., above a QP threshold). The amount of correction may also vary with the distance from the block boundary.

[0065] FIG. 5 illustrates a flowchart according to an embodiment. Process 500 is a method for creating a smooth prediction block of samples in a picture in an image or video encoder or decoder. The method may start from step s502.

[0066] Step s502 comprises determining parameter r of the polynomial model by r = (B T B) -1 *(B T *x), where B is the base matrix and x is the source of the samples in vector form.

[0067] Step s504 comprises predicting block x' based on parameter r and base matrix B.

[0068] In some embodiments, the smooth prediction block x' comprises x' = Σ i [r(i)*b(i)], where r(i) refers to the i-th component of r, b(i) refers to the i-th basis vector of B, and the sum is taken over some basis vectors in B. In some embodiments, the smooth prediction block x' comprises x' = (Σ i [r(i)*b(i)] + 2 N-1)>>Comprising N, where N is a scaling factor, r(i) refers to the i-th component of r, b(i) refers to the i-th basis vector of B, and the sum is taken over some basis vectors in B. In some embodiments, for each basis vector b(i) in B, its mean is removed, such as b(i):=b(i)-mean(b(i)). In some embodiments, B includes at least three bases B={b1, b2, b3}, where b1={1, 1, 1,.., 1} T (a constant value), b2={0, 1,..M - 1,.., 0, 1,.., M} T (the slope in x), and b3={0,.., 0, 1,.., 1, M - 1,.., M - 1} T (the slope in y), where M is equal to the height of the block. In some embodiments, B further includes bases (b4, b5, b6) such that B={b1, b2, b3, b4, b5, b6}, where b4={0,.., 0, 1, 2,..M - 1,.., M - 1, 2*M - 1,.., (M - 1)*(M - 1)}(x*y), b5={0, 1, 4,.., (M - 1)*(M - 1),.., 0, 1, 4,.., (M - 1)*(M - 1)}(x*x) and b6={0,.., 0, 1,.., 1, 4,.., 4,.., (M - 1)*(M - 1)}(x*y). In some embodiments, (B T B) -1 is pre - calculated.

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

[0070] 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. Samples in the image are predicted according to any of the previous embodiments.

[0071] Step s506 comprises quantizing parameter r to quantization parameter qr.

[0072] Step s508 comprises encoding a signal indicating that the polynomial intra-coding mode is being used.

[0073] Step s510 comprises encoding quantization parameter qr.

[0074] In some embodiments, the source x of the sample comprises samples immediately above and / or to the left of block x'. In some embodiments, encoding quantization parameter qr comprises predicting parameter 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 the difference between quantization parameter qr(i) and predicted parameter rPred(i), and encoding the delta value.

[0075] FIG. 6 illustrates a flowchart according to an embodiment. Process 600 is a method for encoding an image. The method may begin with step s602.

[0076] Step s602 comprises determining parameter r of the polynomial model based on model parameters of adjacent blocks.

[0077] Step s604 comprises quantizing parameter r to quantization parameter qr.

[0078] Step s606 comprises encoding a signal indicating that the polynomial intracoding mode is being used.

[0079] Step s608 optionally comprises encoding the quantization parameter qr.

[0080] FIG. 7 illustrates a flowchart according to an embodiment. Process 700 is a method for decoding an image. The method may begin at step s702.

[0081] Step s702 comprises decoding a signal indicating that the polynomial intracoding mode is being used.

[0082] Following step s702, either step s704 and step s706 may be performed, or step s704b may be performed.

[0083] Step s704 comprises decoding the quantization parameter qr in response to the signal, and step s706 comprises inverse quantizing the quantization parameter qr to a non-quantization parameter r'.

[0084] Step s704b comprises determining the parameter r' of the polynomial model based on the model parameters of adjacent blocks in response to the signal.

[0085] Following either step s706 or step s704b, step s708 may be performed.

[0086] Step s708 comprises deriving a predicted block x' based on the non-quantization parameter r' and the base matrix B.

[0087] FIG. 8 illustrates a flowchart according to an embodiment. Process 800 is a method for adjusting quantization parameters and / or a method for deblocking. The method starts at step s802 and can proceed to either step s804 and s806 or step s808.

[0088] Step s802 comprises determining that a block in the image is smooth.

[0089] Step s804 comprises determining that a quantization parameter (QP) reduces the quality of the block after compression.

[0090] Step s806 comprises reducing the QP for the block so that the block is encoded with higher quality as a result of determining that the block in the image is smooth and determining that the QP reduces the quality of the block after compression.

[0091] Step s808 comprises modifying samples in the block as a result of determining that the block in the image is smooth.

[0092] In some embodiments, determining that a block in the image is smooth comprises determining parameters for a model based on a low-frequency basis function, predicting predicted samples using the determined parameters, comparing the predicted samples to the source samples of the block to determine an error, and determining that the error is below a threshold. In some embodiments, the low-frequency basis function includes a polynomial function, and wherein comparing the predicted block to the source sample to determine the error comprises calculating one or more of a sum of absolute differences (SAD) value and a sum of squared differences (SSD) value for the difference between the source sample of the block and the predicted sample.

[0093] In some embodiments, reducing the quantization parameter (QP) for a block so that the block is encoded with higher quality comprises determining the reduction of QP based on a linear model such that the reduction is greater for higher QPs and there is no reduction of QP below a specified value. In some embodiments, the reduction of QP is determined by min(0, QPscale * QP + QPoffset), where QPscale and QPoffset are parameters. In some embodiments, the reduction of QP is limited by a limit value. In some embodiments, the reduction of QP is determined by max(QPlimit, min(0, QPscale * QP + QPoffset)), where QPscale, QPoffset, and QPlimit are parameters.

[0094] In some embodiments, the method further comprises determining that the image is of an intra-coded picture type, wherein reducing the quantization parameter (QP) for a block so that the block is encoded with higher quality is performed as a result of determining that the image is of an intra-coded picture type. In some embodiments, the method further comprises 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, wherein reducing the quantization parameter (QP) for a block so that the block is encoded with higher quality is performed as a result of determining that the image has a sequence number that is a multiple of M (e.g., 2, 4, 8, 16, 32).

[0095] In some embodiments, determining that a block in an image is smooth is based on information at a sub-block level of granularity. For example, if the block size (e.g., CTU size or CTU width / 2 and CTU height / 2) is 256×256, smoothness can be determined for 64×64 or 128×128 sub-blocks of the 256×256 block. If the block size (e.g., CTU size or CTU width / 2 and CTU height / 2) is 128×128, smoothness can be determined for 64×64 sub-blocks of the 128×128 block. If the block size is 64×64 (e.g., CTU size), smoothness can be determined for 32×32 sub-blocks of the 64×64 block.

[0096] In some embodiments, modifying samples in a block is based on a polynomial model.

[0097] Here, an example of QP control implemented on top of the reference coder in the case of VVC (VTM - 12.0) is shown. TIFF0007708876000001.tif189170TIFF0007708876000002.tif240170TIFF0007708876000003.tif9170

[0098] Exemplary parameters are m_pcEncCfg->getSmoothQPReductionLimit() = - 16, m_pcEncCfg->getSmoothQPReductionModelScale() = - 1.0, m_pcEncCfg->getSmoothQPReductionModelOffset() = 27. If baseQP is the QP determined for a picture or block by other means, it may be only from the adaptive QP or a fixed QP for the picture. Then, baseQP is modified by QPchange. The reduction of QP can be performed for the CTU size (128×128) or for the size 64×64 in this example.

[0099] FIG. 9 is a block diagram of a node 900 (e.g., an encoder or a decoder) according to some embodiments. As shown in FIG. 9, the node 900 includes a processing circuit (PC) 902 that may include one or more processors (P) 955 (e.g., one or more general-purpose microprocessors, and / or one or more other processors such as application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), etc.), where the processors may be collocated in a single housing or in a single data center, or may be geographically dispersed (in other words, the node 900 may be a distributed computing device), a processing circuit (PC) 902, at least one network interface 948 (e.g., a physical interface or an air interface) that enables the node 900 to transmit data to other nodes connected to a network 910 (e.g., an Internet Protocol (IP) network) and receive data from other nodes connected to the network 910, where the network interface 948 is connected (physically or wirelessly) to the network 910 (e.g., the network interface 948 may be coupled to an antenna configuration that includes one or more antennas to enable the node 900 to transmit / receive data wirelessly), at least one network interface 948, and a local memory unit 908 (also referred to as a “data storage system”) that may include one or more non-volatile memory devices and / or one or more volatile memory devices. In embodiments where 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 that includes computer-readable instructions (CRI) 944. The CRM 942 may be a non-transitory computer-readable medium such as a magnetic medium (e.g., a hard disk), an optical medium, a memory device (e.g., a random access memory, a flash memory), etc.In some embodiments, the CRI 944 of the computer program 943, when executed by the PC 902, is configured such that the CRI causes the node 900 to perform the steps described herein (e.g., the steps described herein with reference to the flowchart). In other embodiments, the node 900 may be configured to perform the steps described herein without the need for code. That is, for example, the PC 902 may consist of only one or more ASICs. Therefore, the features of the embodiments described herein may be implemented in hardware and / or software.

[0100] As used herein, a network element, node, or subsystem (e.g., an encoder or decoder) is adapted to host one or more applications or services in either a virtualized environment or a non-virtualized environment, with respect to a plurality of subscribers and associated user equipment (UE) nodes that are operable to receive / consume content in a media delivery network where other devices on the network (e.g., other network elements, end stations, etc.) are communicatively interconnected and media content assets can be distributed and supplied using a stream-based mechanism or a file-based mechanism. Thus, some network elements may be deployed in a radio wireless network environment, while other network elements may be deployed in a public packet-switched network infrastructure, including or otherwise accompanied by a suitable content delivery network (CDN) infrastructure, such as a public, private, or hybrid CDN. Further, suitable network elements, including one or more embodiments described herein, may be associated with terrestrial and / or satellite broadband supply infrastructures, such as a digital subscriber line (DSL) network architecture, a data over cable service interface specification (DOCSIS)-compliant cable modem termination system (CMTS) architecture, a switched digital video (SDV) network architecture, a hybrid fiber coaxial (HFC) network architecture, a suitable satellite access network architecture or broadband wireless access network architecture via cellular and / or WiFi connectivity.Accordingly, some network elements may be "multi-service network elements" that provide support for multiple application services (e.g., data and multimedia applications including 360° immersive video assets, also sometimes called 360-degree video assets or simply 360 video assets, when changing quality or resolution), in addition to providing support for multiple network-based functions (e.g., 360° immersive A / V media provisioning policy management, session control, QoS policy enforcement, bandwidth scheduling management, content provider priority policy management, streaming policy management, etc.). Exemplary subscriber end stations or client devices may include various devices, tethered or untethered, that can consume or supply media content assets using streaming and / or file-based download techniques, which may involve some type of rate adaptation in some embodiments. Exemplary client devices or UE devices may therefore be configured to execute one or more client applications for receiving, recording, storing, and / or decrypting / rendering 360 video content, live media, and / or static / on-demand media, which may include virtual reality (VR) media, augmented reality (AR) media, mixed reality (MR) media, from one or more content providers, for example, via a broadband access network, using, among other things, HTTP, HTTPS, RTP, etc.Accordingly, such client devices may include a portable gaming system or console that operates in cooperation with next-generation IP-based STBs, networked TVs, personal / digital video recorders (PVR / DVRs), networked media projectors, portable laptops, netbooks, palmtops, tablets, smartphones, multimedia / video phones, mobile / wireless user equipment, portable media players, 3D display devices, etc. (such as Wii (registered trademark), Play Station 3 (registered trademark), etc.), which may access or consume 360-degree content / services provided via a suitable media delivery network, where bandwidth and quality of experience (QoE) schemes may be provided according to one or more embodiments described herein.

[0101] One or more embodiments of the present disclosure may be implemented using different combinations of software, firmware, and / or hardware. Thereby, 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., subscriber client devices or end stations, network elements, etc.). Such electronic devices may use computer-readable media such as non-transitory computer-readable storage media (e.g., magnetic disks, optical disks, random access memory, read-only memory, flash memory devices, phase change memory, etc.), temporary computer-readable transmission media (e.g., carrier waves, infrared signals, digital signals, etc., electrical, optical, acoustic, or other forms of propagated signals) to store and communicate code and data (internally and / or using other electronic devices via a network). In addition, such network elements may generally include a set of one or more processors coupled to one or more other components such as one or more storage devices (e.g., non-transitory machine-readable storage media), as well as storage databases, user input / output devices (e.g., keyboards, touchscreens, pointing devices, and / or displays), and network connections for realizing signaling and / or bearer media transmission. The coupling of the set of processors to the other components may generally pass through one or more buses and bridges (also called bus controllers) configured in any known (e.g., symmetric / shared multiprocessing) or hitherto unknown architecture. Thereby, the storage devices or components of a given electronic device or network element may be set to store code and / or data for execution on one or more processors of that element, node, or electronic device for the purpose of implementing one or more techniques of the present disclosure.

[0102] One skilled in the art will recognize that the above-described generalized exemplary network environment can be implemented in a hierarchical network architecture, along with various aspects of delivery / uploading and edge node processes that occur in different network portions arranged at different hierarchical levels, involving media capture and preparation, such as source stream stitching, projection mapping, source media compression, tiled / ABR encoding / transcoding, packaging, etc., and one or more operators, content delivery networks (CDNs), edge networks, etc. Further, in some implementations, at least some of the above-described devices and processes can be cloud-based. In some configurations, the CDN can be a large-scale distributed system of servers deployed in multiple data centers connected to the Internet or other public / private communication networks. The CDN can be a managed or unmanaged network, or even a federation of managed or unmanaged networks.

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

[0104] In addition to the above disclosure, the following is also mentioned.

[0105] Large transforms are excellent at reducing spatial redundancy. However, when the source samples are very smooth, the subjective quality can drop very rapidly in areas with overly coarse quantization. Therefore, it is suggested to reduce the QP according to a linear model for very smooth regions that would otherwise have a long subjective quality break. Since smooth regions are relatively easy to code, the bitrate overhead can be manageable. The impact on the BDR for HDR CTC is as follows, namely, VTM-12.0 HDR CTC (luma / Cb / Cr): 0.07% / 0.02% / 0.16% HM-16.22 (TF on) HDR CTC (luma / Cb / Cr): 0.70% / -0.18% / -0.05% as follows.

[0106] To improve subjective quality, it is suggested to update VTM and HM using this functionality.

[0107] It has been observed that HM and VTM may experience a quality degradation at relatively low QPs in very smooth regions due to inaccurate coding of the transform coefficients. This contribution aims to avoid it by reducing the QP for smooth blocks.

[0108] Smooth blocks are detected by fitting the luma source samples to a low - order polynomial model in a region of (for example) 64×64 samples. Then, the distortion from the model prediction is calculated (SAD) and compared to a threshold. When the distortion is below the threshold, the luma QP is reduced according to a linear model. The granularity of QP adjustment is (for example) 64×64.

[0109] Configurable parameters are added to control the strength of QP reduction and, further, to control to which frames it is applied (every frame, every second frame, every fourth frame, etc.).

[0110] The method was implemented on top of both HM - 16.22[1] and VTM - 12.0[2] and tested for HDR CTC[3] as follows.

[0111] VTM - 12.0 for CTC HDR RA (QP changes for all frames): TIFF0007708876000004.tif55170

[0112] HM - 16.22 for CTC HDR RA (TF on) (QP changes for all frames): TIFF0007708876000005.tif55170

[0113] References [1] HM-16.22, available at https: / / vcgit.hhi.fraunhofer.de / jvet / HM / - / releases / HM-16.22 [2] VTM-12.0, available at https: / / vcgit.hhi.fraunhofer.de / jvet / VVCSoftware_VTM / tags / VTM-12.0 [3] A. Segall, E. Francois, W. Husak, S. Iwamura and D. Rusanovskyy, “JVET common test conditions and evaluation procedures for HDR / WCG video”, JVET-T2011, Meeting by Teleconference, October 2020.

[0114] Summary of various embodiments A1. A method for creating a smooth prediction block of samples in a picture in an image or video encoder or decoder, the method comprising: r = (B T B) -1 *(B T *x) for determining the parameter r of the polynomial model, where B is the base matrix and x is the source of the samples in vector form, determining the parameter r; predicting the block x' based on the parameter r and the base matrix B; and the method comprising the steps of: A2. The method according to embodiment A1, wherein the smooth prediction block x' comprises x' = Σ i [r(i)*b(i)], where r(i) refers to the i-th component of r, b(i) refers to the i-th basis vector of B, and the sum is taken over some basis vectors in B. A3. The method according to embodiment A1, wherein the smooth prediction block x' comprises x' = (Σ i [r(i)*b(i)] + 2 N-1)>>The method according to Embodiment A1, comprising N, where N is a scaling factor, r(i) refers to the i-th component of r, b(i) refers to the i-th basis vector of B, and the sum is taken over some basis vectors in B. A4. The method according to any one of Embodiments A1 - A3, wherein for each basis vector b(i) in B, its mean is removed, such as b(i):=b(i)-mean(b(i)). A5. B includes at least three bases B = {b1, b2, b3}, where b1 = {1, 1, 1,.., 1} T , b2 = {0, 1,..M - 1,.., 0, 1,.., M} T , and b3 = {0,.., 0, 1,.., 1, M - 1,.., M - 1}, T where M is equal to the height of the block, the method according to any one of Embodiments A1 - A4. A5’. The method according to Embodiment A5, where B further includes bases (b4, b5, b6) such that B = {b1, b2, b3, b4, b5, b6}, where b4 = {0,.., 0, 1, 2,..M - 1,.., M - 1, 2*M - 1,.., (M - 1)*(M - 1)}, b5 = {0, 1, 4,.., (M - 1)*(M - 1),.., 0, 1, 4,.., (M - 1)*(M - 1)} and b6 = {0,.., 0, 1,.., 1, 4,.., 4,.., (M - 1)*(M - 1)}. A6. (B T B) -1 is pre - calculated, the method according to any one of Embodiments A1 - A5 and A5’. A7. The method according to any one of Embodiments A1 - A6, wherein the source x of the sample is determined by taking a subset of the samples (e.g., every other sample horizontally and vertically). A8. The method according to any one of Embodiments A1 - A7, wherein each basis vector b(i) in B is taken at sample positions that are multiples of 2. A9. The method according to any one of embodiments A1 - A8, wherein the height (M) of the block is equal to the maximum transform size used in the image or video encoder / decoder. B1. A method for encoding an image, the method comprising: predicting samples in the image according to any one of embodiments A1 - A9; quantizing parameter r into quantization parameter qr; encoding a signal indicating that the polynomial intra - coding mode is being used; encoding quantization parameter qr and. B1’. A method for encoding an image, the method comprising: determining parameter r of the polynomial model based on the model parameters of adjacent blocks; quantizing parameter r into quantization parameter qr; encoding a signal indicating that the polynomial intra - coding mode is being used and. B1’a. The method according to embodiment B1’, further comprising encoding quantization parameter qr. B2. The method according to any one of embodiments B1, B1’, and B1’a, wherein the source x of the sample comprises the sample immediately above block x’ and / or to the left of block x’. B3. Encoding quantization parameter qr comprises: predicting parameter rPred based on the samples immediately above block x’ and / or to the left of block x’; determining a delta value for each component i of qr based on the difference between quantization parameter qr(i) and the predicted parameter rPred(i); encoding the delta value and. The method according to any one of embodiments B1 - B2. C1. A method for decoding an image, the method comprising: Decoding a signal indicating that a polynomial intracoding mode is being used, in response to the signal, decoding a quantization parameter qr, inverse quantizing the quantization parameter qr to a non-quantization parameter r', deriving a prediction block x' based on the non-quantization parameter r' and a base matrix B, and a method comprising the steps thereof. C1'. A method for decoding an image, the method comprising: decoding a signal indicating that a polynomial intracoding mode is being used, in response to the signal, determining a parameter r' of a polynomial model based on model parameters of adjacent blocks, deriving a prediction block x' based on the non-quantization parameter r' and a base matrix B, and a method comprising the steps thereof. D1. A method for adjusting a quantization parameter, the method comprising: determining that a block in an image is smooth, determining that the quantization parameter (QP) reduces the quality of the block after compression, as a result of determining that the block in the image is smooth and that the QP reduces the quality of the block after compression, reducing the QP for the block so that the block is encoded with higher quality, and a method comprising the steps thereof. D2. Determining that a block in an image is smooth comprises: determining parameters for a model based on low-frequency basis functions, predicting prediction samples using the determined parameters, comparing the prediction samples with source samples of the block to determine an error, determining that the error is below a threshold, and a method according to embodiment D1 comprising the steps thereof. D3. The low-frequency basis function includes a polynomial function, wherein, to determine an error, comparing the predicted block with the source sample calculates one or more of the sum of absolute differences (SAD) value and the sum of squared differences (SSD) value for the difference between the source sample of the block and the predicted sample. The method according to Embodiment D2. D4. Decreasing the QP for a block so that the block is encoded with higher quality determines the decrease of QP based on a linear model such that the decrease is greater for higher QP and there is no decrease of QP below a specified value, the method according to any one of Embodiments D2 - D3. D4’. The decrease of QP is determined by min(0, QPscale * QP + QPoffset), where QPscale and QPoffset are parameters, the method according to Embodiment D4. D4’’. The decrease of QP is limited by a limit value, the method according to any one of Embodiments D4 and D4’. D4’’’. The decrease of QP is determined by max(QPlimit, min(0, QPscale * QP + QPoffset)), where QPscale, QPoffset and QPlimit are parameters, the method according to Embodiment D4. D5. Further comprising determining that the image is of an intra-coded picture type, wherein decreasing the quantization parameter (QP) for a block so that the block is encoded with higher quality is performed as a result of determining that the image is of an intra-coded picture type, the method according to any one of Embodiments D1 - D4, D4’, D4’’, and D4’’’. D6. Further comprising determining that the picture has a sequence number (e.g., Picture Order Count (POC)) within a sequence of pictures that is a multiple of value M, wherein reducing the quantization parameter (QP) for a block so that the block is encoded with higher quality is performed as a result of determining that the picture has a sequence number that is a multiple of M, the method according to any one of embodiments D1 to D4, D4’, D4’’, and D4’’’. D7. The method according to embodiment D6, wherein M is one of 2, 4, 8, 16, and 32. D8. The method according to any one of embodiments D1 to D7, wherein determining that a block in the picture is smooth is based on information at a sub-block level of granularity. E1. A method for deblocking, the method comprising: determining that a block in the picture is smooth; modifying samples in the block as a result of determining that the block in the picture is smooth; and. E2. Determining that a block in the picture is smooth comprises: determining parameters for a model based on a low-frequency basis function; predicting predicted samples using the determined parameters; comparing the predicted samples with the source samples of the block to determine an error; determining that the error is below a threshold; and the method according to embodiment E1. E3. The low-frequency basis function includes a polynomial function, wherein comparing the predicted block with the source sample to determine an error comprises calculating one or more of an absolute sum of differences (SAD) value and a sum of squared differences (SSD) value for the difference between the source sample and the predicted sample of the block, the method according to embodiment E2. E4. Modifying the samples in the block is based on a polynomial model, the method according to any one of embodiments E2 to E3. F1. A computer program comprising instructions which, when executed by a processing circuit of a node, cause the node to perform the method according to any one of Embodiments A1 - A9, B1 - B3, C1, C1’, D1 - D7, and E1 - E4. F2. A carrier containing the computer program according to Embodiment F1, wherein the carrier is one of an electronic signal, an optical signal, a wireless signal, and a computer-readable storage medium. G1. An encoder, the encoder comprising: a processing circuit; a memory containing instructions executable by the processing circuit, whereby the encoder is configured to perform the method according to any one of Embodiments A1 - A9, B1 - B3, D1 - D7, and E1 - E4; and the encoder is provided with the above components. G2. A decoder, the decoder comprising: a processing circuit; a memory containing instructions executable by the processing circuit, whereby the decoder is configured to perform the method according to any one of Embodiments A1 - A9, C1, C1’, and E1 - E4; and the decoder is provided with the above components. H1. An encoder configured to create a smooth prediction block of samples in a picture, the encoder further configured to: determine a parameter r of a polynomial model by r=(B T B) -1 *(B T *x), where B is a base matrix and x is a source of samples in vector form; predict a block x’ based on the parameter r and the base matrix B; and the encoder is further configured to perform the above operations. H2. The encoder according to Embodiment H1, wherein the encoder is further configured to perform the method according to any one of Embodiments A2 - A9. I1. An encoder configured to encode an image, the encoder being further configured to: predict samples in the image according to any one of Embodiments A1 - A9; quantize parameter r into quantization parameter qr; encode a signal indicating that the polynomial intra - coding mode is being used; encode quantization parameter qr; and perform the above operations. I1’. An encoder configured to encode an image, the encoder being further configured to: determine parameter r of the polynomial model based on the model parameters of adjacent blocks; quantize parameter r into quantization parameter qr; encode a signal indicating that the polynomial intra - coding mode is being used; and perform the above operations. I2. An encoder according to any one of Embodiments I1 and I1’, further configured to perform the method according to any one of Embodiments B2 - B3. J1. An encoder configured to adjust a quantization parameter, the encoder being further configured to: determine that a block in the image is smooth; determine that the quantization parameter (QP) reduces the quality of the block after compression; as a result of determining that the block in the image is smooth and that the QP reduces the quality of the block after compression, reduce the QP for the block so that the block is encoded with higher quality; and perform the above operations. J2. An encoder according to Embodiment J1, further configured to perform the method according to any one of Embodiments D2 - D7. Encoder K1, which is configured to deblock, wherein the encoder is 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, configured to modify samples in the block and further configured to perform the above operations. Encoder according to Embodiment K1, wherein the encoder is further configured to perform the method according to any one of Embodiments E2 to E4. Decoder L1, which is configured to create a smooth prediction block of samples in a picture, wherein the decoder is configured to determine parameter r of a polynomial model by r=(B T B) -1 *(B T *x), where B is a base matrix and x is a source of samples in vector form, and configured to predict block x' based on parameter r and base matrix B and further configured to perform the above operations. Decoder according to Embodiment L1, wherein the decoder is further configured to perform the method according to any one of Embodiments A2 to A9. Decoder M1, which is configured to decode an image, wherein the decoder is configured to decode a signal indicating that a polynomial intra coding mode is being used, decode quantization parameter qr in response to the signal, inverse quantize quantization parameter qr to non - quantization parameter r', derive prediction block x' based on non - quantization parameter r' and base matrix B and further configured to perform the above operations. Decoder M1', which is configured to decode an image, wherein the decoder is configured to decode a signal indicating that a polynomial intra coding mode is being used, In response to a signal, determining a parameter r’ of a polynomial model based on model parameters of adjacent blocks, and deriving a predicted block x’ based on the non-quantized parameter r’ and a base matrix B, and a decoder further configured to perform the above. N1. A decoder configured to deblock, the decoder being determining that a block in an image is smooth, and modifying samples in the block as a result of determining that the block in the image is smooth, and a decoder further configured to perform the above. N2. The decoder according to Embodiment K1, further configured to perform the method according to any one of Embodiments E2 to E4.

[0115] It should be understood that various embodiments have been described herein, but the embodiments are presented by way of example only and not by way of limitation. Thus, the breadth and scope of the present disclosure should not be limited by any of the exemplary embodiments described above. Moreover, any combination of those elements in all possible variations of the elements described above is included by the present disclosure unless otherwise indicated herein or clearly negated by context.

[0116] Additionally, although the processes described above and illustrated in the drawings are shown as a sequence of steps, this is done for illustration only. Accordingly, it is contemplated that some steps may be added, some steps may be omitted, the order of steps may be rearranged, and some steps may be performed in parallel.

Claims

1. A method for adjusting quantization parameters, the method comprising: determining that a block in an image is smooth; determining that the quantization parameter (QP) reduces the quality of the block after compression; reducing the QP for the block so that the block is encoded with higher quality as a result of determining that the block in the image is smooth and determining that the QP reduces the quality of the block after compression; including; Reducing the QP for the block so that the block is encoded with higher quality includes determining the reduction of the QP based on a linear model such that the reduction is greater for higher QPs and there is no reduction of the QP below a specified value.

2. Determining that a block in an image is smooth includes: determining parameters for a model based on a low-frequency basis function; predicting prediction samples using the determined parameters; comparing the prediction samples with source samples of the block to determine an error; determining that the error is below a threshold; The method according to claim 1, including.

3. The low-frequency basis function includes a polynomial function, and comparing the predicted block with the source sample to determine an error includes calculating one or more of an absolute difference sum (SAD) value and a sum of squared differences (SSD) value for the difference between the source sample and the prediction sample of the block. The method according to claim 2.

4. The reduction of the QP is determined by min(0, QPscale * QP + QPoffset), where QPscale and QPoffset are parameters. The method according to any one of claims 1 to 3.

5. The method according to any one of claims 1 to 4, wherein the reduction of the QP is limited by a limit value.

6. The reduction of the QP is determined by max(QPlimit, min(0, QPscale * QP + QPoffset)), where QPscale, QPoffset and QPlimit are parameters. The method according to any one of claims 1 to 3.

7. Further comprising determining that the image is of an intra-coded picture type, wherein reducing the quantization parameter (QP) for the block so that the block is coded with higher quality is performed as a result of determining that the image is of an intra-coded picture type, the method according to any one of claims 1 to 6. **Claim 8** 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, wherein reducing the quantization parameter (QP) for the block so that the block is coded with higher quality is performed as a result of determining that the image has a sequence number that is a multiple of M, the method according to any one of claims 1 to 6. **Claim 9** The method according to claim 8, wherein M is one of 2, 4, 8, 16, and 32. **Claim 10** Determining that a block in the image is smooth is based on information at a sub-block level of granularity, the method according to any one of claims 1 to 9. **Claim 11** A computer program comprising instructions that, when executed by a processing circuit of a node, cause the node to perform the method according to any one of claims 1 to 10. **Claim 12** A computer-readable storage medium comprising the computer program according to claim 11. **Claim 13** An encoder, wherein the encoder comprises a processing circuit and a memory, the memory comprising instructions executable by the processing circuit, whereby the encoder is configured to perform the method according to any one of claims 1 to 10. **Claim 14** An encoder configured to adjust a quantization parameter, the encoder further configured to determine that a block in the image is smooth, determine that the quantization parameter (QP) reduces the quality of the block after compression, and reduce the QP for the block so that the block is coded with higher quality as a result of determining that the block in the image is smooth and determining that the QP reduces the quality of the block after compression. ​ The encoder includes determining the decrease in the QP for the block based on a linear model such that decreasing the QP for the block so that the block is encoded with higher quality results in a greater decrease for higher QPs and no decrease in the QP below a specified value. **Claim 15** The encoder according to claim 14, further configured to perform the method according to any one of claims 2 to 10.

Citation Information

Patent Citations

  • Quantization adjustment based on texture level

    JP2009533900A