Print file preprocessing mechanism

The print control unit's preprocessing mechanism addresses print job file complexity issues by generating metadata to optimize print processing, ensuring efficient and uninterrupted printing.

JP7882368B2Active Publication Date: 2026-06-30RICOH CO LTD

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
RICOH CO LTD
Filing Date
2025-02-27
Publication Date
2026-06-30

AI Technical Summary

Technical Problem

Inappropriately structured or complex print job files cause printing systems to pause due to insufficient processing speed, leading to undesirable printing output delays.

Method used

A print control unit with a preprocessing mechanism that traverses and analyzes print job files to generate metadata, enabling efficient processing and rasterization by identifying page elements and their properties, thereby optimizing print job execution.

Benefits of technology

The preprocessing mechanism allows for faster and more efficient print processing, reducing paused print outputs and maintaining intended printing speeds by identifying and optimizing page elements before rasterization.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007882368000001
    Figure 0007882368000001
  • Figure 0007882368000002
    Figure 0007882368000002
  • Figure 0007882368000003
    Figure 0007882368000003
Patent Text Reader

Abstract

To disclose a system.SOLUTION: The system comprises one or more processors. The one or more processors receive a print job file including page content data associated with each page of the print job file, receive print job structure metadata, and process the print job file using the print job structure metadata to generate page image data for the page content data. The print job structure metadata includes page element metadata associated with each of a plurality of pages of the page content data.SELECTED DRAWING: Figure 6
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of image reproduction, and more particularly to image processing in a printing system.

Background Art

[0002] In various document presentation systems such as a printing system, it is common to process print data (e.g., interpret and rasterize) to generate a bitmap representation of each sheet-side image of a document by processing a sequence of data objects. The data objects (or elements) are typically included in a print job defined in a page description language (PDL) or other suitable encoding represented as a rectangular area of pixels at some point before writing to the bitmap. An inappropriately structured or complex print job file may cause the printing system to pause printing in an undesirable manner because the print control unit cannot process the print job fast enough to generate a data stream sufficient for the print engine to maintain the intended printing output speed.

Summary of the Invention

[0003] In one embodiment, a system is disclosed. The system includes one or more processors that receive a print job file, the print job file including page content data associated with each page of the print job file, receive print job structure metadata, process the print job file using the print job structure metadata, generate page image data of the page content data, and the print job structure metadata includes page element metadata associated with each of a plurality of pages of the page content data.

Brief Description of the Drawings

[0004] A better understanding of the present invention can be obtained from the following detailed description in connection with the following drawings.

[0005] [Figure 1] This is a block diagram of one embodiment of a printing system.

[0006] [Figure 2] This shows a conventional print control unit.

[0007] [Figure 3A] A block diagram of the print control unit according to the embodiment is shown.

[0008] [Figure 3B] A block diagram of the print control unit according to the embodiment is shown.

[0009] [Figure 3C] This shows an embodiment of a file preprocessing module implemented on a network.

[0010] [Figure 4] This shows one embodiment of a file module.

[0011] [Figure 5] One embodiment of traverse logic is shown.

[0012] [Figure 6] This flowchart illustrates one embodiment of the processing performed by the file processing module.

[0013] [Figure 7] This is a flowchart illustrating one embodiment of traverse processing.

[0014] [Figure 8] This flowchart shows one embodiment of how to perform element evaluation processing.

[0015] [Figure 9] This shows one embodiment of print job structure metadata.

[0016] [Figure 10] It is a flowchart showing an embodiment of processing a print job file.

[0017] [Figure 11] An embodiment of an interpreter module is shown.

[0018] [Figure 12] It is a flowchart showing an embodiment of a process executed by an interpreter module.

[0019] [Figure 13] An embodiment of a computer system is shown.

MODE FOR CARRYING OUT THE INVENTION

[0020] A print file preprocessing traversal mechanism will be described. In the following description, for the purpose of illustration, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one of ordinary skill in the art that the present invention may be practiced without some of these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid obscuring the basic principles of the present invention.

[0021] References in this specification to "one embodiment" or "an embodiment" mean that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. Appearances of the phrase "in one embodiment" in various places in this specification are not necessarily all referring to the same embodiment.

[0022] Figure 1 is a block diagram of one embodiment of the printing system 130. The host system 110 communicates with the printing system 130 to print the sheet image 120 onto the printing medium 180 using the printer 160 (e.g., one or more print engines) with the print job structure metadata 190. The printing medium 180 may include paper, cardstock, paperboard, corrugated cardboard, film, plastic, synthetic fiber, fiber, glass, composite material, or any other tangible medium suitable for printing. The form of the printing medium 180 may be continuous, cut sheets, or any other form suitable for printing. The printer 160 may be an inkjet or any other suitable printer type.

[0023] In one embodiment, the printer 160 comprises one or more print heads 162, each print head including one or more pel-forming elements 165 that directly or indirectly (for example, by the transfer of the marking material via an intermediary) form a representation of pixels (pels) on the printing medium 180 using a marking material coated on the printing medium. In an inkjet printer, the pel-forming elements 165 are tangible devices (for example, inkjet nozzles) that eject ink onto the printing medium 180.

[0024] According to one embodiment, the pel-forming elements may be grouped on one or more print heads (e.g., a print head array). The pel-forming elements 165 may be stationary (e.g., as part of a fixed print head) or moving (e.g., as part of a print head moving across the printing medium 180), as a matter of design choice. In a further embodiment, the pel-forming elements 165 may be assigned to one or more color planes corresponding to types of marking materials (e.g., cyan, magenta, yellow, black K (CMYK)). These types of marking materials may be called primary colors.

[0025] The printer 160 may be a multipass printer (e.g., dual-pass, three-pass, four-pass, etc.) in which multiple sets of pel-forming elements 165 print the same area of ​​the print image on the print medium 180. In such embodiments, the sets of pel-forming elements 165 may be arranged on the same physical structure (e.g., an array of nozzles on an inkjet print head) or on separate physical structures. The resulting print medium 180 may be printed in color, including black and white (e.g., cyan, magenta, yellow, and black (CMYK) and secondary colors obtained using combinations of two primary colors (e.g., red, green, blue)) and / or in any number of gray shadings. The host system 110 may include any computing device, such as a personal computer, server, or digital imaging device such as a digital camera or scanner.

[0026] The sheet image 120 may be any file or data that describes how the image on the sheet of the print medium 180 should be printed. For example, the sheet image 120 may consist of a print job file containing Portable Document Format (PDF) data, PostScript data, Printer Command Language (PCL) data, and / or any other printer language data. The print control unit 140 processes the sheet image to generate a bitmap 150 for transmission to the printer 160. The bitmap 150 may be a halftone bitmap for printing on the print medium 180 (e.g., a compensated halftone bitmap generated from compensated halftones, or an uncompensated halftone bitmap generated from uncompensated halftones). The print system 130 may be a high-speed printer capable of printing relatively large volumes (e.g., 100 pages per minute).

[0027] The printing medium 180 may be continuous paper, cut sheet paper, and / or any other tangible medium suitable for printing. In one common form, the printing system 130 includes a printer 160 that draws a bitmap 150 on the printing medium 180 (e.g., with ink, etc.) based on a sheet image 120. Although shown as a component of the printing system 130, other embodiments may feature the printer 160 as a separate device communicatively coupled to the print control unit 140.

[0028] The print control unit 140 may be any other suitable component capable of operating to convert the sheet image 120 to generate a bitmap 150 in accordance with any system, device, software, circuit and / or printing on a printing medium 180. In this regard, the print control unit 140 may include processing and data storage capabilities.

[0029] Figure 2 shows a conventional print control unit. The print control unit includes an interpreter module capable of interpreting, rasterizing (e.g., rendering), or converting the image of the print job (e.g., a raw sheet-side image such as sheet image 120) into a sheet-side bitmap. Each sheet-side bitmap generated by the interpreter module for each primary color is a two-dimensional array of pels representing the image of the print job (e.g., a Continuous Tone Image (CTI)), also called a complete sheet-side bitmap. The two-dimensional pel array is considered a “complete” sheet-side bitmap because the bitmap contains the entire set of pels of the image. The interpreter module is capable of interpreting or rasterizing multiple raw sheet-sides simultaneously so that the rasterization rate substantially matches the imaging rate of the production print engine.

[0030] The halftone module can operate to represent a sheet-side bitmap as an ink halftone pattern. For example, the halftone module may convert pel (also known as pixels) to a CMYK ink halftone pattern for application to paper. The halftone design may include a predefined mapping of input pel gray levels to output droplet size (e.g., a specified ink droplet size communicated to the print head) based on the pel position.

[0031] In one embodiment, the halftone design may include a finite set of transition thresholds between a finite set of successively larger droplet sizes, starting from 0 and ending at the maximum droplet size. The halftone design may be implemented as a threshold array (e.g., a halftone threshold array), such as a single-bit threshold array or a multi-bit threshold array. In another embodiment, the halftone design may be implemented as a three-dimensional lookup table having all included gray level values.

[0032] Processing improperly structured print job files using conventional print control units typically results in extensive processing that can cause paused print output (e.g., printer clutching). For example, the interpreter module is required to perform various operations, such as traversing the print job file during rasterization to determine and execute line scan conversions.

[0033] According to one embodiment, a print control unit 140 is provided that includes a preprocessing mechanism that traverses a print job file before rasterizing it and performs scan conversion analysis and detection. Figures 3A and 3B show embodiments that implement the print control unit 140. Figure 3A shows a generalized form of the print control unit 140 (e.g., a DFE or digital front end) including a file preprocessing module 310, an interpreter module 312, and a halftone module 314, while Figure 3B shows embodiments having print control units 140A and 140B.

[0034] In the embodiment shown in Figure 3B, the print control unit 140A includes a file preprocessing module 310, and the print control unit 140B includes an interpreter module 312 and a halftone module 314. The print control units 140A and 140B may be implemented within the same printing system 130 (as shown) or separately. The interpreter module 312 and the halftone module 314 perform functions similar to those described above with reference to Figure 2. However, the file preprocessing module 310 is included to traverse the received print job file in order to generate print job structure metadata 190, which is made available to assist in the efficient execution of print processing (e.g., runtime print processing or print-time processing) for printing print job data in the printing system 130.

[0035] Although shown as a component within the print control unit 140, other embodiments may feature a file preprocessing module 310 contained within a separate device communicatively coupled to the print control unit 140. For example, Figure 3C shows an embodiment of a file preprocessing module 310 implemented in a network 380. As shown in Figure 3C, the file preprocessing module 310 is contained within a computing system 305 and transmits data to the print system 130 via a cloud network 350.

[0036] Figure 4 shows one embodiment of the file preprocessing module 310. According to one embodiment, the file preprocessing module 310 receives a print job file containing page content data, traverses each of several subset ranges (e.g., subranges) of the page content data (or page elements) to generate page element metadata, aggregates the page element metadata to generate print job structure metadata, and stores the print job structure metadata. In such an embodiment, the print job structure metadata is stored separately from the print job file. Page elements are print data objects that control line art and are associated with the page on which the processed line art is displayed. Page elements appear as a sequence of operators and their operands in the print data file. In the PDF architecture, page elements are known as graphic objects, and a specific type is a path object. A path object is any shape composed of lines, rectangles, and Bézier curves. A path object ends with one or more painting operators that specify whether the path is stroked, filled, used as a clipping boundary, or used as a combination of operations.

[0037] Generating page element metadata involves evaluating page elements in page content data to identify the relevant logical pages in a print job file that have markings indicated by the page elements. Generating page element metadata further involves determining the properties of the page elements (such as the properties of the page elements).

[0038] As shown in Figure 4, the file preprocessing module 310 includes allocation logic 410, traverse logic 420, aggregation logic 430, processing threads 440, and metadata storage 450. In one embodiment, the allocation logic 410 implements a management thread 444 within the processing threads 440 to determine the amount of worker threads 446 available to process the print job file, divides the print job file into multiple subset ranges based on the amount of worker threads 446, and assigns each subset range to a worker thread 446. For example, based on the determination that 10 worker threads 446 are available, the print job file can be divided into 10 subset ranges, and each subset range is assigned to a worker thread 446.

[0039] In a further embodiment, a subset range identifier (subset range ID) is assigned to each subset range in the print job file before it is assigned to the corresponding worker thread 446 having a unique ID (e.g., worker#ID). For example, the first subset range is assigned to the first subset range ID (e.g., ID=0) and then to the first worker thread 446 (e.g., worker#0). The number of pages assigned to each worker thread 446 is determined by dividing the total number of pages in the print job by the number of worker threads 446.

[0040] In one embodiment, the starting page for each worker is determined by multiplying the subset range ID by the number of pages allocated to each worker. The technical advantage of determining the number of pages allocated to each worker thread 446 in this way is that each worker thread 444 makes this determination as part of its work, and the management thread 444 does not bear the burden of this computational task. As used herein, a processing thread includes a sequence of instructions that can be executed independently by a processor (e.g., a central processing unit (CPU) or graphics processing unit (GPU)) to perform processing. Furthermore, each processing thread can execute tasks concurrently and in parallel. Although described herein as worker threads, other embodiments may feature independent worker processing that can execute tasks concurrently and in parallel. The technical advantage of using multiple threads or processes to execute tasks in parallel is that preprocessing can be completed more quickly.

[0041] The traverse logic 420 implements a worker thread 446 to traverse each associated subrange and evaluate the page elements within each page of the subrange. A subrange is a subset of all pages that make up a print job. Figure 5 shows one embodiment of the traverse logic 420, which includes an element evaluation logic 510. According to one embodiment, the evaluation logic 510 causes each worker thread 446 to evaluate the page elements on each page (such as a logical page) contained within the assigned subrange to determine the properties of the page elements. In such an embodiment, evaluating the page elements includes determining the presence of thin lines (e.g., thin lines) based on the properties of the page elements that determine the line width.

[0042] In a further embodiment, determining the presence of a thin line includes determining line attributes (e.g., determining the line width and comparing the determined line width to one or more line width thresholds). In this embodiment, the line attributes determine whether the line is eligible for a scan conversion, and if so, which scan conversion rule (e.g., an overscan conversion (OSC) rule or a center scan conversion (CSC) rule) is used. In yet another embodiment, determining the presence of a thin line includes determining whether the page element contains a fill painting operator, and if so, applying a clipping path cross-evaluation before performing a line width comparison.

[0043] As used herein, the overscan conversion rule considers any pixel where a square region intersects a shape as inside the shape, regardless of the size of the intersection, while the centerscan conversion rule considers a pixel where the center point intersects a shape as inside the shape. Thin lines benefit from the centerscan conversion process in that they are rasterized as they are. Thin lines do not benefit from the overscan conversion process because, as a result of the overscan conversion process, parts of the thin lines tend to be enlarged and, after rasterization, remain attached to adjacent lines or text without being separated. However, since the overscan conversion process can be performed faster than the centerscan conversion process, the centerscan conversion process should only be used for pages where it would be beneficial to improve the overall print job processing efficiency. In one embodiment, the evaluation logic 510 generates page element metadata to be used later by the interpreter 312, which determines whether to implement any overscan or center scan rules (if any) during rasterization based on the minimum line width, and whether the minimum width was obtained from a method of performing fill painting operators and clipping path intersections to create artificial thin lines that might expose the limitations of rasterization. Thus, as a result of the evaluation process, each worker thread 446 collects line width information for each page within its processed sub-range as specific page content data.

[0044] Returning to Figure 4, the aggregation logic 430 implements a management thread 444 to receive specific page content data from each worker thread 446 and generate print job structure metadata. In one embodiment, the print job structure metadata includes an aggregation of page element metadata used by the interpreter module 312 to identify pages and enable / disable scan transformations, and, if enabled, to indicate which scan transformation rules to use. In a further embodiment, the aggregation logic 430 stores the print job structure metadata in metadata storage 450. In such an embodiment, the print job structure metadata is stored separately from the print job file.

[0045] Figure 6 is a flowchart illustrating one embodiment of a process 600 performed for file preprocessing management. The process 600 may be performed by processing logic that may include hardware (e.g., circuits, dedicated logic, programmable logic, microcode, etc.), software such as instructions executed on the processing unit, or a combination thereof. In one embodiment, the process 600 is performed by the file preprocessing module via a management thread 444.

[0046] In processing block 610, the print job file (such as a PDF file) is received. In processing block 620, the number of worker threads available to traverse the print job file is determined. In processing block 630, each worker thread 444 is assigned a subset range ID. At this point, each worker thread 444 is ready to perform a traverse operation on its assigned sub-range of the print job file. The technical advantage of assigning each of multiple processing threads to each of multiple subset ranges is that preprocessing is completed more quickly.

[0047] Page element metadata is received in processing block 640 after the traverse operation is completed in each worker thread 444. In processing block 650, specific page content data is aggregated and print job structure metadata is generated. In processing block 660, the print job structure metadata is stored (for example, in metadata storage 450). The technical advantage of generating print job structure metadata is that it is available (for example, sent to print control unit 140 or 140B) to assist in processing the corresponding print job file at the time of printing. The appropriate print control unit can directly identify page elements and corresponding pages from the print job structure metadata without the burden of traversing the corresponding print job that would otherwise be required.

[0048] Figure 7 is a flowchart showing one embodiment of the traverse process 700. The process 700 may be executed by processing logic that may include hardware (e.g., circuits, dedicated logic, programmable logic, microcode, etc.), software such as instructions executed on the processing unit, or a combination thereof. In one embodiment, the process 700 is executed by the traverse logic 420 in each worker thread 444.

[0049] In processing block 710, the amount of pages in the print job file is determined, and the subset range of pages for each worker thread 444 may be determined as described above. In processing block 720, embedded page resources are searched for pages within the traversed sub-range. In one embodiment, embedded page resources may include embedded input profiles, output profiles, and lists of spot colors or fonts on each page. In processing block 730, page content data (or page elements) are searched for on the page. In processing block 740, each page element on the page is evaluated based on the embedded page resources.

[0050] Figure 8 is a flowchart showing one embodiment of the element evaluation process 800. The process 800 may be executed by processing logic that may include hardware (e.g., circuits, dedicated logic, programmable logic, microcode, etc.), software such as instructions executed on the processing unit, or a combination thereof. In one embodiment, the process 800 is executed by the element evaluation logic 510 in each worker thread 446 before rasterization.

[0051] In decision block 810, a decision is made as to whether the element to be evaluated is within the path. If it is not within the path, no further evaluation of the element is necessary, and the process is complete. Otherwise, in decision block 820, a decision is made as to whether the path uses the fill painting operator. In processing block 830, the width line is calculated based on the decision in decision block 820 that the path does not use the fill painting operator. However, in decision block 840, a decision is made as to whether one or more clipping paths intersect the element, based on the decision that the path uses the fill painting operator.

[0052] Based on the determination that one or more clipping paths intersect an element, the final clipped line width is calculated in processing block 850. Otherwise, the line width is calculated in processing block 830. In determination block 860, a decision is made as to whether the calculated line width or unclipped line width includes a new minimum value. If it does, in processing block 870, the new minimum value is saved along with the page information as part of the print job structure metadata, and processing is complete. The technical advantage of deciding whether paths use fill painting is to consider the impact of intersecting page element line art that may generate thin lines due to the intersection. Alternatively, a determination of the presence of thin lines on the page (as described later) may be made, and the result may be stored as part of the print job structure metadata.

[0053] Returning to Figure 7, once the evaluation process is complete, the decision block 750 determines whether the evaluated element is the last element on the page. If it is not the last element, control returns to the processing block 740, and the next element on the page is evaluated. Otherwise, a decision is made as to whether the current page being traversed is the last page of the sub-scope (decision block 760). If it is not the last page, control returns to the processing block 720, and the embedded page resource for the next page in the sub-scope is retrieved. Otherwise, the page element metadata generated from the page element evaluation is sent (for example, to the aggregation logic 430) based on the decision that the current page is the last page of the sub-scope (processing block 770).

[0054] As described above, the aggregation logic 430 uses the management thread 444 to aggregate the page element metadata into the print job structure metadata. Figure 9 shows one embodiment of the print job structure metadata. As shown in Figure 9, the print job file 910 contains 15 pages (P1 to P15) each containing a page element (e.g., A, B, C), except for P7 and P14. In this embodiment, there are three worker threads 446 (Thread1 to Thread3) to traverse the 15 pages by processing three subranges (e.g., P1 to P5, P6 to P10, P11 to P15). Each thread generates page element metadata 920 (e.g., 920a, 920b, and 920c). The print job structure metadata 930 includes the aggregation of the page element metadata 920 generated by Thread1 to Thread3.

[0055] As described above, the interpreter module 312 retrieves the print job structure metadata 930 and uses the print job structure metadata 930 to process the print job file 910 (e.g., interpret and rasterize) to generate the bitmap 150 at print time. The technical advantage of the print-time processing (e.g., generating the bitmap 150) based on the print job file 910 and the print job structure metadata file 930 is that the print control unit 140 processes the corresponding print job file in which the page elements and corresponding pages have already been identified. This saves the print control unit 140 the computational burden of the additional traversal of the corresponding print job that would otherwise be required. In one embodiment, the print job structure metadata identifies the logical pages of the print job file to the RIP and enables or disables center scan or over scan conversion. In another embodiment, one or more processors use the print job structure metadata as conditional processing control data input to the RIP for the logical pages of the print job file (e.g., the presence of thin lines).

[0056] Figure 10 is a flowchart showing one embodiment of process 1000. Process 1000 may be executed by processing logic that may include hardware (e.g., circuits, dedicated logic, programmable logic, microcode, etc.), software such as instructions executed on the processing unit, or a combination thereof. In one embodiment, process 1000 is executed by interpreter 312.

[0057] In processing block 1010, the print job file is received. In processing block 1020, the print job structure metadata is retrieved. In processing block 1130, the print job file is processed using the print job structure metadata, and a bitmap is generated. In processing block 1040, the bitmap is sent to the print engine.

[0058] Figure 11 shows one embodiment of the interpreter module 312, which includes scan conversion logic 1110. The scan conversion logic 1110 uses print job structure metadata 930 to determine the scan conversion rules to use when rasterizing page elements in the print job file 910. In one embodiment, center scan conversion is enabled for pages that are eligible and would benefit from such conversion. Otherwise, center scan conversion is disabled and overscan conversion is performed.

[0059] Figure 12 is a flowchart showing one embodiment of the scan conversion process 1200. The process 1200 may be executed by processing logic that may include hardware (e.g., circuits, dedicated logic, programmable logic, microcode, etc.), software such as instructions executed on the processing unit, or a combination thereof. In one embodiment, the process 1200 is executed by the interpreter 312.

[0060] In processing block 1210, the print job file and printer resolution are received (processing block 1210). In processing block 1220, the print job structure metadata is retrieved. In processing block 1230, the print command for the page is resolved based on the printer resolution. In determination block 1240, the print job structure metadata is used to determine whether the page is eligible for a standard scan conversion (for example, whether the page contains page elements subject to known rasterization limitations, such as thin lines being erased because they are filled with clipping path lines that cause artificial thin lines).

[0061] Overscan conversion is enabled when a page is determined to be ineligible (processing block 1250). In this case, overscan conversion is performed. However, in determination block 1260, when a page is determined to be ineligible, a decision is made as to whether the page benefits from center scan conversion. As mentioned above, pages containing thin lines benefit from center scan conversion, while other pages do not. Thin lines are detected before rasterization by comparing the calculated line width (e.g., minimum line width) with one or more line width thresholds. In processing block 1270, when a page is determined to benefit, center scan conversion is enabled. However, when a page is determined to be ineligible in processing block 1250, center scan conversion is disabled again. In determination block 1280, a decision is made as to whether the current page is the last page in the print job file. If it is not the last page, control is returned to processing block 1230, and the page print command is resolved for the next page. In other cases, the printing process may be performed in processing block 1290 to generate the bitmap 150 as described above.

[0062] Figure 13 shows computer system 1700. Computer system 900 may include a printing system 130 and / or a compensation module 216. Computer system 1700 includes a system bus 1720 for communicating information and a processor 1710 connected to the bus 1720 for processing information.

[0063] The computer system 1700 further includes RAM (random-access memory) or other dynamic memory elements 1725 (referred to here as main memory) connected to the bus 1720 for storing information and instructions to be executed by the processor 1710. The main memory 1725 may be used to store temporary variables or other intermediate information during the execution of instructions by the processor 1710. The computer system 1700 may also include ROM (read-only memory) and / or other static memory elements 1726 connected to the bus 1720 for storing static information and instructions used by the processor 1710.

[0064] Data storage devices 1727, such as magnetic disks or optical disks and their corresponding drives, may also be connected to the computer system 1700 for storing information and instructions. The computer system 1700 may also be connected to a second I / O bus 1750 via an I / O interface 1730. Multiple I / O devices, including a display device 1724 and input devices (e.g., an alphanumeric input device and a cursor control device 1722), may be connected to the I / O bus 1750. A communication device 1721 is for accessing other computers (servers or clients). The communication device 1721 may include a modem, a network interface card, or other well-known interface devices, such as Ethernet, Token Link, or those used to connect to other types of networks.

[0065] Embodiments of the present invention may include the various steps described above. These steps may be embodied in machine-executable instructions. These instructions can be used to cause a general-purpose or dedicated processor to perform specific steps. Alternatively, these steps may be performed by dedicated hardware components containing hardwired logic for performing the steps, or by any combination of programmed computer components and custom hardware components.

[0066] Elements of the present invention may be provided as a machine-readable medium for storing machine-executable instructions. The machine-readable medium may include, but is not limited to, floppy disks, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, propagation media, or other types of media / machine-readable media suitable for storing electronic instructions. For example, the present invention may be downloaded as a computer program from a remote computer (e.g., a server) to a requesting computer (e.g., a client) via a communication link (e.g., a modem or network connection) by data signals embodied in a carrier wave or other propagation medium.

[0067] The following items and / or examples relate to further embodiments or examples. Specific details in the examples may be used in any of one or more embodiments. The various features of different embodiments or examples can be combined in various ways, including some features and excluding others, to suit various different applications. Examples may include subject matter such as a method, means for performing the actions of the method, and at least one machine-readable medium containing instructions that cause a machine to perform the actions of the method or the actions of an apparatus or system when performed by a machine according to the embodiments and examples described herein.

[0068] Some embodiments relate to Example 1 and are systems including one or more processors, A print job file is received, and the print job file includes page content data associated with each page of the print job file. Receive print job structure metadata, The system includes processing the print job file using the print job structure metadata to generate page image data of the page content data, wherein the print job structure metadata includes page element metadata associated with each of the multiple pages of the page content data.

[0069] Example 2 includes the system described in Example 1, wherein the page element metadata includes page element properties associated with each of the multiple page elements in the page content data.

[0070] Example 3 includes the systems described in Examples 1 and 2, wherein one or more processors use the print job structure metadata as conditional processing control data input for generating the page image data of the page content data.

[0071] Example 4 includes the systems described in Examples 1-3, wherein processing the print job file involves using the print job structure metadata to identify the logical page in the print job file corresponding to each of the multiple page elements.

[0072] Example 5 includes the system described in Examples 1-4, wherein processing the print job file further includes using the print job structure metadata to determine whether each of the identified logical pages is eligible for or ineligible for center scan conversion (CSC).

[0073] Example 6 includes the systems described in Examples 1-5, wherein processing the print job file further includes enabling overscan conversion (OSC) for each logical page that is ineligible for CSC.

[0074] Example 7 includes the systems described in Examples 1-6, wherein processing the print job file further includes using the print job structure metadata to determine whether each logical page eligible for the CSC benefits from or does not benefit from the CSC.

[0075] Example 8 includes the system described in Examples 1-7, wherein determining whether each logical page that is eligible for the CSC benefits from the CSC includes determining whether the page element property indicates the presence of one or more thin lines for each logical page that is eligible for the CSC.

[0076] Example 9 includes the systems described in Examples 1-8, further comprising enabling OSC for each logical page that does not benefit from CSC when processing the print job file.

[0077] Example 10 includes the systems described in Examples 1-9, wherein processing the print job file further includes enabling center scan conversion for each logical page that benefits from CSC.

[0078] Example 11 includes the systems described in Examples 1 to 10, further comprising one or more print engines for printing the page image data.

[0079] Several embodiments relate to Example 12, comprising at least one computer-readable medium storing instructions, wherein when an instruction is executed by one or more processors, the processors... The system receives a print job file, and the print job file includes page content data associated with each page of the print job file. Receive print job structure metadata, The print job structure metadata is used to process the print job file to generate page image data of the page content data, and the print job structure metadata includes a computer-readable medium that includes page element metadata associated with each of the multiple pages of the page content data.

[0080] Example 13 includes the computer-readable medium described in Example 12, wherein the page element metadata includes page element properties associated with each of the multiple page elements in the page content data.

[0081] Example 14 shows that when the instruction is executed by one or more processors, the processors will... The computer-readable media described in Examples 12 and 13 includes the print job structure metadata used as conditional processing control data input for generating the page image data of the page content data.

[0082] Example 15 includes the computer-readable media described in Examples 11-14, wherein processing the print job file involves using the print job structure metadata to identify the logical page of the print job file corresponding to each of the multiple page elements.

[0083] Example 16 includes a computer-readable medium as described in Examples 11-15, wherein processing the print job file further includes using the print job structure metadata to determine whether each of the identified logical pages is eligible for or ineligible for center scan conversion (CSC).

[0084] Some embodiments relate to Example 17, and are methods, A step of receiving a print job file, wherein the print job file includes page content data associated with each page of the print job file, The steps include receiving print job structure metadata, A step of processing the print job file using the print job structure metadata to generate page image data of the page content data, wherein the print job structure metadata includes page element metadata associated with each of the multiple pages of the page content data; This includes methods that include [specific methods].

[0085] Example 18 includes the method of Example 17, wherein the page element metadata includes page element properties associated with each of the multiple page elements in the page content data.

[0086] Example 19 includes the method of Examples 17 and 18, wherein one or more processors use the print job structure metadata as conditional processing control data input for generating the page image data of the page content data.

[0087] Example 20 includes the method described in Examples 17-19, wherein processing the print job file involves using the print job structure metadata to identify the logical page in the print job file corresponding to each of the multiple page elements.

[0088] As will become apparent to those skilled in the art after reading the foregoing description, many substitutions and modifications of the present invention are possible; however, it should be understood that no particular embodiment illustrated and described for illustrative purposes is intended to be considered limiting. Accordingly, references to details of various embodiments are not intended to limit the scope of the claims. The claims describe only the features that are considered essential to the present invention. [Explanation of Symbols]

[0089] 110 Host System 120 Sheet Images 130 Printing Systems 140 Printing Control Unit 150 bitmap 160 Printers 162 Printhead 165 Pell-forming elements 180 Print media 190 Print job structure metadata

Claims

1. A system comprising one or more processors, wherein the one or more processors are A print job file is received, and the print job file includes page content data associated with each page of the print job file. The print job structure metadata is received, and the received print job structure metadata is generated by dividing the print job file into multiple subset ranges, each subset range containing multiple pages, assigning each subset range to a different worker thread, each worker thread generating page element metadata containing page element properties of one or more page elements for the subset range assigned to it, and aggregating the page element metadata of the multiple subset ranges. A system that processes the print job file using the print job structure metadata, generates page image data of the page content data, and the print job structure metadata includes page element metadata associated with each of the multiple pages of the page content data.

2. The system according to claim 1, wherein one or more processors use the print job structure metadata as conditional processing control data input for generating the page image data of the page content data.

3. The system according to claim 1, wherein processing the print job file includes using the print job structure metadata to identify the logical page of the print job file corresponding to each of the one or more page elements.

4. The system according to claim 3, wherein processing the print job file further comprises using the print job structure metadata to determine whether each of the identified logical pages is eligible for or ineligible for center scan conversion (CSC).

5. The system according to claim 4, wherein processing the print job file further includes enabling overscan conversion (OSC) for each of the logical pages that are ineligible for CSC.

6. The system according to claim 4, wherein processing the print job file further comprises using the print job structure metadata to determine whether each logical page eligible for the CSC benefits from or does not benefit from the CSC.

7. The system according to claim 6, wherein determining whether each of the logical pages that qualify for the CSC benefits from the CSC includes determining whether the page element property indicates the presence of one or more thin lines in each of the logical pages that qualify for the CSC.

8. The system according to claim 7, further comprising processing the print job file to enable OSC for each of the logical pages that do not benefit from CSC.

9. The system according to claim 7, wherein processing the print job file further includes enabling center scan conversion for each of the logical pages that benefit from CSC.

10. The system according to claim 1, further comprising one or more printing engines for printing the aforementioned page image data.

11. A computer-readable medium storing instructions, wherein when an instruction is executed by one or more processors, the processors... The system receives a print job file, and the print job file includes page content data associated with each page of the print job file. The print job structure metadata is received, and the received print job structure metadata is generated by dividing the print job file into multiple subset ranges, each subset range containing multiple pages, assigning each subset range to a different worker thread, each worker thread generating page element metadata containing page element properties of one or more page elements for the subset range assigned to it, and aggregating the page element metadata of the multiple subset ranges. A computer-readable medium wherein the print job structure metadata is used to process the print job file to generate page image data of the page content data, and the print job structure metadata includes page element metadata associated with each of the multiple pages of the page content data.

12. When the instruction is executed by one or more processors, the processors will: The computer-readable medium according to claim 11, wherein the print job structure metadata is used as a conditional processing control data input for generating the page image data of the page content data.

13. The computer-readable medium according to claim 11, wherein processing the print job file includes using the print job structure metadata to identify the logical page of the print job file corresponding to each of the one or more page elements.

14. The computer-readable medium according to claim 13, wherein processing the print job file further comprises using the print job structure metadata to determine whether each of the identified logical pages is eligible for or ineligible for center scan conversion (CSC).

15. It is a method, A step of receiving a print job file, wherein the print job file includes page content data associated with each page of the print job file, A step of receiving print job structure metadata, wherein the received print job structure metadata is generated by dividing the print job file into a plurality of subset ranges, each subset range containing a plurality of pages, each subset range being assigned to a different worker thread, each worker thread generating page element metadata containing page element properties of one or more page elements for the subset range assigned to it, and aggregating the page element metadata of the plurality of subset ranges. A step of processing the print job file using the print job structure metadata to generate page image data of the page content data, wherein the print job structure metadata includes page element metadata associated with each of the multiple pages of the page content data; A method that includes this.

16. The method according to claim 15, further comprising the step of using the print job structure metadata as a conditional processing control data input for generating the page image data of the page content data.

17. The method according to claim 15, wherein the step of processing the print job file includes the step of using the print job structure metadata to identify a logical page in the print job file corresponding to each of the one or more page elements.

18. A printing control unit, A print job file is received, and the print job file includes page content data associated with each page of the print job file. The print job file is divided into multiple subset ranges, each subset range containing multiple pages, each subset range is assigned to a different worker thread, each worker thread generates page element metadata containing page element properties of one or more page elements for the subset range assigned to it, and print job structure metadata is generated by aggregating the page element metadata of the multiple subset ranges. A print control unit that processes the print job file using the print job structure metadata and generates page image data of the page content data, wherein the print job structure metadata includes page element metadata associated with each of the multiple pages of the page content data.