# US 12,598,290 B2 · Systems and methods for inter prediction compensation

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

- Number: US 12,598,290 B2
- Document ID: US12598290B2
- Status: Granted
- Kind: B2
- Application number: 18/441,552
- Filed: 2024-02-14
- Published: 2024-06-06
- Granted: 2026-04-07
- Earliest claimed: 2021-02-21
- Assignees: Alibaba (China) Co., Ltd.
- Applicants: Alibaba (China) Co., Ltd.
- Inventors: Xinwei Li; Jie Chen; Ru-Ling Liao; Yan Ye
- Web page: https://patentgrep.com/patent/US12598290B2

## CPC

- H04N 19/105: Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
- 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/136: Incoming video signal characteristics or properties
- H04N 19/159: Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
- H04N 19/176: the region being a block, e.g. a macroblock
- H04N 19/51: Motion estimation or motion compensation
- H04N 19/593: involving spatial prediction techniques
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A video processing method includes: determining whether an inter predictor correction is enabled for a coding block; and when the inter predictor correction is enabled for the coding block, performing the inter predictor correction by: obtaining a plurality of predicted samples from a top boundary and a left boundary of a predicted block corresponding to the coding block; obtaining a plurality of reconstructed samples from top neighboring reconstructed samples and left neighboring reconstructed samples of the coding block; and deriving a corrected predicted block based on the plurality of the predicted samples, the plurality of the reconstructed samples and the predicted block.

## Claims

### Claim 1

A video processing method, comprising:
determining whether an inter predictor correction is enabled for a coding block; and
when the inter predictor correction is enabled for the coding block, performing the inter predictor correction by:
obtaining a plurality of predicted samples from a top boundary and a left boundary of a predicted block corresponding to the coding block, wherein the predicted samples are within the predicted block;
obtaining a plurality of reconstructed samples from top neighboring reconstructed samples and left neighboring reconstructed samples of the coding block; and
deriving a corrected predicted block based on the plurality of the predicted samples, the plurality of the reconstructed samples, and the predicted block,
wherein obtaining the plurality of the predicted samples and the plurality of the reconstructed samples comprises:
determining a first parameter based on a coding mode of the coding block;
determining a second parameter according to a width of the coding block and the first parameter;
determining a third parameter according to a height of the coding block and the first parameter; and
obtaining the plurality of the predicted samples and the plurality of the reconstructed samples based on the second parameter and the third parameter.

### Claim 2 (depends on 1)

The video processing method of claim 1, wherein deriving the corrected predicted block further comprises:
deriving one or more parameters for the inter predictor correction based on the plurality of the predicted samples and the plurality of the reconstructed samples; and
deriving the corrected predicted block based on the one or more parameters and the predicted block.

### Claim 3 (depends on 1)

The video processing method of claim 1, wherein the first parameter comprises a horizontal position parameter and a vertical position parameter, and obtaining the plurality of the predicted samples and the plurality of the reconstructed samples further comprises:
determining a plurality of horizontal positions based on the horizontal position parameter or determining a plurality of vertical positions based on the vertical position parameter;
obtaining the plurality of the predicted samples from the top boundary of the predicted block based on the plurality of the horizontal positions or obtaining the plurality of the predicted samples from the left boundary of the predicted block based on the plurality of the vertical positions; and
obtaining the plurality of the reconstructed samples from the top neighboring reconstructed samples based on the plurality of the vertical positions or and obtaining the plurality of the reconstructed samples from the left neighboring reconstructed samples based on the plurality of the vertical positions.

### Claim 4 (depends on 3)

The video processing method of claim 3, wherein a value of the horizontal position parameter is equal to a value of the vertical position parameter.

### Claim 5 (depends on 3)

The video processing method of claim 3, wherein a value of the horizontal position parameter or a value of the vertical position parameter is equal to 4, 8 or 16.

### Claim 6 (depends on 5)

The video processing method of claim 5, further comprising:
if the coding mode of the coding block indicates the predicted block is derived on sub-block level, setting the value of the horizontal position parameter and the value of the vertical position parameter to be equal to 8; otherwise, setting the value of the horizontal position parameter and the value of the vertical position parameter to be equal to 16; or
if the coding mode of the coding block indicates the predicted block is derived on sub-block level, setting the value of the horizontal position parameter and the value of the vertical position parameter to be equal to 4; otherwise setting the value of the horizontal position parameter and the value of the vertical position parameter to be equal to 8.

### Claim 7 (depends on 3)

The video processing method of claim 3, wherein the second parameter comprises a clipped value of the horizontal position parameter, and the third parameter comprises a clipped value of the vertical position parameter, the video processing method further comprising:
if a width of the coding block is greater than a value of the horizontal position parameter, setting the clipped value of the horizontal position parameter to be equal to the value of the horizontal position parameter; otherwise, setting the clipped value of the horizontal position parameter to be equal to the width of the coding block;
if a height of the coding block is greater than a value of the vertical position parameter, setting the clipped value of the vertical position parameter to be equal to the value of the vertical position parameter; otherwise, setting the clipped value of the vertical position parameter to be equal to the height of the coding block.

### Claim 8 (depends on 1)

The video processing method of claim 1, further comprising:
determining a first difference value based on the plurality of the predicted samples and a second difference value based on the plurality of the reconstructed samples; and
deriving the corrected predicted block based on the first difference value and the second difference value.

### Claim 9 (depends on 8)

The video processing method of claim 8, further comprising:
if the first difference value or the second difference value is less than a threshold, setting each corrected predicted sample in the corrected predicted block to be equal to a first value; otherwise deriving the corrected predicted block as the predicted block.

### Claim 10 (depends on 9)

The video processing method of claim 9, wherein the threshold is dependent on a bit depth of a sample value.

### Claim 11 (depends on 10)

The video processing method of claim 10, wherein the threshold is 1<<(Bitdepth-8), wherein “Bitdepth” is the bit depth of the sample value and “<<” denotes a left bit shift operation.

### Claim 12 (depends on 8)

The video processing method of claim 8, further comprising:
sorting the plurality of the predicted samples and obtaining two smaller predicted samples and two greater predicted samples;
deriving a first minimum value as an average of the two smaller predicted samples and a second minimum value as an average of two reconstructed samples respectively corresponding to the two smaller predicted samples;
deriving a first maximum value as an average of the two greater predicted samples and a second maximum value as an average of two reconstructed samples respectively corresponding to the two greater predicted samples; and
determining the first difference value as a difference between the first maximum value and the first minimum value, and determining the second difference value as a difference between the second maximum value and the second minimum value.

### Claim 13 (depends on 12)

The video processing method of claim 12, further comprising:
if the first difference value or the second difference value is less than a threshold, setting each corrected predicted sample in the corrected predicted block to be equal to an averaged value of the second minimum value and the second maximum value; otherwise deriving the corrected predicted block as the predicted block.

### Claim 14

A method for signaling a bitstream, the method comprising:
receiving video data;
encoding the video data to generate a bitstream by:
encoding an enabling flag associated with the video data, the enabling flag indicating whether an inter predictor correction is enabled for a coding block for an inter prediction process; and
encoding an index associated with the inter predictor correction based on which the inter predictor correction is performed;
wherein the enabled inter predictor correction is performed by:
obtaining a plurality of predicted samples within a predicted block from a top boundary and a left boundary of the predicted block corresponding to the coding block;
obtaining a plurality of reconstructed samples from top neighboring reconstructed samples and left neighboring reconstructed samples of the coding block;
deriving one or more parameters for the inter predictor correction based on the plurality of the predicted samples and the plurality of the reconstructed samples; and
deriving a corrected predicted block based on the one or more parameters and the predicted block,
wherein obtaining the plurality of the predicted samples and the plurality of the reconstructed samples comprises:
determining a first parameter based on a coding mode of the coding block;
determining a second parameter according to a width of the coding block and the first parameter;
determining a third parameter according to a height of the coding block and the first parameter; and
obtaining the plurality of the predicted samples and the plurality of the reconstructed samples based on the second parameter and the third parameter; and
signaling the bitstream generated based on the encoding.

### Claim 15 (depends on 14)

The method of claim 14, wherein the first parameter comprises a horizontal position parameter and a vertical position parameter, and obtaining the plurality of predicted samples and the plurality of the reconstructed samples comprises:
determining a plurality of horizontal positions based on the horizontal position parameter or determining a plurality of vertical positions based on the vertical position parameter;
obtaining the plurality of the predicted samples from the top boundary of the predicted block based on the plurality of the horizontal positions or obtaining the plurality of the predicted samples from the left boundary of the predicted block based on the plurality of the vertical positions; and
obtaining the plurality of the reconstructed samples from the top neighboring reconstructed samples based on the plurality of the vertical positions or obtaining the plurality of the reconstructed samples from the left neighboring reconstructed samples based on the plurality of the vertical positions.

### Claim 16 (depends on 15)

The method of claim 15, wherein a value of the horizontal position parameter is equal to a value of the vertical position parameter.

### Claim 17 (depends on 15)

The method of claim 15, wherein a value of the horizontal position parameter and the vertical position parameter is equal to 8 or 16.

### Claim 18 (depends on 17)

The method of claim 17, wherein determining the horizontal position parameter and the vertical position parameter based on the coding mode of the coding block comprises:
if the coding mode of the coding block indicates the predicted block is derived on sub-block level, determining the value of the horizontal position parameter and the vertical position parameter is equal to 8; otherwise, determining the value of the horizontal position parameter and the vertical position parameter is equal to 16.

### Claim 19 (depends on 15)

The method of claim 15, wherein obtaining the plurality of the predicted samples and the plurality of the reconstructed samples comprises:
if a width of the coding block is greater than a value of the horizontal position parameter, determining a clipped value of the horizontal position parameter to the value of the horizontal position parameter; otherwise, determining the clipped value of the horizontal position parameter to the width of the coding block; and
if a height of the coding block is greater than a value of the vertical position parameter, determining a clipped value of the vertical position parameter to the value of the vertical position parameter; otherwise, determining the clipped value of the vertical position parameter to the height of the coding block; and
obtaining the plurality of the predicted samples and the plurality of the reconstructed samples based on the clipped value of the horizontal position parameter and the vertical position parameter.

### Claim 20

An apparatus, comprising:
a memory configured to store instructions; and
one or more processors configured to execute the instructions to cause the apparatus to:
determine whether an inter predictor correction is enabled for a coding block; and
when the inter predictor correction is enabled for the coding block, perform the inter predictor correction by:
obtaining a plurality of predicted samples within a predicted block from a top boundary and a left boundary of the predicted block corresponding to the coding block, wherein the predicted samples are within the predicted block;
obtaining a plurality of reconstructed samples from top neighboring reconstructed samples and left neighboring reconstructed samples of the coding block; and
deriving one or more parameters for the inter predictor correction based on the plurality of the predicted samples and the plurality of the reconstructed samples; and
deriving a corrected predicted block based on the one or more parameters and the predicted block,
wherein obtaining the plurality of the predicted samples and the plurality of the reconstructed samples comprises:
determining a first parameter based on a coding mode of the coding block;
determining a second parameter according to a width of the coding block and the first parameter;
determining a third parameter according to a height of the coding block and the first parameter; and
obtaining the plurality of the predicted samples and the plurality of the reconstructed samples based on the second parameter and the third parameter.
