IP Library › Granted Patent US 11,496,759
Granted Patent B2
US 11,496,759 · App. 16/544,331 · Granted Nov 8, 2022

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 11,496,759
App. No.
16/544,331
Granted
Nov 8, 2022
Kind
B2
Abstract

A method includes acquiring a current picture that is 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 first grid, and the plurality of units being arranged as a second grid, the plurality of blocks being decoded in accordance with a parallel process. The method includes decoding, for one of the units, a current block using an entry from a history motion vector (HMVP) buffer. The method includes updating the HMVP buffer with a motion vector of the decoded current block. The method includes determining a location of the current block in the current picture. The method includes, in response to determining that the current block is located in a first column and a first row of a first unit of a row of the units in the second grid, resetting the HMVP buffer.

Claims (30)

1. A method of video decoding, the method comprising:

acquiring a current picture from a coded video bitstream, the current picture being segmented into a plurality of tiles, each tile comprising a plurality of units arranged in a plurality of rows, each row having a plurality of units, each unit being divided into a plurality of blocks;

prior to decoding a first tile of the plurality of tiles, initializing a shared row buffer that is shared among multiple processor threads associated with the first tile, each of the multiple processor threads having a corresponding history motion vector predictor (HMVP) buffer;

decoding a first unit of the plurality of units in a first row of the first tile by a first processor thread of the multiple processor threads and using a corresponding first HMVP buffer, the first unit being decoded chronologically first among the plurality of units in the first row;

in response to determining that all of the plurality of blocks in the first unit have been decoded,

copying contents of the first HMVP buffer corresponding to the first processor thread into the shared row buffer, the contents corresponding to motion vectors of decoded blocks included in the first unit;

copying contents of the shared row buffer into a second HMVP buffer corresponding to a second processor thread of the multiple processor threads; and

starting decoding of a unit in a second row of the plurality of rows by the second processor thread using the second HMVP buffer; and

in response to determining that the plurality of units in the first row of the first tile have been decoded, resetting the first HMVP buffer.

2. The method according to claim 1 , wherein the first HMVP buffer and the second HMVP buffer are a first-in-first-out (FIFO) buffers, and wherein the method further comprises updating the first HMVP buffer and the second HMVP buffer by storing a motion vector at a last entry of one of the first HMVP buffer or the second HMVP buffer and deleting a first entry of the one of the first HMVP buffer or the second HMVP buffer.

3. 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 tiles, each tile comprising a plurality of units arranged in a plurality of rows, each row having a plurality of units, each unit being divided into a plurality of blocks,

prior to decoding a first tile of the plurality of tiles, initialize a shared row buffer that is shared among multiple processor threads associated with the first tile, each of the multiple processor threads having a corresponding history motion vector predictor (HMVP) buffer;

decode a first unit of the plurality of units in a first row of the first tile by a first processor thread of the multiple processor threads and using a corresponding first HMVP buffer, the first unit being decoded chronologically first among the plurality of units in the first row,

in response to a determination that all of the plurality of blocks of the first unit have been decoded,

copy contents of the first HMVP buffer corresponding to the first processor thread into the shared row buffer, the contents corresponding to motion vectors of decoded blocks included in the first unit,

copy contents of the shared row buffer into a second HMVP buffer corresponding to a second processor thread of the multiple processor threads; and

start decoding of a unit in a second row of the plurality of rows by the second processor thread using the second HMVP buffer; and

in response to determining that the plurality of units in the first row of the first tile have been decoded, reset the first HMVP buffer.

4. The video decoder according to claim 3 , wherein the first HMVP buffer and the second HMVP buffer are a first-in-first-out (FIFO) buffers, and wherein the processing circuitry is further configured to update the first HMVP buffer and the second HMVP buffer by storing a motion vector at a last entry of one of the first HMVP buffer or the second HMVP buffer and deleting a first entry of the one of the first HMVP buffer or the second HMVP buffer.

5. A non-transitory computer readable medium having instructions stored therein, which, when executed by a processor in a video decoder, cause 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 tiles, each tile comprising a plurality of units arranged in a plurality of rows, each row having a plurality of units, each unit being divided into a plurality of blocks;

prior to decoding a first tile of the plurality of tiles, initializing a shared row buffer that is shared among multiple processor threads associated with the first tile, each of the multiple processor threads having a corresponding history motion vector predictor (HMVP) buffer;

decoding a first unit of the plurality of units in a first row of the first tile by a first processor thread of the multiple processor threads and using a corresponding first HMVP buffer, the first unit being decoded chronologically first among the plurality of units in the first row;

in response to determining that all of the plurality of blocks in the first unit have been decoded,

copying contents of the first HMVP buffer corresponding to the first processor thread into the shared row buffer, the contents corresponding to motion vectors of decoded blocks included in the first unit;

copying contents of the shared row buffer into a second HMVP buffer corresponding to a second processor thread of the multiple processor threads; and

starting decoding of a unit in a second row of the plurality of rows by the second processor thread using the second HMVP buffer; and

in response to determining that the plurality of units in the first row of the first tile have been decoded, resetting the first HMVP buffer.

6. The non-transitory computer readable medium according to claim 5 , wherein the first HMVP buffer and the second HMVP buffer are a first-in-first-out (FIFO) buffers, and wherein the method further comprises updating the first HMVP buffer and the second HMVP buffer by storing a motion vector at a last entry of one of the first HMVP buffer or the second HMVP buffer and deleting a first entry of the one of the first HMVP buffer or the second HMVP buffer.

Continuity (3)
Continuation 16213705 · Dec 7, 2018
Provisional Application 62699372 · Jul 17, 2018
Related Publication 20200029085A1 · Jan 23, 2020
Cited By (1)
US 12,634,494