Image processor that generates image data used in printing

In an image processor, a controller is configured to perform: acquiring target image data representing a target image including a first object and a second object; selecting one of a first printing quality and a second printing quality, printing the target image with the second printing quality consuming more colorant than printing the target image with the first printing quality; setting, in a case where the second printing quality is selected, a first scale factor indicating a ratio of a size of a reduced first object to a first object size and a second scale factor indicating a ratio of a size of a reduced second object and a second object size; generating processed image data representing a processed image including the size-reduced first object and the size-reduced second object; and controlling a print executing unit to print the processed image according to the processed image data.

CROSS REFERENCE TO RELATED APPLICATION

This application claims priority from Japanese Patent Application No. 2014-237934 filed Nov. 25, 2014. The entire content of the priority application is incorporated herein by reference.

TECHNICAL FIELD

The present disclosure relates to an image process for generating image data used in printing.

BACKGROUND

There are various technologies known in the art for reducing the amount of colorant consumed in a printing operation. For example, there are known techniques in image processing for generating image data used in printing that corrects the colors of the image in order to reduce the amount of colorant expended during the printing process (see Japanese Patent Application Publication No. 2011-69864, for example).

SUMMARY

However, when the colors of the image are corrected according to the above technique, the quality of the image following correction may be worse than the quality prior to correction, resulting in an image quality that may not be satisfactory to the user.

Therefore, it is an object of the disclosure to provide a new technique for processing an image to be printed that can reduce the amount of colorant expended in the printing operation while suppressing a decline in the quality of the printed image.

In order to attain the above and other objects, the disclosure provides an image processor that includes a controller. The controller is configured to perform: acquiring target image data representing a target image, the target image including a plurality of objects, the plurality of objects including a first object having a first object size and a second object having a second object size; selecting one of a first printing quality and a second printing quality, printing the target image with the second printing quality consuming more colorant than printing the target image with the first printing quality; controlling, in a case where the first printing quality is selected, a print executing unit to print the target image according to the target image data; setting, in a case where the second printing quality is selected, a scale factor for each of the plurality of objects, the scale factor being a ratio at which the each of the plurality of objects is reduced in size, a first scale factor indicating a ratio of a size of a reduced first object to the first object size, a second scale factor indicating a ratio of a size of a reduced second object to the second object size; generating, in a case where the second printing quality is selected, processed image data representing a processed image, the processed image including the size-reduced first object and the size-reduced second object; and controlling the print executing unit to print the processed image according to the processed image data.

According to another aspect, the disclosure provides a non-transitory computer readable storage medium storing a printer driver executable by an image processor. The printer driver causes the image processor to perform: acquiring target image data representing a target image, the target image including a plurality of objects, the plurality of objects including a first object having a first object size and a second object having a second object size; selecting one of a first printing quality and a second printing quality, printing the target image with the second printing quality consuming more colorant than printing the target image with the first printing quality; controlling, in a case where the first printing quality is selected, a print executing unit to print the target image according to the target image data; setting, in a case where the second printing quality is selected, a scale factor for each of the plurality of objects, the scale factor being a ratio at which the each of the plurality of objects is reduced in size, a first scale factor indicating a ratio of a size of a reduced first object to the first object size, a second scale factor indicating a ratio of a size of a reduced second object to the second object size; generating, in a case where the second printing quality is selected, processed image data representing a processed image, the processed image including the size-reduced first object and the size-reduced second object; and controlling the print executing unit to print the processed image according to the processed image data.

DETAILED DESCRIPTION

A-1. Structure of an Image Processor

FIG. 1is a block diagram showing the structure of a computer200serving as an image processor in the embodiment. The computer200may be a personal computer, for example, and includes a CPU210serving as the controller of the computer200; a volatile storage device220configured of RAM or the like; a nonvolatile storage device230configured of a hard disk drive or the like; an operating unit260configured of a mouse, keyboard, and the like; a display unit270configured of a liquid crystal display or the like; and a communication unit280. The computer200can be connected to and communicate with an external device, such as a printer300, via the communication unit280.

The volatile storage device220is provided with a buffer region222for temporarily storing various intermediate data generated when the CPU210performs processes. The nonvolatile storage device230stores a computer program232. In the present embodiment, the computer program232is a printer drive program for controlling the printer300. The program may be provided on a CD-ROM or other media, or may be made available for download from a server. By executing the computer program232, the CPU210functions as an image process unit100that executes a printing process described later.

The printer300is a color laser printer that prints images on paper using toner in the four colors cyan, magenta, yellow, and black (C, M, Y, and K).

A-2. Printing Process

The CPU210of the computer200(i.e., the image process unit100) can perform the function of a printer driver by executing a printing process. In the printing process, the CPU210controls the printer300, serving as the print execution unit, to print an image based on image data.

In the present embodiment, the CPU210can accept settings related to printing from a user prior to the execution of printing processes, including settings that specify a printing mode. In subsequent printing processes, the CPU210operates in the printing modes set based on the user specifications, as will be described later. The computer200in the present embodiment offers mode selections related to image quality and mode selections related to toner use. Specifically, the user can select from between a normal quality mode and a fine quality mode. In the fine quality mode, printing is performed at a higher image quality than in the normal quality mode to produce more vivid colors than the colors produced in the normal quality mode. When the fine quality mode has been selected, the user can further select between a normal toner mode and a toner-saving mode as the toner user selections. In the toner-saving mode, printing is performed using less toner than in the normal toner mode.

FIG. 2is a flowchart illustrating steps in the printing process of the present embodiment. The CPU210initiates the printing process upon receiving a print command from the user. The print command may be issued via a user interface window (UI window; not shown) displayed by an application program for creating text documents or drawings, for example.

In S10ofFIG. 2, the CPU210acquires target image data representing an image that the user wishes to print. More specifically, the CPU210acquires target image data representing an image created using the application program. The target image data describes the target image using a method provided by the operating system (hereinafter abbreviated as “OS”) of the computer200. For example, if the OS is Microsoft Windows® (Windows is a registered trademark of Microsoft Corporation), the descriptive method of the target image data conforms to the Graphics Device Interface (GDI) specifications in Windows®. Alternatively, the target image data may be described using a page description language, such as the printer control language (PCL) or PostScript.

FIG. 3shows a sample target image represented by target image data. The target image OI inFIG. 3includes such objects as a computer graphic Ob1(hereinafter simply called a “graphic”) such as a line drawing, a photo Ob2, and text Ob3and Ob4. The target image data representing the target image OI includes a plurality of drawing commands defining the plurality of objects Ob1-Ob4.

The drawing commands for the graphic Ob1, photo Ob2, and text Ob3and Ob4include data required for drawing each of these objects. For example, the drawing command for the graphic Ob1includes vectors specifying lines, figures, etc.: data defining attributes of the lines, figures, etc., such as their categories, colors, and sizes; and coordinate data specifying layout positions. The drawing command for the photo Ob2includes raster data, such as image data in the JPEG format; data defining attributes of the photo, such as its size and color space; and coordinate data specifying layout positions. Drawing commands for the text Ob3and Ob4include character codes; data defining attributes of the characters, such as the font type, color, and size; and coordinate data specifying layout positions.

In S15the CPU210determines whether the printing mode for image quality preset by the user indicated the fine quality mode or the normal quality mode. If the printing mode for image quality is set to the fine quality mode (S15: YES), in S20the CPU210selects a color profile used for the fine quality mode and advances to S30. However, if the printing mode for image quality is set to the normal quality mode (S15: NO), in S25the CPU210selects a color profile designed for the normal quality mode and advances to S35. Here, the color profile is data defining correlations between color values of one prescribed color space and color values of a color space that includes color components corresponding to the ink colors used by the printer300. The color profile is used in a color conversion process described later. In the present embodiment, the color profile is a look-up table defining correlations between color values in the RGB color space (hereinafter called “RGB values”) and color values in the CMYK color space (hereinafter called “CMYK values”). In the present embodiment, each component value included in the RGB values and each component value included in the CMYK values is a gradation value having one of 256 levels. When using the color profile for the fine quality mode, chromatic colors in the printed image are rendered more vividly than when using the color profile for the normal quality mode. Consequently, a greater quantity of toner is consumed when using the color profile for the fine quality mode than when using the color profile for the normal quality mode.

In S30the CPU210determines whether the mode related to toner use has been set to the normal toner mode or the toner-saving mode. If the mode for toner use has been set to the toner-saving mode (S30: YES), the CPU210advances to S50. However, if the mode for toner use has been set to the normal toner mode (S30: NO), the CPU210advances to S35.

In S35-S45the CPU210executes a process for generating print data that does not restrict the quantity of toner used. In S35the CPU210sets the scale factor for each object to 100%. Here, the scale factor of an object is the ratio at which the object is reduced in size during a rasterization process described later and indicates the ratio of the object size after reduction to the object size prior to reduction. When printing in the normal quality mode and when printing in the fine quality mode and the normal toner mode, the scale factor for objects is set to 100%. Accordingly, the size of each object as defined by the target image data is not reduced in the rasterization process described later.

In S40the CPU210executes the rasterization process. The rasterization process is performed to generate bitmap data from the target image data. In the present embodiment, bitmap data is RGB image data expressing the color for each pixel in RGB values, for example.

FIG. 4is a flowchart illustrating steps in the rasterization process. In S100ofFIG. 4, the CPU210loads initial image data into the buffer region222that represents an initial image. The initial image is an RGB image of the same size as the image to be generated with RGB values for each pixel set to initial values (values representing white, for example). In S110the CPU210obtains one drawing command from the one or more drawing commands included in the target image data. In S120the CPU210draws the object specified by the drawing command in the initial image at a size reduced from the specified size by the previously set scale factor. Since the scale factor was set to 100% in S35ofFIG. 3when executing the rasterization process in S40ofFIG. 3, the object is not reduced in size but is drawn in the initial image at the same size specified in the drawing command (i.e., the size specified in the target image data). Step S130is depicted with a dashed line because this process is omitted when executing the rasterization process in S40ofFIG. 2. The process of S130will be described later.

In S140the CPU210determines whether there remain any unprocessed drawing commands. When unprocessed drawing commands remain (S140: YES), the CPU210returns to S110and acquires one of the remaining unprocessed drawing commands. When all drawing commands have been processed (S140: NO), the CPU210ends the rasterization process.

In S45ofFIG. 2, the CPU210executes a color conversion process and a halftone process to generate print data. Specifically, the CPU performs a color conversion process using the color profile selected in either S20or S25to convert the RGB image data to CMYK image data representing the color of each pixel in CMYK values. Subsequently, in the halftone process the CPU210generates print data from the CMYK image data that specifies the dot formation state (whether or not a dot is formed, in the present embodiment) for each of the CMYK components of each pixel. The CPU210uses a well-known technique in the halftone process, such as a dithering method or error diffusion method. The printed image rendered by the print data generated in S45is an image representing the unaltered target image OI, i.e., an image that includes the objects Ob1-Ob4at their sizes specified in the target image data.

When the user has selected the fine quality mode and the toner-saving mode, in S50the CPU210executes a process for generating print data that restricts the quantity of toner used. Hereinafter, this process will be called the toner-saving print data generating process and will be described later in greater detail. The print data generated according to the process in S50differs from the data generated in the process described in S35-S45that generates print data without restricting the quantity of toner used.

Once the print data has been generated, in S55the CPU210creates a print job by adding various print commands to the print data. In S60the CPU210transmits the print job to the printer300. The printer300then prints images on paper according to the print job received from the computer200.

A-3. Toner-Saving Print Data Generating Process

FIGS. 5 and 6are flowcharts illustrating steps in the toner-saving print data generating process. In this process, the CPU210generates print data representing a processed image that includes a plurality of reduced objects. The CPU210generates the print data by reducing the size of each object in the target image OI (see the example inFIG. 3) from its size specified in the target image data at the scale factor set for the corresponding object.

In S300ofFIG. 5, the CPU210sets the scale factor for each object to 100%. In S305the CPU210executes the rasterization process ofFIG. 4described above. Note that step S130ofFIG. 4is also not executed during the rasterization process of S305. Through steps S300and S305, the CPU210generates the same RGB image data that would be produced when operating in the normal quality mode and normal toner mode, i.e., RGB image data representing an image that includes the objects Ob1-Ob4at the size specified in the target image data.

In S310the CPU210selects the color profile for the normal quality mode. In S315the CPU210executes the color conversion process and halftone process to generate print data. That is, the CPU210executes a color conversion process on the RGB image data generated in S305using the color profile for the normal quality mode in order to generate CMYK image data. Next, the CPU210executes a halftone process on the CMYK image data to generate print data. Through this process, the CPU210generates the same print data that would be produced when the quality-related mode is set to the normal quality mode.

In S320the CPU210uses the print data generated in S315to calculate a dot number Dorg indicating the total number of dots that will be formed on paper when printing an image based on the print data. The dot number Dorg is the sum of dots formed in each of the CMYK toner colors. The dot number Dorg can be called an index for the quantity of toner consumed when an image including objects at the size specified in the target image data is printed in the normal quality mode.

In S325the CPU210selects the color profile for the fine quality mode. In S330the CPU210executes the color conversion process and halftone process to generate print data. That is, the CPU210executes a color conversion process on the RGB image data generated in S305using the color profile for the fine quality mode in order to generate CMYK image data. Next, the CPU210executes a halftone process on the CMYK image data to generate print data. Through this process, the CPU210generates the same print data that would be produced when the quality-related mode is set to the fine quality mode and the toner-consumption-related mode is set to the normal toner mode.

In S335the CPU210uses the print data generated in S330to calculate a dot number Dvvd indicating the total number of dots to be formed on paper when printing an image based on this print data. The dot number Dvvd can be called an index for the quantity of toner consumed when printing an image that includes objects of the size specified by the target image data in the fine quality mode.

In S340the CPU210calculates the difference between the dot number Dvvd calculated in S335and the dot number Dorg calculated in S320(Dvvd−Dorg). Since the dot number Dvvd is greater than the dot number Dorg, the difference (Dvvd−Dorg) is a positive value. The difference (Dvvd−Dorg) denotes the quantity of increase in dot number when printing in the fine quality mode instead of the normal quality mode without reducing the size of objects from the sizes specified in the target image data.

In S345the CPU210sets a scale factor for each object in the target image OI based on this difference (Dvvd−Dorg). Specifically, the CPU210first converts the difference (Dvvd−Dorg) denoting the quantitative increase in dot number to a percentage of dot increase TR (TR=(Dvvd−Dorg)/Dorg). The percentage of dot increase TR differs according to the characteristic differences between the color profile for the normal quality mode and the color profile for the fine quality mode and according to the target image data, but is a value between a few percent and ten percent in the present embodiment. The CPU210references a table TB defining the relationship between percentage of dot increase TR and scale factor to set the scale factor for each object in the target image OI. The table TB is embedded in the computer program232in advance.

FIG. 7is a graph showing the relationship between percentage of dot increase TR and scale factor as defined in the table TB. InFIG. 7, the dashed line PC denotes the relationship between percentage of dot increase TR and scale factor when the object is a photo. Similarly, the solid line GR and the chain line TX denote the relationships between percentage of dot increase TR and scale factor when the object is a graph and when the object is text, respectively.

As shown inFIG. 7, the scale factor is set to a smaller value for a larger percentage of dot increase TR for all categories of objects. That is, the degree to which an object is reduced in size is greater for a larger percentage of dot increase TR because there is a greater need to reduce the size of an object and to decrease its number of dots when the percentage of dot increase TR is larger. However, the scale factor has a lower limit (95% in the present embodiment) and, hence, cannot be set to a value smaller than the lower limit. Here, the lower limit of the scale factor is set to a value at which an observer would not notice that the printed object has been reduced in size at a glance.

As can be seen fromFIG. 7, the scale factor is set to a different value depending on the category of object in the present embodiment. More specifically, the scale factor for a photo is set to a smaller value than the scale factor for a graphic. However, the scale factors for both are identical when set to their lower limits. Similarly, the scale factor for a photo is set to a smaller value than the scale factor for text, and the scale factor for a graphic is set to a smaller value than the scale factor for text. Thus, if the target image data representing the target image OI in the example ofFIG. 3is being processed, it is clear from the above description that a scale factor R2for the photo Ob2, a scale factor R1for the graphic Ob1, and a scale factor R3for the text Ob3and Ob4are set to values of decreasing order (R2≦R1≦R3).

In this way, it is possible to reduce the number of dots (quantity of toner used) more efficiently by setting a different scale factor for each category of object than when reducing the size of the overall target image, i.e., than when reducing all objects at the same scale factor. To describe this in greater detail, let us define an object density as the ratio of a surface area S2for regions occupied by pixels constituting the object (i.e., regions in which dots are to be formed when printing) to a surface area S1of a region occupied by the entire object (for example, the region of a minimum bounding rectangle of the entire object) (S2/S1). In general, the object density is in decreasing order for photos, graphics, and text. When an object is reduced in size, a ratio DR at which the number of dots decreases is determined by the scale factor used for reduction. Accordingly, if the scale factor for reduction is kept the same, the decrease in number of dots represented by the product of the ratio DR and the total number of dots prior to reduction is greater when the total number of dots prior to reduction is larger, i.e., when the surface area S2for the region occupied by pixels constituting the object is greater. Therefore, if the scale factor used for reduction is kept the same, the decrease in the number of dots per unit area is greater when the object density is higher. From this description, it is clear that the number of dots can be reduced more efficiently when the scale factor for objects having a high object density (photos, for example) is smaller than the scale factor for objects having a low object density (text, for example).

In S350ofFIG. 5, the CPU210executes the rasterization process ofFIG. 4. When performing the rasterization process in S350, step S130ofFIG. 4is also executed. In S130the CPU210calculates the layout area S for the object drawn in S120. The layout area S is the surface area for the region in the minimum bounding rectangle of the object, for example. By performing this rasterization process in S350, the CPU210generates RGB image data representing an image that includes objects reduced in size at a scale factor differing according to the category of object set in S345.

In S355the CPU210executes the color conversion process and halftone process described above using the RGB image data just generated. Here, the color profile for the fine quality mode is used in the color conversion process. Consequently, the CPU210generates print data representing an image that includes objects reduced at different scale factors depending on the category of object.

In S360the CPU210uses the print data generated in S355to calculate a dot number Dnew indicating the total number of dots to be formed on paper when an image is printed based on the print data. The dot number Dnew can be called an index for the quantity of toner to be consumed when an image that includes objects reduced in size at different scale factors depending on the category of object from the sizes specified in the target image data is printed in the fine quality mode.

In S365ofFIG. 6, the CPU210calculates the difference between the dot number Dnew calculated in S360and the dot number Dorg calculated in S320(Dnew−Dorg). The difference (Dnew−Dorg) denotes the amount that the number of dots will increase when objects are reduced from their sizes specified in the target image data and printed in the fine quality mode compared to when the objects are printed in the normal quality mode.

In S368the CPU210sets a target value THt for the increase in dots. Here, the CPU210sets the target value THt to the product of the difference (Dvvd−Dorg) calculated in S340and a prescribed coefficient K (THt=K×(Dvvd−Dorg)). The coefficient K is preset to a value in the range 0-0.5, and specifically 0.3 in the present embodiment. Put another way, the target value THt is set to a value that prevents the number of dots from increasing more than 30% the increase in dots that occurs when the objects are not reduced from their sizes specified in the target image data.

In S370the CPU210determines whether the difference (Dnew−Dorg) is less than or equal to the target value THt. In other words, the CPU210confirms whether reducing the objects size has kept the increase in dots to a value no greater than the target value THt. When the difference (Dnew−Dorg) is less than or equal to the target value THt (S370: YES), the CPU210ends the current toner-saving print data generating process.

However, when the difference (Dnew−Dorg) is greater than the target value THt (S370: NO), in S375-S425the CPU210executes a retry process to modify the scale factors for the objects and to generate print data that further suppresses an increase in dots formed in the printing operation (i.e., the quantitative increase in toner consumption).

More specifically, in S375the CPU210first determines whether a retry number M denoting the number of times that the retry process of S275-S425has been executed is greater than or equal to an upper limit of 3 in the present embodiment. Note that M has been previously initialized to the value 0.

If the retry number M is 3 or greater (S375: YES), the CPU210ends the current toner-saving print data generating process. However, if the retry number M is less than 3 (S375: NO), in S380the CPU210increments the retry number M by 1.

In S385the CPU210sets a processing order for the plurality of drawing commands included in the target data. More specifically, the CPU210sets the order in which drawing commands for objects are to be processed to a descending order based on the layout areas S of the objects, beginning from the object that occupied the greatest layout area in the previous drawing time. When the retry process is being executed for the first time, the previous drawing time is the time at which objects were drawn (S120ofFIG. 4) during the rasterization process in S350ofFIG. 5described above, and the CPU210sets the processing order for drawing commands based on the layout areas S of the objects calculated in S130ofFIG. 4. When performing the retry process for the second and third times, the previous drawing time is the time at which objects were drawn in S415ofFIG. 6described below, and the CPU210sets the process order for drawing commands based on the layout areas S of objects calculated in S420ofFIG. 6described below. Here, the layout areas S for objects calculated at the previous drawing time are used in order to obtain different scale factors for reducing the objects each time the drawing commands are processed. Using the target image OI ofFIG. 3as an example, the layout areas S of the objects are in descending order of the photo Ob2, text Ob3, text Ob4, and graphic Ob1. Accordingly, the CPU210would set the processing order to reflect the order: drawing command for the photo Ob2, drawing command for the text Ob3, drawing command for the text Ob4, and drawing command for the graphic Ob1.

When reducing the size of objects, the number of dots can be reduced more when the object is larger. Accordingly, it is preferable to give priority to adjusting the scale factor for objects occupying a larger area when changing the scale factors of objects to smaller values in S405described later in order to better suppress the increase in dots. For this reason, the CPU210sets the processing order for drawing commands in S365to the descending order of the objects' layout area, beginning from the object having the largest layout area.

In S390the CPU210sets a scale factor modification number Nth based on the retry number M. The scale factor modification number Nth indicates the number of objects in the target image whose scale factor will be changed to a smaller value in the retry process, i.e., the number of objects whose degree of reduction will be increased. For the first retry process, the scale factor modification number Nth is set to the largest integer that does not exceed 25% of the total number Ns of objects in the target image. Similarly, in the second and third retry processes, the scale factor modification number Nth is respectively set to the largest integer within 50% and within 75% of the total number Ns of objects in the target image. For example, since the target image OI ofFIG. 3includes four objects Ob1-Ob4(Ns=4), the scale factor modification number Nth is respectively set to 1, 2, and 3 in the first, second, and third retry processes when processing image data representing the target image OI ofFIG. 3.

In S392-S425the CPU210executes a rasterization process for the retry to rasterize the target image data while modifying the scale factors. First, in S392the CPU210loads initial image data representing an initial image into the buffer region222, as in S100ofFIG. 4. In S395the CPU210acquires a drawing command for a process target according to the processing order determined in S385.

In S400the CPU210determines whether the order number n (where n is an integer, such that 1≦n≦Ns, and denotes the position of the drawing command in the established order) for the drawing command of the process target is less than or equal to the scale factor modification number Nth. If the order number n for the drawing command of the process target is no greater than the scale factor modification number Nth (S400: YES), in S405the CPU210determines whether the value obtained by subtracting 2% from the current scale factor R of the object being drawn according to the drawing command of the process target (R−2) is greater than or equal to the lower limit of the scale factor (95% in the present embodiment). If (R−2) is greater than or equal to the lower limit of the scale factor (S405: YES), in S410the CPU210changes the scale factor for the object being drawn to a value that is smaller by 2%.

However, if (R−2) is less than the lower limit of the scale factor (S405: NO), the CPU210skips to the process of S415without changing the scale factor for the object since the scale factor cannot be set smaller than the lower limit. When the order number n for the drawing command of the process target is greater than the scale factor modification number Nth (S400: NO), then the CPU210skips both steps S405and S410and advances directly to S415since the scale factor of the object being drawn is not subject to modification.

In S415the CPU210draws the object reduced from the size specified in the drawing command at the scale factor just set above in the initial image. In other words, when the scale factor was just modified in step S405, the CPU210draws the object in the initial image after reducing the object by the new scale factor. If the scale factor was not modified, the CPU210draws the object in the initial image after reducing the object at the same scale factor used in the precious rasterization process.

In S420the CPU210calculates the layout area S of the object drawn in S415just as in S130ofFIG. 4. The layout area S calculated at this time is used for determining the processing order of drawing commands in S385of the next retry process, if another retry process is performed.

In S425the CPU210determines whether there remain any unprocessed drawing commands. When unprocessed drawing commands remain (S425: YES), the CPU210returns to S395and acquires the next unprocessed drawing command according to the processing order. When all drawing commands have been processed (S425: NO), the CPU210returns to S355ofFIG. 5. At this point, the CPU210has completed the rasterization process for the retry and has generated RGB image data representing an image in which the scale factors of some objects have been modified.

In S355the CPU210generates new print data by executing the color conversion process and halftone process on the new RGB image data. In the subsequent steps S360-S370, the CPU210confirms that the increase in dots (i.e., the difference (Dnew−Dorg)) is suppressed below or equal to the target value THt for the new print data. When the increase in dots has been suppressed below or equal to the target value THt (S370: YES) or when the retry number M has reached the upper limit (3 times in the embodiment; S375: YES), the CPU210ends the toner-saving print data generating process.

According to the embodiment described above, the CPU210acquires target image data representing a single target image OI (seeFIG. 3) having a plurality of objects, including a first object (the text Ob3inFIG. 3, for example) and a second object (the photo Ob2inFIG. 3, for example) (S10ofFIG. 2). The CPU210sets an image quality at which printing is to be executed by selecting a color profile according to the printing mode (S15-S25ofFIG. 2).

When printing at a first printing quality (the quality according to the normal quality mode, for example), the CPU210controls the printer300to print an image based on the target image data in which the plurality of objects are rendered at the sizes specified in the target image data (i.e., the printed image representing the unaltered target image OI; S35-S45, S55, and S60ofFIG. 2). On the other hand, when printing at a second printing quality (the quality according to the fine quality mode, for example), the CPU210controls the printer300to print the image based on print data (i.e., the print data generated in the toner-saving print data generating process ofFIGS. 5 and 6) representing an image whose objects have been reduced in size from the sizes specified in the target image data (i.e., a processed image).

In the toner-saving print data generating process ofFIGS. 5 and 6, the CPU210sets the scale factor for each of the plurality of objects (S345ofFIG. 5). For example, the CPU210sets the scale factor for a first object (the text Ob3inFIG. 3, for example) to a first scale factor, and sets the scale factor for a second object (the photo Ob2inFIG. 3, for example) to a second scale factor different from the first scale factor.

Next, the CPU210generates print data by executing the rasterization process in S350ofFIG. 5and the color conversion and halftone processes in S355on the target image data. Consequently, the first object in the image represented by the print data is reduced from the size specified in the target image data by the first scale factor, while the second object is reduced from its size specified in the target image data by the second scale factor.

As a result, each of the objects Ob1-Ob4is reduced to a size suited to the category of object. Accordingly, this method can reduce the amount of toner consumed while suppressing a drop in the quality of the printed image. That is, the CPU210can print an image that is more vivid and higher in quality than an image printed in the normal quality mode since the CPU210performs the color conversion process (S355inFIG. 5) using the color profile for the fine quality mode when performing the toner-saving print data generating process. At the same time, since each object is reduced from their size specified in the target image data to a size suited to the category of object, the CPU210can efficiently suppress the amount of toner consumed without excessively reducing the sizes of the objects.

When the quantity of toner consumed is excessively large while printing in the fine quality mode, the number of sheets that can be printed in this mode is much less than when printing in the normal quality mode. However, by specifying the toner-saving mode, the user can mitigate this reduction in printable sheets, even when printing in the fine quality mode.

Further, the computer200of the preferred embodiment sets the printing quality for printing operations based on specifications by the user. That is, the computer200sets the image quality for printing based on the printing mode set by the user as described above (S15-S25inFIG. 2). Accordingly, the computer200can reduce the amount of toner used while suppressing a drop in image quality based on the image quality set according to the user's specification.

Further, when the printing mode is set to the fine quality mode, the computer200according to the present embodiment can determine whether or not to reduce the quantity of toner consumed based on a user specification. More specifically, when the user has set the toner-saving mode as described above (S30: YES inFIG. 2), the CPU210executes the toner-saving print data generating process to reduce the amount of toner consumed (S50). In other words, when printing in the fine quality mode, the CPU210can direct the printer300to print an image in which objects have been reduced in size according to a scale factor set for each object in order to decrease the quantity of toner consumed based on the user's specification. Accordingly, the computer200can reduce toner consumption while suppressing a drop in image quality when the user has instructed the computer200to user less toner.

In the embodiment described above, the CPU210calculates the dot number Dorg indicating a first colorant quantity to be consumed when printing an image with objects at the sizes specified in the target image data (i.e., a printed image representing the unaltered target image) in the normal quality mode (S320inFIG. 5). The CPU210further calculates the dot number Dvvd indicating a second colorant quantity to be consumed when printing an image with objects at the sizes specified in the target image data in the fine quality mode (S335inFIG. 5). Next, the CPU210sets a scale factor for each object based on the difference (Dvvd−Dorg) (S340and S345inFIG. 5). In this way, the CPU210can set a suitable scale factor for each object. For example, the larger the difference (Dvvd−Dorg), the smaller the scale factor of an object and the greater the degree to which the object is reduced (FIG. 7). Accordingly, the CPU210can set suitable scale factors that prevent toner consumption when printing in the fine quality mode from being increased excessively over toner consumption when printing in the normal quality mode.

Further, the CPU210calculates the dot number Dnew indicating a third colorant quantity that is consumed when printing an image represented by the print data generated in S350and S355, i.e., an image whose objects are reduced at a scale factor set for each individual object (S360inFIG. 5). Next, the CPU210compares the difference (Dnew−Dorg) to the target value THt (S370inFIG. 6). When the difference (Dnew−Dorg) is greater than the target value THt (S370: NO), the CPU210executes the retry process (S375-S425inFIG. 6). In this way, the CPU210can perform a process to confirm whether the increase in toner consumption was sufficiently suppressed and performs the retry process when the increase was not sufficiently suppressed, thereby reducing the possibility that toner consumption is not sufficiently suppressed. Note that comparing the difference (Dnew−Dorg) to the target value THt is equivalent to comparing Dnew to a specific threshold value (target value THt+Dorg).

In the retry process of the embodiment, the CPU210modifies scale factors for objects in the target image in descending order of layout area, from the object whose order number n is 1 (i.e., the object occupying the largest layout area S among the total number Ns of objects in the target image) to the object whose order number n is Nth (the scale factor modification number set in S390based on a percentage of the total number Ns), while not modifying the scale factor of objects whose order number n is greater than Nth (S390, S400-S410inFIG. 6). In other words, the CPU210modifies the scale factors of objects having a first surface area, while not modifying the scale factors of objects having a second surface area smaller than the first surface area. Accordingly, the CPU210can give more priority to modifying the scale factors of objects that require a relatively large amount of toner in the printing operation over the scale factors of objects that require a relatively small amount of toner. Thus, the computer200can effectively reduce toner consumption when printing an image represented by the print data produced in the retry process. Hence, the computer200can avoid excessively reducing the sizes of objects in order to reduce toner consumption.

The retry process is executed repeatedly until the difference (Dnew−Dorg) drops to the target value THt or lower (S370inFIG. 6), enabling the computer200to reduce toner consumption sufficiently. Further, the CPU210does not modify the scale factors of objects below a prescribed lower limit (95%, for example; S405inFIG. 6). In this way, the computer200can reduce toner consumption an extent that does not reduce the printed objects excessively.

In S345ofFIG. 5, the CPU210sets the scale factors for non-text objects (graphic and photo objects, for example) to smaller values than the scale factor for text, as illustrated inFIG. 7. In other words, the degree in which objects other than text are reduced is set greater than the degree in which text objects are reduced. As described above, the object density in a text region is generally smaller than the object density for objects other than text. Accordingly, the CPU210can more efficiently reduce toner consumption by setting the scale factors for objects other than text smaller than the scale factor for text.

B. Variations of the Embodiment

(1) In the retry process of the embodiment described above, the CPU210gives priority to modifying the scale factors of objects that consume a relatively large amount of toner during printing over objects that consume a relatively small amount of toner by modifying the scale factors of objects having a relatively large layout area S and not modifying the scale factors of objects having a relatively small layout area S (S390, S400-S410inFIG. 6). However, the CPU210may instead give priority to modifying the scale factors of objects that consume a relatively large amount of toner over objects that consume a relatively small amount of toner by modifying the scale factors of objects having a relatively large object density and not modifying the scale factors of objects having a relatively small object density. Further, since toner consumption tends to be greater when printing darker colors, the CPU210may give priority to modifying the scale factors of objects that consume a relatively large amount of toner over objects that consume a relatively small amount of toner by modifying the scale factors of objects having colors with a relatively high density while not modifying the scale factors of objects having colors with a relatively low density. More specifically, when the representative color (average color, for example) of an object is expressed in CMYK values, the CPU210may determine that the density of the color is higher when the individual CMYK component values are larger. Alternatively, the CPU210may generate a histogram of the object and calculate the number of pixels in the object whose density exceeds a threshold value. Here, the CPU210determines that the object has colors of high density when a large number of pixels have densities that exceed the threshold value.

(2) In the embodiment described above, the printer300is a laser printer that uses toner as the colorant, but the printer300may be an inkjet printer that uses ink as the colorant and that prints images by ejecting the ink to form dots. In this case, the process inFIGS. 5 and 6can reduce the amount of ink consumed while suppressing a drop in image quality.

(3) In the embodiment described above, the CPU210executes the process inFIGS. 5 and 6when the fine quality mode and toner-saving mode have been set, but does not execute this process when the toner-saving mode has not been set, even if the fine quality mode has. However, the computer200may be configured to execute the process inFIGS. 5 and 6whenever the fine quality mode is set.

(4) In the embodiment described above, the CPU210sets the scale factors for objects based on their category, focusing on the premise that different object categories have different object densities, but a different scale factor may be set for each object according to various methods. More specifically, it is preferable to employ a method that sets the scale factor of objects that consume a relatively large amount of toner during printing smaller than the scale factor of objects that consume a relatively small amount of toner. In this way, the computer200can reduce toner consumption more efficiently than when reducing the size of the overall image according to a specific scale factor. For example, the scale factor for objects having a relatively large layout area S may be set to a value smaller than the scale factor for objects having a relatively small layout area S. Alternatively, the scale factor for objects having colors with a relatively high density may be set to a value smaller than the scale factor for objects having colors with a relatively low density.

(5) In S368ofFIG. 6in the embodiment described above, the target value THt for an increase in dots is set to the product of the difference (Dvvd−Dorg) and a prescribed coefficient K. While the coefficient K is a fixed value in the embodiment, the coefficient K may be set dynamically instead. For example, the coefficient K may be set based on the categories of objects included in the target image. More specifically, the value of the coefficient K may be decreased in order to set a more restrictive target value THt when the plurality of objects included in the target image include a high ratio of photos because it is more important to reduce toner consumption in images having a high ratio of photos, as such photos tend to consume much toner. The lower limit of the scale factor for photos may also be decreased as the value of the coefficient K is decreased, i.e., as the target value THt is set to a more restrictive value. In this case, the lower limit of the scale factor for photos may be set smaller than the lower limits on the scale factors for other objects (text, for example) because decreasing the lower limit on the scale factor for photos will have a greater effect on reducing toner consumption. In addition, it is more tolerable to reduce the scale factor for photos because a reduction in the size of photos is less noticeable than a reduction in the size of text, since text may become unreadable.

(6) The retry process described in the embodiment may be omitted. In other words, the process from S360to S425may be omitted, with the toner-saving print data generating process ending after S355inFIG. 5.

(7) The image processor that implements the printing process inFIG. 2may be any of various devices, and is not limited to the computer200. For example, a control device in the printer designed to control the operations of the printer may also execute the printing process inFIG. 2in order to control a printing engine to execute the printing operation. Alternatively, the printing process ofFIG. 2may be executed by a server connected to the printer over the Internet, or a portable terminal such as a smartphone connected to the printer over a wireless network. Further, a plurality of computers that can communicate over a network may each implement some of the functions of the printing process inFIG. 2so that the devices as a whole can execute the printing process. In this case, the entire set of computers that contribute to the printing process is an example of the image processor.

(8) Part of the configuration implemented in hardware in the embodiment described above may be replaced with software and, conversely, all or part of the configuration implemented in software may be replaced with hardware. For example, all or part of the steps in the printing process of the embodiment may be implemented by hardware, such as an ASIC.

While the description has been made in detail with reference to specific embodiments thereof, it would be apparent to those skilled in the art that many modifications and variations may be made therein without departing from the spirit of the above described embodiments, the scope of which is defined by the attached claims.