US2016071234A1PendingUtilityA1
Block-based lossless compression of geometric data
Est. expirySep 4, 2034(~8.1 yrs left)· nominal 20-yr term from priority
Inventors:Jaakko T. LehtinenTimo Oskari AilaTero Tapani KarrasAlexander KellerNikolaus BinderCarsten WaechterSamuli Matias Laine
G06T 9/001H04N 19/44G06T 9/40H04N 19/174G06T 15/08G06T 15/06G06F 16/2246G06F 16/9027G06T 15/10G06F 16/254G06T 15/80G06T 17/10G06T 1/60G06T 15/005H04N 19/96H04N 19/129
54
PatentIndex Score
0
Cited by
0
References
0
Claims
Abstract
An apparatus, computer readable medium, and method are disclosed for decompressing compressed geometric data stored in a lossless compression format. The compressed geometric data resides within a compression block sized according to a system cache line. An indirection technique maps a global identifier value in a linear identifier space to corresponding variable rate compressed data. The apparatus may include decompression circuitry within a graphics processing unit configured to perform ray-tracing.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method, comprising:
receiving a compression block configured to store a header and compressed geometric data for at least two geometric primitives; identifying a location within the compression block of a first set of compressed geometric data for a first geometric primitive of the at least two geometric primitives, based on a first local index; and generating a first set of decompressed geometric data for the first geometric primitive by decompressing the first set of compressed geometric data, based on at least a first anchor value, wherein the first set of decompressed geometric data comprises more bits of data than the first set of compressed geometric data.
2 . The method of claim 1 , wherein the header includes a mode subfield that controls interpretation of bits in the compression block according to two or more enumerated formats.
3 . The method of claim 2 , wherein at least one of the two or more enumerated formats includes an uncompressed format and at least one of the two or more enumerated formats includes a compressed format.
4 . The method of claim 1 , wherein the compressed geometric data includes a vertex positions field comprising a vertex position anchor subfield that specifies a three-dimensional anchor position that includes the first anchor value, and two or more vertex position offset subfields that each specifies a three-dimensional position offset relative to the three-dimensional anchor position.
5 . The method of claim 4 , wherein the header includes a set of three subfields for specifying a bit precision for each of the three dimensions associated with the two or more vertex position offset subfields.
6 . The method of claim 1 , wherein the compressed geometric data includes a topology field comprising vertex identifiers, and three different vertex identifiers are associated with at least one of the at least two geometric primitives, wherein each vertex identifier references either one three-dimensional position offset or the three-dimensional anchor position.
7 . The method of claim 6 , wherein a first vertex identifier associated with a first of the at least two geometric primitives refers to a first three-dimensional position offset, and a second vertex identifier associated with a second of the at least two geometric primitives refers to the first three-dimensional position offset.
8 . The method of claim 1 , wherein the compressed geometric data includes a topology field comprising alpha bits, wherein a different alpha bit is associated with each of the at least two geometric primitives.
9 . The method of claim 1 , wherein the compressed geometric data includes a topology field comprising primitive metadata values, wherein a different primitive metadata value is associated with each of the at least two geometric primitives.
10 . The method of claim 1 , wherein the first geometric primitive is associated with a global identifier, and the global identifier deter nines an indirection block number that identifies an indirection block.
11 . The method of claim 10 , wherein the indirection block number is determined by dividing the value of the global identifier with a number of payload bits and rounding the quotient down to the nearest integer.
12 . The method of claim 10 , wherein the indirection block includes a compression block index subfield, a local index subfield, and payload field.
13 . The method of claim 12 , wherein the compression block and the first local index are determined by the global identifier in conjunction with the compression block index subfield, the local index subfield, and the payload field.
14 . A system, comprising:
a memory; a processing unit configured to generate a global identifier; and a decompression unit coupled to the processing unit and the memory, and configured to:
receive a compression block configured to store a header and compressed geometric data for at least two geometric primitives;
identify a location within the compression block of a first set of compressed geometric data for a first geometric primitive of the at least two geometric primitives, based on a first local index; and
generate a first set of decompressed geometric data for the first geometric primitive by decompressing the first set of compressed geometric data, based on at least a first anchor value,
wherein the first set of decompressed geometric data comprises more bits of data than the first set of compressed geometric data, and
wherein the memory is configured to store the compression block.
15 . The system of claim 14 , wherein the compressed geometric data includes a vertex positions field comprising a vertex position anchor subfield that specifies a three-dimensional anchor position that includes the first anchor value, and two or more vertex position offset subfields that each specifies a three-dimensional position offset relative to the three-dimensional anchor position, and wherein the header includes a set of three subfields for specifying a bit precision for each of the three dimensions associated with the two or more vertex position offset subfields.
16 . The system of claim 14 , wherein the compressed geometric data includes a topology field comprising vertex identifiers, wherein three different vertex identifiers are associated with at least one of the at least two geometric primitives, and wherein each vertex identifier references either one three-dimensional position offset or the three-dimensional anchor position, and wherein a first vertex identifier associated with a first of the at least two geometric primitives refers to a first three-dimensional position offset, and a second vertex identifier associated with a second of the at least two geometric primitives refers to the first three-dimensional position offset.
17 . The system of claim 14 , wherein the compressed geometric data includes a topology field comprising primitive metadata values, and a different primitive metadata value is associated with each of the at least two geometric primitives.
18 . The system of claim 14 , wherein the memory is further configured to store an indirection block, and wherein the first geometric primitive is associated with a global identifier, and wherein the global identifier determines an indirection block number that identifies the indirection block, and wherein the indirection block number is determined by dividing the value of the global identifier with a number of payload bits and rounding the quotient down to the nearest integer, and wherein the indirection block includes a compression block index subfield, a local index subfield, and payload field, and wherein the compression block and the first local index are determined by the global identifier in conjunction with the compression block index subfield, the local index subfield, and the payload field.
19 . The system of claim 14 , further comprising a caching system with cache lines configured to store a number of cache line bits, and wherein the compression block includes the number of cache line bits, and wherein an indirection block includes the number of cache line bits.
20 . A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to perform steps comprising:
receiving a compression block configured to store a header and compressed geometric data for at least two geometric primitives; identifying a location within the compression block of a first set of compressed geometric data for a first geometric primitive of the at least two geometric primitives, based on a first local index; and generating a first set of decompressed geometric data for the first geometric primitive by decompressing the first set of compressed geometric data, based on at least a first anchor value, wherein the first set of decompressed geometric data comprises more bits of data than the first set of compressed geometric data.Join the waitlist — get patent alerts
Track US2016071234A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.