# US 12,192,518 B2 · Video encoding by providing geometric proxies

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,192,518 B2
- Document ID: US12192518B2
- Status: Granted
- Kind: B2
- Application number: 17/443,913
- Filed: 2021-07-28
- Published: 2021-11-18
- Granted: 2025-01-07
- Earliest claimed: 2018-09-26
- Assignees: Google Inc.
- Applicants: Google LLC
- Inventors: Michael Hemmer; Ameesh Makadia
- Web page: https://patentgrep.com/patent/US12192518B2

## CPC

- G06T 9/001: {Model-based coding, e.g. wire frame}
- H04N 19/597: specially adapted for multi-view video sequence encoding
- G06T 9/002: {using neural networks}
- G06T 9/004: {Predictors, e.g. intraframe, interframe coding}
- H04N 19/186: the unit being a colour or a chrominance component
- H04N 19/20: using video object coding
- H04N 19/42: characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation (H04N19/635 takes precedence)
- H04N 19/593: involving spatial prediction techniques
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## 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

### Claim 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;
compressing 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
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.

### Claim 2 (depends on 1)

The method of claim 1, wherein the compressing 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 residuals 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.

### Claim 3 (depends on 1)

The method of claim 1, wherein the compressing 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 residuals 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.

### Claim 4 (depends on 1)

The method of claim 1, wherein the compressing of the frame of the video using the color prediction scheme based on the 3D object and the stored 3D object includes:
encoding the first 3D object proxy using an auto encoder, wherein the transforming the first 3D object proxy includes transforming the encoded first 3D object proxy based on the 3D object identified in the frame;
generating the second 3D object proxy based on the stored 3D object;
encoding the second 3D object proxy using an autoencoder;
identifying the 3D object in a key frame of the video;
transforming the encoded 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 residuals 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.

### Claim 5 (depends on 1)

The method of claim 1, wherein the compressing of the frame of the video using the color prediction scheme based on the 3D object and the stored 3D object includes:
encoding the first 3D object proxy using an auto encoder, wherein the transforming the first 3D object proxy includes transforming the encoded first 3D object proxy based on the 3D object identified in the frame;
generating the second 3D object proxy based on the stored 3D object;
encoding the second 3D object proxy using an autoencoder;
identifying the 3D object in a key frame of the video;
transforming the encoded 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 residuals 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.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
before storing the 3D object:
identifying at least one 3D object of interest associated with the video;
determining a plurality of mesh attributes associated with the 3D object of interest;
determining a position associated with the 3D object of interest;
determining an orientation associated with the 3D object of interest;
determining a plurality of color attributes associated with the 3D object of interest; and
reducing a number of variables associated with the mesh attributes for the 3D object of interest using an autoencoder.

### Claim 7 (depends on 1)

The method of claim 1, wherein compressing the frame of the video includes determining position coordinates of the 3D object relative to an origin coordinate of a background 3D object in a key frame.

### Claim 8 (depends on 1)

The method of claim 1, wherein
the stored 3D object includes default color attributes, and
the color prediction scheme uses the default color attributes.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
identifying at least one 3D object of interest associated with the video;
generating at least one stored 3D object based on the at least one 3D object of interest, each of the at least one stored 3D object being defined by a mesh including a collection of points connected by faces, each point storing at least one attribute, the at least one attribute including a position coordinate for the respective point; and
storing the at least one stored 3D object in association with the video.

### Claim 10

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 3D object proxy based on the stored 3D object;
transforming the 3D object proxy based on the 3D object identified in the frame;
mapping color attributes from the 3D object to the transformed 3D object proxy;
compressing the frame of the video using a color prediction scheme based on the transformed 3D object proxy, a second transformed 3D object proxy and the stored 3D object; and
storing the frame of the video.

### Claim 11 (depends on 10)

The method of claim 10, wherein the 3D object proxy is a first 3D object proxy and the compressing 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 as the second transformed 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.

### Claim 12 (depends on 10)

The method of claim 10, wherein the 3D object proxy is a first 3D object proxy and the compressing of the frame of the video using the color prediction scheme based on the 3D object and the stored 3D object includes:
encoding the first 3D object proxy using an autoencoder;
transforming the encoded first 3D object proxy based on metadata associated with the 3D object;
generating the second 3D object proxy based on the stored 3D object;
encoding the second 3D object proxy using an autoencoder;
identifying the 3D object in a key frame of the video;
transforming the encoded second 3D object proxy as the second transformed 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.

### Claim 13 (depends on 10)

The method of claim 10, wherein the 3D object proxy is a first 3D object proxy and the compressing of the frame of the video using the color prediction scheme based on the 3D object and the stored 3D object includes:
encoding the first 3D object proxy using an autoencoder;
transforming the encoded first 3D object proxy based on metadata associated with the 3D object;
generating the second 3D object proxy based on the stored 3D object;
encoding the second 3D object proxy using an autoencoder;
identifying the 3D object in a key frame of the video;
transforming the encoded second 3D object proxy as the second transformed 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.

### Claim 14 (depends on 10)

The method of claim 10, 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.

### Claim 15 (depends on 10)

The method of claim 10, 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;
generating points associated with a mesh for the at least one 3D object of interest using the neural network in an encoder of the autoencoder, the generation of the points including generating position attributes, orientation attributes and color attributes; and
storing the at least one 3D object of interest as the stored 3D object.

### Claim 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 3D object proxy based on the stored 3D object;
encoding the 3D object proxy using an autoencoder;
transforming the encoded 3D object proxy as a first transformed 3D object proxy based on metadata associated with the 3D object;
compressing the frame of the video using a color prediction scheme based on the transformed 3D object proxy, a second transformed 3D object proxy, and the stored 3D object; and
storing the frame of the video.

### Claim 17 (depends on 16)

The method of claim 16, wherein the 3D object proxy is a first 3D object proxy and the compressing 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 as the second transformed 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.

### Claim 18 (depends on 16)

The method of claim 16, wherein the 3D object proxy is a first 3D object proxy and the compressing of the frame of the video using the color prediction scheme based on the 3D object and the stored 3D object includes:
encoding the first 3D object proxy using an autoencoder;
transforming the encoded first 3D object proxy based on metadata associated with the 3D object;
generating the second 3D object proxy based on the stored 3D object;
encoding the second 3D object proxy using an autoencoder;
identifying the 3D object in a key frame of the video;
transforming the encoded second 3D object proxy as the second transformed 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.

### Claim 19 (depends on 16)

The method of claim 16, wherein the 3D object proxy is a first 3D object proxy and the compressing of the frame of the video using the color prediction scheme based on the 3D object and the stored 3D object includes:
encoding the first 3D object proxy using an autoencoder;
transforming the encoded first 3D object proxy based on metadata associated with the 3D object;
generating the second 3D object proxy based on the stored 3D object;
encoding the second 3D object proxy using an autoencoder;
identifying the 3D object in a key frame of the video;
transforming the encoded second 3D object proxy as the second transformed 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.

### Claim 20 (depends on 16)

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.

### Claim 21 (depends on 16)

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;
generating points associated with a mesh for the at least one 3D object of interest using the neural network in an encoder of the autoencoder, the generation of the points including generating position attributes, orientation attributes and color attributes; and
storing the at least one 3D object of interest as the stored 3D object.
