# US 11,909,978 B2 · Image processing device and method for performing efficient deblocking

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,909,978 B2
- Document ID: US11909978B2
- Status: Granted
- Kind: B2
- Application number: 17/586,116
- Filed: 2022-01-27
- Published: 2022-07-07
- Granted: 2024-02-20
- Earliest claimed: 2018-03-28
- Assignees: Huawei Technologies Co., Ltd.
- Applicants: Huawei Technologies Co., Ltd.
- Inventors: Anand Meher Kotra; Semih Esenlik; Zhijie Zhao; Han Gao
- Web page: https://patentgrep.com/patent/US11909978B2

## CPC

- H04N 19/132: Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
- H04N 19/117: Filters, e.g. for pre-processing or post-processing (sub-band filter banks H04N19/635)
- H04N 19/176: the region being a block, e.g. a macroblock
- H04N 19/42: characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation (H04N19/635 takes precedence)
- H04N 19/82: involving filtering within a prediction loop
- H04N 19/86: involving reduction of coding artifacts, e.g. of blockiness
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## 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

### Claim 1

An image processing device for use in an image encoder or an image decoder, for deblocking a block edge between a first coding block and a second coding block of an image, comprising:
at least one processor; and
one or more memories coupled to the at least one processor and storing programming instructions for execution by the at least one processor to cause the device to:
use values of no more than IA samples of the first coding block as first filter input values for calculating first filter output values or second filter output values, wherein the no more than IA samples are in a line perpendicular to the block edge and the no more than IA samples are adjacent to the block edge, and 0≤IA≤SA, and wherein the first coding block has a block size of SA samples perpendicular to the block edge by N samples parallel to the block edge;
use values of no more than Is samples of the second coding block as second filter input values, for calculating the first filter output values or the second filter output values, wherein the no more than IB samples are in a line perpendicular to the block edge and the no more than IB samples are adjacent to the block edge, and 0≤IB≤SB; wherein the second coding block has a block size of SB samples perpendicular to the block edge by N samples parallel to the block edge;
modify values of no more than MA samples of the first coding block as the first filter output values, wherein the no more than MA samples are in a line perpendicular to the block edge and the no more than MA samples are adjacent to the block edge, and 0≤MA<SA; and
modify values of no more than MB samples of the second coding block as the second filter output values, wherein the no more than MB samples are in a line perpendicular to the block edge and the no more than MB samples are adjacent to the block edge, and 0≤MB<SB,
wherein SA≠SB and IA≠IB and MA≠MB,
wherein when SA=8, the filter is further configured to set IA to SA/2, and MA to SA/2 or SA/2−1.

### Claim 2 (depends on 1)

The image processing device of claim 1, wherein the programming instructions for execution by the at least one processor to cause the device further to:
based upon values of no more than DA samples of the first coding block as first filter decision values, and values of no more than DB samples of the second coding block as second filter decision values, determine if the block edge is to be filtered or if a strong filtering or a weak filtering is to be performed,
wherein the no more than DA samples are in a line perpendicular to the block edge and the no more than DA samples are adjacent to the block edge, 0≤DA≤SA, and the no more than DB samples are in a line perpendicular to the block edge and the no more than DB samples are adjacent to the block edge, 0≤DB≤SB.

### Claim 3 (depends on 2)

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

### Claim 4 (depends on 1)

The image processing device of claim 1, wherein the programming instructions for execution by the at least one processor to cause the device further to set IA to 4, and MA to 3 or 4, when the block edge is a horizontal block edge, the block edge overlaps with a coding tree unit (CTU) block edge of the image, and the second coding block is a current block and the first coding block is a neighboring block of said current block.

### Claim 5 (depends on 1)

The image processing device of claim 1, wherein the programming instructions for execution by the at least one processor to cause the device further to determine the value of IA and MA based on SA, and values of IB and MB based on SB.

### Claim 6

A method for deblocking a block edge between a first coding block and a second coding block of an image in an image encoding or an image decoding process, and the method comprising:
using values of no more than IA samples of the first coding block as first filter input values for calculating first filter output values or second filter output values, wherein the no more than IA samples are in a line perpendicular to the block edge and the no more than IA samples are adjacent to the block edge, and 0≤IA≤SA, and wherein the first coding block has a block size of SA samples perpendicular to the block edge by N samples parallel to the block edge;
using values of no more than Is samples of the second coding block as second filter input values, for calculating the first filter output values or the second filter output values, wherein the no more than Is samples are in a line perpendicular to the block edge and the no more than Is samples are adjacent to the block edge, and 0≤IB≤SB; wherein the second coding block has a block size of SB samples perpendicular to the block edge by N samples parallel to the block edge;
modifying values of no more than MA samples of the first coding block as the first filter output values, wherein the no more than MA samples are in a line perpendicular to the block edge and the no more than MA samples are adjacent to the block edge, and 0≤MA<SA; and
modifying values of no more than MB samples of the second coding block as the second filter output values, wherein the no more than MB samples are in a line perpendicular to the block edge and the no more than MB samples are adjacent to the block edge, and 0≤MBSB,
wherein SA≠SB and IA≠IB and MA≠MB,
wherein when SA=8, IA is set to SA/2, and MA is set to SA/2 or SA/2−1.

### Claim 7 (depends on 6)

The method of claim 6, wherein the method further comprises:
based upon values of no more than DA samples of the first coding block as first filter decision values, and values of no more than DB samples of the second coding block as second filter decision values, determining if the block edge is to be filtered or if a strong filtering or a weak filtering is to be performed,
wherein the no more than DA samples are in a line perpendicular to the block edge and the no more than DA samples are adjacent to the block edge, 0≤DA≤SA, and the no more than DB samples are in a line perpendicular to the block edge and the no more than DB samples are adjacent to the block edge, 0≤DB≤SB.

### Claim 8 (depends on 7)

The method of claim 7, wherein the first filter input values are identical to the first filter decision values, and the second filter input values are identical to the second filter decision values.

### Claim 9 (depends on 6)

The method of claim 6, wherein IA is set to 4, and MA is set to 3 or 4, when the block edge is a horizontal block edge, the block edge overlaps with a coding tree unit (CTU) block edge of the image, and the second coding block is a current block and the first coding block is a neighboring block of said current block.

### Claim 10 (depends on 6)

The method of claim 6, wherein the method further comprises: determining the value of IA and MA based on SA, and values of IB and MB based on SB.

### Claim 11

A non-transitory computer-readable medium storing programming codes which, when executed by a computer device, cause the computer device to perform deblocking steps, in an image encoding or an image decoding process, for deblocking a block edge between a first coding block and a second coding block of an image, of:
using values of no more than IA samples of the first coding block as first filter input values for calculating first filter output values or second filter output values, wherein the no more than IA samples are in a line perpendicular to the block edge and the no more than IA samples are adjacent to the block edge, and 0≤IA≤SA, and wherein the first coding block has a block size of SA samples perpendicular to the block edge by N samples parallel to the block edge;
using values of no more than Is samples of the second coding block as second filter input values, for calculating the first filter output values or the second filter output values, wherein the no more than Is samples are in a line perpendicular to the block edge and the no more than Is samples are adjacent to the block edge, and 0≤IB≤SB; wherein the second coding block has a block size of SB samples perpendicular to the block edge by N samples parallel to the block edge;
modifying values of no more than MA samples of the first coding block as the first filter output values, wherein the no more than MA samples are in a line perpendicular to the block edge and the no more than MA samples are adjacent to the block edge, and 0≤MA<SA; and
modifying values of no more than MB samples of the second coding block as the second filter output values, wherein the no more than MB samples are in a line perpendicular to the block edge and the no more than MB samples are adjacent to the block edge, and 0≤MB<SB,
wherein SA≠SB and IA≠IB and MA≠MB,
wherein when SA=8, the programming codes which, when executed by the computer device, cause the computer device to set IA to SA/2, and MA to SA/2 or SA/2−1.

### Claim 12 (depends on 11)

The non-transitory computer-readable medium of claim 11, wherein the programming codes which, when executed by the computer device, cause the computer device further to:
based upon values of no more than DA samples of the first coding block as first filter decision values, and values of no more than DB samples of the second coding block as second filter decision values, determine if the block edge is to be filtered or if a strong filtering or a weak filtering is to be performed,
wherein the no more than DA samples are in a line perpendicular to the block edge and the no more than DA samples are adjacent to the block edge, 0≤DA≤SA, and the no more than DB samples are in a line perpendicular to the block edge and the no more than DB samples are adjacent to the block edge, 0≤DB≤SB.

### Claim 13 (depends on 12)

The non-transitory computer-readable medium of claim 12, wherein the first filter input values are identical to the first filter decision values, and the second filter input values are identical to the second filter decision values.

### Claim 14 (depends on 11)

The non-transitory computer-readable medium of claim 11, wherein the programming codes which, when executed by the computer device, cause the computer device further to: set IA to 4, and MA to 3 or 4, when the block edge is a horizontal block edge, the block edge overlaps with a coding tree unit (CTU) block edge of the image, and the second coding block is a current block and the first coding block is a neighboring block of said current block.

### Claim 15 (depends on 11)

The non-transitory computer-readable medium of claim 11, wherein the programming codes which, when executed by the computer device, cause the computer device further to determine the value of IA and MA based on SA, and values of IB and MB based on SB.
