IP Library Granted Patent US 11,451,816
Granted Patent B2
US 11,451,816 · App. 16/392,040 · Granted Sep 20, 2022

Storage of motion vectors for affine prediction

Inventors: Zhi-Yi Lin (Hsinchu, TW); Tzu-Der Chuang (Hsinchu, TW); Ching-Yeh Chen (Hsinchu, TW); Man-Shu Chiang (Hsinchu, TW); Chih-Wei Hsu (Hsinchu, TW)
H04N19/513H04N19/176
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,451,816
App. No.
16/392,040
Granted
Sep 20, 2022
Kind
B2
Abstract

A video coder implementing affine prediction is provided. The video coder receives input data associated with a current block to be coded. The video coder derives a control point motion vector (CPMV) of the current block according to an affine model. The video coder derives a set of motion compensation motion vectors (MCMVs) for a set of sub-blocks of the current block based on the derived CPMV of the current block according to the affine model. The video coder performs motion compensation for the current block based on the set of MCMVs. The CPMV of the current block is derived based on a CPMV of a first reference block that is a neighboring block located in a same region of the current block or an MCMV of a second reference block that is not a neighboring block located in the same region of the current block.

Claims (49)

1. A method comprising:

receiving input data associated with a current block of pixels to be coded;

deriving a control point motion vector (CPMV) of the current block for a control point according to an affine model;

deriving a set of motion compensation motion vectors (MCMVs) for a set of sub-blocks of the current block based on the derived CPMV of the current block according to the affine model;

performing motion compensation for the current block based on the derived set of MCMVs; and

storing the derived CPMV of the current block in a first storage and the derived MCMVs for the set of sub-blocks in a second, different storage,

wherein motion information stored in the second storage is associated with the set of sub-blocks of the current block, blocks immediately above the current block, or blocks immediately left of the current block, and

wherein deriving the CPMV of the current block comprises:

identifying a reference block of the current block;

retrieving a CPMV of the reference block when the reference block and the current block are located in a same row of coding tree units (CTUs); and

retrieving a MCMV of the reference block when the reference block and the current block are not located in the same row of CTUs.

2. The method of claim 1 , wherein the CPMV stored in the first storage is used to derive an affine candidate, and wherein the set of MCMVs stored in the second storage are used to derive non-affine candidates.

3. The method of claim 1 , further comprising retrieving MCMVs of the current block from the second storage and using the retrieved MCMVs to filter boundaries between sub-blocks of the current block.

4. The method of claim 1 , further comprising retrieving MCMVs of the current block or a neighboring block of the current block from the second storage and using the retrieved MCMVs to perform a deblocking process on the current block or the neighboring block.

5. The method of claim 1 , wherein the MCMV of the reference block is positioned at a center point of a sub-block of the reference block.

6. The method of claim 1 , wherein the control point of the CPMV of the current block is positioned at a corner of the current block, and wherein a MCMV for a sub-block of the current block is positioned at a center point of the sub-block.

7. A method comprising:

receiving input data associated with a current block to be coded;

deriving a control point motion vector (CPMV) of the current block for a control point according to an affine model;

deriving a set of motion compensation motion vectors (MCMVs) for a set of sub-blocks of the current block based on the derived CPMV of the current block according to the affine model; and

performing motion compensation for the current block based on the set of MCMVs,

wherein the CPMV of the current block is derived based on a CPMV stored in a first storage or a MCMV stored in a second, different storage,

wherein motion information stored in the second storage is associated with the set of sub-blocks of the current block, blocks immediately above the current block, or blocks immediately left of the current block, and

wherein deriving the CPMV of the current block comprises:

identifying a reference block of the current block;

retrieving a CPMV of the reference block when the reference block and the current block are located in a same region; and

retrieving a MCMV of the reference block when the reference block and the current block are not located in the same region.

8. An electronic apparatus comprising:

a video coder circuit configured to perform decoding by:

receiving input data associated with a current block to be coded;

deriving a control point motion vector (CPMV) of the current block for a control point according to an affine model;

deriving a set of motion compensation motion vectors (MCMVs) for a set of sub-blocks of the current block based on the derived CPMV of the current block according to the affine model;

performing motion compensation for the current block based on the derived set of MCMVs; and

storing the derived CPMV of the current block in a first storage and the derived MCMVs for the set of sub-blocks in a second, different storage,

wherein motion information stored in the second storage is associated with the set of sub-blocks of the current block, blocks immediately above the current block, or blocks immediately left of the current block, and

wherein deriving the CPMV of the current block comprises:

identifying a reference block of the current block;

retrieving a CPMV of the reference block when the reference block and the current block are located in a same region; and

retrieving a MCMV of the reference block when the reference block and the current block are not located in the same region.

9. A method comprising:

receiving input data associated with a current block of pixels to be coded;

deriving a control point motion vector (CPMV) of the current block for a control point according to an affine model;

deriving a set of motion compensation motion vectors (MCMVs) for a set of sub-blocks of the current block based on the derived CPMV of the current block according to the affine model;

performing motion compensation for the current block based on the derived set of MCMVs;

wherein deriving the CPMV of the current block comprises:

identifying a reference block of the current block;

retrieving a CPMV of the reference block when the reference block and the current block are located in a same region; and

retrieving a MCMV of the reference block when the reference block and the current block are not located in the same region.

10. The method of claim 9 , wherein, when the reference block and the current block are located in the same region, the reference block and the current block are in a same row of coding tree units (CTUs).

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2022
From: MEDIATEK INC.
To: HFI INNOVATION INC.
Reel/Frame 058834/0359 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2019
From: LIN, ZHI-YI; CHUANG, TZU-DER; CHEN, CHING-YEH; CHIANG, MAN-SHU; HSU, CHIH-WEI
To: MEDIATEK INC.
Reel/Frame 049018/0298 →