Advanced motion vector prediction speedups for video coding
AssigneeQUALCOMM Incorporated
InventorsNan Hu, Hsiao-Chiang Chuang, Xiang Li, Vijayaraghavan Thirumalai, Marta Karczewicz
Life of this patent
Estimating the term…
Abstract
A video encoder performs an Advanced Motion Vector Prediction (AMVP) process for a current block of a current picture. As part of performing the AMVP process, the video encoder may determine whether local illumination compensation (LIC) is being applied in the AMVP process. Based on LIC being applied in the AMVP process, the video encoder may skip a bi-directional AMVP motion estimation process that sets a cost associated with encoding the current block using a bi-directional AMVP mode. Rather, the video encoder may set the cost to a maximum cost value.
Claims23
A method of encoding video data, the method comprising:
- performing, by a video encoder, an Advanced Motion Vector Prediction (AMVP) process for a current block of a current picture of the video data, wherein performing the AMVP process comprises:
- determining, by the video encoder, a first cost by performing a uni-directional AMVP motion estimation process using reference pictures in a first reference picture list;
- determining, by the video encoder, a second cost by performing the uni-directional AMVP motion estimation process using reference pictures in a second reference picture list;
- determining, by the video encoder, a non-fixed reference picture list, wherein the non-fixed reference picture list is the first reference picture list when the first cost is less than the second cost and the non-fixed reference picture list is the second reference picture list when the second cost is less than the first cost;
- determining, by the video encoder, whether local illumination compensation (LIC) is being applied in the AMVP process;
- based on LIC being applied in the AMVP process:
- skipping, by the video encoder, a bi-directional AMVP motion estimation process that sets a third cost to be a cost associated with encoding the current block using a bi-directional AMVP mode;
- and
- setting, by the video encoder, the third cost to a maximum cost value;
- and
- determining, by the video encoder, a set of motion information based on a comparison of the first cost, the second cost, and the third cost, wherein the set of motion information includes one or more motion vectors;
- and
- generating, by the video encoder, residual data indicating differences between the current block and a predictive block pointed to by the one or more motion vectors of the set of motion information.
A video encoding device comprising:
- a memory configured to store video data;
- and
- one or more processing circuits configured to:
- perform an Advanced Motion Vector Prediction (AMVP) process for a current block of a current picture of the video data, wherein the one or more processing circuits are configured such that, as part of performing the AMVP process, the one or more processing circuits:
- determine a first cost by performing a uni-directional AMVP motion estimation process using reference pictures in a first reference picture list;
- determine a second cost by performing the uni-directional AMVP motion estimation process using reference pictures in a second reference picture list;
- determine a non-fixed reference picture list, wherein the non-fixed reference picture list is the first reference picture list when the first cost is less than the second cost and the non-fixed reference picture list is the second reference picture list when the second cost is less than the first cost;
- determine whether local illumination compensation (LIC) is being applied in the AMVP process;
- based on LIC being applied in the AMVP process:
- skip a bi-directional AMVP motion estimation process that sets a third cost to be a cost associated with encoding the current block using a bi-directional AMVP mode;
- and
- set the third cost to a maximum cost value;
- and
- determine a set of motion information based on a comparison of the first cost, the second cost, and the third cost, wherein the set of motion information includes one or more motion vectors;
- and
- generate residual data indicating differences between the current block and a predictive block pointed to by the one or more motion vectors of the set of motion information.
A device for decoding video data, the device comprising:
- a memory configured to store video data;
- and
- one or more processing circuits configured to:
- determine whether a block of the video data that is encoded using Advanced Motion Vector Prediction (AMVP) is encoded using uni-directional AMVP and not bi-directional AMVP;
- based on the block being encoded using uni-directional AMVP:
- obtain a local illumination compensation (LIC) flag from an encoded video bitstream, the LIC flag indicating whether the block is encoded using LIC;
- use uni-directional AMVP to generate a first predicted signal for the block;
- based on the LIC flag indicating that the block is encoded using LIC, use LIC to generate a second predicted signal for the block based on the first predicted signal;
- and
- form a decoded video block by summing a residual block and the second predicted signal.
A device for decoding video data, the device comprising:
- a memory configured to store video data;
- and
- one or more processing circuits configured to:
- determine, based on a local illumination compensation (LIC) flag signaled in an encoded video bitstream, that a block of the video data that is encoded using Advanced Motion Vector Prediction (AMVP) is encoded using LIC;
- and
- based on the block being encoded using LIC:
- determine that the block is encoded using uni-directional AMVP and not bi-directional AMVP without decoding any syntax elements that explicitly indicate that the block is encoded using uni-directional AMVP and not bi-directional AMVP;
- use uni-directional AMVP to generate a first predicted signal for the block;
- use LIC to generate a second predicted signal for the block based on the first predicted signal;
- and
- form a decoded video block by summing a residual block and the second predicted signal.
Dependencies are inferred from the claim text.