Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DECISION PROCESS FOR EXTRA-LONG DEBLOCKING FILTERS
Document Type and Number:
WIPO Patent Application WO/2024/002552
Kind Code:
A1
Abstract:
A method for deblocking is provided. The method includes checking whether a current block is smooth. The method includes checking whether an adjacent block is smooth. The method includes determining that a criteria is true. The criteria comprises (1) one or more of the current block and the adjacent block being smooth and (2) first and second differences being less than a threshold. The first difference is a difference between a first average value of the current block and a second average value of the adjacent block and the second difference is a difference between a third average value of the current block and a fourth average value of the adjacent block. The method includes, as a result of determining that the criteria is true, applying a long-tap deblocking across the boundary of the current block. A length of the long-tap deblocking is greater than or equal to 15.

Inventors:
ANDERSSON KENNETH (SE)
ENHORN JACK (SE)
Application Number:
PCT/EP2023/061006
Publication Date:
January 04, 2024
Filing Date:
April 26, 2023
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ERICSSON TELEFON AB L M (SE)
International Classes:
H04N19/117; H04N19/14; H04N19/176; H04N19/82
Domestic Patent References:
WO2022207701A12022-10-06
Foreign References:
US20190306503A12019-10-03
Other References:
BROSS BENJAMIN ET AL: "General Video Coding Technology in Responses to the Joint Call for Proposals on Video Compression With Capability Beyond HEVC", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, IEEE, USA, vol. 30, no. 5, 25 October 2019 (2019-10-25), pages 1226 - 1240, XP011786797, ISSN: 1051-8215, [retrieved on 20200504], DOI: 10.1109/TCSVT.2019.2949619
IKEDA (SONY) M ET AL: "CE2: Long-tap deblocking filter for luma and chroma (CE2-2.1.6)", no. JVET-K0152, 2 July 2018 (2018-07-02), XP030198696, Retrieved from the Internet [retrieved on 20180702]
KARCZEWICZ MARTA ET AL: "VVC In-Loop Filters", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, IEEE, USA, vol. 31, no. 10, 9 April 2021 (2021-04-09), pages 3907 - 3925, XP011880911, ISSN: 1051-8215, [retrieved on 20210930], DOI: 10.1109/TCSVT.2021.3072297
ANDERSSON (ERICSSON) K ET AL: "Non-EE2: Longer deblocking filter for luma", no. JVET-AA0139 ; m60115, 6 July 2022 (2022-07-06), XP030303007, Retrieved from the Internet [retrieved on 20220706]
Attorney, Agent or Firm:
ERICSSON (SE)
Download PDF:
Claims:
CLAIMS 1. A method for deblocking, the method comprising: checking (s502) whether a current block (404) is smooth; checking (s504) whether an adjacent block (406) is smooth, wherein the adjacent block (406) is adjacent to a boundary (402) of the current block (404); determining (s506) that a criteria is true, wherein the criteria comprises (1) one or more of the current block (404) and the adjacent block (406) being smooth and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block (404) and a second average value of the adjacent block (406) and the second difference is a difference between a third average value of the current block (404) and a fourth average value of the adjacent block (406); and as a result of determining that the criteria is true, applying (s508) a long-tap deblocking across the boundary (402) of the current block (404), wherein a length of the long-tap deblocking is greater than or equal to 15. 2. The method of claim 1, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are given by: where lenP is equal to maxFilterLengthP, the maximum filter length of the current block (404), lenQ is equal to maxFilterLengthQ, the maximum filter length of the adjacent block (406), pi,0 and pi,3 refer to values in the current block (404) indexed by i and qi,0 and qi,3 refer to values in the adjacent block (406) indexed by i. 3. The method of claim 2, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are calculated using bit shifts to avoid a division operator being used.

4. The method of claim 1, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are averaged over every N-th sample for a value of N and given by: where maxFilterLengthP is the maximum filter length of the current block (404), maxFilterLengthQ is the maximum filter length of the adjacent block (406), pi,0 and pi,3 refer to values in the current block (404) indexed by i and qi,0 and qi,3 refer to values in the adjacent block (406) indexed by i. 5. The method of claim 4, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are calculated using bit shifts to avoid a division operator being used. 6. The method of any one of claims 1-5, wherein the threshold is a minimum of tC and a fixed threshold, where tC is a variable and where the fixed threshold is determined by the bit depth. 7. A method for deblocking, the method comprising: checking (s602) whether a size of a current block (404) exceeds a size threshold; checking (s604) whether a size of an adjacent block (406) exceeds the size threshold, wherein the adjacent block (406) is adjacent to a boundary (402) of the current block (404); determining (s606) that a criteria is true, wherein the criteria comprises (1) both a size of the current block (404) and a size of the adjacent block (406) exceeding the size threshold and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block (404) and a second average value of the adjacent block (406) and the second difference is a difference between a third average value of the current block (404) and a fourth average value of the adjacent block (406); and as a result of determining that the criteria is true, applying (s608) a long-tap deblocking across the boundary (402) of the current block (404), wherein a length of the long-tap deblocking is greater than or equal to 15. 8. The method of claim 7, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are given by: where lenP is equal to maxFilterLengthP, the maximum filter length of the current block (404), lenQ is equal to maxFilterLengthQ, the maximum filter length of the adjacent block (406), pi,0 and pi,3 refer to values in the current block (404) indexed by i and qi,0 and qi,3 refer to values in the adjacent block (406) indexed by i. 9. The method of claim 8, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are calculated using bit shifts to avoid a division operator being used. 10. The method of claim 7, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are averaged over every N-th sample for a value of N and given by: where maxFilterLengthP is the maximum filter length of the current block (404), maxFilterLengthQ is the maximum filter length of the adjacent block, pi,0 and pi,3 refer to values in the current block (404) indexed by i and qi,0 and qi,3 refer to values in the adjacent block (406) indexed by i. 11. The method of claim 10, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are calculated using bit shifts to avoid a division operator being used. 12. The method of any one of claims 7-11, wherein the threshold is a minimum of tC and a fixed threshold, where tC is a variable and where the fixed threshold is determined by the bit depth. 13. A computer program (743) comprising instructions (744) which when executed by processing circuitry (702) of a node (700), causes the node (700) to perform the method of any one of claims 1-12. 14. A carrier containing the computer program (743) of claim 13, wherein the carrier is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium. 15. An encoder, the encoder comprising: processing circuitry (702); and a memory, the memory containing instructions (744) executable by the processing circuitry (702), whereby the encoder is configured to perform the method of any one of claims 1-12. 16. A decoder, the decoder comprising: processing circuitry (702); and a memory, the memory containing instructions (744) executable by the processing circuitry (702), whereby the decoder is configured to perform the method of any one of claims 1-12.

17. An encoder configured to deblock, the encoder being further configured to: check whether a current block (404) is smooth; check whether an adjacent block (406) is smooth, wherein the adjacent block (406) is adjacent to a boundary (402) of the current block (404); determine that a criteria is true, wherein the criteria comprises (1) one or more of the current block (404) and the adjacent block (406) being smooth and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block (404) and a second average value of the adjacent block (406) and the second difference is a difference between a third average value of the current block (404) and a fourth average value of the adjacent block (406); and as a result of determining that the criteria is true, apply a long-tap deblocking across the boundary (402) of the current block (404), wherein a length of the long-tap deblocking is greater than or equal to 15. 18. The encoder of claim 17, wherein the encoder is further configured to perform the method of any one of claims 2-6. 19. An encoder configured to deblock, the encoder being further configured to: check whether a size of a current block (404) exceeds a size threshold; check whether a size of an adjacent block (406) exceeds the size threshold, wherein the adjacent block (406) is adjacent to a boundary (402) of the current block (404); determine that a criteria is true, wherein the criteria comprises (1) both a size of the current block (404) and a size of the adjacent block (406) exceeding the size threshold and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block (404) and a second average value of the adjacent block (406) and the second difference is a difference between a third average value of the current block (404) and a fourth average value of the adjacent block (406); and as a result of determining that the criteria is true, apply a long-tap deblocking across the boundary (402) of the current block (404), wherein a length of the long-tap deblocking is greater than or equal to 15.

20. The encoder of claim 19, wherein the encoder is further configured to perform the method of any one of claims 8-12. 21. A decoder configured to deblock, the decoder being further configured to: check whether a current block (404) is smooth; check whether an adjacent block (406) is smooth, wherein the adjacent block (406) is adjacent to a boundary (402) of the current block (404); determine that a criteria is true, wherein the criteria comprises (1) one or more of the current block (404) and the adjacent block (406) being smooth and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block (404) and a second average value of the adjacent block (406) and the second difference is a difference between a third average value of the current block (404) and a fourth average value of the adjacent block (406); and as a result of determining that the criteria is true, apply a long-tap deblocking across the boundary (402) of the current block (404), wherein a length of the long-tap deblocking is greater than or equal to 15. 22. The decoder of claim 21, wherein the decoder is further configured to perform the method of any one of claims 2-6. 23. A decoder configured to deblock, the decoder being further configured to: check whether a size of a current block (404) exceeds a size threshold; check whether a size of an adjacent block (406) exceeds the size threshold, wherein the adjacent block (406) is adjacent to a boundary (402) of the current block (404); determine that a criteria is true, wherein the criteria comprises (1) both a size of the current block (404) and a size of the adjacent block (406) exceeding the size threshold and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block (404) and a second average value of the adjacent block (406) and the second difference is a difference between a third average value of the current block (404) and a fourth average value of the adjacent block (406); and as a result of determining that the criteria is true, apply a long-tap deblocking across the boundary (402) of the current block (404), wherein a length of the long-tap deblocking is greater than or equal to 15. 24. The decoder of claim 23, wherein the decoder is further configured to perform the method of any one of claim 8-12.

Description:
DECISION PROCESS FOR EXTRA-LONG DEBLOCKING FILTERS TECHNICAL FIELD [001] This disclosure relates to coding and decoding of video sequences and/or still images, and more particularly, to decision processes for extra-long deblocking filters. BACKGROUND [002] A video sequence has one or more images (also referred to herein as “pictures”). When viewed on a screen, the image consists of pixels, each pixel typically having 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 using another color space, including but not limited to YCbCr, ICTCP, non-constant-luminance YCbCr, and constant luminance YCbCr. If one takes the example of non-constant luminance YCbCr, which is currently the most used representation, it is made up of three components, Y, Cb and Cr. It is often the case that Y, which is called luma and which roughly represents luminance, is of full resolution, whereas the two other components, Cb and Cr, called chroma, are of a smaller resolution. A typical example is a high definition (HD) video sequence containing 1920x1080 RGB pixels, which is often represented by a 1920x1080- resolution Y component, a 960x540 Cb component and a 960x540 Cr component. The elements in the components are called samples. In the example given above, there are therefore 1920x1080 samples in the Y component, and hence a direct relationship between samples and pixels. Therefore, in this document, the term 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 influences several pixels. [003] In the Versatile Video Coding standard (VVC) that is developed by the Joint Video Experts Team (JVET) (also referred to herein as the “VVC”), the decoding of an image is carried out in two stages; prediction coding and loop filtering. In the prediction decoding stage, the samples of the components (Y, Cb and Cr) are partitioned into rectangular blocks. As an example, one block may be of size 4×8 samples, whereas another block may be of size 64×64 samples. The decoder obtains instructions for how to obtain a prediction for each block, for instance to copy samples from a previously decoded image (an example of temporal prediction) or copy samples from already decoded parts of the current image (an example of intra prediction), or a combination thereof. To improve this prediction, the decoder may obtain a residual, often encoded using transform coding such as discrete sine or cosine transform (DST or DCT). Transforms are extensively used to remove spatial redundancy from the prediction error from intra picture and inter picture prediction in video coding. The 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 VVC, the latest MPEG/ITU video coding standard, the maximum transform size is 64x64. In VVC also a secondary low frequency non-separable transform (LFNST) can be applied after the separable DCT/DST based transform. In work beyond version 1 of VVC it has been shown that increase of transform size can provide further gains in coding efficiency. This residual is added to the prediction, and the decoder can proceed to decode the next block. [004] The output from the prediction decoding stage is 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 stage in VVC consists of three sub-stages; a deblocking filter stage, a sample adaptive offset (SAO) filter sub-stage, and an adaptive loop filter (ALF) sub-stage. In the deblocking filter sub-stage, the decoder changes Y, Cb, and Cr by smoothing edges near block boundaries when certain conditions are met. This increases perceptual 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 sub-stage, the decoder adds or subtracts a signaled value to samples that meet certain conditions, such as being in a certain value range (band offset SAO) or having a specific neighborhood (edge offset SAO). This can reduce ringing noise since such noise often aggregate in a certain value range or in specific neighborhoods (e.g., in local maxima). The reconstructed image component that are the result of this stage are denoted YSAO, CbSAO, CrSAO. [005] A well performing block-based video coding standard may make use of deblocking filtering. To handle the increase of transform size, the deblocking filter lengths were extended in VVC compared to HEVC. Here follows a description of deblocking in VVC. [006] In VVC, the deblocking is applied on an 4x4 grid for CUs first on vertical boundaries (CU/implicit TU/prediction sub-block boundaries) and then on horizontal boundaries (CU/implicit TU/prediction sub-block boundaries). Prediction sub-block boundaries inside a CU are filtered on an 8x8 grid. The deblocking is based on HEVC deblocking, but also has longer deblocking filters if the size orthogonal to the block boundary is equal to or larger than 32 on at least one side for luma and the other side is larger than 4, modifying at most 7 samples (reading at most 8 samples), if the size orthogonal to the block boundary is less than 32 for one side for luma it modifies at most 3 samples and reading at most 4 samples on that side, and if it is equal to or larger than 8 on both side of a boundary in chroma samples for chroma modifying at most 3 chroma samples and reading at most 4 chroma samples otherwise it modifies at most one sample and reading at most two samples on respective side of the boundary. [007] The deblocking edge decisions are computed for line 0 and line 3 for a 4 sample segment of the block boundary. Based on the deblocking edge decision either long deblocking filter, strong deblocking filter, or weak deblocking filter is applied for filtering lines 0 to 3 of the sample segment of the block boundary. [008] The following is an excerpt from VVC. This excerpt describes the decision process for luma block edges. 8.8.3.6.2 Decision process for luma block edges [The] Inputs to this process are: a picture sample array recPicture, a location ( xCb, yCb ) specifying the top-left sample of the current coding block relative to the top-left sample of the current picture, a location ( xBl, yBl ) specifying the top-left sample of the current block relative to the top-left sample of the current coding block, a variable edgeType specifying whether a vertical (EDGE_VER) or a horizontal (EDGE_HOR) edge is filtered, a variable bS specifying the boundary filtering strength, a variable maxFilterLengthP specifying the maximum filter length, a variable maxFilterLengthQ specifying the maximum filter length. [The] Outputs of this process are: the variables dE, dEp and dEq containing decisions, the modified filter length variables maxFilterLengthP and maxFilterLengthQ, the variable tC. The sample values pi,k and qj,k with i = 0..Max( 2, maxFilterLengthP ), j = 0..Max( 2, maxFilterLengthQ ) and k = 0 and 3 are derived as follows: If edgeType is equal to EDGE_VER, the following applies: qj,k = recPicture[ xCb + xB1 + j ][ yCb + yB1 + k ] (1256) pi,k = recPicture[ xCb + xB1 − i − 1 ][ yCb + yB1 + k ] (1257) Otherwise (edgeType is equal to EDGE_HOR), the following applies: qj,k = recPicture[ xCb + xB1 + k ][ yCb + yB1 + j ] (1258) p i,k = recPicture[ xCb + xB1 + k ][ yCb + yB1 − i − 1 ] (1259) The variable qpOffset is derived as follows: If sps_ladf_enabled_flag is equal to 1, the following applies: The variable lumaLevel of the reconstructed luma level is derived as follow: lumaLevel = ( ( p0,0 + p0,3 + q0,0 + q0,3 ) >> 2 ), (1260) The variable qpOffset is set equal to sps_ladf_lowest_interval_qp_offset and modified as follows: for( i = 0; i < sps_num_ladf_intervals_minus2 + 1; i++ ) { if( lumaLevel > SpsLadfIntervalLowerBound[ i + 1 ] ) qpOffset = sps_ladf_qp_offset[ i ] (1261) else break } Otherwise, qpOffset is set equal to 0. The variables QpQ and QpP are set equal to the QpY values of the coding units which include the coding blocks containing the sample q 0,0 and p 0,0 , respectively. The variable qP is derived as follows: qP = ( ( QpQ + QpP + 1 ) >> 1 ) + qpOffset (1262) The value of the variable β′ is determined as specified in Table 43 based on the quantization parameter Q derived as follows: Q = Clip3( 0, 63, qP + ( slice_beta_offset_div2 << 1 ) ) (1263) where slice_beta_offset_div2 is the value of the syntax element slice_beta_offset_div2 for the slice that contains sample q0,0. The variable β is derived as follows: β = β′ * ( 1 << ( BitDepth − 8 ) ) (1264) The value of the variable t C ′ is determined as specified in Table 43 based on the quantization parameter Q derived as follows: Q = Clip3( 0, 65, qP + 2 * ( bS − 1 ) + ( slice_tc_offset_div2 << 1 ) ) (1265) where slice_tc_offset_div2 is the value of the syntax element slice_tc_offset_div2 for the slice that contains sample q 0,0 . The variable tC is derived as follows: If BitDepth is less than 10, the following applies: tC = ( tC′ + ( 1 << ( 9 − BitDepth ) ) ) >> ( 10 − BitDepth ) (1266) Otherwise (BitDepth is greater than or equal to 10), the following applies:  t C = BitDepth < 10 ? ( t C ′ + 2 ) >> ( 10 − BitDepth ) : t C ′ * ( 1 << ( BitDepth − 10 ) ) (1267) The following ordered steps apply: 1. The variables dp0, dp3, dq0 and dq3 are derived as follows: dp0 = Abs( p2,0 − 2 * p1,0 + p0,0 ) (1268) dp3 = Abs( p2,3 − 2 * p1,3 + p0,3 ) (1269) dq0 = Abs( q 2,0 − 2 * q 1,0 + q 0,0 ) (1270) dq3 = Abs( q 2,3 − 2 * q 1,3 + q 0,3 ) (1271) 2. When maxFilterLengthP and maxFilterLengthQ both are equal to or greater than 3 the variables sp0, sq0, spq0, sp3, sq3 and spq3 are derived as follows: sp0 = Abs( p3,0 − p0,0 ) (1272) sq0 = Abs( q0,0 − q3,0 ) (1273) spq0 = Abs( p0,0 − q0,0 ) (1274) sp3 = Abs( p3,3 − p0,3 ) (1275) sq3 = Abs( q0,3 − q3,3 ) (1276) spq3 = Abs( p 0,3 − q 0,3 ) (1277) 3. The variables sidePisLargeBlk and sideQisLargeBlk are set equal to 0. 4. When maxFilterLengthP is greater than 3, sidePisLargeBlk is set equal to 1. 5. When maxFilterLengthQ is greater than 3, sideQisLargeBlk is set equal to 1. 6. When edgeType is equal to EDGE_HOR and (yCb + yBl ) % CtbSizeY is equal to 0, sidePisLargeBlk is set equal to 0. 7. The variables dSam0 and dSam3 are initialized to 0. 8. When sidePisLargeBlk or sideQisLargeBlk is greater than 0, the following applies: a. The variables dp0L, dp3L are derived and maxFilterLengthP is modified as follows: If sidePisLargeBlk is equal to 1, the following applies: dp0L = ( dp0 + Abs( p 5,0 − 2 * p 4,0 + p 3,0 ) + 1 ) >> 1 (1278) dp3L = ( dp3 + Abs( p 5,3 − 2 * p 4,3 + p 3,3 ) + 1 ) >> 1 (1279) Otherwise, the following applies: dp0L = dp0 (1280) dp3L = dp3 (1281) maxFilterLengthP = 3 (1282) b. The variables dq0L and dq3L are derived as follows: If sideQisLargeBlk is equal to 1, the following applies: dq0L = ( dq0 + Abs( q 5,0 − 2 * q 4,0 + q 3,0 ) + 1 ) >> 1 (1283) dq3L = ( dq3 + Abs( q 5,3 − 2 * q 4,3 + q 3,3 ) + 1 ) >> 1 (1284) Otherwise, the following applies: dq0L = dq0 (1285) dq3L = dq3 (1286) c. The variables sp0L and sp3L are derived as follows: If maxFilterLengthP is equal to 7, the following applies: sp0L = sp0 + Abs( p 7,0 − p 6,0 − p 5,0 + p 4,0 ) (1287) sp3L = sp3 + Abs( p 7,3 − p 6,3 − p 5,3 + p 4,3 ) (1288) Otherwise, the following applies: sp0L = sp0 (1289) sp3L = sp3 (1290) d. The variables sq0L and sq3L are derived as follows: If maxFilterLengthQ is equal to 7, the following applies: sq0L = sq0 + Abs( q4,0 − q5,0 − q6,0 + q7,0 ) (1291) sq3L = sq3 + Abs( q 4,3 − q 5,3 − q 6,3 + q 7,3 ) (1292) Otherwise, the following applies: sq0L = sq0 (1293) sq3L = sq3 (1294) e. The variables dpq0L, dpq3L, and dL are derived as follows: dpq0L = dp0L + dq0L (1295) dpq3L = dp3L + dq3L (1296) dL = dpq0L + dpq3L (1297) f. When dL is less than β, the following ordered steps apply: i. The variable dpq is set equal to 2 * dpq0L. ii. The variable sp is set equal to sp0L, the variable sq is set equal to sq0L and the variable spq is set equal to spq0. iii. The variables p0 p3 qo and q3 are first initialized to 0 and then modified according to sidePisLargeBlk and sideQisLargeBlk as follows: When sidePisLargeBlk is equal to 1, the following applies: p3 = p3,0 (1298) p0 = pmaxFilterLengthP,0 (1299) When sideQisLargeBlk is equal to 1, the following applies: q 3 = q 3,0 (1300) q 0 = q maxFilterLengthQ,0 (1301) iv. For the sample location ( xCb + xBl, yCb + yBl ), the decision process for a luma sample as specified in clause 8.8.3.6.5 is invoked with the sample values p 0 , p 3 , q 0 , q 3 , the variables dpq, sp, sq, spq, sidePisLargeBlk, sideQisLargeBlk, β and tC as inputs, and the output is assigned to the decision dSam0. v. The variable dpq is set equal to 2 * dpq3L. vi. The variable sp is set equal to sp3L, the variable sq is set equal to sq3L and the variable spq is set equal to spq3. vii. The variables p 0 p 3 q 0 and q 3 are first initialized to 0 and are then modified according to sidePisLargeBlk and sideQisLargeBlk as follows: When sidePisLargeBlk is equal to 1, the following applies: p 3 = p 3,3 (1302) p 0 = p maxFilterLengthP,3 (1303) When sideQisLargeBlk is equal to 1, the following applies: q3 = q3,3 (1304) q0 = qmaxFilterLengthQ,3 (1305) viii. When edgeType is equal to EDGE_VER for the sample location ( xCb + xBl, yCb + yBl + 3 ) or when edgeType is equal to EDGE_HOR for the sample location ( xCb + xBl + 3, yCb + yBl ), the decision process for a luma sample as specified in clause 8.8.3.6.5 is invoked with the sample values p0, p3, q0, q3, the variables dpq, sp, sq, spq, sidePisLargeBlk, sideQisLargeBlk, β and tC as inputs, and the output is assigned to the decision dSam3. 9. The variables dE, dEp and dEq are derived as follows: If dSam0 and dSam3 are both equal to 1, the variable dE is set equal to 3, dEp is set equal to 1, and dEq is set equal to 1. Otherwise, the following ordered steps apply: a. The variables dpq0, dpq3, dp, dq and d are derived as follows: dpq0 = dp0 + dq0 (1306) dpq3 = dp3 + dq3 (1307) dp = dp0 + dp3 (1308) dq = dq0 + dq3 (1309) d = dpq0 + dpq3 (1310) b. The variables dE, dEp, dEq, sidePisLargeBlk and sideQisLargeBlk are set equal to 0. c. When d is less than β and both maxFilterLengthP and maxFilterLengthQ are greater than 2, the following ordered steps apply: i. The variable dpq is set equal to 2 * dpq0. ii. The variable sp is set equal to sp0, the variable sq is set equal to sq0 and the variable spq is set equal to spq0. iii. For the sample location ( xCb + xBl, yCb + yBl ), the decision process for a luma sample as specified in clause 8.8.3.6.5 is invoked with the variables p0, p3, q0, q3 all set equal to 0, the variables dpq, sp, sq, spq, sidePisLargeBlk, sideQisLargeBlk, β and t C as inputs, and the output is assigned to the decision dSam0. iv. The variable dpq is set equal to 2 * dpq3. v. The variable sp is set equal to sp3, the variable sq is set equal to sq3 and the variable spq is set equal to spq3. vi. When edgeType is equal to EDGE_VER for the sample location ( xCb + xB1, yCb + yB1 + 3 ) or when edgeType is equal to EDGE_HOR for the sample location ( xCb + xB1 + 3, yCb + yB1 ), the decision process for a sample as specified in clause 8.8.3.6.5 is invoked with the variables p0, p3, q0, q3 all set equal to 0, the variables dpq, sp, sq, spq, sidePisLargeBlk, sideQisLargeBlk, β and t C as inputs, and the output is assigned to the decision dSam3. d. When d is less than β, the following ordered steps apply: i. The variable dE is set equal to 1. ii. When dSam0 is equal to 1 and dSam3 is equal to 1, the variable dE is set equal to 2 and both maxFilterLengthP and maxFilterLengthQ are set equal to 3. iii. When maxFilterLengthP is greater than 1, and maxFilterLengthQ is greater than 1, and dp is less than ( β + ( β >> 1 ) ) >> 3, the variable dEp is set equal to 1. iv. When maxFilterLengthP is greater than 1, and maxFilterLengthQ is greater than 1, and dq is less than ( β + ( β >> 1 ) ) >> 3, the variable dEq is set equal to 1. v. When dE is equal to 1, maxFilterLengthP is set equal to 1 + dEp and maxFilterLengthQ is set equal to 1 + dEq. [009] The following is another excerpt from VVC. This excerpt describes the filtering process for luma block edges: 8.8.3.6.3 Filtering process for luma block edges [The] Inputs to this process are: a picture sample array recPicture, a location ( xCb, yCb ) specifying the top-left sample of the current coding block relative to the top-left sample of the current picture, a location ( xB1, yB1 ) specifying the top-left sample of the current block relative to the top-left sample of the current coding block, a variable edgeType specifying whether a vertical (EDGE_VER) or a horizontal (EDGE_HOR) edge is filtered, the variables dE, dEp and dEq containing decisions, the variables maxFilterLengthP and maxFilterLengthQ containing maximum filter lengths, the variable tC. [The] Output of this process is the modified picture sample array recPicture. Depending on the value of edgeType, the following applies: If edgeType is equal to EDGE_VER, the following ordered steps apply: 1. The sample values pi,k and qj,k with i = 0..maxFilterLengthP, j = 0..maxFilterLengthQ and k = 0..3 are derived as follows: q j,k = recPicture[ xCb + xB1 + j ][ yCb + yB1 + k ] (1311) p i,k = recPicture[ xCb + xB1 − i − 1 ][ yCb + yB1 + k ] (1312) 2. When dE is not equal to 0 and dE is not equal to 3, for each sample location ( xCb + xB1, yCb + yB1 + k ), k = 0..3, the following ordered steps apply: The filtering process for a luma sample using short filters as specified in clause 8.8.3.6.6 is invoked with the variables maxFilterLengthP, maxFilterLengthQ, the sample values p i,k , q j,k with i = 0..maxFilterLengthP and j = 0..maxFilterLengthQ, the decision dE, the variables dEp and dEq and the variable t C as inputs, and the number of filtered samples nDp and nDq from each side of the block boundary and the filtered sample values pi′ and qj′ as outputs. When nDp is greater than 0, the filtered sample values pi′ with i = 0..nDp − 1 replace the corresponding samples inside the sample array recPicture as follows: recPicture[ xCb + xB1 − i − 1 ][ yCb + yB1 + k ] = p i ′ (1313) When nDq is greater than 0, the filtered sample values qj′ with j = 0..nDq − 1 replace the corresponding samples inside the sample array recPicture as follows: recPicture[ xCb + xB1 + j ][ yCb + yB1 + k ] = q j ′ (1314) 3. When dE is equal to 3, for each sample location ( xCb + xB1, yCb + yB1 + k ), k = 0..3, the following ordered steps apply: The filtering process for a luma sample using long filters as specified in clause 8.8.3.6.7 is invoked with the variables maxFilterLengthP, maxFilterLengthQ, the sample values p i,k , q j,k with i = 0..maxFilterLengthP and j = 0..maxFilterLengthQ, and tC as inputs and the filtered samples values p i ′ and q j ′ as outputs. The filtered sample values p i ′ with i = 0..maxFilterLengthP − 1 replace the corresponding samples inside the sample array recPicture as follows: recPicture[ xCb + xB1 − i − 1 ][ yCb + yB1 + k ] = pi′ (1315) The filtered sample values qj′ with j = 0..maxFilterLengthQ − 1 replace the corresponding samples inside the sample array recPicture as follows: recPicture[ xCb + xB1 + j ][ yCb + yB1 + k ] = qj′ (1316) Otherwise (edgeType is equal to EDGE_HOR), the following ordered steps apply: 1. The sample values pi,k and qj,k with i = 0..maxFilterLengthP, j = 0..maxFilterLengthQ and k = 0..3 are derived as follows: q j,k = recPicture[ xCb + xB1 + k ][ yCb + yB1 + j ] (1317) pi,k = recPicture[ xCb + xB1 + k ][ yCb + yB1 − i − 1 ] (1318) 2. When dE is not equal to 0 and dE is not equal to 3, for each sample location ( xCb + xB1 + k, yCb + yB1 ), k = 0..3, the following ordered steps apply: a. The filtering process for a luma sample using short filters as specified in clause 8.8.3.6.6 is invoked with the variables maxFilterLengthP, maxFilterLengthQ, the sample values p i,k , q i,k with i = 0..maxFilterLengthP and j = 0..maxFilterLengthQ, the decision dE, the variables dEp and dEq, and the variable t C as inputs, and the number of filtered samples nDp and nDq from each side of the block boundary and the filtered sample values pi′ and qj′ as outputs. b. When nDp is greater than 0, the filtered sample values p i ′ with i = 0..nDp − 1 replace the corresponding samples inside the sample array recPicture as follows: recPicture[ xCb + xB1 + k ][ yCb + yB1 − i − 1 ] = p i ′ (1319) c. When nDq is greater than 0, the filtered sample values qj′ with j = 0..nDq − 1 replace the corresponding samples inside the sample array recPicture as follows: recPicture[ xCb + xB1 + k ][ yCb + yB1 + j ] = qj′ (1320) 3. When dE is equal to 3, for each sample location ( xCb + xB1 + k, yCb + yB1 ), k = 0..3, the following ordered steps apply: a. The filtering process for a luma sample using long filters as specified in clause 8.8.3.6.7 is invoked with the variables maxFilterLengthP, maxFilterLengthQ, the sample values p i,k , q j,k with i = 0..maxFilterLengthP and j = 0..maxFilterLengthQ, and the variable tC as inputs, and the filtered sample values p i ′ and q j ′ as outputs. b. The filtered sample values pi′ with i = 0..maxFilterLengthP − 1 replace the corresponding samples inside the sample array recPicture as follows: recPicture[ xCb + xB1 + k ][ yCb + yB1 − i − 1 ] = p i ′ (1321) c. The filtered sample values q j ′ with j = 0..maxFilterLengthQ − 1 replace the corresponding samples inside the sample array recPicture as follows: recPicture[ xCb + xB1 + k ][ yCb + yB1 + j ] = qj′ (1322) [0010] The following is another excerpt from the VVC. This excerpt describes a decision process for a luma sample: 8.8.3.6.6 Decision process for a luma sample [The] Inputs to this process are: the sample values p0, p3, q0 and q3, the variables dpq, sp, sq, spq, sidePisLargeBlk, sideQisLargeBlk, β and tC. [The] Output of this process is the variable dSam containing a decision. The variables sp and sq are modified as follows: When sidePisLargeBlk is equal to 1, the following applies: sp = ( sp + Abs( p 3 − p 0 ) + 1 ) >> 1 (1357) When sideQisLargeBlk is equal to 1, the following applies: sq = ( sq + Abs( q3 − q0 ) + 1 ) >> 1 (1358) The variables sThr1 and sThr2 are is derived as follows: If sidePisLargeBlk is equal to 1 or sideQisLargeBlk is equal to 1, the following applies: sThr1 = 3 * β >> 5 (1359) sThr2 = β >> 4 (1360) Otherwise, the following applies: sThr1 = β >> 3 (1361) sThr2 = β >> 2 (1362) The variable dSam is specified as follows: If all of the following conditions are true, dSam is set equal to 1: dpq is less than sThr2, sp + sq is less than sThr1, spq is less than ( 5 * t C + 1 ) >> 1. Otherwise, dSam is set equal to 0. [0011] The following is another excerpt from the VVC. This excerpt describes a filtering process for a luma sample using short filters: 8.8.3.6.7 Filtering process for a luma sample using short filters [The] Inputs to this process are: the variables maxFilterLengthP and maxFilterLengthQ, the sample values p i and q j with i = 0..maxFilterLengthP and j = 0..maxFilterLengthQ, a variable dE, the variables dEp and dEq containing decisions to filter samples p1 and q1, respectively, a variable t C . [The] Outputs of this process are: the number of filtered samples nDp and nDq, the filtered sample values pi′ and qj′ with i = 0..nDp − 1, j = 0..nDq − 1. Depending on the value of dE, the following applies: If the variable dE is equal to 2, nDp and nDq are both set equal to 3 and the following strong filtering applies: p0′ = Clip3( p0 − 3 * tC, p0 + 3 * tC, ( p2 + 2 * p1 + 2 * p0 + 2 * q0 + q1 + 4 ) >> 3 ) (1363) p 1 ′ = Clip3( p 1 − 2 * t C , p 1 + 2 * t C , ( p 2 + p 1 + p 0 + q 0 + 2 ) >> 2 ) (1364) p 2 ′ = Clip3( p 2 − 1 * t C , p 2 + 1*t C , ( 2 * p 3 + 3 * p 2 + p 1 + p 0 + q 0 + 4 ) >> 3 ) (1365) q0′ = Clip3( q0 − 3 * tC, q0 + 3 * tC, ( p1 + 2 * p0 + 2 * q0 + 2 * q1 + q2 + 4 ) >> 3 ) (1366) q 1 ′ = Clip3( q 1 − 2 * t C , q 1 + 2 * t C , ( p 0 + q 0 + q 1 + q 2 + 2 ) >> 2 ) (1367) q2′= Clip3( q2 − 1 * tC, q2 + 1 * tC, ( p0 + q0 + q1 + 3 * q2 + 2 * q3 + 4 ) >> 3 ) (1368) Otherwise, nDp and nDq are set both equal to 0 and the following weak filtering applies: The following applies: Δ = ( 9 * ( q 0 − p 0 ) − 3 * ( q 1 − p 1 ) + 8 ) >> 4 (1369) When Abs( ^) is less than tC * 10, the following ordered steps apply: The filtered sample values p 0 ′ and q 0 ′ are specified as follows: Δ = Clip3( −t C , t C , Δ ) (1370) p 0 ′ = Clip1( p 0 + Δ ) (1371) q0′ = Clip1( q0 − Δ ) (1372) When dEp is equal to 1, the filtered sample value p 1 ′ is specified as follows: Δp = Clip3( −( t C >> 1 ), t C >> 1, ( ( ( p 2 + p 0 + 1 ) >> 1 ) − p 1 + Δ ) >> 1 ) (1373) p 1 ′ = Clip1( p 1 + Δp ) (1374) When dEq is equal to 1, the filtered sample value q1′ is specified as follows: Δq = Clip3( −( t C >> 1 ), t C >> 1, ( ( ( q 2 + q 0 + 1 ) >> 1 ) − q 1 − Δ ) >> 1 ) (1375) q 1 ′ = Clip1( q 1 + Δq ) (1376) nDp is set equal to dEp + 1 and nDq is set equal to dEq + 1. When nDp is greater than 0 and pred_mode_plt_flag of the coding unit that includes the coding block containing the sample p0 is equal to 1, nDp is set equal to 0. When nDq is greater than 0 and pred_mode_plt_flag of the coding unit that includes the coding block containing the sample q 0 is equal to 1, nDq is set equal to 0. [0012] The following is another excerpt from the VVC. This excerpt describes a filtering process for a luma sample using long filters: 8.8.3.6.8 Filtering process for a luma sample using long filters [The] Inputs to this process are: the variables maxFilterLengthP and maxFilterLengthQ, the sample values p i and q j with i = 0..maxFilterLengthP and j = 0..maxFilterLengthQ, a variable t C . [The] Outputs of this process are: the filtered sample values pi′ and qj′ with i = 0..maxFilterLengthP − 1, j = 0..maxFilterLengthQ − 1. The variable refMiddle is derived as follows: If maxFilterLengthP is equal to maxFilterLengthQ and maxFilterLengthP is equal to 5, the following applies: refMiddle = ( p4 + p3 + 2* ( p2 + p1 + p0 + q0 + q1 + q2 ) + q3 + q4 + 8) >> 4 (1377) Otherwise, if maxFilterLengthP is equal to maxFilterLengthQ and maxFilterLengthP is not equal to 5, the following applies: refMiddle = ( p6 + p5 + p4 + p3 + p2 + p1 + 2* ( p0 + q0 ) + q1 + q2 + q3 + q4 + q5 + q6 + 8 ) >> 4 (1378) Otherwise, if one of the following conditions are true, maxFilterLengthQ is equal to 7 and maxFilterLengthP is equal to 5, maxFilterLengthQ is equal to 5 and maxFilterLengthP is equal to 7, the following applies: refMiddle = ( p5 + p4 + p3 + p2 + 2* ( p1 + p0 + q0 + q1 ) + q2 + q3 + q4 + q5 + 8 ) >> 4 (1379) Otherwise, if one of the following conditions are true, maxFilterLengthQ is equal to 5 and maxFilterLengthP is equal to 3, maxFilterLengthQ is equal to 3 and maxFilterLengthP is equal to 5, the following applies: refMiddle = ( p3 + p2 + p1 + p0 + q0 + q1 + q2 + q3 + 4) >> 3 (1380) Otherwise, if maxFilterLengthQ is equal to 7 and maxFilterLengthP is equal to 3, the following applies: refMiddle = ( 2 * ( p2 + p1 + p0 + q0 ) + p0 + p1 + q1 + q2 + q3 + q4 + q5 + q6 + 8 ) >> 4 (1381) Otherwise, the following applies: refMiddle = ( p6 + p5 + p4 + p3 + p2 + p1 + 2*( q2 + q1 + q0 + p0) + q0 + q1 + 8 ) >> 4 (1382) The variables refP and refQ are derived as follows: refP = ( p maxFilterLengtP + p maxFilterLengthP-1 + 1 ) >> 1 (1383) refQ = ( q maxFilterLengtQ + q maxFilterLengthQ-1 + 1 ) >> 1 (1384) The variables fi and tCPDi are defined as follows: If maxFilterLengthP is equal to 7, the following applies: f0..6 = { 59, 50, 41, 32, 23, 14, 5 } (1385) tCPD0..6 = { 6, 5, 4, 3, 2, 1, 1 } (1386) Otherwise, if maxFilterLengthP is equal to 5, the following applies: f0..4 = { 58, 45, 32, 19, 6 } (1387) tCPD0..4 = { 6, 5, 4, 3, 2 } (1388) Otherwise, the following applies: f 0..2 = { 53, 32, 11 } (1389) t C PD 0..2 = { 6, 4, 2} (1390) The variables g j and t C QD j are defined as follows: If maxFilterLengthQ is equal to 7, the following applies: g0..6 = { 59, 50, 41, 32, 23, 14, 5 } (1391) tCQD0..6 = { 6, 5, 4, 3, 2, 1, 1 } (1392) Otherwise, if maxFilterLengthQ is equal to 5, the following applies: g0..4 = { 58, 45, 32, 19, 6 } (1393) t C QD 0..4 = { 6, 5, 4, 3, 2 } (1394) Otherwise, the following applies: g 0..2 = { 53, 32, 11 } (1395) tCQD0..2 = { 6, 4, 2 } (1396) The filtered sample values pi′ and qj′ with i = 0..maxFilterLengthP − 1 and j = 0..maxFilterLengthQ − 1 are derived as follows: p i ′ = Clip3( p i − ( t C * t C PD i >> 1 ), p i + ( t C * t C PD i >> 1 ), ( refMiddle * f i + refP * ( 64 − fi ) + 32) >> 6 ) (1397) q j ′ = Clip3( q j − ( t C * t C QD j >> 1 ), q j + ( t C * t C QD j >> 1 ), ( refMiddle * g j + refQ * ( 64 − gj ) + 32) >> 6 ) (1398) When pred_mode_plt_flag of the coding unit that includes the coding block containing the sample pi is equal to 1, the filtered sample value, pi′ is substituted by the corresponding input sample value p i with i = 0..maxFilterLengthP − 1. When pred_mode_plt_flag of the coding unit that includes the coding block containing the sample q i is equal to 1, the filtered sample value, q i ′ is substituted by the corresponding input sample value qj with j = 0..maxFilterLengthQ – 1. [0013] To adapt video coding for good subjective video quality adaptive quantization parameter (QP) of the transform coefficients are deployed. One exemplarily adaptive QP method is to derive variance of a block and give a low QP to blocks with low variance and a higher QP to blocks with high variance. This enables better accuracy of smooth blocks than of blocks with lots of details. This makes more efficient use of bits where they matter most. [0014] Previous work by the present inventors on improvements to VVC deblocking filter introduced longer filters of 15, 23, and 31 filter taps, as in this excerpt: Then the filtered value is determined by linear interpolation between refP and refMiddle, and between refQ and refMiddle. p’k,i = (fk*refMiddle + (64- fk)*refP + 32) >> 6 q’ l,i = (g l *refMiddle + (64- g l )*refQ +32) >> 6 where for a deblocking length of 31 on both sides: f=g={ 63, 61, 59, 57, 55, 53, 51, 49, 46, 44, 42, 40, 38, 36, 34, 32, 30, 28, 26, 24, 22, 20, 18, 15, 13, 11, 9, 7, 5, 3, 1 }; for a deblocking length of 15 on both sides: f=g={ 62, 58, 53, 49, 45, 41, 36, 32, 28, 23, 19, 15, 11, 6, 2} for a deblocking length of 23 on both sides: f=g={ 63, 60, 57, 54, 51, 49, 46, 43, 40, 38, 35, 32, 29, 26, 24, 21, 18, 15, 13, 10, 7, 4, 1} [0015] Corresponding filter decision process the new extra-long filters where extended as follows for sp0L, sp3L, sq0L, sq3L: For example sp0L, sp3L, sq0L and sq3L as in VVC can be extended to include samples as in this embodiment as follows: When maxFilterLengthP is 15: sp0L = sp0 + (Abs( p15,0 – p14,0 – p13,0 + p12,0)+ Abs( p15,0 + p14,0 + p13,0 + p12,0 − p 11,0 − p 10,0 − p 9,0 − p 8,0 − p 7,0 − p 6,0 − p 5,0 − p 4,0 + p 3,0 + p 2,0 + p 1,0 + p 0,0 )+1)>>1 (1287) sp3L = sp3 + (Abs( p15,3 – p14,3 – p13,3 + p12,3) + Abs( p15,3 + p14,3 + p13,3 + p12,3 − p 11,3 − p 10,3 − p 9,3 − p 8,3 − p 7,3 − p 6,3 − p 5,3 − p 4,3 + p 3,3 + p 2,3 + p 1,3 + p 0,3 )+1)>>1 (1288) When maxFilterLengthQ is 15: sq0L = sq0 + (Abs( q 15,0 – q 14,0 – q 13,0 + q 12,0 ) + Abs( q 15,0 + q 14,0 + q 13,0 + q 12,0 − q11,0− q10,0− q9,0− q8,0− q7,0− q6,0− q5,0− q4,0+ q3,0+ q2,0+ q1,0+ q0,0)+1)>>1 (1291) sq3L = sq3 + (Abs( q15,3 – q14,3 – q13,3 + q12,3 ) + Abs( q15,3 + q14,3 + q13,3 + q12,3 − q11,3− q10,3− q9,3− q8,3− q7,3− q6,3− q5,3− q4,3+ q3,3+ q2,3+ q1,3+ q0,3)+1)>>1 (1292) Or alternatively as follows: When maxFilterLengthP is 15: sp0L = sp0 + (Abs( p15,0 – 2p14,0 + p13,0)+ Abs( p15,0 + p14,0 + p13,0 + p12,0 − p 11,0 − p 10,0 − p 9,0 − p 8,0 − p 7,0 − p 6,0 − p 5,0 − p 4,0 + p 3,0 + p 2,0 + p 1,0 + p 0,0 )+1)>>1 (1287) sp3L = sp3 + (Abs( p 15,3 – 2p 14,3 + p 13,3 ) + Abs( p 15,3 + p 14,3 + p 13,3 + p 12,3 − p11,3− p10,3− p9,3− p8,3− p7,3− p6,3− p5,3− p4,3+ p3,3+ p2,3+ p1,3+ p0,3)+1)>>1 (1288) When maxFilterLengthQ is 15: sq0L = sq0 + (Abs( q 15,0 – 2q 14,0 + q 13,0 ) + Abs( q 15,0 + q 14,0 + q 13,0 + q 12,0 − q11,0− q10,0− q9,0− q8,0− q7,0− q6,0− q5,0− q4,0+ q3,0+ q2,0+ q1,0+ q0,0)+1)>>1 (1291) sq3L = sq3 + (Abs( q15,3 – 2q14,3 + q13,3 ) + Abs( q15,3 + q14,3 + q13,3 + q12,3 − q 11,3 − q 10,3 − q 9,3 − q 8,3 − q 7,3 − q 6,3 − q 5,3 − q 4,3 + q 3,3 + q 2,3 + q 1,3 + q 0,3 )+1)>>1 (1292) [0016] And final decision process thresholding for extra-long filters were extended as follows: If (maxFilterLengthPActual == 15) { sp0L15 = Abs(p 15,0 - p 11,0 ) + Abs(p 11,0 – p 7,0) dp0L15 = Abs( p 15,0 – 2*p 14,0 + p 13,0 )+ Abs( p 12,0 – 2*p 11,0 + p 10,0 ) + Abs( p 9,0 – p 8,0 – p 7,0 + p 6,0 ) sp3L15 = Abs(p 15,3 - p 11,3 ) + Abs(p 11,3 – p 7,3 ) dp3L15 = Abs( p 15,3 – 2*p 14,3 + p 13,3 )+ Abs( p 12,3 – 2*p 11,3 + p 10,3 ) + Abs( p 9,3 – p 8,3 – p 7,3 + p 6,3 ) } If (maxFilterLengthQActual == 15) { sq0L15 = Abs(q15,0 - q11,0) + Abs(q11,0 – q7,0) dq0L15 = Abs( q15,0 – 2*q14,0 + q13,0)+ Abs( q12,0 – 2*q11,0 + q10,0) + Abs( q9,0 – q8,0 – q7,0 + q6,0) sq3L15 = Abs(q15,3 - q11,3) + Abs(q11,3 – q7,3) dq3L15 = Abs( q 15,3 – 2*q 14,3 + q 13,3 )+ Abs( q 12,3 – 2*q 11,3 + q 10,3 ) + Abs( q 9,3 – q 8,3 – q 7,3 + q 6,3 ) } If the following checks are true, deblocking with the extra-long filter is performed, maxFilterLengthP=maxFilterLengtPActual and maxFilterLengthQ=maxFilterLengthQActual, otherwise deblocking with the restricted deblocking length is performed (e.g. max deblocking length of 7): sp0L15 + sq0L15 < thr1 dp0L15 + dq0L15 < thr2 sp3L15 + sq3L15 < thr1 dp3L15 + dq3L15 < thr2 where thr1 (in some embodiments) is equal to 3 * β >> 6 and thr2 (in some embodiments) is equal to β >> 5. SUMMARY [0017] Embodiments provide extra robustness to the filter decision process on where to apply the extra-long (15 taps or more) filters. One part is to extend the check where previously the difference between the two samples on each side of a block boundary calculated to an average of all the samples within the filter area. Secondly, a restriction to the threshold parameter, Tc, is introduced for extra-long filter check. [0018] The additional steps to the filter decision in disclosed embodiments improves the efficiency of the prior art longer deblocking filters. The decisions can be well aligned with the VVC design. This also improves subjective quality of encoded video. [0019] According to a first aspect, a method for deblocking is provided. The method includes checking whether a current block is smooth. The method includes checking whether an adjacent block is smooth. The adjacent block is adjacent to a boundary of the current block. The method includes determining that a criteria is true. The criteria comprises (1) one or more of the current block and the adjacent block being smooth and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block and a second average value of the adjacent block and the second difference is a difference between a third average value of the current block and a fourth average value of the adjacent block. The method includes, as a result of determining that the criteria is true, applying a long-tap deblocking across the boundary of the current block. A length of the long-tap deblocking is greater than or equal to 15. [0020] In some embodiments, the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are given by: where lenP is equal to maxFilterLengthP, the maximum filter length of the current block, lenQ is equal to maxFilterLengthQ, the maximum filter length of the adjacent block, p i,0 and p i,3 refer to values in the current block indexed by i and q i,0 and q i,3 refer to values in the adjacent block indexed by i. In some embodiments, the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are calculated using bit shifts to avoid a division operator being used. [0021] In some embodiments, the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are averaged over every N-th sample for a value of N and given by: where maxFilterLengthP is the maximum filter length of the current block, maxFilterLengthQ is the maximum filter length of the adjacent block, p i,0 and p i,3 refer to values in the current block indexed by i and q i,0 and q i,3 refer to values in the adjacent block indexed by i. [0022] In some embodiments, the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are calculated using bit shifts to avoid a division operator being used. In some embodiments, the threshold is a minimum of tC and a fixed threshold, where tC is a variable and where the fixed threshold is determined by the bit depth. [0023] According to a second aspect, a method for deblocking is provided. The method includes checking whether a size of a current block exceeds a size threshold. The method includes checking whether a size of an adjacent block exceeds the size threshold. The adjacent block is adjacent to a boundary of the current block. The method includes determining that a criteria is true, wherein the criteria comprises (1) both a size of the current block and a size of the adjacent block exceeding the size threshold and (2) first and second differences being less than a threshold. The first difference is a difference between a first average value of the current block and a second average value of the adjacent block and the second difference is a difference between a third average value of the current block and a fourth average value of the adjacent block. The method includes, as a result of determining that the criteria is true, applying a long-tap deblocking across the boundary of the current block. A length of the long-tap deblocking is greater than or equal to 15. [0024] According to a third aspect, a computer program is provided, comprising instructions which when executed by processing circuitry of a node, causes the node to perform the method of any of the embodiments of the first and second aspects. [0025] According to a fourth aspect, a carrier is provided, containing the computer program of the third aspect. The carrier is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium. [0026] According to a fifth aspect, an encoder is provided. The encoder includes processing circuitry. The encoder includes a memory, the memory containing instructions executable by the processing circuitry. When the instructions are executed, the encoder is configured to perform the method of any one the embodiments of the first and second aspects. [0027] According to a sixth aspect, a decoder is provided. The decoder includes processing circuitry. The decoder includes a memory, the memory containing instructions executable by the processing circuitry. When the instructions are executed, the encoder is configured to perform the method of any one the embodiments of the first and second aspects. BRIEF DESCRIPTION OF THE DRAWINGS [0028] The accompanying drawings, which are incorporated herein and form part of the specification, illustrate various embodiments. [0029] FIG.1 is an example architecture of an encoder according to an embodiment. [0030] FIG.2 is an example architecture of a decoder according to an embodiment. [0031] FIGS.3A and 3B are exemplary diagrams of image blocks. [0032] FIG.4 is an exemplary diagram of a block boundary segment. [0033] FIG.5 is a flow chart according to an embodiment. [0034] FIG.6 is a flow chart according to an embodiment. [0035] FIG.7 is a block diagram of a node (e.g., an encoder or decoder) according to an embodiment. DETAILED DESCRIPTION [0036] One aspect of some embodiments is to provide decisions for when to enable the long deblocking filters, particularly for filters having a length of 15 or greater. The decisions can also be aligned with the VVC design. Embodiments may be used with image and video encoding and decoding where it can enhance deblocking. An exemplary encoder is shown in FIG.1, and an exemplary decoder is shown in FIG.2, both of which use deblocking as illustrated. Other in-loop tools may be performed before or after the deblocking, but other in-loop filters are not included in FIG.1 and FIG.2. Embodiments could also be applied as a post-filter outside the coding loop but before display. However, in that case, coding artifacts may appear inside large blocks since they are not removed from the coding/decoding loop. [0037] Embodiments extend the work the inventors previously contributed toward providing extra-long deblocking filtering. In particular, embodiments provide additional checks for determining when to apply such filtering, and are applicable to any embodiments for providing extra-long deblocking filtering by providing additional criteria for such filtering. Examples of where the additional checks may be useful include embodiments that base filtering decisions on smoothness related criteria, or on size related criteria, or some combination of these or other criteria. [0038] Blocks may have any particular size, but usually they are of uniform size to each other, and square. For example, FIG.3A illustrates an exemplary division of a coding tree unit of 256x256 into 4128x128 blocks and FIG.3B illustrates an exemplary division of a coding tree unit of 256x256 into 1664x64 blocks. [0039] FIG.4 illustrates 4 lines extending 16 samples on each side of a block boundary 402. Samples are shown from a block P (404) and a block Q (406). Samples are denoted as p 0 (samples from block P) or q i,j (samples from block Q) according to their position in the block, as indexed by (i,j) which denote column and row information. Although block boundary 402 denotes a horizontal boundary in this figure, block boundary 402 may also indicate other boundaries, such as a vertical boundary. [0040] Embodiment 1 [0041] When block sizes on either P or Q side of a block boundary 402 allows for a 15-tap or larger deblocking filter and the checks on the parameters sp0L15, sq0L15, dp0L15, dq0L15, sp3L15, sq3L15, dp3L15, and dq3L15 return true, additional decision criteria are applied. The two following conditions must be true: Abs(avgP0 – avgQ0) < min(tC,fixedThreshold) Abs(avgP3 – avgQ3) < min(tC,fixedThreshold) Where: The value fixedThreshold is a threshold based on the bit-depth. For example, fixedThreshold may be 21 when bit-depth is 10, and for higher bit-depth the fixedThreshold may be amplified appropriately as fixedThreshold*(1 << (bitDepth-10)). For lower bit-depth the threshold may be attenuated as fixedThreshold >> (10-bitDepth). The value lenP is equal to maxFilterLengthP and the value lenQ is equal to maxFilterLengthQ. [0042] If the criteria are not fulfilled the filter decisions proceed as the filter process for 7-tap filters as in VVC specification. [0043] Embodiment 2 [0044] The division can be avoided in embodiment 1 for avgP0, avgP3, avgQ0, and avgQ3 by using right bit shifts instead. For example:

where shiftVec[16] = { 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4 } [0045] Embodiment 3 [0046] The decision criteria are as in embodiment 1, where only every N:th sample is used to calculate avgP0, avgP3, avgQ0, and avgQ3: [0047] Embodiment 4 [0048] The division can be avoided in embodiment 3 by using right bit shifts instead o f divisions where N is equal to 2. For example: where shiftVec[16] = { 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3 }. [0049] Embodiment 5 [0050] This embodiment relates to the filtering. To calculate refMiddle when one side uses longer filtering it is needed to select samples to use for the calculation. Corresponding criteria in VVC can be changed according to the italicized text below: .. Otherwise, if maxFilterLengthP is equal to maxFilterLengthQ and maxFilterLengthP is not equal to 5, or maxFilterLengthP is equal to 7 and maxFilterLengthQ is equal to 15, or maxFilterLengthP is equal to 15 and maxFilterLengthQ is equal to 7, the following applies: refMiddle = ( p 6 + p 5 + p 4 + p 3 + p 2 + p 1 + 2* ( p 0 + q 0 ) + q 1 + q 2 + q 3 + q 4 + q 5 + q 6 + 8 ) >> 4 (118) .. Otherwise, if one of the following conditions is true: maxFilterLengthQ is equal to 7 or greater than 7 and maxFilterLengthP is equal to 5, maxFilterLengthQ is equal to 5 and maxFilterLengthP is equal to 7 or greater than 7, the following applies: refMiddle = ( p5 + p4 + p3 + p2 + 2* ( p1 + p0 + q0 + q1 ) + q2 + q3 + q4 + q5 + 8 ) >> 4 (119) .. Otherwise, if maxFilterLengthQ is equal to 7 or greater than 7 and maxFilterLengthP is equal to 3, the following applies: refMiddle = ( 2 * ( p 2 + p 1 + p 0 + q 0 ) + p 0 + p 1 + q 1 + q 2 + q 3 + q 4 + q 5 + q 6 + 8 ) >> 4 (120) [0051] FIG.5 illustrates a flow chart according to an embodiment. Process 500 is a method for deblocking. The method may begin with step s502. [0052] Step s502 comprises checking whether a current block is smooth. [0053] Step s504 comprises checking whether an adjacent block is smooth, wherein the adjacent block is adjacent to a boundary of the current block. [0054] Step s506 comprises determining that a criteria is true, wherein the criteria comprises (1) one or more of the current block and the adjacent block being smooth and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block and a second average value of the adjacent block and the second difference is a difference between a third average value of the current block and a fourth average value of the adjacent block. [0055] Step s508 comprises, as a result of determining that the criteria is true, applying a long-tap deblocking across the boundary of the current block, wherein a length of the long-tap deblocking is greater than or equal to 15. [0056] In some embodiments, the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are given by: where lenP is equal to maxFilterLengthP, the maximum filter length of the current block, lenQ is equal to maxFilterLengthQ, the maximum filter length of the adjacent block, p i,0 and p i,3 refer to values in the current block indexed by i and q i,0 and q i,3 refer to values in the adjacent block indexed by i. In some embodiments, the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are calculated using bit shifts to avoid a division operator being used. [0057] In some embodiments, the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are averaged over every N-th sample for a value of N and given by: where maxFilterLengthP is the maximum filter length of the current block, maxFilterLengthQ is the maximum filter length of the adjacent block, p i,0 and p i,3 refer to values in the current block indexed by i and q i,0 and q i,3 refer to values in the adjacent block indexed by i. [0058] In some embodiments, the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are calculated using bit shifts to avoid a division operator being used. In some embodiments, the threshold is a minimum of tC and a fixed threshold, where tC is a variable and where the fixed threshold is determined by the bit depth. [0059] FIG.6 illustrates a flow chart according to an embodiment. Process 600 is a method for deblocking. The method may begin with step s602. [0060] Step s602 comprises checking whether a size of a current block exceeds a size threshold. [0061] Step s604 comprises checking whether a size of an adjacent block exceeds the size threshold, wherein the adjacent block is adjacent to a boundary of the current block. [0062] Step s606 comprises determining that a criteria is true, wherein the criteria comprises (1) both a size of the current block and a size of the adjacent block exceeding the size threshold and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block and a second average value of the adjacent block and the second difference is a difference between a third average value of the current block and a fourth average value of the adjacent block. [0063] Step s608 comprises, as a result of determining that the criteria is true, applying a long-tap deblocking across the boundary of the current block, wherein a length of the long-tap deblocking is greater than or equal to 15. [0064] FIG.7 is a block diagram of node 700 (e.g., an encoder or decoder), according to some embodiments. As shown in FIG.7, node 700 may comprise: processing circuitry (PC) 702, which may include one or more processors (P) 755 (e.g., one or more general purpose microprocessors and/or one or more other processors, such as an application specific integrated circuit (ASIC), field-programmable gate arrays (FPGAs), and the like), which processors may be co-located in a single housing or in a single data center or may be geographically distributed (i.e., node 700 may be a distributed computing apparatus); at least one network interface 748 (e.g., a physical interface or air interface) comprising a transmitter (Tx) 745 and a receiver (Rx) 747 for enabling node 700 to transmit data to and receive data from other nodes connected to a network 710 (e.g., an Internet Protocol (IP) network) to which network interface 748 is connected (physically or wirelessly) (e.g., network interface 748 may be coupled to an antenna arrangement comprising one or more antennas for enabling node 700 to wirelessly transmit/receive data); and a local storage unit (a.k.a., “data storage system”) 708, which may include one or more non-volatile storage devices and/or one or more volatile storage devices. In embodiments where PC 702 includes a programmable processor, a computer program product (CPP) 741 may be provided. CPP 741 includes a computer readable medium (CRM) 742 storing a computer program (CP) 743 comprising computer readable instructions (CRI) 744. CRM 742 may be a non-transitory 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 embodiments, the CRI 744 of computer program 743 is configured such that when executed by PC 702, the CRI causes node 700 to perform steps described herein (e.g., steps described herein with reference to the flow charts). In other embodiments, node 700 may be configured to perform steps described herein without the need for code. That is, for example, PC 702 may consist merely of one or more ASICs. Hence, the features of the embodiments described herein may be implemented in hardware and/or software. [0065] As used herein, a network element, node, or subsystem (e.g., an encoder or decoder) may be comprised 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 operative to receive/consume content in a media distribution network where media content assets may be distributed and delivered using stream-based or file-based mechanisms. As such, some network elements may be disposed in a wireless radio network environment whereas other network elements may be disposed in a public packet-switched network infrastructure, including or otherwise involving suitable content delivery network (CDN) infrastructure that may comprise public, private, or mixed CDNs. Further, suitable network elements including one or more embodiments set forth herein may involve terrestrial and/or satellite broadband delivery infrastructures, e.g., a Digital Subscriber Line (DSL) network architecture, a Data Over Cable Service Interface Specification (DOCSIS)-compliant Cable Modem Termination System (CMTS) architecture, switched digital video (SDV) network architecture, a Hybrid Fiber-Coaxial (HFC) network architecture, a suitable satellite access network architecture or a broadband wireless access network architecture over cellular and/or WiFi connectivity. Accordingly, some network elements may comprise “multiple services network elements” that provide support for multiple network-based functions (e.g., 360º immersive A/V media preparation 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 multiple application services (e.g., data and multimedia applications including 360º immersive video assets (also referred to as 360-degree video assets or simply 360 video assets) in varying qualities or definitions). Example subscriber end stations or client devices may comprise various devices, tethered or untethered, that may consume or deliver media content assets using streaming and/or file-based downloading technologies, which may involve some type of rate adaptation in certain embodiments. Illustrative client devices or UE devices may therefore include any device configured to execute, inter alia, one or more client applications for receiving, recording, storing, and/or decoding/rendering 360 video content, live media and/or static/on-demand media, which may comprise Virtual Reality (VR) media, Augmented Reality (AR) media, Mixed Reality (MR) media, from one or more content providers, e.g., via a broadband access network, using HTTP, HTTPS, RTP, and the like. Accordingly, such client devices may include Next Generation IP-based STBs, networked TVs, personal/digital video recorders (PVR/DVRs), networked media projectors, portable laptops, netbooks, palm tops, tablets, smartphones, multimedia/video phones, mobile/wireless user equipment, portable media players, portable gaming systems or consoles (such as the Wii®, Play Station 3®, etc.) operating in concert with 3D display devices and the like, which may access or consume 360-degree content/services provided via a suitable media distribution network wherein a bandwidth and Quality of Experience (QoE) scheme may be provided in accordance with to one or more embodiments set forth herein. [0066] One or more embodiments of the present patent disclosure may be implemented using different combinations of software, firmware, and/or hardware. Thus, 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 over a network) code and data using 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.), transitory computer-readable transmission media (e.g., electrical, optical, acoustical or other form 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 other components, such as one or more storage devices (e.g., non-transitory machine-readable storage media) as well as storage database(s), user input/output devices (e.g., a keyboard, a touch screen, a pointing device, and/or a display), and network connections for effectuating signaling and/or bearer media transmission. The coupling of the set of processors and other components may be typically through one or more buses and bridges (also termed as bus controllers), arranged in any known (e.g., symmetric/shared multiprocessing) or heretofore unknown architectures. Thus, the storage device or component of a given electronic device or network element may be configured to store code and/or data for execution on one or more processors of that element, node or electronic device for purposes of implementing one or more techniques of the present disclosure. [0067] Skilled artisans will recognize that the foregoing generalized example network environment may be implemented in a hierarchical network architecture, with various aspects of media capture and preparation, including, e.g., source stream stitching, projection mapping, source media compression, tiled/ABR encoding/transcoding, packaging, etc., as well as distributing/uploading and edge node processes taking place in different network portions disposed at different hierarchical levels, involving one or more operators, content delivery networks (CDNs), edge networks, and the like. Further, in some implementations, at least some of the foregoing apparatuses and processes may be cloud-based. In some arrangements, a CDN can be a large distributed system of servers deployed in multiple data centers connected to the Internet or other public/private communications network. A CDN can be a managed or unmanaged network, and can also be a federation of managed or unmanaged networks. [0068] An example embodiment of a media server/source system operatively associated within the foregoing example network environment may therefore be configured, e.g., as a global headend, to accept media content from live sources and/or static file sources, e.g., online content providers such as Hulu®, Netflix®, YouTube®, or Amazon® Prime, as well as VOD catalog or content providers or studios such as, e.g., Disney, Warner, Sony, etc. Media content from live sources may comprise live programming captured relative to any type of event, e.g., sporting/entertainment/gaming events, concerts, live TV shows, live news broadcasting sources, such as, for instance, national broadcasters (e.g., NBC, ABC, etc.) as well as cable broadcaster channels like Time Warner channels of CNN, ESPN, CNBC, etc., and local broadcasters, etc., including any secondary media insertions such as advertisement media channels. [0069] Summary of Various Embodiments A1. A method for deblocking, the method comprising: checking whether a current block is smooth; checking whether an adjacent block is smooth, wherein the adjacent block is adjacent to a boundary of the current block; determining that a criteria is true, wherein the criteria comprises (1) one or more of the current block and the adjacent block being smooth and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block and a second average value of the adjacent block and the second difference is a difference between a third average value of the current block and a fourth average value of the adjacent block; and as a result of determining that the criteria is true, applying a long-tap deblocking across the boundary of the current block, wherein a length of the long-tap deblocking is greater than or equal to 15. A2. The method of embodiment A1, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are given by: where lenP is equal to maxFilterLengthP, the maximum filter length of the current block, lenQ is equal to maxFilterLengthQ, the maximum filter length of the adjacent block, p i,0 and p i,3 refer to values in the current block indexed by i and q i,0 and q i,3 refer to values in the adjacent block indexed by i. A3. The method of embodiment A2, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are calculated using bit shifts to avoid a division operator being used. A4. The method of embodiment A1, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are averaged over every N-th sample for a value of N and given by: where maxFilterLengthP is the maximum filter length of the current block, maxFilterLengthQ is the maximum filter length of the adjacent block, p i,0 and p i,3 refer to values in the current block indexed by i and q i,0 and q i,3 refer to values in the adjacent block indexed by i. A5. The method of embodiment A4, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are calculated using bit shifts to avoid a division operator being used. A6. The method of any one of embodiments A1-A5, wherein the threshold is a minimum of tC and a fixed threshold, where tC is a variable and where the fixed threshold is determined by the bit depth. B1. A method for deblocking, the method comprising: checking whether a size of a current block exceeds a size threshold; checking whether a size of an adjacent block exceeds the size threshold, wherein the adjacent block is adjacent to a boundary of the current block; determining that a criteria is true, wherein the criteria comprises (1) both a size of the current block and a size of the adjacent block exceeding the size threshold and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block and a second average value of the adjacent block and the second difference is a difference between a third average value of the current block and a fourth average value of the adjacent block; and as a result of determining that the criteria is true, applying a long-tap deblocking across the boundary of the current block, wherein a length of the long-tap deblocking is greater than or equal to 15. B2. The method of embodiment B1, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are given by: where lenP is equal to maxFilterLengthP, the maximum filter length of the current block, lenQ is equal to maxFilterLengthQ, the maximum filter length of the adjacent block, p i,0 and p i,3 refer to values in the current block indexed by i and q i,0 and q i,3 refer to values in the adjacent block indexed by i. B3. The method of embodiment B2, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are calculated using bit shifts to avoid a division operator being used. B4. The method of embodiment B1, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are averaged over every N-th sample for a value of N and given by: where maxFilterLengthP is the maximum filter length of the current block, maxFilterLengthQ is the maximum filter length of the adjacent block, p i,0 and p i,3 refer to values in the current block indexed by i and q i,0 and q i,3 refer to values in the adjacent block indexed by i. B5. The method of embodiment B4, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are calculated using bit shifts to avoid a division operator being used. B6. The method of any one of embodiments B1-B5, wherein the threshold is a minimum of tC and a fixed threshold, where tC is a variable and where the fixed threshold is determined by the bit depth. C1. A computer program comprising instructions which when executed by processing circuitry of a node, causes the node to perform the method of any one of embodiments A1- A6, and B1-B6. C2. A carrier containing the computer program of embodiment C1, wherein the carrier is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium. D1. An encoder, the encoder comprising: processing circuitry; and a memory, the memory containing instructions executable by the processing circuitry, whereby the encoder is configured to perform the method of any one the embodiments A1- A6, and B1-B6. D2. A decoder, the decoder comprising: processing circuitry; and a memory, the memory containing instructions executable by the processing circuitry, whereby the decoder is configured to perform the method of any one the embodiments A1- A6, and B1-B6. E1. An encoder configured to deblock, the encoder being further configured to: check whether a current block is smooth; check whether an adjacent block is smooth, wherein the adjacent block is adjacent to a boundary of the current block; determine that a criteria is true, wherein the criteria comprises (1) one or more of the current block and the adjacent block being smooth and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block and a second average value of the adjacent block and the second difference is a difference between a third average value of the current block and a fourth average value of the adjacent block; and as a result of determining that the criteria is true, apply a long-tap deblocking across the boundary of the current block, wherein a length of the long-tap deblocking is greater than or equal to 15. E2. The encoder of embodiment E1, wherein the encoder is further configured to perform the method of any one of embodiments A2-A6. F1. An encoder configured to deblock, the encoder being further configured to: check whether a size of a current block exceeds a size threshold; check whether a size of an adjacent block exceeds the size threshold, wherein the adjacent block is adjacent to a boundary of the current block; determine that a criteria is true, wherein the criteria comprises (1) both a size of the current block and a size of the adjacent block exceeding the size threshold and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block and a second average value of the adjacent block and the second difference is a difference between a third average value of the current block and a fourth average value of the adjacent block; and as a result of determining that the criteria is true, apply a long-tap deblocking across the boundary of the current block, wherein a length of the long-tap deblocking is greater than or equal to 15. F2. The encoder of embodiment F1, wherein the encoder is further configured to perform the method of any one of embodiments B2-B6. G1. A decoder configured to deblock, the decoder being further configured to: check whether a current block is smooth; check whether an adjacent block is smooth, wherein the adjacent block is adjacent to a boundary of the current block; determine that a criteria is true, wherein the criteria comprises (1) one or more of the current block and the adjacent block being smooth and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block and a second average value of the adjacent block and the second difference is a difference between a third average value of the current block and a fourth average value of the adjacent block; and as a result of determining that the criteria is true, apply a long-tap deblocking across the boundary of the current block, wherein a length of the long-tap deblocking is greater than or equal to 15. G2. The decoder of embodiment G1, wherein the decoder is further configured to perform the method of any one of embodiments A2-A6. H1. A decoder configured to deblock, the decoder being further configured to: check whether a size of a current block exceeds a size threshold; check whether a size of an adjacent block exceeds the size threshold, wherein the adjacent block is adjacent to a boundary of the current block; determine that a criteria is true, wherein the criteria comprises (1) both a size of the current block and a size of the adjacent block exceeding the size threshold and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block and a second average value of the adjacent block and the second difference is a difference between a third average value of the current block and a fourth average value of the adjacent block; and as a result of determining that the criteria is true, apply a long-tap deblocking across the boundary of the current block, wherein a length of the long-tap deblocking is greater than or equal to 15. H2. The decoder of embodiment H1, wherein the decoder is further configured to perform the method of any one of embodiments B2-B6. [0070] Enhanced Compression Model (ECM) can operate at a larger CTU and transform size than VVC. To enable stronger deblocking of large blocks it is proposed in some embodiments to increase the maximum deblocking length from 7 to 15 for a boundary segment that has a size orthogonal to the block boundary of 64 samples or more. The filter design is similar to the VVC deblocking design for length greater than 3. The deblocking decision for a longer filter (length 15 on at least one side) is checked if length 7 deblocking decisions are passed. The additional decision for length 15 is similar to VVC but uses more samples to ensure that the deblocking filter is not used when there is a risk to remove natural texture. [0071] In some embodiments, subjective improvements can be seen on both SDR and HDR material especially at lower bitrates. [0072] The deblocking design in VVC can handle deblocking up to length 7 on both sides of a block boundary. With the increase of CTU and transform size in ECM it also makes sense to increase the length of the deblocking filter. [0073] Embodiments provide a filter decision for length 15 for luma. When a four samples block boundary segment has a size orthogonal to the block boundary of 64 or more samples and length 7 conditions are fulfilled, the following additional checks are made for line 0 and line 3 of a boundary segment, where k is line 0 or line 3: ((spLk+sqLk) < (beta>>6)) && ((dpLk+dqLk)< (beta>>5)) && (abs(avgPk- avgQk) < min(tC,21)) Where: spL k = sqL k = dpL k = dqL k = avgP k = avgQ k = 0 if(maxFilterLengthP>7) { spLk = spLk + abs(p7,k – p11,k) + abs(p11,k – p15,k) dpL k = dpL k + abs(p 6,k – p 7,k – p 8,k + p 9,k ) + abs(p 10,k – 2*p 11,k + p 12,k ) + abs(p 13,k – 2*p 14,k + p 15,k ) } if(maxFilterLengthQ>7) { sqL k = sqL k + abs(q 7,k – q 11,k ) + abs(q 11,k – q 15,k ) dqLk = dqLk + abs(q6,k – q7,k – q8,k + q9,k) + abs(q10,k – 2*q11,k + q12,k) + abs(q13,k – 2*q14,k + q15,k) } for (int j = 0; j < (maxFilterLengthQ+1); j++) { avgQk += qj,k; } avgQk = (avgQk + (maxFilterLengthQ+1)/2)/(maxFilterLengthQ+1); for (int j = 0; j < (maxFilterLengthP+1); j++) { avgP k += p j,k ; } avgPk = (avgPk + (maxFilterLengthP+1)/2)/(maxFilterLengthP+1); [0074] Embodiments provide a filter for length 15 for luma. The filtering follows the same spirit as in VVC but where a longer filter of length 15 can be used if the long filter decision in section 2.1 is fulfilled. Four lines k=0 to k=3 are filtered by linear interpolation as follows: pi,k’ = Clip3(pi,k – tC, pi,k – tC, (refMk*coeffsi + refPk*(64-coeffsPi)+32) >> 6); qj,k’ = Clip3(qj,k – tC, qj,k – tC, (refMk*coeffsj + refQk*(64-coeffsQj)+32) >> 6); where refM, refP, refQ, coeffsP and coeffsQ follows VVC besides adding a length 15 interpolation filter: coeffsP[15] = { 62, 58, 53, 49, 45, 41, 36, 32, 28, 23, 19, 15, 11, 6, 2}; coeffsQ[15] = { 62, 58, 53, 49, 45, 41, 36, 32, 28, 23, 19, 15, 11, 6, 2}; Where refMk is derived same as when at least one side has length 7. refPk and refQk are derived based on length on respective side. [0075] Results of embodiments are provided below.   [0076] While various embodiments are described herein, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of this disclosure should not be limited by any of the above-described exemplary embodiments. Moreover, any combination of the above-described elements in all possible variations thereof is encompassed by the disclosure unless otherwise indicated herein or otherwise clearly contradicted by context. [0077] Additionally, while the processes described above and illustrated in the drawings are shown as a sequence of steps, this was done solely for the sake of illustration. Accordingly, it is contemplated that some steps may be added, some steps may be omitted, the order of the steps may be re-arranged, and some steps may be performed in parallel.