# US 11,310,519 B2 · Deblocking of subblock boundaries for affine motion compensated coding

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

- Number: US 11,310,519 B2
- Document ID: US11310519B2
- Status: Granted
- Kind: B2
- Application number: 17/022,700
- Filed: 2020-09-16
- Published: 2021-03-18
- Granted: 2022-04-19
- Earliest claimed: 2019-09-18
- Assignees: QUALCOMM Incorporated
- Applicants: QUALCOMM Incorporated
- Inventors: Bappaditya Ray; Han Huang; Geert Van der Auwera; Marta Karczewicz
- Web page: https://patentgrep.com/patent/US11310519B2

## CPC

- H04N 19/51: Motion estimation or motion compensation
- H04N 19/117: Filters, e.g. for pre-processing or post-processing (sub-band filter banks H04N19/635)
- H04N 19/139: Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
- H04N 19/157: Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N 19/176: the region being a block, e.g. a macroblock
- H04N 19/46: Embedding additional information in the video signal during the compression process (H04N19/517, H04N19/68, H04N19/70 take precedence)
- H04N 19/86: involving reduction of coding artifacts, e.g. of blockiness
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

An example device for decoding video data includes memory configured to store the video data and one or more processors implemented in circuitry and communicatively coupled to the memory. The one or more processors are configured to determine whether a coding mode for a current block of the video data is an affine mode. The one or more processors are also configured to determine whether pattern refined optical flow (PROF) is enabled in the sequence parameter set (SPS) for the current block. Based at least in part on the coding mode for the current block being the affine mode and PROF being enabled in the SPS for the current block, the one or more processors are configured to disable a deblocking filter for subblock boundaries of the current block and decode the current block with the deblocking filter disabled for the subblock boundaries of the current block.

## Claims

### Claim 1

A device for decoding video data, the device comprising:
memory configured to store the video data; and
one or more processors implemented in circuitry and communicatively coupled to the memory, the one or more processors being configured to:
determine whether a coding mode for a first block of the video data is an affine mode;
determine whether pattern refined optical flow (PROF) is enabled in a sequence parameter set (SPS) for the first block;
determine whether the first block is bi-predicted;
based at least in part on the coding mode for the first block being the affine mode, the first block being bi-predicted, and PROF being enabled in the SPS for the first block, disable a deblocking filter for subblock boundaries of the first block; and
decode the first block with the deblocking filter disabled for the subblock boundaries of the first block.

### Claim 2 (depends on 1)

The device of claim 1, wherein the one or more processors are further configured to:
determine whether a coding mode for a second block of the video data is the affine mode;
determine whether the second block is uni-predicted;
determine whether PROF is enabled for a direction of uni-prediction for the second block;
based at least in part on the coding mode for the second block being the affine mode, the second block being uni-predicted, and PROF being enabled for the direction of uni-prediction, disable a deblocking filter for subblock boundaries of the second block; and
decode the second block with the deblocking filter disabled for the subblock boundaries of the second block.

### Claim 3 (depends on 1)

The device of claim 1, wherein the one or more processors are further configured to:
determine whether PROF is enabled for both bi-prediction directions for the first block,
wherein the one or more processors disable the deblocking filter further based on the first block being bi-predicted and PROF being enabled for both bi-prediction directions for the first block.

### Claim 4 (depends on 3)

The device of claim 3, wherein the one or more processors are further configured to:
determine whether a second block is bi-predicted; and
determine whether PROF is enabled for only one bi-prediction direction for the second block;
based on the second block being bi-predicted and PROF being enabled for only one bi-prediction direction for the second block, determine a boundary strength using the motion vector information of a bi-prediction direction for which PROF is disabled; and
deblock the second block based on the determined boundary strength.

### Claim 5 (depends on 4)

The device of claim 4, wherein the one or more processors determine the boundary strength by determining if a sum of motion vector differences is greater or equal to a threshold.

### Claim 6 (depends on 4)

The device of claim 4, wherein the one or more processors determine the boundary strength by determining if a sum of motion vector differences is greater or equal to a threshold multiplied by a scaling factor.

### Claim 7 (depends on 1)

The device of claim 1, wherein the one or more processors are further configured to:
determine whether motion vector differences of control points of the first block are less than a predetermined threshold,
wherein the one or more processors disable the deblocking filter further based on the motion vector differences of the control points being less than the predetermined threshold.

### Claim 8 (depends on 7)

The device of claim 7, wherein the predetermined threshold is based on one or more of block size, quantization parameter (QP), temporal id, prediction type or prediction direction.

### Claim 9 (depends on 1)

The device of claim 1, wherein the one or more processors are further configured to:
determine whether motion vector differences of a first and last subblock of the first block in a direction are less than a predetermined threshold,
wherein the one or more processors disable the deblocking filter further based on the motion vector differences of the first and last subblock of the first block in the direction being less than the predetermined threshold.

### Claim 10 (depends on 9)

The device of claim 9, wherein the direction is horizontal or vertical and the predetermined threshold is based on one or more of block size, QP, temporal id, prediction type or prediction direction.

### Claim 11

A method of decoding video data, the method comprising:
determining whether a coding mode for a first block of the video data is an affine mode;
determining whether pattern refined optical flow (PROF) is enabled in a sequence parameter set (SPS) for the first block;
determining whether the first block is bi-predicted;
based at least in part on the coding mode for the first block being the affine mode, the first block being bi-predicted, and PROF being enabled in the SPS for the first block, disabling a deblocking filter for subblock boundaries of the first block; and
decoding the first block with the deblocking filter disabled for the subblock boundaries of the first block.

### Claim 12 (depends on 11)

The method of claim 11, further comprising:
determining whether a coding mode for a second block of the video data is the affine mode:
determining whether the second block is uni-predicted;
determining whether PROF is enabled for a direction of uni-prediction for the second block;
based at least in part on the coding mode for the second block being the affine mode, the second block being uni-predicted, and PROF being enabled in for the direction of uni-prediction, disabling a deblocking filter for subblock boundaries of the second block; and
decoding the second block with the deblocking filter disabled for the subblock boundaries of the second block.

### Claim 13 (depends on 11)

The method of claim 11, further comprising:
determining whether PROF is enabled for both bi-prediction directions for the first block,
wherein disabling the deblocking filter is further based on the first block being bi-predicted and PROF being enabled for both bi-prediction directions for the first block.

### Claim 14 (depends on 13)

The method of claim 13, further comprising:
determining whether a second block is bi-predicted;
determining whether PROF is enabled for only one bi-prediction direction for the second block;
based on the second block being bi-predicted and PROF being enabled for only one bi-prediction direction for the second block, determining a boundary strength using motion vector information of a bi-prediction direction for which PROF is disabled; and
deblocking the second block based on the determined boundary strength.

### Claim 15 (depends on 14)

The method of claim 14, wherein determining the boundary strength comprises determining if a sum of motion vector differences is greater or equal to a threshold.

### Claim 16 (depends on 14)

The method of claim 14, wherein determining the boundary strength comprises determining if a sum of motion vector differences is greater or equal to a threshold multiplied by a scaling factor.

### Claim 17 (depends on 11)

The method of claim 11, further comprising:
determining whether motion vector differences of control points of the first block are less than a predetermined threshold,
wherein disabling the deblocking filter is further based the motion vector differences of the control points being less than the predetermined threshold.

### Claim 18 (depends on 17)

The method of claim 17, wherein the predetermined threshold is based on one or more of block size, quantization parameter (QP), temporal id, prediction type or prediction direction.

### Claim 19 (depends on 11)

The method of claim 11, further comprising:
determining whether motion vector differences of a first and last subblock of the first block in a direction are less than a predetermined threshold,
wherein disabling the deblocking filter is further based on the motion vector differences of the first and last subblock of the first block in the direction being less than the predetermined threshold.

### Claim 20 (depends on 19)

The method of claim 19, wherein the direction is horizontal or vertical and the predetermined threshold is based on one or more of block size, QP, temporal id, prediction type or prediction direction.

### Claim 21

A device for encoding video data, the device comprising:
memory configured to store the video data; and
one or more processors implemented in circuitry and communicatively coupled to the memory, the one or more processors being configured to:
determine whether a coding mode for a first block of the video data is an affine mode;
signal that pattern refined optical flow (PROF) is enabled in a sequence parameter set (SPS) for the first block;
determine whether the first block is bi-predicted;
based at least in part on the coding mode for the first block being the affine mode, the first block being bi-predicted, and PROF being enabled for the first block, disable a deblocking filter for subblock boundaries of the first block; and
encode the first block with the deblocking filter disabled for the subblock boundaries of the first block.

### Claim 22 (depends on 21)

The device of claim 21, wherein the one or more processors are further configured to:
determine whether a coding mode for a second block of the video data is the affine mode;
determine whether the second block is uni-predicted;
signal that PROF is enabled for a direction of uni-prediction for the second block;
based at least in part on the coding mode for the second block being the affine mode, the second block being uni-predicted, and PROF being enabled in for the direction of uni-prediction, disable a deblocking filter for subblock boundaries of the second block; and
encode the second block with the deblocking filter disabled for the subblock boundaries of the second block.

### Claim 23

A non-transitory computer-readable storage medium storing instructions that, when executed, cause one or more processors to:
determine whether a coding mode for a first block of video data is an affine mode;
determine whether pattern refined optical flow (PROF) is enabled in a sequence parameter set (SPS) for the first block;
determine whether the first block is bi-predicted;
based at least in part on the coding mode for the first block being the affine mode, the first block being bi-predicted, and PROF being enabled in the SPS for the first block, disable a deblocking filter for subblock boundaries of the first block; and
decode first block with the deblocking filter disabled for the subblock boundaries of the first block.
