IP Library › Granted Patent US 12,020,378
Granted Patent B2
US 12,020,378 · App. 17/400,065 · Granted Jun 25, 2024

Compressed geometry rendering and streaming

Inventors: Dieter Schmalstieg (Graz, AT); Markus Steinberger (Graz, AT); Daniel Mlakar (Graz, AT)
Assignee: QUALCOMM Incorporated
G06T17/205G06T9/001G06T15/005G06T17/10
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 12,020,378
App. No.
17/400,065
Granted
Jun 25, 2024
Kind
B2
Abstract

The present disclosure relates to methods and apparatus for graphics processing. The apparatus may identify at least one mesh associated with at least one frame. The apparatus may also divide the at least one mesh into a plurality of groups of primitives, each of the plurality of groups of primitives including at least one primitive and a plurality of vertices. The apparatus may also compress the plurality of groups of primitives into a plurality of groups of compressed primitives, the plurality of groups of compressed primitives being associated with random access. Additionally, the apparatus may decompress the plurality of groups of compressed primitives, at least one first group of the plurality of groups of compressed primitives being decompressed in parallel with at least one second group of the plurality of groups of compressed primitives.

Claims (52)

1. An apparatus for graphics processing, comprising:

memory;

at least one processor coupled to the memory and configured to:

identify at least one mesh associated with at least one frame;

divide the at least one mesh into a plurality of groups of primitives, each of the plurality of groups of primitives including at least one primitive and a plurality of vertices;

compress the plurality of groups of primitives into a plurality of groups of compressed primitives, the plurality of groups of compressed primitives being associated with random access;

decompress the plurality of groups of compressed primitives, wherein the at least one processor is configured to decompress at least one first group of the plurality of groups of compressed primitives in a first level-of-detail (LOD) in parallel with at least one second group of the plurality of groups of compressed primitives in a second LOD, wherein the at least one processor is configured to decompress at least one first primitive in the at least one first group in parallel with at least one other first primitive in the at least one first group and decompress at least one second primitive in the at least one second group in parallel with at least one other second primitive in the at least one second group, and wherein the at least one processor is configured to decompress and render one or more groups of compressed primitives of the plurality of groups of compressed primitives prior to one or more other groups of compressed primitives of the plurality of groups of compressed primitives, wherein the at least one first group of the plurality of groups of compressed primitives is adjacent to the at least one second group of the plurality of groups of compressed primitives, wherein at least one vertex of the at least one first group corresponds to at least one other vertex of the at least one second group, wherein the at least one processor is configured to store the at least one vertex of the at least one first group in the at least one first group, and wherein the at least one processor is configured to store the at least one other vertex of the at least one second group in the at least one second group; and

a transceiver coupled to the at least one processor, wherein the first LOD is a coarse LOD and the second LOD is a fine LOD such that the first LOD is coarser than the second LOD, wherein a first number of primitives in the at least one first group is less than a second number of primitives in the at least one second group, such that the first number of primitives in the at least one first group that is decompressed in the first LOD is less than, and decompressed in parallel with, the second number of primitives in the at least one second group that is decompressed in the second LOD.

2. The apparatus of claim 1 , wherein the at least one processor is configured to decompress the at least one first group of the plurality of groups of compressed primitives with at least one of a mesh shader or an amplification shader in parallel with the at least one second group of the plurality of groups of compressed primitives.

3. The apparatus of claim 2 , wherein the at least one processor is configured to decompress at least one vertex in the at least one first group in parallel with at least one other vertex in the at least one first group.

4. The apparatus of claim 2 , wherein the at least one processor is configured to decompress at least one vertex in the at least one second group in parallel with at least one other vertex in the at least one second group.

5. The apparatus of claim 1 , wherein each of the plurality of groups of primitives corresponds to a meshlet.

6. The apparatus of claim 1 , wherein the at least one processor is further configured to:

store the plurality of groups of compressed primitives in a buffer or a first memory.

7. The apparatus of claim 1 , wherein the at least one processor is configured to transmit the plurality of groups of compressed primitives via one or more data packets, wherein the one or more data packets are one or more independent data packets or one or more user datagram protocol (UDP) packets.

8. The apparatus of claim 1 , wherein the at least one processor is further configured to:

render, upon decompressing the plurality of groups of compressed primitives, at least one image corresponding to the plurality of groups of compressed primitives; and

transmit the plurality of groups of compressed primitives,

wherein the at least one processor is configured to decompress the plurality of groups of compressed primitives with at least one of a mesh shader or an amplification shader; and

wherein the at least one processor is configured to transmit the plurality of groups of compressed primitives via one or more data packets.

9. A method of graphics processing, comprising:

identifying at least one mesh associated with at least one frame;

dividing the at least one mesh into a plurality of groups of primitives, each of the plurality of groups of primitives including at least one primitive and a plurality of vertices;

compressing the plurality of groups of primitives into a plurality of groups of compressed primitives, the plurality of groups of compressed primitives being associated with random access; and

decompressing the plurality of groups of compressed primitives, wherein at least one first group of the plurality of groups of compressed primitives is decompressed in a first level-of-detail (LOD) in parallel with at least one second group of the plurality of groups of compressed primitives in a second LOD, wherein at least one first primitive in the at least one first group is decompressed in parallel with at least one other first primitive in the at least one first group and at least one second primitive in the at least one second group is decompressed in parallel with at least one other second primitive in the at least one second group, wherein one or more groups of compressed primitives of the plurality of groups of compressed primitives are decompressed and rendered prior to one or more other groups of compressed primitives of the plurality of groups of compressed primitives, wherein the at least one first group of the plurality of groups of compressed primitives is adjacent to the at least one second group of the plurality of groups of compressed primitives, wherein at least one vertex of the at least one first group corresponds to at least one other vertex of the at least one second group, wherein the at least one vertex of the at least one first group is stored in the at least one first group, and wherein the at least one other vertex of the at least one second group is stored in the at least one second group, wherein the first LOD is a coarse LOD and the second LOD is a fine LOD such that the first LOD is coarser than the second LOD, wherein a first number of primitives in the at least one first group is less than a second number of primitives in the at least one second group, such that the first number of primitives in the at least one first group that is decompressed in the first LOD is less than, and decompressed in parallel with, the second number of primitives in the at least one second group that is decompressed in the second LOD.

10. The method of claim 9 , wherein the at least one first group of the plurality of groups of compressed primitives is decompressed by at least one of a mesh shader or an amplification shader in parallel with the at least one second group of the plurality of groups of compressed primitives.

11. The method of claim 10 , wherein at least one vertex in the at least one first group is decompressed in parallel with at least one other vertex in the at least one first group.

12. The method of claim 10 , wherein at least one vertex in the at least one second group is decompressed in parallel with at least one other vertex in the at least one second group.

13. The method of claim 9 , wherein each of the plurality of groups of primitives corresponds to a meshlet.

14. The method of claim 9 , further comprising:

storing the plurality of groups of compressed primitives in a buffer or memory.

15. The method of claim 9 , wherein the plurality of groups of compressed primitives are transmitted via one or more data packets, wherein the one or more data packets are one or more independent data packets or one or more user datagram protocol (UDP) packets.

16. The method of claim 9 , further comprising:

rendering, upon decompressing the plurality of groups of compressed primitives, at least one image corresponding to the plurality of groups of compressed primitives; and

transmitting the plurality of groups of compressed primitives,

wherein the plurality of groups of compressed primitives are decompressed by at least one of a mesh shader or an amplification shader, and

wherein the plurality of groups of compressed primitives are transmitted via one or more data packets.

17. An apparatus for graphics processing, comprising:

means for identifying at least one mesh associated with at least one frame;

means for dividing the at least one mesh into a plurality of groups of primitives, each of the plurality of groups of primitives including at least one primitive and a plurality of vertices;

means for compressing the plurality of groups of primitives into a plurality of groups of compressed primitives, the plurality of groups of compressed primitives being associated with random access; and

means for decompressing the plurality of groups of compressed primitives, wherein at least one first group of the plurality of groups of compressed primitives is decompressed in a first level-of-detail (LOD) in parallel with at least one second group of the plurality of groups of compressed primitives in a second LOD, wherein at least one first primitive in the at least one first group is decompressed in parallel with at least one other first primitive in the at least one first group and at least one second primitive in the at least one second group is decompressed in parallel with at least one other second primitive in the at least one second group, wherein one or more groups of compressed primitives of the plurality of groups of compressed primitives are decompressed and rendered prior to one or more other groups of compressed primitives of the plurality of groups of compressed primitives, wherein the at least one first group of the plurality of groups of compressed primitives is adjacent to the at least one second group of the plurality of groups of compressed primitives, wherein at least one vertex of the at least one first group corresponds to at least one other vertex of the at least one second group, wherein the at least one vertex of the at least one first group is stored in the at least one first group, and wherein the at least one other vertex of the at least one second group is stored in the at least one second group, wherein the first LOD is a coarse LOD and the second LOD is a fine LOD such that the first LOD is coarser than the second LOD, wherein a first number of primitives in the at least one first group is less than a second number of primitives in the at least one second group, such that the first number of primitives in the at least one first group that is decompressed in the first LOD is less than, and decompressed in parallel with, the second number of primitives in the at least one second group that is decompressed in the second LOD.

18. The apparatus of claim 17 , further comprising:

means for rendering, upon decompressing the plurality of groups of compressed primitives, at least one image corresponding to the plurality of groups of compressed primitives; and

means for transmitting the plurality of groups of compressed primitives,

wherein the plurality of groups of compressed primitives are decompressed by at least one of a mesh shader or an amplification shader, and

wherein the plurality of groups of compressed primitives are transmitted via one or more data packets.

19. A non-transitory computer-readable medium storing computer executable code for graphics processing, the code when executed by a processor causes the processor to:

identify at least one mesh associated with at least one frame;

divide the at least one mesh into a plurality of groups of primitives, each of the plurality of groups of primitives including at least one primitive and a plurality of vertices;

compress the plurality of groups of primitives into a plurality of groups of compressed primitives, the plurality of groups of compressed primitives being associated with random access; and

decompress the plurality of groups of compressed primitives, wherein at least one first group of the plurality of groups of compressed primitives is decompressed in a first level-of-detail (LOD) in parallel with at least one second group of the plurality of groups of compressed primitives in a second LOD, wherein at least one first primitive in the at least one first group is decompressed in parallel with at least one other first primitive in the at least one first group and at least one second primitive in the at least one second group is decompressed in parallel with at least one other second primitive in the at least one second group, wherein one or more groups of compressed primitives of the plurality of groups of compressed primitives are decompressed and rendered prior to one or more other groups of compressed primitives of the plurality of groups of compressed primitives, wherein the at least one first group of the plurality of groups of compressed primitives is adjacent to the at least one second group of the plurality of groups of compressed primitives, wherein at least one vertex of the at least one first group corresponds to at least one other vertex of the at least one second group, wherein the at least one vertex of the at least one first group of primitives is stored in the at least one first group, and wherein the at least one other vertex of the at least one second group is stored in the at least one second group, wherein the first LOD is a coarse LOD and the second LOD is a fine LOD such that the first LOD is coarser than the second LOD, wherein a first number of primitives in the at least one first group is less than a second number of primitives in the at least one second group, such that the first number of primitives in the at least one first group that is decompressed in the first LOD is less than, and decompressed in parallel with, the second number of primitives in the at least one second group that is decompressed in the second LOD.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2022
From: SCHMALSTIEG, DIETER; STEINBERGER, MARKUS; MLAKAR, DANIEL
To: TECHNISCHE UNIVERSITAT GRAZ
Reel/Frame 060091/0548 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2022
From: TECHNISCHE UNIVERSITAT GRAZ
To: QUALCOMM TECHNOLOGIES, INC.
Reel/Frame 060258/0539 →
Continuity (2)
Provisional Application 63067129 · Aug 18, 2020
Related Publication 20220058872A1 · Feb 24, 2022
Cited By (1)
US 12,567,209