Method for deriving a motion vector
AssigneeVelos Media, LLC
InventorChristopher A. Segall
Life of this patent
Estimating the term…
Abstract
A method for decoding video includes creating a first list of motion vectors from at least one neighboring block in a current frame of the video and creating a second list of motion vectors from at least one previous block in a temporally earlier frame of the video. A third list of motion vectors is created based upon the first list and the second list. Based upon receiving a motion vector competition control parameter selecting one of the motion vectors from the third list, wherein the second list of motion vectors is further based upon a flooring function.
Claims10
A method for processing video comprising:
- generating a first list of motion vectors comprising motion vectors for neighboring blocks of a current block in a current frame of the video, wherein the neighboring blocks include an above block of the current block, a left block of the current block and an above left block of the current block in the current frame;
- selecting a motion vector for a block in a previous frame by:
- deriving coordinates of a position of the block in the previous frame by performing a flooring function,
- wherein the flooring function operates an arithmetic right shift operation based on a top-left position of the current block followed by an arithmetic left shift operation, and
- wherein a magnitude of the arithmetic right shift operation is the same as a magnitude of the arithmetic left shift operation;
- generating a second list comprising the motion vector for the block in the previous frame;
- generating a third list of candidate motion vectors based on the first list and the second list;
- selecting a motion vector from the third list as a motion vector predictor for the current block;
- deriving a motion vector difference between the motion vector predictor for the current block and a motion vector for the current block;
- generating a motion vector control parameter corresponding to the motion vector predictor for the current block;
- and
- wherein the motion vector control parameter and the motion vector difference are used for encoding a bitstream.
An apparatus comprising:
- an encoder;
- and
- a memory;
- the encoder configured to:
- generate a first list of motion vectors comprising motion vectors for neighboring blocks of a current block in a current frame of the video, wherein the neighboring blocks include an above block of the current block, a left block of the current block and an above left block of the current block in the current frame, and to store the first list of motion vectors in the memory;
- select a motion vector for a block in a previous frame by:
- deriving coordinates of a position of the block in the previous frame by performing a flooring function,
- wherein the flooring function operates an arithmetic right shift operation based on a top-left position of the current block followed by an arithmetic left shift operation, and
- wherein a magnitude of the arithmetic right shift operation is the same as a magnitude of the arithmetic left shift operation;
- generate a second list comprising the motion vector for the block in the previous frame and store the second list in the memory;
- generate a third list of candidate motion vectors based on the first list and the second list and store the third list in the memory;
- select a motion vector from the third list as a motion vector predictor for the current block;
- derive a motion vector difference between the motion vector predictor for the current block and a motion vector for the current block;
- and
- generate a motion vector control parameter corresponding to the motion vector predictor for the current block,
- wherein the motion vector control parameter and the motion vector difference are used for encoding a bitstream.
Dependencies are inferred from the claim text.