US10225573B1ActiveUtility

Video coding using parameterized motion models

93
Assignee: GOOGLE INCPriority: Jan 31, 2017Filed: Jan 31, 2017Granted: Mar 5, 2019
Est. expiryJan 31, 2037(~10.6 yrs left)· nominal 20-yr term from priority
H04N 19/176H04N 19/172H04N 19/182H04N 19/513H04N 19/105H04N 19/54H04N 19/527
93
PatentIndex Score
14
Cited by
33
References
20
Claims

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-modified
What 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.