Video coding using parameterized motion models
Abstract
A current block of a video frame can be encoded or decoded using parameterized motion models. First and second parameterized motion models are identified. The first parameterized motion model corresponds to a first motion model type, and the second parameterized motion model corresponds to a second motion model type. The first and second parameterized motion models are associated with one or more reference frames. One of the first or second parameterized motion models is selected along with an associated reference frame, such as based on a lowest prediction error. A motion vector is generated between the current block and the selected reference frame by warping pixels of the current block to a warped patch of the selected reference frame according to the selected parameterized motion model. A prediction block is generated using the motion vector, and the current block is encoded or decoded using the prediction block.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A method for encoding blocks of a video frame having multiple global motions using multiple parameterized motion models, the method comprising:
determining, based on one or more reference frames, that a first block of the video frame includes a first global motion and that a second block of the video frame includes a second global motion, wherein the first global motion corresponds to a first motion model type and the second global motion corresponds to a second motion model type;
selecting a first parameterized motion model corresponding to the first motion model type and a second parameterized motion model corresponding to the second motion model type, wherein the first parameterized motion model is associated with a first reference frame of the one or more reference frames and the second parameterized motion model is associated with a second reference frame of the one or more reference frames;
generating a first motion vector between the first block and the first reference frame based on the first parameterized motion model;
generating a first prediction block using the first motion vector;
encoding the first block using the first prediction block;
generating a second motion vector between the second block and the second reference frame based on the second parameterized motion model;
generating a second prediction block using the second motion vector; and
encoding the second block using the second prediction block.
2. The method of claim 1 , wherein selecting the first parameterized motion model corresponding to the first motion model type and the second parameterized motion model corresponding to the second motion model type comprises:
warping pixels of a reference frame of the one or more reference frames to the video frame according to parameters of a motion model type to produce warped pixels; and
identifying a parameterized motion model responsive to determining that a prediction error for the warped pixels satisfies a threshold, wherein a motion model type to which the parameterized motion model corresponds is based on the parameters.
3. The method of claim 1 , wherein each of the first motion model type and the second motion model type corresponds to a different type of non-translational motion.
4. The method of claim 1 , wherein selecting the first parameterized motion model corresponding to the first motion model type and the second parameterized motion model corresponding to the second motion model type comprises:
calculating a difference between a motion vector of the first block and a motion vector of the first reference frame; and
identifying the first parameterized motion model based on the difference.
5. The method of claim 1 , wherein selecting the first parameterized motion model corresponding to the first motion model type and the second parameterized motion model corresponding to the second motion model type comprises:
for each reference frame of the one or more reference frames, calculating a first prediction error by warping pixels of the reference frame to the video frame according to the first parameterized motion model and a second prediction error by warping the pixels of the reference frame to the video frame according to the second parameterized motion model; and
identifying a parameterized motion model having a lowest prediction error from the first prediction errors and the second prediction errors; and
identifying a reference frame of the one or more reference frames that is associated with the identified parameterized motion model.
6. The method of claim 1 , wherein generating a first motion vector between the first block and the first reference frame based on the first parameterized motion model comprises:
projecting pixels of the first block to a warped patch within the first reference frame according to the first parameterized motion model, wherein the warped patch is a non-rectangular patch having a shape and a position in the first reference frame indicated by the first parameterized motion model.
7. A method for decoding encoded blocks of an encoded video frame having multiple global motions using multiple parameterized motion models, the method comprising:
determining, based on one or more reference frames, that a first encoded block of the encoded video frame includes a first global motion and that a second encoded block of the encoded video frame includes a second global motion, wherein the first global motion corresponds to a first motion model type and the second global motion corresponds to a second motion model type;
selecting a first parameterized motion model corresponding to the first motion model type and a second parameterized motion model corresponding to the second motion model type, wherein the first parameterized motion model is associated with a first reference frame of the one or more reference frames and the second parameterized motion model is associated with a second reference frame of the one or more reference frames;
generating a first motion vector between the first encoded block and the first reference frame based on the first parameterized motion model;
generating a first prediction block using the first motion vector;
decoding the first encoded block using the first prediction block;
generating a second motion vector between the second encoded block and the second reference frame based on the second parameterized motion model;
generating a second prediction block using the second motion vector; and
decoding the second encoded block using the second prediction block.
8. The method of claim 7 , wherein selecting the first parameterized motion model corresponding to the first motion model type and the second parameterized motion model corresponding to the second motion model type comprises:
warping pixels of a reference frame of the one or more reference frames to the encoded video frame according to parameters of a motion model type to produce warped pixels; and
identifying a parameterized motion model responsive to determining that a prediction error for the warped pixels satisfies a threshold, wherein a motion model type to which the parameterized motion model corresponds is based on the parameters.
9. The method of claim 7 , wherein each of the first motion model type and the second motion model type corresponds to a different type of non-translational motion.
10. The method of claim 7 , wherein selecting the first parameterized motion model corresponding to the first motion model type and the second parameterized motion model corresponding to the second motion model type comprises:
calculating a difference between a motion vector of the first encoded block and a motion vector of the first reference frame; and
identifying the first parameterized motion model based on the difference.
11. The method of claim 7 , wherein selecting the first parameterized motion model corresponding to the first motion model type and the second parameterized motion model corresponding to the second motion model type comprises:
for each reference frame of the one or more reference frames, calculating a first prediction error by warping pixels of the reference frame to the encoded video frame according to the first parameterized motion model and a second prediction error by warping the pixels of the reference frame to the encoded video frame according to the second parameterized motion model; and
identifying a parameterized motion model having a lowest prediction error from the first prediction errors and the second prediction errors; and
identifying a reference frame of the one or more reference frames that is associated with the identified parameterized motion model.
12. The method of claim 7 , wherein generating a first motion vector between the first encoded block and the first reference frame based on the first parameterized motion model comprises:
projecting pixels of the first encoded block to a warped patch within the first reference frame according to the first parameterized motion model, wherein the warped patch is a non-rectangular patch having a shape and a position in the first reference frame indicated by the first parameterized motion model.
13. The method of claim 7 , wherein the first parameterized motion model and the second parameterized motion model are encoded to a frame header of the encoded video frame.
14. An apparatus for decoding encoded blocks of an encoded video frame having multiple global motions using multiple parameterized motion models, the apparatus comprising:
a processor configured to execute instructions stored in a non-transitory storage medium to:
determine, based on one or more reference frames, that a first encoded block of the encoded video frame includes a first global motion and that a second encoded block of the encoded video frame includes a second global motion, wherein the first global motion corresponds to a first motion model type and the second global motion corresponds to a second motion model type;
select a first parameterized motion model corresponding to the first motion model type and a second parameterized motion model corresponding to the second motion model type, wherein the first parameterized motion model is associated with a first reference frame of the one or more reference frames and the second parameterized motion model is associated with a second reference frame of the one or more reference frames;
generate a first motion vector between the first encoded block and the first reference frame based on the first parameterized motion model;
generate a first prediction block using the first motion vector;
decode the first encoded block using the first prediction block;
generate a second motion vector between the second encoded block and the second reference frame based on the second parameterized motion model;
generate a second prediction block using the second motion vector; and
decode the second encoded block using the second prediction block.
15. The apparatus of claim 14 , wherein the instructions to select the first parameterized motion model corresponding to the first motion model type and the second parameterized motion model corresponding to the second motion model type include instructions executable by the processor to:
warp pixels of a reference frame of the one or more reference frames to the encoded video frame according to parameters of a motion model type to produce warped pixels; and
identify a parameterized motion model responsive to a determination that a prediction error for the warped pixels satisfies a threshold, wherein a motion model type to which the parameterized motion model corresponds is based on the parameters.
16. The apparatus of claim 14 , wherein each of the first motion model type and the second motion model type corresponds to a different type of non-translational motion.
17. The apparatus of claim 14 , wherein the instructions to select the first parameterized motion model corresponding to the first motion model type and the second parameterized motion model corresponding to the second motion model type include instructions executable by the processor to:
calculate a difference between a motion vector of the first encoded block and a motion vector of the first reference frame; and
identify the first parameterized motion model based on the difference.
18. The apparatus of claim 14 , wherein the instructions to select the first parameterized motion model corresponding to the first motion model type and the second parameterized motion model corresponding to the second motion model type include instructions executable by the processor to:
for each reference frame of the one or more reference frames, calculate a first prediction error by warping pixels of the reference frame to the encoded video frame according to the first parameterized motion model and a second prediction error by warping the pixels of the reference frame to the encoded video frame according to the second parameterized motion model; and
identify a parameterized motion model having a lowest prediction error from the first prediction errors and the second prediction errors; and
identify a reference frame of the one or more reference frames that is associated with the identified parameterized motion model.
19. The apparatus of claim 14 , wherein the instructions to generate a first motion vector between the first encoded block and the first reference frame based on the first parameterized motion model include instructions executable by the processor to:
project pixels of the first encoded block to a warped patch within the first reference frame according to the first parameterized motion model, wherein the warped patch is a non-rectangular patch having a shape and a position in the first reference frame indicated by the first parameterized motion model.
20. The apparatus of claim 14 , wherein the first parameterized motion model and the second parameterized motion model are encoded to a frame header of the encoded video frame.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.