Apparatus and method for performing deblocking

The deblocking filter device and method efficiently reduce edge artifacts in block-based image coding by separately handling block and sub-block edges, achieving parallel processing and reduced processing time.

JP2025013778AActive Publication Date: 2025-01-28HUAWEI TECH CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2024166727
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2018-08-27
Filing Date
2024-09-25
Publication Date
2025-01-28
Estimated Expiration
2039-08-12

AI Technical Summary

Technical Problem

Existing block-based image coding methods suffer from edge artifacts due to independent coding of blocks, which are visually displeasing and require deblocking filters to reduce these artifacts, but current deblocking filters are inefficient and time-consuming.

Method used

A deblocking filter device and method that efficiently and accurately reduces edge artifacts by separately handling block and sub-block edges, allowing parallel processing and reducing processing time through asymmetric tap filters and threshold-based decisions.

Benefits of technology

The proposed solution significantly reduces processing time for deblocking while maintaining high accuracy by effectively addressing edge artifacts in block-based image coding, enabling efficient and parallel execution of deblocking operations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025013778000001_ABST
    Figure 2025013778000001_ABST
Patent Text Reader

Abstract

To provide a deblocking filter device and a deblocking method for improving a deblocking filter of an image coding device.SOLUTION: A method includes: determining edges between blocks; determining whether a block edge between a first coding block and a second coding block is to be filtered by applying a first filter; and modifying, when the filtering is determined, at most a number MA of sample values of the first coding block adjacent to the block edge and modifying at most a number MB of sample values of the second coding block adjacent to the block edge, or modifying at most a number MA of sample values of the second coding block adjacent to the block edge and modifying at most a number MB of sample values of the first coding block adjacent to the block edge, MA≠MB.SELECTED DRAWING: Figure 10
Need to check novelty before this filing date? Find Prior Art

Description

[Background technology]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims priority to U.S. Provisional Patent Application No. 62 / 717,029, filed August 10, 2018, and U.S. Provisional Patent Application No. 62 / 723,453, filed August 27, 2018. The aforementioned patent applications are incorporated herein by reference in their entireties.

[0002] Technical Field FIELD OF THE DISCLOSURE Embodiments of the present invention relate to the field of image processing, such as still image and / or video image coding. In particular, embodiments of the present invention deal with improvements to deblocking filters.

[0003] background Image coding (encoding and decoding) is used in a wide range of digital image applications, e.g. digital broadcast TV, video transmission over the Internet and mobile networks, real-time conversation applications like video chat, video conferencing, DVDs and Blu-ray Discs, video content acquisition and editing systems, and camcorders in security applications.

[0004] Since the development of the block-based hybrid video coding approach in the H.261 standard in 1990, new video encoding techniques and tools have been developed and have formed the basis of new video coding standards. One of the goals of most video coding standards has been to achieve a reduction in bit rate compared to previous standards without sacrificing image quality. Furthermore, video coding standards include MPEG-1 Video, MPEG-2 Video, ITU-T H.262 / MPEG-2, ITU-T H.263, ITU-T H.264 / MPEG-4, Part 10, Advanced Video Coding (AVC), ITU-T H.265, High Efficiency Video Coding (HEVC), ITU-T H.266 / Generic Video Coding (VVC) and extensions of these standards, such as scalability and / or three-dimensional (3D) extensions.

[0005] Block-based image coding schemes have in common that edge artifacts may occur along block edges. These artifacts result from the independent coding of coding blocks. These edge artifacts are often easily visible to the user. The goal of block-based image coding is to reduce the edge artifacts below the visibility threshold. This is done by performing deblocking filtering. Such deblocking filtering is performed on the one hand at the decoding side to remove visible edge artifacts, and on the other hand at the encoding side to prevent any edge artifacts from being coded into the image. Deblocking filtering can be difficult, especially for image blocks that use sub-block tools (such as transform unit (TU), prediction unit (PU), coding unit (CU)). Summary of the Invention

[0006] Considering the above problems, the present invention aims to improve the conventional deblocking filtering. The present invention has a task to provide a deblocking filter device, an encoder, a decoder, and a corresponding method capable of performing deblocking filtering with a reduced processing time. Furthermore, the deblocking should be efficient and accurate.

[0007] Embodiments of the invention are defined by the features of the independent claims, further advantageous implementations of the embodiments are defined by the features of the dependent claims.

[0008] Particular embodiments are outlined in the accompanying independent claims and other embodiments in the dependent claims.

[0009] According to a first aspect of the present invention, there is provided a deblocking filter device, the deblocking filter device being intended for use in an image encoder and / or an image decoder. The deblocking filter device comprises: an edge positioning unit configured to determine edges between blocks, the edges between the blocks including block edges (e.g. CU edges or CU boundaries or TU boundaries) between a first coding block P and a second coding block Q, and sub-block edges between sub-blocks of the first coding block P or the second coding block Q (i.e. the first coding block P or the second coding block Q has a sub-block or the first coding block P or the second coding block Q uses a sub-block tool), the first coding block P has a block size of M×N samples or N×M samples, and the second coding block Q has a block size of L×T samples or T×L samples (the block size of any of the two coding blocks may be expressed by W*H, where W and H denote the width and height of the respective coding blocks), e.g. N or T is an even integer 2 n(i.e., an integer power of 2 where n is an integer) and greater than a threshold value (e.g., having a value such as 8 or 16, etc.), an edge positioning unit, a deblocking determination unit configured to determine whether a block edge between a first coding block P and a second coding block Q should be filtered by applying a first filter (i.e., a longer tap filter, or an asymmetric filter, or an asymmetric tap filter, or an asymmetric long filter), a deblocking filtering unit configured to apply a first filter (i.e., a longer tap filter, or an asymmetric filter, or an asymmetric tap filter, or an asymmetric long filter) to sample values in the vicinity of the block edge between the first coding block P and the second coding block Q when it is determined that the block edge between the first coding block P and the second coding block Q should be filtered by applying the first filter, where at most MA sample values of the adjacent first coding block perpendicular to the block edge for each line are corrected, and at most MB sample values of the adjacent second coding block perpendicular to the block edge for each line are corrected, or at most MA sample values of the adjacent second coding block perpendicular to the block edge for each line are corrected, and at most MB sample values of the adjacent first coding block perpendicular to the block edge for each line are corrected, and MA ≠ MB, and in particular MA < MB such as MA < MB = 7. For example, MA = 3 and MB = 7, or MA = 4 and MB = 7, or MA = 5 and MB = 7, etc. It is possible to understand that the values of MA or MB depend on the values of N or T.

[0010] If the second image block Q is a current block having sub-blocks or using the sub-block tool, and the first image block P is a neighboring block of the current block, then in the second coding block, for each line of adjacent input samples perpendicular to the block edge, at most MA samples are modified to generate an output filtered sample, and in the first coding block, for each line of adjacent input samples perpendicular to the block edge, at most MB samples are modified to generate an output filtered sample. For example, N or T is an even integer greater than 8, 2 n M or L is an even integer greater than 2. n (e.g., M or L may have the following values: 4, 8, 16, or 32,...), where M is different from N, or M is the same as N, or L is different from T, or L is the same as T, and M x N (where N>8) applies to horizontal edges and N x M (where N>8) applies to vertical edges. In another example, N or T may be an even integer greater than 16, 2 n where M×N (N>16) applies to horizontal edges and N×M (N>16) applies to vertical edges.

[0011] The difference between a block edge and a sub-block edge is explained in further description. A sub-block edge is an edge internal to a block using sub-block tools including sub-pu tools such as Affine or Advanced Temporal Motion Vector Prediction (ATMVP), and a block edge (i.e., a coding unit (CU) edge or coding block edge or CU boundary) is an edge shared between two coding units or two coding blocks or two transform blocks. Sub-block tools may also include tools such as an intra-sub-partition tool (ISP) and a sub-block transform (SBT) tool.

[0012] It should be noted that the terms "block", "coding block", or "image block" are used in this disclosure to apply to transform unit (TU), prediction unit (PU), coding unit (CU), etc. In general, in VVC, transform units and coding units are nearly consistent, except in a few scenarios where TU tiling or sub-block transform (SBT) is used. It is understood that the terms "block / image block / coding block / transform block" and "block size / transform block size" may be interchanged in this disclosure. The terms "sample / pixel" may be interchanged in this disclosure.

[0013] The invention works for both vertical and horizontal edges. For vertical edges, the width of the first or second coding block is checked if it is greater than 8 samples (e.g. 16 or 32). For horizontal edges, the height of the first or second coding block is checked if it is greater than 8 samples (e.g. 16 or 32). For vertical edges, the width of the block is considered and only for blocks with a width equal to or greater than 16, a longer tap filter (i.e. long filter) is applied. For horizontal edges, the height of the block is considered and only for blocks with a height equal to or greater than 16, a longer tap filter (i.e. long filter) is applied.

[0014] The first filter (i.e., a longer tap filter, an asymmetric filter, an asymmetric tap filter, or an asymmetric long filter) is a filter that uses DA samples for filter determination on one side of the block edge and DB samples for filter determination on the other side of the block edge, where MB samples are modified on one side of the block edge (CU edge or TU edge) and MA samples are modified on the other side of the block edge (CU edge or TU edge), with MA ≠ MB, and in particular MA < MB, such as MA < MB = 7. For example, note that MA = 3 and MB = 7, or MA = 4 and MB = 7, or MA = 5 and MB = 7. Generally, DA = MA + 1 and DB = MB + 1. The first filter may be an asymmetric filter that modifies a different number of samples on either side of the block edge (e.g., CU edge or TU edge).

[0015] This allows for different handling of the two sides of the block edge, so that the method can avoid filtering overlap between the block edge and the sub - block edge, and thus can ensure that de - blocking can be performed in parallel. Therefore, the processing time of the de - blocking filtering is significantly reduced.

[0016] Note that the filter device may include a processor configured to perform filtering and modification. Furthermore, this can also ensure, in particular, that the edges between any blocks that use sub - block tools can be de - blocked in parallel.

[0017] In a possible implementation of such an apparatus according to the first aspect, a sub-block edge between the sub-blocks is in the first coding block and a sub-block edge between the sub-blocks is in the second coding block (i.e. the first coding block and the second coding block have sub-blocks), the deblocking decision unit is further configured to determine whether the block edge between the first coding block and the second coding block should be filtered by applying a second filter (e.g. an HEVC strong filter); and The deblocking filtering unit is further configured to, if it is determined that the block edge between the first coding block and the second coding block should be filtered by applying a second filter (e.g., an HEVC strong filter), apply a second filter (e.g., an HEVC strong filter) to values ​​of samples near the block edge, where MA' sample values ​​of the first coding block adjacent to the block edge are modified and MB' sample values ​​of the second coding block adjacent to the block edge are modified, where MA'=MB' such that MA'=MB'<7, e.g. MA'=MB'=3, or MA'=MB'=5.

[0018] It should be noted that the second filter may be a HEVC strong filter where MA' (e.g. 3) samples are modified on one side of the block edge (CU edge) and MB' (e.g. 3) samples are modified on the other side of the block edge (CU edge). In another example, the second filter is a strong filter capable of modifying at most three samples on both sides of the edge. In HEVC, two filters are specified as deblocking filters: normal filter and strong filter. The normal filter modifies at most two samples on both sides of the edge. In the strong filter, three more checks are performed between the samples along the edge.

[0019] In a possible implementation of such an apparatus according to the first aspect, if a sub-block edge between sub-blocks does not lie within the second coding block but a sub-block edge between sub-blocks does lie within the first coding block (i.e. the first coding block has sub-blocks), then at most MA sample values ​​of the first coding block adjacent to the block edge per line are modified and at most MB sample values ​​of the second coding block adjacent to the block edge per line are modified, e.g. MA=3 and MB=7, or MA=4 and MB=7, or MA=5 and MB=7; or If a sub-block edge between sub-blocks does not exist in the first coding block but does exist in the second coding block (i.e. the second coding block has sub-blocks), then at most MA sample values ​​of the second coding block adjacent to the block edge per line are modified, and at most MB sample values ​​of the first coding block adjacent to the block edge per line are modified, for example MA=3 and MB=7, or MA=4 and MB=7, or MA=5 and MB=7.

[0020] In a possible implementation form of the device according to such first aspect or any of the above implementations of the first aspect, the deblocking decision unit further determines whether a block edge between the first coding block and the second coding block should be filtered by applying a first filter (i.e. a longer tap filter, or an asymmetric filter, or an asymmetric tap filter, or an asymmetric longer filter), - at most D sample values ​​of the first coding block adjacent to the block edge as the first filter decision value, and - at most DB sample values ​​of the second coding block adjacent to the block edge as the second filter decision value The method is configured to determine based on

[0021] In general, DA=MA+1 and DB=MB+1. If MA=3 and MB=3 then DA=DB=4, or if MA=7 and MB=7 then DA=DB=8, or if MA=3 and MB=7 then DA=4, DB=8, or if MA=4 and MB=7 then DA=5, DB=8, or if MA=5 and MB=7 then DA=6, DB=8. This allows very accurate parallel determination of which edges are actually deblocked and which are not.

[0022] In such a possible implementation form of the device according to the first aspect or any of the above implementations of the first aspect, if a sub-block edge between sub-blocks is inside the second coding block Q (i.e. the second coding block Q has sub-blocks), the deblocking decision unit is configured to determine whether the deblocking decision unit determines whether the sub-block edge between the sub-blocks is inside the second coding block Q (i.e. the second coding block Q has sub-blocks) based on the first formula:

number

[0023] A new filter condition is proposed, which significantly reduces the line memory required to store pixel values ​​of past coding units required to perform deblocking at the edges of coding units.

[0024] In such a possible implementation form of the device according to the first aspect or any of the above implementations of the first aspect, if the sub-block edge between the sub-blocks is inside the first coding block P (i.e. the first coding block P has sub-blocks), the deblocking decision unit is configured to determine whether the sub-block edge is within the first coding block P (i.e. the first coding block P has sub-blocks) by:

number

[0025] A new filter condition is proposed, which significantly reduces the line memory required to store pixel values ​​of past coding units required to perform deblocking at the edges of coding units.

[0026] In a possible implementation form of the apparatus according to such first aspect or any above implementation of the first aspect, the threshold parameter β is determined based on a quantization parameter QP associated with a quantization step size of the multiple samples, or the threshold parameter β is determined based on the quantization parameter QP using a look-up table.

[0027] In such a possible implementation form of the device according to the first aspect or any of the above implementations of the first aspect, if a sub-block edge between sub-blocks does not lie inside the first coding block P and a sub-block edge between sub-blocks lies inside the second coding block Q (i.e. the first coding block P does not have a sub-block and the second coding block Q has a sub-block), the deblocking filtering unit may be configured to:

number

[0028] New filter coefficients are proposed, which allow two types of filter coefficients, including HEVC strong filter coefficients and longer tap asymmetric filter coefficients.

[0029] In such a possible implementation form of the device according to the first aspect or any of the above implementations of the first aspect, if a sub-block edge between sub-blocks does not lie inside the first coding block P and a sub-block edge between sub-blocks lies inside the second coding block Q (i.e. the first coding block P does not have a sub-block and the second coding block Q has a sub-block), the deblocking filtering unit may be configured to:

number

[0030] In such a possible implementation form of the device according to the first aspect or any of the above implementations of the first aspect, if a sub-block edge between sub-blocks does not lie inside the first coding block P and a sub-block edge between sub-blocks lies inside the second coding block Q (i.e. the first coding block P does not have a sub-block and the second coding block Q has a sub-block), the deblocking filtering unit may be configured to:

number

[0031] In such a possible implementation form of the device according to the first aspect or any of the above implementations of the first aspect, if a sub-block edge between sub-blocks does not lie inside the first coding block P and a sub-block edge between sub-blocks lies inside the second coding block Q (i.e. the first coding block P does not have a sub-block and the second coding block Q has a sub-block), the deblocking filtering unit may be configured to:

number

[0032] According to a second aspect, there is provided a deblocking filter device, the deblocking filter device being intended for use in an image encoder and / or an image decoder. an edge positioning unit configured to determine edges between blocks, the edges between blocks including block edges between a first coding block P and a second coding block Q and sub-block edges between sub-blocks of the first coding block P or the second coding block Q (i.e. the first coding block P or the second coding block Q has sub-blocks or the first coding block P or the second coding block Q uses a sub-block tool), the first coding block P has a block size that is M×N or N×M, and the second coding block Q has a block size that is L×T or T×L, e.g. N or T is an even integer 2 greater than a threshold value (e.g. 8 or 16, etc.); n an edge positioning unit, a deblocking decision unit configured to decide whether a block edge between a first coding block P and a second coding block Q should be filtered by applying a first filter (i.e. a longer tap filter, or an asymmetric filter, or an asymmetric tap filter, or an asymmetric long filter); a deblocking filtering unit configured to apply a third filter to values ​​of samples near a block edge between the first coding block P and the second coding block Q if it is determined that the block edge between the first coding block P and the second coding block Q should not be filtered by applying the first filter, where at most MA sample values ​​of the first coding block adjacent to the block edge per line are modified and at most MB sample values ​​of the second coding block adjacent to the block edge per line are modified, where MA=MB<7, e.g. MA=MB=4.

[0033] For example, N or T is an even integer greater than 8. n M or L is an even integer greater than 2. n and M is different from N, or M is the same as N, or L is different from T, or L is the same as T. In one example, the third filter may be an HEVC strong filter capable of modifying up to four samples on both sides of a block edge (CU edge). In other words, the third filter may be an HEVC strong filter in which up to four samples are modified on one side of the block edge (CU edge) while up to four samples are modified on the other side of the block edge (CU edge).

[0034] This allows modifying a small number of sample values ​​on both sides of the block edge, so the method can avoid filtering overlap between the block edge and the sub-block edge to some extent, and therefore ensure that the deblocking can be performed in parallel, thus shortening the processing time of the deblocking filtering.

[0035] According to a third aspect of the present invention, there is provided a deblocking filter device, the deblocking filter device being intended for use in an image encoder and / or an image decoder. The deblocking filter device comprises: an edge positioning unit configured to determine edges between blocks, the edges between blocks including block edges between a first coding block P and a second coding block Q and sub-block edges between sub-blocks of the first coding block P or the second coding block Q (i.e. the first coding block P or the second coding block Q has sub-blocks), the first coding block P has a block size that is M×N or N×M, the second coding block Q has a block size that is L×T or T×L, for example, N or T is an even integer 2 greater than a threshold value (e.g. 8 or 16, etc.); n an edge positioning unit, a deblocking decision unit configured to decide that sub-block edges between sub-blocks of the first coding block P or the second coding block Q (interior) should not be filtered, i.e. to decide that sub-block edges between sub-blocks of the first coding block P or the second coding block Q (interior) are disabled with respect to deblocking; a deblocking filtering unit configured to apply a fourth filter (a conventional longer tap filter) to values ​​of samples near a block edge between the first coding block P and the second coding block Q, where at most MA sample values ​​of the first coding block adjacent to the block edge are modified and at most MB sample values ​​of the second coding block adjacent to the block edge are modified, where MA=MB, e.g. MA=MB=7.

[0036] For example, N or T is an even integer greater than 8. nM or L is an even integer greater than 2. n and M is different from N, or M is the same as N, or L is different from T, or L is the same as T.

[0037] In one example, the fourth filter may be a conventional longer tap filter capable of modifying at most seven samples on either side of a block edge (eg, a CU edge or a CU boundary).

[0038] This allows the sub-block edges between sub-blocks of the first coding block P or the second coding block Q (interior) to be disabled for deblocking, so the method can avoid filtering overlap between block edges and sub-block edges and thus ensure that deblocking can be performed in parallel, thus significantly reducing the processing time of deblocking filtering.

[0039] According to a fourth aspect of the present invention, there is provided a video encoding device (100) for encoding images of a video stream, the video encoding device (100) comprising: a reconstruction unit (114) configured to reconstruct a picture; and a filter unit (120) as previously described for processing the reconstructed picture into a filtered reconstructed picture. This allows for a very efficient and accurate encoding of images.

[0040] According to a fifth aspect of the present invention, there is provided a video decoding apparatus (200) for decoding pictures of an encoded video stream (303), the video decoding apparatus (200) comprising: a reconstruction unit (214) configured to reconstruct a picture; and a loop filter unit (220) as previously described for processing the reconstructed picture into a filtered reconstructed picture. This allows for particularly accurate and efficient decoding of the images.

[0041] According to a sixth aspect, the present invention relates to a deblocking method for use in image encoding and / or decoding, the method comprising: determining inter-block edges, the inter-block edges including block edges between a first coding block P and a second coding block Q, and sub-block edges between sub-blocks of the first coding block P or the second coding block Q (e.g., the first coding block P or the second coding block Q has a sub-block, or the first coding block P or the second coding block Q has a sub-block tool), the first coding block P has a block size of M×N samples or N×M samples, and the second coding block Q has a block size of L×T samples or T×L samples, for example, N or T is an even integer 2 greater than a threshold (e.g., a value of 8 or 16, etc.); n and determining whether a block edge between a first coding block P and a second coding block Q should be filtered by applying a first filter (i.e. a longer tap filter, or an asymmetric filter, or an asymmetric tap filter, or an asymmetric long filter), in other words determining whether a block edge between the first coding block P and the second coding block Q is enabled for deblocking by applying a first filter (i.e. a longer tap filter, or an asymmetric filter, or an asymmetric tap filter); When it is determined that the block edge between the first coding block P and the second coding block Q should be filtered by applying a first filter, a step of applying a first filter (i.e., a longer tap filter, or an asymmetric filter, or an asymmetric tap filter, or an asymmetric long filter) to the values of the samples in the vicinity of the block edge between the first coding block P and the second coding block Q, wherein at most MA sample values of the first coding block adjacent to the block edge are corrected for each line, at most MB sample values of the second coding block adjacent to the block edge are corrected for each line, or at most MA sample values of the second coding block adjacent to the block edge are corrected for each line, at most MB sample values of the first coding block adjacent to the block edge are corrected for each line, MA≠MB, and in particular MA<MB, such as MA<MB = 7. For example, MA = 3 and MB = 7, or MA = 4 and MB = 7, or MA = 5 and MB = 7, etc.

[0042] For example, N or T is an even integer 2 greater than 8 n (for example, N or T adopts 16 or 32,...), M or L is an even integer 2 greater than 2 n (for example, M or L adopts 4, 8, 16 or 32 ···), M is different from N, or M is the same as N, or L is different from T, or L is the same as T. In another example, N or T is an even integer 2 greater than 16 n (for example, N or T adopts 32 or 64,...), M or L is an even integer 2 greater than 2 n (for example, M or L adopts 4, 8, 16 or 32 ···), M is different from N, or M is the same as N, or L is different from T, or L is the same as T, and M×N (where N>16) is applied to the horizontal edge, and N×M (where N>16) is applied to the vertical edge.

[0043] For example, the first filter (i.e., a longer tap filter, an asymmetric filter, an asymmetric tap filter) is a filter that uses DB samples for filter determination on one side of the block edge and DA samples for filter determination on the other side of the block edge, where MB samples are modified on one side of the block edge (CU edge or TU edge), MA samples are modified on the other side of the block edge (CU edge or TU edge), MA ≠ MB, and in particular MA < MB, for example MA = 3 and MB = 7, or MA = 4 and MB = 7, or MA = 5 and MB = 7. The first filter may be an asymmetric filter that modifies a different number of samples on either side of the block edge (CU edge or TU edge).

[0044] This allows for particularly accurate and efficient deblocking. In particular, this allows for treating the two sides of the block edge differently, so that the method can avoid filtering overlap between the block edge and the sub-block edge, and thus can ensure that deblocking can be performed in parallel. Accordingly, the processing time of the deblocking filtering is significantly reduced.

[0045] In a possible implementation of the method according to such a sixth aspect, the sub-block edge between sub-blocks is within the first coding block, and the sub-block edge between sub-blocks is within the second coding block (i.e., the first coding block P and the second coding block Q have sub-blocks, or the first coding block P and the second coding block Q have sub-block tools),

[0046] The method further includes determining whether the block edge between the first coding block and the second coding block should be filtered by applying a second filter,

[0047] and if it is determined that a block edge between the first coding block and the second coding block should be filtered by applying a second filter, applying the second filter to values ​​of samples near the block edge, where MA' sample values ​​of the first coding block adjacent to the block edge are modified and MB' sample values ​​of the second coding block adjacent to the block edge are modified, where MA'=MB', e.g. MA'=MB'=3, or MA'=MB'=5.

[0048] In such a possible implementation form of the method according to the sixth aspect or any above implementation of the sixth aspect, if a sub-block edge between sub-blocks does not exist within the second coding block (e.g. the first coding block P has a sub-block while the second coding block Q does not have a sub-block), then at most MA sample values ​​of the first coding block adjacent to the block edge per line are modified and at most MB sample values ​​of the second coding block adjacent to the block edge per line are modified, where MA=3 and MB=7, or MA=4 and MB=7, or MA=5 and MB=7; or If a sub-block edge between sub-blocks does not exist within the first coding block (e.g. the second coding block Q has a sub-block while the first coding block P does not have a sub-block), then at most MA sample values ​​of the second coding block adjacent to the block edge per line are modified, and at most MB sample values ​​of the first coding block adjacent to the block edge per line are modified, where MA=3 and MB=7, or MA=4 and MB=7, or MA=5 and MB=7.

[0049] In such a possible implementation form of the method according to the sixth aspect or any above implementation of the sixth aspect, whether or not a block edge between the first coding block and the second coding block should be filtered by applying the first filter may be determined by: - at most D sample values ​​of the first coding block adjacent to the block edge as the first filter decision value, and - at most DB sample values ​​of the second coding block adjacent to the block edge as the second filter decision value is determined based on:

[0050] In such a possible implementation form of the method according to the sixth aspect or any of the above implementations of the sixth aspect, if a sub-block edge between sub-blocks is inside the second coding block Q (e.g. the second coding block Q has sub-blocks), then the first formula:

number

[0051] In such a possible implementation form of the method according to the sixth aspect or any of the above implementations of the sixth aspect, if the sub-block edge between the sub-blocks is inside the first coding block P (e.g. the first coding block P has sub-blocks), then the second formula:

number

[0052] In such a possible implementation form of the method according to the sixth aspect or any above implementation of the sixth aspect, the threshold parameter β is determined based on a quantization parameter QP associated with a quantization step size of the multiple samples, or the threshold parameter β is determined based on the quantization parameter QP using a look-up table.

[0053] In such a possible implementation form of the method according to the sixth aspect or any of the above implementations of the sixth aspect, if a sub-block edge between sub-blocks does not lie inside the first coding block P and a sub-block edge between sub-blocks lies inside the second coding block Q (such that the first coding block P does not have a sub-block and the second coding block Q has a sub-block), the filtered sample value q of the first sample of the current row or column of samples is 0 ' is the following formula:

number

[0054] In such a possible implementation form of the method according to the sixth aspect or any of the above implementations of the sixth aspect, if a sub-block edge between sub-blocks does not lie within the first coding block P but lies within the second coding block Q (such that the first coding block P does not have a sub-block and the second coding block Q has a sub-block), the filtered sample value q of the second sample of the current row or column of samples is determined to the right or bottom of a vertical or horizontal edge between the first coding block P and the second coding block Q. 1 ' is the following expression

number

[0055] In such a possible implementation form of the method according to the sixth aspect or any of the above implementations of the sixth aspect, if a sub-block edge between sub-blocks does not lie within the first coding block P but lies within the second coding block Q (such that the first coding block P does not have a sub-block and the second coding block Q has a sub-block), the filtered sample value q of the third sample of the current row or column of samples is located to the right or below of a vertical or horizontal edge between the first coding block P and the second coding block Q. 2 ' is the following expression

number

[0056] In such a possible implementation form of the method according to the sixth aspect or any of the above implementations of the sixth aspect, if a sub-block edge between sub-blocks does not lie inside the first coding block P but lies inside the second coding block Q (such that the first coding block P does not have a sub-block and the second coding block Q has a sub-block), the filtered sample value p i ' is the following formula:

number

[0057] In such a possible implementation form of the method according to the sixth aspect or any implementation of the sixth aspect above, N and T are even integers greater than 16, 2 n Then, MA=3 and MB=7, or MA=4 and MB=7, or MA=5 and MB=7.

[0058] According to a seventh aspect, the present invention relates to a deblocking method for deblocking a block edge between a first coding block P and a second coding block Q of an image for image encoding and / or image decoding, the first coding block P having a block size of M*N or N*M, the second coding block Q having a block size of L*T or T*L, for example, N or T being an even integer greater than 8, such as 2 n and in particular N or T being an even integer greater than 16, such as 2 n and there being sub-block edges between sub-blocks of the first coding block or the second coding block (i.e., the first coding block or the second coding block having sub-blocks), the method comprising when there is a sub-block edge between sub-blocks of the first coding block (i.e., the first coding block having sub-blocks or the first coding block using sub-block tools, where the first coding block is the current block), - the step of modifying at most MA sample values of the first coding block adjacent to the block edge as the first filter output sample values, and - the step of modifying at most MB sample values of the second coding block adjacent to the block edge as the second filter output sample values wherein MA≠MB, in particular MA<MB, such as MA<MB = 7, for example MA = 3 and MB = 7, or MA = 4 and MB = 7, or MA = 5 and MB = 7, etc., or when there is a sub-block edge between sub-blocks of the second coding block (i.e., the second coding block having sub-blocks or the second coding block using sub-block tools, where the second coding block is the current block), - the step of modifying at most MA sample values of the second coding block adjacent to the block edge as the first filter output sample values, and - As the second filter output sample value, a step (1404) of modifying at most MB sample values of the first coding block (902, 1302) adjacent to the block edge including, where MA ≠ MB, particularly where MA < MB such as MA < MB = 7, for example MA = 3 and MB = 7, or MA = 4 and MB = 7, or MA = 5 and MB = 7, etc.

[0059] This allows particularly accurate and efficient deblocking. In particular, this allows the two sides of the block edge to be treated differently, so that this method can avoid the filtering overlap between the block edge and the sub-block edge, and thus can guarantee that deblocking can be executed in parallel. Accordingly, the processing time of the deblocking filtering is significantly shortened.

[0060] According to an eighth aspect, the present invention relates to a deblocking method for use in image coding and / or image decoding, the method comprising: a step of determining an edge between blocks, the edge between blocks including a block edge between a first coding block P and a second coding block Q, and a sub-block edge between sub-blocks of the first coding block P or the second coding block Q, the first coding block P having a block size of M×N or N×M, and the second coding block Q having a block size of L×T or T×L;

[0061] a step of determining whether the block edge between the first coding block P and the second coding block Q should be filtered by applying a first filter (i.e., a longer tap filter, an asymmetric filter, or an asymmetric tap filter, or an asymmetric longer filter); When it is determined that the block edge between the first coding block P and the second coding block Q should not be filtered by applying the first filter, a step of applying a third filter to the values of the samples in the vicinity of the block edge between the first coding block P and the second coding block Q, wherein at most MA sample values of the first coding block adjacent to the block edge are corrected for each line, at most MB sample values of the second coding block adjacent to the block edge are corrected for each line, MA = MB and MA = MB < 7, for example, MA = MB = 4, is included.

[0062] In one example, N or T is an even integer 2 greater than 8 n and in particular, N or T is an even integer 2 greater than 16 n and M or L is an even integer 2 greater than 2 n and M is different from N, or M is the same as N, or L is different from T, or L is the same as T.

[0063] In one example, the first filter (i.e., a longer tap filter, an asymmetric filter, an asymmetric tap filter, or an asymmetric long filter) is a filter that uses DB samples for filter determination on one side of the block edge and DA samples for filter determination on the other side of the block edge, where MB samples are corrected on one side of the block edge (CU edge or TU edge), MA samples are corrected on the other side of the block edge (CU edge or TU edge), MA ≠ MB, and in particular, MA < MB and MA < MB = 7, for example, MA = 3 and MB = 7, or MA = 4 and MB = 7, or MA = 5 and MB = 7.

[0064] In one example, the third filter may be an HEVC strong filter capable of modifying up to four samples on either side of a block edge (CU edge or TU edge), in other words, the third filter may be an HEVC strong filter in which up to four samples are modified on one side of the block edge (CU edge or TU edge) while up to four samples are modified on the other side of the block edge (CU edge or TU edge).

[0065] This allows for particularly accurate and efficient deblocking.

[0066] According to a ninth aspect, the present invention relates to a deblocking method for use in image encoding and / or image decoding, the method comprising: determining inter-block edges, the inter-block edges including block edges between a first coding block P and a second coding block Q and sub-block edges between sub-blocks of the first coding block P or the second coding block Q, the first coding block P having a block size that is M×N or N×M, and the second coding block Q having a block size that is L×T or T×L; determining that sub-block edges between sub-blocks of the first coding block P or the second coding block Q should not be filtered (e.g., determining that sub-block edges between sub-blocks of the first coding block P or the second coding block Q are disabled with respect to deblocking); applying a fourth filter (a conventional longer tap filter) to the values ​​of samples near a block edge between the first coding block P and the second coding block Q, where at most MA sample values ​​of the first coding block adjacent to the block edge are modified and where at most MB sample values ​​of the second coding block adjacent to the block edge are modified, where MA=MB, such as MA=MB=7.

[0067] In one example, N or T is an even integer greater than 8. n In particular, N or T is an even integer greater than 16. n M or L is an even integer greater than 2. n and M is different from N, or M is the same as N, or L is different from T, or L is the same as T.

[0068] In one example, the fourth filter may be a conventional longer tap filter capable of modifying at most seven samples on either side of a block edge (eg, a CU edge or a CU boundary).

[0069] This allows for particularly accurate and efficient deblocking.

[0070] According to a tenth aspect, the present invention relates to a coding method for coding an image, including a deblocking method as described above or below according to any aspect or any implementation of any such aspect, which allows a particularly accurate and efficient coding of the image.

[0071] According to an eleventh aspect, the present invention relates to a decoding method for decoding an image, including a deblocking method as described above or below according to any aspect or any implementation of any such aspect, which allows a particularly accurate and efficient encoding of the image.

[0072] According to a twelfth aspect of the present invention, there is provided a deblocking filter device, the deblocking filter device being intended for use in an image encoder and / or an image decoder, the deblocking filter device comprising: an edge positioning unit configured to determine edges between blocks, the edges between the blocks including block edges (e.g. CU edges) between a first coding block P and a second coding block Q, and sub-block edges (e.g. sub-pu edges) between sub-blocks within the first coding block P and / or the second coding block Q, the first coding block P having a block size of M×N or N×M, the second coding block Q having a block size of L×T or T×L, e.g. N or T being an even integer 2 greater than a threshold (e.g. 8 or 16, etc.); n an edge positioning unit, a deblocking decision unit configured to determine that a first set of block edges between the first coding block P and the second coding block Q and sub-block edges between the sub-blocks within the first coding block P and / or the second coding block Q should be filtered and that a second set of sub-block edges between the sub-blocks within the first coding block P and / or the second coding block Q should not be filtered; a deblocking filtering unit configured to perform deblocking filtering on sample values ​​near a block edge between the first coding block P and the second coding block Q, and to perform deblocking filtering on sample values ​​near each of a first set of sub-block edges between sub-blocks within the first coding block P and / or the second coding block Q.

[0073] For example, the deblocking decision unit may be configured to determine that a "first" sub-block edge between sub-blocks of the first coding block P or the second coding block Q (interior) should not be filtered, in other words to determine that a "first" sub-block edge between sub-blocks of the first coding block P or the second coding block Q (interior) is disabled with respect to deblocking. For example, the deblocking decision unit may be configured to determine that the “last” sub-block edge between sub-blocks of the first coding block P or the second coding block Q (interior) should not be filtered, in other words to determine that the “last” sub-block edge between sub-blocks of the first coding block P or the second coding block Q (interior) is disabled with respect to deblocking.

[0074] For example, the deblocking determination unit may be configured to determine all sub-pu edges that overlap with the 16×16 grid for the first coding block P and / or the second coding block Q, and apply deblocking only to those interior edges. Other interior sub-pu edges are not deblocked. Also, a longer tap filter may be used to deblock the interior sub-pu edges that overlap with the 16×16 grid, while a longer tap filter may be applied to the CU edges.

[0075] In such a possible implementation of the apparatus according to aspect 12, the first set of sub-block edges between sub-blocks within the first coding block and / or the second coding block comprises (consists of) a plurality of sub-block edges excluding a first sub-block edge and a last sub-block edge between sub-blocks within the first coding block P and / or the second coding block Q, the first sub-block edge being closest to one of the first coding block P and the second coding block Q and the last sub-block edge being closest to the other of the first coding block P and the second coding block Q; A second set of sub-block edges between sub-blocks within the first coding block P and / or the second coding block Q consists of a first sub-block edge and a last sub-block edge between sub-blocks within the first coding block P and / or the second coding block Q, where the first sub-block edge is closest to one of the first coding block P and the second coding block Q and the last sub-block edge is closest to the other of the first coding block P and the second coding block Q.

[0076] In such a possible implementation form of the apparatus according to aspect 12, the deblocking filtering unit is configured to apply a fifth filter to values ​​of samples in the vicinity of each of the first set of sub-block edges within the first coding block P and / or the second coding block Q, such that at most NA sample values ​​on one side of each of the first set of sub-block edges are modified within the first coding block P and / or the second coding block Q and at most NB sample values ​​on the other side of each of the first set of sub-block edges are modified, where NA, NB=4.

[0077] In such a possible implementation form of the device according to the twelfth aspect, when no sub-block edge between sub-blocks exists inside the first coding block P and multiple sub-block edges between sub-blocks exist inside the second coding block Q, the deblocking filtering unit is configured to, when it is determined that a fifth filter, which is HEVC deblocking filtering, should be applied, by:

number

[0078] In such a possible implementation of the device according to aspect 12, the first set of sub-block edges between sub-blocks within the first coding block and / or the second coding block comprises (consists of) one or more sub-block edges overlapping a 16×16 grid between sub-blocks within the first coding block P and / or the second coding block Q, The second set of sub-block edges between sub-blocks within the first or second coding block includes (consists of) one or more sub-block edges excluding sub-block edges overlapping the 16×16 grid between sub-blocks within the first coding block P and / or the second coding block Q.

[0079] In such a possible implementation of the device according to the twelfth aspect, the deblocking filtering unit is configured to apply a sixth filter to values ​​of samples in the vicinity of each of the first set of sub-block edges inside the first coding block P and / or the second coding block Q, such that at most NA' sample values ​​on one side of each of the first set of sub-block edges are modified inside the first coding block P or the second coding block Q and at most NB' sample values ​​on the other side of each of the first set of sub-block edges are modified, such that NA'=NB'=7. It can be appreciated that NA' and NB' may be determined based on the block size, in other words NA' and NB' depend on the block size of the respective block. In the implementation, for large blocks, i.e. block size ≧32, the maximum number of modified samples may be 7 (corresponding to a long filter).

[0080] In such a possible implementation form of the device according to the twelfth aspect, in case there is no sub-block edge between sub-blocks within the first coding block P and there are multiple sub-block edges between sub-blocks within the second coding block Q, the deblocking filtering unit is adapted to:

number

[0081] In such a possible implementation of the device according to the twelfth aspect, when there are multiple sub-block edges between sub-blocks within the first coding block P and multiple sub-block edges between sub-blocks within the second coding block Q, the deblocking filtering unit is adapted to:

number

[0082] In such a possible implementation form of the device according to the twelfth aspect, the deblocking decision unit is further configured to determine whether a block edge between the first coding block P and the second coding block Q should be filtered by applying the first filter, and The deblocking filtering unit is further configured to apply a first filter to values ​​of samples near a block edge between the first coding block P and the second coding block Q, if it is determined that the block edge between the first coding block P and the second coding block Q should be filtered by applying the first filter, wherein at most MA sample values ​​of the first coding block adjacent to the block edge per line are modified, at most MB sample values ​​of the second coding block adjacent to the block edge per line are modified, or at most MA sample values ​​of the second coding block adjacent to the block edge per line are modified and at most MB sample values ​​of the first coding block adjacent to the block edge per line are modified, where MA=3 and MB=7.

[0083] In such a possible implementation of the device according to the twelfth aspect, if a plurality of sub-block edges between sub-blocks are within the first coding block and a plurality of sub-block edges between sub-blocks are within the second coding block,

[0084] The deblocking determination unit is further configured to determine that a block edge between the first coding block and the second coding block should be filtered by applying a second filter; and The deblocking filtering unit is further configured to, if it is determined that a block edge between the first coding block and the second coding block should be filtered by applying a second filter, apply a second filter to values ​​of samples near the block edge, where MA' sample values ​​of the first coding block adjacent to the block edge are modified and MB' sample values ​​of the second coding block adjacent to the block edge are modified, where MA'=3 and MB'=3.

[0085] In such a possible implementation of the device according to the twelfth aspect, if a sub-block edge between sub-blocks does not lie inside the second coding block, then at most MA sample values ​​of the first coding block adjacent to the block edge per line are modified and at most MB sample values ​​of the second coding block adjacent to the block edge per line are modified, or If a sub-block edge between sub-blocks does not lie inside the first coding block, at most MA sample values ​​of the second coding block adjacent to the block edge per line are modified, and at most MB sample values ​​of the first coding block adjacent to the block edge per line are modified, where MA=3 and MB=7.

[0086] In such a possible implementation form of the apparatus according to the twelfth aspect, the deblocking decision unit determines whether a block edge between the first coding block and the second coding block should be filtered by applying a first filter by: - at most D A sample values ​​of the first coding block adjacent to the block edge as the first filter decision value, and - at most DB sample values ​​of the second coding block adjacent to the block edge as the second filter decision value The method is further configured to determine based on

[0087] In such a possible implementation form of the device according to the twelfth aspect, the deblocking decision unit determines, in case of a plurality of sub-block edges between sub-blocks existing inside the second coding block Q, a first formula:

number

[0088] In such a possible implementation form of the device according to the twelfth aspect, the deblocking decision unit determines, in case of multiple sub-block edges between sub-blocks within the first coding block P, a second equation:

number

[0089] In such a possible implementation form of the device according to the twelfth aspect, the threshold parameter β is determined based on a quantization parameter QP related to a quantization step size of the plurality of samples, or The threshold parameter β is determined based on the quantization parameter QP using a look-up table.

[0090] In such a possible implementation form of the device according to the twelfth aspect, the deblocking filtering unit is configured to, if there is no sub-block edge between sub-blocks within the first coding block P and there is a sub-block edge between sub-blocks within the second coding block Q, calculate a deblocking filtering coefficient (x,y) based on the following formula:

number

[0091] In such a possible implementation form of the device according to the twelfth aspect, the deblocking filtering unit is configured to, if there is no sub-block edge between sub-blocks within the first coding block P and there is a sub-block edge between sub-blocks within the second coding block Q, calculate a deblocking filtering coefficient (x,y) based on the following formula:

number

[0092] In such a possible implementation form of the device according to the twelfth aspect, the deblocking filtering unit is configured to, if there is no sub-block edge between sub-blocks within the first coding block P and there is a sub-block edge between sub-blocks within the second coding block Q, calculate a deblocking filtering coefficient (x,y) based on the following formula:

number

[0093] In such a possible implementation form of the device according to the twelfth aspect, the deblocking filtering unit is configured to, if there is no sub-block edge between sub-blocks within the first coding block P and there is a sub-block edge between sub-blocks within the second coding block Q, calculate a deblocking filtering coefficient (x,y) based on the following formula:

number

[0094] In such a possible implementation form of the apparatus according to aspect 12, the deblocking decision unit is further configured to decide whether a block edge between the first coding block P and the second coding block Q should be filtered by applying the first filter, and the deblocking filtering unit is further configured to apply a third filter to values ​​of samples near the block edge between the first coding block P and the second coding block Q if it is determined that the block edge between the first coding block P and the second coding block Q should not be filtered by applying the first filter, such that at most MA sample values ​​of the first coding block adjacent to the block edge per line are modified and at most MB sample values ​​of the second coding block adjacent to the block edge per line are modified, where MA=MB=4.

[0095] According to a thirteenth aspect, the present invention relates to a deblocking method for use in image encoding and / or image decoding, the method comprising: determining inter-block edges, the inter-block edges including block edges between a first coding block P and a second coding block Q and sub-block edges between sub-blocks within the first coding block P and / or the second coding block Q, the first coding block P having a block size of M×N or N×M, the second coding block Q having a block size of L×T or T×L, e.g., N or T being an even integer 2 greater than a threshold (e.g., 8 or 16, etc.); n and determining that a first set of block edges between the first coding block P and the second coding block Q and sub-block edges between sub-blocks within the first coding block P and / or the second coding block Q should be filtered and that a second set of sub-block edges between sub-blocks within the first coding block P and / or the second coding block Q should not be filtered; performing deblocking filtering on sample values ​​near block edges between the first coding block P and the second coding block Q, and performing deblocking filtering on sample values ​​near each of a first set of sub-block edges between sub-blocks within the first coding block P and / or the second coding block Q.

[0096] In such a possible implementation of the method according to aspect 13, the first set of sub-block edges between sub-blocks within the first coding block and / or the second coding block comprises (consists of) a plurality of sub-block edges excluding a first sub-block edge and a last sub-block edge between sub-blocks within the first coding block P and / or the second coding block Q, the first sub-block edge being closest to one of the first coding block P and the second coding block Q and the last sub-block edge being closest to the other of the first coding block P and the second coding block Q; A second set of sub-block edges between sub-blocks within the first coding block P and / or the second coding block Q consists of a first sub-block edge and a last sub-block edge between sub-blocks within the first coding block P and / or the second coding block Q, where the first sub-block edge is closest to one of the first coding block P and the second coding block Q and the last sub-block edge is closest to the other of the first coding block P and the second coding block Q.

[0097] In such a possible implementation of the method according to aspect 13, the step of performing deblocking filtering on values ​​of samples of neighbours of each of a first set of sub-block edges between sub-blocks of the first coding block P and / or the second coding block Q may further comprise the steps of: The method includes applying a fifth filter to values ​​of samples in the vicinity of each of the first set of sub-block edges within the first coding block P and / or the second coding block Q, wherein at most NA sample values ​​on one side of each of the first set of sub-block edges are modified within the first coding block P and / or the second coding block Q and at most NB sample values ​​on the other side of each of the first set of sub-block edges are modified, where NA=NB=4.

[0098] In such a possible implementation of the method according to aspect 13, if no sub-block edges between sub-blocks exist within the first coding block P and if multiple sub-block edges between sub-blocks exist within the second coding block Q, the step of performing deblocking filtering on values ​​of samples of neighbours of each of a first set of sub-block edges between sub-blocks within the first coding block P and / or the second coding block Q comprises: When it is decided that the fifth filter, which is the HEVC deblocking filtering, should be applied, the following formula:

number

[0099] In such a possible implementation of the method according to aspect 13, the first set of sub-block edges between sub-blocks within the first coding block and / or the second coding block comprises (consists of) one or more sub-block edges overlapping a 16×16 grid between sub-blocks within the first coding block P and / or the second coding block Q, The second set of sub-block edges between sub-blocks within the first or second coding block includes (consists of) one or more sub-block edges excluding sub-block edges overlapping the 16×16 grid between sub-blocks within the first coding block P and / or the second coding block Q.

[0100] In such a possible implementation of the method according to aspect 13, the step of performing deblocking filtering on values ​​of neighbouring samples of each of a first set of sub-block edges between sub-blocks of the first coding block P and / or the second coding block Q comprises: The method includes applying a sixth filter to values ​​of samples in the vicinity of each of a first set of sub-block edges within the first coding block P and / or the second coding block Q, wherein at most NA' sample values ​​on one side of each of the first set of sub-block edges are modified within the first coding block P or the second coding block Q and at most NB' sample values ​​on the other side of each of the first set of sub-block edges are modified, where NA'=NB'=7.

[0101] In such a possible implementation form of the method according to aspect 13, in case there is no sub-block edge between sub-blocks within the first coding block P and there are multiple sub-block edges between sub-blocks within the second coding block Q, the step of performing deblocking filtering on values ​​of neighbouring samples of each of a first set of sub-block edges between sub-blocks within the first coding block P and / or the second coding block Q is based on the following formula:

number

[0102] In such a possible implementation of the method according to aspect 13, in case there are a plurality of sub-block edges between sub-blocks within the first coding block P and a plurality of sub-block edges between sub-blocks within the second coding block Q, the step of performing deblocking filtering on values ​​of neighbouring samples of each of a first set of sub-block edges between sub-blocks within the first coding block P and / or the second coding block Q is / are based on the following formula:

number

[0103] In such a possible implementation of the method according to the thirteenth aspect, the method further comprises: determining whether a block edge between a first coding block P and a second coding block Q should be filtered by applying a first filter; and applying the first filter to values ​​of samples near the block edge between the first coding block P and the second coding block Q if it is determined that the block edge between the first coding block P and the second coding block Q should be filtered by applying the first filter, wherein at most MA sample values ​​of the first coding block adjacent to the block edge per line are modified, at most MB sample values ​​of the second coding block adjacent to the block edge per line are modified, or at most MA sample values ​​of the second coding block adjacent to the block edge per line are modified and at most MB sample values ​​of the first coding block adjacent to the block edge per line are modified, where MA=3 and MB=7.

[0104] In such a possible implementation of the method according to aspect 13, when a plurality of sub-block edges between sub-blocks are within the first coding block and a plurality of sub-block edges between sub-blocks are within the second coding block, the method further comprises: determining that a block edge between the first coding block and the second coding block should be filtered by applying a second filter; and if it is determined that a block edge between the first coding block and the second coding block should be filtered by applying a second filter, applying the second filter to values ​​of samples near the block edge, where MA' sample values ​​of the first coding block adjacent to the block edge are modified and MB' sample values ​​of the second coding block adjacent to the block edge are modified, where MA'=3 and MB'=3.

[0105] In such a possible implementation of the method according to aspect 13, if a sub-block edge between sub-blocks does not lie inside the second coding block, then at most MA sample values ​​of the first coding block adjacent to the block edge per line are modified and at most MB sample values ​​of the second coding block adjacent to the block edge per line are modified, or If a sub-block edge between sub-blocks does not lie inside the first coding block, at most MA sample values ​​of the second coding block adjacent to the block edge per line are modified, and at most MB sample values ​​of the first coding block adjacent to the block edge per line are modified, where MA=3 and MB=7.

[0106] In such a possible implementation of the method according to the thirteenth aspect, the method further comprises: whether the block edge between the first coding block and the second coding block should be filtered by applying a first filter; - at most DA sample values ​​of the first coding block adjacent to the block edge, DA=4, as the first filter decision value; and - As the second filter decision value, at most DB sample values ​​of the second coding block adjacent to the block edge, DB=4 The method includes determining based on the above.

[0107] In such a possible implementation of the method according to the thirteenth aspect, the method further comprises, in case of a plurality of sub-block edges between the sub-blocks being inside the second coding block Q, determining whether the first equation:

number

[0108] In such a possible implementation of the method according to the thirteenth aspect, the method further comprises, in case of a plurality of sub-block edges between the sub-blocks being present inside the first coding block P, determining whether the sub-block edges are greater than the first coding block P by using the second formula:

number

[0109] In such a possible implementation form of the method according to the thirteenth aspect, the threshold parameter β is determined based on a quantization parameter QP related to a quantization step size of the plurality of samples, or The threshold parameter β is determined based on the quantization parameter QP using a look-up table.

[0110] In such a possible implementation form of the method according to the thirteenth aspect, if there is no sub-block edge between sub-blocks within the first coding block P and there is a sub-block edge between sub-blocks within the second coding block Q, the step of performing deblocking filtering on values ​​of samples near a block edge between the first coding block P and the second coding block Q is performed by the following formula:

number

[0111] In such a possible implementation form of the method according to the thirteenth aspect, if there is no sub-block edge between sub-blocks within the first coding block P and there is a sub-block edge between sub-blocks within the second coding block Q, the step of performing deblocking filtering on values ​​of samples near a block edge between the first coding block P and the second coding block Q is performed by the following formula:

number

[0112] In such a possible implementation form of the method according to the thirteenth aspect, if there is no sub-block edge between sub-blocks within the first coding block P and there is a sub-block edge between sub-blocks within the second coding block Q, the step of performing deblocking filtering on values ​​of samples near a block edge between the first coding block P and the second coding block Q is performed by the following formula:

number

[0113] In such a possible implementation form of the method according to the thirteenth aspect, if there is no sub-block edge between sub-blocks within the first coding block P and there is a sub-block edge between sub-blocks within the second coding block Q, the step of performing deblocking filtering on values ​​of samples near a block edge between the first coding block P and the second coding block Q is performed by the following formula:

number

[0114] In such a possible implementation form of the method according to aspect 13, the method further comprises the steps of determining whether a block edge between the first coding block P and the second coding block Q should be filtered by applying a first filter; and if it is determined that the block edge between the first coding block P and the second coding block Q should not be filtered by applying the first filter, applying a third filter to values ​​of samples near the block edge between the first coding block P and the second coding block Q, where at most MA sample values ​​of the first coding block adjacent to the block edge per line are modified and at most MB sample values ​​of the second coding block adjacent to the block edge per line are modified, where MA=MB=4.

[0115] The method according to the sixth or seventh aspect of the invention can be performed by an apparatus according to the first aspect of the invention. Further features and implementation forms of the method according to the sixth or seventh aspect of the invention result directly from the functionality of the apparatus according to the first aspect of the invention and its various implementation forms.

[0116] The method according to the eighth aspect of the invention can be performed by an apparatus according to the second aspect of the invention. Further features and implementation forms of the method according to the eighth aspect of the invention result directly from the functionality of the apparatus according to the second aspect of the invention and its various implementation forms. The method according to the thirteenth aspect of the invention can be performed by an apparatus according to the twelfth aspect of the invention. Further features and implementation forms of the method according to the eighth aspect of the invention result directly from the functionality of the apparatus according to the second aspect of the invention and its various implementation forms.

[0117] According to another aspect, the invention relates to an apparatus for decoding a video stream, comprising a processor and a memory, the memory storing instructions for causing the processor to perform a deblocking method according to any aspect as previously described or any previously described implementation of any previously described aspect.

[0118] According to another aspect, the invention relates to an apparatus for encoding a video stream, comprising a processor and a memory, the memory storing instructions for causing the processor to perform a deblocking method according to any aspect as previously described or any previously described implementation of any previously described aspect.

[0119] According to another aspect, a computer-readable storage medium is proposed having stored thereon instructions that, when executed, cause one or more processors configured to code video data to perform a deblocking method according to any aspect as previously described or any previously described implementation of any of the previously described aspects.

[0120] According to another aspect, there is provided a computer program product having a program code for performing a deblocking method according to any aspect as previously described or any previously described implementation of any previously described aspect, when the computer program runs on a computer.

[0121] The details of one or more embodiments are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will become apparent from the description, drawings, and claims. [Brief description of the drawings]

[0122] The following embodiments of the invention will now be described in more detail with reference to the accompanying figures and drawings.

[0123] [Figure 1] FIG. 2 is a block diagram illustrating an example of a video encoder configured to implement embodiments of the present invention.

[0124] [Diagram 2] FIG. 2 is a block diagram illustrating an exemplary structure of a video decoder configured to implement embodiments of the present invention.

[0125] [Diagram 3] FIG. 1 is a block diagram illustrating an example of a video coding system configured to implement embodiments of the present invention.

[0126] [Figure 4] Two exemplary coding blocks are shown in which a coding block Q uses sub-pu tools (sub-block tools in general).

[0127] [Diagram 5] 11 shows two exemplary coding blocks and the individual sample values ​​that are used and modified during filtering according to the exemplary method shown in FIG.

[0128] [Figure 6] 1 illustrates a first embodiment of a deblocking filter device according to an embodiment of the present invention.

[0129] [Figure 7] 1 shows a flow chart illustrating a method for determining whether a longer tap filter shall be used.

[0130] [Figure 8] 1 shows a flowchart illustrating a method for determining whether an HEVC strong filter condition is satisfied.

[0131] [Figure 9] 1 illustrates two exemplary coding blocks and sample values ​​that are used and modified during filtering according to another embodiment of the present invention.

[0132] [Figure 10] 1 shows a flow diagram illustrating an exemplary process for increasing the efficiency of deblocking filtering.

[0133] [Figure 11A]1 shows a flow diagram illustrating an exemplary process for increasing the efficiency of deblocking filtering.

[0134] [Figure 11B] 1 shows a flow diagram illustrating an exemplary process for increasing the efficiency of deblocking filtering.

[0135] [Figure 12] 1 shows a flow diagram illustrating an exemplary process for increasing the efficiency of deblocking filtering.

[0136] [Figure 13] 13 shows a simplified block diagram of an apparatus 1300 that may be used as one or both of the source device 310 and destination device 320 from FIG. 3 in accordance with an exemplary embodiment.

[0137] [Figure 14] A schematic diagram of a device for video coding is shown.

[0138] [Figure 15] We show how deblocking can be applied to all interior sub-pu edges on a 16x16 grid.

[0139] [Figure 16] We show how HEVC deblocking can be applied to all interior sub-pu edges except the first and last sub-pu edges.

[0140] [Figure 17] Showing two example sub-blocks inside a coding block where the coding block uses the sub-pu tool;

[0141] [Figure 18] 1 shows an example of sub-blocks within a coding block, which uses sub-PU tools, each of which uses a separate motion vector.

[0142] [Figure 19] An example of a picture sample on an 8*8 grid, horizontal and vertical block boundaries is shown. In the following, the same reference signs refer to the same or at least functionally equivalent features. In part, different reference signs referring to the same entities are used in different figures. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0143] In the following description, reference is made to the accompanying drawings which form a part of this disclosure and which show by way of illustration certain aspects of embodiments of the invention or in which embodiments of the invention may be used. It is understood that embodiments of the invention may be used in other ways and may include structural or logical changes not shown in the drawings. Therefore, the following detailed description is not to be taken in a limiting sense, and the scope of the present invention is defined by the appended claims.

[0144] For example, it is understood that disclosure related to a described method may also apply to a corresponding device or system configured to perform the method, and vice versa. For example, when one or more particular method steps are described, the corresponding device may include one or more units, e.g., functional units (e.g., one unit performing one or more steps, or multiple units each performing one or more of the multiple steps), to perform the described one or more method steps, even if such one or more units are not explicitly described or illustrated in the figures. On the other hand, when a particular apparatus is described, e.g., based on one or more units, e.g., functional units, the corresponding method may include one step (e.g., one step performing the function of one or more units, or multiple steps each performing one or more functions of multiple units) to perform the function of one or more units, even if such one or more steps are not explicitly described or illustrated in the figures. Furthermore, it is understood that the features of various exemplary embodiments and / or aspects described herein may be combined with each other, unless otherwise specified.

[0145] Video coding typically refers to the processing of a video or a series of pictures that form a video sequence. The terms frame or image, rather than the term picture, may be used synonymously in the field of video coding. Video coding includes two parts: video encoding and video decoding. Video encoding is performed at the source side and typically involves processing an original video picture (e.g., by compression) to reduce the amount of data required to represent the video picture (for more efficient storage and / or transmission). Video decoding is performed at the destination side and typically involves the reverse processing, as compared to the encoder, to reconstruct the video picture. Embodiments relating to the "coding" of a video picture (or pictures in general, as described below) shall be understood to relate to both the "encoding" and "decoding" of a video picture. The combination of the encoding and decoding parts is also called a CODEC (coding and decoding).

[0146] In the case of lossless video coding, the original video picture can be reconstructed, i.e. the reconstructed video image has the same quality as the original video picture (assuming no transmission losses or other data losses during storage or transmission). In the case of non-lossless video coding, further compression, e.g. by quantization, is performed to reduce the amount of data representing the video picture that cannot be fully reconstructed at the decoder, i.e. the quality of the reconstructed video picture is lower or degraded than the quality of the original video picture.

[0147] Some video coding standards after H.261 belong to the group of "non-lossless hybrid video codecs" (i.e. they combine spatial and temporal prediction in the sample domain with 2D transform coding to apply quantization in the transform domain). Each picture of a video sequence is typically partitioned into a set of non-overlapping blocks and coding is typically performed at the block level. In other words, at the encoder, a video is typically processed, i.e. encoded, at the block (video block) level, e.g. by generating a predictive block using spatial (intra-picture) and temporal (inter-picture) prediction, subtracting the predictive block from a current block (the block currently being / to be processed) to obtain a residual block, transforming the residual block, and quantizing the residual block in the transform domain to reduce (compress) the amount of data to be transmitted, while at the decoder, the reverse processing compared to the encoder is applied to the coded or compressed block in order to reconstruct the current block for representation. Additionally, the encoder replicates the decoder processing loop so that both generate the same predictions (eg, intra and inter predictions) and / or reconstructions for processing, ie, coding, subsequent blocks.

[0148] Since video picture processing (also referred to as moving image processing) and still image processing (this term processing includes coding) share many concepts and techniques or tools, hereinafter the term "picture" will be used to refer to video pictures (as described above) and / or still images of a video sequence, avoiding unnecessary repetition and distinction between video pictures and still images where it is not necessary. When the description refers only to still pictures (or still images), the term "still image" shall be used.

[0149] In the following embodiment of the encoder 100, the decoder 200 and the coding system 300 are described with reference to Figs. 1 to 3 before describing the embodiment of the invention in more detail with reference to Figs. 4 to 14.

[0150] FIG. 3 is a conceptual or schematic block diagram illustrating an embodiment of a coding system 300, e.g., a picture coding system 300, including a source device 310 configured to provide encoded data 330, e.g., an encoded picture 330, to a destination device 320, e.g., for decoding the encoded data 330.

[0151] The source device 310 includes an encoder 100 or encoding unit 100, and may further optionally include a picture source 312, a pre-processing unit 314, such as a picture pre-processing unit 314, and a communication interface or unit 318.

[0152] The picture source 312 may include or be any kind of picture capture device, e.g. for capturing real-world pictures, and / or any kind of picture generation device, e.g. for generating computer-animated pictures, such as a computer graphics processor, or any kind of device that obtains and / or provides real-world pictures, computer-animated pictures (e.g. screen content, virtual reality (VR) pictures), and / or any combination thereof (e.g. augmented reality (AR) pictures). In the following, all these kinds of pictures and any other kinds of pictures will be referred to as "pictures" or "images" unless otherwise specified, although the above explanation of the term "picture" covering "video pictures" and "still pictures" remains valid unless explicitly specified otherwise.

[0153] A (digital) picture is, or can be thought of as, a two-dimensional array or matrix of samples with intensity values. The samples in the array may be referred to as pixels (a short form of picture element) or pels. The number of samples in the horizontal and vertical directions (or axes) of the array or picture defines the size and / or resolution of the picture. For color representation, typically three color components are used, i.e. a picture may be represented with or contain three sample arrays. In an RGB format or color space, a picture contains corresponding red, green, and blue sample arrays. However, in video coding, each pixel is typically represented in a luma / chroma format or color space, e.g. YCbCr, which contains a luma component denoted Y (often L is used instead) and two chroma components denoted Cb and Cr. The luma (or luma for short) component Y represents the brightness or gray level intensity (e.g., a grayscale picture), while the two chroma (or chroma for short) components Cb and Cr represent the color or color information components. Thus, a picture in YCbCr format contains a luma sample array of luma sample values ​​(Y) and two chroma sample arrays of chroma values ​​(Cb and Cr). A picture in RGB format can be converted or transformed to YCbCr format and vice versa, a process also known as color transformation or conversion. If the picture is monochrome, it can contain only a luma sample array.

[0154] The picture source 312 may be, for example, a camera for capturing a picture, a memory, for example a picture memory, that contains or stores previously captured or generated pictures, and / or any kind of interface (internal or external) for acquiring or receiving pictures. The camera may be, for example, a local or integrated camera integrated in the source device, and the memory may be a local or integrated memory, for example integrated in the source device. The interface may be, for example, an external interface for receiving pictures from an external video source, for example an external picture capture device, such as a camera, an external memory, or an external picture generation device, for example an external computer graphics processor, computer or server. The interface may be any kind of interface, for example a wired or wireless interface, an optical interface, following any proprietary or standardized interface protocol. The interface for obtaining the picture data 312 may be the same interface as the communication interface 318 or part of it.

[0155] To distinguish between pre-processing unit 314 and the processing performed by pre-processing unit 314 , the picture or picture data 313 may also be referred to as a raw picture or raw picture data 313 .

[0156] The pre-processing unit 314 is configured to receive the (raw) picture data 313 and perform pre-processing on the picture data 313 to obtain a pre-processed picture 315 or pre-processed picture data 315. The pre-processing performed by the pre-processing unit 314 may include, for example, cropping, color format conversion (e.g., from RGB to YCbCr), color correction, or noise removal.

[0157] The encoder 100 is configured to receive pre-processed picture data 315 and provide encoded picture data 171 (described in further detail with reference to, for example, FIG. 1).

[0158] The communication interface 318 of the source device 310 can be configured to receive the encoded picture data 171 and transmit it to another device, such as the destination device 320 or any other device, for storage or direct reconstruction, or to store the encoded data 330 after processing the encoded picture data 171, respectively, and / or transmit the encoded data 330 to another device, such as the destination device 320 or any other device, for decoding or storage.

[0159] The destination device 320 includes a decoder 200 or decoding unit 200 , and may further, i.e. optionally, include a communication interface or unit 322 , a post processor 326 , and a display device 328 .

[0160] The communication interface 322 of the destination device 320 is configured to receive the encoded picture data 171 or the encoded data 330, e.g. directly from the source device 310 or from any other source, e.g. a memory, e.g. a memory of encoded picture data.

[0161] The communication interface 318 and the communication interface 322 may be configured to transmit and receive the encoded picture data 171 or the encoded data 330, respectively, via a direct communication link between the source device 310 and the destination device 320, such as a direct wired or wireless connection, or via any type of network, such as a wired or wireless network or any combination thereof, or any type of private and public network or any combination thereof.

[0162] The communications interface 318 may be configured, for example, to package the encoded picture data 171 into an appropriate format, e.g., packets, for transmission over a communications link or network, and may further include data loss protection and data loss recovery.

[0163] The communications interface 322, which forms a counterpart of the communications interface 318, may be configured to unpackage the encoded data 330, e.g. to obtain the encoded picture data 171, and may further be configured to perform data loss protection and data loss recovery, including, e.g., error concealment.

[0164] Both communication interface 318 and communication interface 322 may be configured as unidirectional communication interfaces, as indicated by the arrow of encoded picture data 330 in FIG. 3 pointing from the source device 310 to the destination device 320, or as bidirectional communication interfaces, and may be configured to, e.g., send and receive messages, to, e.g., set up connections, to confirm and / or resend missing or delayed data, including picture data, and to exchange any other information related to the communication link and / or data transmission, e.g., encoded picture data transmission.

[0165] The decoder 200 is configured to receive the encoded picture data 171 and to provide decoded picture data 231 or decoded pictures 231 (described in further detail, for example with reference to FIG. 2).

[0166] The post-processing processor 326 of the destination device 320 is configured to post-process the decoded picture data 231, e.g., the decoded picture 231, to obtain post-processed picture data 327, e.g., the post-processed picture 327. The post-processing performed by the post-processing unit 326 may include, for example, color format conversion (e.g., from YCbCr to RGB), color correction, cropping, resampling, or other processing, for example to prepare the decoded picture data 231 for display by a display device 328.

[0167] The display device 328 of the destination device 320 is configured to receive the post-processed picture data 327 for displaying the picture, e.g., to a user or viewer. The display device 328 may be or include any type of display, e.g., an integrated or external display or monitor, for presenting the reconstructed picture. The display may include, e.g., a cathode ray tube (CRT), a liquid crystal display (LCD), a plasma display, an organic light emitting diode (OLED) display, or any other type of display, e.g., beamer, holographic (3D), etc.

[0168] 3 depicts source device 310 and destination device 320 as separate devices, an embodiment of the devices may include both or both functionality, source device 310 or corresponding functionality, and destination device 320 or corresponding functionality. In such an embodiment, source device 310 or corresponding functionality and destination device 320 or corresponding functionality may be implemented using the same hardware and / or software, or using separate hardware and / or software, or any combination thereof.

[0169] As will be apparent to one of ordinary skill in the art based on the description, the presence and (exact) division of various units or functions within the source device 310 and / or destination device 320 as shown in FIG. 3 may vary depending on the actual device and application.

[0170] Thus, the source device 310 and the destination device 320 shown in FIG. 3 are merely exemplary embodiments of the present invention, and embodiments of the present invention are not limited to those shown in FIG.

[0171] The source device 310 and destination device 320 may include any of a wide range of devices, including any kind of portable or stationary device, such as a notebook or laptop computer, a mobile phone, a smartphone, a tablet or tablet computer, a camera, a desktop computer, a set-top box, a television, a display device, a digital media player, a video game console, a video streaming device, a broadcast receiving device, etc. (as well as servers and work stations for large scale professional encoding / decoding, e.g., network entities), and may use any kind of operating system, or none at all.

[0172] 1 is a schematic / conceptual block diagram of an embodiment of an encoder 100, such as a picture encoder 100, including an input 102, a residual calculation unit 104, a transform unit 106, a quantization unit 108, an inverse quantization unit 110, an inverse transform unit 112, a reconstruction unit 114, a buffer 118, a loop filter 120, a decoded picture buffer (DPB) 130, a prediction unit 160 (inter estimation unit 142, inter prediction unit 144, intra estimation unit 152, intra prediction unit 154, mode selection unit), an entropy coding unit 170, and an output 172. The video encoder 100 as shown in FIG. 1 may also be referred to as a hybrid video encoder or a video encoder with a hybrid video codec.

[0173] For example, the residual calculation unit 104, the transform unit 106, the quantization unit 108, and the entropy coding unit 170 form a forward signal path of the encoder 100, while, for example, the inverse quantization unit 110, the inverse transform unit 112, the reconstruction unit 114, the buffer 118, the loop filter 120, the decoded picture buffer (DPB) 130, the inter prediction unit 144, and the intra prediction unit 154 form a backward signal path of the encoder, which corresponds to the signal path of the decoder (see decoder 200 in FIG. 2 ).

[0174] The encoder is arranged to receive, for example, an input 102, a picture 101 or a picture block 103 of the picture 101, for example a picture of a sequence of pictures forming a video or a video sequence. The picture block 103 is also called a current picture block or a picture block to be coded, and the picture 101 is also called a current picture or a picture to be coded (particularly in video coding, the current picture is distinguished from other pictures, for example previously coded and / or decoded pictures of the same video sequence, i.e. a video sequence which also contains the current picture).

[0175] An embodiment of the encoder 100 may include a division unit (not shown in FIG. 1), which may also be referred to as a picture division unit, configured to divide, for example, a picture 103 into a number of blocks, and a block, for example block 103, typically into a number of non-overlapping blocks. The division unit may be configured to use the same block size for all pictures of a video sequence and a corresponding grid defining the block size, or to vary the block size between pictures, subsets, or groups of pictures, and to divide each picture into corresponding blocks.

[0176] Similar to the picture 101, the block 103 is or can be thought of as a two-dimensional array or matrix of samples having intensity values ​​(sample values), again with smaller dimensions than the picture 101. In other words, the block 103 may contain, for example, one sample array (e.g., a luma array in the case of a monochrome picture 101) or three sample arrays (e.g., a luma and two chroma arrays in the case of a color picture 101), or any other number and / or type of arrays depending on the color format applied. The number of samples in the horizontal and vertical directions (or axes) of the block 103 defines the size of the block 103.

[0177] As shown in FIG. 1, an encoder 100 is arranged to encode a picture 101 block by block, eg encoding and prediction is performed block by block 103 .

[0178] The residual calculation unit 104 is configured to calculate, sample by sample (pixel by pixel), the residual block 105 based on the picture block 103 and the prediction block 165 (further details about the prediction block 165 will be described later), e.g. by subtracting sample values ​​of the prediction block 165 from sample values ​​of the picture block 103 to obtain the residual block 105 in the sample domain.

[0179] The transform unit 106 is configured to apply a transform, such as a spatial frequency transform or a linear spatial transform, such as a discrete cosine transform (DCT) or a discrete sine transform (DST), to the sample values ​​of the residual block 105 to obtain transform coefficients 107 in a transform domain. The transformed coefficients 107 are also called transformed residual coefficients and can represent the residual block 105 in the transform domain.

[0180] The transform unit 106 may be configured to apply an integer approximation of a DCT / DST, such as the core transform specified for HEVC / H.265. Compared to an orthogonal DCT transform, such an integer approximation is typically scaled by a factor. In order to preserve the norm of the residual blocks processed by the forward and inverse transforms, an additional scaling factor is applied as part of the transform process. The scaling factor is typically selected based on certain constraints, such as scaling factors that are powers of two for shift operations, the bit depth of the transform coefficients, a trade-off between accuracy and implementation cost, etc. A particular scaling factor may be specified for the inverse transform, e.g., by the inverse transform unit 212 in the decoder 200 (and the corresponding inverse transform, e.g., by the inverse transform unit 112 in the encoder 100), and a corresponding scaling factor may be specified accordingly for the forward transform, e.g., by the transform unit 106 in the encoder 100.

[0181] The quantization unit 108 is configured to quantize the transformed coefficients 107 to obtain quantized coefficients 109, for example by applying scalar or vector quantization. The quantized coefficients 109 are also called quantized residual coefficients 109. For example, in case of scalar quantization, different scalings may be applied to achieve finer or coarser quantization. A smaller quantization step size corresponds to a finer quantization and a larger quantization step size corresponds to a coarser quantization. The applicable quantization step sizes may be indicated by a quantization parameter (QP). The quantization parameter may for example be an index to a predefined set of applicable quantization step sizes. For example, a small quantization parameter may correspond to a fine quantization (small quantization step size) and a large quantization parameter may correspond to a coarse quantization (large quantization step size), or vice versa. Quantization may involve division by a quantization step size, and the corresponding inverse dequantization, eg, by inverse quantization unit 110, may involve multiplication by the quantization step size.

[0182] An embodiment according to HEVC may be configured to use the quantization parameter to determine the quantization step size. In general, the quantization step size may be calculated based on the quantization parameter using a fixed-point approximation of a mathematical formula involving division. Additional scaling factors may be introduced for quantization and dequantization to restore the norm of the residual block that may be modified due to the scaling used in the fixed-point approximation of the mathematical formula for the quantization step size and the quantization parameter. In one implementation, the scaling of the inverse transform and dequantization may be combined. Alternatively, customized quantization tables may be used and signaled from the encoder to the decoder, for example in the bitstream. Quantization is a non-lossless operation, with increasing loss with increasing quantization step size.

[0183] An embodiment of the encoder 100 (or of the quantization unit 108, respectively) may be configured to output a quantization scheme and a quantization step size, e.g., via a corresponding quantization parameter, so that the decoder 200 may receive and apply a corresponding inverse quantization. An embodiment of the encoder 100 (or of the quantization unit 108) may be configured to output a quantization scheme and a quantization step size, e.g., directly or entropy coded via the entropy coding unit 170 or any other entropy coding unit.

[0184] The inverse quantization unit 110 is configured to apply the inverse quantization of the quantization unit 108 to the quantized coefficients to obtain unquantized coefficients 111, e.g., by applying the inverse of the quantization scheme applied by the quantization unit 108, e.g., based on or using the same quantization step size as the quantization unit 108. The unquantized coefficients 111 are also referred to as unquantized residual coefficients 111 and typically correspond to the transform coefficients 108, although they are not identical to the transform coefficients due to losses due to quantization.

[0185] The inverse transform unit 112 is configured to apply an inverse transform of the transform applied by the transform unit 106, for example an inverse discrete cosine transform (DCT) or an inverse discrete sine transform (DST), to obtain an inverse transformed block 113 in the sample domain. The inverse transform block 113 is also called an inverse transformed dequantized block 113 or an inverse transformed residual block 113.

[0186] The reconstruction unit 114 is configured to combine the inverse transform block 113 and the prediction block 165 to obtain a reconstructed block 115 in the sample domain, for example by adding sample values ​​of the decoded residual block 113 and sample values ​​of the prediction block 165 sample-by-sample.

[0187] A buffer unit 116 (or "buffer" 116 for short), e.g. a line buffer 116, is configured to buffer or store the reconstructed blocks and the respective sample values, e.g. for intra-estimation and / or intra-prediction. In further embodiments, the encoder may be configured to use the not yet filtered reconstructed blocks and / or the respective sample values ​​stored in the buffer unit 116 for any kind of estimation and / or prediction.

[0188] Embodiments of the encoder 100 may be configured, for example, such that the buffer unit 116 is not only used to store the reconstructed block 115 for intra-estimation 152 and / or intra-prediction 154, but also for the loop filter unit 120 (not shown in FIG. 1 ), and / or such that, for example, the buffer unit 116 and the decoded picture buffer 130 form one buffer. Further embodiments may be configured to use blocks or samples from the filtered block 121 and / or the decoded picture buffer 130 (both not shown in FIG. 1 ) as input or basis for the intra-estimation 152 and / or intra-prediction 154.

[0189] The loop filter unit 120 (or "loop filter" 120 for short) is configured to filter the reconstruction block 115 to obtain a filtered block 121, for example by applying a deblocking Sample Adaptive Offset (SAO) filter or other filters, for example a sharpening or smoothing filter or a collaborative filter. The filtered block 121 is also called filtered reconstruction block 121. In the following, the loop filter 120 is also called a deblocking filter. Further details of the loop filter unit 120 are explained below, for example on the basis of Fig. 6 or 7 or Fig. 10 to 12.

[0190] An embodiment of the loop filter unit 120 may include a filter analysis unit and an actual filter unit (not shown in FIG. 1 ), where the filter analysis unit is configured to determine loop filter parameters for the actual loop filter. The filter analysis unit may be configured to apply fixed, pre-determined filter parameters to the actual loop filter, to adaptively select filter parameters from a set of pre-defined filter parameters, or to adaptively calculate filter parameters for the actual loop filter.

[0191] An embodiment of loop filter unit 120 may include one or more filters (loop filter components / sub-filters), e.g., one or more different kinds or types of filters connected in series or in parallel or any combination thereof (not shown in FIG. 1 ), and each filter may include a filter analysis unit for determining respective loop filter parameters, either individually or together with other filters of the plurality of filters, e.g., as described in the preceding paragraph.

[0192] Embodiments of the encoder 100 (respectively the loop filter unit 120) may be configured to output entropy coded loop filter parameters, e.g., directly or via the entropy coding unit 170 or any other entropy coding unit, so that the decoder 200, for example, can receive and apply the same loop filter parameters for decoding.

[0193] A decoded picture buffer (DPB) 130 is configured to receive and store the filtered block 121. The decoded picture buffer 130 may further be configured to store other previously filtered blocks, e.g., previously reconstructed filtered block 121, of the same current picture or a different picture, e.g., a previously reconstructed picture, and may provide a previously fully reconstructed, i.e., decoded picture (and corresponding reference blocks and samples) and / or a partially reconstructed current picture (and corresponding reference blocks and samples), e.g., for inter-estimation and / or inter-prediction.

[0194] Further embodiments of the present invention may be configured to use previously filtered blocks and corresponding filtered sample values ​​of the decoded picture buffer 130 for any type of estimation or prediction, such as, for example, intra and inter estimation and prediction.

[0195] The prediction unit 160, also referred to as block prediction unit 160, is configured to receive or obtain decoded or at least reconstructed picture data, such as a picture block 103 (current picture block 103 of the current picture 101), e.g. reference samples of the same (current) picture from the buffer 116, and / or decoded picture data 231 from one or more previously decoded pictures from the decoded picture buffer 130, and to process such data for prediction, i.e. to provide a prediction block 165, which may be an inter prediction block 145 or an intra prediction block 155.

[0196] The mode selection unit 162 may be configured to select a prediction mode (e.g., intra or inter prediction mode) and / or a corresponding prediction block 145 or 155 to be used as the prediction block 165 for calculation of the residual block 105 and for reconstruction of the reconstruction block 115.

[0197] An embodiment of mode selection unit 162 may be configured to select a prediction mode (e.g., from among those supported by prediction unit 160) that considers or balances best match, or in other words, minimum residual (minimum residual means better compression for transmission or storage), or minimum signaling overhead (minimum signaling overhead means better compression for transmission or storage), or both. Mode selection unit 162 may be configured to determine the prediction mode based on rate-distortion optimization (RDO), i.e., to select a prediction mode that provides minimum rate-distortion optimization, or at least a prediction mode whose associated rate-distortion satisfies a prediction mode selection criterion.

[0198] Below, the prediction process performed by the example encoder 100 (eg, prediction unit 160 and mode selection (by mode select unit 162)) is described in more detail.

[0199] As mentioned above, the encoder 100 is configured to determine or select a best or optimal prediction mode from a (predetermined) set of prediction modes, which may include, for example, intra-prediction modes and / or inter-prediction modes.

[0200] The set of intra prediction modes may include 32 different intra prediction modes, e.g., non-directional modes such as DC (or average) mode and planar mode, or directional modes, as specified in H.264, or may include 65 different intra prediction modes, e.g., non-directional modes such as DC (or average) mode and planar mode, or directional modes, as specified in H.265.

[0201] The set of (or possible) inter prediction modes depends on the available reference pictures (i.e., previous pictures that have been at least partially decoded and stored in DBP 230) and other inter prediction parameters, such as whether the entire reference picture or only a part of the reference picture, e.g., a search window area around the area of ​​the current block, is used to search for the best matching reference block, and / or whether pixel interpolation is applied, e.g., whether half / semi-pel and / or quarter-pel interpolation is applied.

[0202] In addition to the above prediction modes, skip mode and / or direct mode may be applied.

[0203] Further, the prediction unit 160 may be configured to divide the block 103 into smaller block partitions or sub-blocks, e.g. by iteratively using quadtree partitioning (QT), binary tree partitioning (BT), ternary tree partitioning (TT), or any combination thereof, and to perform prediction for each of the block partitions or sub-blocks, e.g., where the mode selection includes selecting a tree structure of the divided block 103 and a prediction mode to be applied to each of the block partitions or sub-blocks.

[0204] The inter estimation unit 142, also referred to as inter picture estimation unit 142, is configured to receive or obtain a picture block 103 (current picture block 103 of current picture 101) and a decoded picture 231, or at least one or more previously reconstructed blocks, e.g. reconstructed blocks of one or more other / different previously decoded pictures 231, for inter prediction (or "inter picture estimation"). For example, a video sequence may include the current picture and the previously decoded picture 231, in other words the current picture and the previously decoded picture 231 may be part of pictures forming a video sequence or may form a sequence of pictures.

[0205] The encoder 100 may be configured to, for example, select a reference block from multiple reference blocks of the same or different pictures among multiple other pictures, and provide the reference picture (or reference picture index, ...) and / or an offset (spatial offset) between the position (x, y coordinates) of the reference block and the position of the current block as inter estimation parameters 143 to the inter prediction unit 144. This offset is also called a motion vector (MV). Inter estimation is also called motion estimation (ME) and inter prediction, motion prediction (MP).

[0206] The inter prediction unit 144 is configured to obtain, eg, receive, the received inter prediction parameters 143 and perform inter prediction based on or using the inter prediction parameters 143 to obtain an inter prediction block 145 .

[0207] Although FIG. 1 shows two separate units (or steps) for inter-coding, namely inter estimation 142 and inter prediction 152, both functions may be performed while one (inter prediction) requires / includes calculating the inter prediction block, i.e. the or "rather" inter prediction 152, for example by iteratively testing a subset of all possible or a predetermined possible inter prediction modes while storing the current best inter prediction mode and the respective inter prediction block and using the current best prediction mode and the respective inter prediction block as the (final) inter prediction parameters 143 and inter prediction block 145 without performing another inter prediction 144.

[0208] The intra estimation unit 152 is configured to obtain, e.g. receive, a picture block 103 of the same picture (current picture block) and one or more previously reconstructed blocks, e.g. reconstructed neighboring blocks, for intra estimation. The encoder 100 may be configured, for example, to select an intra prediction mode from a plurality of (predetermined) intra prediction modes and provide it as intra prediction parameters 153 to the intra prediction unit 154.

[0209] An embodiment of the encoder 100 may be configured to select the intra prediction mode based on an optimization criterion, such as minimum residual (e.g., the intra prediction mode that provides the predicted block 155 that is most similar to the current picture block 103) or minimum rate distortion.

[0210] The intra prediction unit 154 is configured to determine an intra prediction block 155 based on intra prediction parameters 153 , such as a selected intra prediction mode 153 .

[0211] Although FIG. 1 shows two separate units (or steps) for intra-coding, i.e., intra estimation 152 and intra prediction 154, both functions may be performed while one (intra prediction) requires / includes calculating the intra prediction block, i.e., the or "rather" intra prediction 154, for example by iteratively testing a subset of all possible or a predetermined possible intra prediction modes while storing the current best intra prediction mode and the respective intra prediction block and using the current best prediction mode and the respective intra prediction block as the (final) intra prediction parameters 153 and intra prediction block 155 without performing another intra prediction 154.

[0212] The entropy coding unit 170 is configured to apply an entropy coding algorithm or scheme (e.g., a variable length coding (VLC) scheme, a context-adaptive VLC scheme (CALVC), an arithmetic coding scheme, a context-adaptive binary arithmetic coding (CABAC)) to the quantized residual coefficients 109, the inter prediction parameters 143, the intra prediction parameters 153 and / or the loop filter parameters, individually or jointly (or not at all), to obtain coded picture data 171 which may be output by an output 172, e.g. in the form of a coded bit stream 171.

[0213] Other structural variations of the video encoder 100 can be used to encode the video stream. For example, a non-transform-based encoder 100 can quantize the residual signal directly for a particular block or frame, without relying on a transform processing unit. In another embodiment, the encoder 100 can have the quantization unit and the inverse quantization unit combined into a single unit.

[0214] FIG. 2 shows an exemplary video decoder 200 configured to receive encoded picture data (e.g., encoded bitstream) 171, e.g., encoded by encoder 100, to obtain a decoded picture 231.

[0215] The decoder 200 includes an input 202, an entropy decoding unit 204, an inverse quantization unit 210, an inverse transform unit 212, a reconstruction unit 214, a buffer 216, a loop filter 220, a decoded picture buffer 230, a prediction unit 260, an inter prediction unit 244, an intra prediction unit 254, a mode selection unit 260, and an output 232.

[0216] The entropy decoding unit 204 is configured to perform entropy decoding on the encoded picture data 171 to obtain, e.g., quantized coefficients 209 and / or decoded coding parameters (not shown in FIG. 2), such as (decoded) any or all of the inter-prediction parameters 143, intra-prediction parameters 153, and / or loop filter parameters.

[0217] In the decoder 200 embodiment, the inverse quantization unit 210, the inverse transform unit 212, the reconstruction unit 214, the buffer 216, the loop filter 220, the decoded picture buffer 230, the prediction unit 260, and the mode selection unit 262 are configured to perform the inverse processes of the encoder 100 (and their respective functional units) to decode the encoded picture data 171.

[0218] In particular, the inverse quantization unit 210 may be functionally identical to the inverse quantization unit 110, the inverse transform unit 212 may be functionally identical to the inverse transform unit 112, the reconstruction unit 214 may be functionally identical to the reconstruction unit 114, the buffer 216 may be functionally identical to the buffer 116, the loop filter 220 may be functionally identical to the loop filter 120 (for an actual loop filter, typically the loop filter 220 does not include a filter analysis unit for determining filter parameters based on the original image 101 or the block 103, but receives or obtains (explicitly or implicitly) the filter parameters used for encoding, e.g. from the entropy decoding unit 204), and the decoded picture buffer 230 may be functionally identical to the decoded picture buffer 130.

[0219] The prediction unit 260 includes an inter prediction unit 244, which may be functionally identical to the inter prediction unit 144, and an intra prediction unit 254, which may be functionally identical to the intra prediction unit 154. The prediction unit 260 and the mode selection unit 262 are typically configured to perform block prediction and / or obtain a prediction block 265 only from the coded data 171 (without further information about the original picture 101) and to receive or obtain (explicitly or implicitly) information regarding the prediction parameters 143 or 153 and / or the selected prediction mode, for example from the entropy decoding unit 204.

[0220] The decoder 200 is configured to output the decoded pictures 231, for example via an output 232, for presentation or display to a user.

[0221] Although embodiments of the present invention have been described primarily based on video coding, it should be noted that embodiments of the encoder 100 and decoder 200 (and corresponding system 300) may also be configured for still picture processing or coding, i.e., processing or coding of individual pictures independent of any preceding or successive pictures, as in video coding. In general, when picture processing coding is limited to a single picture 101, only inter estimation 142 and no inter prediction 144, 242 is available. Most, but not all, of the other functions (also called tools or techniques) of the video encoder 100 and video decoder 200, such as partitioning, transform (scaling) 106, quantization 108, inverse quantization 110, inverse transform 112, intra estimation 142, intra prediction 154, 254 and / or loop filtering 120, 220, and entropy coding 170 and entropy decoding 204, can be used equally for still pictures,

[0222] The present invention deals with the internal operation of the deblocking filter, also called loop filter in Figures 1 and 2. Further details of the loop filter unit 120, 220 are explained below, for example with reference to Figures 6, 7, or Figures 10-12, or Figures 15-16.

[0223] Video coding schemes such as H.264 / AVC and HEVC are designed around the successful principle of block-based hybrid video coding. With this principle, a picture is first divided into blocks, and then each block is predicted by using intra-picture or inter-picture prediction. These blocks are coded relative to neighboring blocks to approximate the original signal with a certain degree of similarity. Since the coded blocks only approximate the original signal, differences between the approximations can cause discontinuities at the prediction and transform block boundaries. These discontinuities are attenuated by a deblocking filter. HEVC replaces the macroblock structure of H.264 / AVC with the concept of coding tree units (CTUs) with a maximum size of 64x64 pixels. The CTUs are further divided into smaller coding units (CUs) in a quadtree partitioning scheme, which can be subdivided down to a minimum size of 8x8 pixels. HEVC also introduces the concepts of prediction blocks (PBs) and transform blocks (TBs).

[0224] In HEVC, two filters are specified in the deblocking filter: normal and strong. The normal filter modifies at most two samples on either side of an edge. In the strong filter, three additional tests between the samples along the edge and predefined thresholds are evaluated. If all of these tests are true, the strong filter is applied. The strong filter has a stronger smoothing effect on the samples along the edge and can modify at most three samples on either side of the edge.

[0225] ITU-T VCEG (Q6 / 16) and ISO / IEC MPEG (JTC 1 / SC 29 / WG 11) are studying the next generation video codec: Generic Video Coding (VVC). This new video codec standard aims to achieve compression capabilities significantly beyond those of the current HEVC standard (which includes current and near-future extensions for screen content coding and high dynamic range coding). These groups are collaborating on this exploration effort in a joint effort known as the Joint Video Exploration Team (JVET), evaluating compression technology designs proposed by experts in the field.

[0226] The VVC Test Model (VTM) describes the features of a collaborative test model study by the ITU-T VCEG and the ISO / IEC MPEG Joint Video Exploration Team (JVET) as a potential enhanced video coding technology that exceeds the capabilities of HEVC.

[0227] The VTM software uses a new split block structuring method called Quad-Tree-Binary-Tree-Tertiary-Tree (QTBTTT).

[0228] The QTBTTT structure removes the notion of multiple partition types, i.e. it removes the distinction between coding units (CU), prediction units (PU) and transform units (TU). Hence, CU=PU=TU.

[0229] QTBTTT supports more flexible CU partition shapes, where CUs can have either square or rectangular shapes. The minimum width and height of a CU can be 4 samples, and the size of a CU can be 4xN or Nx4, where N can be in the range [4,8,16,32]. Additionally, the maximum CTU size is increased to 128x128 pixels, which is 4 times larger than the CTU size in HEVC.

[0230] For rectangular CUs, distortions near the short edges can be evident resulting in block artifacts even when the HEVC Strong Filter is applied. Block artifacts can also be observed along the edges of larger CUs, where distortions are more noticeable due to the larger prediction and transformation processes.

[0231] Currently, additional Sub-pu tools (or sub-block tools in general) such as Affine and ATMVP are adopted in the Generic Video Coding (VVC) standard. In an implementation, for a sub-pu tool, specifically Affine, deblocking may be performed on sub-pu edges / boundaries that overlap with the 8x8 grid. In another implementation, for a sub-pu tool, specifically Affine, only sub-pu boundaries that overlap with the 16x16 grid are deblocked, and all other sub-pu boundaries are not deblocked, i.e., deblocking is not performed on sub-pu boundaries that overlap with the 8x8 grid, as shown in FIG. 15. In another implementation, for a sub-pu tool, specifically Affine, the first and last interior sub-pu boundaries are not deblocked. All other interior sub-pu edges are deblocked, as shown in FIG. 16. In other words, the solutions shown in FIG. 15 and 16 allow deblocking on at least a portion of the interior sub-pu edges. All these implementations exist primarily to cover the congruence of longer tap filter applications when one of the edge-sharing blocks uses a sub-pu tool like Affine or ATMVP.

[0232] The current deblocking filter process (which uses quad-tree plus binary-tree plus ternary-tree (QTBTTT) decomposition) is shown in Figure 4.

[0233] The problem of applying the “longer tap filter” to the sub-pu tool is illustrated in Figure 4. The coding blocks 401, 402, also called P and Q, are two CUs, where the size of the CU is 16x4 samples.

[0234] When a CU edge (marked by a thick black line) is filtered, up to seven samples on either side of the CU edge are modified. Thus, Q 0,0 From Q 6,0 Samples up to are corrected. Sample Q 7,0 Q 6,0 Q 5,0 is used in the deblocking decision on the sub-pu boundaries (marked with thin black lines). Thus, filtering results in overlaps and edges that should not be deblocked in parallel.

[0235] It is therefore necessary to perform the deblocking filtering in a serial manner, which incurs very long processing times. This incurs unnecessarily long processing times, especially as near-future processor technologies employ more and more parallel processing structures. By adapting the deblocking filtering to operate in parallel, significant processing time can be saved.

[0236] In particular, parallelizing the deblocking filtering can be achieved by approaches such as those shown in FIG. 5, FIG. 15 or FIG.

[0237] 7.1 Embodiments of the present invention Solution 1: 1.1 If the current block Q uses a Sub-pu tool such as Affine or ATMVP, the present invention uses an asymmetric version of a longer tap filter, i.e., an asymmetric filter as shown in Table 1, to deblock the CU boundary between blocks P and Q. Essentially, a coding unit can utilize inter-prediction. In inter-prediction, there are several different tools that a coding unit can use. Affine and ATMVP are two sub-pu tools. The sub-pu tool means that a given coding unit uses smaller prediction units (sub-pus) and motion compensation is done separately for each of the sub-pus. For example, if we have a coding unit of size 16×4, the affine tool will use 2 sub-pus of size 8×4 (as shown in FIG. 4) or 4 sub-pus of size 4×4. For example, if we have a coding unit of size 16×16, the affine tool will use 16 sub-pus of size 4×4 or 4 sub-pus of size 8×8, as shown in FIG. 17(a) and (b). Each of these sub-pus or sub-blocks uses a separate motion vector as shown in Figure 18. Therefore, for coding unit Q using sub-pu tools, up to 3 samples are modified, and for coding unit P, up to 7 samples are modified. See Figure 4 or 5. If the width of coding unit P is greater than 8 samples, e.g., 16 or 32 samples, then for coding unit P, up to 7 samples are modified. Note that in some scenarios, 3, 4, 5 or 6 samples may be modified for coding units P, Q.

[0238] [Table 1]

[0239] The input pixels correspond to the pixel values ​​or sample values ​​used for filtering, and the output pixels correspond to the modified sample values. It should be noted that the input pixels may be consecutive pixels starting at a block edge and perpendicular to the block edge. Also, the output pixels may be consecutive pixels starting at a block edge and perpendicular to the block edge. As shown in Table 1, in one example, the first output value (associated with coding block Q) is q 2 , q 1 , q 0 and the second output value (related to coding block P) corresponds to p 0 , p 1 , p 2 , ...p 5 , p 6 Correspondingly, coding unit Q corresponds to the second image block using the sub-block tool, and coding unit P corresponds to the first image block. Coding unit Q is a current block, and coding unit P is a neighboring block of the current block. Also, the filter condition (Equation 1) ensures that only a maximum of four samples from block Q are used in the filter decision.

[0240] In one example, for both the first and fourth lines of a blocking segment:

number

[0241] Only four samples can be used to determine the filter (in the case of Equation 1). Therefore, in Equation 1 for block Q, q 0 From q 3 Only samples up to q are used. In Equation 1 for block P, four samples may be used as shown in Equation 1. In one example, the second decision value is q3 , q 2 , q 1 , q 0 The first decision value corresponds to p 0 , p 3 , p 4 , p 7 , p 0 , p 2 , p 3、 p 5 Corresponds to.

[0242] If Equation 1 is satisfied, then the longer tap filter mentioned in Table 1 can be used. If Equation 1 is not satisfied, then the HEVC Strong Filter can be used. Also, here we use up to 3 samples from block Q, i.e. q 0 Or q 2 is modified. Essentially, to apply the longer tap filter, Equation 1 is considered. Only if Equation / Condition 1 is true, the longer tap filter shown in Table 1 may be applied. Note that Equation 1 may be used in step 707 of FIG. 7.

[0243] Equation 1 basically checks the gradient on either side of the CU edge. Since only up to four samples are available to make the filter decision from block Q, therefore sample q 0 Or q 3 Only β is used from block Q, β denotes a threshold parameter known, for example from the HEVC standard. With respect to the filter condition, the value of the threshold parameter β depends on the quantization parameter QP. As mentioned above, QP is a known parameter in video coding standards that controls the trade-off between bit rate and video content quality. In an embodiment, QP may be in the range of 0 to 51. In an embodiment, the processing circuit of the filter device 120, 220 is configured to determine the threshold parameter β based on the quantization parameter QP using a look-up table. In an embodiment, the look-up table may be defined as follows:

[0244] Look-up Table

[52] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,8,9,10,11,12,13,14,15,16,17,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64}

[0245] For further details regarding the threshold parameter β and its dependence on the QP reference, see Chapter 7 of the book “High Efficiency Video Coding (HEVC)”, Sze et al., which is incorporated herein by reference.

[0246] 1.2 If the neighboring block P uses a sub-pu tool such as Affine or ATMVP, then we use an asymmetric version of the longer tap filter, i.e., the asymmetric filter shown in Table 2, to deblock the CU boundary between blocks P and Q. Thus, for a coding unit P using the sub-pu tool, in one example, a maximum of three samples are modified, whereas for the current coding unit Q, a maximum of seven samples are modified.

[0247] [Table 2]

[0248] The input pixels correspond to the pixel values ​​or sample values ​​used for filtering, and the output pixels correspond to the modified sample values. It should be noted that the input pixels may be consecutive pixels starting at a block edge and perpendicular to the block edge. Also, the output pixels may be consecutive pixels starting at a block edge and perpendicular to the block edge. As shown in Table 2, in one example, the first output value (associated with coding block P) is p 2 , p 1 , p 0and the second output value (associated with coding block Q) corresponds to q 0 , q 1 , q 2 ,...q 5 , q 6 Correspondingly, coding unit P corresponds to the second image block using the sub-block tool, and coding unit Q corresponds to the first image block. Coding unit P is a current block, and coding unit Q is a neighboring block of the current block.

[0249] Also, the filter condition (Equation 2) makes sure that only a maximum of four samples from block P are used in the filter decision.

[0250] In one example, for both the first and fourth lines of a blocking segment:

number

[0251] Only four samples can be used to determine the filter (in the case of Equation 2). Therefore, in Equation 2 for block P, p 0 From p 3 Only samples up to p are used. In Equation 2 of Block Q, four samples may be used as shown in Equation 2. In one example, the second decision value is p 3 , p 2 , p 1 , p 0 The first decision value corresponds to q 0 , q 3 , q 4 , q 7 , q 0 , q 2 , q 3、 q 5 Corresponds to.

[0252] If Equation 2 is satisfied, then the longer tap filter mentioned in Table 2 can be used. If Equation 2 is not satisfied, then the HEVC Strong Filter can be used. Also, here we use up to 3 samples from block P, i.e. p 0 Or p 2 is modified. Basically, to apply the longer tap filter, Equation 2 is considered. Only if Equation 2 is true, the longer tap filter shown in Table 2 may be applied. Note that Equation 2 may be used in step 707 of FIG. 7.

[0253] It is permitted to use a maximum of four samples from block P to make the filter decision. Therefore, samples p4, p5...p7 cannot be used, and therefore the filter coefficients for samples p4, p5...p7 are zero. In this way, p4, p5,...p7 are not used in the filtering process.

[0254] Equation 2 basically checks the gradient on either side of the block. Since only up to four samples are available to make a filter decision from block P, therefore sample p 0 Or p 3 Only from block P is used.

[0255] 1.3 In an alternative implementation, p 0 , p 1 , p 2 or q 0 , q 1 , q 2The coefficients of can also use HEVC strong filter coefficients. When coding unit P uses the sub-pu tool, the coefficients are shown in Table 3. In other words, the present invention can use an asymmetric version of a longer tap filter, i.e., an asymmetric filter as shown in Table 3 can be used to deblock the CU boundary between blocks P and Q. Correspondingly, coding unit P corresponds to the second image block, and coding unit Q corresponds to the first image block. Coding unit P is the current block, and coding unit Q is the neighboring block of the current block.

[0256] [Table 3]

[0257] Alternatively, p 0 , p 1 , p 2 or q 0 , q 1 , q 2 The filter coefficients for Q may also use HEVC strong filter coefficients. When coding unit Q uses the sub-pu tool, the filter coefficients are shown in Table 4. In other words, the present invention may use an asymmetric version of a longer tap filter, i.e., an asymmetric filter as shown in Table 4 may be used to deblock the CU boundary between blocks P and Q. Correspondingly, coding unit Q corresponds to the second image block, and coding unit P corresponds to the first image block. Coding unit Q is the current block, and coding unit P is the neighboring block of the current block.

[0258] [Table 4]

[0259] The filter condition used can be Equation 1 or Equation 2 based on whether block P or block Q uses a sub-pu tool. For example, if block P uses a sub-pu tool, the filter condition is Equation 2, and if block Q uses a sub-pu tool, the filter condition is Equation 1.

[0260] 1.4 If both coding unit Q and coding unit P use the sub-pu tool, the longer tap filter is no longer applied at the CU boundary. For the CU edge (abbreviated CE), the HEVC strong filter may be considered. In the implementation, at most 3 samples on the side of the CU edge are modified in block P, and at most 3 samples on the other side of the CU edge are modified in block Q. The filter used is as shown in Table 5. In other words, the present invention can use the filter as shown in Table 5 to deblock the CU boundary between blocks P and Q. [Table 5]

[0261] FIG. 7 is a flow chart showing a method for determining whether a longer tap filter (or asymmetric long filter) shall be used. As shown in FIG. 7, the HEVC strong filter condition should be satisfied for the "longer tap filter" condition to be true. In step 707, the details are described above. The longer tap filter used in step 709 is different from the regular longer tap filter used in step 708, the details are described above. The regular longer tap filter condition is:

number

[0262] Details for determining whether the HEVC strong filter condition should be satisfied are shown in FIG. 8. The deblocking filter determination for block boundaries including the determination between strong filtering and normal filtering is summarized in the flowchart of FIG. 8.

[0263] In the first step 800, it is checked whether the currently filtered block edge is aligned with the 8×8 coded sample grid. If that is the case, in the second step 801, it is checked whether the block edge to be filtered is at the boundary between the prediction unit or the transform unit. If that is the case, in the third step 802, it is checked whether the boundary strength Bs>0. If this condition is also satisfied, in the fourth step 803, it is checked whether condition 7.1 is true.

[0264] Condition 7.1 is used to check whether deblocking filtering is applied to the block boundary. In particular, it checks how much signal deviates from the straight line (ramp) on each side of the block boundary.

[0265] If this condition is not met, or if any of the checks of steps 800, 801 and 802 are not satisfied, then in a fifth step 804 it is decided that no filtering is to be performed.

[0266] In a sixth step 805 (not shown in FIG. 8), it is now checked whether the block size of either of the two blocks surrounding the edge to be filtered is 4. If this is not the case, in a seventh step 806 it is checked whether the further conditions 7.2, 7.3 and 7.4 are fulfilled.

[0267] Condition 7.2 checks that there are no significant signal variations on the side of the block boundary. Condition 7.3 ensures that the signals on both sides are flat. Condition 7.4 ensures that the steps between sample values ​​on either side of the block boundary are small.

[0268] If all of these conditions are true, then in an eighth step 807, strong filtering is performed, which is replaced exactly by step 702 of Figure 7. If that is not the case, then in a ninth step 808, it is decided that regular filtering is performed.

[0269] This solution implements a part of the deblocking flow chart, resulting in only one sample correction being performed.

[0270] This means that at least one block size is an even integer greater than the threshold 2 n (e.g., 8 or 16, etc.), especially if at least one block size is an even integer greater than 16. n This allows significantly reducing the amount of checking required to determine if filtering is performed and what type of filtering is performed if .

[0271] To avoid filter overlap when longer tap filters are applied to either or both blocks using sub-pu tools such as Affine and ATMVP, the following solution is proposed in this disclosure.

[0272] Solution 1: Use an "asymmetric" filter, which allows for a modification of at most MA samples for blocks using sub-pu tools, e.g., MA=3, 4, 5 or 6, if either block Q or block P uses a sub-pu tool such as Affine or ATMVP.

[0273] Solution 2: If both coding unit Q and coding unit P use the sub-pu tool, the longer tap filter is not applied to the CU edge. The edge is considered the HEVC strong filter. Therefore, the same number of samples are modified on either side of the CU edge for blocks P and Q, MA'=MB'.

[0274] Solution 3: If either block Q or block P uses a sub-pu tool such as Affine or ATMVP, deblocking is performed only at the CU edge, while disabling deblocking at the sub-pu edge.

[0275] Solutions 4 and 5: If either block Q or block P uses a sub-pu tool such as Affine or ATMVP, deblocking is not only performed on some of the sub-pu edges, but also on the CU edges.

[0276] Solution 4: In this solution, the longer tap deblocking filter or the regular HEVC deblocking filter can be applied to all CU edges. For the interior sub-pu edges, only the edges that overlap with the 16x16 grid are deblocked. The interior sub-pu edges that overlap with the 8x8 grid are not deblocked. The main advantage of this solution is that the longer tap filter can be applied to some of the interior sub-pu edges that are far from the CU edges.

[0277] As shown in Figure 15, this example includes three coding units (blocks) P, Q, and R. Block Q uses a sub-pu tool such as Affine or ATMVP, and therefore consists of an interior sub-pu edge. There are two coding unit edges, one shared between block P (e.g., CU P) and block Q (e.g., CU Q), and the other coding unit edge shared between block Q (e.g., CU Q) and block R (e.g., CU R). In order to apply longer tap filters to the coding unit edges without introducing filter overlap, and thus sacrificing parallel deblocking, the proposed solution only deblocks all interior sub-pu edges that overlap with the 16x16 grid. All other interior sub-pu edges are not deblocked. This situation is also shown in Figure 15, where the dashed lines are interior sub-pu edges that overlap with the 8x8 grid and are not deblocked. Regular lines indicate interior sub-pu edges that overlap the 16x16 grid, and therefore they can be deblocked. An important property of this solution: longer tap filters can be applied to CU edges, and also to interior sub-pu edges that overlap the 16x16 grid.

[0278] The blocks P, Q, and R have a block size that is M×N or N×M or L×T or T×L, where N or T is an even integer greater than a threshold (e.g., 8 or 16). n For example, the size (i.e. width or height) of blocks P, Q, R may be 32 or 64 samples.

[0279] For a 16x16 grid, there will be at least one interior sub-pu edge that overlaps.

[0280] In general, for smaller blocks, there will be only one first and one last interior sub-pu edge that overlaps with the 8x8 grid, and therefore it cannot be deblocked. This is the situation shown in Figure 4.

[0281] An 8x8 grid is shown in Figure 19. An 8x8 grid has vertical and horizontal lines spaced apart by gaps of 8 samples. A 16x16 grid would have vertical and horizontal lines spaced apart by gaps of 16 samples.

[0282] A sixth filter, such as a longer tap filter, can be used that modifies up to 7 samples on either side of the sub-block edge, i.e. NA' = NB' = 7. Meanwhile, the regular HEVC deblocking filter can also be applied to all these sub-pu edges that overlap with the 16x16 grid. In general, the regular HEVC deblocking filter may modify up to 3 samples on either side of the edge. When the regular HEVC deblocking filter is applied to these sub-pu edges that overlap with the 16x16 grid, the number of samples to be modified on either side of the sub-pu edge may be adapted according to different scenarios.

[0283] In Figure 15, i.e. for solution 4 (16x16 grid), the 6th filter may refer to a longer tap filter. A longer tap filter is a filter that modifies an equal number of samples on either side of an edge. In this case, any longer tap filter with NA'=NB'=7 can be used, i.e. the longer tap filter can modify up to 7 samples on either side of an edge. For longer tap filters, NA'=NB'=7. The longer tap filter modifies up to 7 samples on either side of a sub-PU edge. Also, a regular HEVC filter can be applied. Samples inside the sub-pu block are used for filter decision and filter modification.

[0284] Solution 5: In this solution, deblocking is disabled for the first and last interior sub-pu edges, e.g. those that overlap with the 8x8 grid. All other sub-pu edges, e.g. those that overlap with the 8x8 grid, are allowed to have a 5th filter (such as the regular HEVC deblocking filter or any other filter) that modifies up to 4 samples. A longer tap deblocking filter can still be safely applied to all CU edges.

[0285] As shown in Figure 16, this example consists of three coding units (blocks) P, Q, and R. Block Q uses a sub-pu tool such as Affine or ATMVP, and therefore consists of an interior sub-pu edge. There are two coding unit edges, one shared between blocks P and Q, and the other shared between blocks Q and R. In order to apply longer tap filters to the coding unit edges without introducing filter overlap, and thus sacrificing parallel deblocking, the solution only deblocks all interior sub-pu edges except the first and last sub-pu edges. Also, a fifth filter, such as an HEVC deblocking filter that modifies up to three samples or any other deblocking filter that modifies up to four samples, can be used to deblock all other interior sub-pu edges except the first and last sub-pu edges. Note that for the interior sub-pu edges in this solution 5, each successive edge is 8 samples apart, so it is similar to filtering in general on an 8x8 grid. Therefore, the regular HEVC deblocking filter, or any other filter capable of modifying up to four samples, can be used in solution 5.

[0286] In Figure 16, i.e. for solution 5 (excluding the first and last), the 5th filter may refer to a longer tap filter. The longer tap filter may be a filter that modifies an equal number of samples on either side of the edge. In this case, any longer tap filter with NA=NB can be used. For the longer tap filter, NA=NB=4. The longer tap filter modifies up to 4 samples on either side of the sub-PU edge. Also, a regular HEVC filter can be applied. Samples inside the sub-pu block are used for filter decision and filter modification.

[0287] The blocks P, Q, R have block sizes that are M×N or N×M or L×T or T×L, where N or T is an even integer greater than 8. n For example, the size (i.e., width or height) of blocks P, Q, R may be 32 or 64 samples. In general, for smaller blocks, the first and last interior sub-pu edges will only overlap with the 8x8 grid, and therefore cannot be deblocked. This is the situation shown in Figure 4.

[0288] With respect to the first sub-pu edge and the last sub-pu edge between sub-blocks within the first coding block P or the second coding block Q, the first sub-pu edge is closest to one of the first coding block P and the second coding block Q, and the last sub-pu edge is closest to the other of the first coding block P and the second coding block Q.

[0289] This disclosure applies well to both vertical and horizontal edges. This disclosure can define the first sub-pu edge using the top-left position (x,y) of the sub-pu block, and for the first vertical edge, it can be said that the top-left position is (x+n,y+8), where n is the increment along the edge, but their positions are the same. For the last vertical edge, it can be said that its position is next to the adjacent block position (p,q), and the position of the last vertical edge will start from (p+n,q-8). For horizontal edges, it is similar, just the other way around.

[0290] In summary, the solutions can ensure that parallel deblocking operations can be performed, thus improving the subjective and objective quality of the video coding. Solution 3 disables deblocking for all internal sub-pu edges, while solutions 4 and 5 allow deblocking for at least some of the internal sub-pu edges.

[0291] This approach is also illustrated in Fig. 15 or 16. In Fig. 5 an image 500 is shown which contains two blocks 501, 502. A block edge 504 divides the blocks 501 and 502. A block edge 505 divides the block 502 into blocks 5021 and 5022. According to a first embodiment of the invention, the 7th sample value near the block edge 504 is modified inside the block 501, and 3 sample values ​​near the block edge 504 are modified inside the blocks 502, 5021, while on both sides of the block edge 504, two consecutive sample values ​​are used as filter input values. In Fig. 9 only the relevant blocks 901 and 902 of the image 900 are shown, the same applies for horizontal edges. The invention applies to all block types for the application of longer tap filters, the invention works for both vertical and horizontal edges, e.g. for vertical edges with width >8.

[0292] Future video coding standards may use "long tap" filters that modify more than 3 samples. In the following, whenever the block size is 16 samples or more, "long tap" filters may be used that take 8 samples as filter input and modify up to 7 samples.

[0293] To ensure that parallel deblocking is possible in scenarios where the current block uses sub-block tools, we propose the following improved mechanism.

[0294] Mechanism 1a: Force a “long tap” filter if the current block size is ≥ 16 samples and if the neighboring block size is also ≥ 16 samples.

[0295] Mechanism 2a: Enforce "asymmetric NAS" as described above.

[0296] Thus, the "asymmetric filter" modifies the samples used as input values ​​and the modification values ​​block-wide. For example, · If the block width == 4, 3 samples can be used for filter determination, and 1 sample can be corrected. · If the block width == 8, 4 samples can be used for filter determination and correction. · When the block width ≧ 16, the long - tap filter can be applied as described above. For example, when the current block uses the sub - block tool, at most MA sample values of the current block (using the sub - block tool) adjacent to the block edge per line are corrected, and at most MB sample values of the adjacent block adjacent to the block edge per line are corrected, where MA ≠ MB, and in particular MA < MB. For example, MA = 3 and MB = 7, or MA = 4 and MB = 7, or MA = 5 and MB = 7. In a scenario where the current block has a sub - block tool, it can be understood that MA and MB may be determined based on the block size, that is, MA and MB depend on the block size of their respective blocks. In the implementation method, for a large block, that is, when the block size ≧ 32, the maximum number of samples to be corrected may be 7 (corresponding to the long filter).

[0297] FIG. 6 is a block diagram illustrating an exemplary deblocking filter device 600 according to the techniques described in this disclosure (further details will be described below, for example, based on FIG. 7, 8 or FIG. 10, 11A, 11B, 12). The deblocking filter device 600 may be configured to perform deblocking techniques according to various examples described herein. In general, either or both of the loop filter 120 of FIG. 1 and the loop filter 220 of FIG. 2 may include components substantially similar to those of the deblocking filter device 600. Other video coding devices, such as a video encoder, a video decoder, a video encoder / decoder (CODEC), etc., may also include components substantially similar to the deblocking filter 600. The deblocking filter device 600 may be implemented in hardware, software, or firmware, or any combination thereof. When implemented in software or firmware, corresponding hardware (such as one or more processors or processing units and a memory for storing software or firmware instructions) may also be provided.

[0298] In the example of FIG. 6, the deblocking filter device 600 includes a deblocking decision unit 604, a support definition 602 stored in memory, a deblocking filtering unit 606, deblocking filter parameters 608 stored in memory, an edge location unit 603, and an edge location data structure 605. Any or all of the components of the deblocking filter 600 may be functionally integrated. The components of the deblocking filter 600 are shown separately for illustrative purposes only. In general, the deblocking filter 600 receives data of the decoded block from, for example, a summing component 114, 214 that combines the prediction data with residual data of the block. The data may further include an indication of how the block was predicted. In the example described below, the delocking filter device 600 is configured to receive data including a CTB (or LCU) and a decoded video block associated with a CU quadtree of the CTB, which describes how the CTB is divided into CUs and the prediction modes of the TUs and PUs of the leaf-node CU.

[0299] The deblocking filter device 600 may maintain an edge location data structure 605 in a memory of the deblocking filter device 600 or in an external memory provided by a corresponding video coding device. In some examples, the edge location unit 603 may receive a quadtree corresponding to the CTB indicating how the CTB is divided into CUs. The edge location unit 603 may then analyze the CU quadtree to determine edges between decoded video blocks associated with TUs and PUs of CUs in the CTB that are candidates for deblocking.

[0300] The edge location data structure 605 may include an array having a horizontal dimension, a vertical dimension, and dimensions representing horizontal and vertical edges. In general, an edge between video blocks may occur between two video blocks associated with a minimum size CU of the CTB, or a TU and a PU of a CU. Assuming the CTB has a size of N×N and the minimum size CU of the CTB is a size of M×M, the array may include a size of [N / M]×[N / M]×2, where the "2" represents the two possible edge directions (horizontal and vertical) between CUs. For example, assuming the CTB has 64×64 pixels and an 8×8 minimum size CU, the array may include [8]×[8]×[2] entries.

[0301] Each entry may generally correspond to a possible edge between two video blocks. An edge may not actually exist at each of the positions in an LCU corresponding to each entry in the edge position data structure 605. Thus, the value of the data structure may be initialized to false. In general, the edge positioning unit 603 may analyze the CU quadtree to determine the positions of edges between two video blocks associated with the TUs and PUs of a CU of the CTB, and set the corresponding values ​​in the edge position data structure 605 to true.

[0302] In general, an entry in the array may describe whether a corresponding edge exists in the CTB as a candidate for deblocking, i.e., if the edge positioning unit 603 determines that an edge exists between two adjacent video blocks associated with a TU and a PU of a CU in the CTB, the edge positioning unit 603 may set a value of a corresponding entry in the edge position data structure 605 to indicate that an edge exists (e.g., to a value of “true”).

[0303] The deblocking decision unit 604 generally determines, for two adjacent blocks, whether an edge between the two blocks should be deblocked. The deblocking decision unit 604 may determine the location of the edge using an edge location data structure 605. If the value of the edge location data structure 605 has a Boolean value, the deblocking decision unit 604 may determine, in some instances, that a value of "true" indicates the presence of an edge and a value of "false" indicates that an edge does not exist.

[0304] In general, the deblocking decision unit 604 is configured to provide one or more deblocking decision functions. A function may include multiple coefficients that are applied to a line of pixels that cross an edge between blocks. For example, a function may be applied to a line of pixels perpendicular to the edge, with MA (e.g., 3, 4, or 5) pixels in one of two blocks and MB (e.g., 7) pixels in the other of the two blocks. The support definition 602 defines the support of the function. In general, the "support" corresponds to the pixels to which the function is applied.

[0305] The deblocking decision unit 604 may be configured to apply one or more deblocking decision functions to one or more sets of supports, as defined by the support definition 602, to determine whether a particular edge between two blocks of video data should be deblocked. The dashed lines emanating from the deblocking decision unit 604 represent data of the block that is output without filtering. If the deblocking decision unit 604 determines that the edge between the two blocks should not be filtered, the deblocking filter 600 may output the data of the block without modifying the data. That is, the data may bypass the deblocking filtering unit 606. On the other hand, if the deblocking decision unit 604 determines that the edge should be deblocked, the deblocking decision unit 604 may cause the deblocking filtering unit 606 to filter values ​​of pixels near the edge to deblock the edge.

[0306] The deblocking filtering unit 606 derives a definition of a deblocking filter from the deblocking filter parameters 608 for the edge to be deblocked as instructed by the deblocking decision unit 604. In general, the filtering of an edge uses pixel values ​​from the neighborhood of the current edge to be deblocked. Thus, both the deblocking decision function and the deblocking filter may have a certain support region on both sides of the edge. By applying a deblocking filter to the pixels near the edge, the deblocking filtering unit 606 can smooth the pixel values, so that high frequency transitions near the edge are attenuated. In this way, the application of the deblocking filter to the pixels near the edge can reduce blockiness artifacts near the edge.

[0307] FIG. 10 is a block diagram illustrating an example deblocking method according to techniques described in this disclosure (further details will be described below with reference to, for example, FIGS. 7 and 8).

[0308] In FIG. 10, an embodiment of a deblocking method is shown.

[0309] In a first step 1001, edges between blocks are determined, including block edges between a first coding block and a second coding block and sub-block edges between sub-blocks of the first coding block or the second coding block (e.g., the first coding block or the second coding block has a sub-block or the first coding block or the second coding block has a sub-block tool), the first coding block has a block size that is M×N or N×M, the second coding block has a block size that is L×T or T×L, N or T being an even integer greater than a threshold (e.g., 8 or 16, etc.). n and;

[0310] In a second step 1002, it is determined whether the block edge between the first coding block and the second coding block should be filtered by applying a first filter (i.e. a longer tap filter, or an asymmetric filter, or an asymmetric tap filter, or an asymmetric long filter), in other words it is determined whether the block edge between the first coding block and the second coding block is enabled for deblocking by applying a first filter (i.e. a longer tap filter, or an asymmetric filter, or an asymmetric tap filter, or an asymmetric long filter);

[0311] In the third step 1003, when it is determined that the block edge between the first coding block and the second coding block should be filtered by applying the first filter, the first filter (a longer tap filter, or an asymmetric filter, or an asymmetric tap filter, or an asymmetric longer filter) is applied to the values of the samples (i.e., input pixels) near the block edge between the first coding block and the second coding block. When the first coding block has sub-blocks (or the first coding block has sub-block tool, the first coding block is the current block, and the second coding block is the adjacent block of the current block), at most MA sample values of the first coding block adjacent to (i.e., vertical to) the block edge for each line are corrected, and at most MB sample values of the second coding block adjacent to (i.e., vertical to) the block edge for each line are corrected. Or when the second coding block has sub-blocks (or the second coding block has sub-block tool, the second coding block is the current block, and the first coding block is the adjacent block of the current block), at most MA sample values of the second coding block adjacent to (i.e., vertical to) the block edge for each line are corrected, and at most MB sample values of the first coding block adjacent to (i.e., vertical to) the block edge for each line are corrected. MA ≠ MB, and in particular MA < MB. For example,

[0312] MA < MB = 7, for example, MA = 3 and MB = 7, MA = 4 and MB = 7, or MA = 5 and MB = 7.

[0313] It can be seen that in a scenario where the current block has sub-block tools, MA and MB may be determined based on the block size, in other words, MA and MB depend on the block size of the respective block. In the implementation, for large blocks, i.e. block size ≥ 32, the maximum number of samples to be modified may be 7 (corresponding to a long filter). The input pixels correspond to pixel values ​​or sample values ​​used for filtering, and the output pixels correspond to modified sample values. It should be noted that the input pixels may be contiguous pixels starting at a block edge and perpendicular to the block edge. Also, the output pixels may be contiguous pixels starting at a block edge and perpendicular to the block edge. Details of the deblocking method disclosed earlier can be referenced and will not be repeated here.

[0314] FIG. 11A is a block diagram illustrating another example deblocking method according to techniques described in this disclosure (further details will be described below with reference to, for example, FIGS. 7 and 8).

[0315] In FIG. 11A, another embodiment of a deblocking method is shown.

[0316] In a first step 1101, edges between blocks are determined, including block edges between a first coding block and a second coding block and sub-block edges between sub-blocks of the first coding block or the second coding block, the first coding block having a block size of M×N or N×M, the second coding block having a block size of L×T or T×L, N or T being an even integer greater than a threshold (e.g., 8 or 16, etc.). n and;

[0317] In a second step 1102, it is determined whether the block edge between the first coding block and the second coding block should be filtered by applying a first filter (i.e. a longer tap filter, or an asymmetric filter, or an asymmetric tap filter, or an asymmetric long filter), in other words it is determined whether the block edge between the first coding block and the second coding block is enabled for deblocking by applying a first filter (i.e. a longer tap filter, or an asymmetric filter, or an asymmetric tap filter, or an asymmetric long filter);

[0318] In a second step 1103, if it is determined that the block edge between the first coding block and the second coding block should not be filtered by applying the first filter, a third filter is applied to values ​​of samples (i.e. input pixels) near the block edge between the first coding block and the second coding block, such that at most MA sample values ​​of the first coding block adjacent (i.e. perpendicular) to the block edge per line are modified and at most MB sample values ​​of the second coding block adjacent (i.e. perpendicular) to the block edge per line are modified, where MA=MB, for example MA=MB=4.

[0319] It is possible to understand that the first coding block is the current block and the second coding block is a neighboring block of the current block, or the second coding block is the current block and the first coding block is a neighboring block of the current block.

[0320] The input pixels correspond to the pixel or sample values ​​used for filtering, and the output pixels correspond to the modified sample values. It should be noted that the input pixels may be contiguous pixels starting at a block edge and perpendicular to the block edge. Also, the output pixels may be contiguous pixels starting at a block edge and perpendicular to the block edge.

[0321] Reference may be made to the details of the exemplary deblocking method disclosed above, which will not be repeated here.

[0322] FIG. 11B is a block diagram illustrating another example deblocking method according to techniques described in this disclosure (further details will be described below with reference to, for example, FIGS. 7 and 8).

[0323] In FIG. 11B, another embodiment of a deblocking method is shown.

[0324] In a first step 1121, edges between blocks are determined, including block edges between a first coding block P and a second coding block Q and sub-block edges between sub-blocks of the first coding block P or the second coding block Q, where the first coding block P has a block size of M×N or N×M, the second coding block Q has a block size of L×T or T×L, and N or T is an even integer 2 greater than a threshold (e.g., 8 or 16). n and;

[0325] In a second step 1122 it is determined that sub-block edges between sub-blocks of the first coding block P or the second coding block Q should not be filtered, in other words it is determined that sub-block edges between sub-blocks of the first coding block P or the second coding block Q are disabled for deblocking;

[0326] In a third step 1123, a fourth filter (e.g. a conventional longer tap filter) is applied to the values ​​of samples (i.e. input pixels) near the block edge between the first coding block P and the second coding block Q, such that at most MA sample values ​​of the first coding block adjacent (i.e. perpendicular) to the block edge are modified and at most MB sample values ​​of the second coding block adjacent (i.e. perpendicular) to the block edge are modified, where MA=MB=7. It is possible to understand that the first coding block is the current block and the second coding block is a neighboring block of the current block, or the second coding block is the current block and the first coding block is a neighboring block of the current block.

[0327] The input pixels correspond to the pixel or sample values ​​used for filtering, and the output pixels correspond to the modified sample values. It should be noted that the input pixels may be contiguous pixels starting at a block edge and perpendicular to the block edge. Also, the output pixels may be contiguous pixels starting at a block edge and perpendicular to the block edge.

[0328] FIG. 12 is a block diagram illustrating another exemplary deblocking method according to the techniques described in this disclosure (further details will be described below, e.g., with reference to FIGS. 7, 8, 10, 11A, 11B, 12, and 15, 16).

[0329] In Fig. 12, another embodiment of the deblocking method is shown. In a first step 1201, inter-block edges are determined, including block edges between a first coding block P and a second coding block Q and sub-block edges between sub-blocks inside the first coding block P and / or the second coding block Q, where the first coding block P has a block size of MxN or NxM and the second coding block Q has a block size of LxT or TxL, e.g. N or T is an even integer 2 greater than a threshold (e.g. 8 or 16, etc.). n and;

[0330] In a second step 1202 it is determined that a first set of block edges between the first coding block P and the second coding block Q and sub-block edges between sub-blocks within the first coding block P and / or the second coding block Q should be filtered and a second set of sub-block edges between sub-blocks within the first coding block P and / or the second coding block Q should not be filtered;

[0331] In a third step 1203, deblocking filtering is performed on sample values ​​near block edges between the first coding block P and the second coding block Q, and deblocking filtering is performed on sample values ​​near each of a first set of sub-block edges between sub-blocks within the first coding block P and / or the second coding block Q. It is possible to understand that the first coding block is the current block and the second coding block is a neighboring block of the current block, or the second coding block is the current block and the first coding block is a neighboring block of the current block.

[0332] The input pixels correspond to the pixel or sample values ​​used for filtering, and the output pixels correspond to the modified sample values. It should be noted that the input pixels may be contiguous pixels starting at a block edge and perpendicular to the block edge. Also, the output pixels may be contiguous pixels starting at a block edge and perpendicular to the block edge.

[0333] As shown in FIG. 16 , the first set of sub-block edges between sub-blocks within the first coding block and / or the second coding block includes (consists of) a plurality of sub-block edges excluding a first sub-block edge and a last sub-block edge between sub-blocks within the first coding block P and / or the second coding block Q, where the first sub-block edge is closest to one of the first coding block P and the second coding block Q and the last sub-block edge is closest to the other of the first coding block P and the second coding block Q;

[0334] A second set of sub-block edges between sub-blocks within the first coding block P and / or the second coding block Q consists of a first sub-block edge and a last sub-block edge between sub-blocks within the first coding block P and / or the second coding block Q, where the first sub-block edge is closest to one of the first coding block P and the second coding block Q and the last sub-block edge is closest to the other of the first coding block P and the second coding block Q.

[0335] In a second step 1203, performing deblocking filtering on values ​​of samples of neighbours of each of a first set of sub-block edges between sub-blocks of the first coding block P and / or the second coding block Q comprises the steps of: The method includes applying a fifth filter to values ​​of samples in the vicinity of each of the first set of sub-block edges within the first coding block P and / or the second coding block Q, wherein at most NA sample values ​​on one side of each of the first set of sub-block edges are modified within the first coding block P and / or the second coding block Q and at most NB sample values ​​on the other side of each of the first set of sub-block edges are modified, where NA=NB=4.

[0336] If there are no sub-block edges between sub-blocks within the first coding block P and there are multiple sub-block edges between sub-blocks within the second coding block Q, then in a second step 1203, performing deblocking filtering on values ​​of samples in the vicinity of each of a first set of sub-block edges between sub-blocks within the first coding block P and / or the second coding block Q comprises the steps of: When it is decided that the fifth filter, which is the HEVC deblocking filtering, should be applied, the following formula:

number

[0337] As shown in FIG. 15 , the first set of sub-block edges between sub-blocks within the first coding block and / or the second coding block comprises (consists of) one or more sub-block edges overlapping a 16×16 grid between sub-blocks within the first coding block P and / or the second coding block Q; The second set of sub-block edges between sub-blocks within the first or second coding block includes (consists of) one or more sub-block edges excluding sub-block edges overlapping the 16×16 grid between sub-blocks within the first coding block P and / or the second coding block Q.

[0338] Correspondingly, in a second step 1203, performing deblocking filtering on values ​​of neighbouring samples of each of a first set of sub-block edges between sub-blocks of the first coding block P and / or the second coding block Q comprises the steps of: The method includes applying a sixth filter to values ​​of samples in the vicinity of each of a first set of sub-block edges within the first coding block P and / or the second coding block Q, wherein at most NA' sample values ​​on one side of each of the first set of sub-block edges are modified within the first coding block P or the second coding block Q and at most NB' sample values ​​on the other side of each of the first set of sub-block edges are modified, where NA'=NB'=7.

[0339] If there are no sub-block edges between sub-blocks within the first coding block P and there are multiple sub-block edges between sub-blocks within the second coding block Q (such that the first coding block P has no sub-blocks but the second coding block Q has sub-blocks), then correspondingly in the second step 1203, the step of performing deblocking filtering on values ​​of samples in the vicinity of each of a first set of sub-block edges between sub-blocks within the first coding block P and / or the second coding block Q comprises: The following formula:

number

[0340] In the case where there are a plurality of sub-block edges between sub-blocks within the first coding block P and a plurality of sub-block edges between sub-blocks within the second coding block Q, in a second step 1203, the step of performing deblocking filtering on values ​​of samples of neighbours of each of a first set of sub-block edges between sub-blocks within the first coding block P and / or the second coding block Q comprises: The following formula:

number

[0341] The deblocking method according to the embodiment further includes determining whether the block edge between the first coding block P and the second coding block Q should be filtered by applying a first filter, and when it is determined that the block edge between the first coding block P and the second coding block Q should be filtered by applying a first filter, including the step of applying the first filter to the values of the samples in the vicinity of the block edge between the first coding block P and the second coding block Q, at most MA sample values of the first coding block adjacent to the block edge for each line are corrected, at most MB sample values of the second coding block adjacent to the block edge for each line are corrected, or at most MA sample values of the second coding block adjacent to the block edge for each line are corrected, at most MB sample values of the first coding block adjacent to the block edge for each line are corrected, where MA ≠ MB, in particular MA < MB, for example MA = 3 and MB = 7, or MA = 4 and MB = 7, or MA = 5 and MB = 7.

[0342] When a plurality of sub-block edges between the sub-blocks are within the first coding block and a plurality of sub-block edges between the sub-blocks are within the second coding block, the method further comprises: It is determined that a block edge between the first coding block and the second coding block should be filtered by applying a second filter, and if it is determined that a block edge between the first coding block and the second coding block should be filtered by applying a second filter, the second filter is applied to values ​​near the block edge, where MA' sample values ​​of the first coding block adjacent to the block edge are modified and MB' sample values ​​of the second coding block adjacent to the block edge are modified, where MA'=3 and MB'=3.

[0343] if a sub-block edge between sub-blocks does not lie inside the second coding block, then at most MA sample values ​​of the first coding block adjacent to the block edge per line are modified, and at most MB sample values ​​of the second coding block adjacent to the block edge per line are modified, where MA=3 and MB=7, or MA=4 and MB=7, or MA=5 and MB=7, or If a sub-block edge between sub-blocks is not inside the first coding block, then at most MA sample values ​​of the second coding block adjacent to the block edge per line are modified, and at most MB sample values ​​of the first coding block adjacent to the block edge per line are modified, where MA=3 and MB=7, or MA=4 and MB=7, or MA=5 and MB=7.

[0344] The method further comprises determining whether a block edge between the first coding block and the second coding block should be filtered by applying a first filter: - As the first filter decision value, at most DA sample values ​​of the first coding block adjacent to the block edge, DA=4 and - As the second filter decision value, at most DB sample values ​​of the second coding block adjacent to the block edge, DB=4 The method includes determining based on the above.

[0345] If there are multiple sub-block edges between the sub-blocks within the second coding block Q, the method further comprises: The first formula below:

number

[0346] If there are multiple sub-block edges between the sub-blocks within the first coding block P, the method further comprises: The second formula below:

number

[0347] The threshold parameter β is determined based on a quantization parameter QP that is related to the quantization step size of the multiple samples, or The threshold parameter β is determined based on the quantization parameter QP using a look-up table.

[0348] performing deblocking filtering on values ​​of samples near a block edge between the first coding block P and the second coding block Q when there is no sub-block edge between the sub-blocks inside the first coding block P and there is a sub-block edge between the sub-blocks inside the second coding block Q, the step of: The following formula:

number

[0349] performing deblocking filtering on values ​​of samples near a block edge between the first coding block P and the second coding block Q when there is no sub-block edge between the sub-blocks inside the first coding block P and there is a sub-block edge between the sub-blocks inside the second coding block Q, the step of: The following formula:

number

[0350] performing deblocking filtering on values ​​of samples near a block edge between the first coding block P and the second coding block Q when there is no sub-block edge between the sub-blocks inside the first coding block P and there is a sub-block edge between the sub-blocks inside the second coding block Q, the step of: The following formula:

number

[0351] performing deblocking filtering on values ​​of samples near a block edge between the first coding block P and the second coding block Q when there is no sub-block edge between the sub-blocks inside the first coding block P and there is a sub-block edge between the sub-blocks inside the second coding block Q, the step of: The following formula:

number

[0352] The deblocking method according to the embodiment further includes the steps of determining whether a block edge between the first coding block P and the second coding block Q should be filtered by applying the first filter, and if it is determined that the block edge between the first coding block P and the second coding block Q should not be filtered by applying the first filter, applying a third filter to values ​​of samples near the block edge between the first coding block P and the second coding block Q, where at most MA sample values ​​of the first coding block adjacent to the block edge per line are modified and at most MB sample values ​​of the second coding block adjacent to the block edge per line are modified, where MA=MB=4.

[0353] It can be seen that the first, second, third, fourth, fifth and sixth filters correspond to filtering the block edges differently. In other words, all the different filters use as input and output samples: adjacent samples perpendicular to a given block edge. Furthermore, the different filters use a different number of maximum filtering samples as input and also modify a different number of maximum samples as filter output.

[0354] 13 is a simplified block diagram of an apparatus 1300 that may be used as either or both of the source device 310 and the destination device 320 of FIG. 3, according to an example embodiment. The apparatus 1300 may implement the techniques of the present application. The apparatus 1300 may be in the form of a computing system including multiple computing devices, or in the form of a single computing device, such as a mobile phone, a tablet computer, a laptop computer, a notebook computer, a desktop computer, etc.

[0355] The processor 1302 of the apparatus 1300 may be a central processing unit. Alternatively, the processor 1302 may be any other type of device or devices, now existing or later developed, capable of manipulating or processing information. Although the disclosed implementations may be implemented with a single processor, e.g., processor 1302, as shown, advantages in speed and efficiency may be achieved using more than one processor.

[0356] The memory 1304 in the device 1300 may be a read only memory (ROM) device or a random access memory (RAM) device in implementation. Any other suitable type of storage device may be used as the memory 1304. The memory 1304 may be used to store code and / or data 1306 that is accessed by the processor 1302 using the bus 1312. The memory 1304 may further be used to store an operating system 1308 and application programs 1310. The application programs 1310 may include at least one program that enables the processor 1302 to perform the methods described herein. For example, the application programs 1310 may include applications 1 through N and may further include a video coding application that performs the methods described herein. The device 1300 may also include additional memory in the form of a second storage 1314, which may be, for example, a memory card for use with a mobile computing device. Because video communication sessions may contain a significant amount of information, they may be stored in whole or in part in storage 1314 and loaded into memory 1304 as needed for processing.

[0357] The device 1300 may also include one or more output devices, such as a display 1318. The display 1318, in one example, may be a touch-sensitive display that combines a display with touch-sensing elements operable to sense touch input. The display 1318 may be coupled to the processor 1302 via the bus 1312. Other output devices that enable a user to program or otherwise use the device 1300 may be provided in addition to, or as an alternative to, the display 1318. If the output device is or includes a display, the display may be implemented in a variety of ways, including a liquid crystal display (LCD), a cathode ray tube display (CRT), a plasma display, or a light emitting diode (LED) display, such as an organic LED display.

[0358] The device 1300 may also include or communicate with an image sensing device 1320, such as a camera or any other existing or later developed image sensing device 1320 capable of sensing images, such as images of the user-operated device 1300. The image sensing device 1320 may be positioned such that it is pointed toward the user-operated device 1300. In one example, the position and optical axis of the image sensing device 1320 may be configured such that the field of view includes the area directly adjacent to the display 1318 and from which the display 1318 is visible.

[0359] The device 1300 may also include or communicate with a sound sensing device 1322, such as a microphone or any other existing or later developed sound sensing device capable of sensing sound in the vicinity of the device 1300. The sound sensing device 1322 may be positioned such that it is pointed toward the user-operated device 1300 and configured to receive sounds, such as speech or other utterances, made by the user while the user is operating the device 1300.

[0360] Although FIG. 13 depicts the processor 1302 and memory 1304 of the apparatus 1300 as integrated into a single device, other configurations may be utilized. The operations of the processor 1302 may be distributed across multiple machines (each machine having one or more processors) that may be coupled directly or through a local area or other network. The memory 1304 may be distributed across multiple machines, such as a network-based memory or memory within multiple machines that perform the operations of the apparatus 1300. Although shown here as a single bus, the bus 1312 of the apparatus 1300 may include multiple buses. Additionally, the secondary storage 1314 may be directly coupled to other components of the apparatus 1300 or may be accessed over a network, and may include a single integrated unit such as a memory card or multiple units such as multiple memory cards. Thus, the apparatus 1300 may be implemented in a wide variety of configurations.

[0361] FIG. 14 is a schematic diagram of an exemplary coding device 1400 for video coding according to an embodiment of the present disclosure. Coding device 1400 is suitable for implementing disclosed embodiments as described herein. In an embodiment, coding device 1400 may be a decoder, such as video decoder 200 of FIG. 2, or an encoder, such as video encoder 100 of FIG. 1. In an embodiment, coding device 1400 may be one or more components of video decoder 200 of FIG. 2 or video encoder 100 of FIG. 1, as described above.

[0362] The coding device 1400 includes an ingress port 1420 and a receiver unit (Rx) 1410 for receiving data; a processor, logic unit, or central processing unit (CPU) 1430 for processing data; a transmitter unit (Tx) 1440 and an egress port 1450 for transmitting data; and a memory 1460 for storing data. The coding device 1400 may also include optical-electrical (OE) and electro-optical (EO) components coupled to the ingress port 1420, the receiver unit 1410, the transmitter unit 1440, and the egress port 1450 for the entry and exit of optical or electrical signals. The coding device 1400 may also include wireless transmitters and / or receivers in some examples.

[0363] The processor 1430 is implemented by hardware and software. The processor 1430 may be implemented as one or more CPU chips, cores (e.g., multi-core processors), field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), and digital signal processors (DSPs). The processor 1430 communicates with the ingress port 1420, the receiver unit 1410, the transmitter unit 1440, the egress port 1450, and the memory 1460. The processor 1430 includes a coding module 1414. The coding module 1414 implements the disclosed embodiments described above. For example, the coding module 1414 implements, processes, prepares, or provides various coding operations. Thus, the inclusion of the coding module 1414 provides substantial improvements to the functionality of the coding device 1400 and provides transformation of the coding device 1400 into different states. Alternatively, the coding module 1414 may be implemented as instructions stored in memory 1460 (eg, as a computer program product stored on a non-transitory medium) and executed by the processor 1430 .

[0364] The memory 1460 may include one or more disks, tape drives, and solid state drives, and may be used as an overflow data storage device, to store programs when such programs are selected for execution, and to store instructions and data loaded during execution of the programs. The memory 1460 may be volatile and / or non-volatile, and may be read-only memory (ROM), random access memory (RAM), ternary content addressable memory (TCAM), and / or static random access memory (SRAM). The coding device 1400 may also be an input / output (I / O) device for interacting with an end user. For example, the coding device 1400 may include a display such as a monitor for visual output, speakers for audio output, a keyboard / mouse / trackball, etc. for user input.

[0365] The present invention has been described in relation to various embodiments in this application. However, other variations to the disclosed embodiments can be understood and effected by those skilled in the art in practicing the claimed invention, from a study of the drawings, the disclosure and the appended claims. In the claims, the word "comprising" does not exclude other elements or steps, and the indefinite article "a" or "an" does not exclude a plurality. A single processor or other unit may fulfill the functions of several items recited in the claims. The mere fact that certain items are commonly recited in different dependent claims does not indicate that a combination of these items cannot be advantageously utilized. The computer program may be stored / distributed on a suitable medium, such as an optical storage medium or a solid-state medium, supplied together with or as part of other hardware, but may also be distributed in other forms, such as via the Internet or other wired or wireless communication systems.

[0366] Whenever the embodiments and descriptions refer to the term "memory," the term "memory" shall be understood to mean and / or include magnetic disk, optical disk, Read-Only Memory (ROM), Random Access Memory (RAM), etc. [enumeration of all possible memories], unless expressly stated otherwise.

[0367] Whenever the embodiments and descriptions refer to the term "network," unless expressly stated otherwise, the term "network" is intended to be understood as and / or include... [an enumeration of all possible memories].

[0368] Those skilled in the art will appreciate that the "blocks" ("units") of the various figures (methods and apparatus) depict or describe functions of embodiments of the invention (not necessarily individual "units" of hardware or software) and thus equally describe functions or features of method embodiments (units = steps) in addition to apparatus embodiments.

[0369] The term "unit" is used merely for purposes of illustrating the functionality of an encoder / decoder embodiment and is not intended to limit the present disclosure.

[0370] In some embodiments provided in the present application, it should be understood that the disclosed system, device, and method may be realized in other ways. For example, the described device embodiment is merely exemplary. For example, the division of units is merely a logical functional division, and may be other divisions in actual implementation. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not implemented. In addition, the shown or described mutual couplings, direct couplings, or communication connections may be realized by using some interfaces. Indirect couplings or communication connections between devices or units may be implemented in electronic, mechanical, or other forms.

[0371] The units described as separate parts may or may not be physically separate, and the parts shown as units may or may not be physical units, and may be located in one place or distributed over multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments.

[0372] Furthermore, the functional units in the embodiments of the present invention may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit.

[0373] Embodiments of the present invention may further include apparatus, such as an encoder and / or decoder, that include processing circuitry configured to perform any of the methods and / or processes described herein.

[0374] The embodiments may be implemented as hardware, firmware, software, or any combination thereof. For example, the encoder / encoding or decoder / decoding functions may be performed by processing circuitry, such as a processor, microcontroller, digital signal processor (DSP), field programmable gate array (FPGA), application specific integrated circuit (ASIC), etc., with or without firmware or software.

[0375] The functionality of the encoder 100 (and corresponding encoding method 100) and / or the decoder 200 (and corresponding decoding method 200) may be realized by program instructions stored on a computer readable medium, which when executed cause a processing circuit, a computer, a processor, etc. to perform the steps of the encoding and / or decoding method. The computer readable medium may be any medium, including non-transitory storage media on which programs are stored, such as Blu-ray discs, DVDs, CDs, USB (flash) drives, hard disks, server storage available over a network, etc.

[0376] An embodiment of the present invention includes a computer program comprising a program code for performing any of the methods described herein when the computer program runs on a computer.

[0377] An embodiment of the present invention is or includes a computer readable medium containing program code that, when executed by a processor, causes a computer system to perform any of the methods described herein.

[0378] In one or more examples, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored or transmitted as one or more instructions or code on a computer-readable medium and executed by a hardware-based processing unit. A computer-readable medium may include a computer-readable storage medium, which corresponds to a tangible medium, such as a data storage medium, or a communication medium, which includes any medium that facilitates transfer of a computer program from one place to another, for example according to a communication protocol. In this manner, a computer-readable medium may generally correspond to (1) a tangible computer-readable storage medium that is non-transitory, or (2) a communication medium, such as a signal or carrier wave. A data storage medium may be any available medium that can be accessed by one or more computers or one or more processors to retrieve instructions, code, and / or data structures for implementation of the techniques described in this disclosure. A computer program product may include a computer-readable medium.

[0379] For example, and without limitation, such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, other magnetic disk storage devices, flash memory, or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer. Also, any connection is properly referred to as a computer-readable medium. For example, if instructions are transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of media. However, it should be understood that computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other transitory media, but rather are directed to non-transitory, tangible storage media. Disk and disk, as used herein, include compact discs (CDs), laser discs, optical disks, digital versatile disks (DVDs), floppy disks, and Blu-ray disks, where disks typically reproduce data magnetically and disks reproduce data optically with a laser. Combinations of the above should also be included within the scope of computer readable media.

[0380] The instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuitry. Thus, the term "processor" as used herein may refer to any of the aforementioned structures, or any other structure suitable for implementing the techniques described herein. Furthermore, in some aspects, the functionality described herein may be provided in dedicated hardware and / or software modules configured for encoding and decoding, or may be incorporated into a combined codec. Also, the techniques may be fully implemented in one or more circuit or logic elements.

[0381] The techniques of this disclosure may be implemented in a wide variety of devices or apparatuses, including a wireless handset, an integrated circuit (IC), or a set of ICs (e.g., a chip set). Various components, modules, or units are described in this disclosure to highlight functional aspects of devices configured to perform the disclosed techniques, but do not necessarily require implementation by different hardware units. Rather, as described above, the various units may be combined in a codec hardware unit or may be provided by a collection of interoperable hardware units including one or more processors as described above, along with appropriate software and / or firmware.

[0382] Although several embodiments have been provided in this disclosure, it should be understood that the disclosed system and method may be embodied in many other specific forms without departing from the spirit or scope of the disclosure. The present examples should be considered as illustrative and not restrictive, and the intention is not to be limited to the given details of the present application. For example, various elements or components may be combined or integrated into another system, or certain features may be omitted or not implemented.

[0383] Furthermore, the techniques, systems, subsystems, and methods described and illustrated individually or separately in various embodiments can be combined or integrated with other systems, modules, techniques, or methods without departing from the scope of the present disclosure. Other items illustrated or discussed as being coupled or directly coupled or in communication with each other can be indirectly coupled or in communication through some interface, device, or intermediate component, whether electrical, mechanical, or otherwise. Other examples of modifications, substitutions, and alterations will be ascertainable by those skilled in the art and can be made without departing from the spirit and scope of the present disclosure.

Claims

1. 1. A deblocking filter apparatus for deblocking a block edge between a first image block and a second image block, comprising: a memory for storing instructions; and a processor in communication with the memory; and when executing the instructions, the processor: If the first image block includes sub-blocks, N is an even number greater than 16. n determining the value of MA' to be 5 under the condition that n is a positive integer, the first image block has a block size of M*N, and M and N represent the width and height of the first image block, respectively; If the second image block includes sub-blocks, T is an even number greater than 16. n determining a value of MB' to be 5 under the condition that: MB'=5, where the second image block has a block size of L*T, where L and T represent the width and height of the second image block, respectively; modifying values ​​of at most MA' samples of the first image block as third output values, the at most MA' samples being in a line perpendicular to the block edge and the at most MA' samples being adjacent to the block edge; and modifying values ​​of at most MB' samples of the second image block as a fourth output value, the at most MB' samples being in a line perpendicular to the block edge and the at most MB' samples being adjacent to the block edge; A deblocking filter apparatus configured to:

2. 2. The deblocking filter apparatus of claim 1, wherein when executing the instructions, the processor further: Whether the block edges should be filtered or not as a third judgment value, values ​​of at most DA′ samples of the first image block; and As a fourth judgment value, the values ​​of at most DB' samples of the second image block wherein the at most DA' samples are on a line perpendicular to the block edge and the at most DA' samples are adjacent to the block edge, the at most DB' samples are on a line perpendicular to the block edge and the at most DB' samples are adjacent to the block edge, and the DA' and DB' are integers.

3. 3. The deblocking filter device according to claim 2, DA'=MA'+1 and DB'=MB'+1 A deblocking filter device.

4. 2. The deblocking filter apparatus according to claim 1, wherein when the block edge is a horizontal block edge, a direction along a height N of the first image block is perpendicular to the block edge, a direction along a height T of the second image block is perpendicular to the block edge, and both the heights of the first and second image blocks are an even number 2 greater than 16. n A deblocking filter device.

5. 2. The deblocking filter apparatus of claim 1, wherein the second image block is a current block and the first image block is a block in a neighborhood of the current block.

6. 2. The deblocking filter apparatus of claim 1, wherein the first image block and the second image block are transform blocks.

7. 1. A method for deblocking a block edge between a first image block and a second image block by a coding device, the method comprising: If the first image block includes sub-blocks, N is an even number greater than 16. n determining the value of MA' to be 5 under the condition that n is a positive integer, the first image block has a block size of M*N, and M and N represent the width and height of the first image block, respectively; If the second image block includes sub-blocks, T is an even number greater than 16. n determining a value of MB' to be 5 under the condition that: MB'=5, where the second image block has a block size of L*T, where L and T represent the width and height of the second image block, respectively; modifying values ​​of at most MA' samples of the first image block as third output values, the at most MA' samples being in a line perpendicular to the block edge and the at most MA' samples being adjacent to the block edge; and modifying values ​​of at most MB' samples of the second image block as a fourth output value, the at most MB' samples being in a line perpendicular to the block edge and the at most MB' samples being adjacent to the block edge; The method includes:

8. 8. The method of claim 7, further comprising: determining whether the block edges should be filtered by: the values ​​of at most DA′ samples of the first image block as a first decision value; and As a second judgment value, values ​​of at most DB' samples of the second image block wherein the at most DA' samples are on a line perpendicular to the block edge, the at most DA' samples are adjacent to the block edge, the at most DB' samples are on a line perpendicular to the block edge, and the at most DB' samples are adjacent to the block edge, and the DA' and DB' are integers.

9. The method according to claim 8, DA'=MA'+1 and DB'=MB'+1 That is, the method.

10. 8. The method of claim 7, wherein when the block edge is a horizontal block edge, a direction along a height N of the first image block is perpendicular to the block edge, a direction along a height T of the second image block is perpendicular to the block edge, and both the heights of the first and second image blocks are an even number 2 greater than 16. n That is, the method.

11. The method of claim 7, wherein the second image block is a current block and the first image block is a block in a neighborhood of the current block.

12. The method of claim 7 , wherein the first image block and the second image block are transform blocks.

13. 1. A deblocking filter apparatus for deblocking a block edge between a first image block and a second image block, comprising: a memory for storing instructions; and a processor in communication with the memory; and when executing the instructions, the processor: If the first image block includes sub-blocks, N is an even number greater than 16. n determining a maximum filter length MA' to be 5 under the condition that n is a positive integer, the first image block has a block size of M*N, and M and N represent the width and height of the first image block, respectively; If the second image block includes sub-blocks, T is an even number greater than 16. n determining a maximum filter length MB' to be 5 under the condition that M = 1, where the second image block has a block size of L*T, where L and T represent the width and height of the second image block, respectively; modifying values ​​of samples of the first image block based on the maximum filter length MA', the samples of the first image block being in a line perpendicular to the block edge and the samples of the first image block being adjacent to the block edge; and modifying values ​​of samples of the second image block based on the maximum filter length MB', the samples of the second image block being in a line perpendicular to the block edge and the samples of the second image block being adjacent to the block edge; A deblocking filter apparatus configured to:

14. 14. A deblocking filter apparatus as claimed in claim 13, wherein the maximum filter length MA' is associated with the first image block and the maximum filter length MB' is associated with the second image block.

15. 14. The deblocking filter apparatus of claim 13, wherein the second image block is a current block and the first image block is a block in a neighborhood of the current block.

16. 14. The deblocking filter apparatus of claim 13, wherein the first image block and the second image block are transform blocks.

17. 1. A deblocking method for deblocking a block edge between a first image block and a second image block by a coding device, the method comprising: If the first image block includes sub-blocks, N is an even number greater than 16. n determining a maximum filter length MA' to be 5 under the condition that n is a positive integer, the first image block has a block size of M*N, and M and N represent the width and height of the first image block, respectively; If the second image block includes sub-blocks, T is an even number greater than 16. n determining a maximum filter length MB' to be 5 under the condition that M = 1, where the second image block has a block size of L*T, where L and T represent the width and height of the second image block, respectively; modifying values ​​of samples of the first image block based on the maximum filter length MA', the samples of the first image block being in a line perpendicular to the block edge and the samples of the first image block being adjacent to the block edge; and modifying values ​​of samples of the second image block based on the maximum filter length MB', the samples of the second image block being in a line perpendicular to the block edge and the samples of the second image block being adjacent to the block edge; The method includes:

18. 1. A non-transitory computer-readable storage medium storing computer instructions that, when executed by one or more processors, cause the one or more processors to perform a process for deblocking a block edge between a first image block and a second image block in image encoding or image decoding, the process comprising: If the first image block includes sub-blocks, N is an even number greater than 16. n determining a maximum filter length MA' to be 5 under the condition that n is a positive integer, the first image block has a block size of M*N, and M and N represent the width and height of the first image block, respectively; If the second image block includes sub-blocks, T is an even number greater than 16. n determining a maximum filter length MB' to be 5 under the condition that M = 1, where the second image block has a block size of L*T, where L and T represent the width and height of the second image block, respectively; modifying values ​​of samples of the first image block based on the maximum filter length MA', the samples of the first image block being in a line perpendicular to the block edge and the samples of the first image block being adjacent to the block edge; and modifying values ​​of samples of the second image block based on the maximum filter length MB', the samples of the second image block being in a line perpendicular to the block edge and the samples of the second image block being adjacent to the block edge; A storage medium including

Citation Information

Patent Citations

  • A method for filter control and a filtering control device

    WO2012096614A2

  • Deblocking filtering control

    WO2012118421A1

  • Efficient rounding for deblocking

    WO2013064654A1