IP Library › Granted Patent US 11,877,001
Granted Patent B2
US 11,877,001 · App. 16/155,744 · Granted Jan 16, 2024

Affine prediction in video coding

Inventors: Kai Zhang (San Diego, CA); Jianle Chen (San Diego, CA); Xin Zhao (Santa Clara, CA); Marta Karczewicz (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/52H04N19/109H04N19/147H04N19/174H04N19/176H04N19/184H04N19/54H04N19/70H04N19/96
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 11,877,001
App. No.
16/155,744
Granted
Jan 16, 2024
Kind
B2
Abstract

A device for video decoding can be configured to obtain, from a syntax structure in a bitstream comprising an encoded representation of the video data, a syntax element indicating whether 6-parameter affine prediction is enabled for blocks corresponding to the syntax structure, wherein the blocks corresponding to the syntax structure comprise a first block; based on the syntax element indicating that the 6-parameter affine prediction is enabled for the blocks corresponding to the syntax structure, use the 6-parameter affine prediction to generate a predictive block for the first block; and use the predictive block and residual data to reconstruct the first block.

Claims (63)

1. A method of decoding video data, the method comprising:

obtaining, from a syntax structure in a bitstream comprising an encoded representation of the video data, an instance of a first syntax element, wherein a first value for the first syntax element indicates that 6-parameter affine prediction is enabled for a plurality of blocks corresponding to the syntax structure and a second value for the first syntax element indicates that the 6-parameter affine prediction is disabled for the plurality of blocks corresponding to the syntax structure, wherein the plurality of blocks corresponding to the syntax structure comprise a first block and a second block;

in response to the instance of the first syntax element indicating that the 6-parameter affine prediction is enabled for the plurality of blocks corresponding to the syntax structure, obtaining from the bitstream, a first instance of a second syntax element, wherein the second syntax element indicates whether the first block is encoded with 4-parameter affine prediction or the 6-parameter affine prediction, wherein a value for the first instance of the second syntax element indicates that the first block is encoded with the 4-parameter affine prediction, wherein the second syntax element comprises a block-level syntax element separate from the syntax structure;

based on the instance of the first syntax element indicating that the 6-parameter affine prediction is enabled for the plurality of blocks corresponding to the syntax structure and based on the value for the first instance of the second syntax element indicating that the first block is encoded with the 4-parameter affine prediction, using the 4-parameter affine prediction without the 6-parameter affine prediction to generate a first predictive block for the first block, wherein using the 4-parameter affine prediction without the 6-parameter affine prediction to generate the first predictive block for the first block comprises using only two motion vectors and only two control points to determine the first predictive block;

using the first predictive block and first residual data to reconstruct the first block;

in response to the instance of the first syntax element indicating that the 6-parameter affine prediction is enabled for the plurality of blocks corresponding to the syntax structure, obtaining, from the bitstream, a second instance of the second syntax element indicating whether the second block is encoded with the 4-parameter affine prediction or the 6-parameter affine prediction, wherein a value for the second instance of the second syntax element indicates that the second block is encoded with the 6-parameter affine prediction;

based on the second instance of the second syntax element indicating that the second block is encoded with the 6-parameter affine prediction, using the 6-parameter affine prediction without the 4-parameter affine prediction to generate a second predictive block for the second block, wherein using the 6-parameter affine prediction without the 4-parameter affine prediction to generate the second predictive block for the second block comprises using three motion vectors and three control points to determine the second predictive block;

using the second predictive block and second residual data to reconstruct the second block; and

outputting decoded video data based on the reconstructed first block and the reconstructed second block.

2. The method of claim 1 , wherein the syntax structure comprises a sequence parameter set.

3. A method of encoding video data, the method comprising:

determining that 6-parameter affine prediction is enabled for a plurality of blocks corresponding to a syntax structure, wherein the plurality of blocks corresponding to the syntax structure comprise a first block and a second block;

using 4-parameter affine prediction to determine a first predictive block for the first block, wherein using the 4-parameter affine prediction to generate the first predictive block for the first block comprises using only two motion vectors and only two control points to determine the first predictive block;

using the first predictive block to determine residual data for the first block;

using the 6-parameter affine prediction to determine a second predictive block for the second block, wherein using the 6-parameter affine prediction to generate the second predictive block for the second block comprises using only three motion vectors and only three control points to determine the second predictive block;

using the second predictive block to determine residual data for the second block;

including, in a bitstream, the residual data for the first block, the residual data for the second block, and a syntax structure comprising an instance of a first syntax element set to a first value indicating that the 6-parameter affine prediction is enabled for the plurality of blocks corresponding to the syntax structure, wherein a second value for the first syntax element indicates that the 6-parameter affine prediction is disabled for the plurality of blocks corresponding to the syntax structure; and

in response to the 6-parameter affine prediction being enabled for the plurality of blocks corresponding to the syntax structure, including in the bitstream a first instance of a second syntax element indicating whether the first block is encoded with the 4-parameter affine prediction or the 6-parameter affine prediction, wherein a value for the first instance of the second syntax element indicates that the first block is encoded with the 4-parameter affine prediction without the 6-parameter affine prediction, wherein the second syntax element comprises a block-level syntax element separate from the syntax structure;

in response to the 6-parameter affine prediction being enabled for the plurality of blocks corresponding to the syntax structure, including in the bitstream a second instance of the second syntax element indicating whether the second block is encoded with the 4-parameter affine prediction or the 6-parameter affine prediction, wherein a value for the second instance of the second syntax element indicates that the first block is encoded with the 6-parameter affine prediction without the 4-parameter affine prediction.

4. The method of claim 3 , wherein the syntax structure comprises a sequence parameter set.

5. A device for decoding video data, the device comprising:

a memory configured to store video data; and

one or more processors coupled to the memory, implemented in processing circuitry, and configured to:

obtain, from a syntax structure in a bitstream comprising an encoded representation of the video data, an instance of a first syntax element, wherein a first value for the first syntax element indicates that 6-parameter affine prediction is enabled for a plurality of blocks corresponding to the syntax structure and a second value for the first syntax element indicates that the 6-parameter affine prediction is disabled for the plurality of blocks corresponding to the syntax structure, wherein the plurality of blocks corresponding to the syntax structure comprise a first block and a second block;

in response to the instance of the first syntax element indicating that the 6-parameter affine prediction is enabled for the plurality of blocks corresponding to the syntax structure, obtain from the bitstream, a first instance of a second syntax element, wherein the second syntax element indicates whether the first block is encoded with 4-parameter affine prediction or the 6-parameter affine prediction, wherein a value for the first instance of the second syntax element indicates that the first block is encoded with the 4-parameter affine prediction, wherein the second syntax element comprises a block-level syntax element separate from the syntax structure;

based on the instance of the first syntax element indicating that the 6-parameter affine prediction is enabled for the plurality of blocks corresponding to the syntax structure and based on the value for the first instance of the second syntax element indicating that the first block is encoded with the 4-parameter affine prediction, use the 4-parameter affine prediction without the 6-parameter affine prediction to generate a first predictive block for the first block, wherein to use the 4-parameter affine prediction without the 6-parameter affine prediction to generate the first predictive block for the first block, the one or more processors are further configured to use only two motion vectors and only two control points to determine the first predictive block; and

use the first predictive block and first residual data to reconstruct the first block;

in response to the instance of the first syntax element indicating that the 6-parameter affine prediction is enabled for the plurality of blocks corresponding to the syntax structure, obtain, from the bitstream, a second instance of the second syntax element indicating whether the second block is encoded with the 4-parameter affine prediction or the 6-parameter affine prediction, wherein a value for the second instance of the second syntax element indicates that the second block is encoded with the 6-parameter affine prediction;

based on the second instance of the second syntax element indicating that the second block is encoded with the 6-parameter affine prediction, use the 6-parameter affine prediction without the 4-parameter affine prediction to generate a second predictive block for the second block, wherein using the 6-parameter affine prediction without the 4-parameter affine prediction to generate the second predictive block for the second block comprises using three motion vectors and three control points to determine the second predictive block;

use the second predictive block and second residual data to reconstruct the second block; and

output decoded video data based on the reconstructed first block and the reconstructed second block.

6. The device of claim 5 , wherein the syntax structure comprises a sequence parameter set.

7. A device for encoding video data, the device comprising:

a memory configured to store video data; and

one or more processors coupled to the memory, implemented in processing circuitry, and configured to:

determine that 6-parameter affine prediction is enabled for a plurality of blocks corresponding to a syntax structure, wherein the plurality of blocks corresponding to the syntax structure comprise a first block and a second block;

use 4-parameter affine prediction to determine a first predictive block for the first block, wherein using the 4-parameter affine prediction to generate the first predictive block for the first block comprises using only two motion vectors and only two control points to determine the first predictive block;

use the first predictive block to determine residual data for the first block;

use the 6-parameter affine prediction to determine a second predictive block for the second block, wherein using the 6-parameter affine prediction to generate the second predictive block for the second block comprises using only three motion vectors and only three control points to determine the second predictive block;

use the second predictive block to determine residual data for the second block;

include, in a bitstream, the residual data for the first block, the residual data for the second block, and a syntax structure comprising an instance of a first syntax element set to a first value indicating that the 6-parameter affine prediction is enabled for the plurality of blocks corresponding to the syntax structure, wherein a second value for the first syntax element indicates that the 6-parameter affine prediction is disabled for the plurality of blocks corresponding to the syntax structure;

in response to the 6-parameter affine prediction being enabled for the plurality of blocks corresponding to the syntax structure, include in the bitstream a first instance of a second syntax element indicating whether the first block is encoded with the 4-parameter affine prediction or the 6-parameter affine prediction, wherein a value for the first instance of the second syntax element indicates that the first block is encoded with the 4-parameter affine prediction without the 6-parameter affine prediction, wherein the second syntax element comprises a block-level syntax element separate from the syntax structure;

in response to the 6-parameter affine prediction being enabled for the plurality of blocks corresponding to the syntax structure, including in the bitstream a second instance of the second syntax element indicating whether the second block is encoded with the 4-parameter affine prediction or the 6-parameter affine prediction, wherein a value for the second instance of the second syntax element indicates that the first block is encoded with the 6-parameter affine prediction without the 4-parameter affine prediction.

8. The device of claim 7 , wherein the syntax structure comprises a sequence parameter set.

9. The device of claim 7 , wherein the syntax structure comprises the second syntax element.

10. A non-transitory computer-readable storage medium storing instructions that when executed by one or more processors cause the one or more processors to:

obtain, from a syntax structure in a bitstream comprising an encoded representation of video data, an instance of a first syntax element, wherein a first value for the first syntax element indicates that 6-parameter affine prediction is enabled for a plurality of blocks corresponding to the syntax structure and a second value for the first syntax element indicates that the 6-parameter affine prediction is disabled for the plurality of blocks corresponding to the syntax structure, wherein the plurality of blocks corresponding to the syntax structure comprise a first block and a second block;

in response to the instance of the first syntax element indicating that the 6-parameter affine prediction is enabled for the plurality of blocks corresponding to the syntax structure, obtain from the bitstream, a first instance of a second syntax element, wherein the second syntax element indicates whether the first block is encoded with 4-parameter affine prediction or the 6-parameter affine prediction, wherein a value for the first instance of the second syntax element indicates that the first block is encoded with the 4-parameter affine prediction, wherein the second syntax element comprises a block-level syntax element separate from the syntax structure;

based on the instance of the first syntax element indicating that the 6-parameter affine prediction is enabled for the plurality of blocks corresponding to the syntax structure and based on the value for the first instance of the second syntax element indicating that the first block is encoded with the 4-parameter affine prediction, use the 4-parameter affine prediction without the 6-parameter affine prediction to generate a first predictive block for the first block, wherein using the 4-parameter affine prediction without the 6-parameter affine prediction to generate the first predictive block for the first block comprises using only two motion vectors and only two control points to determine the first predictive block;

use the first predictive block and first residual data to reconstruct the first block;

in response to the instance of the first syntax element indicating that the 6-parameter affine prediction is enabled for the plurality of blocks corresponding to the syntax structure, obtain, from the bitstream, a second instance of the second syntax element indicating whether the second block is encoded with the 4-parameter affine prediction or the 6-parameter affine prediction, wherein a value for the second instance of the second syntax element indicates that the second block is encoded with the 6-parameter affine prediction;

based on the second instance of the second syntax element indicating that the second block is encoded with the 6-parameter affine prediction, use the 6-parameter affine prediction without the 4-parameter affine prediction to generate a second predictive block for the second block, wherein using the 6-parameter affine prediction without the 4-parameter affine prediction to generate the second predictive block for the second block comprises using three motion vectors and three control points to determine the second predictive block;

use the second predictive block and second residual data to reconstruct the second block; and

output decoded video data based on the reconstructed first block and the reconstructed second block.

11. An apparatus for decoding video data, the apparatus comprising:

means for obtaining, from a syntax structure in a bitstream comprising an encoded representation of the video data, an instance of a first syntax element, wherein a first value for the first syntax element indicates that 6-parameter affine prediction is enabled for a plurality of blocks corresponding to the syntax structure and a second value for the first syntax element indicates that the 6-parameter affine prediction is disabled for the plurality of blocks corresponding to the syntax structure, wherein the plurality of blocks corresponding to the syntax structure comprise a first block and a second block;

means for obtaining from the bitstream, in response to the instance of the first syntax element indicating that the 6-parameter affine prediction is enabled for the plurality of blocks corresponding to the syntax structure, a first instance of a second syntax element, wherein the second syntax element indicates whether the first block is encoded with 4-parameter affine prediction or the 6-parameter affine prediction, wherein a value for the first instance of the second syntax element indicates that the first block is encoded with the 4-parameter affine prediction, wherein the second syntax element comprises a block-level syntax element separate from the syntax structure;

means for using the 4-parameter affine prediction without the 6-parameter affine prediction to generate a first predictive block for the first block based on the instance of the first syntax element indicating that the 6-parameter affine prediction is enabled for the plurality of blocks corresponding to the syntax structure and based on the value for the first instance of the second syntax element indicating that the first block is encoded with the 4-parameter affine prediction, wherein the means for using the 4-parameter affine prediction without the 6-parameter affine prediction to generate the first predictive block for the first block comprises means for using only two motion vectors and only two control points to determine the first predictive block;

means for using the first predictive block and first residual data to reconstruct the first block;

means for obtaining, from the bitstream in response to the instance of the first syntax element indicating that the 6-parameter affine prediction is enabled for the plurality of blocks corresponding to the syntax structure, a second instance of the second syntax element indicating whether the second block is encoded with the 4-parameter affine prediction or the 6-parameter affine prediction, wherein a value for the second instance of the second syntax element indicates that the second block is encoded with the 6-parameter affine prediction;

means for using the 6-parameter affine prediction without the 4-parameter affine prediction to generate a second predictive block for the second block based on the second instance of the second syntax element indicating that the second block is encoded with the 6-parameter affine prediction, wherein using the 6-parameter affine prediction without the 4-parameter affine prediction to generate the second predictive block for the second block comprises using three motion vectors and three control points to determine the second predictive block;

means for using the second predictive block and second residual data to reconstruct the second block; and

means for outputting decoded video data based on the reconstructed first block and the reconstructed second block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 4, 2019
From: ZHANG, KAI; CHEN, JIANLE; ZHAO, XIN; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 048492/0834 →
Continuity (2)
Provisional Application 62570417 · Oct 10, 2017
Related Publication 20190110064A1 · Apr 11, 2019
Cited By (1)
US 12,301,863