# US 2020/0288158 A1 · Prediction-domain filtering for video coding

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

- Number: US 2020/0288158 A1
- Document ID: US20200288158A1
- Status: Published application
- Kind: A1
- Application number: 16/809,206
- Filed: 2020-03-04
- Published: 2020-09-10
- Earliest claimed: 2019-03-05
- Assignees: QUALCOMM Incorporated
- Applicants: QUALCOMM Incorporated
- Inventors: Dmytro Rusanovskyy; Kevin Pascal Andre Reuze; Vadim Seregin; Marta Karczewicz; Nan Hu
- Web page: https://patentgrep.com/patent/US20200288158A1

## CPC

- H04N 19/44: Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
- H04N 19/117: Filters, e.g. for pre-processing or post-processing (sub-band filter banks H04N19/635)
- H04N 19/136: Incoming video signal characteristics or properties
- H04N 19/176: the region being a block, e.g. a macroblock
- H04N 19/48: using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data (motion estimation in a transform domain H04N19/547; processing of decoded motion vectors H04N19/513)
- H04N 19/50: using predictive coding (H04N19/61 takes precedence)
- H04N 19/70: characterised by syntax aspects related to video coding, e.g. related to compression standards
- H04N 19/82: involving filtering within a prediction loop
- H04N 19/583: Motion compensation with overlapping blocks
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A method of decoding video data includes generating, by a video decoder implemented in circuitry, prediction information for a current block and determining, by the video decoder, a filter index value based on a syntax element signaled for the video data. The method further includes determining, by the video decoder, based on one or more of a height of the current block or a width of the current block and based on the filter index value, a filter type and filtering, by the video decoder, the prediction information using a filter corresponding to the filter type to generate filtered prediction information.

## Claims

### Claim 1

A method of decoding video data, the method comprising:
generating, by a video decoder implemented in circuitry, prediction information for a current block;
determining, by the video decoder, a filter index value based on a syntax element signaled for the video data;
determining, by the video decoder, based on one or more of a height of the current block or a width of the current block and based on the filter index value, a filter type; and
filtering, by the video decoder, the prediction information using a filter corresponding to the filter type to generate filtered prediction information.

### Claim 2 (depends on 1)

The method of claim 1, comprising:
determining, by the video decoder, a block size parameter based on a multiplication of the height of the current block and the width of the current block, wherein determining the filter type comprises determining the filter type based on the block size parameter.

### Claim 3 (depends on 1)

The method of claim 1, comprising:
determining, by the video decoder, a block size parameter based on a ratio of the height of the current block and the width of the current block, wherein determining the filter type comprises determining the filter type based on the block size parameter.

### Claim 4 (depends on 1)

The method of claim 1, wherein determining the filter type comprises:
selecting a first filter type when the syntax element indicates the filter index value corresponds to a first value and when the width of the current block is equal to or less than a result of multiplying the height of the current block and a threshold; and
selecting a second filter type when the syntax element indicates the filter index value corresponds to the first value and when the width of the current block is greater than the result of multiplying the height of the current block and the threshold.

### Claim 5 (depends on 4)

The method of claim 4, wherein determining the filter type comprises:
selecting the second filter type when the syntax element indicates the filter index value corresponds to a second value different from the first value and when the width of the current block is equal to or less than the result of multiplying the height of the current block and the threshold.

### Claim 6 (depends on 1)

The method of claim 1, wherein determining the filter type comprises:
selecting a first filter type when the syntax element indicates the filter index value corresponds to a first value and when the height of the current block is equal to or less than a result of multiplying the width of the current block and a threshold; and
selecting a second filter type when the syntax element indicates the filter index value corresponds to the first value and when the height of the current block is greater than the result of multiplying the width of the current block and the threshold.

### Claim 7 (depends on 6)

The method of claim 6, wherein determining the filter type comprises:
selecting the second filter type when the syntax element indicates the filter index value corresponds to a second value different from the first value and when the height of the current block is equal to or less than the result of multiplying the width of the current block and the threshold.

### Claim 8 (depends on 1)

The method of claim 1, wherein determining the filter type comprises:
selecting a first filter type when the syntax element indicates the filter index value corresponds to a first value and when a result of multiplying the height of the current block and the width of the current block is equal to or less than a threshold; and
selecting a second filter type when the syntax element indicates the filter index value corresponds to the first value and when the result of multiplying the height of the current block and the width of the current block is greater than the threshold.

### Claim 9 (depends on 8)

The method of claim 8, wherein determining the filter type comprises:
selecting the second filter type when the syntax element indicates the filter index value corresponds to a second value different from the first value and when the result of multiplying the height of the current block and the width of the current block is equal to or less than the threshold.

### Claim 10 (depends on 1)

The method of claim 1, wherein the filter type specifies one or more of the following:
a strength of the filter;
a filter tap length of the filter;
a filter directionality of the filter;
a sub-sampling pattern of the filter;
a weight table, a weight derivation, or scale and offsets functions for the filter;
one or both of a thresholding or scaling function utilized in a Hadamard transform domain filtering for the filter; or
non-linear components.

### Claim 11 (depends on 1)

The method of claim 1, comprising:
generating, by the video decoder, a predicted block based on the filtered prediction information;
decoding, by the video decoder, a residual block for the current block from a bitstream for the video data; and
combining, by the video decoder, the predicted block and the residual block to decode the current block.

### Claim 12

A method of encoding video data, the method comprising:
generating, by a video encoder implemented in circuitry, prediction information for a current block;
filtering, by the video encoder, the prediction information using a filter corresponding to a filter type to generate filtered prediction information;
determining, by the video encoder, based on one or more of a height of the current block or a width of the current block and based on the filter type, a filter index value; and
encoding, by the video encoder, a syntax element based on the filter index value.

### Claim 13 (depends on 12)

The method of claim 12, comprising:
determining, by the video encoder, a block size parameter based on a multiplication of the height of the current block and the width of the current block, wherein determining the filter index value comprises determining the filter index value based on the block size parameter.

### Claim 14 (depends on 12)

The method of claim 12, comprising:
determining, by the video encoder, a block size parameter based on a ratio of the height of the current block and the width of the current block, wherein determining the filter index value comprises determining the filter index value based on the block size parameter.

### Claim 15 (depends on 12)

The method of claim 12, comprising:
generating, by the video encoder, a predicted block based on the filtered prediction information;
generating, by the video encoder, a residual block for the current block based on differences between the current block and the predicted block; and
encoding, by the video encoder, the residual block in the bitstream for the video data.

### Claim 16

A device for decoding video data, the device comprising:
a memory configured to store video data; and
one or more processors implemented in circuitry and configured to:
generate prediction information for a current block;
determine a filter index value based on a syntax element signaled for the video data;
determine, based on one or more of a height of the current block or a width of the current block and based on the filter index value, a filter type; and
filter the prediction information using a filter corresponding to the filter type to generate filtered prediction information.

### Claim 17 (depends on 16)

The device of claim 16, wherein the one or more processors are configured to determine a block size parameter based on a multiplication of the height of the current block and the width of the current block, wherein, to determine the filter type, the one or more processors are configured to determine the filter type based on the block size parameter.

### Claim 18 (depends on 16)

The device of claim 16, wherein the one or more processors are configured to determine a block size parameter based on a ratio of the height of the current block and the width of the current block, wherein, to determine the filter type, the one or more processors are configured to determine the filter type based on the block size parameter.

### Claim 19 (depends on 16)

The device of claim 16, wherein, to determine the filter type, the one or more processors are configured to:
select a first filter type when the syntax element indicates the filter index value corresponds to a first value and when the width of the current block is equal to or less than a result of multiplying the height of the current block and a threshold; and
select a second filter type when the syntax element indicates the filter index value corresponds to the first value and when the width of the current block is greater than the result of multiplying the height of the current block and the threshold.

### Claim 20 (depends on 16)

The device of claim 16, wherein, to determine the filter type, the one or more processors are configured to select the second filter type when the syntax element indicates the filter index value corresponds to a second value different from the first value and when the width of the current block is equal to or less than the result of multiplying the height of the current block and the threshold.

### Claim 21 (depends on 16)

The device of claim 16, wherein, to determine the filter type, the one or more processors are configured to:
select a first filter type when the syntax element indicates the filter index value corresponds to a first value and when the height of the current block is equal to or less than a result of multiplying the width of the current block and a threshold; and
select a second filter type when the syntax element indicates the filter index value corresponds to the first value and when the height of the current block is greater than the result of multiplying the width of the current block and the threshold.

### Claim 22 (depends on 21)

The device of claim 21, wherein, to determine the filter type, the one or more processors are configured to select the second filter type when the syntax element indicates the filter index value corresponds to a second value different from the first value and when the height of the current block is equal to or less than the result of multiplying the width of the current block and the threshold.

### Claim 23 (depends on 16)

The device of claim 16, wherein, to determine the filter type, the one or more processors are configured to:
select a first filter type when the syntax element indicates the filter index value corresponds to a first value and when a result of multiplying the height of the current block and the width of the current block is equal to or less than a threshold; and
select a second filter type when the syntax element indicates the filter index value corresponds to the first value and when the result of multiplying the height of the current block and the width of the current block is greater than the threshold.

### Claim 24 (depends on 23)

The device of claim 23, wherein, to determine the filter type, the one or more processors are configured to select the second filter type when the syntax element indicates the filter index value corresponds to a second value different from the first value and when the result of multiplying the height of the current block and the width of the current block is equal to or less than the threshold.

### Claim 25 (depends on 16)

The device of claim 16, wherein the filter type specifies one or more of the following:
a strength of the filter;
a filter tap length of the filter;
a filter directionality of the filter;
a sub-sampling pattern of the filter;
a weight table, a weight derivation, or scale and offsets functions for the filter;
one or both of a thresholding or scaling function utilized in a Hadamard transform domain filtering for the filter; or
non-linear components.

### Claim 26 (depends on 16)

The device of claim 16, wherein the one or more processors are configured to:
generate a predicted block based on the filtered prediction information;
decode a residual block for the current block from a bitstream for the video data; and
combine the predicted block and the residual block to decode the current block.

### Claim 27 (depends on 16)

The device of claim 16, wherein the device comprises one or more of a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box.

### Claim 28

A device for encoding video data, the device comprising:
a memory configured to store video data; and
one or more processors implemented in circuitry and configured to:
generate prediction information for a current block;
filter the prediction information using a filter corresponding to a filter type to generate filtered prediction information;
determine, based on one or more of a height of the current block or a width of the current block and based on the filter type, a filter index value; and
encode a syntax element based on the filter index value.

### Claim 29 (depends on 28)

The device of claim 28, wherein the one or more processors are configured to determine a block size parameter based on a multiplication of the height of the current block and the width of the current block, wherein, to determine the filter index value, the one or more processors are configured to determine the filter index value based on the block size parameter.

### Claim 30 (depends on 28)

The device of claim 28, wherein the one or more processors are configured to determine a block size parameter based on a ratio of the height of the current block and the width of the current block, wherein, to determine the filter index value, the one or more processors are configured to determine the filter index value based on the block size parameter.
