IP Library Granted Patent US 11,638,027
Granted Patent B2
US 11,638,027 · App. 15/670,109 · Granted Apr 25, 2023

Pattern-based motion vector derivation for video coding

Inventors: Tzu-Der Chuang (Zhubei, TW); Ching-Yeh Chen (Taipei, TW); Chih-Wei Hsu (Hsinchu, TW); Yu-Wen Huang (Taipei, TW)
Assignee: HFI Innovation, Inc.
H04N19/513H04N19/176H04N19/44H04N19/573
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,638,027
App. No.
15/670,109
Granted
Apr 25, 2023
Kind
B2
Abstract

The techniques described herein relate to methods, apparatus, and computer readable media configured to receive compressed video data, wherein the compressed video data is related to a set of frames. A decoder-side predictor refinement technique is used to calculate a new motion vector for a current frame from the set of frames, wherein the new motion vector estimates motion for the current frame based on one or more reference frames. An existing motion vector associated with a different frame from a motion vector buffer is retrieved. The new motion vector is calculated based on the existing motion vector using a decoder-side motion vector prediction technique, such that the existing motion vector is in the motion vector buffer after calculating the new motion vector.

Claims (65)

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

receiving compressed video data related to a set of frames;

deriving a first motion vector for a current block, wherein the first motion vector is an unrefined motion vector;

calculating, using a decoder-side predictor refinement technique according to the first motion vector, a second motion vector, wherein the second motion vector is a refined motion vector for the current block;

performing motion compensation for the current block according to the second motion vector that is the refined motion vector, but not the first motion vector that is the unrefined motion vector for the current block; and

deriving a motion vector predictor for a second block different than the current block by using the first motion vector of the current block, but not the second motion vector that is the refined motion vector.

2. The decoding method of claim 1 , wherein:

calculating comprises:

storing the second motion vector in a second motion vector buffer so that the first motion vector remains in a first motion vector buffer.

3. The decoding method of claim 1 , comprising:

deriving the unrefined motion vector comprising retrieving motion vectors for a set of neighboring blocks, comprising, for one or more neighboring blocks from the set of neighboring blocks, retrieving one or more first motion vectors associated with the neighboring block.

4. The decoding method of claim 1 , comprising:

determining data from one or more upper coding tree unit (CTU) rows are available; and

deriving the unrefined motion vector comprising retrieving motion vectors for a set of neighboring blocks, comprising, for one or more neighboring blocks from the set of neighboring blocks:

determining the neighboring block is in the one or more upper CTU rows; and

retrieving one or more second motion vectors associated with the neighboring block.

5. The decoding method of claim 1 , wherein calculating comprises:

testing one or more motion vectors pairs derived from a first set of reference frames and a second set of reference frames; and

storing only one of the one or more motion vector pairs associated with the first set of reference frames and the second set of reference frames.

6. The decoding method of claim 1 , wherein calculating comprises:

testing one or more vectors pairs derived from a first set of reference frames, or a second set of reference frames, but not both.

7. The decoding method of claim 1 , further comprising:

receiving a signal indicative of a starting candidate index for a starting motion vector candidate list; and

using the received signal to derive the first motion vector.

8. The decoding method of claim 1 , further comprising:

receiving a signal indicative of a starting candidate index for a starting motion vector candidate list, a coarse grain motion vector difference, or both; and

using the received signal to derive the first motion vector.

9. The decoding method of claim 1 , further comprising:

receiving a signal from an advanced motion vector prediction indicative of a starting motion vector; and

using the received signal to derive the first motion vector.

10. An apparatus configured to decode video data, the apparatus comprising a processor in communication with memory, the processor being configured to execute instructions stored in the memory that cause the processor to:

receive compressed video data related to a set of frames;

derive a first motion vector for a current block, wherein the first motion vector is an unrefined motion vector;

calculate, using a decoder-side predictor refinement technique according to the first motion vector, a second motion vector, wherein the second motion vector is a refined motion vector for the current block;

perform motion compensation for the current block according to the second motion vector that is the refined motion vector, but not the first motion vector that is the unrefined motion vector for the current block; and

derive a motion vector predictor for a second block different than the current block by using the first motion vector of the current block, but not the second motion vector that is the refined motion vector.

11. The apparatus of claim 10 , wherein:

calculating comprises:

storing the second motion vector in a second motion vector buffer so that the first motion vector remains in a first motion vector buffer.

12. The apparatus of claim 10 , wherein the instructions further cause the processor to derive the unrefined motion vector comprising retrieving motion vectors for a set of neighboring blocks, comprising, for one or more neighboring blocks from the set of neighboring blocks, retrieving one or more first motion vectors associated with the neighboring block.

13. The apparatus of claim 10 , wherein the instructions further cause the processor to:

determine data from one or more upper coding tree unit (CTU) rows are available; and

deriving the unrefined motion vector comprising retrieving motion vectors for a set of neighboring blocks, comprising, for one or more neighboring blocks from the set of neighboring blocks:

determining the neighboring block is in the one or more upper CTU rows; and

retrieving one or more second motion vectors associated with the neighboring block.

14. The apparatus of claim 10 , wherein calculating comprises:

testing one or more motion vectors pairs derived from a first set of reference frames and a second set of reference frames; and

storing only one of the one or more motion vector pairs associated with the first set of reference frames and the second set of reference frames.

15. The apparatus of claim 10 , wherein calculating comprises:

testing one or more vectors pairs derived from a first set of reference frames, or a second set of reference frames, but not both.

16. The apparatus of claim 10 , wherein the instructions further cause the processor to:

receive a signal indicative of a starting candidate index for a starting motion vector candidate list; and

use the received signal to derive the first motion vector.

17. The apparatus of claim 10 , wherein the instructions further cause the processor to:

receive a signal indicative of a starting candidate index for a starting motion vector candidate list, a coarse grain motion vector difference, or both; and

use the received signal to derive the first motion vector.

18. The apparatus of claim 10 , wherein the instructions further cause the processor to:

receive a signal from an advanced motion vector prediction indicative of a starting motion vector; and

use the received signal to derive the first motion vector.

19. At least one non-transitory computer-readable storage medium encoded with a plurality of computer-executable instructions that, when executed, perform a method comprising:

receiving compressed video data related to a set of frames;

deriving a first motion vector for a current block, wherein the first motion vector is an unrefined motion vector;

calculating, using a decoder-side predictor refinement technique according to the first motion vector, a second motion vector, wherein the second motion vector is a refined motion vector for the current block;

performing motion compensation for the current block according to the second motion vector that is the refined motion vector, but not the first motion vector that is the unrefined motion vector for the current block; and

deriving a motion vector predictor for a second block different than the current block by using the first motion vector of the current block, but not the second motion vector that is the refined motion vector.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 7, 2022
From: MEDIATEK INC.
To: HFI INNOVATION INC.
Reel/Frame 058963/0245 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 29, 2017
From: CHUANG, TZU-DER; CHEN, CHING-YEH; HSU, CHIH-WEI; HUANG, YU-WEN
To: MEDIATEK INC.
Reel/Frame 044253/0112 →
Continuity (2)
Provisional Application 62371879 · Aug 8, 2016
Related Publication 20180041769A1 · Feb 8, 2018
Cited By (1)
US 12,309,414