WO2020171760A1 - Deblocking on 4x4 grid using long filters - Google Patents

Deblocking on 4x4 grid using long filters Download PDF

Info

Publication number
WO2020171760A1
WO2020171760A1 PCT/SE2020/050181 SE2020050181W WO2020171760A1 WO 2020171760 A1 WO2020171760 A1 WO 2020171760A1 SE 2020050181 W SE2020050181 W SE 2020050181W WO 2020171760 A1 WO2020171760 A1 WO 2020171760A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
boundary
equal
length
samples
Prior art date
Application number
PCT/SE2020/050181
Other languages
French (fr)
Inventor
Kenneth Andersson
Jack ENHORN
Zhi Zhang
Original Assignee
Telefonaktiebolaget Lm Ericsson (Publ)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget Lm Ericsson (Publ) filed Critical Telefonaktiebolaget Lm Ericsson (Publ)
Publication of WO2020171760A1 publication Critical patent/WO2020171760A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock

Definitions

  • This disclosure relates to High Efficiency Video Coding (HEVC) and Versatile
  • a video sequence consists of a series of images where each image consists of one or more components.
  • Each component can be described as a two-dimensional rectangular array of sample values. It is common that an image in a video sequence consists of three components; one luma component Y where the sample values are luma values and two chroma components Cb and Cr, where the sample values are chroma values. Other examples include Y’ Cb Cr, Yuv and ICTCP. In ICTCP, I is the“intensity luma” component. For the remainder of this document we will refer to any luma component Y’, Y or I as Y or simply luma.
  • the dimensions of the chroma components are smaller than the luma components by a factor of two in each dimension.
  • the size of the luma component of an HD image would be 1920x1080 and the chroma components would each have the dimension of 960x540.
  • Components are sometimes referred to as color components.
  • a block is one two-dimensional array of samples.
  • each component is split into blocks and the coded video bitstream is a series of blocks. It is common in video coding that the image is split into units that cover a specific area of the image. Each unit consist of all blocks from all components that make up that specific area and each block belongs fully to one unit.
  • the macroblock in H.264 and the Coding unit (CU) in HEVC are examples of units.
  • each picture is partitioned into coding tree units (CTU).
  • CTU consist of an NxN block of luma samples and two MxM corresponding chroma blocks.
  • a CTU in HEVC is like macroblocks in H.264 and earlier standards but in contrast to macroblocks the CTU size is configurable. Most often, however, the CTU size in HEVC is set to 64x64 luma samples.
  • Each CTU can be recursively quadtree split. The root of the quadtree is then associated with the CTU. The quadtree is split until a leaf is reached, which is referred to as the coding unit (CU).
  • CU coding unit
  • a CU in HEVC always consist of a luma block with equal height and width.
  • the CU is further the root node of two other trees, the prediction tree that has got prediction units (PUs) as nodes and the transform tree that has got transform units (TUs) as nodes.
  • Some decoding processes in HEVC is done on the CU level, some is done on the PU level and some on TU level. Boundaries between PUs and boundaries between TUs are filtered by a deblocking filter to reduce discontinuities between TUs and PUs.
  • HEVC High Efficiency Video Coding
  • intra prediction which only uses prediction from previously decoded samples of the current picture for prediction
  • inter prediction which uses prediction form at least one previously decoded picture.
  • deblocking is first applied on vertical boundaries and then on horizontal boundaries.
  • the boundaries are either TU boundaries or PU boundaries.
  • the deblocking is performed on an 8x8 sample grid.
  • a deblocking filter strength parameter (bs) is set for each boundary. If the value of bs is larger than 0, then deblocking may be applied. The larger the boundary strength is, the stronger filtering is applied.
  • bs is set to 2
  • bs is set to 1
  • code block flag CBF equal to l
  • bs boundary strength
  • gradient calculations are used on respective sides of the boundary using the following inequality: abs(p0 - 2*pl+p2) + abs(q0-2*ql+q2) ⁇ beta, where beta is a parameter based on the quantization parameter for the block and pO, pi, to p2 are samples on one side of the block boundary and qO, ql, to q2 are samples on the other side of the block boundary.
  • the condition is checked at two positions along the boundary, and if both conditions are fulfilled, then the luma samples are deblocked for that 4 sample part of the boundary. Chroma boundaries may always be filtered if one any of the neighbouring blocks are intra code
  • a coding tree unit (CTU) is similar to the CTU in HEVC with the difference that the CTU in H.266 has a size of 128x128 luma samples.
  • the CTU can be split more flexibly such that a resulting CUs may consist of a rectangular luma block.
  • a CU in WC can be divided into a multiple of TUs in cases as follows:
  • a CU has a size larger than the maximum transform size (e.g., if the max transform size is 64x64 and the CU has a size of 128x128 the CU is divided into four 64x64 implicit split transform blocks, as shown in FIG 1);
  • a CU uses SBT, Sub-Block Transform, which may enable one sub-block transform of size 1 ⁇ 2 or 1 ⁇ 4 of the CU size either vertically or horizontally with non-zero coefficients, where direction (horizontal or vertical), position (first or second sub-block for size 1 ⁇ 2, first or last sub-block for size 1 ⁇ 4) and size (1 ⁇ 2 or 1 ⁇ 4) is derived from the bitstream, as shown in FIG. 2;
  • a CU uses ISP, Intra Sub-Partitions, which may enable 4 sub-blocks each of size 1 ⁇ 4 of the CU size either vertically or horizontally or for smaller blocks 2 sub-blocks each of size 1 ⁇ 2 of the CU size either vertically or horizontally, as shown in FIG. 3.
  • a CU can be divided into multiple prediction sub-blocks in cases as follows:
  • a CU uses sub-block inter prediction tool AFFINE.
  • This tool can have motion parameters (motion vector and indication of reference frame) on sub-block size 4x4;
  • a CU uses sub-block inter prediction tool ATMVP (this tool can have motion parameters (motion vector and indication of reference frame) on sub-block size 8x8, as shown in FIG. 4);
  • a CU uses a Combined Intra Inter Prediction mode that uses four sub-block specific weights each for 1 ⁇ 4 size of the CU in the direction of the prediction for weighted combination of intra and inter prediction, as shown in FIG. 5.
  • the deblocking is applied on an 8x8 grid for CUs that have a CU boundary aligned with an 8x8 grid first on vertical boundaries (CU/implicit TU/prediction sub block boundaries) and then on horizontal boundaries (CU/implicit TU/prediction sub-blocks).
  • the deblocking is based on HEVC deblocking and also longer deblocking filter if the size orthogonal to the block boundary is equal to or larger than 32 on at least one side for luma modifying at most 7 samples and reading at most 8 samples on that side, 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 on respective side of the boundary otherwise it modifies at most one sample and reading at most two samples on respective side of the boundary.
  • the max number of samples to modify for a CU or implicit TU boundary is limited to 5 (reading at most 6 samples) if the CU uses prediction sub-blocks;
  • the max number of samples to modify for a prediction sub-block boundary adjacent to a CU or implicit TU boundary is 2 on both side of such boundaries (reading at most 3 samples on each side);
  • the long filter decisions for luma are applied if at least one side has a CU width which is equal to 32 or larger for vertical boundaries and CU height which is equal to 32 or larger for horizontal boundaries.
  • the P side has a variable bSidePisLargeBlk which is set to 1 if that side is 32 or longer and otherwise it is set to 0.
  • the Q side has a variable bSideQisLargeBlk which is set to 1 if that side is 32 or longer, otherwise it is set to 0.
  • FIG. 6 a boundary 606 between a block P 602 and a block Q 604 is shown for
  • the long filter decision checks if the sides of the boundary are smooth enough on line 0 and line 3 :
  • tC is a QP dependent parameter
  • refMiddle, refP and refQ are three pre-filtered samples where refMiddle is centered in the middle between block P and Q, refP is in block P and refQ is in block Q, g and f are vectors with interpolation filter coefficients for Q side and P side, tCPD and tCQD are vectors with position dependent clipping values for P side and Q side, which are derived as shown below based on maxFilterLengthP and maxF ilterLengthQ :
  • the boundary strength (bS) is set individually for luma and chroma components, both luma and chroma is given a bS equal to 2 for a transform block boundary if intra mode is used on either side, or if Combined Intra Inter Prediction (CUP) is used on either side. If the boundary is a transform block boundary and the transform block have non-zero transform coefficients on a color component, that component is given a Bs equal to 1. For other instances, the boundary strength is set to 0 for both chroma components which correspond to no deblocking. If the boundary is a prediction block/sub-block boundary and CUP is used on either side, the bS is set equal to 1 for luma.
  • the boundary is a prediction block/sub-block boundary and there is a difference in number of reference picture used on respective side of the boundary or different reference pictures are used or if there is a significant difference in motion vectors when same reference picture(s) are used, the bS is set equal to 1 for luma. Otherwise, the bS is set equal to 0 for luma which corresponds to no deblocking of luma.
  • CE11-2.1 there is a test to deploy deblocking on a 4x4 grid. This test applies deblocking on 4x4 grid to allow for deblocking of Nx4 blocks aligned with the current 8x8 grid in addition to deblocking of Nx8 blocks that are not aligned with the current grid.
  • the number of samples to read and modify is limited to allow for parallel friendly processing. If at least one side of the block boundary has a length orthogonal to the block boundary equal to 4, only a weak filter is used. Furthermore, only one sample is filtered on each side of the block boundary in this case.
  • WC does not filter on a 4x4 grid and, thus, blocking artifacts of 4xN and 8xN blocks can remain where N can be up to 64.
  • CE11-2.1 to address that, which restricts the number of samples to be modified to one sample on both sides of a boundary if one of the sides has a block width of 4. But that reduces the application of long filters when one side is equal to 32 or larger and the other side is 4, which can increase the amount of blocking artifacts.
  • the proposed solution disclosed herein applies deblocking on a 4x4 grid and add a new combination of long filter when one side of the block boundary has a length orthogonal to the block boundary of 32 or larger and the other side has an orthogonal length of 4: (1) first, the long filter decision on the side of length 4 is modified to only read 3 samples on the side which has orthogonal length 4 samples; (2) second, an additional long filter is applied for the case of pass of the long filter decision such that more than 3 samples are modified on the longer side and 1 sample is modified on the short side.
  • the orthogonal length may be one of: CU width for a vertical boundary; CU height for a horizontal boundary; transform block width for a vertical boundary or transform block height for a horizontal boundary.
  • a method for deblocking a boundary of a coding unit on a 4x4 grid The at least one boundary forms a first side and a second side of the coding unit.
  • the method includes determining a first length of the first side, wherein the first side is orthogonal to the boundary of the coding unit.
  • the method also includes determining whether the first length of the first side is equal to or less than a first predetermined threshold value.
  • the method also includes determining a second length of the second side, wherein the second side is orthogonal to the boundary of the coding unit.
  • the method also includes determining whether the second length of the second side is equal to or larger than a second predetermined threshold value.
  • the method also includes, as a result of determining that: (1) the first length of the first side is equal to or less than the first predetermined threshold value and (2) the second length of the second side is equal to or larger than the second predetermined threshold value, applying a long filter decision, wherein applying the long filter decision comprises using less than four samples on the first side and more than four samples on the second side.
  • the method also includes, as a result of the long filter decision, applying a long deblocking filter to modify more than three samples on the second side.
  • a computer program includes instructions which when executed by processing circuitry causes the processing circuitry to perform any of the above described methods.
  • a carrier containing the computer program is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium.
  • the at least one boundary forms a first side and a second side of the coding unit.
  • the apparatus is configured to determine a first length of the first side, wherein the first side is orthogonal to the boundary of the coding unit.
  • the apparatus is also configured to determine whether the first length of the first side is equal to or less than a first predetermined threshold value.
  • the apparatus is also configured to determine a second length of the second side, wherein the second side is orthogonal to the boundary of the coding unit.
  • the apparatus is also configured to determine whether the second length of the second side is equal to or larger than a second predetermined threshold value.
  • the apparatus is also configured to, as a result of determining that: (1) the first length of the first side is equal to or less than the first predetermined threshold value and (2) the second length of the second side is equal to or larger than the second predetermined threshold value, apply a long filter decision, wherein applying the long filter decision comprises using less than four samples on the first side and more than four samples on the second side.
  • the apparatus is also configured to, as a result of the long filter decision, applying a long deblocking filter to modify more than three samples on the second side.
  • the apparatus includes a computer readable storage medium and processing circuitry coupled to the computer readable storage medium, wherein the processing circuitry is configured to cause the apparatus to perform any of the above described methods.
  • the embodiments disclosed herein provide a significant advantage of efficiently reducing blocking artifacts while deblocking on an 4x4 grid.
  • Long filter decision and filtering for deblocking on a 4x4 grid as disclosed herein enables a significant advantage of long filtering near small blocks.
  • FIG. 1 illustrates a coding unit according to an embodiment.
  • FIG. 2 illustrates coding units using Sub-Block Transform (SBT) according to some embodiments.
  • SBT Sub-Block Transform
  • FIG. 3 illustrates coding units using Intra Sub-Partitions (ISP) according to some embodiments.
  • ISP Intra Sub-Partitions
  • FIG. 4 illustrates a coding unit according to one embodiment.
  • FIG. 5 illustrates coding units according to some embodiments.
  • FIG. 6 illustrates a vertical boundary according to one embodiment.
  • FIG. 7 is a flow chart illustrating a process according to an embodiment.
  • FIG. 8 is a diagram showing functional units of an encoder or decoder according to one embodiment.
  • FIG. 9 is a block diagram of an apparatus according to some embodiments. DETAILED DESCRIPTION
  • the proposed solution disclosed herein may be used in video or image encoder or decoder to deblock vertical and/or horizontal block/sub-block boundaries.
  • Embodiment 1 Modified Long Filter Decision
  • the long filter decision is adjusted such that only three samples are read at most on the shorter side where line is 0 or 3 according to some embodiments.
  • the adjusted long filter decision is shown as follows, with the modification underlined and italicized:
  • Embodiment 2 Modified Long Filter 7+1 [0053] If only one of bSidePisLargeBlk or bSideQisLargeBlk is equal to 1 and the side that has that variable equal to 0 has a size of 4 (length orthogonal to the block boundary) and the long filter decision allows for modification of 7 samples (maxFilterLengthP or
  • maxFilterLengthQ equal to 7 on one side and 1 sample (maxFilterLengthQ or maxFilterLengthP equal to 1) on the other side the long filtering is adjusted as follows:
  • refMiddle is defined as follows for both the case of bSideQisLargeBlk is equal to 1 and bSidePisLargeBlk is equal to 0 and maxFilterLengthP is 1 and maxFilterLengthQ is 7 respectively bSideQisLargeBlk is equal to 0 and bSidePisLargeBlk is equal to 1 and maxFilterLengthP is 7 and maxFilterLengthQ is 1 :
  • One alternative embodiment is to determine the refMiddle as follows:
  • FIG. 7 is flow chart illustrating a process 700 according to an embodiment.
  • Process 700 is a method for deblocking at least one vertical or horizontal boundary of a coding unit on a 4x4 grid for encoding and/or decoding a video picture, wherein the at least one vertical or horizontal boundary forms a first side and a second side of the coding unit.
  • the 700 method includes determining a first length of the first side, wherein the first side is orthogonal to the at least one vertical or horizontal boundary of the coding unit (710); determining a second length of the second side, wherein the second side is orthogonal to the at least one vertical or horizontal boundary of the coding unit (720); determining whether: (1) the first length of the first side is equal to or less than a first predetermined threshold value, and (2) the second length of the second side is equal to or larger than a second predetermined threshold value (730); applying a long filter decision as a result of determining that: (1) the first length of the first side is equal to or less than the first predetermined threshold value, and (2) the second length of the second side is equal to or larger than the second predetermined threshold value, wherein applying the long filter decision comprises using less than four samples on the first side and more than four samples on the second side (740); and applying a long deblocking filter to modify more than three samples on the second side as a result of the long filter decision (750).
  • the method further includes applying a filter to modify the sample closest to the boundary on the first side as a result of the long filter decision (760).
  • the first predetermined threshold value is 4 and the second predetermined threshold value is 32.
  • the first side comprises a first coding unit or a first transform sub-block
  • the second side comprises a second coding unit or a second transform sub-block.
  • the first length comprises a width of the first side and the second length comprises a width of the second side when the at least one vertical or horizontal boundary of the coding unit is a vertical boundary.
  • the first length comprises a height of the first side and the second length comprises a height of the second side when the at least one vertical or horizontal boundary of the coding unit is a horizontal boundary.
  • the long filter decision is based on a sp+sq ⁇ threshold, where sp is equal to Abs( pi ⁇ po) if block P is the shortest side or sq is equal to Abs( q2 - qo) if block Q is the shortest side, where po is closest to the block boundary in block P and qo is closest to the block boundary in block Q.
  • the filtering is based on linear interpolation as follows:
  • Pi' Clip3( pi - ((tC*tCPDi) » 1), Pi + ((tC*tCPDi) » 1), ( refMiddle*fi + refP*(64-fi)
  • maxFilterLengthP or maxFilterLengthQ is equal to 1 where po to p maxFiiterLengthP -i are unfiltered samples in block P with increasing distance from the boundary, where qo to qm axFiiterLengthQ -i are unfiltered samples in block Q with increasing distance from the boundary, tC is a QP dependent clipping threshold, tCPDi is position dependent clipping value in block P, tCQDi is position dependent clipping value in block Q, Clip3(x,y,z) clips z to be equal to or less than y and equal to or larger than x, f is a interpolation filter coefficient used in block P and gi is a interpolation filter coefficient used in block Q, refMiddle is a pre-filtered value centered in-between block P and block Q at least based on po and qo, refP is a sample in block P at least based on
  • FIG. 8 is a diagram showing functional units of an encoder or a decoder 802 according to some embodiments. As shown in FIG.
  • the encoder or decoder 802 includes a first determining unit 804 for determining a first length of the first side, wherein the first side is orthogonal to the at least one vertical or horizontal boundary of the coding unit; a second determining unit 806 for determining a second length of the second side, wherein the second side is orthogonal to the at least one vertical or horizontal boundary of the coding unit; a third determining unit 808 for determining whether: (1) the first length of the first side is equal to or less than a first predetermined threshold value, and (2) the second length of the second side is equal to or larger than a second predetermined threshold value; a first applying unit 810 for applying a long filter decision as a result of determining that: (1) the first length of the first side is equal to or less than the first predetermined threshold value, and (2) the second length of the second side is equal to or larger than the second predetermined threshold value, wherein applying the long filter decision comprises using less than four samples on the first side and more than four samples on the second side; and a second applying
  • the encoder or decoder 802 further includes a third applying unit for applying a filter to modify the sample closest to the boundary on the first side as a result of the long filter decision.
  • the first predetermined threshold value is 4 and the second predetermined threshold value is 32.
  • the first side comprises a first coding unit or a first transform sub-block
  • the second side comprises a second coding unit or a second transform sub-block.
  • FIG. 9 is a block diagram of an apparatus 900 for implementing encoder or decoder 802, according to some embodiments.
  • the apparatus may comprise: processing circuitry (PC) 902, which may include one or more processors (P) 955 (e.g., a general purpose microprocessor and/or one or more other processors, such as an application specific integrated circuit (ASIC), field-programmable gate arrays (FPGAs), and the like); a network interface 948 comprising a transmitter (Tx) 945 and a receiver (Rx) 947 for enabling the apparatus to transmit data to and receive data from other nodes connected to a network 1110 (e.g., an Internet Protocol (IP) network) to which network interface 948 is connected; and a local storage unit (a.k.a.,“data storage system”) 908, which may include one or more non-volatile storage devices and/or one or more volatile storage devices.
  • PC 902 includes a programmable processor, a computer program product (CP)
  • CP computer program product
  • CRM 943 comprising computer readable instructions (CRI) 944.
  • CRM 942 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.
  • the CRI 944 of computer program 943 is configured such that when executed by PC 902, the CRI causes the apparatus to perform steps described herein (e.g., steps described herein with reference to the flow charts).
  • the apparatus may be configured to perform steps described herein without the need for code. That is, for example, PC 902 may consist merely of one or more ASICs.
  • the features of the embodiments described herein may be implemented in hardware and/or software.
  • a method for deblocking at least one vertical or horizontal boundary of a coding unit on a 4x4 grid for encoding and/or decoding a video picture, wherein the at least one vertical or horizontal boundary forms a first side and a second side of the coding unit comprising: determining a first length of the first side, wherein the first side is orthogonal to the at least one vertical or horizontal boundary of the coding unit; determining a second length of the second side, wherein the second side is orthogonal to the at least one vertical or horizontal boundary of the coding unit; determining whether: (1) the first length of the first side is equal to or less than a first predetermined threshold value, and (2) the second length of the second side is equal to or larger than a second predetermined threshold value; as a result of determining that:
  • the first length of the first side is equal to or less than the first predetermined threshold value
  • the second length of the second side is equal to or larger than the second predetermined threshold value
  • A5. The method of any one of embodiments Al to A4, wherein the first length comprises a width of the first side and the second length comprises a width of the second side when the at least one vertical or horizontal boundary of the coding unit is a vertical boundary.
  • A6 The method of any one of embodiments Al to A4, wherein the first length comprises a height of the first side and the second length comprises a height of the second side when the at least one vertical or horizontal boundary of the coding unit is a horizontal boundary.
  • A7a The method of any of the previous embodiments, wherein the long filter decision is based on sp+sq ⁇ threshold, where sp is equal to Abs( pi ⁇ po) if block P is the shortest side or sq is equal to Abs( q2 - qo) if block Q is the shortest side, where po is closest to the block boundary in block P and qo is closest to the block boundary in block Q.
  • A7b The method of any of the previous claims, wherein the long filter decision is at least based on sp+sq ⁇ threshold for at least one line of samples across the boundary, where sp is equal to Abs( p2 - po) if block P is the shortest side or sq is equal to Abs( q2 - qo) if block Q is the shortest side, where po is closest to the block boundary in block P and qo is closest to the block boundary in block Q.
  • maxFilterLengthP or maxFilterLengthQ is equal to 1 where po to p maxFiiterLengthP -i are unfiltered samples in block P with increasing distance from the boundary, where qo to q maxFiiterLengthQ -i are unfiltered samples in block Q with increasing distance from the boundary, tC is a QP dependent clipping threshold, tCPDi is position dependent clipping value in block P, tCQDi is position dependent clipping value in block Q, Clip3(x,y,z) clips z to be equal to or less than y and equal to or larger than x, f is a interpolation filter coefficient used in block P and gi is a interpolation filter coefficient used in block Q, refMiddle is a pre-filtered value centered in-between block P and block Q at least based on po and qo, refP is a sample in block P at least based on
  • Sample in block Q based on qmaxFilterLengthQ, and po’ tO PmaxFilterLengthP-G are filtered samples in block P and qo’ to qm axFiiterLengthQ -r are filtered samples in block Q.
  • refP is equal to (pmaxFiiterLenthP + pmaxFilterLenthP-i + 1 ) » 1
  • refQ is equal to
  • refP is equal to (PmaxFiiterLenthP + PmaxFiiterLenthP- 1 + 1 ) »
  • refQ IS equal to (qmaxFilterLentliQ T qmaxFilterLentliQ-1 T 1 ) » 1.
  • Al l The method of any one of embodiments A1-A10, wherein the method is performed by an encoder.
  • A12 The method of any one of embodiments A1-A10, wherein the method is performed by a decoder.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

A deblocking method. The method includes determining a first length of a first side; determining whether the first length of the first side is not larger than a first predetermined threshold; determining a second length of the second side; determining whether the second length of the second side is not larger than a second predetermined threshold; as a result of determining that: (1) the first length of the first side is not larger than the first predetermined threshold and (2) the second length of the second side is not larger than the second predetermined threshold, applying a long filter decision, wherein applying the long filter decision comprises using less than four samples on the first side and more than four samples on the second side; and as a result of the long filter decision, applying a long deblocking filter to modify more than three samples on the second side.

Description

DEBLOCKING ON 4X4 GRID USING LONG LILTERS
TECHNICAL FIELD
[001] This disclosure relates to High Efficiency Video Coding (HEVC) and Versatile
Video Coding (WC).
BACKGROUND
[002] A video sequence consists of a series of images where each image consists of one or more components. Each component can be described as a two-dimensional rectangular array of sample values. It is common that an image in a video sequence consists of three components; one luma component Y where the sample values are luma values and two chroma components Cb and Cr, where the sample values are chroma values. Other examples include Y’ Cb Cr, Yuv and ICTCP. In ICTCP, I is the“intensity luma” component. For the remainder of this document we will refer to any luma component Y’, Y or I as Y or simply luma. It is common that the dimensions of the chroma components are smaller than the luma components by a factor of two in each dimension. For example, the size of the luma component of an HD image would be 1920x1080 and the chroma components would each have the dimension of 960x540.
Components are sometimes referred to as color components.
[003] A block is one two-dimensional array of samples. In video coding, each component is split into blocks and the coded video bitstream is a series of blocks. It is common in video coding that the image is split into units that cover a specific area of the image. Each unit consist of all blocks from all components that make up that specific area and each block belongs fully to one unit. The macroblock in H.264 and the Coding unit (CU) in HEVC are examples of units.
[004] In HEVC, each picture is partitioned into coding tree units (CTU). A CTU consist of an NxN block of luma samples and two MxM corresponding chroma blocks. A CTU in HEVC is like macroblocks in H.264 and earlier standards but in contrast to macroblocks the CTU size is configurable. Most often, however, the CTU size in HEVC is set to 64x64 luma samples. Each CTU can be recursively quadtree split. The root of the quadtree is then associated with the CTU. The quadtree is split until a leaf is reached, which is referred to as the coding unit (CU). A CU in HEVC always consist of a luma block with equal height and width. How each CTU is split is conveyed in the bitstream. The CU is further the root node of two other trees, the prediction tree that has got prediction units (PUs) as nodes and the transform tree that has got transform units (TUs) as nodes. Some decoding processes in HEVC is done on the CU level, some is done on the PU level and some on TU level. Boundaries between PUs and boundaries between TUs are filtered by a deblocking filter to reduce discontinuities between TUs and PUs.
In HEVC there exist two kinds of prediction types for a PU, intra prediction which only uses prediction from previously decoded samples of the current picture for prediction, and inter prediction which uses prediction form at least one previously decoded picture.
[005] In HEVC, deblocking is first applied on vertical boundaries and then on horizontal boundaries. The boundaries are either TU boundaries or PU boundaries. To enable parallel friendly deblocking, the deblocking is performed on an 8x8 sample grid.
[006] A deblocking filter strength parameter (bs) is set for each boundary. If the value of bs is larger than 0, then deblocking may be applied. The larger the boundary strength is, the stronger filtering is applied. First it is checked, if any of the blocks at a PU boundary between the blocks is an intra predicted block then (bs is set to= 2), or if both blocks use inter prediction but and they use different reference frames or have significantly different motion vectors then (bs is set to =1). It is also checked if a TU boundary between the blocks has non-zero transform coefficients in at least one of the blocks (code block flag CBF equal to l),then (bs is set to =1). This first checks sets a boundary strength (bs) which is larger than 0 to indicate that deblocking should be applied. The larger the boundary strength is the stronger filtering is applied. To reduce/avoid removing natural structures when deblocking, a check that there are not any natural structures on respective sides of the boundary is then applied for luma. In HEVC, gradient calculations are used on respective sides of the boundary using the following inequality: abs(p0 - 2*pl+p2) + abs(q0-2*ql+q2) < beta, where beta is a parameter based on the quantization parameter for the block and pO, pi, to p2 are samples on one side of the block boundary and qO, ql, to q2 are samples on the other side of the block boundary. The condition is checked at two positions along the boundary, and if both conditions are fulfilled, then the luma samples are deblocked for that 4 sample part of the boundary. Chroma boundaries may always be filtered if one any of the neighbouring blocks are intra coded.
[007] In the current draft of the specification for WC (WC draft 2 JVET-M1001) a coding tree unit (CTU) is similar to the CTU in HEVC with the difference that the CTU in H.266 has a size of 128x128 luma samples. In WC, the CTU can be split more flexibly such that a resulting CUs may consist of a rectangular luma block. In WC, there is no prediction tree or transform tree as in HEVC. However, a CU in WC can be divided into a multiple of TUs in cases as follows:
[008] (1) a CU has a size larger than the maximum transform size (e.g., if the max transform size is 64x64 and the CU has a size of 128x128 the CU is divided into four 64x64 implicit split transform blocks, as shown in FIG 1);
[009] (2) a CU uses SBT, Sub-Block Transform, which may enable one sub-block transform of size ½ or ¼ of the CU size either vertically or horizontally with non-zero coefficients, where direction (horizontal or vertical), position (first or second sub-block for size ½, first or last sub-block for size ¼) and size (½ or ¼) is derived from the bitstream, as shown in FIG. 2;
[0010] (3) a CU uses ISP, Intra Sub-Partitions, which may enable 4 sub-blocks each of size ¼ of the CU size either vertically or horizontally or for smaller blocks 2 sub-blocks each of size ½ of the CU size either vertically or horizontally, as shown in FIG. 3.
[0011] In WC, a CU can be divided into multiple prediction sub-blocks in cases as follows:
[0012] (1) A CU uses sub-block inter prediction tool AFFINE. This tool can have motion parameters (motion vector and indication of reference frame) on sub-block size 4x4;
[0013] (2) a CU uses sub-block inter prediction tool ATMVP (this tool can have motion parameters (motion vector and indication of reference frame) on sub-block size 8x8, as shown in FIG. 4); [0014] (3) a CU uses a Combined Intra Inter Prediction mode that uses four sub-block specific weights each for ¼ size of the CU in the direction of the prediction for weighted combination of intra and inter prediction, as shown in FIG. 5.
[0015] In WC, the deblocking is applied on an 8x8 grid for CUs that have a CU boundary aligned with an 8x8 grid first on vertical boundaries (CU/implicit TU/prediction sub block boundaries) and then on horizontal boundaries (CU/implicit TU/prediction sub-blocks). The deblocking is based on HEVC deblocking and also longer deblocking filter if the size orthogonal to the block boundary is equal to or larger than 32 on at least one side for luma modifying at most 7 samples and reading at most 8 samples on that side, 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 on respective side of the boundary otherwise it modifies at most one sample and reading at most two samples on respective side of the boundary.
[0016] Both CU, implicit TU and prediction sub-block boundaries can be deblocked in parallel since the number of samples to read and modify is restricted depending on:
[0017] (1) the max number of samples to modify for a CU or implicit TU boundary is limited to 5 (reading at most 6 samples) if the CU uses prediction sub-blocks;
[0018] (2) the max number of samples to modify for a prediction sub-block boundary adjacent to a CU or implicit TU boundary is 2 on both side of such boundaries (reading at most 3 samples on each side);
[0019] (3) otherwise the max number of samples to modify is 3 on each side of a boundary.
[0020] Only a CTU line buffer of 4 for luma and 2 for chroma is needed due to restricting the max number of samples to modify to 3 samples for luma (reading at most 4 samples) on the side that is above the boundary and 1 chroma sample for chroma (reading at most 2 samples) on both sides of the boundary for horizontal boundaries that are aligned with the CTU boundary. [0021] The long filter decisions for luma are applied if at least one side has a CU width which is equal to 32 or larger for vertical boundaries and CU height which is equal to 32 or larger for horizontal boundaries. The P side has a variable bSidePisLargeBlk which is set to 1 if that side is 32 or longer and otherwise it is set to 0. The Q side has a variable bSideQisLargeBlk which is set to 1 if that side is 32 or longer, otherwise it is set to 0.
[0022] In FIG. 6, a boundary 606 between a block P 602 and a block Q 604 is shown for
4 lines (line 0 to line 3) and for samples 0 to 7 for each line and block.
[0023] Long filter decisions for deblocking of a vertical boundary, as shown in FIG. 6, are described in further detail below. The long filter decisions described below may apply similarly for a horizontal boundary.
[0024] First, the long filter decision checks if the sides of the boundary are smooth enough on line 0 and line 3 :
Figure imgf000007_0001
Figure imgf000008_0001
[0025] If dL is less than b (QP dependent parameter), additional long filter decision checks for both line=0 and line=3 are performed as follows:
Figure imgf000008_0002
where tC is a QP dependent parameter.
[0026] If the additional long filter decision checks dSamO and dSam3 are also true, the long deblocking filter is applied as follows for lines 0 to 3, here with no indication of which line as shown below:
Figure imgf000008_0003
_
where i = 0 .. maxFilterLengthP-1 and j = 0 .. maxFilterLengthQ-1, and where refMiddle, refP and refQ are three pre-filtered samples where refMiddle is centered in the middle between block P and Q, refP is in block P and refQ is in block Q, g and f are vectors with interpolation filter coefficients for Q side and P side, tCPD and tCQD are vectors with position dependent clipping values for P side and Q side, which are derived as shown below based on maxFilterLengthP and maxF ilterLengthQ :
Figure imgf000009_0001
[0027] The variables fi and tCPDi are defined as follows:
Figure imgf000009_0002
Figure imgf000010_0001
[0028] The variables gj and tCQDj are defined as follows:
Figure imgf000010_0002
[0029] In VVC, the boundary strength (bS) is set individually for luma and chroma components, both luma and chroma is given a bS equal to 2 for a transform block boundary if intra mode is used on either side, or if Combined Intra Inter Prediction (CUP) is used on either side. If the boundary is a transform block boundary and the transform block have non-zero transform coefficients on a color component, that component is given a Bs equal to 1. For other instances, the boundary strength is set to 0 for both chroma components which correspond to no deblocking. If the boundary is a prediction block/sub-block boundary and CUP is used on either side, the bS is set equal to 1 for luma. If the boundary is a prediction block/sub-block boundary and there is a difference in number of reference picture used on respective side of the boundary or different reference pictures are used or if there is a significant difference in motion vectors when same reference picture(s) are used, the bS is set equal to 1 for luma. Otherwise, the bS is set equal to 0 for luma which corresponds to no deblocking of luma.
[0030] In CE11-2.1, there is a test to deploy deblocking on a 4x4 grid. This test applies deblocking on 4x4 grid to allow for deblocking of Nx4 blocks aligned with the current 8x8 grid in addition to deblocking of Nx8 blocks that are not aligned with the current grid. The number of samples to read and modify is limited to allow for parallel friendly processing. If at least one side of the block boundary has a length orthogonal to the block boundary equal to 4, only a weak filter is used. Furthermore, only one sample is filtered on each side of the block boundary in this case.
SUMMARY
[0031] One problem with WC is that it does not filter on a 4x4 grid and, thus, blocking artifacts of 4xN and 8xN blocks can remain where N can be up to 64. There is a CE11-2.1 to address that, which restricts the number of samples to be modified to one sample on both sides of a boundary if one of the sides has a block width of 4. But that reduces the application of long filters when one side is equal to 32 or larger and the other side is 4, which can increase the amount of blocking artifacts.
[0032] The proposed solution disclosed herein applies deblocking on a 4x4 grid and add a new combination of long filter when one side of the block boundary has a length orthogonal to the block boundary of 32 or larger and the other side has an orthogonal length of 4: (1) first, the long filter decision on the side of length 4 is modified to only read 3 samples on the side which has orthogonal length 4 samples; (2) second, an additional long filter is applied for the case of pass of the long filter decision such that more than 3 samples are modified on the longer side and 1 sample is modified on the short side. In some embodiments, the orthogonal length may be one of: CU width for a vertical boundary; CU height for a horizontal boundary; transform block width for a vertical boundary or transform block height for a horizontal boundary. [0033] Accordingly, in one aspect there is provided a method for deblocking a boundary of a coding unit on a 4x4 grid. The at least one boundary forms a first side and a second side of the coding unit. The method includes determining a first length of the first side, wherein the first side is orthogonal to the boundary of the coding unit. The method also includes determining whether the first length of the first side is equal to or less than a first predetermined threshold value. The method also includes determining a second length of the second side, wherein the second side is orthogonal to the boundary of the coding unit. The method also includes determining whether the second length of the second side is equal to or larger than a second predetermined threshold value. The method also includes, as a result of determining that: (1) the first length of the first side is equal to or less than the first predetermined threshold value and (2) the second length of the second side is equal to or larger than the second predetermined threshold value, applying a long filter decision, wherein applying the long filter decision comprises using less than four samples on the first side and more than four samples on the second side. The method also includes, as a result of the long filter decision, applying a long deblocking filter to modify more than three samples on the second side.
[0034] In another aspect a computer program is provided. The computer program includes instructions which when executed by processing circuitry causes the processing circuitry to perform any of the above described methods. In another aspect there is provided a carrier containing the computer program. The carrier is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium.
[0035] In another aspect an apparatus for deblocking a boundary of a coding unit on a
4x4 grid is provided. The at least one boundary forms a first side and a second side of the coding unit. The apparatus is configured to determine a first length of the first side, wherein the first side is orthogonal to the boundary of the coding unit. The apparatus is also configured to determine whether the first length of the first side is equal to or less than a first predetermined threshold value. The apparatus is also configured to determine a second length of the second side, wherein the second side is orthogonal to the boundary of the coding unit. The apparatus is also configured to determine whether the second length of the second side is equal to or larger than a second predetermined threshold value. The apparatus is also configured to, as a result of determining that: (1) the first length of the first side is equal to or less than the first predetermined threshold value and (2) the second length of the second side is equal to or larger than the second predetermined threshold value, apply a long filter decision, wherein applying the long filter decision comprises using less than four samples on the first side and more than four samples on the second side. The apparatus is also configured to, as a result of the long filter decision, applying a long deblocking filter to modify more than three samples on the second side.
[0036] In another aspect the apparatus includes a computer readable storage medium and processing circuitry coupled to the computer readable storage medium, wherein the processing circuitry is configured to cause the apparatus to perform any of the above described methods.
[0037] The embodiments disclosed herein provide a significant advantage of efficiently reducing blocking artifacts while deblocking on an 4x4 grid. Long filter decision and filtering for deblocking on a 4x4 grid as disclosed herein enables a significant advantage of long filtering near small blocks.
BRIEF DESCRIPTION OF THE DRAWINGS
[0038] The accompanying drawings, which are incorporated herein and form part of the specification, illustrate various embodiments.
[0039] FIG. 1 illustrates a coding unit according to an embodiment.
[0040] FIG. 2 illustrates coding units using Sub-Block Transform (SBT) according to some embodiments.
[0041] FIG. 3 illustrates coding units using Intra Sub-Partitions (ISP) according to some embodiments.
[0042] FIG. 4 illustrates a coding unit according to one embodiment.
[0043] FIG. 5 illustrates coding units according to some embodiments.
[0044] FIG. 6 illustrates a vertical boundary according to one embodiment.
[0045] FIG. 7 is a flow chart illustrating a process according to an embodiment.
[0046] FIG. 8 is a diagram showing functional units of an encoder or decoder according to one embodiment.
[0047] FIG. 9 is a block diagram of an apparatus according to some embodiments. DETAILED DESCRIPTION
[0048] The proposed solution disclosed herein may be used in video or image encoder or decoder to deblock vertical and/or horizontal block/sub-block boundaries.
[0049] Embodiment 1. Modified Long Filter Decision
[0050] If only one of bSidePisLargeBlk or bSideQisLargeBlk is equal to 1 and the side that has that variable equal to 0 has a size of 4 (length orthogonal to the block boundary), the long filter decision is adjusted such that only three samples are read at most on the shorter side where line is 0 or 3 according to some embodiments. The adjusted long filter decision is shown as follows, with the modification underlined and italicized:
Figure imgf000014_0001
[0051] sp and sq are then used for the long filter decision based on line 0 and line 3 respectively as shown below:
Figure imgf000014_0002
[0052] Embodiment 2. Modified Long Filter 7+1 [0053] If only one of bSidePisLargeBlk or bSideQisLargeBlk is equal to 1 and the side that has that variable equal to 0 has a size of 4 (length orthogonal to the block boundary) and the long filter decision allows for modification of 7 samples (maxFilterLengthP or
maxFilterLengthQ equal to 7) on one side and 1 sample (maxFilterLengthQ or maxFilterLengthP equal to 1) on the other side the long filtering is adjusted as follows:
Figure imgf000015_0001
[0054] Assuming that bSideQisLargeBlk is equal to 1 and bSidePisLargeBlk is equal to 0 and maxFilterLengthP is 1 and maxFilterLengthQ is 7:
Figure imgf000015_0002
[0055] In an alternative embodiment, the same refMiddle calculations as for filtering 7 on Q side and 3 on P side can be used.
[0056] Assuming that bSideQisLargeBlk is equal to 0 and bSidePisLargeBlk is equal to 1 and maxFilterLengthP is 7 and maxFilterLengthQ is 1 :
Figure imgf000015_0003
_
Figure imgf000016_0001
[0057] In an alternative embodiment, the same refMiddle calculations as for filtering 3 on Q side and 7 on P side can be used.
[0058] In an alternative embodiment refMiddle is defined as follows for both the case of bSideQisLargeBlk is equal to 1 and bSidePisLargeBlk is equal to 0 and maxFilterLengthP is 1 and maxFilterLengthQ is 7 respectively bSideQisLargeBlk is equal to 0 and bSidePisLargeBlk is equal to 1 and maxFilterLengthP is 7 and maxFilterLengthQ is 1 :
Figure imgf000016_0002
[0059] Embodiment 3. Modified Long Filter 5+1
[0060] If only one of bSidePisLargeBlk or bSideQisLargeBlk is equal to 1 and the side that has that variable equal to 0 has a size of 4 and the long filter decision allows for
modification of 5 samples on one side and 1 sample on the other side the long filtering is adjusted as follows:
Figure imgf000016_0003
[0061] Assuming that bSideQisLargeBlk is equal to 1 and bSidePisLargeBlk is equal to 0 and maxFilterLengthQ is equal to 5 and maxFilterLengthP is equal to 1 :
Figure imgf000017_0001
[0062] Assuming that bSideQisLargeBlk is equal to 0 and bSidePisLargeBlk is equal to 1 and maxFilterLengthQ=l and maxFilterLengthP=5:
Figure imgf000017_0002
[0063] Embodiment 4.
[0064] In this embodiment the computations for refMiddle is modified such that all long filters use:
Figure imgf000017_0003
In this instance, there is no need for size checks to select refMiddle filter.
[0065] One alternative embodiment is to determine the refMiddle as follows:
Figure imgf000018_0001
[0066] Embodiment 5.
[0067] Any combination of the embodiments provided above, e.g., embodiments 1-4.
[0068] FIG. 7 is flow chart illustrating a process 700 according to an embodiment.
Process 700 is a method for deblocking at least one vertical or horizontal boundary of a coding unit on a 4x4 grid for encoding and/or decoding a video picture, wherein the at least one vertical or horizontal boundary forms a first side and a second side of the coding unit. The 700 method includes determining a first length of the first side, wherein the first side is orthogonal to the at least one vertical or horizontal boundary of the coding unit (710); determining a second length of the second side, wherein the second side is orthogonal to the at least one vertical or horizontal boundary of the coding unit (720); determining whether: (1) the first length of the first side is equal to or less than a first predetermined threshold value, and (2) the second length of the second side is equal to or larger than a second predetermined threshold value (730); applying a long filter decision as a result of determining that: (1) the first length of the first side is equal to or less than the first predetermined threshold value, and (2) the second length of the second side is equal to or larger than the second predetermined threshold value, wherein applying the long filter decision comprises using less than four samples on the first side and more than four samples on the second side (740); and applying a long deblocking filter to modify more than three samples on the second side as a result of the long filter decision (750).
[0069] In some embodiments, the method further includes applying a filter to modify the sample closest to the boundary on the first side as a result of the long filter decision (760).
[0070] In some embodiments, the first predetermined threshold value is 4 and the second predetermined threshold value is 32. [0071] In some embodiments, the first side comprises a first coding unit or a first transform sub-block, and the second side comprises a second coding unit or a second transform sub-block.
[0072] In some embodiments, the first length comprises a width of the first side and the second length comprises a width of the second side when the at least one vertical or horizontal boundary of the coding unit is a vertical boundary.
[0073] In some embodiments, the first length comprises a height of the first side and the second length comprises a height of the second side when the at least one vertical or horizontal boundary of the coding unit is a horizontal boundary.
[0074] In some embodiments, the long filter decision is based on a sp+sq < threshold, where sp is equal to Abs( pi ~ po) if block P is the shortest side or sq is equal to Abs( q2 - qo) if block Q is the shortest side, where po is closest to the block boundary in block P and qo is closest to the block boundary in block Q.
[0075] In some embodiments, the filtering is based on linear interpolation as follows:
Pi' = Clip3( pi - ((tC*tCPDi) » 1), Pi + ((tC*tCPDi) » 1), ( refMiddle*fi + refP*(64-fi)
+ 32) » 6 )
qj' = Clip3( qj - ((tC*tCQDj) » 1), qj + ((tC*tCQDj) » 1), ( refMiddle*gj + refQ*(64-gj)
+ 32) » 6 )
for i=0 to maxFilterLengthP-1 and j=0 to maxFilterLengthQ-1, where either
maxFilterLengthP or maxFilterLengthQ is equal to 1 where po to pmaxFiiterLengthP-i are unfiltered samples in block P with increasing distance from the boundary, where qo to qmaxFiiterLengthQ-i are unfiltered samples in block Q with increasing distance from the boundary, tC is a QP dependent clipping threshold, tCPDi is position dependent clipping value in block P, tCQDi is position dependent clipping value in block Q, Clip3(x,y,z) clips z to be equal to or less than y and equal to or larger than x, f is a interpolation filter coefficient used in block P and gi is a interpolation filter coefficient used in block Q, refMiddle is a pre-filtered value centered in-between block P and block Q at least based on po and qo, refP is a sample in block P at least based on
PmaxFilterLengthP and refQ IS Ά Sample in block Q based on qmaxFilterLengthQ, and po’ tO PmaxFilterLengthP-G are filtered samples in block P and qo’ to qmaxFiiterLengthQ-r are filtered samples in block Q. [0076] FIG. 8 is a diagram showing functional units of an encoder or a decoder 802 according to some embodiments. As shown in FIG. 8, the encoder or decoder 802 includes a first determining unit 804 for determining a first length of the first side, wherein the first side is orthogonal to the at least one vertical or horizontal boundary of the coding unit; a second determining unit 806 for determining a second length of the second side, wherein the second side is orthogonal to the at least one vertical or horizontal boundary of the coding unit; a third determining unit 808 for determining whether: (1) the first length of the first side is equal to or less than a first predetermined threshold value, and (2) the second length of the second side is equal to or larger than a second predetermined threshold value; a first applying unit 810 for applying a long filter decision as a result of determining that: (1) the first length of the first side is equal to or less than the first predetermined threshold value, and (2) the second length of the second side is equal to or larger than the second predetermined threshold value, wherein applying the long filter decision comprises using less than four samples on the first side and more than four samples on the second side; and a second applying unit 812 for applying a long deblocking filter to modify more than three samples on the second side as a result of the long filter decision.
[0077] In some embodiments, the encoder or decoder 802 further includes a third applying unit for applying a filter to modify the sample closest to the boundary on the first side as a result of the long filter decision.
[0078] In some embodiments, the first predetermined threshold value is 4 and the second predetermined threshold value is 32.
[0079] In some embodiments, the first side comprises a first coding unit or a first transform sub-block, and the second side comprises a second coding unit or a second transform sub-block.
[0080] FIG. 9 is a block diagram of an apparatus 900 for implementing encoder or decoder 802, according to some embodiments. As shown in FIG. 9, the apparatus may comprise: processing circuitry (PC) 902, which may include one or more processors (P) 955 (e.g., a general purpose microprocessor and/or one or more other processors, such as an application specific integrated circuit (ASIC), field-programmable gate arrays (FPGAs), and the like); a network interface 948 comprising a transmitter (Tx) 945 and a receiver (Rx) 947 for enabling the apparatus to transmit data to and receive data from other nodes connected to a network 1110 (e.g., an Internet Protocol (IP) network) to which network interface 948 is connected; and a local storage unit (a.k.a.,“data storage system”) 908, which may include one or more non-volatile storage devices and/or one or more volatile storage devices. In embodiments where PC 902 includes a programmable processor, a computer program product (CPP) 941 may be provided. CPP 941 includes a computer readable medium (CRM) 942 storing a computer program (CP)
943 comprising computer readable instructions (CRI) 944. CRM 942 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 944 of computer program 943 is configured such that when executed by PC 902, the CRI causes the apparatus to perform steps described herein (e.g., steps described herein with reference to the flow charts). In other embodiments, the apparatus may be configured to perform steps described herein without the need for code. That is, for example, PC 902 may consist merely of one or more ASICs. Hence, the features of the embodiments described herein may be implemented in hardware and/or software.
[0081] Summary of various Embodiments:
[0082] A1. A method for deblocking at least one vertical or horizontal boundary of a coding unit on a 4x4 grid for encoding and/or decoding a video picture, wherein the at least one vertical or horizontal boundary forms a first side and a second side of the coding unit, the method comprising: determining a first length of the first side, wherein the first side is orthogonal to the at least one vertical or horizontal boundary of the coding unit; determining a second length of the second side, wherein the second side is orthogonal to the at least one vertical or horizontal boundary of the coding unit; determining whether: (1) the first length of the first side is equal to or less than a first predetermined threshold value, and (2) the second length of the second side is equal to or larger than a second predetermined threshold value; as a result of determining that:
(1) the first length of the first side is equal to or less than the first predetermined threshold value, and (2) the second length of the second side is equal to or larger than the second predetermined threshold value, applying a long filter decision, wherein applying the long filter decision comprises using less than four samples on the first side and more than four samples on the second side; and as a result of the long filter decision, applying a long deblocking filter to modify more than three samples on the second side.
[0083] A2. The method of embodiment Al, further comprising, as a result of the long filter decision, applying a filter to modify the sample closest to the boundary on the first side.
[0084] A3. The method of embodiment Al or A2, wherein the first predetermined threshold value is 4 and the second predetermined threshold value is 32.
[0085] A4. The embodiment of any one of embodiments Al to A3, wherein the first side comprises a first coding unit or a first transform sub-block, and wherein the second side comprises a second coding unit or a second transform sub-block.
[0086] A5. The method of any one of embodiments Al to A4, wherein the first length comprises a width of the first side and the second length comprises a width of the second side when the at least one vertical or horizontal boundary of the coding unit is a vertical boundary.
[0087] A6. The method of any one of embodiments Al to A4, wherein the first length comprises a height of the first side and the second length comprises a height of the second side when the at least one vertical or horizontal boundary of the coding unit is a horizontal boundary.
[0088] A7a. The method of any of the previous embodiments, wherein the long filter decision is based on sp+sq < threshold, where sp is equal to Abs( pi ~ po) if block P is the shortest side or sq is equal to Abs( q2 - qo) if block Q is the shortest side, where po is closest to the block boundary in block P and qo is closest to the block boundary in block Q.
[0089] A7b. The method of any of the previous claims, wherein the long filter decision is at least based on sp+sq < threshold for at least one line of samples across the boundary, where sp is equal to Abs( p2 - po) if block P is the shortest side or sq is equal to Abs( q2 - qo) if block Q is the shortest side, where po is closest to the block boundary in block P and qo is closest to the block boundary in block Q.
[0090] A8. The method of any of the previous embodiments, wherein the filtering is based on linear interpolation as follows: pi' = Clip3( pi - ((tC*tCPDi) » 1), Pi + ((tC*tCPDi) » 1), ( refMiddle*fi + refP*(64-fi) + 32) » 6 ) ¾' = Clip3( cy - ((tC*tCQDj) » 1), cy + ((tC*tCQDj) » 1), ( refMiddle*® + refQ*(64-gj)
+ 32) » 6 )
for i=0 to maxFilterLengthP-1 and j=0 to maxFilterLengthQ-1, where either
maxFilterLengthP or maxFilterLengthQ is equal to 1 where po to pmaxFiiterLengthP-i are unfiltered samples in block P with increasing distance from the boundary, where qo to qmaxFiiterLengthQ-i are unfiltered samples in block Q with increasing distance from the boundary, tC is a QP dependent clipping threshold, tCPDi is position dependent clipping value in block P, tCQDi is position dependent clipping value in block Q, Clip3(x,y,z) clips z to be equal to or less than y and equal to or larger than x, f is a interpolation filter coefficient used in block P and gi is a interpolation filter coefficient used in block Q, refMiddle is a pre-filtered value centered in-between block P and block Q at least based on po and qo, refP is a sample in block P at least based on
PmaxFilterLengthP and refQ IS Ά Sample in block Q based on qmaxFilterLengthQ, and po’ tO PmaxFilterLengthP-G are filtered samples in block P and qo’ to qmaxFiiterLengthQ-r are filtered samples in block Q.
[0091] A9. The method of embodiment 8, wherein refMiddle is equal to (pl+p0+q0+ql
+ 2) » 2, refP is equal to (pmaxFiiterLenthP + pmaxFilterLenthP-i + 1 ) » 1, and refQ is equal to
(qmaxFilterLentl Q T qmaxFilterLentlQ-1 T 1 ) » 1.
[0092] A10. The method of embodiment 8, wherein refMiddle is equal to
(p2+pl+2*(p0+q0)+ql+q2 + 4) » 3, refP is equal to (PmaxFiiterLenthP + PmaxFiiterLenthP- 1 + 1 ) » 1, and refQ IS equal to (qmaxFilterLentliQ T qmaxFilterLentliQ-1 T 1 ) » 1.
[0093] Al l. The method of any one of embodiments A1-A10, wherein the method is performed by an encoder.
[0094] A12. The method of any one of embodiments A1-A10, wherein the method is performed by a decoder.
[0095] While various embodiments are described herein (including the Appendix, if any), 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. [0096] 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.

Claims

CLAIMS:
1. A method for deblocking a boundary of a coding unit on a 4x4 grid, wherein the at least one boundary forms a first side and a second side of the coding unit, the method comprising:
determining a first length of the first side, wherein the first side is orthogonal to the boundary of the coding unit;
determining whether the first length of the first side is equal to or less than a first predetermined threshold value;
determining a second length of the second side, wherein the second side is orthogonal to the boundary of the coding unit;
determining whether the second length of the second side is equal to or larger than a second predetermined threshold value;
as a result of determining that: (1) the first length of the first side is equal to or less than the first predetermined threshold value and (2) the second length of the second side is equal to or larger than the second predetermined threshold value, applying a long filter decision, wherein applying the long filter decision comprises using less than four samples on the first side and more than four samples on the second side; and
as a result of the long filter decision, applying a long deblocking filter to modify more than three samples on the second side.
2. The method of claim 1, further comprising:
as a result of the long filter decision, applying a filter to modify a sample closest to the boundary on the first side.
3. The method of claim 1 or 2, wherein the first predetermined threshold value is 4 and the second predetermined threshold value is 32.
4. The claim of any one of claims 1 to 3, wherein the first side comprises a first coding unit or a first transform sub-block, and wherein the second side comprises a second coding unit or a second transform sub-block.
5. The method of any one of claims 1 to 4, wherein the first length comprises a width of the first side and the second length comprises a width of the second side when the boundary of the coding unit is a vertical boundary.
6. The method of any one of claims 1 to 4, wherein the first length comprises a height of the first side and the second length comprises a height of the second side when the boundary of the coding unit is a horizontal boundary.
7. The method of any of the previous claims, wherein the long filter decision is at least based on sp+sq < threshold for at least one line of samples across the boundary, where sp is equal to Abs( pi ~ po) if block P is the shortest side or sq is equal to Abs( q2 - qo) if block Q is the shortest side, where po is closest to the block boundary in block P and qo is closest to the block boundary in block Q.
8. The method of any of the previous claims, wherein the filtering is based on linear interpolation as follows:
Pi' = Clip3( pi - ((tC*tCPDi) » 1), Pi + ((tC*tCPDi) » 1), ( refMiddle*fi + refP*(64-fi)
+ 32) » 6 )
qj' = Clip3( qj - ((tC*tCQDj) » 1), qj + ((tC*tCQDj) » 1), ( refMiddle*gj + refQ*(64-gj)
+ 32) » 6 )
for i=0 to maxFilterLengthP-1 and j=0 to maxFilterLengthQ-1, where either maxFilterLengthP or maxFilterLengthQ is equal to 1 where po to pmaxFiiterLengthP-i are unfiltered samples in block P with increasing distance from the boundary, where qo to qmaxFiiterLengthQ-i are unfiltered samples in block Q with increasing distance from the boundary, tC is a QP dependent clipping threshold, tCPDi is position dependent clipping value in block P, tCQDi is position dependent clipping value in block Q, Clip3(x,y,z) clips z to be equal to or less than y and equal to or larger than x, f is a interpolation filter coefficient used in block P and gi is a interpolation filter coefficient used in block Q, refMiddle is a pre-filtered value centered in-between block P and block Q at least based on po and qo, refP is a sample in block P at least based on
PmaxFilterLengthP and refQ IS Ά Sample in block Q based on qmaxFilterLengthQ, and po’ tO PmaxFilterLengthP-G are filtered samples in block P and qo’ to qmaxFiiterLengthQ-r are filtered samples in block Q.
9. The method of claim 8, wherein refMiddle is equal to (pl+p0+q0+ql + 2) » 2, refP is equal to (PmaxFilterLenthP + PmaxFilterLenthP- 1 + 1 ) ->-> 1, and refQ IS equal tO (qmaxFilterLentliQ T qmaxFilterLenthQ-1 T 1 ) » 1 .
10. The method of claim 8, wherein refMiddle is equal to (p2+p l +2*(p0+q0)+ql +q2 + 4) ->-> 3, refP IS equal to (pmaxFiltcrLcnthP T PmaxFilterLenthP- 1 + 1 ) » 1, and refQ IS equal tO (qmaxFilterLentliQ T qmaxFilterLenthQ-1 T 1 ) » 1 .
11. The method of any one of claims 1-10, wherein the method is performed by an encoder.
12. The method of any one of claims 1-10, wherein the method is performed by a decoder.
13. A computer program (943) comprising instructions (944) which when executed by processing circuitry (902) causes the processing circuitry (902) to perform the method of any one of claims 1-12.
14. A carrier containing the computer program of claim 13, wherein the carrier is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium (942).
15. An apparatus (900) for deblocking a boundary of a coding unit on a 4x4 grid, wherein the at least one boundary forms a first side and a second side of the coding unit, the apparatus being configured to:
determine a first length of the first side, wherein the first side is orthogonal to the boundary of the coding unit;
determine whether the first length of the first side is equal to or less than a first predetermined threshold value;
determine a second length of the second side, wherein the second side is orthogonal to the boundary of the coding unit;
determine whether the second length of the second side is equal to or larger than a second predetermined threshold value;
as a result of determining that: (1) the first length of the first side is equal to or less than the first predetermined threshold value and (2) the second length of the second side is equal to or larger than the second predetermined threshold value, apply a long filter decision, wherein applying the long filter decision comprises using less than four samples on the first side and more than four samples on the second side; and
as a result of the long filter decision, apply a long deblocking filter to modify more than three samples on the second side.
16. The apparatus (900) of claim 15, wherein the apparatus (900) is further configured to perform the method of any one of claims 2-12.
17. An apparatus (900) for deblocking a boundary of a coding unit on a 4x4 grid, wherein the at least one boundary forms a first side and a second side of the coding unit, the apparatus (900) comprising:
a computer readable storage medium (942); and
processing circuitry (902) coupled to the computer readable storage medium, wherein the processing circuitry is configured to cause the apparatus (900) to perform the method of any one of claims 1-12.
PCT/SE2020/050181 2019-02-19 2020-02-17 Deblocking on 4x4 grid using long filters WO2020171760A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962807570P 2019-02-19 2019-02-19
US62/807,570 2019-02-19

Publications (1)

Publication Number Publication Date
WO2020171760A1 true WO2020171760A1 (en) 2020-08-27

Family

ID=72144895

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/SE2020/050181 WO2020171760A1 (en) 2019-02-19 2020-02-17 Deblocking on 4x4 grid using long filters

Country Status (1)

Country Link
WO (1) WO2020171760A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021045671A1 (en) * 2019-09-06 2021-03-11 Telefonaktiebolaget Lm Ericsson (Publ) Deblocking filter selection in video or image coding

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130022107A1 (en) * 2011-07-19 2013-01-24 Qualcomm Incorporated Deblocking of non-square blocks for video coding
WO2019137750A1 (en) * 2018-01-10 2019-07-18 Telefonaktiebolaget Lm Ericsson (Publ) Determining filter length for deblocking during encoding and/or decoding of video

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130022107A1 (en) * 2011-07-19 2013-01-24 Qualcomm Incorporated Deblocking of non-square blocks for video coding
WO2019137750A1 (en) * 2018-01-10 2019-07-18 Telefonaktiebolaget Lm Ericsson (Publ) Determining filter length for deblocking during encoding and/or decoding of video

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ANDREY NORKIN ET AL.: "CE11: Summary Report on Deblocking", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11; 13TH MEETING, 17 January 2019 (2019-01-17), Marrakech, MA *
KENNETH ANDERSSON ET AL.: "CE11: Deblocking for 4 x N, N x 4 and 8 x N and N x 8 block boundaries that not are aligned with 8x8 grid (test 11.2.1", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, 13TH MEETING, 10 January 2019 (2019-01-10), Marrakech, MA *
M. IKEDA ET AL.: "CE11.1.6, CE11.1.7 and CE11.1.8: Joint proposals for long deblocking from Sony, Qualcomm, Sharp, Ericsson", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, 13TH MEETING, 3 January 2019 (2019-01-03), Marrakesh, MA *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021045671A1 (en) * 2019-09-06 2021-03-11 Telefonaktiebolaget Lm Ericsson (Publ) Deblocking filter selection in video or image coding
US11533481B2 (en) 2019-09-06 2022-12-20 Telefonaktiebolaget Lm Ericsson (Publ) Deblocking filter selection in video or image coding
US12003716B2 (en) 2019-09-06 2024-06-04 Telefonaktiebolaget Lm Ericsson (Publ) Deblocking filter selection in video or image coding

Similar Documents

Publication Publication Date Title
US11831926B2 (en) Deblocking of transform sub-block boundaries
US11653030B2 (en) Asymmetric deblocking in a video encoder and/or video decoder
US12058323B2 (en) Deblocking of implicit transform unit boundaries
WO2020171760A1 (en) Deblocking on 4x4 grid using long filters
US20220329875A1 (en) Deblocking between block boundaries and sub-block boundaries in a video encoder and/or video decoder
US20220141464A1 (en) Deblocking in a video encoder and/or video decoder
US11902516B2 (en) Deblocking using sub-pel motion vector threshold
AU2020341422B2 (en) Deblocking filter selection in video or image coding
US20240022719A1 (en) Deblocking of video picture boundaries
EP4128761A1 (en) Video processing
OA20341A (en) Deblocking of implicit transform unit boundaries

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20759961

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20759961

Country of ref document: EP

Kind code of ref document: A1