IP Library Granted Patent US 12,063,387
Granted Patent B2
US 12,063,387 · App. 15/861,476 · Granted Aug 13, 2024

Decoder-side motion vector restoration for video coding

Inventors: Tzu-Der Chuang (Zhubei, TW); Ching-Yeh Chen (Taipei, TW)
Assignee: HFI Innovation Inc.
H04N19/577H04N19/517H04N19/527H04N19/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 12,063,387
App. No.
15/861,476
Granted
Aug 13, 2024
Kind
B2
Abstract

The techniques described herein relate to methods, apparatus, and computer readable media configured to determine motion vectors. The techniques relate to both encoders and decoders. For example, a decoder receives compressed video data related to a set of frames. The decoder calculates, using a decoder-side predictor refinement technique, 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. The calculation includes retrieving a first motion vector associated with the current frame, executing a first portion of the decoding process using the first motion vector, retrieving a second motion vector associated with the current frame that is different than the first motion vector, and executing a second portion of the decoding process using the second motion vector.

Claims (45)

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

receiving compressed video data related to a set of frames;

deriving a first unrefined motion vector from a motion vector candidate list; and

calculating, using a decoder-side predictor refinement technique according to the first unrefined motion vector, a refined motion vector for the current coding unit of a current frame from the set of frames, wherein the refined motion vector estimates motion for the current coding unit based on one or more reference frames from the set of frames, comprising:

retrieving, for the current coding unit, a first motion vector of a previous coding unit being processed before the current coding unit, wherein the first motion vector is an unrefined motion vector that is used to determine a corresponding final refined motion vector for the previous coding unit, and wherein the unrefined motion vector is not used to perform prediction of the previous coding unit, but the final refined motion vector is used to the perform prediction of the previous coding unit;

retrieving a second motion vector associated with a first collocated frame, wherein the second motion vector is a refined motion vector;

executing a first portion of a decoding process for the current coding unit using the first motion vector and the second motion vector, wherein the first portion of a decoding process comprises a motion vector candidate list generation, and wherein the motion vector candidate list generation comprises motion vector prediction derivation, merge candidate derivation, or both, wherein:

deriving a spatially neighboring motion vector for the motion vector candidate list generation comprises using the unrefined motion vector of the previous coding unit that is not used to perform the prediction of the previous coding unit and adding the unrefined motion vector to the motion vector candidate list if the unrefined motion vector is not similar with respect to a threshold to one or more candidates with the motion vector candidate list; and

deriving a temporal collocated motion vector for the motion vector candidate list generation comprises using the refined motion vector; and

executing a second portion of the decoding process for the current coding unit using the refined motion vector, wherein the second portion of the decoding process comprises performing motion compensation;

the first motion vector, which is the unrefined motion vector of the current coding unit, is used as a motion vector for the neighboring coding unit being processed after the current coding unit, and

the refined motion vector of the current coding unit is used as a motion vector for one or more frames being processed after the current frame.

2. The decoding method of claim 1 , wherein:

the second motion vector is refined using a decoder-side predictor refinement technique that refines the first motion vector;

the first portion of the decoding process comprises a parsing portion, a motion vector derivation portion, or both; and

the second portion of the decoding process comprises a reconstruction portion.

3. The decoding method of claim 1 , wherein executing the first portion of the decoding process comprises referring to the first motion vector as a decoded motion vector of the current coding unit.

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

determining whether a coding tree unit constraint is applied to the compressed video data.

5. The decoding method of claim 1 , further comprising retrieving:

an unrefined motion vector of a current coding tree unit row;

a refined motion vector of an upper coding tree unit row, other tile, or other slice; and

an additional refined motion vector associated with a second coding unit.

6. 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;

deriving a first unrefined motion vector from a motion vector candidate list; and

calculate, using a decoder-side predictor refinement technique according to the first unrefined motion vector, a refined motion vector for the current coding unit of a current frame from the set of frames, wherein the refined motion vector estimates motion for the current coding unit based on one or more reference frames from the set of frames, comprising:

retrieving, for the current coding unit, a first motion vector of a previous coding unit being processed before the current coding unit, wherein the first motion vector is an unrefined motion vector that is used to determine a corresponding final refined motion vector for the previous coding unit, and wherein the unrefined motion vector is not used to perform prediction of the previous coding unit, but the final refined motion vector is used to the perform prediction of the previous coding unit;

retrieving a second motion vector associated with a first collocated frame, wherein the second motion vector is a refined motion vector;

executing a first portion of a decoding process for the current coding unit using the first motion vector and the second motion vector, wherein the first portion of a decoding process comprises a motion vector candidate list generation, and wherein the motion vector candidate list generation comprises motion vector prediction derivation, merge candidate derivation, or both, wherein:

deriving a spatially neighboring motion vector for the motion vector candidate list generation comprises using the unrefined motion vector of the previous coding unit that is not used to perform the prediction of the previous coding unit and adding the unrefined motion vector to the motion vector candidate list if the unrefined motion vector is not similar with respect to a threshold to one or more candidates with the motion vector candidate list; and

deriving a temporal collocated motion vector for the motion vector candidate list generation comprises using the refined motion vector; and

executing a second portion of the decoding process for the current coding unit using the second refined vector, wherein the second portion of the decoding process comprises performing motion compensation;

the first motion vector, which is the unrefined motion vector of the current coding unit, is used as a motion vector for the neighboring coding unit being processed after the current coding unit, and

the refined motion vector of the current coding unit is used as a motion vector for one or more frames being processed after the current frame.

7. The apparatus of claim 6 , wherein:

the second motion vector is refined using a decoder-side predictor refinement technique that refines the first motion vector;

the first portion of the decoding process comprises a parsing portion, a motion vector derivation portion, or both; and

the second portion of the decoding process comprises a reconstruction portion.

8. The apparatus of claim 6 , wherein executing the first portion of the decoding process comprises referring to the first motion vector as a decoded motion vector of the current coding unit.

9. The apparatus of claim 6 , wherein the processor is configured to execute instructions stored in the memory that cause the processor to determine whether a coding tree unit constraint is applied to the compressed video data.

10. The apparatus of claim 6 , wherein the processor is configured to execute instructions stored in the memory that cause the processor to retrieve:

an unrefined motion vector of a current coding tree unit row;

a refined motion vector of an upper coding tree unit row, other tile, or other slice; and

an additional refined motion vector associated with a second coding unit.

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 Jan 3, 2018
From: CHUANG, TZU-DER; CHEN, CHING-YEH
To: MEDIATEK INC.
Reel/Frame 044527/0501 →
Continuity (3)
Provisional Application 62479350 · Mar 31, 2017
Provisional Application 62442472 · Jan 5, 2017
Related Publication 20180192071A1 · Jul 5, 2018