Back to results
US 11,778,224 B1Granted
Video pre-processing using encoder-aware motion compensated residual reduction
AssigneeAmazon Technologies, Inc.
InventorsRahul Vanam, Sriram Sethuraman
Life of this patent
Estimating the term…
Abstract
Techniques are described for pre-processing frames to apply a temporal filter. A P-frame may be temporally filtered based on neighboring reference frames. The temporal filter may be applied to blocks of the P-frame to improve alignment with dependent frames that are encoded based on blocks of the P-frame.
Claims24
A method, comprising:
- receiving a sequence of frames;
- identifying a first block in a first frame of the sequence of frames;
- determining an extent that the first block is used for predicting blocks in other frames, wherein the extent that the first block is used for predicting blocks in other frames is based at least in part on a neighboring P-frame or I-frame;
- identifying a temporal window of frames based on the extent that the first block is used for predicting blocks in other frames, wherein the temporal window comprises the first frame and the other frames in the temporal window are not P-frames or I-frames;
- determining one or more motion compensated blocks in corresponding one or more frames within the temporal window of frames;
- determining a mean squared error between the first block and each of the one or more motion compensated blocks;
- determining a quantization parameter of the first block;
- determining a variance of the first block;
- generating a filtered first block based on the first block, one or more motion compensated blocks, the mean squared error, the quantization parameter, and the variance;
- encoding the filtered first block in the first frame to generate an encoded first block;
- generating a filtered and reconstructed first block based on the encoded first block;
- and
- encoding the one or more frames neighboring the first frame in the temporal window of frames based at least in part on the filtered and reconstructed first block.
10 more elements
A method, comprising:
- receiving a sequence of frames;
- identifying a first block in a first frame of the sequence of frames;
- determining an extent that the first block is used for predicting blocks in other frames, wherein the extent that the first block is used for predicting blocks in other frames is based at least in part on a neighboring P-frame or I-frame;
- identifying a first temporal window of frames based on the extent that the first block is used for predicting blocks in other frames, wherein the first temporal window comprises the first frame and the other frames in the temporal window are not P-frames or I-frames;
- identifying one or more reference blocks in frames within the first temporal window that correspond to the first block;
- determining a first set of filter weights associated with the first block;
- generating a filtered first block based on the first block, the one or more reference blocks, and the first set of filter weights;
- generating an encoded first block based on the filtered first block;
- generating a filtered and reconstructed first block based on the encoded first block;
- and
- encoding the one or more frames neighboring the first frame in the first temporal window based at least in part on the filtered and reconstructed first block.
8 more elements
A system, comprising one or more processors and one or more memories configured for:
- receiving a sequence of frames;
- identifying a first block in a first frame of the sequence of frames, wherein the extent that the first block is used for predicting blocks in other frames is based at least in part on a neighboring P-frame or I-frame;
- determining an extent that the first block is used for predicting blocks in other frames;
- identifying a first temporal window of frames based on the extent that the first block is used for predicting blocks in other frames, wherein the first temporal window comprises the first frame and the other frames in the temporal window are not P-frames or I-frames;
- identifying one or more reference blocks in frames within the first temporal window that correspond to the first block;
- determining a first set of filter weights associated with the first block;
- generating a filtered first block based on the first block, the one or more reference blocks, and the first set of filter weights;
- generating an encoded first block based on the filtered first block;
- generating a filtered and reconstructed first block based on the encoded first block;
- and
- encoding the one or more frames neighboring the first frame in the first temporal window based at least in part on the filtered and reconstructed first block.
8 more elements
Dependencies are inferred from the claim text.