IP Library Granted Patent US 11,094,087
Granted Patent B2
US 11,094,087 · App. 16/450,280 · Granted Aug 17, 2021

Dual serving scheme for LOD sequences

Inventor: Michael Hemmer (San Francisco, CA)
Assignee: GOOGLE LLC
G06T9/00G06T17/20G06T2210/36H04L67/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,094,087
App. No.
16/450,280
Granted
Aug 17, 2021
Kind
B2
Abstract

Techniques of compressing level of detail (LOD) data involve generating a codec that can perform progressive refinement on a single rate decoded LOD. Nevertheless, by generating a small amount of extra information in a single rate decoded LOD, a progressive refiner can use the information provided in the single rate decoded LOD to refine the LOD. For example, in some implementations, the extra information is a corner of a face of a mesh; the progressive decoder may then begin traversal of the mesh from that corner for refinement. It is noted that the single rate decoded LODs are able to be refined by the same refinement information as the progressively decoded LODs.

Claims (61)

1. A method, comprising:

receiving, by processing circuitry of a server computer, surface data related to a surface of a three-dimensional object;

performing, by the processing circuitry, (a) a progressive encoding on the surface data to produce progressive encoded surface data and (b) a progressive decoding operation on the progressive encoded surface data to obtain (i) a first level of detail (LOD) representing the surface, (ii) a second LOD representing the surface that has less detail than the first LOD, (iii) a third LOD representing the surface that has less detail than the second LOD, and (iv) first refinement data representing the first LOD as a refinement of the second LOD, the first LOD including a first mesh LOD for the surface, the first mesh LOD including a first plurality of faces and the second LOD includes a second mesh LOD for the surface, the second mesh LOD including a second plurality of faces;

performing, by the processing circuitry, (a) a single rate encoding of the first LOD to obtain a first single rate compressed data package representing the first LOD and (b) a single rate encoding of the second LOD to obtain a second single rate compressed data package representing the second LOD;

performing, by the processing circuitry, a single rate decoding of the second single rate compressed data package to produce a second single rate decoded LOD; and

generating, by the processing circuitry, progressive indicator data from the first refinement data and the second single rate-decoded LOD, the progressive indicator data enabling a refinement of the second single rate decoded LOD in combination with the first refinement data, the progressive indicator data including a corner identifier identifying an initial corner of a face of the second plurality of faces from which a traversal of the second mesh LOD is defined, the initial corner of the face being associated with a triplet of indices, the triplet including index identifiers of an associated vertex, an opposite corner, and an adjacent corner.

2. The method as in claim 1 , further comprising:

receiving, from a client computer, a request indicating the first LOD; and

in response to the request, transmitting, to the client computer, package data including the second single rate compressed data package and the progressive indicator data to the client computer, the client computer being configured to generate the first LOD from the second single rate compressed data package and the progressive indicator data.

3. The method as in claim 1 , further comprising:

receiving, from a client computer, a request indicating the first LOD, the request including state data indicating a state of the client computer;

in response to receiving the request, performing a package selection operation based on the state data to produce, as selected package data, one of (i) first package data including the first refinement data to the client computer, (ii) second package data including the first refinement data and the progressive indicator data to the client computer, or (iii) third package data including the first single rate compressed data package; and

transmitting, to the client computer, the selected package data.

4. The method as in claim 3 , wherein the state data indicates that the second LOD is available to the client computer as the second progressive decoded LOD, and

wherein the selected package data is the first package data.

5. The method as in claim 3 , wherein the state data indicates that the second LOD is available to the client computer as the second single rate decoded LOD, and

wherein the selected package data is the second package data.

6. The method as in claim 1 ,

wherein performing the progressive encoding operation includes performing a mesh reduction operation on the first mesh LOD to produce the second mesh LOD.

7. The method as in claim 1 , wherein the progressive indicator data further includes a face identifier identifying the face from which the traversal of the second mesh LOD begins.

8. A method, comprising:

transmitting, to a server computer by processing circuitry of a client computer, a request for a first level of detail (LOD) representing a surface of a three-dimensional object;

after transmitting the request, receiving, by the processing circuitry from the server computer, package data including a second single rate compressed data package and progressive indicator data, the second single rate compressed data package including a single rate encoding of a second LOD, the second LOD representing the surface with less detail than the first LOD, the first LOD including a first mesh LOD for the surface, the first mesh LOD including a first plurality of faces and the second LOD includes a second mesh LOD for the surface, the second mesh LOD including a second plurality of faces, the progressive indicator data including a corner identifier identifying an initial corner of a face of the second plurality of faces from which a traversal of the second mesh LOD is defined, the initial corner of the face being associated with a triplet of indices, the triplet including index identifiers of an associated vertex, an opposite corner, and an adjacent corner;

performing, by the processing circuitry, a single rate decoding operation on the single rate encoding of the second LOD to produce a single rate decoded second LOD; and

performing, by the processing circuitry, a progressive refinement operation on the single rate decoded second LOD and the progressive indicator data to produce the first LOD.

9. A computer program product comprising a nontransitory storage medium, the computer program product including code that, when executed by processing circuitry of a user device configured to encode information related to a surface of a three-dimensional object, causes the processing circuitry to perform a method, the method comprising:

receiving surface data related to a surface of a three-dimensional object;

performing (a) a progressive encoding on the surface data to produce progressive encoded surface data and (b) a progressive decoding operation on the progressive encoded surface data to obtain (i) a first level of detail (LOD) representing the surface, (ii) a second LOD representing the surface that has less detail than the first LOD, (iii) a third LOD representing the surface that has less detail than the second LOD, and (iv) first refinement data representing the first LOD as a refinement of the second LOD, the first LOD including a first mesh LOD for the surface, the first mesh LOD including a first plurality of faces and the second LOD includes a second mesh LOD for the surface, the second mesh LOD including a second plurality of faces;

performing (a) a single rate encoding of the first LOD to obtain a first single rate compressed data package representing the first LOD and (b) a single rate encoding of the second LOD to obtain a second single rate compressed data package representing the second LOD;

performing a single rate decoding of the second single rate compressed data package to produce a second single rate decoded LOD; and

generating progressive indicator data from the first refinement data and the second single rate-decoded LOD, the progressive indicator data representing data from which the first LOD is obtained from the second LOD after performing the progressive decoding operation, the progressive indicator data including a corner identifier identifying an initial corner of a face of the second plurality of faces from which a traversal of the second mesh LOD is defined, the initial corner of the face being associated with a triplet of indices, the triplet including index identifiers of an associated vertex, an opposite corner, and an adjacent corner.

10. The computer program product as in claim 9 , wherein the method further comprises:

receiving, from a client computer, a request indicating the first LOD; and

in response to the request, transmitting, to the client computer, package data including the second single rate compressed data package and the progressive indicator data to the client computer, the client computer being configured to generate the first LOD from the second single rate compressed data package and the progressive indicator data.

11. The computer program product as in claim 9 , wherein the method further comprises:

receiving, from a client computer, a request indicating the first LOD, the request including state data indicating a state of the client computer;

in response to receiving the request, performing a package selection operation based on the state data to produce, as selected package data, one of (i) first package data including the first refinement data to the client computer, (ii) second package data including the first refinement data and the progressive indicator data to the client computer, or (iii) third package data including the first single rate compressed data package; and

transmitting, to the client computer, the selected package data.

12. The computer program product as in claim 11 , wherein the state data indicates that the second LOD is available to the client computer as the second progressive decoded LOD, and

wherein the selected package data is the first package data.

13. The computer program product as in claim 11 , wherein the state data indicates that the second LOD is available to the client computer as the second single rate decoded LOD, and

wherein the selected package data is the second package data.

14. An electronic apparatus configured to encode information related to a surface of a three-dimensional object, the electronic apparatus comprising:

memory; and

controlling circuitry coupled to the memory, the controlling circuitry being configured to:

receive surface data related to a surface of a three-dimensional object;

perform (a) a progressive encoding on the surface data to produce progressive encoded surface data and (b) a progressive decoding operation on the progressive encoded surface data to obtain (i) a first level of detail (LOD) representing the surface, (ii) a second LOD representing the surface that has less detail than the first LOD, (iii) a third LOD representing the surface that has less detail than the second LOD, and (iv) first refinement data representing the first LOD as a refinement of the second LOD, the first LOD including a first mesh LOD for the surface, the first mesh LOD including a first plurality of faces and the second LOD includes a second mesh LOD for the surface, the second mesh LOD including a second plurality of faces;

perform (a) a single rate encoding of the first LOD to obtain a first single rate compressed data package representing the first LOD and (b) a single rate encoding of the second LOD to obtain a second single rate compressed data package representing the second LOD;

perform a single rate decoding of the second single rate compressed data package to produce a second single rate decoded LOD; and

generate progressive indicator data from the first refinement data and the second single rate-decoded LOD, the progressive indicator data representing data from which the first LOD is obtained from the second LOD after performing the progressive decoding operation, the progressive indicator data including a corner identifier identifying an initial corner of a face of the second plurality of faces from which a traversal of the second mesh LOD is defined, the initial corner of the face being associated with a triplet of indices, the triplet including index identifiers of an associated vertex, an opposite corner, and an adjacent corner.

15. The electronic apparatus as in claim 14 , wherein the controlling circuitry is further configured to:

receive, from a client computer, a request indicating the first LOD; and

in response to the request, transmit, to the client computer, package data including the second single rate compressed data package and the progressive indicator data to the client computer, the client computer being configured to generate the first LOD from the second single rate compressed data package and the progressive indicator data.

16. The electronic apparatus as in claim 14 , wherein the controlling circuitry is further configured to:

receive, from a client computer, a request indicating the first LOD, the request including state data indicating a state of the client computer;

in response to receiving the request, perform a package selection operation based on the state data to produce, as selected package data, one of (i) first package data including the first refinement data to the client computer, (ii) second package data including the first refinement data and the progressive indicator data to the client computer, or (iii) third package data including the first single rate compressed data package; and

transmit, to the client computer, the selected package data.

17. The electronic apparatus as in claim 16 , wherein the state data indicates that the second LOD is available to the client computer, and

wherein the selected package data is the first package data.

18. The electronic apparatus as in claim 16 , wherein the state data indicates that the second LOD is available to the client computer as the second single rate decoded LOD, and

wherein the selected package data is the second package data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2019
From: HEMMER, MICHAEL
To: GOOGLE LLC
Reel/Frame 049909/0707 →
Continuity (1)
Related Publication 20200402261A1 · Dec 24, 2020