EP4404568A2

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

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.

EP4404568A2, drawing sheet 1
Sheet 1 of 7

Term

12.8 yearsto projected expiry

Projected expiry 16 July 2039, counted from filing; an application has no term until it is granted.

  1. Priority
  2. Filed
  3. Published
  4. Today
  5. Projected expiry

14 claims: 6 independent, 8 dependent

  1. 1
    A method of decoding video data, the method comprising:acquiring (610) 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;resetting (620) a history-based motion vector predictor, HMVP, table before decoding a first CTU of each row of CTUs of a current picture being decoded to support parallel decoding of multiple rows of CTUs of the current picture, wherein the resetting the HMVP table comprises: setting a size of available motion vector predictors in the HMVP table to be zero;while decoding (630) a current row of CTUs of the current picture: maintaining (630-1) a plurality of motion vector predictors in the HMVP table, each motion vector predictor in the HMVP table having been used for decoding at least one CU of the current row of CTUs;for a current CU of the current row of CTUs to be decoded: extracting (630-3) a prediction mode from the video bitstream;constructing (630-5) a motion vector candidate list in accordance with the prediction mode and based, at least in part, on the plurality of motion vector predictors in the HMVP table;selecting (630-7), from the motion vector candidate list, a motion vector predictor;determining (630-9) a motion vector based, at least in part, on the prediction mode and the selected motion vector predictor for decoding the current CU;and updating (630-11) the HMVP table based on the determined motion vector, wherein the updating the HMVP table based on the determined motion vector comprises: comparing the plurality of motion vector predictors in the HMVP table with the determined motion vector;in accordance with a determination that none of the plurality of motion vector predictors in the HMVP table is identical to the determined motion vector: removing an earliest motion vector predictor from the first entry of the HMVP table when the HMVP table is full;and adding the determined motion vector as a newest one to the last entry of the HMVP table;in accordance with a determination that one of the plurality of motion vector predictors in the HMVP table is identical to the determined motion vector: removing the one identical motion vector predictor from the HMVP table;moving each of the motion vector predictors after the removed motion vector predictor forward in the HMVP table;and adding the determined motion vector as a newest one to the last entry of the HMVP table, and wherein the prediction mode is an advanced motion vector prediction, AMVP, mode, the motion vector candidate list has a fixed length of two, and the constructing the motion vector candidate list further 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. 6
    A computing device comprising:one or more processors;memory coupled to the one or more processors;and a bitstream and a plurality of programs stored in the memory, wherein the plurality of programs, when executed by the one or more processors, cause the computing device to perform operations with the bitstream, the operations including: acquiring (610) 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;resetting (620) a history-based motion vector predictor, HMVP, table before decoding a first CTU of each row of CTUs of a current picture being decoded to support parallel decoding of multiple rows of CTUs of the current picture, wherein the resetting the HMVP table comprises: setting a size of available motion vector predictors in the HMVP table to be zero;while decoding (630) a current row of CTUs of the current picture: maintaining (630-1) a plurality of motion vector predictors in the HMVP table, each motion vector predictor in the HMVP table having been used for decoding at least one CU of the current row of CTUs;for a current CU of the current row of CTUs to be decoded: extracting (630-3) a prediction mode from the video bitstream;constructing (630-5) a motion vector candidate list in accordance with the prediction mode and based, at least in part, on the plurality of motion vector predictors in the HMVP table;selecting (630-7), from the motion vector candidate list, a motion vector predictor;determining (630-9) a motion vector based, at least in part, on the prediction mode and the selected motion vector predictor for decoding the current CU;and updating (630-11) the HMVP table based on the determined motion vector, wherein the updating the HMVP table based on the determined motion vector comprises: comparing the plurality of motion vector predictors in the HMVP table with the determined motion vector;in accordance with a determination that none of the plurality of motion vector predictors in the HMVP table is identical to the determined motion vector: removing an earliest motion vector predictor from the first entry of the HMVP table when the HMVP table is full;and adding the determined motion vector as a newest one to the last entry of the HMVP table;in accordance with a determination that one of the plurality of motion vector predictors in the HMVP table is identical to the determined motion vector: removing the one identical motion vector predictor from the HMVP table;moving each of the motion vector predictors after the removed motion vector predictor forward in the HMVP table;and adding the determined motion vector as a newest one to the last entry of the HMVP table, and wherein the prediction mode is an advanced motion vector prediction, AMVP, mode, the motion vector candidate list has a fixed length of two, and the constructing the motion vector candidate list further 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.
  3. 9
    A non-transitory computer readable storage medium storing a bitstream and 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, cause the computing device to perform operations with the bitstream, the operations including:acquiring (610) 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;resetting (620) a history-based motion vector predictor, HMVP, table before decoding a first CTU of each row of CTUs of a current picture being decoded to support parallel decoding of multiple rows of CTUs of the current picture, wherein the resetting the HMVP table comprises: setting a size of available motion vector predictors in the HMVP table to be zero;while decoding (630) a current row of CTUs of the current picture: maintaining (630-1) a plurality of motion vector predictors in the HMVP table, each motion vector predictor in the HMVP table having been used for decoding at least one CU of the current row of CTUs;for a current CU of the current row of CTUs to be decoded: extracting (630-3) a prediction mode from the video bitstream;constructing (630-5) a motion vector candidate list in accordance with the prediction mode and based, at least in part, on the plurality of motion vector predictors in the HMVP table;selecting (630-7), from the motion vector candidate list, a motion vector predictor;determining (630-9) a motion vector based, at least in part, on the prediction mode and the selected motion vector predictor for decoding the current CU;and updating (630-11) the HMVP table based on the determined motion vector, wherein the updating the HMVP table based on the determined motion vector comprises: comparing the plurality of motion vector predictors in the HMVP table with the determined motion vector;in accordance with a determination that none of the plurality of motion vector predictors in the HMVP table is identical to the determined motion vector: removing an earliest motion vector predictor from the first entry of the HMVP table when the HMVP table is full;and adding the determined motion vector as a newest one to the last entry of the HMVP table;in accordance with a determination that one of the plurality of motion vector predictors in the HMVP table is identical to the determined motion vector: removing the one identical motion vector predictor from the HMVP table;moving each of the motion vector predictors after the removed motion vector predictor forward in the HMVP table;and adding the determined motion vector as a newest one to the last entry of the HMVP table, and wherein the prediction mode is an advanced motion vector prediction, AMVP, mode, the motion vector candidate list has a fixed length of two, and the constructing the motion vector candidate list further 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.
  4. 12
    A computer program product comprising a bitstream and 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, cause the computing device to perform steps of the method of any one of claims 1 to 5 with the bitstream.
  5. 13
    A computer readable storage medium storing a bitstream to be decoded by the method in any of claims 1 to 5.
  6. 14
    A method for storing a bitstream, wherein the bitstream is to be decoded by the method in any of claims 1 to 5.