Printing operation management method and printing device for managing printing operation during idle time
The RIP system optimizes print engine idle times by continuous rendering and resource diversion, addressing inefficiencies in print engine downtime and ensuring optimal performance and storage utilization.
Patent Information
- Application Number
- JP2025083071
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-05-28
- Filing Date
- 2025-05-19
- Publication Date
- 2025-12-10
AI Technical Summary
Existing printing technologies face inefficiencies when a print engine goes idle due to offline issues or needing attention, leading to indefinite downtime and stalled production.
Implementing a raster image processing (RIP) system that continues rendering pages during idle times, diverting resources to secondary jobs, and utilizing multiple storage tiers to optimize performance by pre-rendering pages and managing print operations effectively.
Ensures optimal printing performance by pre-rendering pages during idle times, preventing stalls and optimizing storage usage, allowing for efficient handling of idle print engine print operations.
Smart Images

Figure 2025179812000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a print operation management method and related apparatus and systems for managing print operations during idle times of a print engine by continuing to render pages. [Background technology]
[0002] Various situations arise where a printing device's print engine will not print a page. These situations can arise for a variety of reasons, such as the print engine being offline or needing attention. These situations also require human intervention, which may be of indefinite duration. Therefore, problems arise in large-scale production printing operations when a printing device's print engine sits idle waiting for these situations to be resolved.
[0003] Furthermore, Patent Document 1 discloses an image forming apparatus that can properly perform image processing operations in a multifunction machine equipped with a large-capacity hard disk even if the hard disk cannot be used for some reason. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] Japanese Patent Application Laid-Open No. 2000-138787 Summary of the Invention [Problem to be solved by the invention]
[0005] However, the prior art has not been able to deal with the situation described above where the print engine of the printing device is in an idle state.
[0006] The present invention has been made in view of the above circumstances, and an object of the present invention is to provide an image forming apparatus that solves the above-mentioned problems. [Means for solving the problem]
[0007] A method for managing print operations is disclosed. The method includes detecting that a print engine within a printing device is not operating. A plurality of print jobs are not being printed by the print engine. The method also includes print processing the plurality of print jobs in a raster image processing system (RIP system) associated with the printing device. The method also includes generating at least one rendered page for the RIP print job. The method also includes storing the at least one rendered page in a first data storage accessible by a digital front end of the printing device. The method also includes determining that a storage threshold has been reached for the first data storage. The method also includes storing the at least one rendered page in a second data storage accessible by the DFE. A method for managing print operations is disclosed. The method includes detecting that a print engine within a printing device is not operating. A plurality of print jobs are not being printed by the print engine. The method also includes processing the plurality of print jobs in a raster image processing system (RIP system) associated with the printing device. The method also includes generating at least one rendered page for the print job by the RIP system. The method also includes determining whether the at least one rendered page is a complex page. The method also includes, if the at least one rendered page is not a complex page, storing the at least one rendered page in a first data storage accessible by a digital front end (DFE) of the printing device. The method also includes, if the at least one rendered page is a complex page, storing the at least one rendered page in a second data storage accessible by the DFE of the printing device. A printing device is disclosed. The printing device includes a processor. The printing device also includes a memory coupled to the processor. The memory stores instructions that, when executed by the processor, configure the printing device to perform operations to detect that a print engine within the printing device is not operating. A plurality of print jobs are not being printed by the print engine. The operations also include processing one of the plurality of print jobs in a raster image processing system (RIP system) associated with the printing device. The operations also include generating at least one rendered page for the RIP print job. The operations also include storing the at least one rendered page in a first data storage accessible by a digital front end (DFE) of the printing device. A method for managing print operations is disclosed. The method includes detecting that a print engine in a printing device is not operating. A plurality of print jobs are not being printed by the print engine. The method also includes processing one of the plurality of print jobs at a raster image processing (RIP) system associated with a digital front end (DFE) of the printing device. The method also includes generating at least one rendered page for the print job with a first renderer of the RIP system. The method also includes assigning a second renderer of the RIP system to a secondary job of the printing device. The method also includes processing the secondary job with the second renderer of the RIP system. A method for managing print operations is disclosed. The method includes detecting that a print engine in a printing device is not operating. A plurality of print jobs are not being printed by the print engine. The method also includes processing the print jobs of the plurality of print jobs in a raster image processing system (RIP system) corresponding to a digital front end (DFE) of the printing device. The method also includes determining that a storage threshold has been reached in a first data storage configured to receive rendered pages from the RIP system. The first data storage is accessible by the DFE of the printing device. The method also includes allocating a first renderer of the RIP system to process at least one page of the print job, the at least one page being a complex page. The method also includes allocating a second renderer of the RIP system to process a secondary job received at the DFE. A printing system is disclosed. The printing system includes a processor. The printing system also includes a memory coupled to the processor. The memory stores instructions that, when executed on the processor, configure the printing system to perform operations to detect that a print engine in a printing device of the printing system is not operating. A plurality of print jobs are not being printed by the print engine. The operations also include processing the print jobs of the plurality of print jobs with a raster image processing system (RIP system) corresponding to a digital front end (DFE) of the printing device. The operations also include generating at least one rendered page for the print jobs with a first renderer of the RIP system. The operations also include assigning a second renderer of the RIP system to print secondary jobs. The operations also include processing the secondary jobs with the second renderer of the RIP system. [Effects of the Invention]
[0008] According to the present invention, it is possible to provide a printing operation management method that can deal with a situation in which the print engine of a printing device is in an idle state. [Brief explanation of the drawings]
[0009] Various other features and attendant advantages of the present invention will become better understood when considered in conjunction with the accompanying drawings. [Figure 1] 1 illustrates a printing system for managing jobs according to disclosed embodiments. [Figure 2] FIG. 1 is a block diagram of components of a printing device for use in a printing system according to disclosed embodiments. [Figure 3] FIG. 2 is a block diagram of a RIP system for use in processing jobs in a printing system according to disclosed embodiments. [Figure 4] FIG. 2 is a block diagram of an exemplary RIP used in a RIP system according to the disclosed embodiments. [Figure 5] FIG. 1 is a block diagram of a RIP system used to manage printing operations according to disclosed embodiments. [Figure 6] FIG. 1 is a flow diagram for managing printing operations during deviations from the normal rendering process, according to disclosed embodiments. [Figure 7] FIG. 1 is a flow diagram for managing operation during idle times of a print engine according to disclosed embodiments. [Figure 8] FIG. 1 is a flow diagram of page complexity determination in a RIP system according to disclosed embodiments. [Figure 9] FIG. 1 is a block diagram of components used to determine page complexity in accordance with disclosed embodiments. [Figure 10] FIG. 1 is a flow diagram for managing operations in a printing device during idle times of a print engine, according to disclosed embodiments. DETAILED DESCRIPTION OF THE INVENTION
[0010] Reference will now be made in detail to specific embodiments of the present invention. Examples of these embodiments are illustrated in the accompanying drawings. Numerous specific details are set forth in order to provide a thorough understanding of the present invention. While the embodiments will be described in conjunction with the drawings, it will be understood that the following description is not intended to limit the invention to any single embodiment. On the contrary, the following description is intended to cover alternatives, modifications, and equivalents, which may be included within the spirit and scope of the appended claims.
[0011] The disclosed embodiments manage idle time of a print engine to optimize performance during idle time and for future print engine print operations. Various strategies can be employed to maintain optimal performance. The disclosed embodiments can include use cases for idle time optimization by a raster image processing system (RIP system).
[0012] For example, one use case is when a print engine goes offline. The digital front end (DFE) of the print engine's printing device may be in the middle of rendering a print job when the print engine goes offline. Printing of the page is paused, but the page is still allowed to be rendered within the RIP system. This feature allows complex pages that may occur later in the job to be pre-rendered when the print engine resumes printing operations.
[0013] Another use case is when a printing device needs attention. A print engine may need attention without restarting, such as an empty paper tray, a paper jam, or a full output tray. If a job is currently being rendered, the printing operation for this job is interrupted. However, the RIP system is still allowed to render, similar to the offline use case of a print engine disclosed above.
[0014] Another use case may be the reconfiguration of parallel processing resources. In parallel with the actual print job, various types of jobs are processed by the DFE. These jobs may require rendering but not necessarily printing a page, such as process and hold jobs, ink estimation jobs, preview jobs, etc. The disclosed embodiments divert resources from the "print" job to other types of secondary jobs that do not require actual printing.
[0015] When the RIP system's RIP manager detects that the print engine is not accepting pages, it can stop sending rendered pages to the print engine. However, page rendering still continues so that rendered pages are available when the print engine resumes printing. Because multiple jobs may be queued for printing, print engine idle time may be used to pre-render multiple pages of multiple jobs. This feature prevents printing from stalling when complex pages are encountered later in the job processing. The disclosed embodiments render all pages to the faster, but smaller, data storage until a storage threshold is reached. The digital front end then switches to a second, larger storage. At this point, the RIP system may render only complex pages, since simple pages may be rendered at engine speed when the print engine resumes printing. These features ensure optimal printing performance and storage optimization.
[0016] In addition, the Digital Front End processes many types of jobs that do not require printing. These jobs are called secondary jobs and are allowed fewer resources than "print" jobs when the print engine is accepting pages. However, when the print engine is idle, resources can be diverted to the secondary jobs to ensure optimal performance during the print engine's idle time.
[0017] 1 illustrates a printing system 100 for managing jobs using a RIP system 110 according to a disclosed embodiment. The printing system 100 may be installed in a print shop or other environment suitable for production printing operations. The printing system 100 includes one or more printing devices 104 that receive jobs 103 from one or more client terminals 102.
[0018] Printing device 104 receives jobs, such as job 103, via printing system 100. In some embodiments, job 103 is a print job. After processing job 103, printing device 104 can print or create document 112 on the paper or medium specified by the print job. Printing device 104 is disclosed in more detail in FIG. 2. Printing device 104 also includes controller 106, which is a controller or digital front end (DFE) that facilitates processing of job 103. Controller 106 also includes RIP system 110, which is disclosed in more detail below.
[0019] For example, the controller 106 may use the RIP system 110 to convert bitmap images, vector graphics, fonts, etc. associated with pages in the job 103 into a bitmap / rasterized representation of the page, such as C, M, Y, and K pixels. The sum of the values of pixels of a particular color in the rasterized page may be proportional to the amount of consumables used by the printing device 104 to print that color. The RIP system 110 may rasterize the pages of the job 103 according to various image rasterization settings. For example, these image rasterization parameters may include calibration curves, paper definitions, ICC profiles, spot color definitions, TRCs, color conversion settings, ink or toner colorant limits, rendering intents, K preservation, CGR levels, maximum colorant densities, print margins, halftones, etc.
[0020] A print engine 260 is also included in the printing device 104. The printing device 104 may represent an industrial printing device capable of printing thousands of pages per hour. The printing device 104 may be ink-based, toner-based, or both. The print engine 260 may include various parameters that may control the operation of the printing device 104. For example, these settings may include printing device maintenance settings that control or affect the printing device 104's head cleaning intervals, head clogging intervals, etc. The print engine 260 receives raster output from the RIP system 110 of the printing device 104 to print the document 112 based on the job 103.
[0021] The printing system 100 may receive the job 103 and route it directly to the printing device 104. Alternatively, the printing system 100 may route the job 103 to the print management server 108. The print management server 108 may seek to offload processing of the job 103 from the controller 106 of the printing device 104. This functionality may be desirable when the controller 106 does not have the processing power to process the job 103 in a production printing environment. Accordingly, the print management server 108 may also include a RIP system 110 that can provide raster output 118 directly to the print engine 260 of the printing device 104. These embodiments allow the controller 106 to offload processing to handle other processes. Additionally, updates to the RIP system 110 may occur at the print management server 108 prior to updates to the RIP system 110 of the printing device 104.
[0022] Job 103 is not necessarily a print job that produces document 112. In some embodiments, job 103 may be an estimation job or a preview job. RIP system 110 determines what type of job job 103 is and configures itself accordingly. If it is an estimation job, RIP system 110 configures the RIP to process job 103 without affecting the print processing within controller 106. The estimation RIP processes job 103 and provides an ink or toner estimate 114. The estimate 114 can be provided to the operator without running print engine 260.
[0023] For preview jobs, the RIP system 110 configures the RIP processing the job 103 to quickly generate a lower resolution output as the preview 116. The preview 116 may be a lower resolution output compared to the document 112 and the estimate 114. The preview 116 is provided to an operator for review. The preview 116 may be provided to a display device 120 for the operator to view and interact with using an interface. The display device 120 may be a device separate from the client terminal 102 and the printing device 104. In other embodiments, the display device 120 may be incorporated within the client terminal 102 or the printing device 104.
[0024] The RIP system 110 may be a smart system that uses page complexity determination to enable optimal processing for processing various jobs 103. Different jobs received at the printing device 104 or print management server 108 result in different outputs, such as a document 112, a quote 114, or a preview 116. The RIP instances within the RIP system 110 are configured depending on the type of job 103 received.
[0025] 2 illustrates a block diagram of components of printing device 104 according to disclosed embodiments. The architecture illustrated in FIG. 2 may be applied to any multifunction printing or image forming device that performs various functions, such as printing, scanning, saving, copying, etc., within printing system 100. As disclosed above, printing device 104 may send and receive data from client terminal 102, print management server 108 (if a separate device), and other devices within printing system 100.
[0026] Printing device 104 includes a computing platform 201 that performs operations to support these functions. Computing platform 201 includes a computer processing unit (CPU) 202, an image forming unit 204, a memory unit 206, and a network communication interface 210. Other components may be included but are not shown for the sake of brevity. Printing device 104 using computing platform 201 can be configured to perform various operations, such as scanning, copying, printing, receiving or sending facsimiles, or document processing. Thus, printing device 104 may be a multifunction peripheral (MFP) that includes one or more functions of a printer, scanner, copier, facsimile machine, and printer. To provide these functions, printing device 104 includes a printer component 220 that performs printing operations, a copier component 222 that performs copying operations, a scanner component 224 that performs scanning operations, and a facsimile component 226 that receives and sends facsimile documents. CPU 202 can issue instructions to these components to perform desired operations.
[0027] The printing device 104 also includes a finisher 211 and one or more paper cassettes 212. The finisher 211 includes rotatable downstream rollers for moving the imaged paper sheets to a tray after desired operations. The finisher 211 may also perform additional operations such as sorting the finished paper sheets, stapling the paper sheets, bi-folding, scoring, punching, and folding.
[0028] The paper cassette 212 supplies paper to one of the components 220, 222, 224, and 226 for forming an imaging surface on the paper. The paper cassette 212 may also be known as a paper tray. The paper cassette 212 may contain paper of various sizes, colors, compositions, etc. The paper or media in the paper cassette 212 may be considered "loaded" into the printing device 104. Information for printing these papers may be incorporated into a paper catalog stored in the controller 106. The paper cassette 212 may be removed for refilling as needed. Printed paper from the components 220, 222, 224, and 226 is placed into one or more output bins 227. One or more output bins 227 may have an associated capacity for receiving completed print jobs before they are emptied or printing must be paused. The output bins may include one or more output trays.
[0029] The document feeder tray 230 is a document processing device input feeder tray that can include a physical component of the printing device 104 for receiving paper sheets and documents to be processed. Feeder tray may also refer to one or more input trays of the printing device 104. Documents are placed on or in the document feeder tray 230, which moves the documents to other components within the printing device 104. The movement of documents from the document feeder tray 230 may be controlled by instructions entered by a user. For example, originals may be moved to a scanner flatbed for a scanning operation. In this manner, the document feeder tray 230 provides documents to the scanner component 224. As shown, the document feeder tray 230 may interact with the print engine 260 to perform desired operations.
[0030] Memory 206 includes memory locations 214 for storing instructions 215. Instructions 215 are executable by CPU 202 or other processors associated with printing device 104, such as any processor within components 220, 222, 224, and 226. Memory 206 may also store information for various programs and applications 115, as well as data specific to printing device 104. For example, memory locations 214 may include data for executing an operating system executed by computing platform 201 to support components within printing device 104. According to disclosed embodiments, memory 206 may store tokens and codes used in performing deferred operations for printing device 104.
[0031] The storage unit 206 may be comprised of volatile and non-volatile memory. Volatile memory may include random access memory (RAM). Examples of non-volatile memory include read-only memory (ROM), flash memory, electrically erasable programmable read-only memory (EEPROM), digital tape, hard disk drive (HDD), or solid-state drive (SSD). The storage unit 206 may include any combination of readable or writable volatile or non-volatile memory, as well as other possible memory devices.
[0032] Computing platform 201 may host one or more processors, such as CPU 202. These processors may execute instructions 215 stored in one or more memory locations 214. By executing these instructions, the processors cause printing device 104 to perform various operations. A processor may also incorporate a special-purpose processing unit, such as an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA). Other processors may be included to cause components 220, 222, 224, and 226 to perform specific operations. In other words, a particular processor may cause printing device 104 to function as a printer, copier, scanner, and facsimile machine.
[0033] Printing device 104 also includes an operation panel 208, which may be connected to computing platform 201. Operation panel 208 may include a display 216 and an input 217 to facilitate user interaction to provide commands to printing device 104. Display 216 may be any electronic video display, such as a liquid crystal display (LCD). Input 217 may include any combination of devices that allow a user to input information into operation panel 208, such as buttons, a touch screen, a keyboard or keypad, switches, dials, etc. Preferably, input 217 includes a touch-screen digitizer overlaid on display 216 that is touch-sensitive to receive input from the user. In this manner, the user interacts with display 216. These components may be used to enter code or other information into printing device 104.
[0034] The display 216 may also display results from the print management server 108. The display 216 may function as a display device 120 for displaying the preview 116 after it is generated by the RIP system 110.
[0035] The printing device 104 also includes a network communication processor 218. The network communication processor 218 may establish network communications using the network communication interface 210, such as a wireless or wired connection, with one or more other image forming devices or network services. The CPU 202 may instruct the network communication processor 218 to send or retrieve information over a network using the network communication interface 210. When data is received by the computing platform 201 over the network, the network communication processor 218 decodes the received packets and delivers them to the CPU 202. The CPU 202 may act accordingly by operating the printing device 104. The CPU 202 may also retrieve information stored in the storage unit 206, such as settings for the printing device 104.
[0036] Printing device 104 also includes print engine 260, as disclosed above. Print engine 260 may be a combination of hardware, firmware, or software components acting as appropriate to accomplish a task. For example, print engine 260 may be comprised of components and software for printing a document. Printing device 104 may receive instructions from computing platform 201 after user input via operation panel 208. Alternatively, print engine 260 may receive instructions from other connected or linked devices.
[0037] The print engine 260 manages and operates the low-level mechanisms of the printing device engine, such as the hardware components that actuate the placement of ink or toner on paper. The print engine 260 may manage and coordinate half-toners, toner cartridges, rollers, schedulers, storage, input / output operations, etc. The RIP system 110, which interprets a page description language (PDL), sends instructions and directs the lower-level print engine 260 for the actual rendering of the image and the application of ink to paper during operation on the printing device 104. The RIP system 110 may be located within the DFE 106, as disclosed above. Alternatively, the RIP system 110 may be located on the print management server 108 and communicate directly with the print engine 260.
[0038] The printing device 104 may include one or more sensors 262 that collect data and information to provide to the computing platform 201 or the CPU 202. Each sensor 262 may be used to monitor a specific operating condition of the printing device 104. The sensors 262 may be used to indicate the location of a paper jam, hardware or software component failure, part damage, operating system problems, document misfeeds, toner levels, and other operating conditions. The sensors 262 may also detect the number of pages printed or processed by the printing device 104. If the sensors 262 detect an operational problem or fault event, they may send a signal to the CPU 202. The CPU 202 may generate an error alert related to the problem. The error alert may include an error code.
[0039] Some errors have hardware-related causes. For example, if a problem such as a paper jam occurs in the finisher 211, the display 216 can display information about the error, the location of the problem, or the finisher. In the example where a paper jam occurs in the paper cassette 212, the display 216 displays information about the jam error, such as the location of one of the paper cassettes.
[0040] Some errors may have firmware-related causes. For example, the network communication processor 218 may cause a firmware or software error. The display 216 can display firmware-related errors, corresponding error codes, and provide recommendations for addressing the error, such as rebooting the device.
[0041] The storage unit 206 can store a history of fault events and errors that have occurred, along with a timestamp for each error. The printing device 104 communicates with other devices in the printing system 100 via the network communication interface 210 using network protocols such as those listed above. In some embodiments, the printing device 104 can communicate with other devices in the printing system 100 via a REST API to collect data from multiple devices in the printing system 100. The REST API and SOAP are application protocols used to transmit data in different formats, such as files, XML messages, and JSON messages. By using the applicable network communication protocol and application protocol, the printing device 104, like the other printing devices in the printing system 100, can send and receive data from the client terminal 102 and the print management server 108.
[0042] 3 illustrates a block diagram of a RIP system 110 for use in processing a job 103 in a printing system 100 according to the disclosed embodiments. As disclosed above, the RIP system 110 may be located in the controller 106 of the printing device 104, or in the print management server 108 so as to communicate directly with the print engine 260 of the printing device 104.
[0043] The RIP system 110 includes a RIP manager 302 and RIP instances RIP 308-1, RIP 308-2, and RIP 308-n. A RIP instance may be a RIP configured by the RIP manager 302 to process a job 103. A RIP instance may be a standard RIP, a high performance RIP, an ultra high performance RIP, a preview RIP, a quote RIP, or a failover RIP. All RIP instances and the RIP manager 302 operate in parallel with each other.
[0044] The RIP manager 302 performs various operations, such as spooling the job 103, managing the job 103, managing pages or segments of the job 103, managing RIP instances RIPs 308-1, 308-2, and 308-n, managing drives, determining the PDL type of the job 103, distributing pages of segments of the job 103 to RIP instances, serializing pages or segments of the job 103, and sending notifications within the printing device 104 or print management server 108.
[0045] The RIP manager 302 can receive a job 103 via the printing system 100. The job 103 may be received from the client terminal 102 via Internet Protocol within the printing system 100. The job 103 may be spooled by the RIP manager 302 and stored on a spool drive 304. The spool drive 304 may be a configurable drive. The RIP manager 302 determines the PDL type of the job 103. Next, the RIP manager 302 creates a cross-reference table 305 in the spool drive 304, which serves as shared memory for the RIP instances RIPs 308-1, 308-2, and 308-n. The RIP manager 302 may also create print ticket information in the spool drive 304.
[0046] The RIP manager 302 analyzes the job 103 to determine what type of job it is. The RIP manager 302 uses this information to determine the number and type of RIPs to use to process the job 103. These functions are disclosed in more detail below. Depending on the type of job, the RIP manager 302 configures the RIP instances RIPs 308-1, 308-2, and 308-n. The configuration operation may result in RIPs with a specific number of renderers. For example, the RIP instance RIP 308-1 may be a standard RIP with a normal number of renderers, such as four. The RIP instance RIP 308-2 may be a high-performance RIP with a greater number of renderers, such as six. The RIP manager 302 configures the RIP instances accordingly to process the job 103.
[0047] Next, the RIP manager 302 distributes the pages or segments of the job 103 to the RIP instances RIPs 308-1, 308-2, and 308-n. The job 103 may be a print job that is divided into segments or pages for parallel processing. The RIP instance RIP 308-2 is a high-performance RIP and is therefore able to receive specific pages or segments of the job 103. A page may refer to one or more pages of the job 103. A segment of the job 103 may also refer to the number of pages or a block of data within the job 103. The pages or segments are distributed by the front-end RIP manager 302 using inter-process communication.
[0048] RIP instances RIPs 308-1, 308-2, 308-n can read cross-reference table 305 along with the print ticket information and spooled data for job 103. Each RIP instance then processes the page or segment indicated by RIP manager 302. The RIP instance can check cross-reference table 305 to obtain any indications in the print ticket information and the page or segment data in spool drive 304. The RIP instances RIPs 308-1, 308-2, 308-n can then parse the page or segment data to generate metadata from the drawing commands.
[0049] The RIP instance renders the metadata to storage 306 (first data storage). Storage 306 may store rendered pages for the print job of job 103. The rendered pages may be stored according to a specific image format, such as KYOCERA® Image Format (KIF). The stored pages may then be provided to print engine 260 for printing document 112. For jobs 103 that do not require rendered pages, such as previews or quotes, the data generated by the RIP instance may be provided to front-end RIP manager 302 for further operation.
[0050] The RIP system 110 offers advantages over traditional RIP systems. The RIP manager 302 can control the number of renderers per RIP. The number can be increased to process pages or segments faster. The amount of memory allocated to a RIP can also be increased, as faster processing consumes more memory. For slower processes, such as estimate 114 and preview 116, the configured RIP should consume less memory. The RIP manager 302 manages these requirements through dynamic configuration of the RIP based on job 103 parameters.
[0051] In some cases, the RIP manager 302 may determine that a job 103 cannot be divided into pages or segments for parallel processing. Therefore, a RIP instance, such as RIP instance RIP 308-n, may be configured as an ultra-high performance RIP. An ultra-high performance RIP uses more renderers than a high performance RIP. For example, RIP instance RIP 308-n may be configured to use eight renderers. This capability increases the processing speed of RIP instance RIP 308-n. The front-end RIP manager 302 can still use RIP instances RIP 308-1 and 308-2 for parallel processing of one job 103 while using RIP instance RIP 308-n to process another job 103 that cannot be divided into pages or segments.
[0052] The RIP system 110 provides the capabilities available through parallel processing using dynamically configured RIP instances. The RIP system 110 can configure a high-performance RIP to improve first page-out time. It may also use different configured RIPs for different purposes, such as a preview RIP, a quote RIP, and a failover RIP. The RIP system 110 may also configure an ultra-high-performance RIP for jobs that cannot be processed in a page- or segment-parallel manner.
[0053] The RIP system 110 also provides the ability to change the number of renderers per RIP. The RIP system 110 also changes the number of RIP instances based on workload, including shutting down certain types of RIPs to start other types of RIPs. The RIP system 110 also processes different types of jobs with differently configured RIPs. The RIP system 110 also uses different RIPs with different configurations for different purposes. The RIP system 110 configures RIP instances with different imaging pipelines. The RIP system 110 also retries failed jobs or job pages in differently configured RIP instances.
[0054] FIG. 4 shows a block diagram of an exemplary RIP 400 used within the RIP system 110 in accordance with the disclosed embodiments. The RIP 400 may be illustrated as a configuration of RIP instances, RIPs 308-1, 308-2, and 308-n. The RIP 400 may represent the hardware and software configuration used to determine what value each pixel or spot of output will have, driven by commands from a page description language (PDL). Computer-generated output may consist of very small spots. The RIP 400 converts vector-based or stored images into a series of mathematical equations describing the lines and curves, and then into the pattern of spots, or raster image, needed to generate the output. The interpreter 402 converts the job file into a display list, which is then converted into a bitmap output 420 describing the document pages.
[0055] The RIP 400 converts text and image data from different file formats, including PDF, TIFF, or JPEG, into a format that the printing device 104 can understand. The process of rasterizing a page comprises several steps that are performed regardless of whether the page is submitted in PostScript, PDF, or another page description language (PDL). In short, the RIP 400 can provide interpretation, rasterization, and screening.
[0056] Segment 401 may be a job file associated with job 103. Segment 401 may be provided to RIP 400 for conversion of its code to raster code or bitmap code. As disclosed above, front-end RIP manager 302 receives job 103. Front-end RIP manager 302 may divide job 103 into segments for parallel processing by RIP instances. Preferably, segment 401 is a page of a document in job 103. Within RIP system 110, RIPs process pages in parallel. RIP 400 is one of the RIP instances. In other embodiments, segment 401 may be multiple pages, graphic designs, or other portions of job 103.
[0057] Segment 401 is received by an interpreter 402, which interprets the commands in the code to redraw the objects and page elements as vector objects 404, raster objects 406, and text objects 408. The interpreter 402 parses the specific PDL as drawing commands. The PDL of segment 401 is read and decoded into graphic elements to be placed on the sheet. Each element can be an image, a text character, a fill, a stroke, etc., and can be listed in a vector object 404, a raster object 406, or a text object 408.
[0058] The drawing unit 409 receives vector objects 404, raster objects 406, and text objects 408 and converts the drawing commands into metadata that can be provided to a renderer 418. Thus, the drawing unit 409 converts vector objects 404 to drawing services 410. The drawing unit 409 also converts raster objects 406 to graphic services 412. The drawing unit 409 also converts text objects to a font rasterizer 414.
[0059] The RIP 400 may also implement a color converter 416. The color converter 416 can perform color conversion operations on the metadata generated by the renderer 409. The color converter 416 performs color management and calibration. These operations may be applied during interpretation or rendering, depending on the configuration and job content. Color print resources may be accessed to provide color management.
[0060] The renderer 418 processes the metadata from the drawing unit 409 and converts all graphic elements into the appropriate pattern of pixels to form the output raster. As the drawing service 410, the resolution-independent vector objects 404 are converted into pixels. Screening takes the raster image of pixels and produces individually screened separations (bands) of cyan, magenta, yellow, and black. These are halftone dots in the form of bitmap output 420, which consists of commands that the print engine 260 can understand.
[0061] The disclosed embodiments may also determine a dot count value 422 from the rendered image provided by the renderer 418. The dot count value may be adjusted based on settings on the screening and printing device 104. The dot count value 422 may be reported to determine a quote job estimate 114, as disclosed below.
[0062] The rendered bitmap output 420 may be stored in the storage 306 for delivery to the print engine 260 when all pages or segments of the job 103 have been processed. The RIP 400 represents a single pass for rendering and providing output. Preferably, the RIP 400 represents multiple rendering passes using multiple renderers. In the disclosed embodiment, a renderer 418 may be used for each channel in the RIP 400, such as one each for cyan, magenta, yellow, and black. The number of renderers 418 may be configured by the front-end RIP manager 302 depending on the job 103. Each renderer 418 requires memory and processing resources. A larger number of renderers 418 in the RIP 400 consumes more memory but executes faster. A smaller number of renderers 418 in the RIP 400 consumes less memory but executes slower.
[0063] FIG. 5 illustrates another block diagram of a RIP system 110 for use in managing print operations according to disclosed embodiments. FIG. 5 may disclose additional components of the RIP system 110. For example, the RIP system 110 includes the RIP manager 302 and the renderer 418 disclosed above. Additionally, the RIP system 110 may include an engine manager 512, which is disclosed in more detail below. The RIP manager 302 may consider one or more pages 502 for the print job 103. The RIP manager 302 may determine whether the page 502 has already been rendered. If so, the page data for the rendered page is placed in a page queue 503. If the page 502 has not been rendered, it is passed to the renderer 418.
[0064] The renderer 418 renders each page of the print job as disclosed above. The renderer 418 then writes the rendered pages to the storage 306. Additional storage may be used if the storage 306 becomes too full. In some embodiments, the rendered pages may be saved to specific storage locations within the storage 306. These locations are provided by the renderer 418 to the RIP manager 302. The RIP manager 302 provides these locations, along with information about those pages in the page queue 503, to the engine manager 512. The engine manager 512, in accordance with operation 511, reads different storage locations based on the page data from the page queue 503, retrieves the entire document, and provides it to the print engine 260 for printing. The engine manager 512 may be an interface between the RIP system 110 and the print engine 260. Pages may be printed sequentially as they are retrieved from their respective storage locations and provided to the print engine 260.
[0065] After printing, the rendered page data is deleted from storage 306. Engine manager 512 may also send an acknowledgement 514 to RIP manager 302, after which RIP manager 302 may delete the rendered page data from storage 306. Alternatively, engine manager 512 may delete the rendered page data from storage 306. In some embodiments, RIP system 110 may include an acknowledgement queue 516 for holding the acknowledgements 514 provided to RIP manager 302.
[0066] 6 illustrates a flow diagram 600 for managing print operations during deviations from the normal rendering process, according to a disclosed embodiment. Flow diagram 600 may refer to FIGS. 1-5 for illustrative purposes. However, flow diagram 600 is not limited to the embodiments disclosed by FIGS. 1-5. In flow diagram 600, many jobs are processed in parallel, and many pages of a "print" job are processed in parallel.
[0067] Various jobs 103 are provided to the RIP manager 302 of the RIP system 110. The RIP manager 302 can determine what "type" of job each of the various print jobs is. For example, one job may be print job 103A. Print job 103A can be assigned to one or more renderers 418A to render pages to be printed by print engine 260. The renderers 418A can operate similarly to the renderers 418 disclosed above. Operation 602 executes by determining whether all pages of print job 103A have been rendered. If yes, operation 604 executes by releasing the assigned renderer 418A in the RIP system 110. The RIP manager 302 can assign the assigned renderer 418A to the next job in job 103.
[0068] If operation 602 is No, renderer 418A renders the next page of print job 103A. After rendering the page, flow diagram 600 returns to operation 602. Once this page is rendered, it is stored in storage 306, as disclosed above. Print engine 260 prints the rendered page from storage 306. As disclosed above, in some embodiments, engine manager 512 retrieves the rendered page from storage 306.
[0069] Secondary jobs can also be processed within the RIP system 110. As disclosed above, a secondary job is a job that does not result in a printed page but still uses resources within the controller 106. One of the secondary jobs may be a process-and-hold job 103B. A process-and-hold job may be a job that is processed within the RIP system 110 but is not immediately printed. The printing operation using the print engine 260 may occur at a later time. Therefore, pages from the process-and-hold job 103B may be stored in the second storage 610 (second data storage). The second storage 610 may be a larger storage device but may be slower to use than the storage 306. For example, the second storage 610 may be a hard disk or storage drive accessible by the RIP system 110 and the controller 106. The process-and-hold job 103B may be processed using the first renderer 418B. The RIP manager 302 preferably assigns only a single renderer to the process-and-hold job 103B.
[0070] Operation 606 executes by determining whether all pages of process and hold job 103B have been rendered. If Yes, operation 608 executes by releasing first renderer 418B. RIP manager 302 can use renderer 418B for subsequent jobs 103. If operation 606 evaluates No, first renderer 418B renders the pages and returns to operation 606. The rendered pages are stored in second storage 610.
[0071] Another secondary job may be an ink estimation job 103C. The ink estimation job 103C may be used to provide an ink consumption estimate for a subsequent print job, as disclosed above. Similar types of jobs include preview jobs. The ink estimation job 103C may use a second renderer 418C to process each page of the ink estimation job 103C. Operation 612 is performed by determining whether all pages of the ink estimation job 103C have been rendered. If yes, operation 608 is performed, as disclosed above. The RIP manager 302 may use the renderer 418C for subsequent jobs 103C. If operation 612 is no, the second renderer 418C renders the pages and returns to operation 612. The rendered pages are used in the ink estimation process of operation 614 to provide estimation results to the operator.
[0072] 7 illustrates a flow diagram 700 for managing print operations during idle time of a print engine, according to a disclosed embodiment. Flow diagram 700 may refer to FIGS. 1-6 for illustrative purposes. However, flow diagram 700 is not limited to the embodiments disclosed by FIGS. 1-6.
[0073] The disclosed embodiments may include use cases where the print engine 260 is not accepting pages. The controller 106 may only have multiple print jobs as various jobs 103 and no other secondary jobs. The disclosed embodiments provide the RIP manager 302 and controller 106 with the ability to use all of its resources to render pages of multiple print jobs 103A. When a threshold is reached in storage 306, the RIP manager 302 switches to secondary storage 610. The RIP system 110 renders only complex pages.
[0074] In some embodiments, storage 306 may be referred to as high-speed storage because data may be read from storage fast enough for print engine 260 to print. When a rendered page, such as page 502 disclosed above, is read from storage 306, the printing operation proceeds seamlessly. Secondary storage 610 may be referred to as high-capacity or low-speed storage, in that data may be read from this storage at a rate slower than the rate at which print engine 260 prints the page. However, large amounts of data for a rendered page may be stored in secondary storage 610 and retrieved in a manner faster than re-rendering the page in a later operation. Thus, the disclosed embodiments render and store complex pages while discarding simple pages that may be rendered quickly when printing resumes.
[0075] Referring to flow diagram 700, RIP manager 302 receives print job 103A. RIP manager 302 may select print job 103A for processing and rendering. Operation 702 executes by determining whether print engine 260 is idle. If not, flow diagram 700 proceeds to operation 704. Operation 704 executes by rendering all pages of print job 103A using all available renderers, such as renderers 418A, 418B, and 418C. The rendered pages are stored in storage 306 until retrieved by engine manager 512 for printing using print engine 260.
[0076] If operation 702 is Yes, print engine 260 is idle and not printing. Flow diagram 700 proceeds to operation 706, which determines whether a storage threshold has been reached for storage 306. For example, print engine 260 may be idle for a period of time such that storage 306 becomes full with rendered jobs. Once the threshold is reached, further rendered pages may not be stored in storage 306. For example, storage 306 may have a capacity of 100 MB. The storage threshold may be 80 MB, or 80% of the storage capacity of storage 306. This threshold may be set by policy 707 accessible by RIP manager 302. Policy 707 may be stored on printing device 104.
[0077] If operation 706 is No, flow diagram 700 proceeds to operation 704, as disclosed above. Print job 103A is rendered by renderers 418A, 418B, and 418C and stored in storage 306. If operation 706 is Yes, operation 708 executes by rendering only the complex pages in print job 103A using all renderers in RIP system 110. To this end, operation 708 also determines whether each page of print job 103A is a complex page or a simple page. This determination is disclosed in more detail with reference to Figures 8 and 9, disclosed below.
[0078] According to the disclosed embodiments, a complex page may be a page in a document that is rendered slower than the engine speed of print engine 260. Engine speed refers to the printing speed of print engine 260 after receiving the rendered page from engine manager 512.
[0079] A page that is not complex may be referred to as a simple page. A simple page may be rendered at a pace faster than the engine speed of the print engine 260. A rendered simple page may take up limited storage space (to accommodate complexity), i.e., storage 306, and it may be better to postpone rendering the page until printing resumes. The rendering process for a simple page can be performed fairly quickly without exhausting the resources of the RIP system 110.
[0080] 8 shows a flow diagram 800 for determining page complexity in the RIP system 110 according to a disclosed embodiment. The flow diagram 800 may refer to FIGS. 1-7 for illustrative purposes. However, the flow diagram 800 may not be limited to the embodiments disclosed by FIGS. 1-7. The flow diagram 800 may be implemented in the RIP system 110. For example, the flow diagram 800 may be implemented by the RIP manager 302 or the renderer 418. In other embodiments, the flow diagram 800 may be implemented elsewhere in the printing system 100, such as the controller 106.
[0081] A page 502 is received by the RIP system 110, which includes renderers 418A, 418B, and 418C. The page 502 may be part of a print job 103A. According to disclosed embodiments, it is determined that storage for the job's rendered pages is unavailable or limited such that the entire rendered page data set cannot be stored. The disclosed embodiments determine whether the page is complex. Operation 802 is performed by determining a page weight for the page 502. This process, disclosed in more detail below, may be based on a rule set and a weighted formula. Operation 804 is performed by determining whether the page weight is equal to or greater than a base page weight. The base page weight, disclosed in more detail below, is determined based on the print speed (engine speed) of the print engine 260. Therefore, determining whether a page is complex has implications for whether the page can be rendered "fast" during a print operation.
[0082] If operation 804 is Yes, page 502 is marked as a complex page in operation 806. Operation 807 is performed in conjunction with operation 708 of flow diagram 700 by rendering the page using all renderers. If operation 804 is No, page 502 is marked as a simple page in operation 808. Operation 810 is performed by discarding the page that is rendered using RIP system 110. The simple page may be re-rendered using an out-of-order rendering process, as disclosed above.
[0083] 9 shows a block diagram of the components used to determine page complexity according to the disclosed embodiments. As disclosed above, a base page weight 910 and a page weight 906 are determined for use in determining whether a page 502 is complex or simple. Both of these values are calculated using information available from the printing device 104 and the objects within the page 502. These features are disclosed in further detail below.
[0084] The base page weight 910 is related to the engine speed 908 of the print engine 260 of the printing device 104. The engine speed 908 may refer to the pages or sheets per minute that the print engine 260 can process, i.e., add ink to. This speed may refer to the average rate of a number of previous print jobs or may refer to the rate at which pages without objects are printed, such as text-only pages. The disclosed embodiments may assign a weight, or value, to the engine speed 908.
[0085] For example, the engine speed 908 for print engine 260 may be 150 PPM. This value may be based on previous print jobs and the engine speed for printing the pages of those jobs, regardless of the content of those pages. Alternatively, the disclosed embodiments may use an engine speed for printing specific types of pages, such as text-only pages, pages with objects, or pages with color printing. Using this example, the base page weight 910 for an engine speed 908 of 150 PPM may be 10.0.
[0086] To determine page weight 906, page weight determination engine 904 may be implemented within one or more renderers 418A, 418B, 418C of a RIP within RIP system 110. Page weight determination engine 904 may also reside elsewhere, such as in controller 106, print management server 108, or RIP system 110. Page weight determination engine 904 may take into account page objects 924 and object weights 926 in page 502. These features are disclosed separately below.
[0087] Page objects 924 are objects such as images, graphics, and text within page 502. For example, page 502 may include a first page object 918, a second page object 920, and a third page object 922. The third page object 922 may include a spot color 923 necessary to print the third page object accurately. As disclosed above, objects may have types such as vector, text, image, etc. Objects may be further categorized into operators such as form, shading, group, Type 3 character, pattern, font, color space, and spot color. For example, first page object 918 may be a vector object with shading as an operator, second page object 920 may be a text object with a particular font and several Type 3 characters as operators, and third page object 922 may be an image object with spot color 923 as an operator.
[0088] The disclosed embodiments can compile the page objects and their operators into a page object 924 for the page 502. The page object 924 is provided to a page weight determination engine 904. The page weight determination engine 904 may use one or more weighting formulas to determine the weight of the page object 924. The weighting formulas may depend on object weights 926 provided from a complexity model 925. The disclosed embodiments collect statistics and generate the complexity model 925 based on these determinations. The complexity model 925 is based on the object types disclosed above, or the various components of the page, such as vectors, text, images, etc. The objects in the complexity model 925 may also be further categorized into operators.
[0089] When the page weight determination engine 904 receives the page object 924 for the page 502, it can obtain the object weight from the complexity model 925. Alternatively, the page object 924 can be provided to the complexity model 925, which can then provide the page object 924 along with the object weight 926 to the page weight determination engine 904. The first page object 918 can be compared to similar page objects in the complexity model 925 to obtain a weight for the first page object. The second page object 920 can be compared to similar page objects in the complexity model 925 to obtain a weight for the second page object. The third page object 922 can be compared to similar page objects in the complexity model 925 to obtain a weight for the third page object. In some embodiments, the object weights of the first page object 918, the second page object 920, and the third page object 922 can be added together to determine the page weight 906.
[0090] The page complexity determination engine 902 applies a rule that if the page weight 906 exceeds the base page weight 910, the page is marked as complex. If the page weight 906 exceeds the base page weight 910, the page 502 is marked as complex. If the page weight 906 is less than or equal to the base page weight 910, the page 502 is marked as a simple page. Referring to the embodiments disclosed above, complex pages are stored in the second storage 610 after being rendered, while simple pages may be discarded.
[0091] Referring back to flow diagrams 700 and 800, if operation 804 determines that the page is a simple page, operation 810 executes by discarding the rendered page of operation 708. Engine manager 512 will need to instruct RIP manager 302 to render the page as it is printed in subsequent copies of print job 103A.
[0092] If operation 804 determines that the page is a complex page, operation 807 renders the page using all renderers in the RIP system 110. The rendered page is stored in the second storage 610. The engine manager 512 can notify the RIP manager 302 of the location in the second storage 610 of the rendered complex page.
[0093] At some point, operation 710 is performed by resuming printing operations in print engine 260. Idle time processing stops and operation returns to that disclosed in flow diagram 600. Engine manager 512 and RIP manager 302 will return to normal operation. Engine manager 512 will retrieve rendered pages from storage 306 and secondary storage 610 and provide them to print engine 260 for printing. RIP manager 302 can instruct where to retrieve the rendered pages. For discarded pages, RIP manager 302 will instruct engine manager 512 to allocate a renderer to render the simple pages, while retrieving complex pages from secondary storage 610 and providing them to print engine 260.
[0094] 10 illustrates a flow diagram 1000 for managing operations on a printing device 104 during idle times of a print engine 260, according to a disclosed embodiment. The flow diagram 1000 may refer to FIGS. 1-9 for illustrative purposes. However, the flow diagram 1000 is not limited to the embodiments disclosed by FIGS. 1-9.
[0095] Flow diagram 1000 may disclose a use case where print engine 260 is not accepting pages from RIP system 110. RIP system 110 may be handling multiple types of jobs, such as a print job and a secondary job. For example, RIP system 110 may be processing print job 103A and ink estimation job 103C. Referring to flow diagram 600, ink estimation job 103C may be allocated fewer resources when print engine 260 is accepting pages. For example, while multiple renderers 418A are allocated to print job 103A, a second renderer 418C may be allocated to render pages for ink estimation job 103C.
[0096] However, if print engine 260 is idle, some of the resources may be reallocated from print job 103A and distributed to ink estimation job 103C. RIP manager 302 may relinquish renderers to service secondary jobs that do not result in printed pages and hand them off to ink estimation job 103C. The secondary jobs may be processed to satisfy operator requests for results of such jobs.
[0097] Referring to flow diagram 1000, various jobs 103 are received at printing device 104 and controller 106. Controller 106 provides the various jobs 103 to RIP system 110. RIP manager 302 receives each job and determines the job type. The job type affects how many resources, i.e., renderers, are allocated to processing the job. If the job is print job 103A, operation 702 is performed by determining whether print engine 260 is idle. Operation 702 is disclosed above.
[0098] If operation 702 is No, operation 704 executes by rendering all pages of print job 103A using all available renderers. The rendered pages are stored in storage 306 until retrieved for printing by print engine 260. If operation 702 is No, print engine 260 is idle. Flow diagram 1000 executes by proceeding to operation 706, which determines whether a storage threshold for storage 306 has been reached. Operation 706 is disclosed in more detail above. If operation 706 is No, flow diagram 1000 proceeds to operation 704.
[0099] If operation 706 is Yes, flow diagram 1000 proceeds to operation 1002. Operation 1002 is performed by determining whether a secondary job is active. A secondary job may become active when one is received by RIP manager 302 for processing and rendering. For example, assuming ink estimation job 103C is being executed, operation 702 is performed by determining whether print engine 260 is idle. If it is not idle, operation 1006 is performed by using second renderer 418C to render pages of ink estimation job 103C, as disclosed in flow diagram 600.
[0100] If operation 702 is Yes, then operation 1002 is used to activate ink estimation job 103C along with print job 103A during the idle time. Thus, if operation 1002 is No, then operation 708 is performed by rendering complex pages of print job 103A with all available renderers, such as renderers 418A, 418B, and 418C. The determination of complex pages is disclosed in more detail above by flow diagram 800 and the block diagram of FIG. 9. Simple pages may be discarded. The rendered complex pages are saved in second storage 610.
[0101] If operation 1002 is Yes, then flow diagram 1000 proceeds to operation 1004 and operation 1005. Operation 1004 executes by allocating one renderer to render the complex pages of print job 103A. For example, one renderer 418A may be allocated to render one or more complex pages of print job 103A. Operation 1005 also executes by freeing the remaining renderer 418A for reallocation by RIP manager 302. Flow diagram 1000 proceeds to operation 1008, which allocates a second renderer 418C and the freed renderer 418A to render the pages of ink estimation job 103C. Additionally, if operation 1002 is Yes, then flow diagram 1000 proceeds to operation 1008.
[0102] Operation 1008 renders the pages of ink estimation job 103C using all available renderers in RIP system 110, except for the single renderer assigned to rendering the complex pages of print job 103A. Thus, when print engine 260 is idle, additional resources of the RIP system are provided to render secondary jobs. This functionality better utilizes the RIP system's resources and optimizes job completion while print engine 260 is idle. Once print engine 260 resumes printing pages, RIP manager 302 reverts to normal processing and reallocates renderers as disclosed in FIG. 6.
[0103] As will be appreciated by those skilled in the art, the present invention may be embodied as a system, a method, or a computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, microcode, etc.), or an embodiment combining software and hardware aspects, all of which may be referred to generally herein as a "circuit," "module," or "system." Furthermore, the present invention may take the form of a computer program product embodied in any tangible medium of expression having computer-usable program code embodied in the medium.
[0104] Any combination of one or more computer-usable or computer-readable media can be used. Computer-usable or computer-readable media include, but are not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, devices, or propagation media. More specific examples (not an exhaustive list) of computer-readable media include an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a transmission medium such as one supporting the Internet or an intranet, or a magnetic storage device. It should be noted that the computer-usable or computer-readable medium can also be paper or other suitable medium on which the program is printed. This is because the program is captured electronically, for example, via optical scanning of the paper or other medium, compiled, interpreted, or otherwise processed in an appropriate manner as needed, and then stored in the computer's memory.
[0105] Computer program code for carrying out operations of the present invention may be written in any combination of one or more programming languages, including object-oriented programming languages such as Java, Smalltalk, C++, etc., and conventional procedural programming languages such as the "C" programming language. The program code may run entirely on the user's computer, partially on the user's computer as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be to an external computer (e.g., via the Internet using an Internet Service Provider).
[0106] The present invention will be described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor in a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine such that the instructions, when executed by the processor of the computer or other programmable data processing apparatus, create means for performing the function(s) / act(s) specified in the block(s) or blocks of the flowchart illustrations and / or block diagrams.
[0107] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of code, constituting one or more executable instructions for implementing the specified logical function(s). It should also be noted that in some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending on the functionality involved. It should also be noted that each block in the block diagrams or flowchart diagrams, and combinations of blocks in the block diagrams or flowchart diagrams, can be implemented by a special-purpose hardware-based system that performs the specified functions or acts, or by a combination of special-purpose hardware and computer instructions.
[0108] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the present invention. As used herein, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. Furthermore, as used herein, it will be understood that the term "comprises" or "comprising" specifies the presence of stated features, integers, steps, operations, elements, or components, but does not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0109] Embodiments may be implemented as a computer process, a computer system, or an article of manufacture such as a computer program product on a computer-readable medium. The computer program product may be a computer storage medium readable by a computer system and encoding computer program instructions for executing a computer process. When accessed, the instructions cause the processor to enable other components to perform the functions disclosed above.
[0110] Corresponding structure, materials, acts, and equivalents of all means or steps in the following claims, as well as functional elements, are intended to include any structure, material, or acts for performing a function in combination with other claimed elements specifically recited in the claims. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or to limit the invention to the form disclosed. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the invention. The embodiments were chosen and described in order to best explain the principles and practical applications of the invention and to enable those skilled in the art to understand the invention in various modifications suitable for the particular uses contemplated.
[0111] One or more portions of the disclosed networks or systems may be distributed across one or more printing systems coupled to a network capable of exchanging information and data. Various functions and components of a printing system may be distributed across multiple client computer platforms or configured to perform tasks as part of a distributed system. These components may be executable, intermediate, or interpretive code that communicates over the network using a protocol. Components may have designated addresses or other designators to identify them within the network.
[0112] It will be apparent to those skilled in the art that various modifications can be made to what is disclosed without departing from the spirit or scope of the invention. Thus, it is intended that the present invention cover the modifications and variations of the above-disclosed subject matter provided that such modifications come within the scope of the appended claims and their equivalents. [Explanation of symbols]
[0113] 100 Printing Systems 102 client terminals 103 Jobs 103A Print Job 103B Process & Hold Job 103C Ink Estimate Job 104 Printing device 106 Controller 108 Print Management Server 110 RIP System 112 documents 114 Quote 115 Applications 116 Preview 118 Raster Output 120 Display device 201 Computing Platform 202 CPU 204 Image forming unit 206 Memory section 208 Operation Panel 210 Network Communication Interface 211 Finisher 212 Paper cassette 214 Memory Location 215 Command 216 Display section 217 Input section 218 Network communication processing unit 220, 222, 224, 226 components 227 Output Bins 230 Document Feeder Tray 260 Print Engine 262 Sensors 302 RIP Manager 304 Spool Drive 305 Cross Reference Table 306 Storage 308-1, 308-2, 308-n, 400 RIP 401 segments 402 Interpreter 404 Vector Objects 406 Raster Objects 408 Text Objects 409 Drawing Department 410 Drawing Services 412 Graphic Services 414 Font Rasterizer 416 Color Converter 418, 418A, 418B, 418C Renderers 420 Bitmap Output 422 dot count value 502 pages 503 Page Queue 511,602,604,606,608,612,614,702,704,706,708,710,802,804,806,807,808,810,1002,1004,1005,1006,1008 operation 512 Engine Manager 514 Acknowledgment 516 Confirmation Queue 600, 700, 800, 1000 Flow Diagram 610 Second Storage 707 Policy Page 902 Complexity Judgment Engine 904 page weight judgment engine 906 pagesWeight 908 Engine Speed 910 base page weight 918 First Page Object 920 Second Page Object 922 Third Page Object 923 Spot Color 924 Page Objects 925 Complexity Model 926 Object Weight
Claims
1. 1. A method for managing a printing operation, comprising: detecting that a print engine in a printing device is not operating includes detecting that a plurality of print jobs are not being printed by the print engine; processing one of the plurality of print jobs in a raster image processing system (RIP system) corresponding to the printing device; generating, with the RIP system, at least one rendered page for the one print job; storing the at least one rendered page in a first data storage accessible by a digital front end (DFE) of a printing device; determining that a storage threshold has been reached for the first data storage; storing the at least one rendered page in a second data storage accessible by the DFE; A printing operation management method comprising:
2. and assigning a renderer to render the at least one rendered page by a RIP manager of the RIP system.
2. The printing operation management method according to claim 1.
3. Furthermore, when at least one page is generated, the allocated renderer is released.
3. The printing operation management method according to claim 2.
4. Further, determining that the at least one rendered page is a complex page.
2. The printing operation management method according to claim 1.
5. and storing the at least one rendered page in a second data storage accessible by the DFE.
5. The printing operation management method according to claim 4.
6. Further, determining that the at least one rendered page is a complex page.
2. The printing operation management method according to claim 1.
7. Further, storing the at least one rendered page in a second data storage, the second data storage being a hard disk accessible by the DFE.
7. The printing operation management method according to claim 6.
8. and detecting that the print engine has resumed operation, the plurality of print jobs being printed by the print engine.
2. The printing operation management method according to claim 1.
9. and retrieving the at least one rendered page from the first data storage.
9. The printing operation management method according to claim 8.
10. and processing the at least one rendered page with the print engine.
10. The printing operation management method according to claim 9.
11. and printing the plurality of print jobs with the print engine upon detecting that the print engine has resumed operation.
6. The printing operation management method according to claim 5.
12. further obtaining the at least one rendered page from the second data storage; Processing the at least one rendered page with the print engine.
12. The printing operation management method according to claim 11.
13. The first data storage is a random access memory data storage.
2. The printing operation management method according to claim 1.
14. The second data storage is a hard disk.
2. The printing operation management method according to claim 1.
15. 1. A method for managing a printing operation, comprising: detecting that a print engine in a printing device is not operating includes detecting that a plurality of print jobs are not being printed by the print engine; processing one of the plurality of print jobs in a raster image processing system (RIP system) corresponding to the printing device; generating at least one rendered page for a print job by the RIP system; determining whether the at least one rendered page is a complex page; If the at least one rendered page is not the complex page, storing the at least one rendered page in a first data storage accessible by a digital front end (DFE) of a printing device; or If the at least one rendered page is the complex page, storing the at least one rendered page in a second data storage accessible by the DFE of the printing device. A printing operation management method comprising:
16. The first data storage is a random access memory storage or a read / write memory storage.
16. The printing operation management method according to claim 15.
17. The second data storage is a hard disk accessible by the DFE.
16. The printing operation management method according to claim 15.
18. Further, detecting that the print engine has resumed operation includes detecting that a plurality of print jobs are being printed by the print engine; retrieving the at least one rendered page from the first data storage or the second data storage; Processing the at least one rendered page with the print engine of the printing device.
16. The printing operation management method according to claim 15.
19. a processor; a memory coupled to the processor storing instructions that, when executed by the processor, configure the printing device to perform the following operations: detecting that a print engine in a printing device is not operating includes detecting that a plurality of print jobs are not being printed by the print engine; processing one of the plurality of print jobs in a raster image processing system (RIP system) corresponding to the printing device; generating, by the RIP system, at least one rendered page of the one print job; storing the at least one rendered page in a first data storage accessible by a digital front end (DFE) of the printing device; A printing device characterized by:
20. The operation further comprises: determining that a storage threshold has been reached for the first data storage; determining that the at least one rendered page is a complex page; storing the at least one rendered page in a second data storage accessible by the DFE; 20. The printing device of claim 19.
Citation Information
Patent Citations
Device and method for image input and output and image processing system
JP2000138787A