Computer system with improved pixel processing capabilities
First Claim
1. A computer system, comprising:
- a display providing a large number of selectably visible pixels;
at least one central processing unit which manipulates graphical objects in an image space containing at least as many pixels as the number of pixels in said display;
an image memory, containing at least as many addressible pixel data locations as the number of pixels in said display;
a display driver, which can access said pixel data locations in said image memory and drive said display, in accordance therewith, to produce a viewable image corresponding to the data stored in at least some pixel data locations in said image memory; and
a pixel processing unit, connected to receive data which defines positions of graphical objects from said central processing unit, and accordingly to write pixel data into said image memory;
wherein said pixel processing unit is connected for parallel access to said image memory, such that said pixel processing unit normally reads or writes data for a plurality of pixel locations, corresponding to a patch of pixels which are contiguous in said image space, in each single access to said image memory;
and wherein said central processing unit is operable to command a line to be drawn between two specified endpoints, and in response thereto said pixel processing unit;
incrementally selects the appropriate pixel patches for manipulation, by a method wherein a cumulative error term is carried forward from one patch to the next;
accesses locations in said image memory corresponding to successively selected patches of pixels, and performs an interpolation operation to determine which pixels of each respective patch are part of said line, and selectively writes corresponding data, for the thus-determined pixels of said respective patch, into said image memory;
wherein any two sequentially selected ones of said patches of pixels adjoin, in said image space, along an entire side of each patch;
and wherein said display driver produces an image on said display which at least partially includes the pixels rendered by said pixel processing unit.
6 Assignments
0 Petitions
Accused Products
Abstract
A computer system having a pixel processing unit with multiple subprocessors receives positional data defining graphical objects from the CPU and writes pixel data into the image memory, and a display driver produces an image which partially includes the rendered pixels. The pixel processor is used to access patches of multiple contiguous pixels at a time, and process them in parallel. The patches used are defined, within the overall geometry of the image, to have aligned corners. The unit is also connected to receive synchronization signals from the display driver, conditioned on whether the current line being accessed by the driver is within a specified range of lines in the image space. The unit is operable to command the pixel processing unit to write pixel data corresponding to all pixels covered by a polygon, and in response traverses portions of the image space by scanning portions of one row of patches of pixels at a time, and for some of the patches, testing only the pixels at the leading edge of the patch in the direction of scanning.
-
Citations
25 Claims
-
1. A computer system, comprising:
-
a display providing a large number of selectably visible pixels; at least one central processing unit which manipulates graphical objects in an image space containing at least as many pixels as the number of pixels in said display; an image memory, containing at least as many addressible pixel data locations as the number of pixels in said display; a display driver, which can access said pixel data locations in said image memory and drive said display, in accordance therewith, to produce a viewable image corresponding to the data stored in at least some pixel data locations in said image memory; and a pixel processing unit, connected to receive data which defines positions of graphical objects from said central processing unit, and accordingly to write pixel data into said image memory; wherein said pixel processing unit is connected for parallel access to said image memory, such that said pixel processing unit normally reads or writes data for a plurality of pixel locations, corresponding to a patch of pixels which are contiguous in said image space, in each single access to said image memory; and wherein said central processing unit is operable to command a line to be drawn between two specified endpoints, and in response thereto said pixel processing unit; incrementally selects the appropriate pixel patches for manipulation, by a method wherein a cumulative error term is carried forward from one patch to the next; accesses locations in said image memory corresponding to successively selected patches of pixels, and performs an interpolation operation to determine which pixels of each respective patch are part of said line, and selectively writes corresponding data, for the thus-determined pixels of said respective patch, into said image memory; wherein any two sequentially selected ones of said patches of pixels adjoin, in said image space, along an entire side of each patch; and wherein said display driver produces an image on said display which at least partially includes the pixels rendered by said pixel processing unit. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer system, comprising:
-
a display providing a large number of selectably visible pixels; at least one central processing unit which manipulates graphical objects in an image space containing at least as many pixels as the number of pixels in said display; an image memory, containing at least as many addressable pixel data locations as the number of pixels in said display; a display driver, which can access said pixel data locations in said image memory and drive said display, in accordance therewith, to produce a viewable image corresponding to the data stored in at least some pixel data locations in said image memory; and a pixel processing unit, connected to receive data which defines positions of graphical objects from said central processing unit, and accordingly to write pixel data into said image memory; wherein said pixel processing unit is connected for parallel access to said image memory, such that said pixel processing unit normally reads or writes data for a plurality of pixel locations, corresponding to a patch of pixels which are contiguous in said image space, in each single access to said image memory; and wherein said central processing unit is operable to command a line to be drawn between two specified endpoints, and in response thereto said pixel processing unit; incrementally selects the appropriate pixel patches for manipulation, by a method wherein a cumulative error term is carried forward from one patch to the next; accesses locations in said image memory corresponding to successively selected patches of pixels, and performs an interpolation operation to determine which pixels of each respective patch are part of said line, and selectively writes corresponding data, for the thus-determined pixels of said respective patch, into said image memory; wherein any two sequentially selected ones of said patches of pixels adjoin, in said image space, along an entire side of each patch; wherein said display driver produces an image on said display which at least partially includes the pixels rendered by said pixel processing unit; and wherein said pixel processing unit, prior to accessing data for a first one of said patches of pixels, selects first and second orthogonal directions, in accordance with the slope of said line, such that the positional offset of each said subsequent patch in said second direction cannot be greater than the positional offset thereof in said first direction.
-
-
10. A computer system, comprising:
-
a display providing a large number of selectably visible pixels; at least one central processing unit which manipulates graphical objects in an image space containing at least as many pixels as the number of pixels in said display; an image memory, containing at least as many addressable pixel data locations as the number of pixels in said display; a display driver, which can access said pixel data locations in said image memory and drive said display, in accordance therewith, to produce a viewable image corresponding to the data stored in at least some pixel data locations in said image memory; and a pixel processing unit, connected to receive data which defines positions of graphical objects from said central processing unit, and accordingly to write pixel data into said image memory; wherein said pixel processing unit is connected for parallel access to said image memory, such that said pixel processing unit normally reads or writes data for a plurality of pixel locations, corresponding to a patch of pixels which are contiguous in said image space, in each single access to said image memory; and wherein said central processing unit is operable to command said pixel processing unit to write pixel data corresponding to all pixels covered by a polygon, and in response thereto said pixel processing traverses portions of said image space by scanning portions of one row of patches of pixels at a time, and for at least one of said patches, testing only the pixels at the leading edge of the patch in the direction of scanning; and wherein said pixel processing unit accordingly renders pixels into said image memory, and said display driver produces an image on said display which at least partially includes the pixels rendered by said pixel processing unit. - View Dependent Claims (11)
-
-
12. A computer system, comprising:
-
a display providing a large number of selectably visible pixels; at least one central processing unit which manipulates graphical objects in an image space containing at least as many pixels as the number of pixels in said display; an image memory, containing at least as many addressable pixel data locations as the number of pixels in said display; a display driver, which can access said pixel data locations in said image memory and drive said display, in accordance therewith, to produce a viewable image corresponding to the data stored in at least some pixel data locations in said image memory; and a pixel processing unit, comprising multiple subprocessors, connected to receive data which defines positions of graphical objects from said central processing unit, and accordingly to write pixel data into said image memory; wherein said pixel processing unit is connected for parallel access to said image memory, such that said pixel processing unit normally reads or writes data for a plurality of pixel locations, corresponding to a patch of pixels which are contiguous in said image space, in each single access to said image memory; and wherein said central processing unit is operable to command said pixel processing unit to set the value of every pixel in the interior of one or more given polygons which are each defined by a plurality of boundary lines, and in response thereto said pixel processing unit performs a sequence of multiple parallel XOR operations, such that each said XOR operation inverts the data values stored at locations corresponding to pixels within a respective shape which is at least partially bounded by a respective one of said boundary lines and which is also bounded by at least one other line which is parallel to one of the principal axes of said image space, and each said XOR operation is performed in parallel, on multiple pixels, by said multiple subprocessors of said pixel processing unit; and wherein said pixel processing unit accordingly renders pixels into said image memory, and said display driver produces an image on said display which at least partially includes the pixels rendered by said pixel processing unit. - View Dependent Claims (13, 14)
-
-
15. A computer system, comprising:
-
a display providing a large number of selectably visible pixels; at least one central processing unit which manipulates graphical objects in an image space containing at least as many pixels as the number of pixels in said display; an image memory, containing at least as many addressable pixel data locations as the number of pixels in said display; a display driver, which can access said pixel data locations in said image memory and drive said display, in accordance therewith, to produce a viewable image corresponding to the data stored in at least some pixel data locations in said image memory; and a pixel processing unit, comprising multiple subprocessors, connected to receive data which defines positions of graphical objects from said central processing unit, and accordingly to write pixel data into said image memory; wherein said pixel processing unit is connected for parallel access to said image memory, such that said pixel processing unit normally reads or writes data for a plurality of pixel locations, corresponding to a patch of pixels which are contiguous in said image space, in each single access to said image memory; and wherein said central processing unit is operable to command said pixel processing unit to set the value of every pixel in the interior of a given polygonal shape, which is defined by a plurality of boundary lines, and in response thereto said pixel processing unit performs a sequence of multiple parallel binary additions, wherein each said binary addition modifies the data values stored at locations corresponding to pixels within a respective shape which is at least partially bounded by a respective one of said boundary lines and which is also bounded by at least one other line which is parallel to one of the principal axes of said image space, each said binary addition is performed in parallel, on multiple pixels, by said multiple subprocessors of said pixel processing unit; and wherein said pixel processing unit accordingly renders pixels into said image memory, and said display driver produces an image on said display which at least partially includes the pixels rendered by said pixel processing unit.
-
-
16. A computer system, comprising:
-
a display providing a large number of selectably visible pixels;
program and data memory;an image memory, containing at least as many addressable pixel data locations as the number of pixels in said display; a display driver, which can access said pixel data locations in said image memory and drive said display, in accordance therewith, to produce a viewable image corresponding to the data stored in at least some pixel data locations in said image memory; and a pixel processing unit, operatively connected to receive data and program instructions from said program and data memory, and operatively connected to write pixel data into said image memory, wherein said pixel processing unit comprises multiple subprocessors executing a substantially common instruction stream in parallel; wherein said pixel processing unit is connected for parallel access to said image memory, such that said pixel processing unit normally reads or writes data for a plurality of pixel locations, corresponding to a patch of pixels which are contiguous in said image space, in each single access to said image memory; and wherein said pixel processing unit is operable to be commanded to render the outline of a given set of points, corresponding to every point resulting from translation of any element of a given set of points by at least one of, but less than all of, a given set of offset vectors, and in response thereto said multiple subprocessors of said pixel processing unit operate in parallel, on each pixel of said set of points, to increment a respective count value for each pixel which corresponds to said respective point translated by any one of said set of offsets; and said pixel processing unit renders, into said image memory, all pixels for which said respective count value has been incremented at least once and less times than the number of said offsets; and wherein said display driver produces an image on said display which at least partially includes the pixels rendered by said pixel processing unit. - View Dependent Claims (17, 18, 19)
-
-
20. A computer system, comprising:
-
a display providing a large number of selectably visible pixels; at least one central processing unit which manipulates graphical objects in an image space containing at least as many pixels as the number of pixels in said display; an image memory, containing at least as many addressible pixel data locations as the number of pixels in said display; a display driver, which can access said pixel data locations in said image memory and drive said display, in accordance therewith, to produce a viewable image corresponding to the data stored in at least some pixel data locations in said image memory; and a pixel processing unit, connected to receive data which defines positions of graphical objects from said central processing unit, and accordingly to write pixel data into said image memory; wherein said pixel processing unit is connected for parallel access to said image memory, such that said pixel processing unit normally reads or writes data for a plurality of pixel locations, corresponding to a patch of pixels which are contiguous in said image space, in each single access to said image memory; and wherein said pixel processing unit and said CPU are operatively connected to a program memory space, and are configured and connected together to execute various programmed sequences of commands, ones of which are decoded so that after a Stencil command is received, with an argument indicating a first envelope set of pixels, at least some further operations by said pixel processing unit are confined to pixels defined by said stencil command; when a Translator command is received after a Stencil command is received, with an argument indicating at least one set-mapping operation, at least some further operations by said pixel processing unit are not confined only to said first envelope set of pixels, but are confined to a second envelope set which includes said first envelope set as modified by said set-mapping operation; when a Clipper command is received, said pixel processing unit selects or deselects a contiguous set of pixels from the current envelope set, wherein multiple Clipper commands can be performed successively on a single envelope set, to effect cumulative selection of pixels; when any one of a plurality of possible Pixel-Attribute Modification commands is received, said pixel processing unit performs the respective pixel-attribute modification on only those pixels which were selected by a preceding clipper commands; and
wherein, in response to at least some ones of said Pixel-Attribute Modification commands, said pixel processing unit renders pixels and writes pixel data into said image memory accordingly;and wherein said display driver produces an image on said display which at least partially includes the pixels rendered by said pixel processing unit. - View Dependent Claims (21)
-
-
22. A computer system, comprising:
-
a display providing a large number of selectably visible pixels; at least one central processing unit which manipulates graphical objects in an image space containing at least as many pixels as the number of pixels in said display; an image memory, containing at least as many addressible pixel data locations as the number of pixels in said display; a display driver, which can access said pixel data locations in said image memory and drive said display, in accordance therewith, to produce a viewable image corresponding to the data stored in at least some pixel data locations in said image memory; and a pixel pressing unit, connected to receive data which defines positions of graphical objects from said central processing unit, and accordingly to write pixel data into said image memory; wherein said pixel processing unit is connected for parallel access to said image memory, such that said pixel processing unit normally reads or writes data for a plurality of pixel locations, corresponding to a patch of pixels which are contiguous in said image space, in each single access to said image memory; and wherein said central processing unit is operable to command said pixel processing unit to write pixel data corresponding to all pixels covered by a line, and in response thereto said pixel processing unit traverses portions of said image space by repeatedly; a) accessing data for a first patch of pixels, and rendering pixels at all locations therein intersected by said line, and then b) accessing data for a subsequent patch of pixels which, in said image space, is adjacent to the previously selected patch of pixels in a first direction, and does not overlap said previously selected patch of pixels, and has positional offset, in a second direction orthogonal to said first direction, which is selected so that said line intersects said subsequent patch of pixels precisely between a predetermined first pixel position thereof and a predetermined second pixel position thereof; and
thenc) rendering pixels at all pixel locations, in said respective patch, which are covered by said line; and
thenrepeating steps b) and c) as needed; and wherein said pixel processing unit accordingly renders pixels into said image memory, and said display driver produces an image on said display which at least partially includes the pixels rendered by said pixel processing unit. - View Dependent Claims (23, 24, 25)
-
Specification