A method, an apparatus, and computer-readable medium with instructions to carry out a method. The method is to rasterize variable and non-variable content for multiple instances of a page and includes dividing a page is into a plurality of non-overlapping parts including variable content. The method includes rasterizing the page with no variable content present into a rasterized fixed page that includes for at least any part that has no variable content a rasterized fixed image. The method further includes identifying one or more parts of the plurality of parts of the page that have variable content, and rasterizing each instance of the page with the variable elements of the page instance into a rasterized instance that includes, for each part that has variable content, a rasterized variable image that includes the variable content and any non-variable content of the instance. The generated rasterized fixed images and rasterized variable images for each instance are combinable.
|
26. A system for processing a job for printing, the printing to generate multiple variable instances of one or more pages, at least one page including a plurality of elements of which some elements are fixed across instances of the page and some elements vary from instance to instance, the system comprising:
tangible means for dividing a page into a plurality of non-overlapping parts, of which, in the case the page includes one or more variable elements, at least one part includes variable content that has one or more variable elements or portions thereof in at least one instance, such that both the parts that have fixed elements or portions thereof from instance to instance, and the one or more parts that have variable elements or portions thereof are non-overlapping;
tangible means for rasterizing the non-overlapping parts of the page with no variable content into corresponding rasterized fixed images of the non-overlapping part with no variable content, such that the element or elements that are fixed from instance to instance are combinable into one rasterized fixed page;
tangible means for deducing one or more non-overlapping parts of the plurality of non-overlapping parts of each variable instance of the page that have variable content; and
tangible means for rasterizing the non-overlapping parts with variable content for each instance of the page into corresponding rasterized variable images of the non-overlapping parts including, for each non-overlapping part with variable content, the variable content and any non-variable content of the non-overlapping part,
such that, for each instance, the rasterized fixed images of non-overlapping parts and the rasterized variable images of non-overlapping parts of the instance are combinable to form a rasterized instance of the page.
1. A method of operating a processing system to process a job for printing, the printing to generate multiple variable instances of one or more pages, at least one page including a plurality of elements of which some are fixed from instance to instance, and some may vary from instance to instance, the method comprising:
for a page that has one or more variable elements and one or more elements that are fixed from instance to instance,
dividing the page into a plurality of non-overlapping parts, of which at least one non-overlapping part includes variable content that has one or more variable elements or portions thereof in at least one instance, such that both the parts that have fixed elements or portions thereof from instance to instance, and the one or more parts that have variable elements or portions thereof are non-overlapping;
rasterizing the page with no variable content present into a rasterized fixed page of non-overlapping parts that includes, for at least any non-overlapping part that has no variable content, a rasterized fixed image of the non-overlapping part with no variable content, such that the element or elements that are fixed from instance to instance are combinable into one rasterized fixed page;
identifying one or more non-overlapping parts that include variable content; and
rasterizing each instance of the page with the variable elements of the page instance into a rasterized set of non-overlapping instance parts that includes for each non-overlapping part that has variable content a rasterized variable image of the non-overlapping part that includes the variable content and any non-variable content of the instance of the part;
such that, for each instance, the rasterized fixed images of non-overlapping parts and the rasterized variable images of non-overlapping parts of the instance are combinable to form a rasterized instance of the page.
21. A tangible computer readable storage medium on which are encoded instructions that when executed by one or more processors of a processing system carry out a method of processing a job for printing, the printing to generate multiple variable instances of one or more pages, at least one page including a plurality of elements of which some are fixed from instance to instance, and some may vary from instance to instance, the method comprising:
for a page that has one or more variable elements and one or more elements that are fixed from instance to instance,
dividing the page into a plurality of non-overlapping parts, of which at least one non-overlapping part includes variable content that has one or more variable elements or portions thereof in at least one instance, such that both the parts that have fixed elements or portions thereof from instance to instance, and the one or more parts that have variable elements or portions thereof are non-overlapping;
rasterizing the page with no variable content present into a rasterized fixed page of non-overlapping parts that includes, for at least any non-overlapping part that has no variable content, a rasterized fixed image of the non-overlapping part with no variable content, such that the element or elements that are fixed from instance to instance are combinable into one rasterized fixed page;
identifying one or more non-overlapping parts that include variable content; and
rasterizing each instance of the page with the variable elements of the page instance into a rasterized set of non-overlapping instance parts that includes for each non-overlapping part that has variable content a rasterized variable image of the non-overlapping part that includes the variable content and any non-variable content of the instance of the part;
such that, for each instance, the rasterized fixed images of non-overlapping parts and the rasterized variable images of non-overlapping parts of the instance are combinable to form a rasterized instance of the page.
15. An apparatus that includes one or more processors and that is operative to generate multiple variable instances of one or more pages for an output device such as a printer, at least one page including a plurality of elements of which some are fixed across instances, and some may vary from instance to instance, the apparatus comprising:
a part former configured to divide, using at least one of the processors, a page that has one or more variable elements and one or more elements that are fixed from instance to instance into a plurality of non-overlapping parts, of which at least one non-overlapping part includes variable content that has one or more variable elements or portions thereof in at least one instance, wherein both the parts that have fixed elements or portions thereof from instance to instance, and the one or more parts that have variable elements or portions thereof are non-overlapping; and
a rasterizer coupled to the part former and configured, using at least one of the processors, to:
rasterize the page with no variable content present into a rasterized fixed page of non-overlapping parts that includes for at least any non-overlapping part that has no variable content a rasterized fixed image of the non-overlapping part with no variable content, such that the element or elements that are fixed from instance to instance are combinable into one rasterized fixed page;
identify one or more non-overlapping parts of the page that include variable content; and
rasterize each instance of the page with the variable elements of the page instance into a rasterized set of non-overlapping instance parts that includes for each non-overlapping part that has variable content a rasterized variable image that includes the variable content and any non-variable content of the instance of the non-overlapping part;
such that, for each instance, the rasterized fixed images of non-overlapping parts and the rasterized variable images of non-overlapping parts of the instance are combinable to form a rasterized instance of the page.
2. A method as recited in
3. A method as recited in
4. A method as recited in
5. A method as recited in
6. A method as recited in
7. A method as recited in
wherein the parts are rectangular tiles of a fixed size, such that the tiles include fixed tiles and variable tiles, the fixed tiles corresponding to the parts of the page with no variable content present and the variable tiles corresponding to the parts that have variable content, and
wherein the process of rasterizing each instance of the page into a rasterized instance includes combining the non-variable content with the variable content for each variable tile to form a combined tile, and rasterizing the combined tile into the rasterized variable image.
8. A method as recited in
wherein the parts are rectangular tiles of a fixed size, such that the tiles include fixed tiles and variable tiles, the fixed tiles corresponding to the parts of the page with no variable content present and the variable tiles corresponding to the parts that have variable content, and
wherein the rasterizing each instance of the page into a rasterized instance includes for each tile rasterizing the variable content of tile excluding any fixed content to form a variable only image, and combining the variable only image with a corresponding rasterized fixed image to form the rasterized variable image.
9. A method as recited in
10. A method as recited in
11. A method as recited in
applying color management to the parts that have one or more variable elements or portions thereof, such that the rasterized variable portions are stored after color management;
applying color management to the page without variable content present, such that the rasterized fixed tiles are stored after color management; and
for each instance of a page, identifying the stored output fixed tiles and the stored output variable tiles corresponding to that instance and combining the identified output fixed tiles and the output variable tiles to form a rasterized page of that instance.
12. A method as recited in
wherein the identifying of one or more parts of the plurality of parts of the page that have variable content defines rectangular regions that each has variable content in at least one instance, and defines at least one part that has no variable content in any instance, each of the rectangular regions that have variable content in at least one instance having a location and size,
wherein the rasterizing the page with no variable content includes only rasterizing one or more parts that have no variable content in any instance, and
wherein the rasterizing each instance of the page with the variable elements of the page instance includes rasterizing all the rectangular regions of the page.
13. A method as recited in
generating a fixed image for the part that has no variable elements; and
generating a set of images for the set of rectangular regions for each page instance.
14. A method as recited in
16. An apparatus as recited in
17. An apparatus as recited in
wherein the rasterizer is further configured to rasterize, for each variable instance, using at least one of the processors, the non-variable and the variable content of each variable tile into the rasterized variable image.
18. An apparatus as recited in
wherein the rasterizer is further configured to:
discard, using at least one of the processors, any fixed content of the variable tile while rasterizing the variable tile with variable content;
process, using at least one of the processors, the variable content of the variable tile to form a variable only image; and
combine, using at least one of the processors, the variable only image with a corresponding rasterized fixed image to form the rasterized variable image.
19. An apparatus as recited in
20. An apparatus as recited in
22. A tangible computer readable storage medium as recited in
23. A tangible computer readable storage medium as recited in
24. A tangible computer readable storage medium as recited in
wherein the identifying of one or more parts of the plurality of parts of the page that have variable content defines rectangular regions that each has variable content in at least one instance, and defines at least one part that has no variable content in any instance, each of the rectangular regions that have variable content in at least one instance having a location and size,
wherein the rasterizing the page with no variable content includes only rasterizing one or more parts that have no variable content in any instance, and
wherein the rasterizing each instance of the page with the variable elements of the page instance includes rasterizing all the rectangular regions of the page.
25. A tangible computer readable storage medium as recited in
generating a fixed image for the part that has no variable content;
generating a set of images for the rectangular regions for each variable instance; and
combining for each variable instance, the fixed image with the set of images for the variable instance.
27. A system as recited in
28. A system as recited in
|
The present invention claims priority and is a conversion of U.S. Provisional Patent Application No. 60/953,103 filed Jul. 31, 2007 to inventor Johan Himpe, titled RASTERIZING VARIABLE AND NON-VARIABLE DATA FOR PRINTING. The contents of such provisional patent application are incorporated herein by reference.
The present disclosure relates generally to digital printing of multiple instances of pages containing variable information with unrestricted variability across pages. More particularly, this invention relates to a method, an apparatus, and logic encoded in at least one computer-readable tangible medium to carry out a method to rasterize variable and non-variable information for multiple instances of a page.
Recent digital printing devices have made it possible to print pages which are completely different from one another. A page is typically described using a page description language (PDL) such as PostScript PDL and “PDF” by Adobe Systems, Inc., Mountain View, Calif. A PDL file typically includes a list of commands which, when interpreted, generate graphical objects such as text, images, etc. Variable data printing is a form of printing that produces individualized printed pages containing information that varies from instance to instance, each instance targeted, for example, to an individual recipient. With variable printing, each page can contain variable data with unrestricted variability from page to page.
Generally, existing tools for printing multi-page documents define each page as a collection of page elements where each page element is defined in PDL as part of a page description file. Each page element of a page is rasterized using a raster image processor to generate a bitmap image. The rasterization includes interpreting the objects defined in a PDL file and generating a set of images corresponding to the objects. Finally, the page elements are merged together into a larger image, typically during printing. In such architecture, the number of page elements in a page can vary from page to page. Therefore the time to generate each page and hence the print performance is unpredictable. Also, a color management system is usually applied to all page elements of a page before printing. In existing systems, a color management system is typically applied separately to different elements, e.g. to variable data regions and to fixed data regions. This can give undesirable results in areas where the different elements overlap each other after merging.
Thus, in printing pages with multiple page elements, there is a need for a method and an apparatus that improves the predictability of the time required to merge data for a page. There is also a need to be able to correctly apply color management to resolve issues that might occur in regions of overlapping page elements.
Overview
Embodiments of the present invention include a method, an apparatus, and logic encoded in at least one computer-readable tangible medium to carry out a method. The method is to rasterize variable and non-variable content for multiple instances of a page and to combine rasterized content for a page that can vary from instance to instance.
Particular embodiments include a method of operating a processing system to process a job for printing. The printing is to generate multiple variable instances of one or more pages. The job contains one or more pages that in one embodiment are each described using a PDL. At least one page includes a plurality of elements of which some elements—fixed elements—are fixed from instance to instance, and some elements—variable elements—may vary from instance to instance. In one embodiment, each element is described in the PDL.
In one embodiment, that has one or more variable elements, the method includes dividing a page into a plurality of non-overlapping parts of which at least one part includes variable content that has one or more variable elements or portions thereof in at least one instance. The method for the page also includes rasterizing the page with no variable content present into a rasterized fixed page that includes, for any part that has no variable content, a rasterized fixed image. The method for the page further includes identifying one or more parts of the page that have variable content, and rasterizing each instance of the page with the variable elements of the page instance into a rasterized instance that includes, for each part that has variable content, a rasterized variable image that includes the variable content of the instance and any non-variable content. The generated rasterized fixed images and rasterized variable images for each instance are combinable to form a rasterized instance of the page. Particular embodiments include an apparatus operative to generate multiple variable instances of one or more pages for an output device such as a printer. At least one page includes a plurality of elements of which some are fixed across instances, and some vary from instance to instance. An embodiment of the apparatus includes a part former configured to divide at least one page into a plurality of non-overlapping parts of which at least one part includes variable content that has one or more variable elements or portions thereof in at least one instance.
The apparatus further includes a rasterizer coupled to the part former and configured to rasterize the page with no variable content present into a rasterized fixed page that includes for at least any part that has no variable content a rasterized fixed image. The rasterizer is also configured to identify one or more parts of the page that include variable content; and to rasterize each instance of the page with variable elements into a rasterized instance that includes a rasterized variable image for each part that has variable content. The rasterized variable image includes the variable content and any non-variable content of the instance. The rasterized fixed and rasterized variable images generated for each instance are combinable to form a rasterized instance of the page.
In one alternate embodiment, the rasterizer is implemented as software running on a processor. In another, the rasterizer is implemented to include hardware circuitry. The hardware circuitry in one version is hard wired, and in another includes one or more programmable elements. In one version, a programmable element includes a processor programmed to carry out the rasterizing function.
One embodiment of the apparatus includes a raster image processor (RIP) implemented as a processing system including a computer readable medium on which are encoded instructions that when executed, cause implementing a raster image processing method that processes a job of variable printing in two phases to generate raster images. The method includes two passes operating on a page divided into a plurality of non-overlapping parts, of which at least one part includes variable content that has one or more variable elements or portions thereof in at least one instance:
The combined variable part can then be combined with a corresponding rasterized fixed image to form the rasterized variable image.
In another embodiment, the raster image processor also is operative to combine the fixed and variable elements of each instance of a page that has one or more variable elements.
In one version, color management is applied as an option to the parts that have one or more variable elements or portions thereof such that the rasterized variable images are stored after color management. Color management is applied as an option to the parts with no variable content such that rasterized fixed images are stored after color management. The rasterized fixed images can then be combined with the rasterized variable images for each variable instance to form a rasterized page for the variable instance.
In one implementation, each part is in the form of a rectangular tile of a fixed size. The tiles include fixed tiles and variable tiles. The fixed tiles correspond to parts of a page with no variable content whereas the variable tiles correspond to parts of the page that have variable content in at least one instance.
In one embodiment, the parts are rectangular tiles of a fixed size, such that the tiles include fixed tiles and variable tiles, the fixed tiles corresponding to parts of the page with no variable content present and the variable tiles corresponding to the parts that have variable content.
Particular embodiments include a computer readable storage medium on which are encoded instructions that when executed by one or more processors of a processing system cause carrying out a method of processing a job for printing, the printing to generate multiple variable instances of one or more pages, at least one page including a plurality of elements of which some are fixed from instance to instance, and some may vary from instance to instance. The method includes, for a page that has one or more variable elements, dividing the page into a plurality of non-overlapping parts, of which at least one part includes variable content that has one or more variable elements or portions thereof in at least one instance. The method further includes rasterizing the page with no variable content present into a rasterized fixed page that includes for at least any part that has no variable content a rasterized fixed image, identifying one or more parts that include variable content; and rasterizing each instance of the page with the variable elements of the page instance into a rasterized instance that includes for each part that has variable content a rasterized variable image that includes the variable content and any non-variable content of the instance. The rasterized fixed images and the rasterized variable images of each instance are combinable to form a rasterized instance of the page. Particular embodiments include system for processing a job for printing, the printing to generate multiple variable instances of one or more pages, at least one page including a plurality of elements of which some elements are fixed across instances of the page and some elements vary from instance to instance. The system includes means for dividing a page into a plurality of non-overlapping parts, of which, in the case the page includes one or more variable elements, at least one part includes variable content that has one or more variable elements or portions thereof in at least one instance. The system further includes means for rasterizing the parts of the page with no variable content into corresponding rasterized fixed images; means for deducing one or more parts of the plurality of parts of each variable instance of the page that have variable content; and means for rasterizing the parts with variable content for each instance of the page into corresponding rasterized variable images that include the variable content and any non-variable content of the part. The rasterized fixed images and the rasterized variable images of each instance are combinable to form a rasterized instance of the page.
One feature of an embodiment of the invention that includes a raster image processor is that the raster image processor does not process the entire variable instance every time, but only processes parts containing variable content. This makes the rasterization procedure faster and also saves memory or storage. Another feature of an embodiment of the invention is that the overlapping of fixed elements with variable elements is resolved during rasterization of the parts that have variable elements and thus gives the correct output when color management is applied. Yet another feature of one embodiment of the invention is the better predictability of printing speed. Because the variable parts have been pre-combined, the amount of data in them is predictable and known, and the print speed of a job containing variable elements is comparable to a job with no variable elements.
Particular embodiments may provide all, some, or none of these aspects, features, or advantages. Particular embodiments may provide one or more other aspects, features, or advantages, one or more of which may be readily apparent to a person skilled in the art from the figures, descriptions, and claims herein.
The described embodiments of the invention can be used as part of a complete system for preparing data for printing on a printing process based on a digital printing press. An example of such a system is illustrated as 101 in
The Prepress Workstation 105
Three workstations denoted as 105 are shown in
The designer specifies the overall design of a book in a page layout script. The page layout script maps for each page, the set of page elements required by the page and such page elements are processed from the corresponding PDL files by the methods known in the art.
Note that two individual rasterizers are shown in the system of
The RIP System 103
The fixed elements and the variable elements of each page are combined according to the script and input to one or more rasterizers that are part of a RIP system 103 that is operative to rasterize data into rasterized data suitable for input to a printing device.
One method embodiment includes dividing each page into a plurality of non-overlapping parts, of which at least one part includes variable content that has one or more variable elements or portions thereof in at least one instance.
One embodiment of the invention operates on parts of a page. Each instance of the multiple pages 207 of the job is divided into a plurality of non-overlapping parts.
In one embodiment, the dividing of each page instance into non-overlapping parts is carried out by the RIP system 103. In another embodiment, the method of dividing of each page instance into non-overlapping parts is carried out in the one or more workstations that run the prepress software.
The dividing of the pages 207 into a plurality of parts results in processed pages 209-1, 209-2, and so forth, with each page divided into a plurality of non-overlapping parts, e.g. rectangular tiles. Each part, e.g., tile of the plurality of parts includes one or more page elements, e.g., text and/or graphics. For example, a part formed in an instance of page 209-1 includes instances of the page elements E3,1, E3,2, E4,1 and E4,2. Similarly a part formed in an instance of the page 209-2 includes the page elements E5,3, E5,4, E6,3 and E6,4. The page elements are shown non-overlapping and also whole. However, those in the art will understand that this is only for convenience. That is, there may be multiple layers, each having elements, such that the elements may overlap, and furthermore, elements may extend beyond part boundaries, such that a part may have only a portion of one or more elements. The dividing each page into a plurality of non-overlapping parts, e.g., rectangular tiles is such that for at least one page that has one or more variable elements, one part, e.g., tile includes variable content that has one or more variable elements or portions thereof in at least one instance.
The following discussion will be for this one page that has one or more variable elements.
One method embodiment includes the RIP system 103 rasterizing the page with no variable content into a rasterized fixed page that includes for at least any part that has no variable content a rasterized fixed image.
One method embodiment further includes identifying one or more parts that include variable content, and the RIP system 103 rasterizing each instance of the page with the variable elements of the page instance into a rasterized instance that includes for each part that has variable content a rasterized variable image that includes the variable content and any non-variable content of the instance. Thus, fixed images are formed, and variable images are formed. A rasterized page instance is made up of some fixed images and some variable images. Thus, the rasterized fixed images and the rasterized variable images of each instance are combinable to form a rasterized instance of the page.
In one implementation, rasterizing the part with variable content excludes any fixed content in the part and processes only the variable content of the part to form a combined variable part. The combined variable part can then be combined with a corresponding rasterized fixed image of the part to form the rasterized variable image.
Suppose for purpose of illustration, parts 305-3 is the same in each instance. This is referred to as an S part hereinafter. In one embodiment, the rasterizing occurs in two passes. A first pass includes rasterizing, e.g., by the RIP(s), the page with no variable content present into a rasterized fixed page 307 that includes for at least any part that has no variable content a rasterized fixed image. In the example shown, a rasterized first image 309-3 of the part that only has fixed content is shown. In general, the rasterized fixed images are collectively referred to as 309 hereinafter. The parts that include variable content are identified and in a second pass, each instance of the page with the variable elements of the page instance are rasterized, e.g., by the RIP(s) into a rasterized instance that includes for each part that has variable content, a rasterized variable image that includes the variable content and any non-variable content of the instance.
In one embodiment, each part of a page is a rectangular non-overlapping part, with the parts of the page equal in size, and abutting. In one such version, the RIP system 103 stores the rasterized fixed image(s) corresponding to the part(s) of a page with no variable content as output fixed tiles. The RIP system 103 stores the rasterized variable images 313 corresponding to the parts of the page with variable content for each variable instance 303 in output variable tiles. Each instance of the page thus is made up of the output fixed tiles and output variable tiles. The output fixed tiles and the output variable tiles for each variable instance of the page are identified and combined to form a rasterized page for the variable instance 315-1, 315-2 and 315-3, collectively referred to as 315 hereinafter. Each rasterized page 315, also referred to as rasterized instance includes combined output fixed tiles 317-3, 317-7, 317-11 and combined output variable tiles 317-1, 317-2, 317-4, 317-5, 317-6, 317-8, 317-9, 317-10, 317-12. In another embodiment, the combination of the output fixed tiles and the output variable tiles for each variable instance of the page can be done in a combination system 115.
In one embodiment, color management is applied. As the rasterization is of complete parts that, for any instance, are combinable to form the instance of the page, color management can be applied to complete parts. Compare this to some alternate variable printing systems, in which individual elements are rasterized and combined on the fly. When combined to form instances of a page, some of the elements in such a system might overlap. If color management was applied to the individual elements, combining overlapping elements may cause erroneous results.
While in one implementation, each part is in the form of a rectangular tile of a fixed size, the tiles abutting to form a page, in another implementation, the fixed part includes all the regions of the page that have no variable element in any instance. Therefore, the fixed part is a page with “holes” where there is variable content in at least one instance. The variable parts are, for each instance, the parts that fill the “holes” in the fixed part.
The rasterized fixed image and the rasterized variable images of each instance are combinable to form the rasterized instances denoted 331. Thus,
While in one embodiment the parts, e.g., variable parts are rectangular, alternate embodiments have other shapes.
Again because the fixed and variable images that are combinable already combine elements that may be in different layers and that may be overlapping, so that the fixed and variable parts are non-overlapping, applying color management to each rasterized image is possible without errors occurring due to the combining.
The Rapid Combination System 109
One embodiment includes a rapid combination system 109. In one version, the rapid combination system 109 includes a rasterized image cache 111, a rasterized image store 113, and a combination system 115. In an alternate version, there is no cache, and the rasterized image store is included as part of the RIP system 103. One embodiment of the RIP system 103 and the rapid combination system 109 is implemented on a computer called the assembler computer herein. The RIP system 103 and the rapid combination system 109 can also be implemented on different assembler computers. In particular, one embodiment of the method of the present invention includes steps performed by the assembler computer executing a software program, and one embodiment of the apparatus of the present invention includes the assembler computer or components thereof, including a memory loaded with software instructions causing the assembler computer to operate in a particular way.
While the remaining description will generally assume that elements of the invention are embodied in a computer such as computer system 401, the invention or parts thereof may alternately be embodied in dedicated devices such as printer servers, and printer controllers. Some of these devices may include many of the elements that also are in a general computer system such as computer system 401. It should be noted that in one embodiment, the prepress workstation(s) 105 also is a general purpose computer system which, in general, could have the same architecture as that of
Assembler computer system 401 includes a processor 403 that is coupled to a number of subsystems via a bus subsystem 405. These subsystems typically include a memory subsystem 407, a user input facility 409, a display subsystem 411, output devices such as a printer 413, and a file storage system 415. Not all of these subsystems need be included in all embodiments of the invention. In this context, the term “bus subsystem” is used generically so as to include any mechanism for letting the various components of the system communicate with each other as intended. With the exception of the input devices and the display, the other components need not be at the same physical location. Thus, for example, portions of the file storage system could be connected via various local-area or wide-area network media, including telephone lines. Similarly, the input devices and display need not be at the same location as the processor, although it is anticipated that versions of the present invention will most often be implemented in the context of personal computers (“PCs”) and workstations.
Bus subsystem 405 is shown schematically as a single bus, but a typical system has a number of buses such as a local bus and one or more expansion buses (e.g., ADB, SCSI, ISA, EISA, MCA, NuBus, PCI, PCI-Express, etc.), as well as serial and parallel ports. Network connections are usually established through a device such as a network adapter on one of these expansion buses or a modem on a serial port. The computer system may be a desktop system or a portable system or an embedded controller.
Memory subsystem 407 includes a number of memories including a main random access memory (“RAM”) 435 and a read only memory (“ROM”) 437 in which fixed instructions are stored. In some embodiments, DMA controller 439 may be included. DMA controller 439 enables transfers from or to memory without going through processor 403.
User input facility 409 typically includes a keyboard 417 and may further include a pointing device 419 and a scanner 421. The pointing device may be an indirect pointing device such as a mouse, trackball, touchpad, or graphics tablet, or a direct pointing device such as a touchscreen incorporated into the display. Display subsystem 411 typically includes a display controller 423 and a display device 425 coupled to the controller. The display device may be a cathode ray tube (“CRT”), a flat-panel device such as a liquid crystal display (“LCD”), or a projection device. The display controller provides control signals to the display device and normally includes a display memory (not shown in the figure) for storing the pixels that appear on the display device.
The file storage system 415 provides persistent (non-volatile) storage for program and data files, and typically includes at least one hard disk drive 427. One or more of the disk drives 427 may be in the form of a random array of independent disks (“RAID”) system, while others may be more conventional disk drives. The disk drive 427 may include a cache memory subsystem 433 which includes fast memory to speed up transfers to and from the disk drive. There may also be other devices such as a CD or DVD drive 431 and other optical drives. Additionally, the system may include hard drives of the type with removable media cartridges. As noted above, one or more of the drives may be located at a remote location, such as in a server on a local area network or at a site on the Internet.
The memory subsystem 407 typically includes data and/or software programs for rasterizing variable and non-variable data for a job of variable printing that are immediately accessible to and/or presently operated on by processor 403. It should be noted that while
In one embodiment, the system 401 includes, e.g., in memory subsystem 407 a page splitting software component 445, a rasterization software component 447, and a combination software component 449. Other software components 451 are included, and may include software that assists in the functioning of the computer system 401, such as an operating system.
In addition to program software components, data 453 is included in the computer. In the case a single computer system 401 is used for both the creation of workstation 105, the RIP system 903, and the combination system 109, the data 453 include the script 203, images 457, PDL files 459, and other data 461 specific to the system or the application.
In one implementation, the page splitting software component 445 divides each page of one or more pages of a job for variable printing into a plurality of non-overlapping parts. Typically, for variable printing, at least one page has at least one part including variable content that has one or more variable elements or portions thereof in at least one variable instance. The rasterization software component 447 rasterizes the parts of the page with no variable content into rasterized fixed images 309. The rasterization software component 447 rasterizes the parts of the page with variable elements into rasterized variable images 313 for each variable instance of the page.
The combination software component 449 combines for each instance, the rasterized fixed images 309 stored as output fixed tiles and the rasterized variable images 313 stored as output variable tiles to form a rasterized page for the variable instance.
Unless specifically stated otherwise, as apparent from the following discussions, terms such as “processing,” “computing,” “calculating,” “determining” or the like refer to the action and/or processes of a computer, a computing system, or a similar electronic computing device, that manipulates and/or transforms physical data. In a similar manner, the term “processor” may refer to any device or portion of a device that processes electronic data from registers and/or memory to transform that electronic data into other electronic data that may be stored in registers and/or memory. A “computer”, a “computing machine”, and a “computing platform” may include one or more processors.
The Rasterized Image Cache 111 and Rasterized Image Storage 113
One embodiment is designed for real time printing. Referring to
The other aspects of rasterized image cache 111 deal with retrieval by the combination system 115 of the rasterized fixed and rasterized variable images from rasterized image store 113. In one version, rasterized fixed images that can be used multiple times for each variable instance of a page are kept in the rasterized image cache memory 111, so that the system needs to read them only once from the rasterized image storage 113.
The Page Layout Script
The page layout script typically is generated in workstation 105. In one embodiment, the page layout script is a text (ASCII) description which is an ordered list of books. Each book includes an ordered list of pages, each page includes an ordered list of page elements, and each page element includes an ordered list of properties. In one implementation, the properties of any page element include an element identifier, a list of page numbers to which the page element belongs, and a position identifier in each page. In case of a page with multiple variable instances, the element identifier property can change for each variable instance. Although one may enter such a script manually using a text editor, one also can use an automatic script generator running on workstation 105 which is tied to a database system for variable printing. Whether written manually or with the aid of a computer based system, the page layout script is stored in disk storage, which may be the same physical unit as rasterized image storage 113. In one embodiment, the script is executed by the same processor 403 that executes the programming that implements rasterized image cache 111 and the combination system 115. In alternate embodiments, more than one processor is used. Note that no limitations to the scope of the invention are implied by the particular script syntax used in one embodiment.
The Combination System 115
The combination system 115 is implemented as a set of computer programs that operate on processor 403. In one embodiment, the combination system 115 retrieves rasterized images from the RIP system 103 which are stored in the rasterized image store 113 and combines the rasterized images for each instance of the page into a rasterized page of that instance by combining the rasterized fixed images 309 and the rasterized variable images 313 for the instance. The rasterized fixed images 309, which are stored as output fixed tiles, reside on the rasterized image store 113 along with the rasterized variable images 313 which are stored as output variable tiles. The output fixed tiles and the output variable tiles can then be read into the rasterized image cache 111 using the page layout script which maps each variable instance of one or more pages of a variable job with the corresponding rasterized images for the variable instance. The output fixed tiles and the output variable tiles corresponding to each variable instance are read into the rasterized image cache 111 and combined to form the rasterized page for that instance using the combination system 115. The rasterized page for the instance can then be sent to the printing device 117.
Although embodiments of the invention have been described in the context of parts of a page, alternative embodiments of the present invention are not limited to such contexts and may be utilized in various other applications and systems. Furthermore, embodiments are not limited to any one type of system, and thus, may be utilized in conjunction with one or a combination of other systems. In particular, the computer programs include threads that execute in parallel and communicate with each other using standard interthread communication methods. Standard interthread communication methods as known to those of ordinary skill in the art of computer programming include shared memory, mutexes, signals, pipes, etc. A read thread can be implemented to read the output fixed tiles and the output variable tiles for each variable instance from the rasterized image store 113. The output tiles are read by the read thread into the rasterized image cache 111. A combination thread can then combine the output fixed tiles with the output variable tiles for each instance.
In another embodiment, for each variable instance of the variable job, the combination system 115 fetches the output variable tiles containing the rasterized variable images 313 for the variable instance. The fetched output variable tiles can then be combined with the remaining tiles needed for the page using the output fixed tiles which contain the rasterized fixed images 309.
Apparatus for Rasterizing and Combination
Particular embodiments of the invention include an apparatus for rasterizing a job of variable printing, where the printing process generates multiple variable instances of one or more pages. Each page includes a plurality of elements of which some are fixed from instance to instance and some vary across instances. The apparatus in this particular embodiment also stores the page description files corresponding to the page elements on a file storage system 415. The RIP system 103 divides the page into a plurality of non-overlapping parts of which at least one part includes variable content that has one or more variable elements or portions thereof in at least one instance.
In one embodiment, rasterized images of parts of the page are generated by the RIP system 103 and are stored on the file storage system 415. The storage device can be a RAID subsystem in file system 415. Alternatively, a storage device can be a large high speed buffer memory device comprising a large amount of RAM for storing the raster images of multiple variable instances of one or more pages, so that this data is rapidly available for processing.
The combining process can be implemented as software running on processor 403, or as a piece of hardware circuitry, which may include a separate processor, for carrying out the function. If the combining process includes a processor and a memory, said memory includes a set of computer instructions running on said processor. This set of computer instructions causes the processor to read the page layout script and to retrieve the rasterized images as specified in the page layout script. Combining processes may also include a DMA controller with or without scatter-gather capability for speeding up the combining as described above.
Example methods for rasterizing a job of variable printing are described with reference to
The example methods are illustrated as a collection of blocks in a logical flow chart representing a sequence of operations that can be implemented in hardware, software, firmware, or a combination thereof. The order in which the methods are described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the methods, or alternate methods. Additionally, individual blocks may be deleted from the methods without departing from the spirit and scope of the subject matter described herein. In the context of software, the blocks represent computer instructions that, when executed by one or more processors, perform the recited operations.
At block 509, the page with no variable content is rasterized into a rasterized fixed page. This includes rasterizing parts with no variable content into corresponding rasterized fixed images.
Block 511 and 519 define the loop limits for the rasterization process of the variable parts of page for a loop operative until for all the variable parts of the page for all instances of the page are rasterized.
At block 513, one or more parts of the plurality of parts of the page having variable content are identified. At block 515, for each part that has any variable content in any instance, each variable instance of the part is rasterized into a rasterized variable image including the variable content and the non-variable content of the instance. Block 515 also includes storing each rasterized variable image. The rasterized fixed images and the rasterized variable images are stored as output fixed tiles and output variable tiles, respectively.
At block 519, the rasterization process is stopped when all the variable instances of the page are processed. At block 521, the rasterization process is stopped when all the pages of the job for variable printing are rasterized. The rasterized fixed image and for each instance the corresponding rasterized variable images for the instance can now be combined to form the complete page. One method includes such combining.
Blocks 605 and 621 define the loop limits of rasterizing each page. The blocks within the loop limits are carried out until all pages have been processed. For a page that may have variable content, at block 607, the page is divided into a plurality of non-overlapping rectangular tiles of fixed size that abut each other. The tiles includes one or more fixed tiles that do not vary instance to instance and one or more variable tiles that include variable content, i.e., content that varies between at least two instances.
At block 609, the fixed tiles are rasterized into corresponding rasterized fixed images. The rasterized fixed images are stored as output fixed tiles. Blocks 611 and 619 define the loop limits of rasterizing any tiles that have content that varies across at least some instances. The blocks between the limits apply to each such variable tile.
For such a variable tile, at block 613, the variable content and any other content of the tile is combined. This includes resolving any overlaps, including layers, as the variable elements can be of different sizes across instances and can overlap with elements that do not vary from instance to instance.
At block 617, each variable instance of the page with variable elements is rasterized into a rasterized instance. This includes rasterizing for each variable instance of the page, each variable tile into a corresponding rasterized variable image that includes variable content and non-variable content of the instance. The rasterized variable images are stored as output variable tiles.
The rasterized fixed image and for each instance the corresponding rasterized variable images for the instance can now be combined to form the complete page. One method includes such combining.
At block 703, pages for job of variable printing are received. Each page includes multiple elements of which some elements are fixed from instance to instance and some elements may vary across instances. Each job has at least one page that includes variable content.
Blocks 705 and 719 define the loop limits of processes that are carried out for each page to rasterize each such page into combinable parts for each instance of each page.
For each page, at block 707, the page is divided into a set of non-overlapping parts, e.g., rectangular parts that together form the page. The parts are typically not the same size. There is at least one part with content that does not vary from instant to instant and there are one or more parts having one or more elements or portions of elements that vary across at least some instances.
At block 709, the at least one part with no variable content is rasterized into a fixed image.
Blocks 711 and 717 define the loop limit for rasterizing each of the set of parts that include variable content. In 713, for each such part that includes variable content, the instances part is rasterized into corresponding rasterized variable images and stored as variable image instances.
The rasterized fixed image and for each instance the corresponding rasterized variable images for the instance can now be combined to form the complete page. One method includes such combining.
At block 807, the rasterized fixed images and the rasterized variable images for each instance are combined to form a rasterized instance of the page. At block 809 are sent to the printing device for printing. The methodologies described herein are, in one embodiment, performable by one or more processors that accept computer-readable (also called machine-readable) logic encoded on one or more computer-readable media containing a set of instructions that when executed by one or more of the processors carry out at least one of the methods described herein. Any processor capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken are included. Thus, one example is a typical processing system that includes one or more processors. Each processor may include one or more of a CPU, a graphics processing unit, and a programmable DSP unit. The processing system further may include a memory subsystem with a main RAM and/or a static RAM, and/or ROM. A bus subsystem may be included for communicating between the components. The processing system further may be a distributed processing system with processors coupled by a network. If the processing system requires a display, such a display may be included, e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT) display. If manual data entry is required, the processing system also includes an input device such as one or more of an alphanumeric input unit such as a keyboard, a pointing control device such as a mouse, and so forth. The term memory unit as used herein, unless explicitly stated otherwise, also encompasses a storage system such as a disk drive unit. The processing system in some configurations may include a sound output device, and a network interface device. The memory subsystem thus includes a computer-readable medium on which is encoded logic (e.g., software) including a set of instructions to cause, when executed by one or more processors, the performing of one or more of the methods described herein. The software may reside in the hard disk or it may also reside, completely or at least partially, within the RAM and/or within the processor during execution thereof by the computer system. Thus, the memory and the processor also constitute a computer-readable medium on which is encoded logic, e.g., in the form of instructions.
Furthermore, a computer-readable medium may form, or be included in a computer program product.
In alternative embodiments, the one or more processors operate as a standalone device or may be connected, e.g., networked to other processor(s), in a networked deployment, the one or more processors may also operate in the capacity of a server or a client machine in server-client network environment, or as a peer machine in a peer-to-peer or distributed network environment. The one or more processors may form a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine.
Note that while some diagram(s) only show(s) a single processor and a single memory that carries the logic including instructions, those in the art will understand that many of the components described above are included, but not explicitly shown or described in order not to obscure the inventive aspect. For example, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
Thus, one embodiment of each of the methods described herein is in the form of a computer-readable medium on which is encoded a set of instructions, e.g., a computer program that are for execution on one or more processors, e.g., one or more processors that are part of the RIP system 103. Thus, as will be appreciated by those skilled in the art, embodiments of the present invention may be embodied as a method, an apparatus such as a special purpose apparatus, an apparatus such as a data processing system, or a tangible computer-readable medium, e.g., a computer program product. The computer-readable medium carries logic including a set of instructions that, when executed on one or more processors, causes implementing a method. Accordingly, aspects of the present invention may take the form of a method, an entirely hardware embodiment, an entirely software embodiment or an embodiment combining both software and hardware aspects. Furthermore, the present invention may take the form of medium (e.g., a computer program product on a computer-readable storage medium) configured with computer-readable program code embodied in the medium.
The software may further be transmitted or received over a network via a network interface device. While the computer readable medium is shown in an example embodiment to be a single medium, the term “computer readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “computer readable medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by one or more of the processors and that cause performing any one or more of the methodologies of the present invention. A computer readable medium may take many forms, including but not limited to non-volatile media and/or volatile media. Non-volatile media includes, for example, optical, magnetic disks, and magneto-optical disks. Volatile media includes dynamic memory, such as main memory. For example, the term “computer-readable medium” shall accordingly be taken to include, but not be limited to a tangible medium such as a solid-state memory or optical or magnetic medium on which are encoded instructions, or a computer software product encoded in computer-readable tangible media
It will be understood that the steps of methods discussed are performed in one embodiment by an appropriate processor (or processors) of a processing (i.e., computer) system executing instructions stored in storage. It will also be understood that embodiments of the present invention are not limited to any particular implementation or programming technique and that the invention may be implemented using any appropriate techniques for implementing the functionality described herein. Furthermore, embodiments are not limited to any particular programming language or operating system.
Reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, appearances of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures or characteristics may be combined in any suitable manner, as would be apparent to one of ordinary skill in the art from this disclosure, in one or more embodiments.
Similarly it should be understood that in the above description of example embodiments of the invention, various features of the invention are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure and aiding in the understanding of one or more of the various inventive aspects. This method of disclosure, however, is not to be interpreted as reflecting an intention that the claimed invention requires more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive aspects lie in less than all features of a single disclosed embodiment. Thus, the claims following the DESCRIPTION OF EXAMPLE EMBODIMENTS are hereby expressly incorporated into this DESCRIPTION OF EXAMPLE EMBODIMENTS, with each claim standing on its own as a separate embodiment of this invention.
Furthermore, while some embodiments described herein include some but not other features included in other embodiments, combinations of features of different embodiments are meant to be within the scope of the invention, and form different embodiments, as would be understood by those in the art. For example, in the following claims, any of the claimed embodiments can be used in any combination.
Furthermore, some of the embodiments are described herein as a method or combination of elements of a method that can be implemented by a processor of a computer system or by other means of carrying out the function. Thus, a processor with the necessary instructions for carrying out such a method or element of a method forms a means for carrying out the method or element of a method. Furthermore, an element described herein of an apparatus embodiment is an example of a means for carrying out the function performed by the element for the purpose of carrying out the invention.
In the description provided herein, numerous specific details are set forth. However, it is understood that embodiments of the invention may be practiced without these specific details. In other instances, well-known methods, structures and techniques have not been shown in detail in order not to obscure an understanding of this description.
Unless otherwise specified, the use of the ordinal adjectives “first”, “second”, “third”, etc., to describe a common object, merely indicate that different instances of like objects are being referred to, and are not intended to imply that the objects so described must be in any given sequence, either temporally, spatially, in ranking, or in any other manner.
All publications, patents, and patent applications cited herein are hereby incorporated by reference.
Any discussion of prior art in this specification should in no way be considered an admission that such prior art is widely known, is publicly known, or forms part of the general knowledge in the field.
In the claims below and the description herein, any one of the terms “comprising”, “comprised of”, or “which comprises” is an open term that means “including at least the elements/features that follow, but not excluding others.” Thus, the term comprising, when used in the claims, should not be interpreted to limit the means or elements or steps listed thereafter. For example, the scope of the expression, “a device comprising A and B” should not be limited to devices consisting only of elements A and B. Any one of the terms “including” or “which includes” or “that includes” as used herein is also an open term that also means “including at least the elements/features that follow the term, but not excluding others.” Thus, “including” is synonymous with and means comprising.
Thus, while there has been described what are believed to be preferred embodiments of the invention, those skilled in the art will recognize that other and further modifications may be made thereto without departing from the spirit of the invention, and it is intended to claim all such changes and modifications as fall within the scope of the invention. For example, any formulas given above are merely representative of procedures that may be used. Functionality may be added or deleted from the block diagrams and operations may be interchanged among functional blocks. Steps may be added or deleted to methods described within the scope of the present invention.
Hence, although this invention has been described with respect to specific embodiments, those embodiments are illustrative only. No limitation with respect to the embodiments is intended or should be inferred. Numerous variations and modifications may be effected without departing from the true spirit and scope of the novel concept of the invention, and it is intended that the scope of the invention be defined by the claims appended hereto.
Patent | Priority | Assignee | Title |
10133970, | Mar 11 2016 | Broadridge Customer Communications, LLC; BROADRIDGE OUTPUT SOLUTIONS, INC, | Bitmap processing of digital documents |
10460218, | Mar 11 2016 | Broadridge Output Solutions, Inc. | Bitmap processing of digital documents |
11327701, | Mar 20 2020 | Esko Software BVBA | System and method for converting graphic files for printing |
8422041, | Oct 19 2009 | Canon Kabushiki Kaisha | Image processing apparatus, method, and program for converting postscript data with variable print data into a PDF format considering an attribute of plural drawing objects |
8810847, | Dec 08 2009 | Canon Kabushiki Kaisha | Information processing apparatus, information processing method, and storage medium storing program thereof |
Patent | Priority | Assignee | Title |
6049390, | Nov 05 1997 | Barco Graphics NV | Compressed merging of raster images for high speed digital printing |
6654147, | Jul 06 1998 | KODAK I L, LTD | Anti-aliasing for digital printing |
7327487, | Oct 23 2001 | Eastman Kodak Company | Banded compositor for variable data |
7949945, | May 03 2000 | RR Donnelley & Sons | Variable text processing for an electronic press |
20050162676, | |||
20080018935, | |||
20080165382, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jul 23 2008 | Esko IP NV | (assignment on the face of the patent) | / | |||
Aug 27 2008 | HIMPE, JOHAN | Esko IP NV | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 021758 | /0706 |
Date | Maintenance Fee Events |
Jan 10 2013 | ASPN: Payor Number Assigned. |
Jan 13 2016 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Jan 09 2020 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Jan 17 2024 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Jul 24 2015 | 4 years fee payment window open |
Jan 24 2016 | 6 months grace period start (w surcharge) |
Jul 24 2016 | patent expiry (for year 4) |
Jul 24 2018 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jul 24 2019 | 8 years fee payment window open |
Jan 24 2020 | 6 months grace period start (w surcharge) |
Jul 24 2020 | patent expiry (for year 8) |
Jul 24 2022 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jul 24 2023 | 12 years fee payment window open |
Jan 24 2024 | 6 months grace period start (w surcharge) |
Jul 24 2024 | patent expiry (for year 12) |
Jul 24 2026 | 2 years to revive unintentionally abandoned end. (for year 12) |