System and Method for Optimising Halftoning Printer Performance
0 Assignments
0 Petitions
Accused Products
Abstract
A method (500) of creating an image is disclosed. The image (e.g. 200) is formed by rendering a plurality of graphical objects (e.g. 203, 204, 205) on a scanline (e.g. 301) basis, where each scanline (301) comprises at least one run of pixels (e.g. 325). The method (500) forms an array representing the graphical objects (203, 204, 205) of the image (500). The array is sorted in an order from a top-most graphical object to a bottom-most graphical object. For each scanline (301) of the image (200) and for each run of pixels (325) of the scanline (301), the array is traversed to detennine objects (203, 204, 205) contributing to the run of pixels (325). If a top-most contributing object is fully opaque, then data associated with the fully opaque object is halftoned to generate the run of pixels (325). Otherwise data associated with one or more of the contributing objects is composited and the composited data is balftoned to generate the run of pixels (325).
19 Citations
16 Claims
-
1-6. -6. (canceled)
-
7. An apparatus for rendering a plurality of graphical objects of an image on a scanline basis, each scanline comprising at least one run of pixels, each run of pixels being associated with at least one of the graphical objects such that the pixels of the run are within the edges of the at least one graphical object, said apparatus comprising:
-
decomposing means for decomposing each of the graphical objects into at least one edge representing the corresponding graphical objects;
sorting means for sorting one or more arrays containing the edges representing the graphical objects of the image, at least one of the arrays being sorted in an order from a highest priority graphical object to a lowest priority graphical object;
determining means for, using the one or more arrays, determining edges of the graphical objects defining a run of pixels of a scanline, graphical objects contributing to the run and edges of the contributing graphical objects; and
generating means for generating the run of pixels by halftoning pixel data within the edges of the highest priority contributing graphical object, if the highest priority contributing graphical object is opaque, otherwise, compositing data associated with the highest priority contributing graphical object and one or more of further contributing graphical objects and halftoning the composited data. - View Dependent Claims (11, 14)
-
-
8-10. -10. (canceled)
-
12. A computer program for rendering a plurality of graphical objects of an image on a scanline basis, each scanline comprising at least one run of pixels, each run of pixels being associated with at least one of the graphical objects such that the pixels of the run are within the edges of the at least one graphical object, said program comprising code for executing the following steps:
-
(I) decomposing each of the graphical objects into at least one edge representing the corresponding graphical object;
(II) sorting one or more arrays containing the edges representing the graphical objects of the image, at least one of the arrays being sorted in an order from a highest priority graphical object to a lowest priority graphical object; and
(III) for each run of pixels of each scanline;
(III)(i) determining edges of the graphical objects defining the run, graphical objects contributing to the run of pixels and edges of the contributing graphical objects, using the one or more arrays; and
(III)(ii) generating the run of pixels by halftoning pixel data within the edges of a highest priority contributing graphical object, if the highest priority contributing graphical object is opaque, otherwise, compositing data associated with the highest priority contributing graphical object and one or more of further contributing graphical objects and halftoning the composited data.
-
-
13. A computer readable medium, having a program recorded thereon, where the program is configured for rendering a plurality of graphical objects of an image on a scanline basis, each scanline comprising at least one run of pixels, each run of pixels being associated with at least one of the graphical objects such that the pixels of the run are within edges of the at least one graphical object, said program comprising code for executing the following steps:
-
(I) decomposing each of said graphical objects into at least one edge representing the corresponding graphical object;
(II) sorting one or more arrays containing the edges representing the graphical objects of the image, at least one of the arrays being sorted in an order from a highest priority graphical object to a lowest priority graphical object; and
(III) for each run of pixels of each scanline;
(III)(i) determining edges of the graphical objects defining the run, graphical objects contributing to the run of pixels and edges of the contributing graphical objects, using the one or more arrays; and
(III)(ii) generating the run of pixels by halftoning pixel data within the edges of a highest priority contributing graphical object, if the highest priority contributing graphical object is opaque, otherwise, compositing data associated with the highest priority contributing graphical object and one or more further contributing graphical objects and halftoning the composited data.
-
-
15. A computer program for rendering a plurality of graphical objects of an image on a scanline basis, each scanline comprising at least one run of pixels, each run of pixels of a scanline being associated with at least one of said graphical objects such that the pixels of the run are within the edges of the at least one graphical object, said program comprising code for executing the following steps:
-
(I) decomposing each of the graphical objects into at least one edge representing the corresponding graphical object;
(II) sorting one or more arrays containing the edges representing the graphical objects of the image, at least one of the arrays being sorted in an order from a highest priority graphical object to a lowest priority graphical object; and
(III) for each run of pixels of each scanline;
(III)(i) determining edges of the graphical objects defining the run, graphical objects contributing to the run of pixels and edges of the contributing graphical objects, using the one or more arrays; and
(III)(ii) generating the run of pixels by halftoning pixel data within the edges of a highest priority contributing graphical object, if the highest priority contributing graphical object is opaque, otherwise, compositing data associated with the highest priority contributing graphical object and one or more further contributing graphical objects and processing the composited data.
-
-
16. A computer readable medium, having a program recorded thereon, where the program is configured for rendering a plurality of graphical objects of an image on a scanline basis, each scanline comprising at least one run of pixels, each run of pixels being associated with at least one of the graphical objects such that the pixels of the run are within the edges of the at least one graphical object, said program comprising code for executing the following steps:
-
(I) decomposing each of the graphical objects into at least one edge representing the corresponding graphical object;
(II) sorting one or more arrays containing the edges representing the graphical objects of the image, at least one of the arrays being sorted in an order from a highest priority graphical object to a lowest priority graphical object; and
(III) for each run of pixels of each scanline;
(III)(i) determining edges of the graphical objects defining the run, graphical objects contributing to the run of pixels and edges of the contributing graphical objects, using the one or more arrays; and
(III)(ii) generating the run of pixels by halftoning pixel data within the edges of a highest priority contributing graphical object, if the highest priority contributing graphical object is opaque, otherwise, compositing data associated with the highest priority contributing graphical object and one or more further contributing graphical objects and processing the composited data.
-
Specification