Compressing and decompressing graphics data using gosub-type instructions and direct and indirect attribute settings
First Claim
1. A computer software program embodied on a computer-readable medium, wherein the computer software program comprises a plurality of instructions, wherein the plurality of instructions are configured to:
- receive a set of 3D geometry data including a plurality of vertices;
compress the set of 3D geometry data into a plurality of blocks;
encode direct attribute instructions in the blocks, wherein the direct attribute instructions comprise attribute state information; and
encode indirect attribute instructions in the blocks, wherein the indirect attribute instructions comprise an indirect reference to the attribute state information;
wherein the attribute state information is usable during decompression to set the attributes of the vertices.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and instruction set for geometry compression and decompression is disclosed. The method and instruction set includes one or more of the following attributes and instructions: a gosub-type instruction, a goto-type instruction, direct and indirect attribute-setting instructions, and matrix manipulation instructions. The instructions may be embedded within individual vertex descriptions, or they may be specified independent of any individual vertex in order to set global state information that applies to all vertices that follow the instruction. Individual vertex instructions may temporarily override the global settings. A graphics system configured to execute the instruction set is also disclosed.
-
Citations
74 Claims
-
1. A computer software program embodied on a computer-readable medium, wherein the computer software program comprises a plurality of instructions, wherein the plurality of instructions are configured to:
-
receive a set of 3D geometry data including a plurality of vertices;
compress the set of 3D geometry data into a plurality of blocks;
encode direct attribute instructions in the blocks, wherein the direct attribute instructions comprise attribute state information; and
encode indirect attribute instructions in the blocks, wherein the indirect attribute instructions comprise an indirect reference to the attribute state information;
wherein the attribute state information is usable during decompression to set the attributes of the vertices.- View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 30)
-
-
16. A computer software program embodied on a computer-readable medium, wherein the computer software program comprises a plurality of instructions, wherein the plurality of instructions are configured to:
-
receive a set of compressed 3D geometry data;
decompress the set of 3D geometry data into a plurality of blocks;
decode direct attribute instructions that are within the blocks, wherein the direct attribute instructions comprise attribute state information;
decode indirect attribute instructions in the blocks, wherein the indirect attribute instructions comprise an indirect reference to attribute state information; and
utilize the attribute state information to set the attributes of vertices within the blocks. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
31. A method for compressing 3D geometry data, the method comprising:
-
receiving a set of 3D geometry data including a plurality of vertices;
compressing the set of 3D geometry data into a plurality of blocks;
encoding direct attribute instructions in the blocks, wherein the direct attribute instructions comprise attribute state information; and
encoding indirect attribute instructions in the blocks, wherein the indirect attribute instructions comprise an indirect reference to the attribute state information;
wherein the attribute state information is usable during decompression to set the attributes of the vertices.- View Dependent Claims (32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45)
-
-
46. A method for decompressing compressed 3D geometry data, the method comprising:
-
receiving a set of compressed 3D geometry data;
decompressing the set of 3D geometry data into a plurality of blocks;
decoding direct attribute instructions that are within the blocks, wherein the direct attribute instructions comprise attribute state information;
decoding indirect attribute instructions in the blocks, wherein the indirect attribute instructions comprise an indirect reference to attribute state information; and
utilizing the attribute state information to set the attributes of vertices within the blocks. - View Dependent Claims (47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58)
-
-
59. A computer graphics system comprising:
-
a bus interface unit configured to receive a set of compressed 3D geometry data comprising a plurality of blocks of data;
one or more decompression units coupled to the bus interface unit, wherein the decompression units are configured to receive one or more of the blocks of data from the bus interface unit, wherein the decompression units are configured to decode attribute instructions that are within the blocks; and
one or more rendering pipelines coupled to receive the decompressed 3D geometry data from the decompression units, wherein the rendering pipelines are configured to utilize attribute state information set by the attribute instructions to determine the attributes of vertices within the blocks. - View Dependent Claims (60, 61, 62, 63, 64, 65, 66, 67, 68, 69)
-
-
70. A computer-readable medium comprising a plurality of instructions, wherein the plurality of instructions are executable to:
-
receive a set of 3D geometry data including a plurality of vertices;
compress the set of 3D geometry data into a plurality of blocks;
encode a first set attribute instruction in at least one of the blocks, wherein the first set attribute instruction comprises first attribute state information comprised in the first set attribute instruction; and
encode a second set attribute instruction in at least one of the blocks, wherein the second set attribute instruction comprises an indirect reference to second attribute state information, wherein the second attribute state information is stored in a location other than in the second set attribute instruction;
wherein the first attribute state information is usable during decompression to set the attributes of at least one vertex;
wherein the second attribute state information is usable during decompression to set the attributes of a plurality of vertices. - View Dependent Claims (71)
wherein the first set attribute instruction is a local attribute instruction that applies only to vertices within the same block as the first set attribute instruction; wherein the second set attribute instruction is a global attribute instruction that applies to the plurality of vertices, wherein at least a subset of the plurality of vertices are not located within the same block as the second set attribute instruction.
-
-
72. A computer-readable medium comprising a plurality of instructions, wherein the plurality of instructions are executable to:
-
receive a set of 3D geometry data including a plurality of vertices;
compress the set of 3D geometry data into a plurality of blocks;
encode a first set attribute instruction in at least one of the blocks, wherein the first set attribute instruction comprises first attribute state information comprised in the first set attribute instruction; and
encode a second set attribute instruction in at least one of the blocks, wherein the second set attribute instruction comprises an indirect reference to second attribute state information, wherein the second attribute state information is stored in a location other than in the second set attribute instruction;
wherein the first attribute state information is usable during decompression to set the attributes of at least one vertex for at least one graphics object;
wherein the second attribute state information is usable during decompression to set the attributes of at least one vertex for each of a plurality of graphics objects.
-
-
73. A computer-readable medium comprising a plurality of instructions, wherein the plurality of instructions are executable to:
-
receive a set of 3D geometry data including a plurality of vertices;
compress the set of 3D geometry data into a plurality of blocks;
encode a local set attribute instruction in at least one of the blocks, wherein the local set attribute instruction applies only to vertices within the same block as the local set attribute instruction; and
encode a global set attribute instruction in at least one of the blocks, wherein the global set attribute instruction applies to a plurality of vertices, wherein at least a subset of the plurality of vertices are not located within the same block as the global set attribute instruction. - View Dependent Claims (74)
-
Specification