Advanced motion estimation
AssigneeGoogle Inc.
InventorJuha Pekka Maaninen
Life of this patent
Estimating the term…
Abstract
Encoding and decoding using advanced motion estimation may include encoding a video stream including a plurality of frames by generating a first encoded frame based on a first frame from the plurality of frames, generating a first reconstructed frame based on the first encoded frame, generating reference frame index information based on the first reconstructed frame, generating an encoded reference frame based on the first reconstructed frame, generating a second reconstructed reference frame based on the encoded reference frame, and generating a second encoded frame based on a second frame from the plurality of frames, the reference frame index information, and the second reconstructed reference frame.
Claims19
A method for encoding, by a processor in response to instructions stored on a non-transitory computer readable medium, a video stream including a plurality of frames, the method comprising:
- generating a first encoded frame based on a first frame from the plurality of frames;
- generating a first reconstructed frame based on the first encoded frame;
- generating reference frame index information based on the first reconstructed frame;
- generating an encoded reference frame based on the first reconstructed frame, wherein generating the encoded reference frame includes losslessly encoding the reference frame;
- generating a second reconstructed reference frame based on the encoded reference frame;
- and
- generating a second encoded frame based on a second frame from the plurality of frames, the reference frame index information, and the second reconstructed reference frame.
A method for encoding, by a processor in response to instructions stored on a non-transitory computer readable medium, a video stream including a plurality of frames, the method comprising:
- generating a first encoded frame based on a first frame from the plurality of frames;
- generating a first reconstructed frame based on the first encoded frame;
- generating reference frame index information based on the first reconstructed frame;
- generating a losslessly encoded reference frame based on the first reconstructed frame;
- storing the losslessly encoded reference frame in an external memory;
- generating a second encoded frame based on a second frame from the plurality of frames, wherein the second frame from the plurality of frames includes a plurality of blocks, and wherein generating the second encoded frame includes:
- identifying a current block from the plurality of blocks of the second frame;
- generating current block index information based on the current block;
- generating a block motion estimation partition list based on the reference frame index information and the current block index information;
- generating a portion of a reconstructed reference frame based on a portion of the losslessly encoded reference frame retrieved from the external memory;
- generating a pixel motion estimation partition list based on the block motion estimation partition list and the portion of the second reconstructed reference frame;
- generating a portion of a sub-pixel interpolated reconstructed reference frame based on the portion of the reconstructed reference frame;
- and
- generating a sub-pixel motion vector based on the pixel motion estimation partition list and the portion of the sub-pixel interpolated reconstructed reference frame.
A method for encoding, by a processor in response to instructions stored on a non-transitory computer readable medium, a video stream including a plurality of frames, the method comprising:
- generating an encoded frame based on a frame from the plurality of frames, wherein the frame from the plurality of frames includes a plurality of blocks, and wherein generating the encoded frame includes:
- identifying a current block from the plurality of blocks of the frame;
- generating current block index information based on the current block;
- generating a block-resolution motion vector for the current block based on the current block index information and reference frame index information associated with a losslessly encoded reference frame;
- generating a portion of a reconstructed reference frame based on a portion of the losslessly encoded reference frame retrieved from an external memory;
- caching the portion of the reconstructed reference frame in an internal memory;
- generating a pixel-resolution motion vector based on the block-resolution motion vector and the cached portion of the reconstructed reference frame;
- and
- generating a sub-pixel motion vector based on the pixel-resolution motion vector and sub-pixel information interpolated based on the cached portion of the reconstructed reference frame.
Dependencies are inferred from the claim text.