A method and apparatus for compressing parameter values for pixels within a frame is accomplished by first grouping pixels in the display frame into a plurality of pixel blocks, where each pixel block includes a plurality of pixels. For at least one of the pixel blocks, the parameter values for the pixel block are translated into a column-wise differential slope representation that represents the parameter values as a plurality of reference points, a plurality of slopes, and a plurality of slope differentials. The column-wise differential slope representation is then transformed into a planar differential slope representation that reduces the representation of the plurality of reference points and the plurality of slopes to a single reference pixel value, two reference slopes, and a plurality of slope differentials. An output format representation of the planar differential slope representation is then generated, where encoding of the slope differentials allows the parameter values for the pixel block to be compressed. This compressed format representation of the parameter values can then be stored in and retrieved from memory.
|
1. A method for compressing parameter values for pixels of a pixel block, comprising:
translating parameter values for the pixel block into a column-wise differential slope representation; translating the column-wise differential slope representation into a planar differential slope representation; and generating an output format representation of the parameter values for the pixel block from the planar differential slope representation.
20. A pixel parameter compression processor for compressing parameter values for pixels of a pixel block, comprising:
a processing module; and memory operably coupled to the processing module, wherein the memory stores operating instructions that, when executed by the processing module, cause the processing module to perform the functions of: translating parameter values for the pixel block into a column-wise differential slope representation; translating the column-wise differential slope representation into a planar differential slope representation; and generating an output format representation of the parameter values for the pixel block from the planar differential slope representation. 16. A method for compressing parameter values for pixels in a display frame, wherein each pixel within the display frame has a corresponding parameter value, comprising:
grouping pixels of the display frame into a plurality of pixel blocks; for at least one pixel block of the plurality of pixel blocks: translating parameter values for the pixel block into a column-wise differential slope representation, wherein the column-wise differential slope representation includes a plurality of pixel point values, a plurality of column slopes, and a plurality of column slope differentials, wherein each column slope differential represents a column slope deviation at a pixel point not represented by the plurality of pixel point values and the plurality of column slopes; translating the column-wise differential slope representation into a planar differential slope representation, wherein the planar slope representation reduces the plurality of pixel point values and the plurality of column slopes to a reference pixel value, a reference column slope, a reference row slope, and a plurality of row slope differentials; and generating an output format representation of the parameter values for the pixel block from the planar differential slope representation, wherein the output format representation orders the reference pixel value, the reference column slope, the reference row slope, the plurality of row slope differentials, and the plurality of column slope differentials in a predetermined pattern selecting one of the four corner pixels as a first reference pixel for the first pixel block. 35. A pixel parameter compression processor for compressing parameter values for pixels in a display frame, wherein each pixel within the display frame has a corresponding parameter value, comprising:
a processing module; and memory operably coupled to the processing module, wherein the memory stores operating instructions that, when executed by the processing module, cause the processing module to perform the functions of: grouping pixels of the display frame into a plurality of pixel blocks; for at least one pixel block of the plurality of pixel blocks: translating parameter values for the pixel block into a column-wise differential slope representation, wherein the column-wise differential slope representation includes a plurality of pixel point values, a plurality of column slopes, and a plurality of column slope differentials, wherein each column slope differential represents a column slope deviation at a pixel point not represented by the plurality of pixel point values and the plurality of column slopes; translating the column-wise differential slope representation into a planar differential slope representation, wherein the planar slope representation reduces the plurality of pixel point values and the plurality of column slopes to a reference pixel value, a reference column slope, a reference row slope, and a plurality of row slope differentials; and generating an output format representation of the parameter values for the pixel block from the planar differential slope representation, wherein the output format representation orders the reference pixel value, the reference column slope, the reference row slope, the plurality of row slope differentials, and the plurality of column slope differentials in a predetermined pattern selecting one of the four corner pixels as a first reference pixel for the first pixel block. 8. A method for double edge compression of parameter values for pixels of a pixel block, comprising:
performing a first edge compression, wherein the first edge compression includes: translating parameter values for the pixel block into a first column-wise differential slope representation, wherein the first column-wise differential slope representation includes a first plurality of pixel point values along a first edge of the pixel block, a first plurality of column slopes, and a first plurality of column slope differentials, wherein each column slope differential of the first plurality of column slope differentials represents a column slope deviation at a pixel point not represented by the first plurality of pixel point values and the first plurality of column slopes; and translating the first column-wise differential slope representation into a first planar differential slope representation, wherein the first planar slope representation reduces the first plurality of pixel point values and the first plurality of column slopes to a first reference pixel value, a first reference column slope, a first reference row slope, and a first plurality of row slope differentials; performing a second edge compression, wherein the second edge compression includes: translating at least a portion of the parameter values for the pixel block into a second column-wise differential slope representation, wherein the second column-wise differential slope representation includes a second plurality of pixel point values along a second edge of the pixel block, a second plurality of column slopes, and a second plurality of column slope differentials, wherein each column slope differential of the second plurality of column slope differentials represents a column slope deviation at a pixel point not represented by the second plurality of pixel point values and the second plurality of column slopes; and translating the second column-wise differential slope representation into a second planar differential slope representation, wherein the second planar slope representation reduces the second plurality of pixel point values and the second plurality of column slopes to a second reference pixel value, a second reference column slope, a second reference row slope, and a second plurality of row slope differentials; and generating an output format representation for the pixel block, wherein generating the output format representation includes: when a predetermined breakpoint pattern in one of the first and second pluralities of column slope differentials is detected, generating a double edge output format representation of the parameter values for the first and second column-wise differential column slope representations, wherein the double edge output format representation orders the first and second reference pixel values, the first and second reference row slopes, the first and second reference column slopes, portions of each of the first and second pluralities of row slope differentials, portions of the first and second pluralities of column slope differentials, and a breakpoint indication in a predetermined double edge order, wherein the portions of the first and second pluralities of column and row slope differentials included in the double edge output format representation are determined based on location of the predetermined breakpoint pattern in the pixel block, wherein the breakpoint indication describes the portions of the first and second pluralities of column and row slope differentials; and when the predetermined breakpoint pattern is not detected, generating a single edge output format representation of the parameter values for the pixel block, wherein the single edge output format representation orders the first reference pixel value, the first reference column slope, the first reference row slope, the first plurality of row slope differentials, and the first plurality of column slope differentials in a predetermined single edge order. 27. A pixel parameter compression processor for compressing parameter values for pixels of a pixel block, comprising:
a processing module; and memory operably coupled to the processing module, wherein the memory stores operating instructions that, when executed by the processing module, cause the processing module to perform the functions of: performing a first edge compression, wherein the first edge compression includes: translating parameter values for the pixel block into a first column-wise differential slope representation, wherein the first column-wise differential slope representation includes a first plurality of pixel point values along a first edge of the pixel block, a first plurality of column slopes, and a first plurality of column slope differentials, wherein each column slope differential of the first plurality of column slope differentials represents a column slope deviation at a pixel point not represented by the first plurality of pixel point values and the first plurality of column slopes; and translating the first column-wise differential slope representation into a first planar differential slope representation, wherein the first planar slope representation reduces the first plurality of pixel point values and the first plurality of column slopes to a first reference pixel value, a first reference column slope, a first reference row slope, and a first plurality of row slope differentials; performing a second edge compression, wherein the second edge compression includes: translating at least a portion of the parameter values for the pixel block into a second column-wise differential slope representation, wherein the second column-wise differential slope representation includes a second plurality of pixel point values along a second edge of the pixel block, a second plurality of column slopes, and a second plurality of column slope differentials, wherein each column slope differential of the second plurality of column slope differentials represents a column slope deviation at a pixel point not represented by the second plurality of pixel point values and the second plurality of column slopes; and translating the second column-wise differential slope representation into a second planar differential slope representation, wherein the second planar slope representation reduces the second plurality of pixel point values and the second plurality of column slopes to a second reference pixel value, a second reference column slope, a second reference row slope, and a second plurality of row slope differentials; and generating an output format representation for the pixel block, wherein generating the output format representation includes: when a predetermined breakpoint pattern in one of the first and second pluralities of column slope differentials is detected, generating a double edge output format representation of the parameter values for the first and second column-wise differential column slope representations, wherein the double edge output format representation orders the first and second reference pixel values, the first and second reference row slopes, the first and second reference column slopes, portions of each of the first and second pluralities of row slope differentials, portions of the first and second pluralities of column slope differentials in a predetermined pattern, and a breakpoint indication, wherein the included portions, which include the portions of the first and second pluralities of column and row slope differentials included in the double edge output format representation, are determined based on location of the predetermined breakpoint pattern in the pixel block, wherein the breakpoint indication describes included portions; and when the predetermined breakpoint pattern is not detected, generating a single edge output format representation of the parameter values for the pixel block, wherein the single edge output format representation orders the first reference pixel value, the first reference column slope, the first reference row slope, the first plurality of row slope differentials, and the first plurality of column slope differentials in a predetermined order. 2. The method of
3. The method of
wherein the planar slope representation reduces the plurality of pixel point values and the plurality of column slopes to a reference pixel value, a reference column slope, a reference row slope, and a plurality of row slope differentials; and wherein the output format representation orders the reference pixel value, the reference column slope, the reference row slope, the plurality of row slope differentials, and the plurality of column slope differentials in a predetermined pattern.
4. The method of
5. The method of
6. The method of
7. The method of
9. The method of
10. The method of
11. The method of
12. The method of
13. The method of
14. The method of
15. The method of
17. The method of
18. The method of
retrieving the output format representation of the at least one pixel block from the memory; reconstructing the planar differential slope representation for the pixel block from the output format representation; reconstructing the column-wise differential slope representation for the pixel block from the planar differential slope representation; and recovering the parameter values for the pixels in the pixel block from the column-wise differential slope representation.
19. The method of
21. The processor of
wherein the planar slope representation reduces the plurality of pixel point values and the plurality of column slopes to a reference pixel value, a reference column slope, a reference row slope, and a plurality of row slope differentials; and wherein the output format representation orders the reference pixel value, the reference column slope, the reference row slope, the plurality of row slope differentials, and the plurality of column slope differentials in a predetermined pattern.
22. The method of
23. The processor of
24. The processor of
25. The processor of
26. The processor of
28. The processor of
29. The processor of
30. The processor of
31. The processor of
32. The processor of
33. The processor of
34. The processor of
36. The processor of
37. The processor of
retrieving the output format representation of the at least one pixel block from the memory; reconstructing the planar differential slope representation for the pixel block from the output format representation; reconstructing the column-wise differential slope representation for the pixel block from the planar differential slope representation; and recovering the parameter values for the pixels in the pixel block from the column-wise differential slope representation.
38. The processor of
|
The invention relates generally to three-dimensional (3D) graphics processing and more particularly to a method and apparatus for compressing parameter values for pixels within a 3D graphics display frame.
Computers are used in many applications. As computing systems continue to evolve, the graphical display requirements of the systems become more demanding. This is especially true in the area of three-dimensional (3D) graphics processing. In order to process 3D graphics images, the position of graphics primitives with respect to the display must be understood in all three dimensions. This includes the dimension of depth, often referred to as the Z-dimension. The Z-dimension describes the positioning of a 3D graphics primitive with respect to other 3D graphics primitives within the display frame in terms of depth, or distance from the viewer. This allows objects to be drawn in front of or behind one another in an overlapping fashion.
Computer displays and other high resolution display devices such as high definition televisions (HDTVs), projectors, printers, and the like, present an image to the viewer as an array of individual picture elements, or pixels. The individual pixels are given a specific color that corresponds to the color of the image at the location of the particular pixel. The pixels are closely spaced, and the viewer's visual system performs a filtering of the individual pixel colors to form a composite image. If the partitioning of the image into the individual pixel elements is performed properly, and the pixels are close enough together, the viewer perceives the displayed array of pixels as a virtually continuous image.
In order to present a smooth and continuous image on the display, the processing entity processing the 3D graphics images must maintain a high rate of pixel processing. In order to achieve high rates of pixel processing, pixel data stored in display memory must be retrieved, processed, and then stored back in the memory in an efficient manner. In order to achieve very high pixel processing rates, a large amount of memory bandwidth is required. This is because as new pixel fragments are received, at least the already existing Z component of pixels stored in a display frame must be retrieved and compared with the fragment to generate an updated image. The resulting set of information for each altered pixel must then be stored back into memory.
As the resolution, or number of pixels in a designated area, of the display increase, the memory bandwidth requirements to maintain the displayed image also increases. More memory bandwidth requirements translate into increased costs. This can be due to the requirement for faster, more expensive memories whose speed provides the needed bandwidth, or through multiple memories that can operate in parallel. Parallel memory structures are undesirable as they add complexity to the system and increase costs of manufacturing 3D graphics processing systems.
Therefore, a need exists for a method and apparatus for reducing the memory bandwidth requirements in a 3D graphics system.
Generally, the present invention provides a method and apparatus for compressing parameter values for pixels within a frame, where the parameter values may include the values of the Z parameter for each pixel within the frame. This is accomplished by grouping pixels in the display frame into a plurality of pixel blocks, where each pixel block includes a plurality of pixels. For at least one of the pixel blocks, the parameter values for the pixel block are translated into a column-wise differential slope representation that represents the parameter values as a plurality of reference points, a plurality of slopes, and a plurality of slope differentials. The column-wise differential slope representation is then transformed into a planar differential slope representation that reduces the representation of the plurality of reference points and the plurality of slopes to a single reference pixel value, two reference slopes, and a plurality of slope differentials. An output format representation of the planar differential slope representation is then generated, where encoding of the slope differentials allows the parameter values for the pixel block to be greatly compressed in most instances. This compressed format representation of the parameter values can then be stored and retrieved from memory in a manner that greatly reduces the memory bandwidth requirements for performing three-dimensional 3D graphics processing.
The invention can be better understood with reference to
The invention described herein exploits the fact that field blocks, such as field block 46, will comprise the majority of the pixel blocks within a particular display frame. All of the pixels within a field block will have Z coordinate values that lie in the same plane, which corresponds to the plane along which the primitive lies. Exploiting this planar association between the various Z coordinate values of the field blocks in the frame allows the majority of the parameter values for a field block to be represented with a greatly reduced number of bits than would be required to represent each pixel individually. The compression can be performed in a lossless manner that allows all of the particular Z coordinate values for each of the pixels within a pixel block to be fully recovered when the compressed data set for the pixel block is uncompressed.
The memory 54 may be a single memory device or a plurality of memory devices. Such a memory device may be a read only memory device, random access memory device, floppy disk, hard drive memory, and/or any device that stores digital information. Note that when the processing module 52 has one or more of its functions performed by a state machine and/or logic circuitry, the memory containing the corresponding operational instructions is embedded within the state machine and/or logic circuitry. The memory 54 stores programming and/or operating instructions that, when executed, allow the processing module 52 to perform at least one of the methods illustrated in
The method of
The compression begins at step 64, where the parameter values for the pixels included in the pixel block are translated into a column-wise differential slope representation.
The column slopes 84 represent the slope of the parameter value along each of the columns. Within each column, the column slope can be calculated by simply subtracting the parameter value in the second row from the parameter value in the first row. Thus, if the first row has a parameter value P0, and the parameter value in the second row has a value P1, the column slope in that column is equal to P1 minus P0.
Each of the column slope differentials 86 is calculated to indicate the deviation from the current slope of the parameter at that point along the column. Thus, the differential slope (dS2) will be the difference between the slope of the parameter value between pixel points P0 and P1 and the slope between pixel points P1 and P2. The equation for calculating the value of dS2 is:
Similarly, the differential slopes for the remaining pixel locations within the pixel block can be calculated using the formula:
It should be noted that this formula is used along each column within the block. The values for each column within the column-wise differential slope representation 88 are computed independently of the values within other columns. It should be noted that rather than calculating a column-wise differential slope representation, the same principle can be applied on a row-by-row basis rather than a column-by-column basis to achieve similar results with a different orientation.
Continuing with the flow diagram of
The planar differential slope representation takes further advantage of the correlation between the parameter values within the pixel block and further simplifies the representation of the pixel point values 82 and the column slopes 84 of the column-wise differential slope representation 88. Essentially, the same principle applied to the columns to achieve the column-wise differential slope representation 88 is applied to the first two rows of the column-wise differential slope representation 88 to generate the planar differential slope representation 99. Note that the column slope differentials 86 calculated for inclusion in the column-wise differential slope representation 88 remain unchanged in the planar differential slope representation 99. The reference row slope 94 allows the pixel point values 82 to be compressed into a line of row slope differentials.
The regularity of parameter values within the pixel block is also used to reduce the column slopes 84 in the second row to a single reference column slope 96 and the remaining row slope differentials that are generated based on the reference column slope 96. The differential slope located in the second row and second column is calculated by subtracting the slope at that pixel location from the reference column slope 96. The differential slope in the second row and third column is calculated by subtracting the slope at that pixel location from the slope at the second row and second column, and so on.
Continuing with the method of
The compression is achieved in the encoding of the differential slopes within the output format representation 100. Because of the high correlation between pixel parameter values (Z values in one embodiment) within the pixel blocks, the differential slopes will typically be very small values. In most cases, the differential slopes will have an integer value that ranges from -1 to 1. The differential slopes result from the discretization of the Z values. An encoding scheme can thus be used where a -1 is represented with one two-bit value, a 0 is represented as a second two-bit value, and a 1 is indicated as a third two-bit value. The final two-bit value available in a two-bit encoding set can then be used to encode an escape. An escape indicates that the value of the differential slope at a particular location is outside of the range of the encoding bits. Thus, any differential slope that is greater than 1 or less than -1 will be encoded with an escape value. In a simple example, a 0 could be encoded as "00" a -1 could be encoded as "10", a 1 could be encoded as "01", and finally the escape value could be encoded as "11".
It should be noted that the number of encoding bits used to encode the column and row slope differentials in the output format representation could be more or less than two bits. In a one-bit example, one value might be used to encode a 0 differential slope, whereas the other value indicates an escape. Similarly, using three encoding bits allows for a larger encoding range, thus possibly making fewer escapes necessary. Assuming that two bits are used to encode each differential slope, the encoded differential slope array 108 within the output format representation 100 would require 122 bits. Note that the ordering of the differential slopes within the encoded differential slope array is preferably predetermined such that reversing the compression process is straightforward.
Any escape values required to encode the values of differential slopes within the pixel block must also be included in the output format representation 100. Because each escape value results from a calculation that includes four 32-bit quantities, 34 bits may be required to represent an escape value. Thus, the escape values 110 included in the output format representation 100 will require 34 bits times the number of escapes required in the pixel block to which the output format representation 100 corresponds. The ordering of the escape values 110 within the output format representation 100 should correspond in some way to the ordering of the differential slopes in the encoded differential slope array 108 such that decompression of the output format representation 100 is straightforward. It should be noted that the ordering of the various portions of the output format representation 100 may vary based on specific implementation.
In the best-case scenario where no escape values are required for a particular pixel block, the output format representation 100 can allow the 2,048 bits required in the example to store the uncompressed parameter values for all of the pixels within the pixel block to be reduced to the 220 bits required to store the compressed version. Performing such compression of the parameter values can allow a system to transfer these values to a memory structure using far less bandwidth than would be required in an uncompressed format. In addition, the compression may also reduce the memory storage space required to store the parameter values. Because the compression is lossless, the parameter values are fully recoverable from the compressed format.
Another difference between the output format representation 120 and the output format representation 100 is that the reference row slope 124 and the reference column slope 126 may be represented with fewer than 33 bits. In many instances, the reference row slope and reference column slope will be relatively small. Thus, N bits could be used to represent both the reference row slope 124 and the reference column slope 126, where N is the minimum number of bits required to encode each of the reference row slope and the reference column slope in a lossless manner. Once again, the configuration bits 122 that indicate the number of bits-per-slope must be included in the output format representation in order to allow decompression. As was the case with the escape values, five bits is adequate to encode the number of bits, N, used to encode the reference slopes.
It should be noted that the optimizations in terms of reducing the number of bits used to store escape values or reference slopes may or may not be included in various embodiments of the invention. Thus, in one embodiment only the optimization for escape values may be utilized, in another embodiment only the optimization for row and column reference slopes may be utilized, and in yet another embodiment, both optimizations may be employed.
Returning to
The recovery of the parameter values begins at step 74 where the planar differential slope representation is reconstructed from the output format representation. Because ordering of the portions of the output format representation is known, the reconstruction of the planar differential slope representation is straightforward. At step 76, the column-wise differential slope representation is reconstructed based on the planar differential slope representation. Once this has been achieved, the parameter values for the pixel block can be recovered by computing the parameter values based on the pixel point values, column slopes, and column slope differentials at step 78.
Each of the column slope differentials 144 indicates whether or not any of the Z values at these locations deviate from the slope along their respective column. In the simple case illustrated, all of these column slope differentials 144 are zero. This indicates that the resolution with which the slope has been computed for each column is adequate and that no deviation from the slope exists within the pixel block.
The column-wise differential slope representation 150 of
The row of column slopes 148 of
Compiling the values included in the planar differential slope representation 160 of
The example illustrated in
The changes in slope within the pixel block would result in two escape values being included along each row or column (depending on the orientation) of the pixel output representation of the pixel block. However, if the pixel block is approached with reference pixels at both ends of the pixel block, then the slope differences will be zero along each of the first and second slopes 174 and 176 up to the point of intersection. This is because the slope along each line is constant up until the intersection point. Exploiting this symmetry can reduce the number of bits required in the output format representation in comparison to the number of bits required with the inclusion of two escape values per row or column. Another common situation where this technique proves useful is for two primitives that do not actually intersect, but which lie in different planes where one plane lies completely in front of the other. Such a situation is often found at the edge of objects included in the display.
At step 194 it is determined whether or not there is a predetermined breakpoint pattern within one of the first and second pluralities of column slope differentials corresponding to the first and second edge compressions. The breakpoint pattern is recognized as a point within the differential slopes where a slope-discontinuity takes place. Thus, the breakpoint 220 of
If it is determined at step 194 that there is a breakpoint pattern, the method proceeds to step 198 where a double edge output format representation is generated for the parameter values of the pixel block based on the results of the first and second edge compressions. The double edge output format representation orders the first and second reference pixel values, the first and second reference row slopes, the first and second reference column slopes, portions of each of the first and second pluralities of row slope differentials, portions of the first and second pluralities of column slope differentials, and a breakpoint indication for each column (or row depending on the choice of reference pixels) in a predetermined double edge order. The portions of the first and second pluralities of column and slope differentials included in the double edge output format representation are based on location of the predetermined breakpoint pattern in the pixel block. The breakpoint indication describes the portions of the first and second pluralities of column and slope differentials that are included in the double edge output representation.
Preferably, the single and double edge output format representations also include an indication as to whether the compression for the pixel block is single edge compression or double edge compression. A single bit could be included to make this determination. Representation of the various differential slopes and escape values is preferably accomplished within the single and double edge output format representations in the same manner as was described with respect to
The method of
The compression technique for the parameter values of the pixel blocks within a display frame described herein can greatly reduce the bandwidth requirements for storing and retrieving the parameter values from memory. Note that the compression also reduces the amount of memory space required to store the parameter values for a particular pixel block when compression is successful.
It should be noted that in some cases compression of a particular pixel block may not be advantageous in that the resulting output format representation is in fact larger in terms of its number of bits then would be required to store the parameter values in an uncompressed state. Based on this, systems employing the compression technique described herein preferably make a determination as to whether compression is truly possible with respect to a pixel block, or if expansion will in fact be the result. Such systems can then avoid storing an expanded version of the pixel blocks within the memory along with an indication that the block is uncompressed. In addition to this, it may be determined whether memory block fetching renders compression less-beneficial. If the minimum memory block fetch is 64 bits and the compression algorithm compresses the parameter data from 92 bits to 70 bits, no real bandwidth savings is realized as two block fetches will still be required. As such, the decision as to whether or not to compress a parameter data set may also be based on memory access granularity.
As was stated earlier, the spatial orientation of the pixel block with respect to "column" slope computation is arbitrary. Thus, reference pixels may be chosen in any one of the four corners and the first stage of compression into a column-wise differential slope representation may in fact be a transformation into a row-wise differential slope representation. It should also be apparent to one of ordinary skill in the art that other types of encoding schemes such as Huffman encoding and the like could be used to encode a limited set of values for each of the differential slopes within the output format representation. The two-bit encoding described herein is only one example of such an encoding scheme. Further, for large blocks it may be advantageous to use the four corner pixels as reference pixels and work towards the center of the block in a manner that reflects an extrapolation of the use of two reference pixels and working towards a line between the two reference pixels.
It should be understood that the implementation of variations and modifications of the invention in its various aspects should be apparent to those of ordinary skill in the art, and that the invention is not limited to the specific embodiments described. It is therefore contemplated to cover by the present invention, any and all modifications, variations, or equivalents that fall within the spirit and scope of the basic underlying principles disclosed and claimed herein.
Morein, Steven, DeRoo, John E., Wright, Michael T., Favela, Brian
Patent | Priority | Assignee | Title |
10290347, | Jun 30 2017 | Western Digital Technologies, INC | Compacting operating parameter groups in solid state memory devices |
7242400, | Nov 13 2002 | ATI Technologies ULC | Compression and decompression of data using plane equations |
7898550, | Jun 09 2006 | VIA Technologies, Inc. | System and method for memory bandwidth compressor |
7944441, | Nov 13 2002 | ATI Technologies ULC | Compression and decompression of data using plane equations |
8196056, | Jul 24 2001 | MATHWORKS, INC , THE | Handling parameters in block diagram modeling |
8243340, | Feb 23 2006 | Microsoft Technology Licensing, LLC | Pre-processing of image data for enhanced compression |
8515187, | Oct 03 2007 | TELEFONAKTIEBOLAGET LM ERICSSON PUBL | Method, compressor, decompressor and signal representation for lossless compression of pixel block values using row and column slope codewords |
8615715, | Jul 24 2001 | The MathWorks, Inc. | Handling parameters in block diagram modeling |
8793601, | Jul 24 2001 | The MathWorks, Inc. | Handling parameters in block diagram modeling |
8837006, | Feb 23 2006 | Microsoft Technology Licensing, LLC | Pre-processing of image data for enhanced compression |
9013495, | Jan 18 2008 | Samsung Electronics Co., Ltd.; Yonsei University Industry Foundation | Method and apparatus for rendering |
Patent | Priority | Assignee | Title |
5121216, | Jul 19 1989 | Bell Communications Research | Adaptive transform coding of still images |
5841473, | Jul 26 1996 | FOTO-WEAR, INC | Image sequence compression and decompression |
6049582, | Dec 31 1997 | Siemens Medical Solutions USA, Inc | C-arm calibration method for 3D reconstruction |
6072505, | Apr 01 1998 | Intel Corporation | Method and apparatus to efficiently interpolate polygon attributes in two dimensions at a prescribed clock rate |
6285458, | Jul 31 1996 | Fuji Xerox Co., Ltd. | Image processing apparatus and method |
6405136, | Oct 15 1999 | Schlumberger Technology Corporation | Data compression method for use in wellbore and formation characterization |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Aug 31 1999 | DEROO, JOHN E | ATI International, Srl | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 010218 | /0020 | |
Aug 31 1999 | MOREIN, STEVEN | ATI International, Srl | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 010218 | /0020 | |
Aug 31 1999 | FAVELA, BRIAN | ATI International, Srl | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 010218 | /0020 | |
Aug 31 1999 | WRIGHT, MICHAEL T | ATI International, Srl | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 010218 | /0020 | |
Sep 01 1999 | ATI International, Srl | (assignment on the face of the patent) | / | |||
Nov 18 2009 | ATI International SRL | ATI Technologies ULC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 023574 | /0593 |
Date | Maintenance Fee Events |
Apr 07 2006 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Apr 22 2010 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Apr 09 2014 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Nov 05 2005 | 4 years fee payment window open |
May 05 2006 | 6 months grace period start (w surcharge) |
Nov 05 2006 | patent expiry (for year 4) |
Nov 05 2008 | 2 years to revive unintentionally abandoned end. (for year 4) |
Nov 05 2009 | 8 years fee payment window open |
May 05 2010 | 6 months grace period start (w surcharge) |
Nov 05 2010 | patent expiry (for year 8) |
Nov 05 2012 | 2 years to revive unintentionally abandoned end. (for year 8) |
Nov 05 2013 | 12 years fee payment window open |
May 05 2014 | 6 months grace period start (w surcharge) |
Nov 05 2014 | patent expiry (for year 12) |
Nov 05 2016 | 2 years to revive unintentionally abandoned end. (for year 12) |