IP Library › Granted Patent US 12,495,146
Granted Patent B2
US 12,495,146 · App. 18/423,311 · Granted Dec 9, 2025

Image processing device and method for performing efficient deblocking

Inventors: Anand Meher Kotra (Munich, DE); Semih Esenlik (Munich, DE); Zhijie Zhao (Shenzhen, CN); Han Gao (Shenzhen, CN)
Assignee: Huawei Technologies Co., Ltd.
H04N19/132H04N19/117H04N19/176H04N19/82
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,495,146
App. No.
18/423,311
Granted
Dec 9, 2025
Kind
B2
Abstract

A deblocking filter of an image processing device is provided. The deblocking filter is used in an image coding process, for deblocking a block edge between a first coding block and a second coding block of an image. The first block has SA samples perpendicular to the block edge by N samples parallel to the block edge, and the second block has SB samples perpendicular to the block edge by N samples parallel to the block edge. No more than IA samples of the first coding block are used as first filter input values, and no more than IB samples of the second coding block are used as second filter input values. No more than MA samples of the first coding block are modified as first filter output values, and no more than MB samples of the second coding block are modified as second filter output values.

Claims (66)

1 . An image processing device for use in an image encoder and/or an image decoder, for deblocking a horizontal block edge between a first coding block and a second coding block of an image, the image including a plurality of coding tree units (CTUs) arranged in a matrix of CTUs, the matrix including multiple rows of CTUs and multiple columns of CTUs, wherein the image processing device comprises:

one or more memories; and

at least one processor coupled to the one or more memories;

wherein the at least one processor is configured to process the plurality of CTUs starting from a top-left CTU and ending at a bottom-right CTU of the matrix, wherein each row of CTUs is processed sequentially one after another and within each row of CTUs the CTUs are processed sequentially from the leftmost CTU of that row to the rightmost CTU of that row;

wherein the first coding block is a lowermost coding block of a first CTU among the plurality of CTUs, the first coding block having a block size of SA samples perpendicular to the horizontal block edge by N samples parallel to the horizontal block edge, wherein N=8;

wherein the second coding block is an uppermost coding block of a second CTU among the plurality of CTUs, the second coding block having a block size of S B samples perpendicular to the horizontal block edge by N samples parallel to the horizontal block edge, wherein N=8;

wherein a row of CTUs of the matrix in which the second CTU is located is a row following consecutively a row in which the first CTU is located;

wherein the horizontal block edge overlaps with a CTU block edge between the first CTU and the second CTU among the plurality of CTUs;

wherein the at least one processor is further configured to:

modify values of at most M A samples of the first coding block as first filter output values, wherein the at most M A samples are in a line perpendicular to and adjacent to the horizontal block edge;

modify values of at most M B samples of the second coding block as second filter output values, wherein the at most M B samples are in a line perpendicular to and adjacent to the horizontal block edge;

use values of at most I A samples of the first coding block as first filter input values, for calculating the first filter output values and/or the second filter output values, wherein the at most I A samples are in a line perpendicular to and adjacent to the horizontal block edge; and

use values of at most IB samples of the second coding block as second filter input values, for calculating the first filter output values and/or the second filter output values, wherein the at most IB samples are in a line perpendicular to and adjacent to the horizontal block edge;

wherein I A ≠I B , M A ≠M B , S A ≠S B , I A =4, and M A =3.

2 . The image processing device of claim 1 , wherein the at least one processor is further configured to:

determine if the horizontal block edge is to be filtered and/or if a strong filtering or a weak filtering is to be performed, based upon:

values of at most D A samples of the first coding block as first filter decision values, wherein the D A samples are in a line perpendicular to and adjacent to the horizontal block edge, and

values of at most D B samples of the second coding block as second filter decision values, wherein the D B samples are in a line perpendicular to and adjacent to the horizontal block edge.

3 . The image processing device of claim 2 , wherein the first filter input values are identical to the first filter decision values, and wherein the second filter input values are identical to the second filter decision values.

4 . The image processing device of claim 1 , wherein a further block edge is located between a third coding block and a fourth coding block of the image, wherein the third coding block has a block size of S A ′ samples perpendicular to the further block edge by N samples parallel to the further block edge, wherein the fourth coding block has a block size of S B ′ samples perpendicular to the further block edge by N samples parallel to the further block edge; and

wherein the at least one processor is further configured to:

modify values of at most M A ′ samples of the third coding block as first filter output values, wherein the at most M A ′ samples are in a line perpendicular to and adjacent to the further block edge;

modify values of at most M B ′ samples of the fourth coding block as second filter output values, wherein the at most M B ′ samples are in a line perpendicular to and adjacent to the further block edge;

use values of at most I A ′ samples of the third coding block as first filter input values, for calculating the first filter output values or the second filter output values, wherein the at most I A ′ samples are in a line perpendicular to and adjacent to the further block edge; and

use values of at most I B ′ samples of the fourth coding block as second filter input values, for calculating the first filter output values or the second filter output values, wherein the at most I B ′ samples are in a line perpendicular to and adjacent to the further block edge;

wherein I A ′=I B ′ and M A ′=M B ′.

5 . The image processing device of claim 4 , wherein S A ′=S B ′=4.

6 . The image processing device of claim 5 , wherein the at least one processor is further configured to set M A ′ to 1 and M B ′ to 1 based on the block size of the fourth coding block and the third coding block being four.

7 . A deblocking method, implemented by an image processing device, for deblocking a horizontal block edge between a first coding block and a second coding block of an image, the image including a plurality of coding tree units (CTUs) arranged in a matrix of CTUs, the matrix including multiple rows of CTUs and multiple columns of CTUs,

wherein the plurality of CTUs are processed by the image processing device starting from a top-left CTU and ending at a bottom-right CTU of the matrix, wherein each row of CTUs is processed sequentially one after another and within each row of CTUs the CTUs are processed sequentially from the leftmost CTU of that row to the rightmost CTU of that row,

wherein the first coding block is a lowermost coding block of a first CTU among the plurality of CTUs, the first coding block having a block size of S A samples perpendicular to the horizontal block edge by N samples parallel to the horizontal block edge, wherein N=8,

wherein the second coding block is an uppermost coding block of a second CTU among the plurality of CTUs, the second coding block having a block size of SB samples perpendicular to the horizontal block edge by N samples parallel to the horizontal block edge, wherein N=8, wherein a row of CTUs of the matrix in which the second CTU is located is a row following consecutively a row in which the first CTU is located,

wherein the horizontal block edge overlaps with a CTU block edge between the first CTU and the second CTU among the plurality of CTUS,

wherein the deblocking method comprises:

modifying values of at most M A samples of the first coding block as first filter output values, wherein the at most M A samples are in a line perpendicular to and adjacent to the horizontal block edge;

modifying values of at most M B samples of the second coding block as second filter output values, wherein the at most M B samples are in a line perpendicular to and adjacent to the horizontal block edge;

using values of at most I A samples of the first coding block as first filter input values, for calculating the first filter output values and/or the second filter output values, wherein the at most I A samples are in a line perpendicular to and adjacent to the horizontal block edge; and

using values of at most I B samples of the second coding block as second filter input values, for calculating the first filter output values and/or the second filter output values, wherein the at most I B samples are in a line perpendicular to and adjacent to the horizontal block edge;

wherein I A ≠I B , M A ≠M B , S A ≠S B , I A =4, and M A =3.

8 . The method of claim 7 , wherein a block edge is located between a third coding block and a fourth coding block of the image, wherein the third coding block has a block size of S A ′ samples perpendicular to the block edge by N samples parallel to the block edge, wherein the fourth coding block has a block size of S B ′ samples perpendicular to the block edge by N samples parallel to the block edge; and

wherein the method further comprises:

modifying values of at most M A ′ samples of the third coding block as first filter output values, wherein the at most M A ′ samples are in a line perpendicular to and adjacent to the block edge;

modifying values of at most M B ′ samples of the fourth coding block as second filter output values, wherein the at most M B ′ samples are in a line perpendicular to and adjacent to the block edge;

using values of at most I A ′ samples of the third coding block as first filter input values, for calculating the first filter output values or the second filter output values, wherein the at most I A ′ samples are in a line perpendicular to and adjacent to the block edge; and

using values of at most I B ′ samples of the fourth coding block as second filter input values, for calculating the first filter output values or the second filter output values, wherein the at most I B ′ samples are in a line perpendicular to and adjacent to the block edge;

wherein S A =S B , I A ′=I B ′ and M A ′=M B ′.

9 . The method of claim 8 , wherein M A ′ is set to 1 and M B ′ is set to 1 based on the block size of the fourth coding block and the third coding block being four.

10 . A non-transitory computer-readable medium storing programming codes which, when executed by at least one processor of a computer device, cause the computer device to perform deblocking steps, in an image encoding or an image decoding process, for deblocking a horizontal block edge between a first coding block and a second coding block of an image, the image including a plurality of coding tree units (CTUs), arranged in a matrix of CTUs, the matrix including multiple rows of CTUs and multiple columns of CTUS,

wherein the plurality of CTUs are processed by the computer device starting from a top-left CTU and ending at a bottom-right CTU of the matrix, wherein each row of CTUs is processed sequentially one after another and within each row of CTUs the CTUs are processed sequentially from the leftmost CTU of that row to the rightmost CTU of that row,

wherein the first coding block is a lowermost coding block of a first CTU among the plurality of CTUs, the first coding block having a block size of S A samples perpendicular to the horizontal block edge by N samples parallel to the horizontal block edge, wherein N=8,

wherein the second coding block is an uppermost coding block of a second CTU among the plurality of CTUs, the second coding block having a block size of S B samples perpendicular to the horizontal block edge by N samples parallel to the horizontal block edge, wherein N=8, wherein a row of CTUs of the matrix in which the second CTU is located is a row following consecutively a row in which the first CTU is located,

wherein the horizontal block edge overlaps with a CTU block edge between the first CTU and the second CTU among the plurality of CTUS,

wherein the deblocking steps comprise:

modifying values of at most M A samples of the first coding block as first filter output values, wherein the at most M A samples are in a line perpendicular to and adjacent to the horizontal block edge;

modifying values of at most M B samples of the second coding block as second filter output values, wherein the at most M B samples are in a line perpendicular to and adjacent to the horizontal block edge;

using values of at most I A samples of the first coding block as first filter input values, for calculating the first filter output values and/or the second filter output values, wherein the at most I A samples are in a line perpendicular to and adjacent to the horizontal block edge; and

using values of at most I B samples of the second coding block as second filter input values, for calculating the first filter output values and/or the second filter output values, wherein the at most I B samples are in a line perpendicular to and adjacent to the horizontal block edge:

wherein I A ≠I B , M A ≠M B , S A /S B , I A =4, and M A =3.

11 . The non-transitory computer-readable medium according to claim 10 , wherein a block edge is located between a third coding block and a fourth coding block of the image, wherein the third coding block has a block size of SA′ samples perpendicular to the block edge by N samples parallel to the block edge, wherein the fourth coding block has a block size of SB′ samples perpendicular to the block edge by N samples parallel to the block edge; and

wherein the deblocking steps further comprise:

modifying values of at most M A ′ samples of the third coding block as first filter output values, wherein the at most M A ′ samples are in a line perpendicular to and adjacent to the block edge;

modifying values of at most M B ′ samples of the fourth coding block as second filter output values, wherein the at most M B ′ samples are in a line perpendicular to and adjacent to the block edge;

using values of at most I A ′ samples of the third coding block as first filter input values, for calculating the first filter output values or the second filter output values, wherein the at most I A ′ samples are in a line perpendicular to and adjacent to the block edge; and

using values of at most I B ′ samples of the fourth coding block as second filter input values, for calculating the first filter output values or the second filter output values, wherein the at most I B ′ samples are in a line perpendicular to and adjacent to the block edge,

wherein S A =S B , I A ′=I B ′, and M A ′=M B ′.

12 . The non-transitory computer-readable medium according to claim 11 , wherein MA′ is set to 1 and MB′ is set to 1 based on the block size of the fourth coding block and the third coding block being four.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2025
From: KOTRA, ANAND MEHER; ESENLIK, SEMIH; ZHAO, ZHIJIE; GAO, HAN
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 072258/0405 →
Continuity (4)
Continuation 17586116 · Jan 27, 2022
Continuation 17033905 · Sep 27, 2020
Continuation PCTEP2018057855 · Mar 28, 2018
Related Publication 20240244214A1 · Jul 18, 2024
References Cited (29)
US 9363516B2 · Van Der Auwera et al. · 2016 [cited by applicant]
US 10455253B1 · Vitvitskyy et al. · 2019 [cited by applicant]
US 11290721B2 · Kotra · 2022 [cited by examiner]
US 11909978B2 · Kotra · 2024 [cited by examiner]
US 20130188744A1 · Van Der Auwera et al. · 2013 [cited by applicant]
US 20130294525A1 · Norkin · 2013 [cited by examiner]
US 20130329814A1 · Norkin et al. · 2013 [cited by applicant]
US 20150189314A1 · Alshina et al. · 2015 [cited by applicant]
US 20150249842A1 · Norkin · 2015 [cited by applicant]
US 20150365666A1 · Dong et al. · 2015 [cited by applicant]
CN 103220529A · 2013 [cited by applicant]
CN 103430537A · 2013 [cited by applicant]
CN 103718556A · 2014 [cited by applicant]
CN 105227958A · 2016 [cited by applicant]
JP 2013009242A · 2013 [cited by applicant]
RU 2586003C2 · 2016 [cited by applicant]
WO 2012035746A1 · 2012 [cited by applicant]
WO 2012096614A2 · 2012 [cited by applicant]
WO 2012118421A1 · 2012 [cited by applicant]
WO 2013104298A1 · 2013 [cited by applicant]
Seung-Hwan Kim et al., “Improvement of chroma deblocking filter”, Joint Video Exploration Team (JVET), of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,4th Meeting: Chengdu, CN, 15 Oct. 21, 2016,Document: JVET-D0108, t… [cited by applicant]
Video Codec for Audiovisual Services at p 64 kbit/s ITU-T Recommendation H.261, Version 1, ITU-T, ITU-T Recommendation H.261 Version 1, 1990. total 32 pages. [cited by applicant]
Andrey Norkin et al, “HEVC Deblocking Filter”, IEEE Transactions on Circuits and Systems for Video Technology, vol. 22, No. 12, Dec. 2012, pp. 1746-1754, XP011487156. [cited by applicant]
ITU-T H.262 (Feb. 2012), Series H: Audiovisual and Multimedia Systems, Infrastructure of audiovisual services—Coding of moving video Information technology—Generic coding of moving pictures and associated audio informat… [cited by applicant]
Andrey Norkin et al. Chapter 7 In-Loop Filters in HEVC, cited in “High Efficiency Video Coding (HEVC): Algorithms and Architectures”, 2014. pp. 171-206. [cited by applicant]
ITU-T H.263, Series H: Audiovisual and Multimedia Systems Infrastructure of audiovisual services Coding of moving video, Video coding for low bit rate communication, Jan. 2005, 226 pages. [cited by applicant]
Hyeongmoon Jang et al. Parallel deblocking filter for QTBT, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WVG 11, JVET-D0044, 4th Meeting: Chengdu, CN, Oct. 15-21, 2016, total 4 pages. [cited by applicant]
ITU-T H.265(Feb. 2018), Series H: Audiovisual and Multimedia Systems Infrastructure of audiovisual services—Coding of moving video, High efficiency video coding, Feb. 2018. total 692 pages. [cited by applicant]
ITU-T H.264 Telecommunication Standardization Sector of ITU (Apr. 2017), Series H: Audiovisual and Multimedia Systems, Infrastructure of audiovisual services—Coding of moving video, Advanced video coding for generic aud… [cited by applicant]