IP Library Granted Patent US 11,109,065
Granted Patent B2
US 11,109,065 · App. 16/143,165 · Granted Aug 31, 2021

Video encoding by providing geometric proxies

Inventors: Michael Hemmer (San Francisco, CA); Ameesh Makadia (New York, NY)
Assignee: GOOGLE LLC
H04N19/597H04N19/186H04N19/42
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,109,065
App. No.
16/143,165
Granted
Aug 31, 2021
Kind
B2
Abstract

Compressing a frame of video includes receiving a frame of a video, identifying a three dimensional (3D) object in the frame, matching the 3D object to a stored 3D object, compressing the frame of the video using a color prediction scheme based on the 3D object and the stored 3D object, and storing the compressed frame with metadata, the metadata identifying the 3D object, indicating a position of the 3D object in the frame of the video and indicating an orientation of the 3D object in the frame of the video.

Claims (152)

1. A method comprising:

receiving a frame of a video;

identifying a three-dimensional (3D) object in the frame;

matching the 3D object to a stored 3D object;

generating a first 3D object proxy based on the stored 3D object;

transforming the first 3D object proxy based on the 3D object identified in the frame;

decompressing the frame of the video using a color prediction scheme based on the transformed 3D object proxy and a transformed second 3D object proxy based on the stored 3D object; and

rendering the frame of the video.

2. The method of claim 1 , wherein the decompressing of the frame of the video using the color prediction scheme based on the 3D object and the stored 3D object includes:

generating the second 3D object proxy based on the stored 3D object;

identifying the 3D object in a key frame of the video;

transforming the second 3D object proxy based on the 3D object identified in the key frame;

mapping color attributes from the 3D object to the transformed first 3D object proxy;

mapping color attributes from the 3D object identified in the key frame to the transformed second 3D object proxy; and

generating color attributes for the 3D object based on the color attributes for the transformed first 3D object proxy and the color attributes for the transformed second 3D object proxy.

3. The method of claim 1 , wherein the decompressing of the frame of the video using the color prediction scheme based on the 3D object and the stored 3D object includes:

generating the second 3D object proxy based on the stored 3D object;

identifying the 3D object in a key frame of the video;

transforming the second 3D object proxy based on the 3D object identified in the key frame;

mapping color attributes from the 3D object to the transformed first 3D object proxy; and

generating color attributes for the 3D object based on the color attributes for the transformed first 3D object proxy and default color attributes for the transformed second 3D object proxy.

4. The method of claim 1 , wherein the decompressing of the frame of the video using the color prediction scheme based on the 3D object and the stored 3D object includes:

decoding the first 3D object proxy using an autoencoder;

transforming the decoded first 3D object proxy based on metadata associated with the 3D object;

generating the second 3D object proxy based on the stored 3D object;

decoding the second 3D object proxy using an autoencoder;

identifying the 3D object in a key frame of the video;

transforming the decoded second 3D object proxy based on metadata associated with the 3D object identified in the key frame;

mapping color attributes from the 3D object to the transformed first 3D object proxy;

mapping color attributes from the 3D object identified in the key frame to the transformed second 3D object proxy; and

generating color attributes for the 3D object based on the color attributes for the transformed first 3D object proxy and the color attributes for the transformed second 3D object proxy.

5. The method of claim 1 , wherein the decompressing of the frame of the video using the color prediction scheme based on the 3D object and the stored 3D object includes:

decoding the first 3D object proxy using an autoencoder;

transforming the decoded first 3D object proxy based on metadata associated with the 3D object;

generating the second 3D object proxy based on the stored 3D object;

decoding the second 3D object proxy using an autoencoder;

identifying the 3D object in a key frame of the video;

transforming the decoded second 3D object proxy based on metadata associated with the 3D object identified in the key frame;

mapping color attributes from the 3D object to the transformed first 3D object proxy; and

generating color attributes for the 3D object based on the color attributes for the transformed first 3D object proxy and default attributes for the transformed second 3D object proxy.

6. The method of claim 1 , further comprising:

receiving at least one latent representation for a 3D shape; and

using a machine trained generative modeling technique to:

determine a plurality of mesh attributes associated with the 3D shape;

determining a position associated with the 3D shape;

determining an orientation associated with the 3D shape; and

determining a plurality of color attributes associated with the 3D shape; and

storing the 3D shape as the stored 3D object.

7. The method of claim 1 , wherein rendering the frame of the video includes:

receiving position coordinates of the 3D object relative to an origin coordinate of a background 3D object in a key frame; and

positioning the 3D object in the frame using the position coordinates.

8. The method of claim 1 , further comprising:

receiving a neural network used by an encoder of an autoencoder to reduce a number of variables associated with mesh attributes, position, orientation and color attributes for at least one 3D object of interest;

regenerating points associated with a mesh for the at least one 3D object of interest using the neural network in a decoder of the autoencoder, the regeneration of the points including regenerating position attributes, orientation attributes and color attributes; and

storing the at least one 3D object of interest as the stored 3D object.

9. A method comprising:

receiving a frame of a video;

identifying a three-dimensional (3D) object in the frame;

matching the 3D object to a stored 3D object;

generating a first 3D object proxy based on the stored 3D object;

transforming the first 3D object proxy based on the 3D object identified in the frame;

mapping color attributes from the 3D object to the transformed first 3D object proxy;

decompressing the frame of the video using a color prediction scheme based on the transformed first 3D object proxy and a transformed second 3D object proxy based on the stored 3D object; and

rendering the frame of the video.

10. The method of claim 9 , wherein the decompressing of the frame of the video using the color prediction scheme based on the 3D object and the stored 3D object includes:

generating the second 3D object proxy based on the stored 3D object;

identifying the 3D object in a key frame of the video;

transforming the second 3D object proxy based on the 3D object identified in the key frame;

mapping color attributes from the 3D object identified in the key frame to the transformed second 3D object proxy; and

generating color attributes for the 3D object based on the color attributes for the transformed first 3D object proxy and the color attributes for the transformed second 3D object proxy.

11. The method of claim 9 , wherein the decompressing of the frame of the video using the color prediction scheme based on the 3D object and the stored 3D object includes:

decoding the first 3D object proxy using an autoencoder;

transforming the decoded first 3D object proxy based on metadata associated with the 3D object;

generating the second 3D object proxy based on the stored 3D object;

decoding the second 3D object proxy using an autoencoder;

identifying the 3D object in a key frame of the video;

transforming the decoded second 3D object proxy based on metadata associated with the 3D object identified in the key frame;

mapping color attributes from the 3D object identified in the key frame to the transformed second 3D object proxy; and

generating color attributes for the 3D object based on the color attributes for the transformed first 3D object proxy and the color attributes for the transformed second 3D object proxy.

12. The method of claim 9 , wherein the decompressing of the frame of the video using the color prediction scheme based on the 3D object and the stored 3D object includes:

decoding the first 3D object proxy using an autoencoder;

transforming the decoded first 3D object proxy based on metadata associated with the 3D object;

generating the second 3D object proxy based on the stored 3D object;

decoding the second 3D object proxy using an autoencoder;

identifying the 3D object in a key frame of the video;

transforming the decoded second 3D object proxy based on metadata associated with the 3D object identified in the key frame; and

generating color attributes for the 3D object based on the color attributes for the transformed first 3D object proxy and default attributes for the transformed second 3D object proxy.

13. The method of claim 9 , further comprising:

receiving at least one latent representation for a 3D shape; and

using a machine trained generative modeling technique to:

determine a plurality of mesh attributes associated with the 3D shape;

determining a position associated with the 3D shape;

determining an orientation associated with the 3D shape; and

determining a plurality of color attributes associated with the 3D shape; and

storing the 3D shape as the stored 3D object.

14. The method of claim 9 , wherein rendering the frame of the video includes:

receiving position coordinates of the 3D object relative to an origin coordinate of a background 3D object in a key frame; and

positioning the 3D object in the frame using the position coordinates.

15. The method of claim 9 , further comprising:

receiving a neural network used by an encoder of an autoencoder to reduce a number of variables associated with mesh attributes, position, orientation and color attributes for at least one 3D object of interest;

regenerating points associated with a mesh for the at least one 3D object of interest using the neural network in a decoder of the autoencoder, the regeneration of the points including regenerating position attributes, orientation attributes and color attributes; and

storing the at least one 3D object of interest as the stored 3D object.

16. A method comprising:

receiving a frame of a video;

identifying a three-dimensional (3D) object in the frame;

matching the 3D object to a stored 3D object;

generating a first 3D object proxy based on the stored 3D object;

decoding the first 3D object proxy using an autoencoder;

transforming the decoded first 3D object proxy based on metadata associated with the 3D object;

decompressing the frame of the video using a color prediction scheme based on the transformed first 3D object proxy and a transformed second 3D object proxy based on the stored 3D object; and

rendering the frame of the video.

17. The method of claim 16 , wherein the decompressing of the frame of the video using the color prediction scheme based on the 3D object and the stored 3D object includes:

generating the second 3D object proxy based on the stored 3D object;

identifying the 3D object in a key frame of the video;

transforming the second 3D object proxy based on the 3D object identified in the key frame;

mapping color attributes from the 3D object to the transformed first 3D object proxy;

mapping color attributes from the 3D object identified in the key frame to the transformed second 3D object proxy; and

generating color attributes for the 3D object based on the color attributes for the transformed first 3D object proxy and the color attributes for the transformed second 3D object proxy.

18. The method of claim 16 , wherein the decompressing of the frame of the video using the color prediction scheme based on the 3D object and the stored 3D object includes:

decoding the first 3D object proxy using an autoencoder;

transforming the decoded first 3D object proxy based on metadata associated with the 3D object;

generating the second 3D object proxy based on the stored 3D object;

decoding the second 3D object proxy using an autoencoder;

identifying the 3D object in a key frame of the video;

transforming the decoded second 3D object proxy based on metadata associated with the 3D object identified in the key frame;

mapping color attributes from the 3D object to the transformed first 3D object proxy;

mapping color attributes from the 3D object identified in the key frame to the transformed second 3D object proxy; and

generating color attributes for the 3D object based on the color attributes for the transformed first 3D object proxy and the color attributes for the transformed second 3D object proxy.

19. The method of claim 16 , wherein the decompressing of the frame of the video using the color prediction scheme based on the 3D object and the stored 3D object includes:

decoding the first 3D object proxy using an autoencoder;

transforming the decoded first 3D object proxy based on metadata associated with the 3D object;

generating the second 3D object proxy based on the stored 3D object;

decoding the second 3D object proxy using an autoencoder;

identifying the 3D object in a key frame of the video;

transforming the decoded second 3D object proxy based on metadata associated with the 3D object identified in the key frame;

mapping color attributes from the 3D object to the transformed first 3D object proxy; and

generating color attributes for the 3D object based on the color attributes for the transformed first 3D object proxy and default attributes for the transformed second 3D object proxy.

20. The method of claim 16 , further comprising:

receiving at least one latent representation for a 3D shape; and

using a machine trained generative modeling technique to:

determine a plurality of mesh attributes associated with the 3D shape;

determining a position associated with the 3D shape;

determining an orientation associated with the 3D shape; and

determining a plurality of color attributes associated with the 3D shape; and

storing the 3D shape as the stored 3D object.

21. The method of claim 16 , wherein rendering the frame of the video includes:

receiving position coordinates of the 3D object relative to an origin coordinate of a background 3D object in a key frame; and

positioning the 3D object in the frame using the position coordinates.

22. The method of claim 16 , further comprising:

receiving a neural network used by an encoder of an autoencoder to reduce a number of variables associated with mesh attributes, position, orientation and color attributes for at least one 3D object of interest;

regenerating points associated with a mesh for the at least one 3D object of interest using the neural network in a decoder of the autoencoder, the regeneration of the points including regenerating position attributes, orientation attributes and color attributes; and

storing the at least one 3D object of interest as the stored 3D object.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2018
From: HEMMER, MICHAEL; MAKADIA, AMEESH
To: GOOGLE LLC
Reel/Frame 047362/0907 →
Continuity (1)
Related Publication 20200099954A1 · Mar 26, 2020
Cited By (2)
US 12,288,295 US 12,519,976