CPC H04N 19/436 (2014.11) [H04N 19/176 (2014.11); H04N 19/423 (2014.11); H04N 19/44 (2014.11)] | 20 Claims |
1. A method of video encoding, the method comprising:
acquiring a current picture to be coded, 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 encoding 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;
encoding 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 encoded 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 encoded,
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 encoded 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 encoding 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 encoded, resetting the first HMVP buffer.
|