WO2020176026A1 - Deblocking using sub-pel motion vector threshold - Google Patents

Deblocking using sub-pel motion vector threshold Download PDF

Info

Publication number
WO2020176026A1
WO2020176026A1 PCT/SE2020/050193 SE2020050193W WO2020176026A1 WO 2020176026 A1 WO2020176026 A1 WO 2020176026A1 SE 2020050193 W SE2020050193 W SE 2020050193W WO 2020176026 A1 WO2020176026 A1 WO 2020176026A1
Authority
WO
WIPO (PCT)
Prior art keywords
motion vector
predetermined threshold
vector component
value
vertical
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/SE2020/050193
Other languages
French (fr)
Inventor
Kenneth Andersson
Ruoyang YU
Jack ENHORN
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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 AB filed Critical Telefonaktiebolaget LM Ericsson AB
Priority to BR112021014861-2A priority Critical patent/BR112021014861A2/en
Priority to US17/434,074 priority patent/US11902516B2/en
Priority to CN202080016460.7A priority patent/CN113475082A/en
Priority to AU2020229625A priority patent/AU2020229625A1/en
Priority to EP20762858.7A priority patent/EP3932080A4/en
Priority to JP2021549588A priority patent/JP7386883B2/en
Publication of WO2020176026A1 publication Critical patent/WO2020176026A1/en
Anticipated expiration legal-status Critical
Priority to US18/535,787 priority patent/US12407825B2/en
Priority to US19/294,515 priority patent/US20260075194A1/en
Ceased legal-status Critical Current

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/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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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
    • 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

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 consists 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 coding tree units
  • 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 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. For example 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.
  • This reshaping tool can signal how to map ranges of sample values on a picture or tile basis inside a coding loop for better coding efficiency and then remap the ranges of sample values when reconstructing the sample.
  • 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 :
  • 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 maxFilterLengthQ:
  • the variables g j and tCQD j are defined as follows: [0032] 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.
  • 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 ( a difference of 1 luma sample or larger in at least one motion vector component, vertical or horizontal motion vector component) 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.
  • One problem with WC is that the deblocking decision is based on a difference in motion which is too large when using a motion accuracy that is significantly lower than full-pel (motion accuracy is 1/16 for luma in the current WC test model (VTM)).
  • a motion vector threshold is used with sub-pel accuracy for comparing motion vectors of respective sides of a block boundary.
  • a threshold for comparing motion vector components in neighboring blocks is used to decide whether to apply deblocking.
  • the threshold is smaller than a full pixel difference.
  • a method for deblocking at least one vertical or horizontal boundary of a coding unit wherein the vertical or horizontal boundary forms a first side and a second side of the coding unit, wherein a video picture comprises the coding unit, and wherein the first and second sides use a same reference picture.
  • the method includes obtaining a first motion vector component in the first side and obtaining a second motion vector component in the second side.
  • the method also includes determining whether an absolute difference between the first motion vector component and the second motion vector component is equal to or larger than a predetermined threshold that is less 1 sample.
  • the method further includes applying deblocking to the vertical or horizontal boundary between the first side and the second side as a result of determining that the absolute difference between the first motion vector component and the second motion vector component is equal to or larger than the predetermined threshold.
  • the first motion vector component comprises a first horizontal motion vector component or a first vertical motion vector component in the first side
  • the second motion vector component comprises a second horizontal motion vector component or a second vertical motion vector component in the second side.
  • the predetermined threshold is N/l 6, where N is a whole number less than 16.
  • the predetermined threshold equals N where N is less than
  • M and 1/M is the motion vector accuracy in parts of pixels.
  • the method further includes including the predetermined threshold in a bitstream.
  • the predetermined threshold is included in a slice header.
  • the method further includes deriving (e.g., decoding) the predetermined threshold from a bitstream.
  • the predetermined threshold is derived from a slice header of the bitstream.
  • a first value is applied for the predetermined threshold when the video picture is a first temporal layer
  • a second value is applied for the predetermined threshold when the video picture is a second temporal layer
  • the first temporal layer is higher than the second temporal layer and the first value is lower than the second value
  • a first value is applied for the predetermined threshold when the video picture uses a first quantization parameter (QP)
  • a second value is applied for the predetermined threshold when the video picture uses a second QP, and the first QP is higher than the second QP and the first value is lower than the second value.
  • QP quantization parameter
  • a first value is applied for the predetermined threshold when the first side comprises a first coding unit (CU), the second block comprises a second CU, and the vertical or horizontal boundary comprises a CU boundary, a second value is applied for the predetermined threshold when the first side comprises a first sub-block, the second block comprises a second sub-block, and the vertical or horizontal boundary comprises a sub-block boundary, and the first value is lower than the second value.
  • CU first coding unit
  • a first value is applied for the predetermined threshold when unidirection prediction is used for the video picture
  • a second value is applied for the predetermined threshold when bi-direction prediction is used for the video picture
  • the first value is lower than the second value
  • a first value is applied for the predetermined threshold when the first and second sides use unidirection prediction
  • a second value is applied for the predetermined threshold when the first and second sides use bi-direction prediction
  • the first value is lower than the second value
  • the predetermined threshold is reduced when a specific coding tool is used for coding the video picture.
  • reshaping is the specific coding tool.
  • the processing circuitry is further configured to derive the predetermined threshold from a bitstream.
  • the predetermined threshold is included in a slice header.
  • an apparatus for deblocking at least one vertical or horizontal boundary of a coding unit, wherein the vertical or horizontal boundary forms a first side and a second side of the coding unit, wherein a video picture comprises the coding unit, and wherein the first and second sides use a same reference picture.
  • the apparatus comprises processing circuitry configured to obtain a first motion vector component in the first side, obtain a second motion vector component in the second side, determine whether an absolute difference between the first motion vector component and the second motion vector component is equal to or larger than a predetermined threshold, and apply deblocking to the vertical or horizontal boundary between the first side and the second side as a result of determining that the absolute difference between the first motion vector component and the second motion vector component is equal to or larger than the predetermined threshold.
  • a computer program comprising instructions for causing processing circuitry to perform any of the methods disclosed herein.
  • a carrier containing the computer program, where the carrier is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium.
  • 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
  • inventions disclosed herein may be used in video or image encoder or decoder to deblock vertical and/or horizontal block/sub-block boundaries.
  • the decision whether to apply deblocking for a boundary between a first and a second block, where both blocks use the same reference picture is based on the absolute difference between the horizontal motion vector component in the first block and the horizontal motion vector component in the second block or the absolute difference between the vertical motion vector component in the first block and the vertical motion vector component in the second block.
  • deblocking is applied when the absolute difference between the horizontal motion vector component in the first block and the horizontal motion vector component in the second block or the absolute difference between the vertical motion vector component in the first block and the vertical motion vector component in the second block is equal to or larger than a threshold which is less than 1.
  • the value of 1 indicates one full pixel difference (1 sample).
  • the threshold is equal to 0.25.
  • the value of 0.25 indicates one quarter-pixel difference.
  • N is less than M and 1/M corresponds to the motion vector accuracy.
  • M is 16.
  • the motion vectors are used in fixed point to enable use of integer numbers and a pixel difference of 1 is indicated by 16 when the motion vector accuracy is 1/16.
  • boundary strength is set equal to 1 for a boundary of luma when the decision is to apply deblocking for the boundary.
  • a boundary with boundary strength larger than 0 means that deblocking is applied for that boundary.
  • a higher boundary strength means a stronger deblocking is applied.
  • a boundary where one side is an intra coded block has a boundary strength of 2.
  • threshold is decoded (or otherwise derived) from a video bitstream.
  • the threshold is signaled at a picture level, i.e. in a slice header.
  • an encoder may signal different motion vector difference thresholds for different pictures.
  • a lower threshold may be applied for pictures with typically higher
  • Another example is for random access configuration, where a lower threshold may be applied for pictures at a higher temporal layer, i.e., pictures predicted from lower temporal layers, compared to pictures at a lower temporal layer.
  • a lower threshold may be applied for pictures at a higher temporal layer, i.e., pictures predicted from lower temporal layers, compared to pictures at a lower temporal layer.
  • lower temporal layers typically use more transform coefficients and thus have better quality while higher temporal layers typically use less transform coefficients and thus typically have worse quality.
  • Yet another example is for low-delay, where a lower threshold may be applied for pictures with regularly higher QP (quantization parameter) compared to pictures that use lower QP.
  • QP quantization parameter
  • the threshold is different depending on whether the boundary is a CU/block boundary or a sub-block boundary.
  • a lower threshold may be applied for a CU boundary while a higher threshold may be applied for a sub-block boundary. This is because the blocking artifacts may be less severe for sub-block boundaries since an encoder may send transform coefficients to compensate.
  • Embodiment 6 As described above in any of the previous embodiments, e.g. embodiments 1 to 5, where the threshold is reduced if reshaping is used for the picture.
  • the threshold for when both blocks use unidirectional prediction is smaller compared to the threshold when both blocks use bi-directional prediction.
  • 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, wherein the vertical or horizontal boundary forms a first side and a second side of the coding unit, wherein a video picture comprises the coding unit, and wherein the first and second sides use a same reference picture.
  • the 700 method includes obtaining a first motion vector component in the first side (s710); obtaining a second motion vector component in the second side (s720); determining whether an absolute difference between the first motion vector component and the second motion vector component is equal to or larger than a predetermined threshold (s730); and applying deblocking to the vertical or horizontal boundary between the first side and the second side (s740) as a result of determining that the absolute difference between the first motion vector component and the second motion vector component is equal to or larger than the predetermined threshold.
  • the predetermined threshold is derived from a bitstream (s735).
  • the first motion vector component comprises a first horizontal motion vector component or a first vertical motion vector component in the first side.
  • the second motion vector component comprises a second horizontal motion vector component or a second vertical motion vector component in the second side.
  • the predetermined threshold equals one full pixel difference.
  • the predetermined threshold equals N where N is less than
  • M and 1/M is the motion vector accuracy in parts of pixels.
  • the predetermined threshold is included in the bitstream. In some embodiments, the predetermined threshold is included in a slice header.
  • a first value is applied for the predetermined threshold when the video picture is a first temporal layer
  • a second value is applied for the predetermined threshold when the video picture is a second temporal layer
  • the first temporal layer is higher than the second temporal layer and the first value is lower than the second value
  • a first value is applied for the predetermined threshold when the video picture uses a first quantization parameter (QP)
  • a second value is applied for the predetermined threshold when the video picture uses a second QP, and the first QP is higher than the second QP and the first value is lower than the second value.
  • QP quantization parameter
  • a first value is applied for the predetermined threshold when the first side comprises a first coding unit (CU), the second block comprises a second CU, and the vertical or horizontal boundary comprises a CU boundary, a second value is applied for the predetermined threshold when the first side comprises a first sub-block, the second block comprises a second sub-block, and the vertical or horizontal boundary comprises a sub-block boundary, and the first value is lower than the second value.
  • CU first coding unit
  • a first value is applied for the predetermined threshold when unidirection prediction is used for the video picture
  • a second value is applied for the predetermined threshold when bi-direction prediction is used for the video picture
  • the first value is lower than the second value
  • a first value is applied for the predetermined threshold when the first and second sides use unidirection prediction
  • a second value is applied for the predetermined threshold when the first and second sides use bi-direction prediction
  • the first value is lower than the second value.
  • the predetermined threshold is reduced when a specific coding tool is used for coding the video picture. In some embodiments, reshaping is the specific coding tool.
  • FIG. 8 is a diagram showing functional units of an encoder or a decoder 802 according to some embodiments.
  • the encoder or decoder 802 includes a first obtaining unit 804 for obtaining a first motion vector component in the first side; a second obtaining unit 806 for obtaining a second motion vector component in the second side; a determining unit 808 for determining whether an absolute difference between the first motion vector component and the second motion vector component is equal to or larger than a predetermined threshold; and an applying unit 810 for applying deblocking to the vertical or horizontal boundary between the first side and the second side as a result of determining that the absolute difference between the first motion vector component and the second motion vector component is equal to or larger than the predetermined threshold.
  • the predetermined threshold is derived from a bitstream.
  • the first motion vector component comprises a first horizontal motion vector component or a first vertical motion vector component in the first side.
  • the second motion vector component comprises a second horizontal motion vector component or a second vertical motion vector component in the second side.
  • the predetermined threshold equals one full pixel difference. In some embodiments, the predetermined threshold equals N where N is less than M and 1/M is the motion vector accuracy in parts of pixels.
  • FIG. 9 is a block diagram of an apparatus (e.g., 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 processing circuitry
  • P processors
  • ASIC application specific integrated circuit
  • Rx receiver
  • 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.
  • 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. Hence, 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, wherein the vertical or horizontal boundary forms a first side and a second side of the coding unit, wherein a video picture comprises the coding unit, and wherein the first and second sides use a same reference picture comprising: obtaining a first motion vector component in the first side; obtaining a second motion vector component in the second side; determining whether an absolute difference between the first motion vector component and the second motion vector component is equal to or larger than a predetermined threshold; and as a result of determining that the absolute difference between the first motion vector component and the second motion vector component is equal to or larger than the predetermined threshold, applying deblocking to the vertical or horizontal boundary between the first side and the second side.
  • A2 The method of embodiment Al, wherein the first motion vector component comprises a first horizontal motion vector component or a first vertical motion vector component in the first side, and wherein the second motion vector component comprises a second horizontal motion vector component or a second vertical motion vector component in the second side.
  • A3. The method of embodiment A1 or A2, wherein the predetermined threshold equals one full pixel difference.
  • predetermined threshold is included in a bitstream.
  • A6 The method of embodiment A5, wherein the predetermined threshold is included in a slice header.
  • A7 The method of any one of embodiments A1 to A6, wherein a first value is applied for the predetermined threshold when the video picture is a first temporal layer, wherein a second value is applied for the predetermined threshold when the video picture is a second temporal layer, and wherein the first temporal layer is higher than the second temporal layer and the first value is lower than the second value.
  • A8 The method of any one of embodiments A1 to A6, wherein a first value is applied for the predetermined threshold when the video picture uses a first quantization parameter (QP), wherein a second value is applied for the predetermined threshold when the video picture uses a second QP, and wherein the first QP is higher than the second QP and the first value is lower than the second value.
  • QP quantization parameter
  • A9 The method of any one of embodiments A1 to A6, wherein a first value is applied for the predetermined threshold when the first side comprises a first coding unit (CU), the second block comprises a second CU, and the vertical or horizontal boundary comprises a CU boundary, wherein a second value is applied for the predetermined threshold when the first side comprises a first sub-block, the second block comprises a second sub-block, and the vertical or horizontal boundary comprises a sub-block boundary, and wherein the first value is lower than the second value.
  • CU first coding unit
  • A10 The method of any one of embodiments A1 to A6, wherein a first value is applied for the predetermined threshold when unidirection prediction is used for the video picture, wherein a second value is applied for the predetermined threshold when bi-direction prediction is used for the video picture, and wherein the first value is lower than the second value.
  • Al l The method of any one of embodiments A1 to A6, wherein a first value is applied for the predetermined threshold when the first and second sides use unidirection prediction, wherein a second value is applied for the predetermined threshold when the first and second sides use bi-direction prediction, and wherein the first value is lower than the second value.
  • A12 The method of any one of embodiments A1 to A11, wherein the predetermined threshold is reduced when a specific coding tool is used for coding the video picture.
  • A13 The method of A11, wherein reshaping is the specific coding tool.
  • A14 A computer program comprising instructions which, when executed by processing circuity, causes the processing circuitry to carry out the method of any one of embodiments A1 -A13.
  • the encoder comprising: processing circuitry configured to: obtain a first motion vector component in the first side, obtain a second motion vector component in the second side, determine whether an absolute difference between the first motion vector component and the second motion vector component is equal to or larger than a predetermined threshold, and as a result of determining that the absolute difference between the first motion vector component and the second motion vector component is equal to or larger than the predetermined threshold, apply deblocking to the vertical or horizontal boundary between the first side and the second side.
  • B13 The encoder of B11, wherein reshaping is the specific coding tool.
  • the decoder comprising: processing circuitry configured to: obtain a first motion vector component in the first side, obtain a second motion vector component in the second side, determine whether an absolute difference between the first motion vector component and the second motion vector component is equal to or larger than a predetermined threshold, and as a result of determining that the absolute difference between the first motion vector component and the second motion vector component is equal to or larger than the predetermined threshold, apply deblocking to the vertical or horizontal boundary between the first side and the second side.
  • C5. The decoder of any one of embodiments Cl to C4, wherein the processing circuitry is further configured to derive the predetermined threshold from a bitstream.
  • C7 The decoder of any one of embodiments Cl to C6, wherein a first value is applied for the predetermined threshold when the video picture is a first temporal layer, wherein a second value is applied for the predetermined threshold when the video picture is a second temporal layer, and wherein the first temporal layer is higher than the second temporal layer and the first value is lower than the second value.
  • C8 The decoder of any one of embodiments Cl to C6, wherein a first value is applied for the predetermined threshold when the video picture uses a first quantization parameter (QP), wherein a second value is applied for the predetermined threshold when the video picture uses a second QP, and wherein the first QP is higher than the second QP and the first value is lower than the second value.
  • QP quantization parameter
  • Cl 1 The decoder of any one of embodiments Cl to C6, wherein a first value is applied for the predetermined threshold when the first and second sides use unidirection prediction, wherein a second value is applied for the predetermined threshold when the first and second sides use bi-direction prediction, and wherein the first value is lower than the second value.
  • predetermined threshold is reduced when a specific coding tool is used for coding the video picture.
  • Cl 3 The decoder of Cl 1, wherein reshaping is the specific coding tool.

Landscapes

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

Abstract

A method for deblocking at least one boundary of a coding unit, wherein the boundary forms a first side and a second side of the coding unit, wherein a video picture comprises the coding unit, and wherein the first and second sides use a same reference picture. The method includes obtaining a first motion vector component in the first side; obtaining a second motion vector component in the second side; determining whether an absolute difference between the first motion vector component and the second motion vector component is equal to or larger than a predetermined threshold that is less than 1 sample; and as a result of determining that the absolute difference between the first motion vector component and the second motion vector component is equal to or larger than the predetermined threshold, applying deblocking to the vertical or horizontal boundary between the first side and the second side.

Description

DEBLOCKING USING SUB-PEL MOTION VECTOR THRESHOLD
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 consists 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 consists 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 ( a difference of 1 luma sample or larger in at least one motion vector component, vertical or horizontal motion vector component) 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. For example 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 the current draft of WC, a new tool called reshaping has been introduced. This reshaping tool can signal how to map ranges of sample values on a picture or tile basis inside a coding loop for better coding efficiency and then remap the ranges of sample values when reconstructing the sample.
[0016] 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.
[0017] 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:
[0018] (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;
[0019] (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);
[0020] (3) otherwise the max number of samples to modify is 3 on each side of a boundary. [0021] 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.
[0022] 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.
[0023] 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.
[0024] 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.
[0025] First, the long filter decision checks if the sides of the boundary are smooth enough on line 0 and line 3 :
Figure imgf000006_0001
_
Figure imgf000007_0001
[0026] 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 imgf000007_0002
[0027] where tC is a QP dependent parameter.
[0028] 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_0001
[0029] 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 maxFilterLengthQ:
Figure imgf000008_0002
Figure imgf000009_0001
[0030] The variables fi and tCPDi are defined as follows:
Figure imgf000009_0002
[0031] The variables gj and tCQDj are defined as follows:
Figure imgf000009_0003
[0032] 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 ( a difference of 1 luma sample or larger in at least one motion vector component, vertical or horizontal motion vector component) 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.
SUMMARY
[0033] One problem with WC is that the deblocking decision is based on a difference in motion which is too large when using a motion accuracy that is significantly lower than full-pel (motion accuracy is 1/16 for luma in the current WC test model (VTM)).
[0034] In one embodiment, a motion vector threshold is used with sub-pel accuracy for comparing motion vectors of respective sides of a block boundary.
[0035] In one embodiment, a threshold for comparing motion vector components in neighboring blocks is used to decide whether to apply deblocking. In some embodiments, the threshold is smaller than a full pixel difference.
[0036] In an aspect, there is provided a method for deblocking at least one vertical or horizontal boundary of a coding unit, wherein the vertical or horizontal boundary forms a first side and a second side of the coding unit, wherein a video picture comprises the coding unit, and wherein the first and second sides use a same reference picture. In some embodiments, the method includes obtaining a first motion vector component in the first side and obtaining a second motion vector component in the second side. The method also includes determining whether an absolute difference between the first motion vector component and the second motion vector component is equal to or larger than a predetermined threshold that is less 1 sample. The method further includes applying deblocking to the vertical or horizontal boundary between the first side and the second side as a result of determining that the absolute difference between the first motion vector component and the second motion vector component is equal to or larger than the predetermined threshold.
[0037] In some embodiments, the first motion vector component comprises a first horizontal motion vector component or a first vertical motion vector component in the first side, and the second motion vector component comprises a second horizontal motion vector component or a second vertical motion vector component in the second side.
[0038] In some embodiments, the predetermined threshold is N/l 6, where N is a whole number less than 16.
[0039] In some embodiments, the predetermined threshold equals N where N is less than
M and 1/M is the motion vector accuracy in parts of pixels.
[0040] In some embodiments, the method further includes including the predetermined threshold in a bitstream. In some embodiments, the predetermined threshold is included in a slice header. In other embodiments, the method further includes deriving (e.g., decoding) the predetermined threshold from a bitstream. In some embodiments, the predetermined threshold is derived from a slice header of the bitstream.
[0041] In some embodiments, a first value is applied for the predetermined threshold when the video picture is a first temporal layer, a second value is applied for the predetermined threshold when the video picture is a second temporal layer, and the first temporal layer is higher than the second temporal layer and the first value is lower than the second value.
[0042] In some embodiments, a first value is applied for the predetermined threshold when the video picture uses a first quantization parameter (QP), a second value is applied for the predetermined threshold when the video picture uses a second QP, and the first QP is higher than the second QP and the first value is lower than the second value. [0043] In some embodiments, a first value is applied for the predetermined threshold when the first side comprises a first coding unit (CU), the second block comprises a second CU, and the vertical or horizontal boundary comprises a CU boundary, a second value is applied for the predetermined threshold when the first side comprises a first sub-block, the second block comprises a second sub-block, and the vertical or horizontal boundary comprises a sub-block boundary, and the first value is lower than the second value.
[0044] In some embodiments, a first value is applied for the predetermined threshold when unidirection prediction is used for the video picture, a second value is applied for the predetermined threshold when bi-direction prediction is used for the video picture, and the first value is lower than the second value.
[0045] In some embodiments, a first value is applied for the predetermined threshold when the first and second sides use unidirection prediction, a second value is applied for the predetermined threshold when the first and second sides use bi-direction prediction, and the first value is lower than the second value.
[0046] In some embodiments, the predetermined threshold is reduced when a specific coding tool is used for coding the video picture. In some embodiments, reshaping is the specific coding tool.
[0047] In some embodiments, the processing circuitry is further configured to derive the predetermined threshold from a bitstream. In some embodiments, the predetermined threshold is included in a slice header.
[0048] In another aspect, there is provided an apparatus (e.g., encoder or decoder) for deblocking at least one vertical or horizontal boundary of a coding unit, wherein the vertical or horizontal boundary forms a first side and a second side of the coding unit, wherein a video picture comprises the coding unit, and wherein the first and second sides use a same reference picture. In some embodiments, the apparatus comprises processing circuitry configured to obtain a first motion vector component in the first side, obtain a second motion vector component in the second side, determine whether an absolute difference between the first motion vector component and the second motion vector component is equal to or larger than a predetermined threshold, and apply deblocking to the vertical or horizontal boundary between the first side and the second side as a result of determining that the absolute difference between the first motion vector component and the second motion vector component is equal to or larger than the predetermined threshold.
[0049] In another aspect there is provided a computer program comprising instructions for causing processing circuitry to perform any of the methods disclosed herein. In another aspect there is provided a carrier containing the computer program, where the carrier is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium.
[0050] The embodiments disclosed herein provide a significant advantage of efficiently reducing blocking artifacts.
BRIEF DESCRIPTION OF THE DRAWINGS
[0051] The accompanying drawings, which are incorporated herein and form part of the specification, illustrate various embodiments.
[0052] FIG. 1 illustrates a coding unit according to an embodiment.
[0053] FIG. 2 illustrates coding units using Sub-Block Transform (SBT) according to some embodiments.
[0054] FIG. 3 illustrates coding units using Intra Sub-Partitions (ISP) according to some embodiments.
[0055] FIG. 4 illustrates a coding unit according to one embodiment.
[0056] FIG. 5 illustrates coding units according to some embodiments.
[0057] FIG. 6 illustrates a vertical boundary according to one embodiment.
[0058] FIG. 7 is a flow chart illustrating a process according to an embodiment.
[0059] FIG. 8 is a diagram showing functional units of an encoder or decoder according to one embodiment.
[0060] FIG. 9 is a block diagram of an apparatus according to some embodiments. DETAILED DESCRIPTION
[0061] The embodiments disclosed herein may be used in video or image encoder or decoder to deblock vertical and/or horizontal block/sub-block boundaries.
[0062] Embodiment 1.
[0063] In this embodiment, the decision whether to apply deblocking for a boundary between a first and a second block, where both blocks use the same reference picture, is based on the absolute difference between the horizontal motion vector component in the first block and the horizontal motion vector component in the second block or the absolute difference between the vertical motion vector component in the first block and the vertical motion vector component in the second block. In some embodiments, deblocking is applied when the absolute difference between the horizontal motion vector component in the first block and the horizontal motion vector component in the second block or the absolute difference between the vertical motion vector component in the first block and the vertical motion vector component in the second block is equal to or larger than a threshold which is less than 1. In the context of the current disclosure, the value of 1 indicates one full pixel difference (1 sample).
[0064] Embodiment 2.
[0065] As described above in embodiment 1, where the threshold is equal to 0.25. In the context of the current disclosure, the value of 0.25 indicates one quarter-pixel difference.
Another example is to use a threshold that is equal to N/M where N is less than M and 1/M corresponds to the motion vector accuracy. One example of M is 16. Typically the motion vectors are used in fixed point to enable use of integer numbers and a pixel difference of 1 is indicated by 16 when the motion vector accuracy is 1/16.
[0066] Embodiment 3.
[0067] As described above in any of the previous embodiments, e.g., embodiments 1 and
2, where the boundary strength is set equal to 1 for a boundary of luma when the decision is to apply deblocking for the boundary. A boundary with boundary strength larger than 0 means that deblocking is applied for that boundary. A higher boundary strength means a stronger deblocking is applied. For example, a boundary where one side is an intra coded block has a boundary strength of 2.
[0068] Embodiment 4.
[0069] As described above in any of the previous embodiments, e.g., embodiments 1 to
3, where the threshold is decoded (or otherwise derived) from a video bitstream.
[0070] In some embodiments, the threshold is signaled at a picture level, i.e. in a slice header. In some embodiments, an encoder may signal different motion vector difference thresholds for different pictures.
[0071] For example, a lower threshold may be applied for pictures with typically higher
QPs compared to pictures with typically lower QP.
[0072] Another example is for random access configuration, where a lower threshold may be applied for pictures at a higher temporal layer, i.e., pictures predicted from lower temporal layers, compared to pictures at a lower temporal layer. The reason is that lower temporal layers typically use more transform coefficients and thus have better quality while higher temporal layers typically use less transform coefficients and thus typically have worse quality.
[0073] Yet another example is for low-delay, where a lower threshold may be applied for pictures with regularly higher QP (quantization parameter) compared to pictures that use lower QP.
[0074] Embodiment 5.
[0075] As described above in any of the previous embodiments, e.g., embodiments 1 to
4, where the threshold is different depending on whether the boundary is a CU/block boundary or a sub-block boundary. In such instances, a lower threshold may be applied for a CU boundary while a higher threshold may be applied for a sub-block boundary. This is because the blocking artifacts may be less severe for sub-block boundaries since an encoder may send transform coefficients to compensate.
[0076] Embodiment 6. [0077] As described above in any of the previous embodiments, e.g. embodiments 1 to 5, where the threshold is reduced if reshaping is used for the picture.
[0078] Embodiment 7.
[0079] As described above in any of previous embodiments, e.g. embodiments 1 to 6, where the threshold for when only unidirectional prediction is used, e.g. prediction form only one frame, is smaller compared to the threshold when predictions are made based on more than one frame, e.g. bi-directional prediction.
[0080] In some embodiments, the threshold for when both blocks use unidirectional prediction is smaller compared to the threshold when both blocks use bi-directional prediction.
[0081] Embodiment 8.
[0082] Any combination of the embodiments provided above, e.g., embodiments 1-7.
[0083] 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, wherein the vertical or horizontal boundary forms a first side and a second side of the coding unit, wherein a video picture comprises the coding unit, and wherein the first and second sides use a same reference picture. The 700 method includes obtaining a first motion vector component in the first side (s710); obtaining a second motion vector component in the second side (s720); determining whether an absolute difference between the first motion vector component and the second motion vector component is equal to or larger than a predetermined threshold (s730); and applying deblocking to the vertical or horizontal boundary between the first side and the second side (s740) as a result of determining that the absolute difference between the first motion vector component and the second motion vector component is equal to or larger than the predetermined threshold. In some embodiments, the predetermined threshold is derived from a bitstream (s735).
[0084] In some embodiments, the first motion vector component comprises a first horizontal motion vector component or a first vertical motion vector component in the first side. In some embodiments, the second motion vector component comprises a second horizontal motion vector component or a second vertical motion vector component in the second side. [0085] In some embodiments, the predetermined threshold equals one full pixel difference.
[0086] In some embodiments, the predetermined threshold equals N where N is less than
M and 1/M is the motion vector accuracy in parts of pixels.
[0087] In some embodiments, the predetermined threshold is included in the bitstream. In some embodiments, the predetermined threshold is included in a slice header.
[0088] In some embodiments, a first value is applied for the predetermined threshold when the video picture is a first temporal layer, a second value is applied for the predetermined threshold when the video picture is a second temporal layer, and the first temporal layer is higher than the second temporal layer and the first value is lower than the second value.
[0089] In some embodiments, a first value is applied for the predetermined threshold when the video picture uses a first quantization parameter (QP), a second value is applied for the predetermined threshold when the video picture uses a second QP, and the first QP is higher than the second QP and the first value is lower than the second value.
[0090] In some embodiments, a first value is applied for the predetermined threshold when the first side comprises a first coding unit (CU), the second block comprises a second CU, and the vertical or horizontal boundary comprises a CU boundary, a second value is applied for the predetermined threshold when the first side comprises a first sub-block, the second block comprises a second sub-block, and the vertical or horizontal boundary comprises a sub-block boundary, and the first value is lower than the second value.
[0091] In some embodiments, a first value is applied for the predetermined threshold when unidirection prediction is used for the video picture, a second value is applied for the predetermined threshold when bi-direction prediction is used for the video picture, and the first value is lower than the second value.
[0092] In some embodiments, a first value is applied for the predetermined threshold when the first and second sides use unidirection prediction, a second value is applied for the predetermined threshold when the first and second sides use bi-direction prediction, and the first value is lower than the second value. [0093] In some embodiments, the predetermined threshold is reduced when a specific coding tool is used for coding the video picture. In some embodiments, reshaping is the specific coding tool.
[0094] 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 obtaining unit 804 for obtaining a first motion vector component in the first side; a second obtaining unit 806 for obtaining a second motion vector component in the second side; a determining unit 808 for determining whether an absolute difference between the first motion vector component and the second motion vector component is equal to or larger than a predetermined threshold; and an applying unit 810 for applying deblocking to the vertical or horizontal boundary between the first side and the second side as a result of determining that the absolute difference between the first motion vector component and the second motion vector component is equal to or larger than the predetermined threshold. In some embodiments, the predetermined threshold is derived from a bitstream.
[0095] In some embodiments, the first motion vector component comprises a first horizontal motion vector component or a first vertical motion vector component in the first side. In some embodiments, the second motion vector component comprises a second horizontal motion vector component or a second vertical motion vector component in the second side.
[0096] In some embodiments, the predetermined threshold equals one full pixel difference. In some embodiments, the predetermined threshold equals N where N is less than M and 1/M is the motion vector accuracy in parts of pixels.
[0097] FIG. 9 is a block diagram of an apparatus (e.g., 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.
[0098] Summary of Various Embodiments
[0099] A1. A method for deblocking at least one vertical or horizontal boundary of a coding unit, wherein the vertical or horizontal boundary forms a first side and a second side of the coding unit, wherein a video picture comprises the coding unit, and wherein the first and second sides use a same reference picture, the method comprising: obtaining a first motion vector component in the first side; obtaining a second motion vector component in the second side; determining whether an absolute difference between the first motion vector component and the second motion vector component is equal to or larger than a predetermined threshold; and as a result of determining that the absolute difference between the first motion vector component and the second motion vector component is equal to or larger than the predetermined threshold, applying deblocking to the vertical or horizontal boundary between the first side and the second side.
[00100] A2. The method of embodiment Al, wherein the first motion vector component comprises a first horizontal motion vector component or a first vertical motion vector component in the first side, and wherein the second motion vector component comprises a second horizontal motion vector component or a second vertical motion vector component in the second side. [00101] A3. The method of embodiment A1 or A2, wherein the predetermined threshold equals one full pixel difference.
[00102] A4. The method of embodiment A1 or A2, wherein the predetermined threshold equals N where N is less than M and 1/M is the motion vector accuracy in parts of pixels.
[00103] A5. The method of any one of embodiments A1 to A4, wherein the
predetermined threshold is included in a bitstream.
[00104] A6. The method of embodiment A5, wherein the predetermined threshold is included in a slice header.
[00105] A7. The method of any one of embodiments A1 to A6, wherein a first value is applied for the predetermined threshold when the video picture is a first temporal layer, wherein a second value is applied for the predetermined threshold when the video picture is a second temporal layer, and wherein the first temporal layer is higher than the second temporal layer and the first value is lower than the second value.
[00106] A8. The method of any one of embodiments A1 to A6, wherein a first value is applied for the predetermined threshold when the video picture uses a first quantization parameter (QP), wherein a second value is applied for the predetermined threshold when the video picture uses a second QP, and wherein the first QP is higher than the second QP and the first value is lower than the second value.
[00107] A9. The method of any one of embodiments A1 to A6, wherein a first value is applied for the predetermined threshold when the first side comprises a first coding unit (CU), the second block comprises a second CU, and the vertical or horizontal boundary comprises a CU boundary, wherein a second value is applied for the predetermined threshold when the first side comprises a first sub-block, the second block comprises a second sub-block, and the vertical or horizontal boundary comprises a sub-block boundary, and wherein the first value is lower than the second value.
[00108] A10. The method of any one of embodiments A1 to A6, wherein a first value is applied for the predetermined threshold when unidirection prediction is used for the video picture, wherein a second value is applied for the predetermined threshold when bi-direction prediction is used for the video picture, and wherein the first value is lower than the second value.
[00109] Al l. The method of any one of embodiments A1 to A6, wherein a first value is applied for the predetermined threshold when the first and second sides use unidirection prediction, wherein a second value is applied for the predetermined threshold when the first and second sides use bi-direction prediction, and wherein the first value is lower than the second value.
[00110] A12. The method of any one of embodiments A1 to A11, wherein the predetermined threshold is reduced when a specific coding tool is used for coding the video picture.
[00111] A13. The method of A11, wherein reshaping is the specific coding tool.
[00112] A14. A computer program comprising instructions which, when executed by processing circuity, causes the processing circuitry to carry out the method of any one of embodiments A1 -A13.
[00113] A15. A carrier containing the computer program of embodiment A14, wherein the carrier is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium.
[00114] Bl. An encoder for deblocking at least one vertical or horizontal boundary of a coding unit, wherein the vertical or horizontal boundary forms a first side and a second side of the coding unit, wherein a video picture comprises the coding unit, and wherein the first and second sides use a same reference picture, the encoder comprising: processing circuitry configured to: obtain a first motion vector component in the first side, obtain a second motion vector component in the second side, determine whether an absolute difference between the first motion vector component and the second motion vector component is equal to or larger than a predetermined threshold, and as a result of determining that the absolute difference between the first motion vector component and the second motion vector component is equal to or larger than the predetermined threshold, apply deblocking to the vertical or horizontal boundary between the first side and the second side. [00115] B2. The encoder of embodiment Bl, wherein the first motion vector component comprises a first horizontal motion vector component or a first vertical motion vector component in the first side, and wherein the second motion vector component comprises a second horizontal motion vector component or a second vertical motion vector component in the second side.
[00116] B3. The encoder of embodiment Bl or B2, wherein the predetermined threshold equals one full pixel difference.
[00117] B4. The encoder of embodiment Bl or B2, wherein the predetermined threshold equals N where N is less than M and 1/M is the motion vector accuracy in parts of pixels.
[00118] B5. The encoder of any one of embodiments Bl to B4, wherein the processing circuitry is further configured to include the predetermined threshold in a bitstream.
[00119] B6. The encoder of embodiment B5, wherein the predetermined threshold is included in a slice header.
[00120] B7. The encoder of any one of embodiments Bl to B6, wherein a first value is applied for the predetermined threshold when the video picture is a first temporal layer, wherein a second value is applied for the predetermined threshold when the video picture is a second temporal layer, and wherein the first temporal layer is higher than the second temporal layer and the first value is lower than the second value.
[00121] B8. The encoder of any one of embodiments Bl to B6, wherein a first value is applied for the predetermined threshold when the video picture uses a first quantization parameter (QP), wherein a second value is applied for the predetermined threshold when the video picture uses a second QP, and wherein the first QP is higher than the second QP and the first value is lower than the second value.
[00122] B9. The encoder of any one of embodiments Bl to B6, wherein a first value is applied for the predetermined threshold when the first side comprises a first coding unit (CU), the second block comprises a second CU, and the vertical or horizontal boundary comprises a CU boundary, wherein a second value is applied for the predetermined threshold when the first side comprises a first sub-block, the second block comprises a second sub-block, and the vertical or horizontal boundary comprises a sub-block boundary, and wherein the first value is lower than the second value.
[00123] B10. The encoder of any one of embodiments B1 to B6, wherein a first value is applied for the predetermined threshold when unidirection prediction is used for the video picture, wherein a second value is applied for the predetermined threshold when bi-direction prediction is used for the video picture, and wherein the first value is lower than the second value.
[00124] B11. The encoder of any one of embodiments B1 to B6, wherein a first value is applied for the predetermined threshold when the first and second sides use unidirection prediction, wherein a second value is applied for the predetermined threshold when the first and second sides use bi-direction prediction, and wherein the first value is lower than the second value.
[00125] B12. The encoder of any one of embodiments B1 to B11, wherein the predetermined threshold is reduced when a specific coding tool is used for coding the video picture.
[00126] B13. The encoder of B11, wherein reshaping is the specific coding tool.
[00127] Cl. A decoder for deblocking at least one vertical or horizontal boundary of a coding unit, wherein the vertical or horizontal boundary forms a first side and a second side of the coding unit, wherein a video picture comprises the coding unit, and wherein the first and second sides use a same reference picture, the decoder comprising: processing circuitry configured to: obtain a first motion vector component in the first side, obtain a second motion vector component in the second side, determine whether an absolute difference between the first motion vector component and the second motion vector component is equal to or larger than a predetermined threshold, and as a result of determining that the absolute difference between the first motion vector component and the second motion vector component is equal to or larger than the predetermined threshold, apply deblocking to the vertical or horizontal boundary between the first side and the second side.
[00128] C2. The decoder of embodiment Dl, wherein the first motion vector component comprises a first horizontal motion vector component or a first vertical motion vector component in the first side, and wherein the second motion vector component comprises a second horizontal motion vector component or a second vertical motion vector component in the second side.
[00129] C3. The decoder of embodiment Cl or C2, wherein the predetermined threshold equals one full pixel difference.
[00130] C4. The decoder of embodiment Cl or C2, wherein the predetermined threshold equals N where N is less than M and 1/M is the motion vector accuracy in parts of pixels.
[00131] C5. The decoder of any one of embodiments Cl to C4, wherein the processing circuitry is further configured to derive the predetermined threshold from a bitstream.
[00132] C6. The decoder of embodiment C5, wherein the predetermined threshold is included in a slice header.
[00133] C7. The decoder of any one of embodiments Cl to C6, wherein a first value is applied for the predetermined threshold when the video picture is a first temporal layer, wherein a second value is applied for the predetermined threshold when the video picture is a second temporal layer, and wherein the first temporal layer is higher than the second temporal layer and the first value is lower than the second value.
[00134] C8. The decoder of any one of embodiments Cl to C6, wherein a first value is applied for the predetermined threshold when the video picture uses a first quantization parameter (QP), wherein a second value is applied for the predetermined threshold when the video picture uses a second QP, and wherein the first QP is higher than the second QP and the first value is lower than the second value.
[00135] C9. The decoder of any one of embodiments Cl to C6, wherein a first value is applied for the predetermined threshold when the first side comprises a first coding unit (CU), the second block comprises a second CU, and the vertical or horizontal boundary comprises a CU boundary, wherein a second value is applied for the predetermined threshold when the first side comprises a first sub-block, the second block comprises a second sub-block, and the vertical or horizontal boundary comprises a sub-block boundary, and wherein the first value is lower than the second value. [00136] CIO. The decoder of any one of embodiments Cl to C6, wherein a first value is applied for the predetermined threshold when unidirection prediction is used for the video picture, wherein a second value is applied for the predetermined threshold when bi-direction prediction is used for the video picture, and wherein the first value is lower than the second value.
[00137] Cl 1. The decoder of any one of embodiments Cl to C6, wherein a first value is applied for the predetermined threshold when the first and second sides use unidirection prediction, wherein a second value is applied for the predetermined threshold when the first and second sides use bi-direction prediction, and wherein the first value is lower than the second value.
[00138] C12. The decoder of any one of embodiments Cl to Cl 1, wherein the
predetermined threshold is reduced when a specific coding tool is used for coding the video picture.
[00139] Cl 3. The decoder of Cl 1, wherein reshaping is the specific coding tool.
[00140] 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.
[00141] 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

1. A method (700) for deblocking at least one vertical or horizontal boundary of a coding unit, wherein the vertical or horizontal boundary forms a first side and a second side of the coding unit, wherein a video picture comprises the coding unit, and wherein the first and second sides use a same reference picture, the method comprising:
obtaining (s710) a first motion vector component in the first side;
obtaining (s720) a second motion vector component in the second side;
determining (s730) whether an absolute difference between the first motion vector component and the second motion vector component is equal to or larger than a predetermined threshold; and
as a result of determining that the absolute difference between the first motion vector component and the second motion vector component is equal to or larger than the predetermined threshold, applying (s740) deblocking to the vertical or horizontal boundary between the first side and the second side, wherein
the predetermined threshold is less than 1 sample.
2. The method of claim 1, wherein
the first motion vector component comprises a first horizontal motion vector component or a first vertical motion vector component in the first side, and
the second motion vector component comprises a second horizontal motion vector component or a second vertical motion vector component in the second side.
3. The method of claim 1 or 2, wherein the predetermined threshold is N/16, where N is a whole number less than 16.
4. The method of claim 1 or 2, wherein the predetermined threshold equals N where N is less than M and 1/M is the motion vector accuracy in parts of pixels.
5. The method of any one of claims 1 to 4, further comprising: including the predetermined threshold in a bitstream, or
deriving the predetermined threshold from a bitstream.
6. The method of claim 5, wherein
the predetermined threshold is included in a slice header, or
the predetermined threshold is derived from a slice header.
7. The method of any one of claims 1 to 6, wherein a first value is applied for the predetermined threshold when the video picture is a first temporal layer,
wherein a second value is applied for the predetermined threshold when the video picture is a second temporal layer, and
wherein the first temporal layer is higher than the second temporal layer and the first value is lower than the second value.
8. The method of any one of claims 1 to 6, wherein a first value is applied for the predetermined threshold when the video picture uses a first quantization parameter (QP),
wherein a second value is applied for the predetermined threshold when the video picture uses a second QP, and
wherein the first QP is higher than the second QP and the first value is lower than the second value.
9. The method of any one of claims 1 to 6, wherein a first value is applied for the predetermined threshold when the first side comprises a first coding unit (CU), the second block comprises a second CU, and the vertical or horizontal boundary comprises a CU boundary, wherein a second value is applied for the predetermined threshold when the first side comprises a first sub-block, the second block comprises a second sub-block, and the vertical or horizontal boundary comprises a sub-block boundary, and
wherein the first value is lower than the second value.
10. The method of any one of claims 1 to 6, wherein a first value is applied for the predetermined threshold when unidirection prediction is used for the video picture, wherein a second value is applied for the predetermined threshold when bi-direction prediction is used for the video picture, and
wherein the first value is lower than the second value.
11. The method of any one of claims 1 to 6, wherein a first value is applied for the predetermined threshold when the first and second sides use unidirection prediction,
wherein a second value is applied for the predetermined threshold when the first and second sides use bi-direction prediction, and
wherein the first value is lower than the second value.
12. The method of any one of claims 1 to 11, wherein the predetermined threshold is reduced when a specific coding tool is used for coding the video picture.
13. A computer program (943) comprising instructions (944) which, when executed by processing circuity (902), causes the processing circuitry (902) to carry out 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 (802) for deblocking at least one vertical or horizontal boundary of a coding unit, wherein the vertical or horizontal boundary forms a first side and a second side of the coding unit, wherein a video picture comprises the coding unit, and wherein the first and second sides use a same reference picture, the apparatus comprising processing circuitry (902) configured to:
obtain a first motion vector component in the first side,
obtain a second motion vector component in the second side,
determine whether an absolute difference between the first motion vector component and the second motion vector component is equal to or larger than a predetermined threshold, and as a result of determining that the absolute difference between the first motion vector component and the second motion vector component is equal to or larger than the predetermined threshold, apply deblocking to the vertical or horizontal boundary between the first side and the second side, wherein
the predetermined threshold is less than 1 sample.
16. The apparatus of claim 15, wherein
the first motion vector component comprises a first horizontal motion vector component or a first vertical motion vector component in the first side, and
the second motion vector component comprises a second horizontal motion vector component or a second vertical motion vector component in the second side.
17. The method of claim 15 or 16, wherein the predetermined threshold is N/16, where N is a whole number less than 16.
18. The apparatus of claim 15 or 16, wherein the predetermined threshold equals N where N is less than M and 1/M is the motion vector accuracy in parts of pixels.
19. The apparatus of any one of claims 15 to 18, wherein
the processing circuitry is further configured to include the predetermined threshold in a bitstream, or
the processing circuitry is further configured to derive the predetermined threshold from a bitstream.
20. The apparatus of any one of claims 15-19, wherein the apparatus is an encoder or a decoder.
PCT/SE2020/050193 2019-02-27 2020-02-19 Deblocking using sub-pel motion vector threshold Ceased WO2020176026A1 (en)

Priority Applications (8)

Application Number Priority Date Filing Date Title
BR112021014861-2A BR112021014861A2 (en) 2019-02-27 2020-02-19 METHOD AND APPLIANCE FOR UNLOCKING AT LEAST ONE VERTICAL OR HORIZONTAL CONTOUR OF A CODING UNIT, AND, CARRIER
US17/434,074 US11902516B2 (en) 2019-02-27 2020-02-19 Deblocking using sub-pel motion vector threshold
CN202080016460.7A CN113475082A (en) 2019-02-27 2020-02-19 Deblocking using sub-pixel motion vector thresholds
AU2020229625A AU2020229625A1 (en) 2019-02-27 2020-02-19 Deblocking using sub-pel motion vector threshold
EP20762858.7A EP3932080A4 (en) 2019-02-27 2020-02-19 UNBLOCKING USING SUBPIXEL MOTION VECTOR THRESHOLD
JP2021549588A JP7386883B2 (en) 2019-02-27 2020-02-19 Deblocking using subpel motion vector thresholding
US18/535,787 US12407825B2 (en) 2019-02-27 2023-12-11 Deblocking using sub-PEL motion vector threshold
US19/294,515 US20260075194A1 (en) 2019-02-27 2025-08-08 Deblocking using sub-pel motion vector threshold

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962811354P 2019-02-27 2019-02-27
US62/811,354 2019-02-27

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US17/434,074 A-371-Of-International US11902516B2 (en) 2019-02-27 2020-02-19 Deblocking using sub-pel motion vector threshold
US18/535,787 Continuation US12407825B2 (en) 2019-02-27 2023-12-11 Deblocking using sub-PEL motion vector threshold

Publications (1)

Publication Number Publication Date
WO2020176026A1 true WO2020176026A1 (en) 2020-09-03

Family

ID=72240183

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/SE2020/050193 Ceased WO2020176026A1 (en) 2019-02-27 2020-02-19 Deblocking using sub-pel motion vector threshold

Country Status (7)

Country Link
US (3) US11902516B2 (en)
EP (1) EP3932080A4 (en)
JP (1) JP7386883B2 (en)
CN (1) CN113475082A (en)
AU (1) AU2020229625A1 (en)
BR (1) BR112021014861A2 (en)
WO (1) WO2020176026A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090274215A1 (en) * 2008-04-30 2009-11-05 Metsugi Katsuhiko Image processing apparatus, image processing method and image processing program
US20110194614A1 (en) * 2010-02-05 2011-08-11 Andrey Norkin De-Blocking Filtering Control
US20130182764A1 (en) * 2011-11-25 2013-07-18 Panasonic Corporation Image processing method and image processing apparatus
US20130251029A1 (en) * 2011-01-18 2013-09-26 Sony Corporation Image processing device and image processing method
US20140369428A1 (en) * 2011-11-04 2014-12-18 Lg Electronics Inc. Method and apparatus for encoding/decoding image information

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100843196B1 (en) * 2004-12-17 2008-07-02 삼성전자주식회사 Deblocking Filter for H.264 / ACC Video Decoder
US8520739B2 (en) * 2005-05-09 2013-08-27 Intel Corporation Method and apparatus for adaptively reducing artifacts in block-coded video
JPWO2009001793A1 (en) * 2007-06-26 2010-08-26 株式会社東芝 Method and apparatus for image encoding and image decoding
KR101963097B1 (en) 2010-12-07 2019-03-27 소니 주식회사 Image processing device and image processing method
US9270993B2 (en) 2012-09-10 2016-02-23 Apple Inc. Video deblocking filter strength derivation
CN107027040B9 (en) * 2016-01-29 2020-08-28 华为技术有限公司 A kind of filtering method and device for removing block effect
US11432010B2 (en) * 2017-12-19 2022-08-30 Vid Scale, Inc. Face discontinuity filtering for 360-degree video coding
WO2019136657A1 (en) * 2018-01-11 2019-07-18 Qualcomm Incorporated Video coding using local illumination compensation
CN111656783B (en) * 2018-01-25 2024-03-08 三星电子株式会社 Method and apparatus for video signal processing using sub-block based motion compensation
KR102934793B1 (en) * 2018-01-26 2026-03-05 한국전자통신연구원 Method and apparatus for image encoding and image decoding based on temporal motion information
WO2019187412A1 (en) * 2018-03-29 2019-10-03 ソニー株式会社 Image processing device and image processing method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090274215A1 (en) * 2008-04-30 2009-11-05 Metsugi Katsuhiko Image processing apparatus, image processing method and image processing program
US20110194614A1 (en) * 2010-02-05 2011-08-11 Andrey Norkin De-Blocking Filtering Control
US20130251029A1 (en) * 2011-01-18 2013-09-26 Sony Corporation Image processing device and image processing method
US20140369428A1 (en) * 2011-11-04 2014-12-18 Lg Electronics Inc. Method and apparatus for encoding/decoding image information
US20130182764A1 (en) * 2011-11-25 2013-07-18 Panasonic Corporation Image processing method and image processing apparatus

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "ITU-T H.265 High efficiency video coding", RECOMMENDATION ITU-T H.265. SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS. INFRASTRUCTURE OF AUDIOVISUAL SERVICES – CODING OF MOVING VIDEO, INTERNATIONAL TELECOMMUNICATION UNION (ITU), pages 1 - 692, XP055746713 *
BENJAMIN BROSS ET AL.: "Versatile Video Coding (Draft 4", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 , 13TH MEETING, 9 January 2019 (2019-01-09), Marrakech, MA, XP030202597, Retrieved from the Internet <URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/current_document.php?id=5755> [retrieved on 20190226] *
K. ANDERSSON ET AL.: "CE11-related: On MV threshold for deblocking", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 14TH MEETING, 19 March 2019 (2019-03-19), Geneva, CH, XP030204467, Retrieved from the Internet <URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/current_document.php?id=6080> [retrieved on 20190322] *
See also references of EP3932080A4 *

Also Published As

Publication number Publication date
US20240187583A1 (en) 2024-06-06
US20220141457A1 (en) 2022-05-05
JP7386883B2 (en) 2023-11-27
US11902516B2 (en) 2024-02-13
EP3932080A4 (en) 2022-06-08
US20260075194A1 (en) 2026-03-12
BR112021014861A2 (en) 2021-10-05
US12407825B2 (en) 2025-09-02
AU2020229625A1 (en) 2021-10-07
EP3932080A1 (en) 2022-01-05
JP2022522140A (en) 2022-04-14
CN113475082A (en) 2021-10-01

Similar Documents

Publication Publication Date Title
US11153562B2 (en) Method and apparatus of advanced deblocking filter in video coding
JP2025131771A (en) SYSTEM AND METHOD FOR APPLYING A DEBLOCKING FILTER TO RECONSTRUCTED VIDEO DATA - Patent application
CN110024405B (en) Image processing method and device
US12167043B2 (en) Deblocking of transform sub-block boundaries
AU2020203726A1 (en) Method and apparatus of adaptive filtering of samples for video coding
WO2020100764A1 (en) Systems and methods for applying deblocking filters to reconstructed video data
EP3844958B1 (en) Deblocking filter for video coding and processing
US20250159153A1 (en) Deblocking in a video encoder and/or video decoder
EP3794820A1 (en) Deblocking of implicit transform unit boundaries
US12407825B2 (en) Deblocking using sub-PEL motion vector threshold
WO2020016795A2 (en) Block size restrictions for visual media coding
WO2020171760A1 (en) Deblocking on 4x4 grid using long filters
AU2020341422B2 (en) Deblocking filter selection in video or image coding
EP3874758A1 (en) Deblocking between block boundaries and sub-block boundaries in a video encoder and/or video decoder
WO2021198310A1 (en) Video processing

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: 20762858

Country of ref document: EP

Kind code of ref document: A1

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112021014861

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 2021549588

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020762858

Country of ref document: EP

Effective date: 20210927

ENP Entry into the national phase

Ref document number: 112021014861

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20210728

ENP Entry into the national phase

Ref document number: 2020229625

Country of ref document: AU

Date of ref document: 20200219

Kind code of ref document: A