US2016071234A1PendingUtilityA1

Block-based lossless compression of geometric data

Assignee: NVIDIA CORPPriority: Sep 4, 2014Filed: Jun 11, 2015Published: Mar 10, 2016
Est. expirySep 4, 2034(~8.1 yrs left)· nominal 20-yr term from priority
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-modified
What 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.