Method and system for estimating ink usage

The method of sorting print job pages into groups using low-resolution rasterization and suspending high-resolution estimation when conditions are met addresses inefficiencies in existing ink usage estimation systems, achieving faster and more accurate ink usage calculations for print jobs.

JP7767841B2Active Publication Date: 2025-11-12KYOCERA DOCUMENT SOLUTIONS INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2021180919
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-11-05
Filing Date
2021-11-05
Publication Date
2025-11-12
Estimated Expiration
2041-11-05

AI Technical Summary

Technical Problem

Existing ink usage estimation systems are inefficient, inaccurate, and resource-intensive, particularly for mixed print jobs, and often require manual separation of combined print jobs, leading to inefficiencies and higher computational demands.

Method used

A method and system for estimating ink usage that sorts print job pages into groups based on low-resolution rasterization, calculates average ink usage, and suspends high-resolution ink estimation when conditions are met, allowing for accelerated and accurate ink usage estimation.

Benefits of technology

This approach provides more reliable, efficient, and accurate ink usage estimation for both single and mixed print jobs, reducing computational resources and time while maintaining high accuracy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007767841000001
    Figure 0007767841000001
  • Figure 0007767841000002
    Figure 0007767841000002
  • Figure 0007767841000003
    Figure 0007767841000003
Patent Text Reader

Abstract

To provide a method, a system, and a product for achieving more reliable, accurate, and efficient ink use estimation for print jobs including a mixed print job.SOLUTION: A computer-implemented method for estimating ink use by a printer is provided. The method includes: receiving, by a computer, a request for a mixed print job including a plurality of print jobs to be executed by the printer; traversing, by the computer, a plurality of pages of the mixed print job; identifying, for each page of the mixed print job, a print job of the plurality of print jobs to which the page belongs; for each of the plurality of print jobs, calculating, by the computer, an estimated total amount of ink required for printing the print job; and communicating, by the computer, to a client terminal, the estimated total amount of ink required for printing the plurality of print jobs.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

[Background technology]

[0001] Estimating the amount of printer consumables needed for a particular print job is an important consideration for a print service. For example, a print service may provide services to a client (e.g., a credit / debit card acquiring bank) with thousands of customers. The client may contract with the print service to print and deliver (e.g., by mail) documents to the client's customers. The terms of the contract may specify, for example, a cost per print job or a cost per page (e.g., 1 cent per page).

[0002] Determining the cost may involve estimating the amount of printer consumables that will be consumed in processing the print job. A print service may be able to estimate this amount by printing a limited number of sample pages that are representative of a larger print job. The amount of printer consumables consumed in this limited printing can be used as a basis for determining the cost of the entire print job. Summary of the Invention

[0003] In one aspect, a computer-implemented method for estimating ink usage by a printer is provided. The method includes receiving, by a computer, a request for a print job to be executed by the printer. The method also includes sorting, by the computer, a plurality of pages of the print job into a plurality of groups, each group corresponding to a related page of the print job. The method also includes, for each of the plurality of groups, calculating, by the computer, an estimated amount of ink required to print each page classified into the group, and calculating, by the computer, an estimated average amount of ink required to print the plurality of pages of the group based on the estimated amount of ink required to print the plurality of pages of the group. The method also includes determining, by the computer, that the estimated average amount of ink for at least a subset of the plurality of groups satisfies a set of predetermined conditions. The method also includes, in response to determining that the estimated average amount of ink for at least a subset of the plurality of groups satisfies the set of predetermined conditions, discontinuing, by the computer, calculation of the estimated amount of ink for pages classified into at least a subset of the plurality of groups. The method also includes calculating, by the computer, for each of the plurality of groups, an estimated total amount of ink required to print the plurality of pages of the group based on the estimated average amount of ink for the group and the number of pages in the group. The method also includes transmitting, by the computer, to the client terminal an estimated total amount of ink required to print the print job, the estimated total amount of ink being based on the estimated total amounts of ink for the plurality of groups.

[0004] In another aspect, a system is provided. The system includes a memory storing instruction code. The system also includes a processor in communication with the memory. The instruction code is executable by the processor to perform operations. The operations include receiving a request for a print job to be performed by a printer. The operations also include sorting a plurality of pages of the print job into a plurality of groups, each group corresponding to an associated page of the print job. The operations also include, for each of the plurality of groups, calculating, for each page classified into the group, an estimated amount of ink required to print the page, and calculating an estimated average amount of ink required to print the plurality of pages of the group based on the estimated amount of ink required to print the plurality of pages of the group. The operations also include determining that the estimated average amount of ink for at least a subset of the plurality of groups satisfies a set of predetermined conditions. The operations also include suspending calculation of the estimated amount of ink for pages classified into at least the subset of the plurality of groups in response to determining that the estimated average amount of ink for at least the subset of the plurality of groups satisfies the set of predetermined conditions. The operations also include calculating, for each of the plurality of groups, an estimated total amount of ink required to print the plurality of pages of the group based on the estimated average amount of ink for the group and the number of pages in the group. The operations also include communicating to the client terminal an estimated total amount of ink required to print the print job, the estimated total amount of ink being based on the estimated total amounts of ink for the plurality of groups.

[0005] In another aspect, an article of manufacture is provided. The article includes non-transitory data storage storing at least computer-readable instructions. The computer-readable instructions, when executed by one or more processors of a computer, cause the computer to perform operations. The operations include receiving a request for a print job to be performed by a printer. The operations also include sorting a plurality of pages of the print job into a plurality of groups, each group corresponding to an associated page of the print job. The operations also include, for each of the plurality of groups, calculating, for each page classified into the group, an estimated amount of ink required to print the page, and calculating an estimated average amount of ink required to print a plurality of pages of the group based on the estimated amount of ink required to print the plurality of pages of the group. The operations also include determining that the estimated average amount of ink for at least a subset of the plurality of groups satisfies a set of predetermined conditions. The operations also include suspending the calculation of the estimated amount of ink for pages classified into at least a subset of the plurality of groups in response to determining that the estimated average amount of ink for at least a subset of the plurality of groups satisfies the set of predetermined conditions. The operations also include calculating, for each of the plurality of groups, an estimated total amount of ink required to print the plurality of pages of the group based on the estimated average ink amount for the group and the number of pages in the group. The operations also include communicating to the client terminal an estimated total amount of ink required to print the print job, the estimated total amount of ink being based on the estimated total amounts of ink for the plurality of groups.

[0006] In yet another aspect, another computer-implemented method for estimating ink usage by a printer is provided. The method includes receiving, by a computer, a request for a print job to be executed by the printer, the print job including a plurality of pages to be printed. The method also includes, by the computer, traversing the plurality of pages of the print job and calculating, for each page of the print job, an estimated amount of ink required to print the page. The traversal begins with a selected first page of the plurality of pages of the print job. The method also includes, while traversing the plurality of pages of the print job and calculating, for each page of the print job, an estimated amount of ink required to print the page, calculating, by the computer, at a first predetermined interval of a plurality of predetermined intervals, a first snapshot of an estimated average amount of ink required to print the traversed plurality of pages; and, at each of a plurality of predetermined intervals subsequent to the first predetermined interval, until a predetermined ink usage condition is met, (i) calculating, by the computer, an updated snapshot of the estimated average amount of ink required to print the traversed plurality of pages, and (ii) comparing, by the computer, the updated snapshot with a previous snapshot. The predetermined ink usage condition is related to an output of the comparison of the updated snapshot with the previous snapshot. The method also includes calculating, by the computer, an estimated total amount of ink required to print the print job in response to the predetermined ink usage condition being satisfied. The estimated total amount of ink required to print the print job is based on the updated snapshot and the total number of pages in the print job. The method also includes communicating, by the computer, the estimated total amount of ink required to print the print job to the client terminal.

[0007] In yet another aspect, another system is provided. The system includes a memory storing instruction code. The system also includes a processor in communication with the memory. The instruction code is executable by the processor to perform operations. The operations include receiving a request for a print job to be executed by a printer, the print job including a plurality of pages to be printed. The operations also include traversing the plurality of pages of the print job and calculating, for each page of the print job, an estimated amount of ink required to print the page. The traversal begins with a selected first page of the plurality of pages of the print job. The operations also include, while traversing the plurality of pages of the print job and calculating, for each page of the print job, an estimated amount of ink required to print the page, calculating, at a first predetermined interval of a plurality of predetermined intervals, a first snapshot of an estimated average amount of ink required to print the traversed plurality of pages, and, at each of a plurality of predetermined intervals subsequent to the first predetermined interval and until a predetermined ink usage condition is met, (i) calculating an updated snapshot of the estimated average amount of ink required to print the traversed plurality of pages, and (ii) comparing the updated snapshot to a previous snapshot. The predetermined ink usage condition is associated with an output of the comparison between the updated snapshot and the previous snapshot. The operations also include calculating an estimated total amount of ink required to print the print job in response to the predetermined ink usage condition being satisfied. The estimated total amount of ink required to print the print job is based on the updated snapshot and the total number of pages in the print job. The operations also include communicating the estimated total amount of ink required to print the print job to the client terminal.

[0008] In yet another aspect, another article of manufacture is provided. The article includes non-transitory data storage storing at least computer-readable instructions. The computer-readable instructions, when executed by one or more processors of a computer, cause the computer to perform operations. The operations include receiving a request for a print job to be executed by a printer, the print job including a plurality of pages to be printed. The operations also include traversing the plurality of pages of the print job and calculating, for each page of the print job, an estimated amount of ink required to print the page. The traversal begins with a selected first page of the plurality of pages of the print job. The operations also include, while traversing the plurality of pages of the print job and calculating, for each page of the print job, an estimated amount of ink required to print the page, calculating, at a first predetermined interval of a plurality of predetermined intervals, a first snapshot of an estimated average amount of ink required to print the traversed plurality of pages, and, at each of a plurality of predetermined intervals subsequent to the first predetermined interval and until a predetermined ink usage condition is met, (i) calculating an updated snapshot of the estimated average amount of ink required to print the traversed plurality of pages, and (ii) comparing the updated snapshot with a previous snapshot. The predetermined ink usage condition is associated with an output of the comparison between the updated snapshot and the previous snapshot. The operations also include calculating an estimated total amount of ink required to print the print job in response to the predetermined ink usage condition being satisfied. The estimated total amount of ink required to print the print job is based on the updated snapshot and the total number of pages in the print job. The operations also include communicating the estimated total amount of ink required to print the print job to the client terminal.

[0009] In yet another aspect, yet another computer-implemented method for estimating ink usage by a printer is provided. The method includes receiving, by a computer, a request for a mixed print job comprising a plurality of print jobs to be executed by the printer. The method also includes traversing, by the computer, a plurality of pages of the mixed print job and, for each page of the mixed print job, identifying a print job of the plurality of print jobs to which the page belongs. The method also includes, for each of the plurality of print jobs, calculating, by the computer, an estimated total amount of ink required to print the print job. The method also includes communicating, by the computer, the estimated total amount of ink required to print the plurality of print jobs to a client terminal.

[0010] In yet another aspect, yet another system is provided. The system includes a memory storing instruction code. The system also includes a processor in communication with the memory. The instruction code is executable by the processor to perform operations. The operations include receiving a request for a mixed print job comprising a plurality of print jobs to be executed by a printer. The operations also include traversing a plurality of pages of the mixed print job and, for each page of the mixed print job, identifying a print job of the plurality of print jobs to which the page belongs. The operations also include, for each of the plurality of print jobs, calculating an estimated total amount of ink required to print the print job. The operations also include communicating the estimated total amount of ink required to print the plurality of print jobs to a client terminal.

[0011] In yet another aspect, yet another article of manufacture is provided. The article includes non-transitory data storage storing at least computer-readable instructions. The computer-readable instructions, when executed by one or more processors of a computer, cause the computer to perform operations. The operations include receiving a request for a mixed print job comprising a plurality of print jobs to be executed by a printer. The operations also include traversing a plurality of pages of the mixed print job and, for each page of the mixed print job, identifying a print job of the plurality of print jobs to which the page belongs. The operations also include calculating, for each of the plurality of print jobs, an estimated total amount of ink required to print the print job. The operations also include communicating the estimated total amount of ink required to print the plurality of print jobs to a client terminal.

[0012] Other aspects, embodiments, and implementations will become apparent to those skilled in the art from a reading of the following detailed description, with appropriate reference to the accompanying drawings. [Brief explanation of the drawings]

[0013] [Figure 1] FIG. 1 is a schematic block diagram illustrating an intelligent control system for a printing operation, according to at least some example embodiments.

[0014] [Figure 2] 1 illustrates an example of a quote record, according to at least some example embodiments.

[0015] [Figure 3] 1 illustrates a flowchart for printer ink usage estimation, according to at least some example embodiments.

[0016] [Figure 4] 10 illustrates another flowchart of printer ink usage estimation, according to at least some example embodiments.

[0017] [Figure 5]10 illustrates another flowchart of printer ink usage estimation, according to at least some example embodiments. DETAILED DESCRIPTION OF THE INVENTION

[0018] In the following detailed description, reference is made to the accompanying drawings, which form a part of this application. In the drawings, like symbols typically identify like elements, unless context dictates otherwise. The illustrative embodiments described in the detailed description, drawings, and claims are not intended to be limiting. Other embodiments may be utilized and other changes may be made without departing from the scope of the subject matter presented herein. It will be readily understood that the aspects of the present disclosure, as broadly described herein and illustrated in the drawings, can be arranged, substituted, combined, separated, and designed into a wide variety of different configurations, all of which are expressly contemplated herein. I. Summary

[0019] Implementations of the present disclosure provide technical improvements specific to printing technologies, such as those related to estimating the amount of ink used by a printer in printing a print job (also referred to herein as a "job" for brevity). While embodiments of the present disclosure are described herein primarily in the context of print media products in the form of paper document pages, it should be understood that the present disclosure is also applicable to estimating other types of printer consumables, such as toner for printing a page or materials such as filament consumed in three dimensions (3D). Other examples are possible as well.

[0020] Additionally, a print job may involve printing multiple copies of one or more documents. Thus, as used herein, the term "print job" encompasses multiple copies of a document specified in a request for the print job.

[0021] Existing estimation systems typically estimate ink usage for a print job, i.e., estimate the total amount of ink required to print all pages of the print job, using a portion of the print job. Specifically, they rasterize the portion of the print job (e.g., using a raster image processor (RIP)) and estimate ink usage for that portion based on this rasterization. However, this rasterization often takes more time than desired, even on high-performance systems, and the type of rasterization used may result in lower ink usage estimates. Furthermore, existing ink usage estimation techniques can have difficulty determining how much of the print job should be used for the estimate. For example, selecting too few pages for the estimate may result in lower accuracy. On the other hand, selecting too many pages for the estimate may require more time and computational resources than desired to complete the estimate, which may divert time and computational resources from other processing steps that may be required in processing the print job.

[0022] Additionally, existing estimation systems may not be efficient or reliable at processing ink usage estimates for mixed print jobs. A mixed print job is a single print job that is composed of multiple print jobs, each of which may be associated with a different entity (e.g., different companies that submitted print requests). For example, a mixed job may take the form of a single print file (e.g., a zip file or other type of file) that is composed of multiple electronically mixed print files corresponding to multiple print jobs. In some situations, the multiple print jobs that make up a mixed job may be unrelated jobs that are combined to maximize postage discounts. When estimating mixed jobs, existing estimation systems may require print shop staff to review the mixed print job and separate the multiple jobs so that they can be estimated and priced individually, which can be inefficient and have other drawbacks.

[0023] To address the above-mentioned problems, the present disclosure provides an improved estimation system that provides more reliable, accurate, and efficient ink usage estimation for print jobs, including mixed print jobs. Such improved ink usage estimation can facilitate more reliable, accurate, and efficient cost estimation of ink usage. The disclosed ink usage estimation process is primarily and advantageously implemented before a print job is sent to a printer and printed.

[0024] The implementations described below are for illustrative purposes only, and these and other implementations may provide other improvements. II. Example of a Computer Environment

[0025] 1 illustrates an example environment 100 that includes various entities that cooperate to facilitate printer consumable estimation. Example entities in environment 100 may include an estimation system 102, a client terminal 104, and a printing system 150. The various entities in environment 100 may be configured to communicate with each other over a network 111, such as the Internet.

[0026] Printing system 150 may include controller 152 and printing device 155. An example controller 152 may be configured to coordinate actions performed by printing device 155. For example, controller 152 may be configured to receive print job requests 132 from entities external to printing system 150 and communicate print job requests 132 to printing device 155. As described in more detail below, controller 152 may be further configured to monitor device parameters 135 associated with printing device 155 and communicate this information to estimation system 102.

[0027] As described above, the printing device 155 may include a front-end processor (FEP) 155a, a print engine processor (PEP) 155b, and one or more printers 155c. The FEP 155a may be configured to convert bitmap images, vector images, fonts, etc., associated with a page specified in a print job request into a bitmap / rasterized representation of the image (e.g., C, M, Y, K pixels). The manner in which the FEP 155a rasterizes the page specified in the print job request may depend on various image rasterization parameters of the FEP 155a. These image rasterization parameters may include and enable, for example, at least one of a calibration curve, a paper definition, an International Color Consortium profile (ICC profile), a spot color definition, a tone adjustment curve, color conversion settings, colorant limitations (e.g., ink, toner), a rendering intent, K preservation, CGR levels, etc., a maximum colorant density, print margins, and halftones.

[0028] An example of a PEP 155b can be included in or communicate with a printer 155c. The printer 155c can correspond to an industrial printer capable of printing thousands of pages per hour. In this regard, the printer 155c can be ink-based, toner-based, or use different media. The PEP 155b can include various parameters that can control the operation of the printer 155c and the amount of printer consumables required by the printer. By way of example, these parameters can include the printer's 155c head cleaning interval, head clogging prevention interval, etc., as well as printer maintenance parameters that control and enable spitting (i.e., printing a spray pattern over all content), printing purge sheets, and printing spit lines (i.e., lines printed between page frames in a roll-fed printer to ensure all jets in the printer's printhead are firing).

[0029] An example of the estimation system 102 may correspond to a computer, such as a tablet, laptop, smartphone, or other device that facilitates user interaction. The estimation system 102 may include a memory 127 and a processor 125. The estimation system 102 may include other subsystems. By way of example, these subsystems may include an input / output (I / O) subsystem 110, an estimation database 130, and estimation logic 140. Details related to the various subsystems of the estimation system 102 and the operations performed by these subsystems are discussed in further detail below.

[0030] The processor (CPU) 125 is in communication with the memory 127. The processor 125 is configured to execute instruction code stored in the memory 127. The instruction code facilitates the estimation system 102 performing various operations that facilitate estimating consumables that may be required by the printing system 150. In this regard, the instruction code enables the processor 125 to control and coordinate various activities performed by different subsystems of the estimation system 102. The processor 125 may correspond to a standalone computer system, such as an Intel®, AMD®, or ARM®-based computer system, or other computer system, and may include an application-specific computer system. The computer system may include operating systems such as Microsoft Windows®, Linux®, Unix®, Mac OS®, or other operating systems.

[0031] An example I / O subsystem 110 may include one or more input, output, or input / output interfaces and may be configured to facilitate communication with entities external to the estimation system 102. In this regard, an example I / O subsystem 110 may be configured to dynamically determine a communication methodology utilized by an entity in the environment 100 and may communicate information to the entity using an interface that uses the determined communication methodology. For example, the I / O subsystem 110 may determine that a first entity utilizes a RESTful API and may therefore communicate with the entity using an interface that uses the RESTful communication methodology.

[0032] An example of the estimation logic 140 can be configured to estimate the amount of printer consumables required by the printer 155c in processing a particular print job request 132. In this regard, the estimation logic 140 can implement the front-end emulator (FE) 140a and print engine emulator (PE) 140b described above. The FE 140a and PE 140b can be configured with equipment parameters 135 that match the equipment parameters 135 associated with the FEP 155a and PEP 155b of the printing system 150.

[0033] As described above, the FE 140a can be configured to emulate the operations performed by the FEP 155a of the printing system 150. The emulation can depend on various parameters. For example, the FE 140a can be configured to convert bitmap images, vector images, fonts, etc., specified in a sample page of the print job request 132 into a bitmap / rasterized representation of that page. The manner in which the FE 140a performs the conversion can depend on various image rasterization parameters of the FE 140a, which can correspond to the image rasterization parameters of the FEP 155a described above.

[0034] An example PE 140b can be configured to emulate operations performed by PEP 155b and / or printer 155c of printing system 150. The emulation can depend on various printer maintenance parameters, which can correspond to the printer maintenance parameters of PEP 155b described above.

[0035] It is contemplated that any of the subsystems referred to herein may correspond to standalone computer systems, such as Intel®, AMD®, or Arm®-based computer systems, or other computer systems, and may include application-specific computer systems. These computer systems may include operating systems such as Microsoft Windows®, Linux®, Unix®, or other operating systems. It is also contemplated that operations performed by various subsystems may be combined into fewer or more subsystems to facilitate speed scaling, cost reduction, etc.

[0036] The client terminal 104 may take the form of any computing device or component thereof configured to provide audio / visual notifications to a user. For example, the notification device 106 may take the form of a laptop computer, a smartphone, or its user interface system (e.g., a display device such as a touchscreen and a speaker). In some embodiments, the client terminal 104 may be configured to receive ink usage estimates and their associated costs from the estimation system 102 or the printing system 150 in some form and display the ink / cost estimates. In some embodiments, the estimation system 102 or the printing system 150 may take the form of a computer, and the client terminal 104 may be a display device for the computer. In other embodiments, the client terminal 104 may be another computer configured to communicatively engage with the estimation system 102 or the printing system 150 to facilitate receipt by the client terminal 104 of printer consumable estimates (e.g., ink usage) and their associated costs. Other examples are possible as well.

[0037] 2 illustrates an example of a quote record 200 that may be stored in quote database 130. Each entry in quote database 130 may specify aspects related to the quote provided to a client for processing a particular print job request 132. By way of example, fields 205 of each entry in quote database 130 may include an ID field 205a, a client information field 205b, a job information field 205c, a front-end (FE) parameters field 205d, a print engine (PE) parameters field 205e, a consumables estimate field 205f, and a cost field 205g. Other information may be specified in quote record 200.

[0038] The ID field 205a of each entry can be assigned a unique value for each entry. The value of the ID field 205a can be automatically generated for each new entry in the quote database 130. The value of the ID field 205a can also be manually assigned.

[0039] The client information field 205b of each entry can specify, for example, the name, address, phone number, email address, etc. associated with a particular client. As described above, a particular client can submit a request for a quote for a particular print job request 132 via a client terminal 104. The request can include one or more sample pages (e.g., 100 random pages of a 1,000,000 page print job) associated with the print job request 132. The information in this field can facilitate the transmission of the quote 137 to the client terminal 104, which can then communicate all of the print job requests 132.

[0040] The job information field 205c of each entry can specify information that identifies the print job request 132. By way of example, the value of this field can specify information that indicates the size of the print job request 132 (e.g., 100k pages, 1 GB). The value can specify how often the print job request 132 should be processed (e.g., monthly, bimonthly). In some cases, the value of this field can further specify information that indicates the size of the sample (e.g., 100 pages, 1 KB) that was or was used to generate the estimate. Other information that further identifies the print job request 132 can be represented by the value of this field.

[0041] The front end parameters field 205d of each entry may specify one or more values ​​associated with various equipment parameters 135 utilized by the FE 140a of the estimation logic 140 in generating the estimate associated with the entry. These values ​​may specify the image rasterization parameters described above.

[0042] The print engine parameters field 205e of each entry may specify one or more values ​​associated with various device parameters 135 utilized by the PE 140b of the estimation logic 140 in generating the estimate associated with the entry. These parameters may specify the printer maintenance parameters described above.

[0043] The consumables estimate field 205f of each entry may specify information indicating the amount of printer consumables (e.g., amounts of cyan, magenta, yellow, and black ink) estimated to be required for a particular print job request 132. For example, the value in this field may specify the number of units (e.g., picoliters) of a particular color required for a particular print job request 132. The estimate specified in this field may be specified for the entire print job request 132, per page, etc.

[0044] The cost estimate field 205g of each entry can specify a cost associated with the print job request 132. The value of this field can be proportional to the value of the consumable estimate specified in the entry and the type of media (e.g., ink, toner) used by the printer 155c. The cost can be specified for the entire print job request 132, per page, etc. III. Example of operation for estimating ink usage A. Accelerated ink usage estimation

[0045] 3 is a flowchart of a method according to at least some example embodiments. Method 300 represents a method for estimating ink usage by a printer, referred to herein as a method for "accelerated ink usage estimation." Method 300 can be performed by a computer, such as estimation system 102 or controller 152 of printing system 150.

[0046] Block 302 of method 300 involves receiving, by a computer, a request for a print job to be executed by a printer, which request may be in the form of a print file.

[0047] Block 304 of method 300 includes sorting, by a computer, a plurality of pages of the print job into a plurality of groups, each group corresponding to a related page of the print job.

[0048] To facilitate this, the computer can rasterize pages at a low resolution (e.g., below a predetermined resolution threshold), such as a resolution between 72 dots per inch (dpi) and 300 dpi. Furthermore, after initially classifying at least one page based on the low-resolution image of that page, the computer can compare the low-resolution image of a subsequent page with the previously determined low-resolution image of the preceding page and use this comparison as a basis for classifying the subsequent page. For example, if the low-resolution image of a page has at least a threshold similarity to one or more preceding images that have been classified into a particular group, the page can be classified with the preceding images. Conversely, if the low-resolution image of a page has at least a threshold similarity to one or more preceding images, the page may be classified into a new page group. Various image comparison algorithms can be used to facilitate these comparisons. Using low-resolution rasterization for the classification process (as opposed to higher or full-resolution rasterization) can make the classification process, and thus the accelerated ink usage estimation process, more efficient. Alternatively, there may be circumstances in which a higher resolution rasterization, such as 600 dpi or greater (i.e., higher than the low resolution rasterization described above or higher than a predetermined resolution threshold), can be used in the classification process without devoting more computational resources and time than desired. Other classification techniques may be used as well.

[0049] As an example of this technique, consider a situation in which a print job contains three four-page documents, each with a different first page and identical second, third, and fourth pages. In this situation, a computer might sort these pages into six distinct groups: one group for each first page, one group for second pages, one group for third pages, and one group for fourth pages. After initially sorting these six groups, the computer could group subsequent copies of page two into the same group as the first copy of page two. The computer could similarly group subsequent copies of pages three and four. This sorting / grouping of the three four-page documents might result in a first group containing one variation of page one, a second group containing another variation of page one, a third group containing yet another variation of page one, a fourth group containing three of page two, a fifth group containing three of page three, and a sixth group containing three of page four. Other examples are possible as well.

[0050] An exemplary advantage of classifying pages in the manner described above is that it allows for ensuring low variation between the pages being compared. Other advantages may be obtained as well.

[0051] 3, block 306 of method 300 includes, for each of the plurality of groups, calculating, by the computer, for each page classified into the group, an estimated amount of ink required to print that page, and calculating, by the computer, an estimated average amount of ink required to print the plurality of pages of the group based on the estimated amount of ink required to print the plurality of pages of the group. In other words, the computer is able to ascertain the average ink usage for each group.

[0052] To facilitate this, in addition to rasterizing the page at a lower resolution for classification, the computer can rasterize the page at a higher resolution, such as full resolution (e.g., 600 dpi or 1200 dpi), and the computer can use the higher resolution image of the page for ink coverage estimation. That is, in some embodiments, the page can be rasterized twice: once at a lower resolution for page classification, and again at a higher resolution for ink coverage estimation. Using a higher resolution for ink coverage estimation can increase the accuracy of the estimation. While continuing to rasterize pages in the above manner, the computer can continue to classify and calculate / save ink coverage estimates for each page at least until one or more conditions are met, as described in more detail below.

[0053] In some embodiments, the act of calculating the estimated average amount of ink required to print the pages of the group based on the estimated amount of ink required to print the pages of the group can be performed using adaptive ink usage estimation, which is described in more detail in a later section of this disclosure.

[0054] Referring again to FIG. 3, block 308 of method 300 includes determining, by a computer, that the estimated average ink amount for at least a subset of the plurality of groups (e.g., at least one of the groups) satisfies a set of predetermined conditions.

[0055] Block 310 of method 300 includes, in response to determining that the estimated average ink volume for at least a subset of the plurality of groups satisfies a set of predetermined conditions, interrupting, by the computer, calculation of the estimated ink volume for pages classified into at least a subset of the plurality of groups.

[0056] The set of predetermined conditions may include one or more conditions, including, without limitation, that the standard deviation of the estimated average ink amount per page for each group of at least a subset of the plurality of groups remains less than a predetermined deviation threshold over a predetermined number of pages sorted by the computer (e.g., over 100 pages). As another example, the computer may take multiple snapshots of a predetermined group over time and determine how the snapshots change. In such an example, the set of predetermined conditions may include that the standard deviation of the estimated average ink amount per page for each group of at least a subset of the plurality of groups remains less than a predetermined deviation threshold over a predetermined number of snapshots taken by the computer of the estimated average ink amount per page for that group (e.g., over five snapshots taken after each sorting of 20 pages).

[0057] As another example, the set of predetermined conditions may include a condition that the standard deviation of the estimated average ink amount per page for each group of at least a subset of the plurality of groups remains less than a predetermined deviation threshold for more than a predetermined duration. Alternatively, the set of predetermined conditions may include a condition that the standard deviation of the estimated average ink amount per page for each group of at least a subset of the plurality of groups remains less than a predetermined deviation threshold, regardless of the number of classified pages, snapshots, or time. Other exemplary conditions may be employed as well.

[0058] As a more specific example of determining whether a set of predetermined conditions is met, a computer can calculate an estimated average ink volume for each w pages in a given group, where w is an integer (e.g., 20). By performing this ink estimation, the computer can determine the standard deviation of the most recent N average ink usage values ​​(where N is an integer (e.g., 10)) and the overall standard deviation across all estimated pages. As more pages are grouped and estimated, the most recent N average ink usage values ​​begin to converge and the variance between these values ​​decreases, shrinking the standard deviation of the ink usage estimates until it falls below a predetermined deviation threshold. For example, consider a situation where a page uses an average of 16 microliters of ink, N is 4, and the predetermined threshold deviation for the predetermined condition is 5. When first starting estimation across multiple pages in a group, the computer might obtain the following ink usage (microliters) for four pages: 5, 20, 12, and 8, with a standard deviation of 5.629. Continuing to extrapolate the pages might yield the following values ​​for additional pages classified into the group: 16, 2, 18, and 14, with a standard deviation of 6.22, for an overall standard deviation of 5.96. Continuing to extrapolate further might yield the following values ​​for additional pages classified into the group: 13, 6, 18, and 10, with a standard deviation of 4.38, for an overall standard deviation of 5.48. Continuing to extrapolate further might yield the following values ​​for additional pages classified into the group: 13, 10, 9, and 12, with a standard deviation of 1.58, for an overall standard deviation of 4.83. This would bring the overall standard deviation below the predetermined deviation threshold of 5 and satisfy the condition. Over time, as outlier pages become a minority in the estimated pages, the standard deviation would decrease, and the computer might use this decrease as a threshold (either directly or expressed as a percentage deviation from the average ink use per page).

[0059] In some examples, the set of predetermined conditions can include a condition that the standard deviation in the plurality of standard deviations itself is less than a predetermined second deviation threshold. The standard deviation in the plurality of standard deviations can indicate the extent of the change in ink usage and can be another useful condition, either alone or in combination with one or more other conditions described herein. Considering the situation described above as an example, the standard deviation in the plurality of standard deviations (5.629, 6.22, 4.38, 1.58) is 1.78, and the computer can be configured to determine that the set of predetermined conditions is met if the standard deviation in the plurality of standard deviations is less than 2. Other examples are possible as well.

[0060] Furthermore, in response to determining that the estimated average ink amount for at least a subset of the plurality of groups satisfies a set of predetermined conditions, the computer may continue to classify the plurality of pages of the print job into a plurality of groups, even if ink usage estimation for pages classified into at least a subset of the plurality of groups is suspended. In other words, when the change in average ink usage for a particular group falls below a predetermined deviation threshold (and, optionally, remains below that threshold for at least a predetermined duration), the computer may stop calculating estimated ink usage for pages classified as belonging to that group, but may continue to classify pages into that group. In this manner, when a set of predetermined conditions is met, the computer may stop estimating ink usage for the group and instead switch to a "classification-only" mode, in which the computer suspends ink usage estimation but continues classifying pages. Suspending ink usage estimation for groups that satisfy a set of predetermined conditions may speed up the ink usage estimation process overall and may reduce the consumption of computational resources because the high-resolution rasterization involved in calculating estimated ink usage for the group is suspended.

[0061] When pages are initially classified into groups and ink usage is estimated for those groups, the average ink usage per page may vary within each group. However, satisfaction of a set of predetermined conditions for a particular group may indicate that the average ink usage estimated so far for that group is stable and mean-reverting, and may generally indicate that the same average ink usage for that group will likely continue as new pages are classified into that group as more pages are classified and estimated. Thus, the average ink usage for that group calculated up until the set of predetermined conditions is satisfied can be used to calculate the total estimated ink usage for that group when the classification phase is complete. For example, regression to the mean can be calculated by having a computer repeatedly look up the average after a specified number of pages (e.g., 50, 100, 150, 200) have been classified and calculate (i) the difference from the average at those times and (ii) the overall average.

[0062] In some embodiments, the act of continuing to classify the pages of the print job into groups may include continuing to classify the pages of the print job into groups using rasterization of the pages at a lower resolution. That is, the computer may continue to classify the pages at a lower resolution, such as the same resolution used before the set of predetermined conditions was met or a different lower resolution. In other embodiments, the act of continuing to classify the pages of the print job into groups may include switching from classifying the pages of the print job into groups using rasterization of the pages at a lower resolution to instead classifying the pages of the print job into groups using rasterization of the pages at a higher resolution than the lower resolution, such as 600 dpi or 1200 dpi.

[0063] Although the computer may eventually stop finding new groups, the computer can be configured such that if, after suspending calculation of estimated ink amounts for pages classified into at least a subset of multiple groups, the computer determines that at least one page has been classified into a new group that is different from the previous group, the computer can responsively resume calculation of estimated ink amounts for only the pages classified into the new group, such as by performing the operations described in block 306 for the new group.

[0064] Other conditions may similarly cause the computer to resume ink usage estimation. In some embodiments, the computer may be configured, for example, to: after suspending calculation of estimated ink amounts for pages classified into at least a subset of the plurality of groups, periodically resume calculation of estimated ink amounts for pages classified into at least a subset of the plurality of groups at predetermined intervals. Various predetermined intervals may be employed in such embodiments. For example, the computer may be configured to resume ink usage estimation every x pages (x is an integer greater than zero) and continue ink usage estimation for at least one of a predetermined period and a predetermined number of pages. The predetermined interval may be selected based on various factors, such as the total number of pages in a print job (e.g., resuming estimation every 10,000 pages for a 1 million page print job). As a more specific example, the computer may periodically resume ink usage estimation for 100 pages out of every 10,000 pages before again suspending ink usage estimation until the next 10,000 page mark.

[0065] Periodically restarting ink usage estimation in this manner can be a preventative measure to help the computer detect situations in which the average ink usage of at least one group has fluctuated. In situations in which the computer detects that the average ink usage of a particular group has deviated by more than a threshold value from the average ink usage of that group at the time a set of predetermined conditions was met, the computer can be configured to restart both page classification and ink usage estimation (i.e., the operations described with respect to blocks 304 and 306) until the set of predetermined conditions is again met or a different set of predetermined conditions is met.

[0066] 3, block 312 of method 300 includes calculating, by the computer, for each of the plurality of groups, an estimated total amount of ink required to print the plurality of pages of the group based on the estimated average ink amount for the group and the number of pages in the group. As used herein, the term "print job" encompasses how many copies of pages of a document are requested, so the term "number of pages in a group" means how many pages there are in the group multiplied by how many copies are requested.

[0067] Block 314 of method 300 includes transmitting, by the computer, to the client terminal an estimated total amount of ink required to print the print job, the estimated total amount of ink being based on the estimated total amounts of ink for the plurality of groups. For example, the estimated total amount of ink for the print job may be displayed on a display device of the computer or transmitted to a client terminal remote from the computer.

[0068] In some embodiments, the computer may determine a cost associated with an estimated total amount of ink required to print the print job and communicate the cost to the client terminal, for example, the cost may be displayed on a display device of the computer or transmitted to a client terminal remote from the computer.

[0069] In some embodiments, the computer can continue classifying the pages of the print job into multiple groups until all pages of the print job have been classified into multiple groups. In other embodiments, the computer can be configured to track variability in how many pages are in each group and use this variability as an additional or alternative criterion for determining when to stop classifying, such as when the distribution of classifications has stabilized. To facilitate this, while classifying the pages of the print job into multiple groups, the computer can (i) calculate a composition ratio (percentage distribution) for each of the multiple groups, including the percentage of pages of the print job that were classified into that group, and (ii) determine that the composition ratio satisfies a second set of predetermined conditions. In response to determining that the composition ratio satisfies the second set of predetermined conditions, the computer can discontinue classifying the pages of the print job. The second set of predetermined conditions can include one or more conditions, such as a condition that the standard deviation of the composition ratio is less than a predetermined distribution deviation threshold (and possibly a condition that the composition ratio remains less than the threshold for a threshold time period). For example, the composition of a print job may initially consist of approximately 30% of pages in group A, 20% of pages in group B, and 50% of pages in group C, but over time, each percentage may revert to the mean, at which point the computer can discontinue classification. Furthermore, after discontinuing classification of the pages of a print job, the computer can periodically resume classification of the pages of the print job at predetermined intervals. The predetermined intervals may be the same as or different from the predetermined intervals selected for use in determining when to resume both page classification and ink usage estimation, as described above. In embodiments in which composition ratios are determined, the act of calculating, for each of the multiple groups, an estimated total amount of ink required to print the pages in the group can similarly be performed based at least in part on the composition ratio.

[0070] The accelerated ink usage estimation process described above can be used to improve the accuracy of ink usage estimates and to provide such accurate ink usage estimates in less time than existing estimation systems, resulting in more accurate and timely cost estimates provided to customers. Furthermore, the process can be used to generate ink usage estimates for more than a portion of a print job without sacrificing performance or efficiency, further improving upon existing estimation systems that estimate ink usage using only a small portion of a print job.

[0071] While the accelerated ink usage estimation process described above with respect to method 300 involves classifying pages of a print job into groups, it should be understood that method 300 can also process all pages as part of a single group into which all pages of a print job are classified by default, instead of classifying pages into groups. In such an embodiment, the other operations described above with respect to the accelerated ink usage estimation process can occur as described above with respect to that single group. B. Adaptive Ink Usage Estimation

[0072] 4 is a flowchart of a method according to at least some example embodiments. Method 400 represents a method for estimating ink usage by a printer, and is referred to herein as a method for "adaptive ink usage estimation." Method 400 can be performed by a computing device, such as estimation system 102 or controller 152 of printing system 150. As discussed above, method 400 for adaptive ink usage estimation can be used by itself or in combination with method 300 for accelerated ink usage estimation.

[0073] Block 402 of method 400 involves receiving, by a computer, a request for a print job to be executed by a printer, the print job comprising multiple pages to be printed.

[0074] Block 404 of method 400 includes traversing, by a computer, a plurality of pages of a print job and calculating, for each page of the print job, an estimated amount of ink required to print that page, starting with a first page selected from the plurality of pages of the print job.

[0075] In some embodiments, the first page is the page specified in the request as the sequentially first page of the print job (e.g., the first page of the document to be printed), and the computer begins traversing the pages starting from this page. In another embodiment, the computer can generate a random set of pages and use those pages to estimate ink usage. That is, before traversing the pages of the print job, the computer can select a random set of pages of the print job and designate one of the pages as the "first page." For example, the computer may randomly select the first page, or it can sequentially select the first page of the random set (e.g., if the random set of pages includes page 11, page 17, page 50, and page 101, the first page can be page 11). In this alternative embodiment, the act of traversing the pages of the print job and calculating, for each page of the print job, the estimated amount of ink required to print that page can include traversing the random set of pages of the print job and calculating, for each page of the random set of pages of the print job, the estimated amount of ink required to print that page.

[0076] Referring again to FIG. 4 , block 406 of method 400 includes, while traversing a plurality of pages of the print job and calculating, for each page of the print job, an estimated amount of ink required to print that page, the computer, at a first predetermined interval of a plurality of predetermined intervals, calculating a first snapshot of the estimated average amount of ink required to print the traversed plurality of pages; and, at each of a plurality of predetermined intervals subsequent to the first predetermined interval, until a predetermined ink usage condition is met, (i) the computer calculates an updated snapshot of the estimated average amount of ink required to print the traversed plurality of pages, and (ii) the computer compares the updated snapshot with a previous snapshot. The predetermined ink usage condition is related to the output of the comparison between the updated snapshot and the previous snapshot. In this manner, as the estimated average ink usage is updated, the computer can compare the estimate with one or more previous estimates to evaluate the difference therebetween and determine whether additional ink usage estimates would be beneficial to improve the accuracy of the ink usage estimate.

[0077] In some examples, the predetermined ink usage condition may be or include a condition that the difference between the updated snapshot and the previous snapshot is less than a predetermined ink usage change threshold.

[0078] In another example, at predetermined intervals and as part of the snapshots, the computer can calculate the standard deviation of the estimated ink amount for printing a number of previously traversed pages, and the predetermined ink usage condition can be or include a condition that the overall standard deviation of the snapshots is less than a predetermined deviation threshold, or that the overall standard deviation of the snapshots remains less than a predetermined deviation threshold over a predetermined number of traversed pages. For example, consider a situation where a particular snapshot is calculated and its overall standard deviation is 5.48, and then the ink usage of the next four pages is estimated to be 13, 10, 9, and 12, after which another snapshot is taken and its standard deviation is 1.58, for an overall standard deviation of 4.83. If the predetermined deviation threshold is 5, then the predetermined ink usage condition will be met.

[0079] In another example, the predetermined ink usage condition may be or include a condition that the difference between the updated snapshot and the previous snapshot remains less than a predetermined ink usage change threshold (e.g., the same predetermined ink usage change threshold as the condition described above, or a different change threshold) over a predetermined number of traversed pages. Other exemplary conditions are similarly possible, including the conditions described above with respect to method 300 (e.g., the standard deviation of a plurality of standard deviations is less than a second predetermined deviation threshold), which may also be applied in the context of method 400.

[0080] The actions of block 406 involve the computer taking snapshots of average ink usage at particular intervals, examples of which are described in more detail below.

[0081] In one example of a predetermined interval, the computer may calculate a first snapshot after n pages are traversed, and then every n pages, the computer may calculate an update snapshot and compare the update snapshot to a predecessor snapshot. The value of n may be an integer, such as 10, 50, and 100. In some embodiments, the update snapshot may be compared only to the most recent predecessor snapshot. In other embodiments, the update snapshot may be compared to one or more predecessor snapshots calculated within a predetermined window of pages (e.g., within the last M pages, where M is an integer, from the calculation of the update snapshot). In yet other embodiments, the update snapshot may be compared to one or more predecessor snapshots calculated within a predetermined window of snapshots (e.g., within the last P snapshots, where P is an integer, from the calculation of the update snapshot). For example, if P=5, the update snapshot may be compared to the last 5 snapshots, even if there are 20 snapshots in total.

[0082] In some embodiments, the computer can be configured to select n based on manual usage input or automatically based on other factors such as the size of the print job. For example, if the print job has a total page count of more than 1 million pages, the computer can select the value of n according to mapping data that maps print jobs over 1 million pages to n=100.

[0083] In some embodiments, the value of n can remain the same throughout the ink usage estimation process. However, in other embodiments, the value of n can change during the process. For example, the computer can dynamically determine n based on how the estimated average ink usage is changing over time. As a more specific example, the value of n can be increased when the difference in estimated average ink usage stabilizes.

[0084] To facilitate this, while traversing the pages of the print job and calculating for each page of the print job the estimated amount of ink required to print that page, the computer can dynamically determine n based on a subset of calculated snapshots from a predetermined sliding window of pages. In other embodiments, the computer can dynamically determine n based on a subset of calculated snapshots from a predetermined sliding window of snapshots. For example, if P=5, even if there are 20 total snapshots, it may be possible to determine when to stop estimating ink usage using only the last 5 snapshots.

[0085] In one example, the computer can be configured to increase n (thus skipping more pages and making fewer estimates) if the estimated average amount of ink from the subset increases (e.g., increases above a volume threshold), and to decrease n (thus skipping fewer pages and making more estimates) if the estimated average amount of ink from the subset decreases (e.g., decreases below a volume threshold). To facilitate this, for example, the computer can store mapping data that maps values ​​of n to corresponding values ​​that increase the estimated average amount of ink from the subset and corresponding values ​​that decrease the estimated average amount of ink from the subset, and select n based on a determination of how the estimated average amount of ink from the subset is increasing or decreasing.

[0086] In another example, the computer can be configured to increase n if the standard deviation of the estimated average ink volume from the subset decreases (e.g., below a first predetermined standard deviation threshold) and to decrease n if the standard deviation of the estimated average ink volume from the subset increases (e.g., above a second predetermined standard deviation threshold). To facilitate this, for example, the computer can store mapping data that associates values ​​of n with corresponding standard deviation values ​​and select n based on the determination of the standard deviation. Other exemplary methods for determining n can be employed as well.

[0087] In another example of a predetermined interval related to block 406, the computer may calculate a first snapshot m seconds after traversing the first page, and every m seconds thereafter, the computer may calculate an updated snapshot and compare the updated snapshot to a predecessor snapshot. The value of m may be an integer, such as 2, 30, and 70. In some embodiments, the updated snapshot may be compared only to the most recent predecessor snapshot. In other embodiments, the updated snapshot may be compared to one or more predecessor snapshots calculated within a predetermined window of time (e.g., within the last 5 minutes since the updated snapshot was calculated).

[0088] In some embodiments, the computer can be configured to select m based on manual usage input or automatically based on other factors such as the size of the print job. For example, if the print job has a total page count of more than 1 million pages, the computer can select a value for m according to mapping data that maps print jobs over 1 million pages to m=70.

[0089] In some embodiments, the value of m can remain the same throughout the ink usage estimation process, but in other embodiments, the value of m can change during the process. For example, the computer can dynamically determine m based on how the estimated average ink usage is changing over time.

[0090] To facilitate this, while traversing multiple pages of a print job and calculating, for each page of the print job, an estimated amount of ink required to print that page, the computer can dynamically determine m based on a subset of calculated snapshots from a predetermined sliding window of pages. In other embodiments, the computer can dynamically determine m based on a subset of calculated snapshots from a predetermined sliding window of snapshots. In yet other embodiments, the computer can dynamically determine m based on a subset of calculated snapshots from a predetermined sliding window of time.

[0091] In one example, the computer can be configured to increase m (and thus calculate the estimate less frequently) if the estimated average amount of ink from the subset increases (e.g., increases above a first amount threshold), and to decrease m (and thus calculate the estimate more frequently) if the estimated average amount of ink from the subset decreases (e.g., decreases below a second amount threshold). To facilitate this, for example, the computer can store mapping data that maps values ​​of m to corresponding values ​​that increase the estimated average amount of ink from the subset and corresponding values ​​that decrease the estimated average amount of ink from the subset, and select m based on a determination of how the estimated average amount of ink from the subset is increasing or decreasing.

[0092] In another example, the computer can be configured to increase m if the standard deviation of the estimated average ink volume from the subset decreases (e.g., below a first predetermined standard deviation threshold) and to decrease m if the standard deviation of the estimated average ink volume from the subset increases (e.g., above a second predetermined standard deviation threshold). To facilitate this, for example, the computer can store mapping data that maps values ​​of m to corresponding standard deviation values ​​and select m based on the determination of the standard deviation. Other exemplary methods for determining m can be employed as well.

[0093] 4, block 408 of method 400 includes, in response to the predetermined ink usage condition being met, calculating, by the computer, an estimated total amount of ink required to print the print job, the estimated total amount of ink required to print the print job based on the updated snapshot and the total number of pages in the print job.

[0094] In some embodiments, in response to the predetermined ink usage condition being met, the computer may also suspend traversing the pages of the print job, calculating the estimated amount of ink required to print the pages of the print job, calculating the updated snapshot, and comparing the updated snapshot with the previous snapshot. The computer may be configured to resume one or more of these operations when a particular condition is met, such as the computer receiving an error code or manual instruction from a user.

[0095] 4, block 410 of method 400 includes communicating, by the computer, to the client terminal the estimated ink amount required to print the print job. For example, the estimated ink amount for the print job may be displayed on a display device of the computer or transmitted to a client terminal remote from the computer.

[0096] In some embodiments, the computer may determine a cost associated with an estimated total amount of ink required to print the print job and communicate the cost to the client terminal, for example, the cost may be displayed on a display device of the computer or transmitted to a client terminal remote from the computer.

[0097] The adaptive ink usage estimation process described above provides a more deterministic way of subsampling jobs when performing ink estimation. Instead of relying on a user or print shop customer to select a reasonable subset of print jobs, a computer can track how the per-page ink usage estimate changes and use that change to determine when enough print jobs have been estimated. This is less complex than existing estimation systems, has less room for user error, and allows for the selection of a desired subset of print jobs (i.e., enough print jobs to facilitate accurate estimation, but not so many print jobs that undesirably consumes computational resources).

[0098] Furthermore, the adaptive ink usage estimation process described above can be used to generate accurate ink usage estimates in less time than existing estimation systems, resulting in more accurate and timely cost estimates provided to customers. Furthermore, this process can be used to generate ink usage estimates for more than a portion of a print job without sacrificing performance or efficiency, further improving upon existing estimation systems that estimate ink usage using only a small portion of a print job. C. Estimation of mixed ink usage

[0099] 5 is a flowchart of a method according to at least some example embodiments. Method 500 depicts a method for estimating ink usage by a printer, particularly when the print job is a mixed print job. Method 500 can be performed by a computing device such as estimation system 102 or controller 152 of printing system 150.

[0100] Block 502 of method 500 involves receiving, by a computer, a request for a mixed print job comprising multiple print jobs to be executed by a printer.

[0101] Block 504 of method 500 includes traversing, by a computer, a plurality of pages of the mixed print job and, for each page of the mixed print job, identifying the print job of the plurality of print jobs to which the page belongs.

[0102] To facilitate this, the computer can select a first page from the plurality of pages of the mixed print job. The first page can be, for example, the page specified in the request as the sequentially first page of the mixed print job. The computer can then identify the first page as belonging to a first print job of the plurality of print jobs and begin traversing the plurality of pages following the first page until the computer identifies a second page of the mixed print job as belonging to a second print job of the plurality of print jobs that is different from the first print job. In contrast to the "first page" mentioned above, and although the second page might happen to be the sequentially second page specified in the request, the term "second page" (and similar terms such as "third page") may refer to the second page being identified as part of this traversal / identification process, rather than referring to the page being sequential with respect to the other pages of the mixed print job.

[0103] In some situations, the print jobs that make up a mixed print job can be interleaved with one another such that the computer switches from job to job as it traverses the pages of the mixed print job. For example, a mixed print job may include 20 jobs, and the computer may be configured to switch between the jobs every 2-3 pages.

[0104] In response to identifying a second page of the mixed print job as belonging to the second print job, the computer may identify pages traversed between the first and second pages as belonging to the first print job. The computer may then continue traversing until it identifies another page (e.g., a third page) as belonging to a new print job (i.e., the "third print job"), and so on until all pages of the mixed print job have been identified as belonging to a particular print job of the mixed print job. For example, the computer may identify page 1 as belonging to print job A, and continue traversing pages up to page 100, which the computer may identify as belonging to print job B, and then continue traversing pages up to page 280, which the computer may identify as belonging to print job C. Thus, the computer may identify pages 1 through 99 as belonging to print job A, pages 100 through 279 as belonging to print job B, and so on.

[0105] As an example of how a computer can distinguish between traversed pages belonging to a new print job and those belonging to a previously identified print job, a single print file representing a mixed print job can contain metadata describing the jobs that make up the mixed job, and this metadata can be referenced to identify the pages that belong to the job (e.g., PDF / vt metadata). Additionally or alternatively, a mixed print job can include a computer-readable barcode, where each job in the mixed job has its own unique barcode. Such a barcode can be, for example, <id>It can have the format <current sheet><total sheets><current record><total records> and can be used to verify that all records are printed and that there are no missing or duplicate sheets within each record. The print jobs that make up a mixed print job can be identified using metadata or barcodes, since the metadata or barcode data contains a unique identifier for each job, even if the pages of the mixed print job are traversed randomly.

[0106] Referring again to FIG. 5, block 506 of method 500 includes, for each of the plurality of print jobs, calculating, by the computer, an estimated total amount of ink required to print the print job.

[0107] In some embodiments, the act of calculating, for each of the plurality of print jobs, an estimated total amount of ink required to print the print job can include calculating, for each of a plurality of pages in each of the plurality of print jobs, an estimated amount of ink required to print the page. The plurality of pages of a given print job can include all pages of the print job or a portion of the pages.

[0108] In some embodiments, the act of calculating, for each of a plurality of print jobs, an estimated total amount of ink required to print the print job can be accomplished using at least one of the accelerated ink usage estimation process described above and the adaptive ink usage estimation process described above.

[0109] 5, block 508 of method 500 includes communicating, by the computer, to the client terminal the estimated total amount of ink required to print the multiple print jobs. For example, the computer can communicate the estimated total amount of ink for each of the multiple print jobs separately to the client terminal (or to multiple separate client terminals, such as client terminals operated by different entities with which the multiple print jobs of a mixed print job are associated).

[0110] In some embodiments, the computer may determine costs associated with the estimated total amount of ink required to print each print job and communicate those costs to one or more client terminals. For example, each cost may be communicated separately to multiple different client terminals remote from the computer, such as client terminals operated by different entities with which multiple print jobs of a mixed print job are associated. As another example, the costs may be displayed simultaneously or asynchronously on a display device of the computer. Other examples are possible as well.

[0111] Given that mixed print jobs can use vastly different amounts of ink, understanding the costs for each individual job in a mixed print job is important to print shops. Method 500 for estimating ink usage in a mixed print job can help ensure that each print job can be accurately and efficiently estimated and priced. This contrasts with existing estimation systems that estimate mixed print jobs as a single job, where low-coverage print jobs may subsidize the cost of high-coverage print jobs. V. Conclusion

[0112] The illustrative embodiments described in the detailed description, figures, and claims are not intended to be limiting. Other embodiments may be utilized and other changes may be made without departing from the spirit or scope of the subject matter presented herein. It will be readily understood that the aspects of the present disclosure, as broadly described and illustrated in the figures herein, can be arranged, substituted, combined, separated, and designed into a wide variety of different configurations, all of which are expressly contemplated herein.

[0113] With respect to any or all of the ladder diagrams, scenarios, and flowcharts shown and discussed herein, each block or transmission may represent the processing of information or the transmission of information according to an example embodiment. Alternative embodiments are within the scope of these example embodiments. In these alternative embodiments, for example, functions described as blocks, transmissions, requests, responses, and / or messages may occur in a different order than shown or discussed, including substantially simultaneously or in reverse order, depending on the functionality involved. Furthermore, more or fewer blocks or functions may be used in any of the ladder diagrams, scenarios, and flowcharts discussed herein, and the ladder diagrams, scenarios, and flowcharts may be combined with each other, either in part or in whole.

[0114] The blocks representing information processing may correspond to circuitry that can be configured to perform specific logical functions of a method or technique. Alternatively or additionally, the blocks representing information processing may correspond to modules, segments, or portions of program code (including associated data). The program code may include one or more instructions executable by a processor to implement specific logical functions or operations of the method or technique. The program code and associated data may be stored on any type of computer-readable medium, such as a storage device including a disk or hard drive or other storage medium.

[0115] The computer-readable medium may include non-transitory computer-readable media, such as computer-readable media that store data for a short period of time, such as register memory, processor cache, or random access memory (RAM). The computer-readable medium may also include non-transitory computer-readable media that store program code or data for a longer period of time, such as secondary or permanent long-term storage, such as read-only memory (ROM), optical or magnetic disk, or compact disk read-only memory (CD-ROM). The computer-readable medium may also be any other volatile or non-volatile storage system. The computer-readable medium may be considered, for example, a computer-readable storage medium or a tangible storage device.

[0116] While various aspects and embodiments have been disclosed herein, other aspects and embodiments will be apparent to those skilled in the art. The various aspects and embodiments disclosed herein are intended to be illustrative and not limiting, with the true scope being indicated by the appended claims.< / id>

Claims

1. 1. A computer-implemented method for estimating ink usage in a printer, comprising: receiving, by a computer, a request for a print job to be executed by said printer; classifying, by a computer, the pages of the print job into a plurality of groups, each group corresponding to an associated page of the print job; For each of the plurality of groups, calculating, by a computer, for each page classified into said groups, an estimated amount of ink required to print said page; and calculating, by a computer, an estimated average amount of ink required to print the plurality of pages of the group based on the estimated amount of ink required to print the plurality of pages of the group; determining, by a computer, that the estimated average ink amount for at least a subset of the plurality of groups satisfies a set of predetermined conditions; suspending, by a computer, calculation of estimated ink volumes for pages classified into at least the subset of the plurality of groups in response to determining that the estimated average ink volumes for the at least the subset of the plurality of groups satisfy the set of predetermined conditions; calculating, by a computer, for each of the plurality of groups, an estimated total amount of ink required to print the plurality of pages of the group based on the estimated average ink amount for the group and the number of pages in the group; transmitting, by a computer, to a client terminal an estimated total amount of ink required to print the print job, the estimated total amount of ink being based on the estimated total amounts of ink for the plurality of groups; continuing, by a computer, to sort the pages of the print job into the plurality of groups in response to determining that the estimated average ink amount for at least a subset of the plurality of groups satisfies the set of predetermined conditions; A method comprising:

2. 2. The method of claim 1, wherein continuing to classify the pages of the print job into the groups comprises continuing to classify the pages of the print job into the groups until all pages of the print job have been classified into the groups.

3. classifying the pages of the print job into the groups includes classifying the pages of the print job into the groups using a rasterization of the pages at a low resolution; 2. The method of claim 1, wherein continuing to classify the pages of the print job into the groups includes continuing to classify the pages of the print job into the groups using the rasterization of the pages at the lower resolution.

4. classifying the pages of the print job into the groups includes classifying the pages of the print job into the groups using a rasterization of the pages at a low resolution; 2. The method of claim 1, wherein continuing to classify the pages of the print job into the groups includes switching from classifying the pages of the print job into the groups using the rasterization of the pages at the low resolution to instead classifying the pages of the print job into the groups using a rasterization of the pages at a resolution higher than the low resolution.

5. 2. The method of claim 1, wherein calculating the estimated amount of ink for each of the grouped pages comprises calculating the estimated amount of ink for each of the grouped pages based on a rasterization of the page at a high resolution.

6. while sorting the pages of the print job into the groups; calculating, by a computer, a composition ratio for each of the plurality of groups, the composition ratio including a percentage of the pages of the print job that are classified into the group; and determining, by a computer, that the composition ratio satisfies a second set of predetermined conditions; and interrupting, by a computer, sorting of the plurality of pages of the print job in response to determining that the composition ratio satisfies the second set of predetermined conditions; calculating, for each of the plurality of groups, the estimated total amount of ink required to print the plurality of pages of the group, further based on the composition ratio; The method of claim 1.

7. after suspending the classification of the plurality of pages of the print job, periodically resuming, by the computer, the classification of the plurality of pages of the print job at predetermined intervals; The method of claim 6 further comprising:

8. after suspending the calculation of the estimated ink amounts for the pages classified into at least the subset of the plurality of groups, periodically resuming, by the computer, the calculation of the estimated ink amounts for the pages classified into at least the subset of the plurality of groups at predetermined intervals; The method of claim 1 further comprising:

9. determining, by the computer, after suspending calculation of estimated ink amounts for pages classified into at least the subset of the plurality of groups, that at least one page has been classified into a new group different from a previous group; In response to determining that the at least one page has been classified into the new group that is different from the previous group, restarting, by the computer, calculation of the estimated ink amount for only the pages classified into the new group; The method of claim 1 further comprising:

10. 2. The method of claim 1, wherein the set of predetermined conditions includes a condition that the standard deviation of the estimated average ink amount per page for each group of the at least a subset of the plurality of groups remains less than a predetermined deviation threshold over a predetermined number of pages sorted by a computer.

11. 2. The method of claim 1, wherein the set of predetermined conditions includes a condition that the standard deviation of the estimated average ink amount per page for each group of the at least a subset of the plurality of groups remains less than a predetermined deviation threshold over a predetermined number of computer-acquired snapshots of the estimated average ink amount per page for that group.

12. 2. The method of claim 1, wherein the set of predetermined conditions includes a condition that the standard deviation of the estimated average ink amount per page for each group of the at least a subset of the plurality of groups is less than a predetermined deviation threshold for more than a predetermined duration.

13. determining, by a computer, a cost associated with the estimated total amount of ink required to print the print job; communicating, by a computer, to the client terminal, the cost associated with the estimated total amount of ink required to print the print job; The method of claim 1 further comprising:

14. a memory for storing instruction codes; a processor in communication with the memory; The processor is capable of executing the instruction code, receiving a request for a print job to be executed by the printer; classifying the pages of the print job into a plurality of groups, each group corresponding to an associated page of the print job; For each of the plurality of groups, For each page classified into said group, calculating an estimated amount of ink required to print the page; and calculating an estimated average amount of ink required to print the plurality of pages of the group based on the estimated amount of ink required to print the plurality of pages of the group; determining that the estimated average ink amount for at least a subset of the plurality of groups satisfies a set of predetermined conditions; suspending calculation of estimated ink volumes for pages classified into at least the subset of the plurality of groups in response to determining that the estimated average ink volumes for the at least the subset of the plurality of groups satisfy the set of predetermined conditions; calculating, for each of the plurality of groups, an estimated total amount of ink required to print the plurality of pages of the group based on the estimated average ink amount of the group and the number of pages in the group; transmitting to a client terminal an estimated total amount of ink required to print the print job, the estimated total amount of ink being based on the estimated total amounts of ink for the plurality of groups; continuing to sort the pages of the print job into the plurality of groups in response to determining that the estimated average ink amount for at least the subset of the plurality of groups satisfies the set of predetermined conditions; A system that performs an operation including:

15. 15. The system of claim 14, wherein continuing to classify the pages of the print job into the plurality of groups comprises continuing to classify the pages of the print job into the plurality of groups until all pages of the print job have been classified into the plurality of groups.

16. classifying the pages of the print job into the groups includes classifying the pages of the print job into the groups using a rasterization of the pages at a low resolution; 15. The system of claim 14, wherein continuing to classify the pages of the print job into the groups includes continuing to classify the pages of the print job into the groups using the rasterization of the pages at the lower resolution.

17. classifying the pages of the print job into the groups includes classifying the pages of the print job into the groups using a rasterization of the pages at a low resolution; 15. The system of claim 14, wherein continuing to classify the pages of the print job into the groups includes switching from classifying the pages of the print job into the groups using the rasterization of the pages at the low resolution to instead classifying the pages of the print job into the groups using a rasterization of the pages at a resolution higher than the low resolution.

18. 1. An article of manufacture comprising non-transitory data storage storing at least computer-readable instructions, the computer-readable instructions being executable by one or more processors of a computer to cause the computer to: receiving a request for a print job to be executed by the printer; classifying the pages of the print job into a plurality of groups, each group corresponding to an associated page of the print job; For each of the plurality of groups, For each page classified into said group, calculating an estimated amount of ink required to print the page; and calculating an estimated average amount of ink required to print the plurality of pages of the group based on the estimated amount of ink required to print the plurality of pages of the group; determining that the estimated average ink amount for at least a subset of the plurality of groups satisfies a set of predetermined conditions; suspending calculation of estimated ink volumes for pages classified into at least the subset of the plurality of groups in response to determining that the estimated average ink volumes for the at least the subset of the plurality of groups satisfy the set of predetermined conditions; calculating, for each of the plurality of groups, an estimated total amount of ink required to print the plurality of pages of the group based on the estimated average ink amount of the group and the number of pages in the group; transmitting to a client terminal an estimated total amount of ink required to print the print job, the estimated total amount of ink being based on the estimated total amounts of ink for the plurality of groups; continuing to sort the pages of the print job into the plurality of groups in response to determining that the estimated average ink amount for at least the subset of the plurality of groups satisfies the set of predetermined conditions; A product that performs an action, including:

Citation Information

Patent Citations

  • Liquid delivering method, liquid delivering apparatus and program

    JP2008155422A

  • Image forming apparatus

    JP2010145864A

  • Image forming apparatus and image forming method

    JP2019179115A