Abstract:
A method and apparatus for distribution of a print job for digital printing by distributing elements of the print job between a plurality of processing means. The method and apparatus includes receiving a common job file (CJF) ( 41 ). Splitting the common job file into plurality of CJF chunks ( 74 ) wherein the number of the CJF chunks will be generated in accordance of availability of the processing means ( 42 ). Distributing the CJF chunks to the processing means for processing and generating a plurality of ready-to-print pages (RTP) ( 14 ) pages. Sending said generated plurality of RTP pages to a digital printer ( 52 ) by adhering to the page order of the print job.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    Reference is made to commonly-assigned copending U.S. patent application Ser. No. 11/858,477, filed Sep. 20, 2007, and entitled PARALLEL PROCESSING OF PAGE DESCRIPTION LANGUAGE, by Aronshtam et al., the disclosure of which is incorporated herein. 
     
    
     FIELD OF THE INVENTION 
       [0002]    The present invention relates to methods and apparatus for efficient distribution of page description language (PDL) objects among processors for a digital front end system in order to provide digital data required for high speed digital printers conforming to printers speed needs. 
       BACKGROUND OF THE INVENTION 
       [0003]    Digital frontends or color print servers geared to prepare data and drive digital printers can be described in general terms by two major parts as is depicted in  FIG. 1 :
       1. A frontend element  11  processes digital files in a form of a page description language (PDL)  13 , such as, for example, PostScript (PS). The frontend element  11  is equipped with PDL processing means, and the output of the processing means is data  14  in a ready-to-print (RTP) form.   2. A backend element  12  receives the RTP data and sends it to a digital printer for printing via a video interface  15  to the printer.       
 
         [0006]    Most of color print servers produce the RTP data buffers in line with the print engine, in other words, the data that is generated by the frontend  11  is immediately consumed by the backend  12 , without a step of generating RTP objects and saving them on an intermediate storage for further printing. One line of commercial color print services uses the above method of intermediate RTP generation, and defines a special RTP format and a data flow based on the RTP format. The RTP format consists of reusable as well as from non-reusable elements which are represented as separate RTP elements. 
         [0007]    Frontend  11  receives incoming PDL jobs in, for example, a page definition file (PDF), PS or variable PostScript (VPS). Frontend  11  processes the jobs, and converts the PDL to RTP jobs. Backend  12  merges and assembles the RTP elements into page-bitmaps and outputs the bitmaps to the printer using a video interface  15 . 
         [0008]    The use of intermediate saved RTP format is to better for meeting the digital printer&#39;s engine speed. For non-variable data printing (VDP) jobs, multiple copies are printed at the engine speed. This is achieved by preparing the RTP once and printing the RTP multiple times. In the case of typical VDP jobs, the RTP is prepared at engine speed. 
         [0009]    The strict division between the frontend and the backend elements when designing an interface to new printer is a very important. The frontend is a printer-independent part and typically requires limited customization, while the backend is a printer-dependent part and typically requires specific customization to accommodate specific printer needs.  FIG. 2  is a top-level view of a typical commercial color print server illustrating the separation between the frontend  11  and the backend  12  as discussed above. 
         [0010]    An important element in the printer color server architecture is the merger and printer interface boards  28 . A merger-board merges and assembles RTP elements in real-time at the engine speed. The rest of the system can be viewed as a production line and its main purpose is to produce a plurality of RTP object in order to feed the merger-boards. This view of the system is convenient, however, other alternative views are possible as well. 
         [0011]    RTP format is a proprietary format of the Eastman Kodak Company for ripped jobs. According to this format, a ripped job consists of RTP pages and each page refers to RTP elements. RTP is an element-based format and rendered reusable and non-reusable elements are represented as separate RTP elements. Each RTP element can be viewed as a compressed raster-element. RTP is prepared accordingly to accommodate the specifics of the fusion cards and engine characteristics. 
         [0012]    Processing frontend  11  consists of the following main components:
       Job input  22 , responsible for importing jobs to the system;   Raster image processor (RIP)  23 ;   Image processing components  24  for transformations of raster data produced by RIP  23 ;   RTP preparation module  25 .       
 
         [0017]    As described above, the frontend  11  receives incoming PDL jobs  13  and converts them to RTP format  14 . PDL-to-RTP is a multi-step operation that consists of the following processing steps:
       1. The job is received and imported to the system.   2. The job is scheduled for processing.   3. The pipelined job processing starts by RIP  23 , image processing  24  such as trapping and anti-aliasing.   4. RTP preparation module  25  transforms the final raster-data to RTP format  14 .   5. RTP format  14  is further stored to RTP storage  26 .       
 
         [0023]    All the above steps are performed in pipelined fashion. For example, trapping may start after a few raster scanlines are RIPed and RTP creation may start after a few raster scanlines on the page are prepared. 
         [0024]    Printing backend  12  consists of the following components:
       1 RTP storage  26 —an efficient raster-element storage that guarantees reading of raster-elements at print engine speed. RTP storage is typically implemented as a fast disk or a disk-array. This enables a large storage capacity at high-speeds as dictated by the engine speed.   2. Data feeder  27 —a component that schedules work for merger card/cards. It is responsible for loading RTP layout, initiating merge operations, and monitoring merge process.   3. Merger boards  28 —the components responsible for merging and assembling RTP elements into final page-bitmaps and sending said bitmaps to the print engine.       
 
         [0028]    As described above the backend  12  is responsible for printing RTP data at the engine speed. This includes the following operations:
       1. Reading RTP-data from RTP-storage.   2. Merging and assembling RTP-data into contone page-bitmaps.   3. Additional processing (screening, compression, and look-up table transformation (LUT)) might be applied to contone bitmaps according to engine specification.   4. Outputting bitmaps via the printer video interface  15  to the print engine.   5. Controlling the engine.       
 
         [0034]    The main operations performed by the backend are the operations of merging and assembling of RTP data to the resulting bitmaps. Though the merging process can be implemented either in software or in hardware, typically the merger is implemented in hardware in order to meet printer engine speed. 
         [0035]    According to the performance requirements, there could be a single merger board or multiple merger boards in the system. In a printer color server equipped with a single merger board  28 , the board will handle all the process colors (e.g. Cyan (C), Magenta (M), Yellow (Y) and Black (K)). In a printer color server equipped with multiple merger boards each board can be responsible for one or more process colors. For example, in the case of two merger boards  28 , one board will handle C and M color channels  53  whereas the other board will handle Y and K colors. 
         [0036]    The requirements of color digital printers are getting more and more demanding. Printers capable of printing one hundred A4 color pages per minute (100 ppm) are already available. Printers that will print more than 1000 ppm will be introduced in the near future. The current architecture of color servers is not capable to drive the high speed printers at the required speed and there is a need to reengineer the process to meet the new requirements. 
       SUMMARY OF THE INVENTION 
       [0037]    Briefly, according to one aspect of the present invention a method for distribution of a print job for digital printing is accomplished by distributing elements of the print job between a plurality of processors. According to the method a print job reference file and composition requirements are provided. The print job reference file is processed according to the job composition requirements. The print job reference file is split into plurality of segments wherein the segments are generated in accordance with the availability of the processing means. The segments are distributed to the processing means, which generates a plurality of ready to print elements. A ready-to-print (RTP) pages structure is generated according to the job composition requirements and the plurality of ready to print elements. Printer specific data is created according to the generated ready-to-print (RTP) pages structure and sent to the digital printer. 
         [0038]    These and other objects, features, and advantages of the present invention will become apparent to those skilled in the art upon a reading of the following detailed description when taken in conjunction with the drawings wherein there is shown and described an illustrative embodiment of the invention. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0039]      FIG. 1  is a schematic illustrating a simplified commonly used print color servers architecture; 
           [0040]      FIG. 2  is a schematic illustrating a detailed print color servers architecture; 
           [0041]      FIG. 3  is a schematic illustrating evolution from current print color servers architecture to an architecture according to the present invention; 
           [0042]      FIG. 4  is a schematic illustrating a simplified print color servers architecture according to the present invention; 
           [0043]      FIG. 5  is a schematic illustrating data flow within the architecture according to the present invention; 
           [0044]      FIG. 6  is a schematic illustrating processing stages within the architecture according to the present invention; and 
           [0045]      FIG. 7  is a schematic illustrating data flow from input through process to print. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0046]    Achieving high-speed personalized printing complying with printing speeds in the realm of 1,000 ppm requires substantially more processing power than is needed for a conventional system, which will typically consists of a single RIP-Node and a single merger-node. This required processing power calls for much stronger frontend  11  and backend  12  than are available today. Therefore, multiple RIP-Nodes and multiple RTP merger-nodes are needed to achieve the speed required for serving high-speed printers. 
         [0047]    The print color server architecture available today needs to be boosted up in order to cope with the new requirements mentioned.  FIG. 3  describes a top-level view of current system architecture and system architecture according to the present invention, illustrating the main new components that are used in order to achieve the new goal. The new distributed architecture print color server architecture includes new components as well as a plurality of backend  34  and frontend  32  components. 
         [0048]    A job organizer  35  is capable of generating a print job reference file or a common job file (CJF) representation of the incoming PDL jobs  13 . The resulted CJF components are stored for intermediate storage in job storage  31 . The CJF is a special format that references to an original job and allows page-parallelism. The CJF format is described in detail in the commonly-assigned copending U.S. patent application Ser. No. 11/858,477, filed Sep. 20, 2007, and entitled PARALLEL PROCESSING OF PAGE DESCRIPTION LANGUAGE, by Aronshtam et al. 
         [0049]    In order to meet the desired print engine speed a multiple job organizer  35  is deployed. The multiplicity of each component is different and serves different purposes.
       a. Multiple job organizers  35  are used to create CJFs for multiple jobs, thus reducing startup time for each job.   b. Multiple frontend nodes  32  and more specifically the RIP-nodes are primarily used to prepare RTP, typically for all color separation channels, of a single job using page-parallelism. This speed up data preparation needed for achieving the engine speed.   c. Multiple backend nodes and more specifically merge-nodes are required to merge RTP and output the generated bitmap data via the printer video interface  15  at the engine speed.       
 
         [0053]    As with the conventional architecture, there is a strict separation between frontend  11  and backend  12 . Multiple frontend nodes  32  prepares RTP and outputs it to the distributed RTP storages  33 . Multiple backend nodes  34  feed data from RTP storages  33 , merges the data, and outputs bitmaps to the printer. 
         [0054]    Few diagrams in the following description explain the system and the data flow in the system.  FIG. 4  depicts a simplified diagram illustrating the main elements of the architecture for the present invention. The simplified diagram described in  FIG. 4  shows major system components: organizers, rips, and mergers. The diagram depicts for example a typical high-end system that contains two organizers, eight RIPs, and four mergers. 
         [0055]    It is important to emphasize that the diagram shows a schematic layout of the system, however, implementation may vary in different embodiments. For example, each RIP node  42  may reside on a separate computer, or each computer may have two RIP-nodes. Additionally, each multiple merger  43  may reside on a separate computer, or each computer may host two mergers. 
         [0056]      FIG. 5  describes the flow of data within the system according to the present invention.  FIG. 6  depicts the stages of data processing in the system and  FIG. 7  describes the data flow from job input through process to print. 
         [0057]    Referring to  FIGS. 5-7  print jobs in a PDL form are spooled into spool disk  21  by submission of external clients  71 . Input stage  22  prepares the job for further processing (ripping) and organizing it to CJF  41 . This includes the following steps: job organizers  35  will read PDL job  13  from spool disk  21  and will parse PDL job  13  and will create a CJF  41  representation, in addition, filtering out of PDL elements  54  and storing them into PDL resource cache  51  will take place. The created CJF  41  will be stored on work disk  72 . 
         [0058]    An important part of PDL organizing or CJF creation is the production of a job-skeleton, a simple job structure that contains basic information about a job, including job information such as number of documents in a job, number of pages in each document, and page size of each page. The job-skeleton information is used, for making appropriate page imposition instructions created by composition engine  61 , including rules information and imposition information, as well as proper page distribution to multiple RIP nodes  42 . 
         [0059]    The process step prepares the job for printing by converting it to RTP  14 . This includes at least the activities described hereunder:
       1. Process step reads CJF  41  which includes the job-skeleton from work disk  72 .   2. CJF  41  is divided into segments or CJF chunks  74  and the CJF chunks  74  are divided to conform to the load balancing algorithm used in the system to best utilize the available processing means. A CJF chunk includes mostly reference file information such as job metadata and references to job data is light-weight in nature, and therefore is suitable to be effectively distributed among the processing means.   3. CJF chunks  74  are distributed to multiple RIP nodes  42  for processing.   4. Each RIP  23  is responsible for preparing raster data. This includes the following steps:
           a. RIP  23  receives CJF chunk. RIP acquires job data and processes it element-by-element producing raster.   b. When a new reusable element is encountered that was not already rasterized, it will be rasterized and stored in the local PDL resource cache  51 , thus assuring that each PDL element  54  is accessed remotely only once.   c. The final raster is submitted to RTP prepare  25  and the page layout is kept in the job layout database  73 .   
           5. RTP prepare  25  converts raster to RTP  14 .   6. RTP is distributed and stored to RTP storage  26 . Each process/print-station keeps only some color separations, while others are distributed to RTP storage residing to other process/print stations.       
 
         [0069]    In page level parallelism scenario (disclosed hereunder) CJF  41  created for a single job is split among multiple RIP nodes  42 . In the case of job level parallelism (used today) multiple RIP nodes  42  are deployed as well, however, in this case each of the multiple RIP nodes processes a different job represented by a different PDL  13 . 
         [0070]    The rasterization process is based on CJF  41  and on rules information  78  that is received from composition engine  61  as well as on previously stored reusable PDL elements  54 . The rules information  78  is a set of parameters that affect job rasterization. Some rules affect the entire job, while some rules affect just individual pages. The example of rules include resolution, page orientation, page scaling, color. The rules information  78  together with the imposition information  79  provided by the imposition engine  61  comprises the job composition requirement. 
         [0071]    Each RIP  23  receives CJF  41 , chunk-by-chunk, and each CJF chunk may include rules. RIP loads PDL data (according to CJF), interprets and rasterizes PDL data according to rules. When the RIP  23  encounters a reusable element placement, it performs the following steps:
       1. RIP checks if the received PDL element  54  was previously rasterized by either of the RIPs. It includes checking of the raster-parameters such as color transformation matrix (CTM) or PDL element BoundingBox.   2. In the case that the element was previously rasterized on any of RIP nodes  42 , the RIP skips rasterization.   3. If the element was not previously rasterized and none of the RIPs started it rasterization, the RIP rasterizes the element and passes the results to RTP prepare  25 .   4. If the element was not previously rasterized, but another RIP started it rasterization, the RIP waits for the completion of the element rasterization by the other RIP. Optionally the RIP will not wait, but will raster the element without sharing it with other RIPs, this might be needed at time for optimization purposes.   5. The remaining PDL data is rasterized as a non-reusable element and raster is passed over to RTP prepare  25 .       
 
         [0077]    RTP prepare  25  converts raster to RTP. RTP is stored in the RTP storage  26 . 
         [0078]    As is described in  FIG. 7 , the system comprises a plurality of process/print controllers  75 . Each process/print controller  75  comprises RIP  23 , RTP prepare  25 , and RTP storage  26 . RTP  14  can be prepared by RTP prepare  25  of process/print controller  76  and sent to process/print controller  77  for printing. Alternatively RTP  14  is generated by process/print controller  77  and will be used for printing by process/print controller  76 . The data feeder and print manager  55  is responsible for merging RTP elements  14  into bitmaps and sending bitmaps via video interface  15  to digital printer  52 . 
         [0079]    The invention has been described in detail with particular reference to certain preferred embodiments thereof, but it will be understood that variations and modifications can be effected within the scope of the invention. 
       PARTS LIST 
       [0000]    
       
           11  frontend 
           12  backend 
           13  page description language (PDL) job 
           14  ready-to-print (RTP) 
           15  video interface 
           21  spool disk 
           22  input 
           23  raster image processing (RIP) 
           24  image processing components 
           25  RTP prepare 
           26  RTP storage 
           27  data feeder 
           28  merger and printer interface boards 
           31  job storage 
           32  multiple frontend nodes 
           33  RTP storages 
           34  multiple backend node 
           35  job organizers 
           41  common job file (CJF) format 
           42  multiple RIP nodes 
           43  multiple mergers 
           51  PDL resource cache 
           52  digital printer 
           53  color channels 
           54  PDL elements 
           55  data feeder and print manager 
           61  composition engine 
           71  spool submission by external clients 
           72  work disk 
           73  job layout service and database 
           74  CJF chunks 
           75  process/print controller 
           76  process/print controller # 1   
           77  process/print controller # 2   
           78  rules information 
           79  imposition information