IP Library Granted Patent US 12,088,838
Granted Patent B2
US 12,088,838 · App. 18/447,246 · Granted Sep 10, 2024

Methods and apparatus of video coding using history-based motion vector prediction

Inventors: Yi-Wen Chen (San Diego, CA); Xianglin Wang (San Diego, CA)
Assignee: BEIJING DAJIA INTERNET INFORMATION TECHNOLOGY CO., LTD.
H04N19/52H04N19/184H04N19/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,088,838
App. No.
18/447,246
Granted
Sep 10, 2024
Kind
B2
Abstract

A computing device performs a method of decoding video data by acquiring a video bitstream including data associated with multiple encoded pictures, each picture including multiple rows of coding tree units (CTUs) and each CTU including one or more coding units (CUs). A data buffer storing a plurality of history-based motion vector predictors is used for encoding the rows of CTUs and the decoding process resets the buffer before decoding a first CU of a current row of CTUs. For a current CU of the row of CTUs, a motion vector candidate list is constructed from exploiting spatial and temporal correlation of motion vectors of neighbouring code units as well as the history-based motion vector predictors in the buffer. Finally, one motion vector predictor is selected, from the motion vector candidate list, for decoding the current CU and the buffer is updated based on the selected one.

Claims (77)

1. An encoding method, comprising:

partitioning a current picture being encoded into multiple rows of coding tree units (CTUs), each CTU including one or more coding units (CUs);

resetting a history-based motion vector predictor (HMVP) table before encoding a first CU of a current row of CTUs of the current picture being encoded;

processing the current row of CTUs, comprising:

maintaining a plurality of motion vector predictors in the HMVP table, each motion vector predictor in the HMVP table being used for encoding at least one CU of the current row of CTUs; and

for a current CU of the current row of CTUs to be processed:

constructing a motion vector candidate list in accordance with a prediction mode and based, at least in part, on the plurality of motion vector predictors in the HMVP table;

selecting, from the motion vector candidate list, a motion vector predictor;

determining a motion vector based, at least in part, on the prediction mode and the selected motion vector predictor; and

updating the HMVP table based on the determined motion vector,

wherein the prediction mode is an inter mode, the motion vector candidate list has a fixed length of two, and the constructing the motion vector candidate list comprises:

in a case where history-based motion vector predictors from the HMVP table are selected to construct the motion vector candidate list, adding up to two history-based motion vector predictors from the HMVP table to the motion vector candidate list.

2. The method of claim 1 , wherein the constructing the motion vector candidate list further comprises:

adding zero or more motion vector predictors from spatially neighboring CUs and/or temporally collocated CUs of the current CU to the motion vector candidate list; and

when a current length of the motion vector candidate list is less than a first predefined threshold, adding zero or more history-based motion vector predictors from the HMVP table to the motion vector candidate list until the current length of the motion vector candidate list is equal to the first predefined threshold.

3. The method of claim 2 , wherein the constructing the motion vector candidate list further comprises:

when the current length of the motion vector candidate list is less than the first predefined threshold, adding zero or more zero-valued motion vector predictors to the motion vector candidate list until the current length of the motion vector candidate list is equal to the first predefined threshold.

4. The method of claim 2 , wherein the adding zero or more motion vector predictors from spatially neighboring CUs and/or temporally collocated CUs of the current CU to the motion vector candidate list comprises:

adding zero or more motion vector predictors from the spatially neighboring CUs of the current CU to the motion vector candidate list; and

when the current length of the motion vector candidate list is less than the first predefined threshold, adding zero or more motion vector predictors from the temporally collocated CUs of the current CU to the motion vector candidate list.

5. The method of claim 4 , wherein the adding zero or more motion vector predictors from the temporally collocated CUs of the current CU to the motion vector candidate list comprises:

deriving up to one motion vector predictor candidate from the temporally collocated CUs.

6. The method of claim 1 , wherein the resetting the HMVP table comprises: setting a size of available motion vector predictors in the HMVP table to be zero.

7. The method of claim 1 , wherein the processing the current row of CTUs further comprises:

encoding the prediction mode into the video bitstream.

8. A computing device comprising:

one or more processors;

memory coupled to the one or more processors; and

a plurality of programs stored in the memory that, when executed by the one or more processors, individually or collectively, cause the computing device to perform operations to generate a video bitstream, the operations including:

partitioning a current picture being encoded into multiple rows of coding tree units (CTUs), each CTU including one or more coding units (CUs);

resetting a history-based motion vector predictor (HMVP) table before encoding a first CU of a current row of CTUs of the current picture being encoded;

processing the current row of CTUs, comprising:

maintaining a plurality of motion vector predictors in the HMVP table, each motion vector predictor in the HMVP table being used for encoding at least one CU of the current row of CTUs; and

for a current CU of the current row of CTUs to be processed:

constructing a motion vector candidate list in accordance with a prediction mode and based, at least in part, on the plurality of motion vector predictors in the HMVP table;

selecting, from the motion vector candidate list, a motion vector predictor;

determining a motion vector based, at least in part, on the prediction mode and the selected motion vector predictor; and

updating the HMVP table based on the determined motion vector,

wherein the prediction mode is an inter mode, the motion vector candidate list has a fixed length of two, and the constructing the motion vector candidate list comprises:

in a case where history-based motion vector predictors from the HMVP table are selected to construct the motion vector candidate list, adding up to two history-based motion vector predictors from the HMVP table to the motion vector candidate list.

9. The computing device of claim 8 , wherein the constructing the motion vector candidate list further comprises:

adding zero or more motion vector predictors from spatially neighboring CUs and/or temporally collocated CUs of the current CU to the motion vector candidate list; and

when a current length of the motion vector candidate list is less than a first predefined threshold, adding zero or more history-based motion vector predictors from the HMVP table to the motion vector candidate list until the current length of the motion vector candidate list is equal to the first predefined threshold.

10. The computing device of claim 9 , wherein the constructing the motion vector candidate list further comprises:

when the current length of the motion vector candidate list is less than the first predefined threshold, adding zero or more zero-valued motion vector predictors to the motion vector candidate list until the current length of the motion vector candidate list is equal to the first predefined threshold.

11. The computing device of claim 9 , wherein the adding zero or more motion vector predictors from spatially neighboring CUs and/or temporally collocated CUs of the current CU to the motion vector candidate list comprises:

adding zero or more motion vector predictors from the spatially neighboring CUs of the current CU to the motion vector candidate list; and

when the current length of the motion vector candidate list is less than the first predefined threshold, adding zero or more motion vector predictors from the temporally collocated CUs of the current CU to the motion vector candidate list.

12. The computing device of claim 11 , wherein the adding zero or more motion vector predictors from the temporally collocated CUs of the current CU to the motion vector candidate list comprises:

deriving up to one motion vector predictor candidate from the temporally collocated CUs.

13. The computing device of claim 8 , wherein the resetting the HMVP table comprises:

setting a size of available motion vector predictors in the HMVP table to be zero.

14. The computing device of claim 8 , wherein the processing the current row of CTUs further comprises:

encoding the prediction mode into the video bitstream.

15. A non-transitory computer readable storage medium storing a plurality of programs for execution by a computing device having one or more processors, wherein the plurality of programs, when executed by the one or more processors, individually or collectively, cause the computing device to perform operations to generate a video bitstream and store the generated video bitstream in the non-transitory computer readable storage medium, the operations including:

partitioning a current picture being encoded into multiple rows of coding tree units (CTUs), each CTU including one or more coding units (CUs);

resetting a history-based motion vector predictor (HMVP) table before encoding a first CU of a current row of CTUs of the current picture being encoded;

processing the current row of CTUs, comprising:

maintaining a plurality of motion vector predictors in the HMVP table, each motion vector predictor in the HMVP table being used for encoding at least one CU of the current row of CTUs; and

for a current CU of the current row of CTUs to be processed:

constructing a motion vector candidate list in accordance with a prediction mode and based, at least in part, on the plurality of motion vector predictors in the HMVP table;

selecting, from the motion vector candidate list, a motion vector predictor;

determining a motion vector based, at least in part, on the prediction mode and the selected motion vector predictor; and

updating the HMVP table based on the determined motion vector,

wherein the prediction mode is an inter mode, the motion vector candidate list has a fixed length of two, and the constructing the motion vector candidate list comprises:

in a case where history-based motion vector predictors from the HMVP table are selected to construct the motion vector candidate list, adding up to two history-based motion vector predictors from the HMVP table to the motion vector candidate list.

16. The non-transitory computer readable storage medium of claim 15 , wherein the constructing the motion vector candidate list further comprises:

adding zero or more motion vector predictors from spatially neighboring CUs and/or temporally collocated CUs of the current CU to the motion vector candidate list; and

when a current length of the motion vector candidate list is less than a first predefined threshold, adding zero or more history-based motion vector predictors from the HMVP table to the motion vector candidate list until the current length of the motion vector candidate list is equal to the first predefined threshold.

17. The non-transitory computer readable storage medium of claim 16 , wherein the constructing the motion vector candidate list further comprises:

when the current length of the motion vector candidate list is less than the first predefined threshold, adding zero or more zero-valued motion vector predictors to the motion vector candidate list until the current length of the motion vector candidate list is equal to the first predefined threshold.

18. The non-transitory computer readable storage medium of claim 16 , wherein the adding zero or more motion vector predictors from spatially neighboring CUs and/or temporally collocated CUs of the current CU to the motion vector candidate list comprises:

adding zero or more motion vector predictors from the spatially neighboring CUs of the current CU to the motion vector candidate list; and

when the current length of the motion vector candidate list is less than the first predefined threshold, adding zero or more motion vector predictors from the temporally collocated CUs of the current CU to the motion vector candidate list.

19. The non-transitory computer readable storage medium of claim 18 , wherein the adding zero or more motion vector predictors from the temporally collocated CUs of the current CU to the motion vector candidate list comprises:

deriving up to one motion vector predictor candidate from the temporally collocated CUs.

20. The non-transitory computer readable storage medium of claim 15 , wherein the resetting the HMVP table comprises: setting a size of available motion vector predictors in the HMVP table to be zero.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 25, 2023
From: WANG, XIANGLIN; CHEN, YI-WEN
To: BEIJING DAIJA INTERNET INFORMATION TECHNOLOGY CO., LTD.
Reel/Frame 065012/0919 →
Continuity (5)
Continuation 18075309 · Dec 5, 2022
Continuation 17149669 · Jan 14, 2021
Continuation PCTUS2019041923 · Jul 16, 2019
Provisional Application 62700106 · Jul 18, 2018
Related Publication 20230388538A1 · Nov 30, 2023