Motion vector reference selection through reference frame buffer tracking
AssigneeGoogle Inc.
InventorsYuxin Liu, Debargha Mukherjee
Life of this patent
Estimating the term…
Abstract
Encoding or decoding a video signal includes determining multiple candidate motion vectors for a current block, the candidate motion vectors including a first motion vector used to predict a collocated block within a first frame. A reference frame identifier associated with the first motion vector can be compared to a reference buffer index of a reference frame used to predict the current block of a second frame. On the condition that the reference frame identifier is the same as the reference buffer index, the first motion vector is advanced ahead of remaining ones of the multiple candidate motion vectors.
Claims20
A method for encoding a video stream using a computing device, the video stream having a sequence of frames, the frame having blocks formed of pixels, the method comprising:
- storing a reference frame identifier with a reference buffer index for each of a plurality of reference frames after encoding a first frame of the sequence of frames;
- updating the plurality of reference frames by updating a reference frame associated with a reference frame identifier after the storing;
- determining multiple candidate motion vectors for a current block of a second frame after the updating, the multiple candidate motion vectors including a first motion vector used to predict a collocated block within the first frame;
- performing a motion search for the current block within a reference frame of the plurality of reference frames, after the updating, to generate a second motion vector;
- comparing the reference buffer index stored with the reference frame identifier of the reference frame associated with the first motion vector to a reference buffer index of the reference frame used in the performing;
- and
- on a condition that the reference buffer index of the reference frame used in the performing matches the reference buffer index stored with the reference frame identifier of the reference frame associated with the first motion vector, advancing the first motion vector ahead of remaining ones of the multiple candidate motion vectors for encoding the current block.
An apparatus for encoding a video stream, the video stream having a sequence of frames, the frames having blocks formed of pixels, the apparatus comprising:
- a processor;
- and
- a memory storing instructions that cause the processor to perform a method comprising:
- storing a reference frame identifier with a reference buffer index for each of a plurality of reference frames after encoding a first frame of the sequence of frames;
- updating the plurality of reference frames by updating a reference frame associated with a reference frame identifier after the storing;
- determining multiple candidate motion vectors for a current block of a second frame after the updating, the multiple candidate motion vectors including a first motion vector used to predict a collocated block within the first frame;
- performing a motion search for the current block within a reference frame of the plurality of reference frames, after the updating, to generate a second motion vector;
- and
- comparing the reference buffer index stored with the reference frame identifier of the reference frame associated with the first motion vector to a reference buffer index of the reference frame used in the performing;
- and
- on a condition that the reference buffer index of the reference frame used in the performing matches the reference buffer index stored with the reference frame identifier of the reference frame associated with the first motion vector, advancing the first motion vector ahead of remaining ones of the multiple candidate motion vectors for encoding the current block.
An apparatus for decoding an encoded video bitstream, the encoded video bitstream having a sequence of frames, the frames having blocks formed of pixels, the apparatus comprising:
- a processor;
- and
- a memory storing instructions that cause the processor to perform a method comprising:
- storing a reference frame identifier with a reference buffer index for each of a plurality of reference frames after decoding a first frame of the sequence of frames;
- updating the plurality of reference frames by updating a reference frame associated with a reference frame identifier after the storing;
- determining multiple candidate motion vectors for a current block of a second frame after the updating, the multiple candidate motion vectors including a first motion vector used to predict a collocated block within the first frame;
- comparing the reference buffer index stored with the reference frame identifier of the reference frame associated with the first motion vector to a reference buffer index of the reference frame used to predict the current block of the second frame;
- and
- on a condition that the reference buffer index of the reference frame used to predict the current block of the second frame matches the reference buffer index stored with the reference frame identifier of the reference frame associated with the first motion vector, advancing the first motion vector ahead of remaining ones of the multiple candidate motion vectors for decoding the current block.
Dependencies are inferred from the claim text.