IP Library Granted Patent US 10,440,378
Granted Patent B1
US 10,440,378 · App. 16/213,705 · Granted Oct 8, 2019

Method and apparatus for history-based motion vector prediction with parallel processing

Inventors: Xiaozhong Xu (State College, PA); Shan Liu (San Jose, CA); Xiang Li (Los Gatos, CA)
Assignee: Tencent America LLC
H04N19/436H04N19/176H04N19/423H04N19/44
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 10,440,378
App. No.
16/213,705
Granted
Oct 8, 2019
Kind
B1
Abstract

A method includes acquiring a current picture from a coded video bitstream, where the current picture is segmented into a plurality of units, each unit is divided into a plurality of blocks, and the plurality of blocks in each unit being arranged as a grid. The method further includes decoding, a current block from the plurality of blocks using an entry from a history motion vector (HMVP) buffer. The method further includes updating the HMVP buffer with a motion vector of the decoded current block. The method further includes determining whether a condition is satisfied, the condition specifying that (i) the current block is a beginning of a row included in the grid of the one of the units, and (ii) the plurality of blocks are decoded in accordance with a parallel process. The method further includes, in response to determining that the condition is satisfied, resetting the HMVP buffer.

Claims (40)

1. A method of video decoding for a decoder, the method comprising:

acquiring a current picture from a coded video bitstream, the current picture being segmented into a plurality of units, each unit divided into a plurality of blocks, the plurality of blocks in each unit being arranged as a grid in each unit, and the plurality of units being arranged as a grid in the current picture;

decoding, for one of the units, a current block from the plurality of blocks using an entry from a history motion vector (HMVP) buffer;

updating the HMVP buffer with a motion vector of the decoded current block;

determining whether a condition is satisfied, the condition specifying that (i) the current block is a first block in a first row of a grid in a first unit of a row of units of the grid in the current picture, and (ii) the plurality of units blocks are decoded in accordance with a parallel process;

in response to determining that the condition is satisfied, resetting the HMVP buffer;

determining whether the current block is a last block in a last row of the grid in the first unit of the row of units of the grid in the current picture; and

in response to determining that the current block is the last block in the last row of the grid in the first unit of the row of units of the grid in the current picture, copying contents of the HMVP buffer into a row buffer.

2. The method according to claim 1 , further comprising:

in response to determining that the current block is a last block in a last row of a grid in a second unit of the row of units of the grid in the current picture, copying contents of the row buffer into another HMVP buffer for parallel decoding of the units in the next row.

3. The method according to claim 1 , wherein the HMVP buffer is a first-in-first-out (FIFO) buffer, and wherein the updating the HMVP buffer with the motion vector includes storing the motion vector at a last entry of the HMVP buffer and deleting a first entry of the HMVP buffer.

4. The method according to claim 1 , wherein the unit is a coding tree unit (CTU).

5. The method according to claim 1 , wherein the unit is a tile, the decoded one of the units is a first tile, and the first tile and a second tile from the plurality of units are decoded in parallel.

6. A video decoder for video decoding, comprising:

processing circuitry configured to:

acquire a current picture from a coded video bitstream, the current picture being segmented into a plurality of units, each unit divided into a plurality of blocks, the plurality of blocks in each unit being arranged as a grid in each unit, and the plurality of units being arranged as a grid in the current picture,

decode, for one of the units, a current block from the plurality of blocks using an entry from a history motion vector (HMVP) buffer,

update the HMVP buffer with a motion vector of the decoded current block,

determine whether a condition is satisfied, the condition specifying that (i) the current block is a first block in a first row of a grid in a first unit of a row of units of the grid in the current picture, and (ii) the plurality of units are decoded in accordance with a parallel process,

in response to the determination that the condition is satisfied, reset the HMVP buffer,

determine whether the current block is a last block in a last row of the grid in the first unit of the row of units of the grid in the current picture, and

in response to the determination that the current block is the last block in the last row of the grid in the first unit of the row of units of the grid in the current picture, copying contents of the HMVP buffer into a row buffer.

7. The video decoder according to claim 6 , wherein the processing circuitry is further configured to:

in response to the determination that the current block is a last block in a last row of a grid in a second unit of the row of units of the grid in the current picture, copying contents of the row buffer into another HMVP buffer for parallel decoding of the units in the next row.

8. The video decoder according to claim 6 , wherein the HMVP buffer is a first-in-first-out (FIFO) buffer, and wherein the updating the HMVP buffer with the motion vector includes storing the motion vector at a last entry of the HMVP buffer and deleting a first entry of the HMVP buffer.

9. The video decoder according to claim 6 , wherein the unit is a coding tree unit (CTU).

10. The video decoder according to claim 6 , wherein the unit is a tile, the decoded one of the units is a first tile, and the first tile and a second tile from the plurality of units are decoded in parallel.

11. A non-transitory computer readable medium having instructions stored therein, which when executed by a processor in a video decoder causes the processor to execute a method comprising:

acquiring a current picture from a coded video bitstream, the current picture being segmented into a plurality of units, each unit divided into a plurality of blocks, the plurality of blocks in each unit being arranged as a grid in each unit, and the plurality of units being arranged as a grid in the current picture;

decoding, for one of the units, a current block from the plurality of blocks using an entry from a history motion vector (HMVP) buffer;

updating the HMVP buffer with a motion vector of the decoded current block;

determining whether a condition is satisfied, the condition specifying that (i) the current block is a first block in a first row of a grid in a first unit of a row of units of the grid in the current picture, and (ii) the plurality of units blocks are decoded in accordance with a parallel process;

in response to determining that the condition is satisfied, resetting the HMVP buffer;

determining whether the current block is a last block in a last row of the grid in the first unit of the row of units of the grid in the current picture; and

in response to determining that the current block is the last block in the last row of the grid in the first unit of the row of units of the grid in the current picture, copying contents of the HMVP buffer into a row buffer.

12. The non-transitory computer readable medium according to claim 11 , the method further comprising:

in response to determining that the current block is a last block in a last row of a grid in a second unit of the row of units of the grid in the current picture, copying contents of the row buffer into another HMVP buffer for parallel decoding of the units in the next row.

13. The non-transitory computer readable medium according to claim 11 , wherein the HMVP buffer is a first-in-first-out (FIFO) buffer, and wherein the updating the HMVP buffer with the motion vector includes storing the motion vector at a last entry of the HMVP buffer and deleting a first entry of the HMVP buffer.

14. The non-transitory computer readable medium according to claim 11 , wherein the unit is a coding tree unit (CTU).

15. The non-transitory computer readable medium according to claim 11 , wherein the unit is a tile, the decoded one of the units is a first tile, and the first tile and a second tile from the plurality of units are decoded in parallel.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 7, 2018
From: XU, XIAOZHONG; LIU, SHAN; LI, XIANG
To: TENCENT AMERICA LLC
Reel/Frame 047711/0558 →
Continuity (1)
Provisional Application 62699372 · Jul 17, 2018
Cited By (24)
US 12,238,306 US 12,238,314 US 12,273,555 US 12,284,374 US 12,301,793 US 12,323,617 US 12,368,880 US 12,389,022 US 12,401,820 US 12,407,814 US 12,407,835 US 12,457,327 US 12,549,756 US 12,556,738 US 12,556,739 US 12,563,220 US 12,568,201 US 12,604,029 US 12,627,809 US 12,634,494 US 12,634,508 US 12,641,216 US 12,713,055 US 12,720,103