IP Library Granted Patent US 11,783,533
Granted Patent B2
US 11,783,533 · App. 17/590,682 · Granted Oct 10, 2023

Frame extrapolation with application generated motion vector and depth

Inventors: Jian Zhang (Fremont, CA); Xiang Wei (Palo Alto, CA); David James Borel (San Francisco, CA); Matthew Robert Fulghum (Saratoga, CA); Neel Bedekar (Saratoga, CA)
Assignee: Meta Platforms Technologies, LLC
G06T15/20G06T7/20G06T7/50G06T7/70G06T17/20G06T2207/10016
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,783,533
App. No.
17/590,682
Granted
Oct 10, 2023
Kind
B2
Abstract

In one embodiment, a method includes receiving a rendered image, motion vector data, and a depth map corresponding to a current frame of a video stream generated by an application, calculating a current three-dimensional position corresponding to the current frame of an object presented in the rendered image using the depth map, calculating a past three-dimensional position of the object corresponding to a past frame using the motion vector data and the depth map, estimating a future three-dimensional position of the object corresponding to a future frame based on the past three-dimensional position and the current three-dimensional position of the object, and generating an extrapolated image corresponding to the future frame by reprojecting the object presented in the rendered image to a future viewpoint associated with the future frame using the future three-dimensional position of the object.

Claims (40)

1. A method comprising, by a computing system associated with a wearable device:

receiving a rendered image, motion vector data, and a depth map corresponding to a current frame of a video stream generated by an application;

processing the received motion vector data and the depth map such that regions corresponding to foreground of the rendered image are expanded;

calculating, for an object presented in the rendered image, a current three-dimensional position of the object corresponding to the current frame using the depth map;

calculating a past three-dimensional position of the object corresponding to a past frame using the motion vector data and the depth map;

estimating a future three-dimensional position of the object corresponding to a future frame based on the past three-dimensional position and the current three-dimensional position of the object; and

generating an extrapolated image corresponding to the future frame by reprojecting the object presented in the rendered image to a future viewpoint associated with the future frame using the future three-dimensional position of the object.

2. The method of claim 1 , wherein the motion vector data and the depth map are generated based on three-dimensional objects rendered by the application.

3. The method of claim 2 , wherein motion vectors in the motion vector data are three-dimensional.

4. The method of claim 1 , wherein calculating the current three-dimensional position of the object comprises inversely projecting the depth map onto a three-dimensional space from a current viewpoint associated with the current frame.

5. The method of claim 4 , wherein the current viewpoint is associated with a position and an orientation of the wearable device at a time instance when the current frame is rendered.

6. The method of claim 1 , wherein calculating the past three-dimensional position of the object comprises:

generating an estimated depth map corresponding to the past frame by subtracting the motion vectors from the depth map; and

inversely projecting the estimated depth map onto a three-dimensional space from a past viewpoint associated with the past frame.

7. The method of claim 1 , wherein estimating the future three-dimensional position of the object is performed based on an assumption that the object moves at a constant speed from a time instance corresponding to the past frame to a time instance corresponding to the future frame.

8. The method of claim 7 , further comprising generating a distortion mesh by projecting the estimated future three-dimensional position of the object onto the future viewpoint.

9. The method of claim 8 , wherein generating the extrapolated image corresponding to the future frame comprises applying the distortion mesh to the rendered image.

10. One or more computer-readable non-transitory storage media embodying software that is operable when executed, by a computing system associated with a wearable device, to:

receive a rendered image, motion vector data, and a depth map corresponding to a current frame of a video stream generated by an application;

process the received motion vector data and the depth map such that regions corresponding to foreground of the rendered image are expanded;

calculate, for an object presented in the rendered image, a current three-dimensional position of the object corresponding to the current frame using the depth map;

calculate a past three-dimensional position of the object corresponding to a past frame using the motion vector data and the depth map;

estimate a future three-dimensional position of the object corresponding to a future frame based on the past three-dimensional position and the current three-dimensional position of the object; and

generate an extrapolated image corresponding to the future frame by reprojecting the object presented in the rendered image to a future viewpoint associated with the future frame using the future three-dimensional position of the object.

11. The media of claim 10 , wherein the motion vector data and the depth map are generated based on three-dimensional objects rendered by the application.

12. The media of claim 11 , wherein motion vectors in the motion vector data are three-dimensional.

13. The media of claim 10 , wherein calculating the current three-dimensional position of the object comprises inversely projecting the depth map onto a three-dimensional space from a current viewpoint associated with the current frame.

14. The media of claim 13 , wherein the current viewpoint is associated with a position and an orientation of the wearable device at a time instance when the current frame is rendered.

15. The media of claim 10 , wherein calculating the past three-dimensional position of the object comprises:

generating an estimated depth map corresponding to the past frame by subtracting the motion vectors from the depth map; and

inversely projecting the estimated depth map onto a three-dimensional space from a past viewpoint associated with the past frame.

16. The media of claim 10 , wherein estimating the future three-dimensional position of the object is performed based on an assumption that the object moves at a constant speed from a time instance corresponding to the past frame to a time instance corresponding to the future frame.

17. The media of claim 16 , wherein the software is further operable when executed to: generate a distortion mesh by projecting the estimated future three-dimensional position of the object onto the future viewpoint.

18. A system comprising: one or more processors; and a non-transitory memory coupled to the processors comprising instructions executable by the processors, the processors operable when executing the instructions to:

receive a rendered image, motion vector data, and a depth map corresponding to a current frame of a video stream generated by an application;

process the received motion vector data and the depth map such that regions corresponding to foreground of the rendered image are expanded;

calculate, for an object presented in the rendered image, a current three-dimensional position of the object corresponding to the current frame using the depth map;

calculate a past three-dimensional position of the object corresponding to a past frame using the motion vector data and the depth map;

estimate a future three-dimensional position of the object corresponding to a future frame based on the past three-dimensional position and the current three-dimensional position of the object; and

generate an extrapolated image corresponding to the future frame by reprojecting the object presented in the rendered image to a future viewpoint associated with the future frame using the future three-dimensional position of the object.

Assignments (2)
CHANGE OF NAME Recorded Jul 6, 2022
From: FACEBOOK TECHNOLOGIES, LLC
To: META PLATFORMS TECHNOLOGIES, LLC
Reel/Frame 060591/0848 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2022
From: ZHANG, JIAN; WEI, XIANG; BOREL, DAVID JAMES; FULGHUM, MATTHEW ROBERT; BEDEKAR, NEEL
To: FACEBOOK TECHNOLOGIES, LLC
Reel/Frame 059007/0657 →