Patents by Inventor Michael F. Deering

Michael F. Deering has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 6894698
    Abstract: A dithering system comprising a dithering unit, a storage medium, and an averaging unit. The dithering unit is configured to receive a set of data values, to add dither values to the data values, and to truncate the resultant addition values to L-bit truncated values. The storage medium is configured to store the L-bit truncated values. The averaging unit is configured to read the L-bit truncated values from the storage medium, and to compute an average value using at least a subset of the L-bit truncated values. The dither values may have an average value of approximately one-half. The dither values may approximate a uniform distribution of numbers between ?A+½ and A+½, wherein A is greater than or equal to one. Alternatively, the dithering unit may receive a temporal stream of data values, and the average unit may perform a temporal average (e.g. an FIR filter). The dithering system may be incorporated in a graphics system. In this case, data values may represent rendered sample values (e.g.
    Type: Grant
    Filed: January 11, 2001
    Date of Patent: May 17, 2005
    Assignee: Sun Microsystems, Inc.
    Inventors: Michael F. Deering, N. David Naegle, Scott R. Nelson
  • Patent number: 6885384
    Abstract: A system and method are disclosed for reproducing a pre-selected larger 2-D sample location pattern from a smaller one by means of X,Y address permutation. This method, for example, allows hardware to effectively reproduce a pre-selected set of sample locations for an array of 128×128 sample bins from a smaller set of pre-selected sample locations for an array of 2×2 sample bins. A permutation logic unit may use a first portion of an address for a sample bin B to identify a corresponding 2-D transformation, apply the inverse of the transformation to a second portion of the sample bin address to identify the corresponding bin of the 2×2 array of sample bins, and apply the transformation to the sample locations stored in the corresponding bin to reproduce the sample locations pre-selected for sample bin B.
    Type: Grant
    Filed: March 12, 2003
    Date of Patent: April 26, 2005
    Assignee: Sun Microsystems, Inc.
    Inventors: Michael F. Deering, Nathaniel David Naegle, Ranjit S. Oberoi
  • Patent number: 6879328
    Abstract: A system and method for generating graphics images from 3-dimensional graphics data representing one or more transparent objects and one or more opaque objects are disclosed. Memory locations for storing transparent samples may be provided by reducing the number of opaque samples per pixel as needed, and storing the transparent samples in the memory locations formerly used to store the discarded opaque samples. A plurality of opaque samples for a plurality of sample positions corresponding to a pixel may be initially stored in a sample memory. A transparent sample rendered for one of the plurality of sample positions may replace an opaque sample in another one of the sample positions of the plurality of sample positions. The transparent and opaque samples rendered for the same position may be blended and the blended samples may be filtered at least once per screen refresh cycle to generate output pixels.
    Type: Grant
    Filed: March 3, 2003
    Date of Patent: April 12, 2005
    Assignee: Sun Microsystems, Inc.
    Inventor: Michael F. Deering
  • Patent number: 6850236
    Abstract: A graphics system capable of super-sampling and performing real-time convolution. The graphics system may comprise a graphics processor, a sample buffer, and a sample-to-pixel calculation unit. The graphics processor receives graphics data and generates a plurality of samples for each of a plurality of frames. The sample buffer stores the samples. The sample-to-pixel calculation unit is operable to generate output pixels by filtering the rendered samples using a filter. A display device then receives and displays the output pixels. A user may observe the displayed image and adjust properties of the filter according to the user's personal visual preferences. A display-monitoring device may be configured to capture the displayed image. The graphics system may then analyze the captured image and, in response to the captured image, perform filter adjustments.
    Type: Grant
    Filed: December 29, 2000
    Date of Patent: February 1, 2005
    Assignee: Sun Microsystems, Inc.
    Inventor: Michael F. Deering
  • Patent number: 6847368
    Abstract: A system and method are disclosed for rendering polygons. In some embodiments, parameter values may be rendered for only one sample position of multiple neighboring sample positions. The parameter values rendered for the one sample position may then be stored in multiple memory locations that correspond to the multiple neighboring sample positions. In some embodiments, storing parameter values in multiple memory locations may be achieved in a single write transaction. In some embodiments, utilization of a method for storage of a rendered sample to multiple memory locations may be subject to a specified test. The method may calculate a value needed for the specified test from vertex data and compare the calculated value with a specified limit. In some embodiments, a multiple storage mode may only be utilized for polygons greater than a certain size.
    Type: Grant
    Filed: March 11, 2002
    Date of Patent: January 25, 2005
    Assignee: Sun Microsystems, Inc.
    Inventor: Michael F. Deering
  • Patent number: 6816162
    Abstract: A system and method is disclosed for management of sample data to enable video rate anti-aliasing convolution. Sample data may be moved simultaneously from a sample buffer to a bin scanline cache and from the bin scanline cache to an array of N2 processor—memory units (e.g. 25 for N=5). Pixel data may be convolved from an N×N sample bin array that may be approximately centered on the pixel location. Since each sample bin contains Ns/b samples, Ns/b×N2 samples may be filtered for each pixel (e.g. 400 for N=5 and Ns/b=16). Each processor—memory unit convolves the sample data for one sample bin in the N×N sample bin array and supports a variety of filter functions. Pixel data may be output to a real time video data stream.
    Type: Grant
    Filed: July 19, 2002
    Date of Patent: November 9, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Nimita J. Taneja, Nathaniel David Naegle, Michael F. Deering
  • Publication number: 20040207622
    Abstract: A graphical computing system including a host processor and a target processor. In response to execution of stored instructions, the host processor is operable to: (a) receive input code for a program and a set of constraints on input variables of the program, (b) compile a specialized version VK of the input code for each constraint CK of said constraint set and store the specialized version VK in a local memory, (c) receive particular values of the input variables in response to a run-time invocation of the program, (d) search the constraint set to determine if the particular values satisfy any of the constraints of the constraint set, and (e) in response to determining that the particular values satisfy a constraint CL of the constraint set, invoking execution of the specialized version VL by the target processor.
    Type: Application
    Filed: March 31, 2003
    Publication date: October 21, 2004
    Inventors: Michael F. Deering, Douglas C. Twilleager, Daniel S. Rice
  • Publication number: 20040196285
    Abstract: A processing pipeline and method are disclosed that may enable real time video rate displacement mapping. The pipeline may include one or more: render units, texture units, memories, and displacement units. Render units may tessellate a geometric primitive into micropolygons and interpolate parameter values for each new vertex. The micropolygons may be defined by the intersection of the geometric primitive and boundaries projected from specified screen space regions. Texture units retrieve displacement values from a displacement map stored in memory. Displacement units displace each vertex of a micropolygon in the direction of the normal at each vertex by a distance based on the displacement value determined for the vertex location. Micropolygons that are displaced across a projected boundary may be returned to the render units and re-tessellated according to the projected boundaries. Parameter values for new vertices may be determined subject to an edge contract to prevent surface cracks.
    Type: Application
    Filed: April 2, 2003
    Publication date: October 7, 2004
    Inventors: Daniel S. Rice, Michael F. Deering
  • Patent number: 6801202
    Abstract: A method and computer graphics system capable of implementing multiple pipelines for the parallel processing of graphics data. For certain data, a requirement may exist that the data be processed in order. The graphics system may use a set of tokens to reliably switch between ordered and unordered data modes. Furthermore, the graphics system may be capable of super-sampling and performing real-time convolution. In one embodiment, the computer graphics system may comprise a graphics processor, a sample buffer, and a sample-to-pixel calculation unit. The graphics processor may be configured to receive graphics data and to generate a plurality of samples for each of a plurality of frames. The sample buffer, which is coupled to the graphics processor, may be configured to store the samples. The sample-to-pixel calculation unit is programmable to generate a plurality of output pixels by filtering the rendered samples using a filter.
    Type: Grant
    Filed: June 28, 2001
    Date of Patent: October 5, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Scott R. Nelson, Lisa Grenier, Michael F. Deering
  • Publication number: 20040189650
    Abstract: A control unit for a graphics accelerator. The control unit includes a plurality of processing pipelines, a memory (configured to store an allocation table) and a context management unit. The context management unit is configured to: (a) receive a graphics command, (b) decode a process identifier from input data provided in or with the graphics command, wherein the process identifier corresponds to one of a plurality of host processes executing on one or more central processing units external to the graphics accelerator, and (c) identify an entry E in the allocation table that corresponds to the process identifier. In response to a first set of conditions, the context management unit is further configured to: (d) reassign ownership of a first of the processing pipelines from a first active entry of the allocation table to the entry E, and (e) send the graphics command to the first processing pipeline.
    Type: Application
    Filed: March 31, 2003
    Publication date: September 30, 2004
    Inventor: Michael F. Deering
  • Publication number: 20040183801
    Abstract: A graphical computing system comprising a control unit and a set of edge processing units. The control unit (a) receives a surface primitive, (b) transfers edge specifying information for each edge of the surface primitive to a corresponding one of the edge processing units, and (c) transfers a horizontal address CX and a vertical address CY of a current pixel to the edge processing units. Each of the edge processing units computes trimming information for the current pixel with respect to the corresponding edge using the horizontal address CX and vertical address CY. The trimming information specifies a portion of the corresponding edge which intersects the current pixel. The control unit collects the trimming information from the edge processing units and transmits an output packet including the addresses CX and CY of the current pixel along with the collected trimming information.
    Type: Application
    Filed: March 19, 2003
    Publication date: September 23, 2004
    Inventor: Michael F. Deering
  • Publication number: 20040183795
    Abstract: A system and method are disclosed for rendering polygons. Parameter values may be rendered for only one sample position of a plurality of neighboring sample positions within a polygon. The parameter values rendered for the one sample position may then be transmitted to one or more memories and conditionally stored in a plurality of memory locations that correspond to the plurality of neighboring sample positions. Transmitting parameter values to one or more memories may be achieved in a single transaction. Depth values may be rendered for each sample position in the plurality of neighboring sample positions. Depth value data may be compressed. In some embodiments, the one or more memories may be configured to determine depth values for each of the neighboring sample positions.
    Type: Application
    Filed: March 19, 2003
    Publication date: September 23, 2004
    Inventors: Michael F. Deering, Michael G. Lavelle
  • Patent number: 6795076
    Abstract: A graphics system comprising a control unit and a series of calculation units coupled together in a closed chain by a segmented communication bus. The calculation unit collaboratively generate one or more video signals. Each calculation unit is programmably assigned to contribute its locally-generated pixels to one of the video streams. The control unit sends a frame readback request to a selected one of the calculation units through the segmented communication bus. The frame readback request specifies some subset of the pixels in one of the video streams for readback to the control unit. In response to the frame readback request, the selected calculation unit transmits the subset of pixels of the specified video stream to the control unit, and the control unit forwards the subset of pixels to a target memory block (e.g. in system memory of a host computer or memory within the graphics system).
    Type: Grant
    Filed: June 28, 2001
    Date of Patent: September 21, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Michael F. Deering, Nathaniel David Naegle
  • Publication number: 20040174378
    Abstract: A filtering engine may read samples from a sample buffer and spatially filter (e.g., convolve) the samples to generate pixels. The pixels may have a high dynamic range of luminance. Thus, the filtering engine may apply automatic gain control and/or dynamic range compression on pixel luminance or pixel color. A rendering engine may generate the samples in response to received graphics data and store the samples in the sample buffer. A sample may include one or more data fields which represent color (or intensity) information. The data field may include exponent information (e.g., an amplification control bit) and a mantissa. The exponent information may determine an extent to which the mantissa is amplified (e.g., left shifted) in the filtering engine.
    Type: Application
    Filed: March 3, 2003
    Publication date: September 9, 2004
    Inventor: Michael F. Deering
  • Publication number: 20040174376
    Abstract: A system and method for generating graphics images from 3-dimensional graphics data representing one or more transparent objects and one or more opaque objects are disclosed. Memory locations for storing transparent samples may be provided by reducing the number of opaque samples per pixel as needed, and storing the transparent samples in the memory locations formerly used to store the discarded opaque samples. A plurality of opaque samples for a plurality of sample positions corresponding to a pixel may be initially stored in a sample memory. A transparent sample rendered for one of the plurality of sample positions may replace an opaque sample in another one of the sample positions of the plurality of sample positions. The transparent and opaque samples rendered for the same position may be blended and the blended samples may be filtered at least once per screen refresh cycle to generate output pixels.
    Type: Application
    Filed: March 3, 2003
    Publication date: September 9, 2004
    Inventor: Michael F. Deering
  • Publication number: 20040174360
    Abstract: A graphical processing system comprising a computational unit and a shadow processing unit coupled to the computational unit through a communication bus. The computational unit is configured to transfer coordinates C1 of a point P with respect to a first space to the shadow processing unit. In response to receiving the coordinates C1, the shadow processing unit is configured to: (a) transform the coordinate C1 to determine map coordinates s and t and a depth value DP for the point P, (b) access a neighborhood of depth values from a memory using the map coordinates s and t, (c) compare the depth value DP to the depth values of the neighborhood, (d) filter binary results of the comparisons to determine a shadow fraction, and (e) transfer the shadow fraction to the computational unit through the communication bus.
    Type: Application
    Filed: March 3, 2003
    Publication date: September 9, 2004
    Inventors: Michael F. Deering, Michael G. Lavelle, Douglas C. Twilleager, Daniel S. Rice
  • Patent number: 6781585
    Abstract: A computer graphics system that utilizes a super-sampled sample buffer and a sample-to-pixel calculation unit for refreshing the display. The graphics system may have a graphics processor, a super-sampled sample buffer, and a sample-to-pixel calculation unit. The graphics processor renders samples into the sample buffer at computed positions or locations in the sample buffer. The graphics system may utilize a window ID that specifies attributes of pixels on a per object basis. The window ID may specify one or more of a sample mode, filter type, color attributes, or source attributes. The sample mode may include single sample per pixel mode and multiple samples per pixel mode. In implementing a single sample per pixel mode, the graphics system may be further operable to generate a single sample per pixel for certain windows of the screen in order to, for example, provide backwards compatibility with legacy systems with no multi-sampling support.
    Type: Grant
    Filed: December 29, 2000
    Date of Patent: August 24, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: N. David Naegle, Michael F. Deering, Michael G. Lavelle, Carol Lavelle, Scott R. Nelson
  • Patent number: 6771272
    Abstract: A graphics system comprises pixel calculation units and a sample buffer which stores a two-dimensional field of samples. Each pixel calculation unit selects positions in the two-dimensional field at which pixel values (e.g. red, green, blue) are computed. The pixel computation positions are selected to compensate for image distortions introduced by a display device and/or display surface. Non-uniformities in a viewer's perceived intensity distribution from a display surface (e.g. hot spots, overlap brightness) are corrected by appropriately scaling pixel values prior to transmission to display devices. Two or more sets of pixel calculation units driving two or more display devices adjust their respective pixel computation centers to align the edges of two or more displayed images. Physical barriers prevent light spillage at the interface between any two of the display images. Separate pixel computation positions may be used for distinct colors to compensate for color distortions.
    Type: Grant
    Filed: December 29, 2000
    Date of Patent: August 3, 2004
    Assignee: Sun Microsystems, Inc.
    Inventor: Michael F. Deering
  • Patent number: 6762760
    Abstract: A graphics system configured to implement fogging according to an improved method based on radial distances. The amount of fog applied varies based on a spherical or radial distance from an object to a viewpoint. In another embodiment, the amount of fogging applied may depend on the cylindrical distance form an object to a viewpoint. Fogging cylinders or spheres may be used to define fogging regions where the amount of fogging is applied according to different mathematical functions.
    Type: Grant
    Filed: December 29, 2000
    Date of Patent: July 13, 2004
    Assignee: Sun Microsystems, Inc.
    Inventor: Michael F. Deering
  • Patent number: 6753870
    Abstract: A graphics system comprising a programmable sample buffer and a sample buffer interface. The sample buffer interface is configured to (a) buffer N streams of samples in N corresponding input buffers, wherein N is greater than or equal to two, (b) store N sets of context values corresponding to the N input buffers respectively, (c) terminate transfer of samples from a first of the input buffers to the programmable sample buffer, (d) selectively update a subset of state registers in the programmable sample buffer with context values corresponding to a next input buffer of the input buffers, (e) initiate transfer of samples from the next input buffer to the programmable sample buffer. The context values stored in the state registers of the programmable sample buffer determine the operation of an arithmetic logic unit internal to the programmable sample buffer on samples data.
    Type: Grant
    Filed: January 30, 2002
    Date of Patent: June 22, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Michael F. Deering, Nathaniel David Naegle, Michael G. Lavelle