Antialiazed high-resolution frame buffer architecture
First Claim
1. A method of generating an antialiased image including at least one object, comprising:
- 1) receiving current data describing each of the at least one objects into a processing buffer;
2) determining if portions of the current data represent edges;
3) rasterizing portions of the current data representing edges of the at least one objects;
4) receiving the rasterized data into a high resolution cache;
5) transforming the rasterized data in the high resolution cache into low resolution data when;
(i) data in the high resolution cache is valid, and (ii) an image location of data in the high resolution cache is the same as an image location of a current section being processed; and
6) receiving at least one of the current data and the rasterized data into a low resolution memory.
9 Assignments
0 Petitions
Accused Products
Abstract
A system processes a color image. A high-resolution cache stores high-resolution data. A low-resolution memory, electrically connected to the high-resolution cache, stores low-resolution data. The low-resolution memory is capable of storing at least as much data as the high-resolution cache. An image processor, connected to both the high-resolution cache and the low-resolution memory, receives sequential segments of low-resolution and antialiased image data. As the image processor receives a current segment of the image data, the image processor either 1) transmits the current segment of image data to the low-resolution memory or 2) transforms the current segment to high-resolution data and transmits the high-resolution data to the high-resolution cache.
-
Citations
21 Claims
-
1. A method of generating an antialiased image including at least one object, comprising:
-
1) receiving current data describing each of the at least one objects into a processing buffer;
2) determining if portions of the current data represent edges;
3) rasterizing portions of the current data representing edges of the at least one objects;
4) receiving the rasterized data into a high resolution cache;
5) transforming the rasterized data in the high resolution cache into low resolution data when;
(i) data in the high resolution cache is valid, and (ii) an image location of data in the high resolution cache is the same as an image location of a current section being processed; and
6) receiving at least one of the current data and the rasterized data into a low resolution memory. - View Dependent Claims (2, 3, 4, 5)
7) identifying a current section of a current object to be processed; and
8) determining a current location identifier associated with the current section, the current location identifier identifying a position of the current section within the image.
-
-
3. The method of processing an image as set forth in claim 2:
-
wherein the step 5 includes;
9) determining a first memory location, within the low-resolution memory, as a function of the current location identifier; and
10) receiving the current data into the first memory location of the low-resolution memory;
the method further including;
11) determining a second memory location, within the high-resolution cache, as a function of the current location identifier; and
12) if the previous high-resolution data included in the second memory location corresponds to the same location within the image as the current location identifier, flagging the second memory location as invalid.
-
-
4. The method of processing an image as set forth in claim 3, further including:
-
if the previous high-resolution data stored in the second memory location of the high-resolution cache is flagged as valid;
13) identifying a previous image location associated with the previous high-resolution data stored in the second memory location;
14) determining a low-resolution version of the high-resolution data stored in the second memory location;
15) determining a third memory location, within the low-resolution memory, as a function of the previous image location; and
16) receiving the low-resolution version of the high-resolution data stored in the second memory location of the high-resolution memory into the third memory location of the low-resolution memory;
if the previous high-resolution data stored in the second memory location of the high-resolution cache is flagged as one of valid and invalid;
17)identifying the second memory location as corresponding to the current section;
18) receiving previous low-resolution image data, corresponding to the previous section of the previously processed object at the same location of the current image, from the low-resolution memory into the processing buffer;
19) determining a previous high-resolution representation of the previous low-resolution image data in the processing buffer;
20) merging the high-resolution version of the current low-resolution data with the previous high-resolution representation in the processing buffer;
21) receiving the merged data from the image buffer into the second memory location of the high-resolution cache; and
22) flagging the second memory location of the high-resolution cache as valid.
-
-
5. The method of processing an image as set forth in claim 1 further including:
7) after each of the data for each of the objects is processed, outputting the processed data in the high-resolution cache and the low-resolution memory to a color printing device.
-
6. A method of generating an antialiased image including at least one object, comprising:
-
1) receiving current data describing each of the at least one objects into a processing buffer;
2) rasterizing portions of the current data representing edges of the at least one objects;
3) receiving the rasterized data into a high resolution cache;
4) transforming the rasterized data in the high resolution cache into low resolution data; and
,5) receiving at least one of the current data and the rasterized data into a low resolution memory;
wherein if the current section does include at edge, further including;
6) determining if previous high-resolution data is included in the high-resolution cache;
if the previous high-resolution data is included in the high-resolution memory and the previous high-resolution data corresponds to a previous section of a previously processed object, the previous section having a same location within the image as the current section;
7) merging the previous high-resolution data with a high-resolution version of the current data; and
8) receiving the merged data from the step 7 into the high-resolution cache;
if the previous high-resolution data is included in the high-resolution cache and the previous high-resolution data corresponds to a previous section of a previously processed object, the previous section having a different location within the image as the current section;
9) receiving a low-resolution version of the previous high-resolution data from the high-resolution memory into the low-resolution memory;
10) receiving original low-resolution data from the low-resolution memory into the processing buffer, the original low-resolution data corresponding to the same location within the image as the current section;
11) merging a high-resolution version of the original low-resolution data with the high-resolution version of the current data; and
12) receiving the merged data from the step 11 into the high-resolution memory;
if the previous high-resolution data is not included in the high-resolution memory;
13) receiving the high-resolution version of the current data in the high-resolution cache. - View Dependent Claims (7, 8)
14) receiving the current data into the low-resolution memory.
-
-
8. The method of processing an image as set forth in claim 6, wherein the step 6 of determining if the high-resolution memory includes the previous high-resolution data includes:
-
14) determining if the second memory location within the high-resolution memory includes the previous high-resolution data further including;
15) storing the merged data in the second memory location of the high-resolution cache.
-
-
9. A method of processing an antialiased image including at least one object, comprising:
-
1) receiving current data describing each of the at least one objects into a processing buffer;
2) rasterizing portions of the current data representing edges of the at least one objects;
3) receiving the rasterized data into a high resolution cache;
4) transforming the rasterized data in the high resolution cache into low resolution data;
5) receiving at least one of the current data and the rasterized data into a low resolution memory; and
,6) alpha-blending data previously in the low-resolution memory and that which is received in step 5.
-
-
10. A system for processing a color image, comprising:
-
a high-resolution cache for storing high-resolution data;
a low-resolution memory, connected to the high-resolution cache, for storing low-resolution data, the low-resolution memory being capable of storing at least as much data as the high-resolution cache;
means for determining if portions of a current segment of the image represent an interior or edge portion of the object; and
,an image processor, connected to both the high-resolution cache and the low-resolution memory, for receiving sequential segments of low-resolution and high resolution image data, as the image processor receives a current segment of the image data, the image processor one of
1) transmitting the current segment of image data to the low-resolution memory and
2) transmitting the high-resolution data to the high-resolution cache.- View Dependent Claims (11, 12, 13)
means for determining image coordinates of the current segment, the image coordinates identifying a position of the current segment within the image;
means for determining a first location within the low-resolution memory as a function of the image coordinates; and
means for determining a second location within the high-resolution cache as a function of the image coordinates, the image processor one of
1) transmitting the current segment of image data to the first location within the low-resolution memory and
2) transmitting the current segment to the second location within the high-resolution cache.
-
-
13. The system for processing the color image as set forth in claim 10, further including:
means for outputting the low-resolution data in the low-resolution memory and the high-resolution data in the high-resolution cache to a color output device.
-
14. A system for processing a color image, comprising:
-
a high-resolution cache for storing high-resolution data;
a low-resolution memory, connected to the high-resolution cache, for storing low-resolution data, the low-resolution memory being capable of storing at least as much data as the high-resolution cache; and
,an image processor, connected to both the high-resolution cache and the low-resolution memory, for receiving sequential segments of low-resolution and high resolution image data, as the image processor receives a current segment of the image data, the image processor one of
1) transmitting the current segment of image data to the low-resolution memory and
2) transmitting the high-resolution data to the high-resolution cache, wherein the image processor transmits any portion of the current segment of the image data to the low-resolution memory if that portion of the current segment represents the interior of the object, and transmits edge portions of the current segment as high-resolution data to the high-resolution cache, said image processor including;
means for determining image coordinates of the current segment, the image coordinates identifying a position of the current segment within the image;
means for determining a first location within the low-resolution memory as a function of the image coordinates;
means for determining a second location within the high-resolution cache as a function of the image coordinates, the image processor one of
1) transmitting the current segment of image data to the first location within the low-resolution memory and
2) transmitting the current segment to the second location within the high-resolution cache; and
,means for flagging data stored in the second location within the high-resolution cache as one of valid and invalid, if the current segment of the image data is transmitted to the first location within the low-resolution memory, the means for flagging setting the data stored in the second location within the high-resolution cache as invalid. - View Dependent Claims (15, 16)
means for determining, before new high-resolution data is stored in the second location, if previous data stored in the second location within the high-resolution cache is valid; and
means for transforming valid previous data in the second location within the high-resolution cache to previous low-resolution data and transmitting the previous low-resolution data to the first location within the low-resolution memory.
-
-
16. The system for processing the color image as set forth in claim 15, the image processor further including:
-
means for retrieving previous low-resolution data from the low-resolution memory, the previous low-resolution data corresponding to the image coordinates of the current section;
means for transforming the previous low-resolution data into previous high-resolution data;
means for merging the previous high-resolution data and the current data segment; and
means for transmitting the merged data to the second location within the high-resolution cache and flagging the second location within the high-resolution cache as valid.
-
-
17. A system for processing a color image, comprising:
-
a high-resolution cache for storing high-resolution data;
a low-resolution memory, connected to the high-resolution cache, for storing low-resolution data, the low-resolution memory being capable of storing at least as much data as the high-resolution cache;
an image processor, connected to both the high-resolution cache and the low-resolution memory, for receiving sequential segments of low-resolution and high resolution image data, as the image processor receives a current segment of the image data, the image processor one of
1) transmitting the current segment of image data to the low-resolution memory and
2) transmitting the high-resolution data to the high-resolution cache; and
,means for processing op-codes for instructing a special processor to process the low-resolution data of the current section, the op-codes including a set color command, a set low command, a set low with alpha command, a set high resolution pixel command, a set high resolution rectangle command, and a DMA write operation command.
-
-
18. A method of generating an antialiased image including at least two objects, all of a plurality of data for a first one of the objects being processed before any of a plurality of data for a second one of the objects is processed, wherein at least part of the image is stored in a low resolution frame buffer and at least part of the image is stored in a high resolution cache, comprising, for each of the data of each of the objects:
-
1) receiving data of a current section into a special processor, the current section being a part of a current object being processed;
2) receiving an op-code into the special processor from a general processor, the op-code instructing the special processor for processing the data of the current section; and
3) executing the op-code. - View Dependent Claims (19, 20, 21)
4) if the op-code is the set color command, storing a first operand of the set color command in a first internal register;
5) if the op-code is the set low command, a special processor writing the contents of the first internal register to a low-resolution frame buffer;
6) if the op-code is the set low with alpha command, the special processor determining whether to execute instructions associated with the set low command;
7) if the op-code is the set high resolution pixel command;
8) testing if a high-resolution cache includes data at a target location;
9) if the data is included in the target location, writing the low-resolution data to the target location; and
10) if the data is not included in the target location, identifying neighbors of the target location, reading neighboring data from the low-resolution frame buffer, and scaling-up the low-resolution data and the neighboring data, 11) if the op-code is the set high-resolution rectangle command;
12) testing if a high-resolution cache includes data at a target location;
13) if the data is included in the target location, writing the contents of the first register to the target location;
14) if the data is not included in the target location, identifying neighbors of the target location, reading neighboring data from the low-resolution frame buffer, scaling-up the low-resolution data and the neighboring data; and
15) determining pixels to be set for a high-resolution rectangle; and
16) if the op-code is the DMA write command;
17) copying data from a general processor'"'"'s memory space to the low resolution memory.
-
-
20. The method of processing an image as set forth in claim 19, the step 6 including:
-
18) comparing an operand of the command to all zero'"'"'s;
19) comparing an operand of the command to all one'"'"'s;
20) if the operand includes all zero'"'"'s, determining not to execute instructions associated with the set low command;
21) if the operand includes all one'"'"'s, determining to execute instructions associated with the set low command; and
22) if the operand does not one of include all zero'"'"'s and include all one'"'"'s;
23) reading data from a memory;
24) combining a value in the first internal register, weighted by a contents of a third operand of the command, with the data read from the memory; and
25) writing the combined data to the memory.
-
-
21. The method of processing an image as set forth in claim 19, the step 17 including:
-
18) determining a starting location for a data copy;
19) determining a scanline length to be used during the data copy;
20) determining a number of scanlines to be used during the data copy; and
21) determining a number of bytes to be used between successive scanlines.
-
Specification