Compression of surface normals in three-dimensional graphics data
First Claim
1. A computer-implemented method for compressing three-dimensional graphics data including a first three-dimensional surface normal corresponding to a three-dimensional graphics object, said method comprising:
- receiving first three-dimensional surface normal data which represents said first surface normal, compressing said first three-dimensional surface normal data into a first number of bits by;
generating a first subset of said first number of bits to indicate which one of a first plurality of subsets of all possible three-dimensional normals includes said first three-dimensional surface normal, wherein said compressing produces compressed first surface normal data; and
storing said compressed first surface normal data.
0 Assignments
0 Petitions
Accused Products
Abstract
A system and method for compression of surface normals in three-dimensional graphics data. The method comprises compressing a normal by identifying the location of a first point located at the intersection of the surface of a predetermined sphere (centered on the origin of a set of x-y-z axes) and a vector extended from the origin in a direction specified by the coordinate values of the normal. Identification of the first point includes specifying an index value and one or mapping values. The index value is usable during decompression to identify a second point on the sphere from a plurality of points in a predetermined surface region (such as a predetermined sextant of a predetermined octant region). In one embodiment, the index includes a θ component and a φ component which are usable to locate the second point. The θ component value is measured about the y axis to the second point while the φ component value is measured latitudinally from a plane defined by y=0 to the second point. The one or more mapping values include a sextant value which translates the second point to a third point by performing foldings about the planes x=y, y=z, and x=z within the predetermined octant. The one or more mapping values also include an octant value which is usable to locate the first point from the third point by identifying one or more sign bits of the fist point. Delta-encoding of normals is also disclosed.
-
Citations
147 Claims
-
1. A computer-implemented method for compressing three-dimensional graphics data including a first three-dimensional surface normal corresponding to a three-dimensional graphics object, said method comprising:
-
receiving first three-dimensional surface normal data which represents said first surface normal, compressing said first three-dimensional surface normal data into a first number of bits by;
generating a first subset of said first number of bits to indicate which one of a first plurality of subsets of all possible three-dimensional normals includes said first three-dimensional surface normal, wherein said compressing produces compressed first surface normal data; and
storing said compressed first surface normal data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27)
encoding an index value, wherein said index value is usable to select a particular set of coordinate magnitude values from a predetermined plurality of sets of coordinate magnitude values within said indicated first subset.
-
-
19. The method of claim 1, wherein said storing comprises storing said compressed first surface normal data on a computer-readable medium.
-
20. The method of claim 1, wherein said first surface normal data includes x, y, and z components.
-
21. The method of claim 1, further comprising:
-
receiving second surface normal data which represents a second three-dimensional surface normal;
compressing said second surface normal data by delta-encoding said second surface normal data relative to said first surface normal data, wherein said compressing said second surface normal data produces compressed second surface normal data;
storing said compressed second surface normal data.
-
-
22. The method of claim 21, wherein said compressing said second surface normal data includes delta-encoding each of a plurality of component values with respect to a corresponding plurality of component values for said first surface normal data.
-
23. The method of claim 22, wherein said compressing said second surface normal data includes quantizing each of said plurality of delta-encoded component values to a lesser number of bits.
-
24. The method of claim 23, wherein compressing said second surface normal data further includes perfonming a variable-length encoding of each of said quantized plurality of delta-encoded component values.
-
25. The method of claim 1, further comprising:
-
receiving second three-dimensional surface normal data which represents a second surface normal;
compressing said second surface normal data by generating a delta angle θ
value and a delta angle φ
value, wherein said delta angle θ
value is delta-encoded with respect to an angle θ
that corresponds to said first surface normal, and wherein said delta angle φ
value is delta-encoded with respect to an angle φ
that corresponds to said first surface normal, and wherein said compressing said second surface normal data produces compressed second surface normal data; and
storing said compressed second surface normal data.
-
-
26. The method of claim 25, wherein said compressing said second surface normal data includes quantizing said delta angle φ
- value and said delta angle θ
value to a lesser number of bits.
- value and said delta angle θ
-
27. The method of claim 26, wherein compressing said second surface normal data further includes performing a variable-length encoding of said quantized delta angle φ
- value and said quantized delta angle θ
value.
- value and said quantized delta angle θ
-
28. A computer-implemented method for compressing a first three-dimensional surface normal corresponding to a graphical object, the method comprising:
-
receiving first surface normal data which represents the first surface normal;
compressing said first three-dimensional surface normal data into a first number of bits by;
selecting a first subset of said first number of bits to indicate which one of a first plurality of subsets of all possible three-dimensional normals includes said first three-dimensional surface normal, wherein said wherein said compressing produces compressed first surface normal data; and
transferring said compressed first surface normal data. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41)
encoding an index value usable to select an intermediate set of coordinate magnitude values from a predetermined plurality of sets of coordinate magnitude values.
-
-
38. The method of claim 37, wherein said predetermined plurality of sets of coordinate magnitude values correspond to predetermined points within a predetermined sextant of a predetermined octant of said predetermined sphere, and wherein said intermediate set of coordinate magnitude values corresponds to a second point within said predetermined sextant of said predetermined octant.
-
39. The method of claim 37, wherein said encoding information identifying said location of said first point includes:
encoding a sextant value usable to generate a final set of coordinate magnitudes values which correspond to magnitudes of said first set of coordinate values.
-
40. The method of claim 39, wherein said intermediate set of coordinate magnitude values correspond to a second point within said predetermined sextant of said predetermined octant;
and wherein said sextant value specifies a first sextant within said predetermined octant of said predetermined sphere, and wherein said sextant value is usable to generate magnitudes of said first set of coordinate values from said intermediate set of coordinate magnitude values by mapping said second point to a third point within said first sextant.
-
41. The method of claim 37, wherein said encoding information identifying said location of said first point includes:
encoding an octant value usable to represent one or more sign bits of said first set of coordinate values.
-
42. A computer-implemented method for compressing a first surface normal corresponding to a graphical object, comprising:
-
receiving first surface normal data representing said first surface normal;
compressing said first surface normal data by encoding information identifying a location of a first point on a surface of a predetermined sphere, wherein said compressing includes generating an index value and one or more mapping values;
storing said index value and said one or more mapping values;
wherein said index value is usable to select a fist set of intermediate surface normal data from a plurality of sets of intermediate surface normal data;
and wherein said one or more mapping values are usable to generate decompressed surface normal data from said intermediate surface normal data. - View Dependent Claims (43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60)
-
-
61. A computer-implemented method for compressing a first three-dimensional surface normal corresponding to a graphical object, comprising:
-
receiving first three-dimensional surface normal data representing said first surface normal;
compressing said first surface normal data by encoding information identifying a location of a first point on a surface of a predetermined sphere, wherein said surface of said predetermined sphere represents all possible normalized three-dimensional surface normals wherein said compressing includes generating an index value and one or more mapping values;
transferring said index value and said one or more mapping values;
wherein said index value is usable to select a first set of intermediate surface normal data from a plurality of sets of intermediate surface normal data;
and wherein said one or more mapping values are usable to generate decompressed surface normal data from said intermediate surface normal data.
-
-
62. A computer-implemented method for compressing a first three-dimensional surface normal corresponding to a graphical object, comprising:
-
generating data representing a plurality of points located on a surface of a predetermined sphere, wherein said surface of said sphere represents all possible three-dimensional surface normals;
storing data representing a subset of said plurality of points in a normal look-up table;
receiving first surface normal data which represents said first surface normal;
compressing said first surface normal data by encoding an index value and one or more mapping values;
storing said index value and said one or more mapping values;
wherein said index value is usable to select intermediate surface normal data from said data representing said subset of said plurality of points stored in said normal look-up table;
and wherein said one or mapping values are usable to generate decompressed surface normal data from said intermediate surface normal data. - View Dependent Claims (63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76)
-
-
77. A system for compressing a first three-dimensional surface normal corresponding to a graphical object, comprising:
-
a memory configured to store first surface normal data representing said first surface normal;
a processor coupled to said memory, wherein said processor is configured to compress said first surface normal data by utilizing characteristics of said first surface normal, thereby producing compressed first surface normal data, wherein said processor is configured to compress said first three-dimensional surface normal data into a first number of bits by generating a first subset of said first number of bits to indicate which one of a first plurality of subsets of all possible three-dimensional normals includes said first three-dimensional surface normal, wherein said compressing produces compressed first surface normal data, wherein said processor is configured to store said compressed first surface normal data in said memory. - View Dependent Claims (78, 79, 80, 81, 82, 83, 84, 85)
-
-
86. A system for compressing a first three-dimensional surface normal corresponding to a graphical object, comprising:
a processor coupled to receive first surface normal data corresponding to said first surface normal, wherein said processor is configured to compress said first surface normal data by utilizing characteristics of said first surface normal, wherein said processor is configured to compress said first three-dimensional surface normal data into a first number of bits by generating a first subset of said first number of bits to indicate which one of a first plurality of subsets of all possible three-dimensional normals includes said first three-dimensional surface normal, wherein said compressing produces compressed first surface normal data, thereby producing compressed first surface normal data, and wherein said processor is configured to transfer said compressed first surface normal data. - View Dependent Claims (87, 88, 89)
-
90. A system for compressing a first three-dimensional surface normal corresponding to a graphical object, comprising:
-
a memory configured to store first surface normal data representing said first surface normal;
a processor coupled to said memory, wherein said processor is configured to compress said first surface normal data by utilizing characteristics of said first surface normal, thereby producing compressed first surface normal data, wherein said processor is configured to compress said first three-dimensional surface normal data into a first number of bits by generating a first subset of said first number of bits to indicate which one of a first plurality of subsets of all possible three-dimensional normals includes said first three-dimensional surface normal, wherein said compressing produces compressed first surface normal data, wherein said processor is configured to store said compressed first surface normal data in said memory;
wherein said processor is configured to delta-encode said compressed first surface normal data with respect to previously specified normal data. - View Dependent Claims (91)
-
-
92. A system for compressing a first three-dimensional surface normal corresponding to a graphical object, comprising:
-
a memory configured to store first surface normal data representing said first surface normal;
a processor coupled to said memory, wherein said processor is configured to compress said first surface normal data by encoding information identifying a location of a first point on a surface of a predetermined sphere, wherein said surface of said predetermined sphere represents all possible three-dimensional surface normals, wherein said compressing produces compressed first surface normal data, wherein said processor is configured to store said compressed first surface normal data in said memory. - View Dependent Claims (93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108)
-
-
109. A memory media which stores program instructions for compressing a first surface normal corresponding to a graphical object, wherein said program instructions are executable to implement the steps of:
-
receiving first surface normal data which represents said first surface normal;
compressing said first three-dimensional surface normal data into a first number of bits by;
selecting a first subset of said first number of bits to indicate which one of a first plurality of symmetrical subsets of all possible three-dimensional normals includes said first three-dimensional surface normal, wherein said compressing produces compressed first surface normal data; and
storing said compressed first surface normal data. - View Dependent Claims (110, 111)
-
-
112. A memory media which stores program instructions for compressing a three-dimensional first surface normal corresponding to a graphical object, wherein said program instructions are executable to implement the steps of:
-
receiving first three-dimensional surface normal data which represents said first surface normal;
compressing said first surface normal data into a first number of bits by;
selecting a first subset of said first number of bits to indicate which one of a first plurality of symmetrical subsets of all possible three-dimensional normals includes said first three-dimensional surface normal, wherein said compressing produces compressed first surface normal data; and
transferring said compressed first surface normal data. - View Dependent Claims (113, 114)
-
-
115. A memory media which stores program instructions for compressing a first three-dimensional surface normal corresponding to a graphical object, wherein said program instructions are executable to implement the steps of:
-
receiving first three-dimensional surface normal data which represents said first three-dimensional surface normal;
compressing said first surface normal data by encoding information identifying a location of a first point on a surface of a predetermined sphere, wherein said surface of said sphere represents all possible three-dimensional surface normals, wherein said compressing produces compressed first surface normal data;
storing said compressed first surface normal data. - View Dependent Claims (116, 117, 118, 119, 120, 121, 122, 123, 124)
-
-
125. A memory media storing a compressed representation of first surface normal data corresponding to a first three-dimensional surface normal, wherein said first three-dimensional surface normal corresponds to a graphical object, wherein said compressed representation is generated by compressing a first set of three-dimensional surface normal data into a first number of bits by:
selecting a first subset of said first number of bits to indicate which one of a first plurality of symmetrical subsets of all possible three-dimensional normals includes said first three-dimensional surface normal. - View Dependent Claims (126, 127, 128)
-
129. A system for compressing a first three-dimensional surface normal corresponding to a graphical object, comprising:
-
a receiving means for receiving first three-dimensional surface normal data which represents said first surface normal;
a compressing means for compressing said first surface normal data utilizing characteristics of said first surface normal, wherein said compressing produces compressed first surface normal data by compressing a first set of three-dimensional surface normal data into a first number of bits by selecting a first subset of said first number of bits to indicate which one of a first plurality of symmetrical subsets of all possible three-dimensional normals includes said first three-dimensional surface normal; and
a storing means for storing said compressed first surface normal data. - View Dependent Claims (130, 131, 132)
-
-
133. A system for compressing a first three-dimensional surface normal corresponding to a graphical object, comprising:
-
a receiving means for receiving first three-dimensional surface normal data which represents said first three-dimensional surface normal;
a compressing means for compressing said first surface normal data by compressing a first set of three-dimensional surface normal data into a first number of bits by selecting a first subset of said first number of bits to indicate which one of a first plurality of symmetrical subsets of all possible three-dimensional normals includes said first three-dimensional surface normal, wherein said compressing produces compressed first surface normal data; and
a transferring means for storing said compressed first surface normal data. - View Dependent Claims (134, 135, 136)
-
-
137. A computer-implemented method for compressing a first three-dimensional vector, comprising:
-
receiving data corresponding to said first three-dimensional vector;
compressing said data corresponding to said first three-dimensional vector by encoding information identifying a location of a first point on a surface of a predetermined sphere, wherein said compressing produces compressed three-dimensional vector data, and wherein said predetermined sphere represents all possible three-dimensional surface normals;
storing said compressed three-dimensional vector data. - View Dependent Claims (138, 139, 140, 141, 142, 143, 144, 145, 146, 147)
-
Specification