Patent Description:
When recording an image using pseudo-gradation, it is necessary to quantize a multi-value image. Error diffusion and dithering are known as quantization methods used to perform image recording. In particular, the dithering, which compares a gradation value of multi-value data with a preliminarily stored threshold value to determine whether or not to record a dot, requires a smaller processing load than the error diffusion and therefore is used in many image processing apparatuses. Although dot dispersibility arises as a problem in the dithering as described above, in U. Patent No. <CIT> for example, there is proposed a method that uses a threshold value matrix having blue noise characteristics, as a threshold value matrix for acquiring desirable dot dispersibility.

Furthermore, document <CIT> discloses an image processing apparatus and an image processing method, for forming an image on a printing medium by quantization processing. Thereby, first gradation data corresponding to a gradation value of a first color and second gradation data corresponding to a gradation value of a second color are obtained for a processing-target pixel. Still further, document <CIT> refers to a printing system using multiple colors or multiple levels of gray includes using a halftone screen with a matrix of assorted threshold values, along with image data having a matrix of image data elements.

In addition, U. Patent No. <CIT> discloses a dithering for solving the problem that graininess becomes noticeable due to the reduced dispersibility when recording an image with a plurality of color materials (i.e., color mixing), despite that a desirable dispersibility has been acquired in individual color materials (i.e., single color). Specifically, there is disclosed a method that prepares a common threshold value matrix having desirable dispersibility and that performs a quantization process while shifting respective threshold values between a plurality of colors. In the present specification, such a quantization method will be referred to as inter-color processing, hereafter. According to inter-color processing, dots of different colors in a low gradation part are recorded in a mutually-exclusive and highly-dispersed state, whereby a desired image quality can also be realized in a mixed color image.

However, although quantization of inter-color processing as described in U. Patent No. <CIT> (quantization that suppresses overlapping of ink colors) improves granularity, there may occur an image quality defect called color shift. Color shift refers to a phenomenon in which a part of gradation turns out to be colored when forming an achromatic gradation image using color inks such as C (Cyan), M (Magenta), and Y (Yellow). In usual quantization, dot patterns of C, M, and Y are uncorrelated and therefore it is possible to suppress color shift by adjusting the ink amount of C, M, and Y. In the aforementioned inter-color processing, on the other hand, the way of overlapping of C-, M-, and Y-dots varies due to threshold value cyclic processing performed when the total value of respective ink colors exceeds the maximum value of the threshold value, making the relation between the ink amount and color development complicated. Accordingly, it has been difficult to suppress color shift in inter-color processing.

The present invention provides a technique for suppressing color shift in a quantization process that suppresses color overlapping.

The present invention in its first aspect provides an image processing apparatus as specified in claims <NUM> to <NUM>.

The present invention in its second aspect provides an image processing method as specified in claim <NUM>.

The present invention in its third aspect provides a non-transitory computer-readable storage medium as specified in claim <NUM>.

First, a recording apparatus according to the present embodiment will be described, referring to <FIG>. The recording apparatus according to the present embodiment is a printer which is an inkjet recording apparatus, and <FIG> schematically illustrates a printer according to the present embodiment. The printer of <FIG> is a serial type recording apparatus, comprising a recording head <NUM>.

A configuration example of the recording head <NUM> is illustrated in <FIG>. The recording head <NUM> has recording heads that discharge four ink colors (color materials) of Cyan (C), Magenta (M), Yellow (Y), and Black (K). More specifically, the recording head <NUM> has a nozzle row (recording element row) <NUM> for each of the colors C, M, Y, and K, in which nozzles that can discharge ink droplets of the corresponding color are arranged in the y-direction (recording medium conveyance direction). In addition, each of the nozzle rows is arranged in the x-direction in the drawing (recording head scanning direction). Although the nozzles are arranged in one row in the y-direction (recording medium conveyance direction) in <FIG>, the number and arrangement of nozzles are not limited to those illustrated in <FIG>. For example, there may be provided a row of nozzles that discharge an identical color but different amount of ink, or there may be a plurality of rows of nozzles that discharge an identical amount, or there may be a row of nozzles arranged in a zigzag manner.

A platen <NUM>, provided at a recording position facing a surface (discharge surface) having a discharge port of the recording head <NUM> formed thereon, supports the back surface of a recording medium <NUM>, so as to maintain the distance between the surface of the recording medium <NUM> and the ink discharge surface at a constant distance. The recording medium <NUM> conveyed over the platen <NUM> and subjected to recording thereon is conveyed in the y-direction by rotation of a conveyance roller <NUM> (and other rollers not illustrated) by driving force of a motor (not illustrated).

Next, there will be described, referring to the block diagram of <FIG>, a configuration example of a recording system having: the printer illustrated in <FIG>; and a PC (personal computer) that serves as a host device of the printer. A PC <NUM> and a printer <NUM> are connected via a wireless and/or wired network, and the PC <NUM> and the printer <NUM> are configured to allow for data communication with each other via the network.

A CPU <NUM> performs various processes using computer programs and data stored in a RAM <NUM>. Accordingly, the CPU <NUM> controls the operation of the PC <NUM> as a whole, and also performs or controls various processes described to be performed by the PC <NUM>.

The RAM <NUM> has: an area for storing computer programs and data loaded from an HDD (hard disk drive) <NUM>; and an area for storing data received from the printer <NUM> via a data transfer I/F <NUM>. In addition, the RAM <NUM> has a work area to be used when the CPU <NUM> performs various processes. As has been described above, the RAM <NUM> can provide various areas as appropriate.

The HDD <NUM> stores computer programs and data for causing the CPU <NUM> to perform or control the operating system (OS) or various processes described to be performed by the PC <NUM>. The computer programs and data stored in the HDD <NUM> are loaded to the RAM <NUM> as appropriate according to control of the CPU <NUM> and are to be processed by the CPU <NUM>.

A display unit I/F <NUM> is an interface for connecting a display unit <NUM> to the PC <NUM>. The display unit <NUM>, having a liquid crystal screen or a touch panel screen, displays a result of processing by the CPU <NUM> in the form of images, characters, or the like. Here, the display unit <NUM> may be integrated with the PC <NUM>. In addition, the display unit <NUM> may be a projection device such as a projector that projects images or characters.

An operation unit I/F <NUM> is an interface for connecting an operation unit <NUM> to the PC <NUM>. An operation unit <NUM>, which is a human interface device (HID) such as a keyboard, a mouse, a touch panel screen, or the like, allows for inputting various instructions to the CPU <NUM> via user operation.

The data transfer I/F <NUM> is an interface for connecting the PC <NUM> to the aforementioned network. USB, IEEE <NUM>, LAN, or the like, can be used as connection methods for performing data transmission and reception between the PC <NUM> and the printer <NUM>.

The CPU <NUM>, the RAM <NUM>, the HDD <NUM>, the display unit I/F <NUM>, the operation unit I/F <NUM>, and the data transfer I/F <NUM> are all connected to a system bus <NUM>. Here, the configuration of PC <NUM> is not limited to that illustrated in <FIG>, and any configuration may be used, provided that it can perform each of the processes described to be performed by the PC <NUM>.

Next, the printer <NUM> will be described.

A CPU <NUM> performs various processes using computer programs and data stored in a RAM <NUM> and a ROM <NUM>. Accordingly, the CPU <NUM> controls the operation of the printer <NUM> as a whole, and also performs or controls various processes described to be performed by the printer <NUM>.

The RAM <NUM> has: an area for storing computer programs and data loaded from the ROM <NUM>; and an area for storing data received from the PC <NUM> via a data transfer I/F <NUM>. Furthermore, the RAM <NUM> has a work area to be used when the CPU <NUM> performs various processes. As has been described above, the RAM <NUM> can provide various areas as appropriate.

The ROM <NUM> has stored therein setting data of the printer <NUM>, computer programs and data related to activation of the printer <NUM>, computer programs and data related to the basic operation of the printer <NUM>, or the like.

A head controller <NUM> supplies recording data to each of the nozzle rows included in the recording head <NUM>, and also controls discharge operation of the recording head <NUM>. Specifically, the head controller <NUM> reads control parameters and recording data from a predetermined address in the RAM <NUM>. Subsequently, the CPU <NUM> writes the control parameter and the recording data to a predetermined address in the RAM <NUM>, thereby activating a process by the head controller <NUM> to perform ink discharge from the recording head <NUM>.

An image processing accelerator <NUM> is a hardware that can perform image processing faster than the CPU <NUM>. Specifically, the image processing accelerator <NUM> reads parameters and data required for image processing from a predetermined address of the RAM <NUM>. Subsequently, the CPU <NUM> writes the parameters and data to the predetermined address in the RAM <NUM>, thereby activating the image processing accelerator <NUM>, by which in turn the image processing accelerator <NUM> performs predetermined image processing on the data. Here, the image processing accelerator <NUM> is not an essential element, and therefore image processing may be performed only by processing by the CPU <NUM> in accordance with specification or the like of the printer. Here, the configuration of the printer <NUM> is not limited to that illustrated in <FIG>, and any configuration may be used, provided that it can perform each of the processes described to be performed by the printer <NUM>.

Next, a process, on an input image, to be performed by the recording system according to the present embodiment will be described, referring to the flowchart of <FIG>.

At step S300, the CPU <NUM> of the PC <NUM> acquires an input image. The input image may be acquired from the HDD <NUM> and loaded into the RAM <NUM> or may be acquired from the outside and loaded into the RAM <NUM> via a network (not illustrated), the acquisition method being not limited to any specific acquisition method.

At step S301, the CPU <NUM> of the PC <NUM> performs color correction on the input image acquired at step S300. In the present embodiment, the input image is assumed to be an <NUM>-bit RGB input image whose color space is represented by a normalized color space such as sRGB. Here, an <NUM>-bit RGB input image is an input image in which each pixel has an <NUM>-bit luminance value of the R (Red) component, an <NUM>-bit luminance value of the G (Green) component, and an <NUM>-bit luminance value of the B (Blue) component. At step S301, such an input image is converted into an <NUM>-bit RGB input image corresponding to a color space inherent to the printer <NUM> (an input image in which each pixel has a <NUM>-bit luminance value of the R component, a <NUM>-bit luminance value of the G component, and a <NUM>-bit luminance value of the B component). The method for converting the luminance value can be realized by employing a known method such as referring to a lookup table (LUT) preliminarily stored in the HDD <NUM> or the like.

At step S302, the CPU <NUM> of the PC <NUM> separates (ink color separation) the <NUM>-bit RGB input image converted at step S301 into <NUM>-bit gradation data (density data) of each of ink colors C, M, Y, and K of the printer <NUM>. In other words, at step S302, a <NUM>-bit RGB input image is separated into four-channel images (an image representing, in <NUM> bits, the gradation (density) of the C component of each pixel of the <NUM>-bit RGB input image; an image representing, in <NUM> bits, the gradation (density) of the M component of each pixel of the <NUM>-bit RGB input image; an image representing, in <NUM> bits, the gradation (density) of the Y component of each pixel of the <NUM>-bit RGB input image; and an image representing, in <NUM> bits, the gradation (density) of the K component of each pixel of the <NUM>-bit RGB input image). Also ink color separation can be realized by using a known method such as referring to a lookup table (LUT) preliminarily stored in the HDD <NUM> or the like, similarly to the aforementioned color correction. The CPU <NUM> of the PC <NUM> then transmits the four-channel images (CMYK data) to the printer <NUM> via the data transfer I/F <NUM>.

At step S303, the CPU <NUM> of the printer <NUM> receives, into the RAM <NUM>, the CMYK data transmitted from the PC <NUM> via the data transfer I/F <NUM>. The CPU <NUM> of the printer <NUM> performs a quantization process on the received CMYK data. The CMYK data is converted into data of multi-order color (multi-order color data) and subsequently quantized. The term "multi-order color" mentioned in the present embodiment is intended to mean: a primary color of C, M, Y, and K; and a tertiary color recorded by superimposing ink C, M, and Y. In the following, the aforementioned tertiary color will be denoted as CMY. CMY is achromatic. The multi-order color data subjected to the quantization process becomes <NUM>-bit data from level <NUM> to level <NUM>, in a case of quantization into three values, for example. Details of the quantization process will be described below.

Next, at step S304, the CPU <NUM> of the printer <NUM> integrates each of the quantized multi-order color data (multi-order color integration) and converts them into CMYK data. Details of the multi-order color integration will be described below.

At step S305, the CPU <NUM> of the printer <NUM> performs an index development process on the CMYK data acquired in the process at step S304. Specifically, from a plurality of dot arrangement patterns defining the number and the position of dots to be recorded in individual pixels, a dot arrangement pattern corresponding to a level value of a pixel of interest is selected, as a dot arrangement pattern defining the number and the position of dots to be recorded in the pixel of interest. On this occasion, the dot arrangement pattern may be such that the number of dots to be recorded in a region corresponding to individual pixels differs depending on the level value, or such that the dot size differs depending on the level value. Such an index development process is performed for each of C, M, Y, and K. Subsequently, upon completion of the aforementioned index development process, the process flow proceeds to step S306.

At step S306, the CPU <NUM> of the printer <NUM> outputs, to the RAM <NUM> as binary data, dot data having dots arranged in accordance with the dot arrangement pattern for each pixel. The head controller <NUM> supplies the aforementioned recording data based on such binary data to each of the nozzle rows included in the recording head <NUM>, and also controls discharge operation performed by the recording head <NUM>.

Although the foregoing explanation has described the processes from steps S300 to S302 to be performed by the PC <NUM>, and the processes from steps S303 to S306 to be performed by the printer <NUM>, the entity supposed to perform the processes at respective steps is not limited to that in the foregoing explanation. For example, the processes from steps S300 to S303 may be performed by the PC <NUM>. In this case, the PC <NUM> transmits a result of quantization to the printer <NUM> at step S303, and the printer <NUM> receives the result of quantization at step S304. Subsequent operation performed by the printer <NUM> is similar to the foregoing explanation. In addition, for example, the printer <NUM> may perform the processes from steps S301 to S306, depending on the performance of the printer <NUM>. In this case, the PC <NUM> transmits the acquired input image to the printer <NUM> at step S300.

Next, there will be described the quantization process performed at step S303 as described above. There will be described a functional configuration example of the printer <NUM> according to the quantization process performed at S303, referring to the block diagram of <FIG>. In the following, although the functional units illustrated in <FIG> will be described as the main entity of the process, actually a function of a functional unit is realized by executing, by the CPU <NUM>, a computer program for causing the CPU <NUM> to perform or control the function of the functional unit. The functional units illustrated in <FIG> may be implemented in hardware. In the quantization process according to the present embodiment, a process relating to the input value is first performed, then a process relating to a threshold value is performed, and finally a quantization process is performed according to the dithering.

An acquisition unit <NUM> acquires <NUM>-bit gradation data indicating densities of individual pixels. It is assumed that the acquisition unit <NUM> of the present embodiment can acquire a maximum of <NUM>-bit gradation data for as many as eight colors. <FIG> illustrates a state in which <NUM>-bit gradation data of each of the first to the fourth colors are input as the first to the fourth color input values. In other words, <FIG> illustrates a state in which gradation data of pixels in the C-channel image (first color input value), gradation data of pixels in the M-channel image (second color input value), gradation data of pixels in the Y-channel image (third color input value), and gradation data of pixels in the K-channel image (fourth color input value) are input to the acquisition unit <NUM>.

A noise addition unit <NUM> adds predetermined noise to each of the first color input value, the second color input value, the third color input value, and the fourth color input value (<NUM>-bit gradation data). Adding noise to gradation data allows for avoiding successively arranging an identical pattern even when gradation data of an identical level are successively input, thereby mitigating lines, textures or the like. The noise addition unit <NUM> multiplies fluctuation intensities respectively depending on a predetermined random table, a fixed intensity, and gradation data, whereby noise is generated for each pixel and added to the gradation data.

Here, the random table, which is a table for setting positive or negative noise, has positive, zero, or negative noise set to each pixel position. The present embodiment can have a maximum of eight random tables, each size of which can be freely selected. A fixed intensity indicates the intensity of the noise amount, and the noise amount is determined based on the intensity. The present embodiment allows appropriate adjustment of the amount of noise by setting an optimal random table or a fixed intensity for each print mode, in accordance with the degree of granularity and lines or textures of the image. Here, the method of adding noise to the gradation data is not limited to a specific addition method.

A normalization unit <NUM> divides the <NUM>-bit range <NUM> to <NUM> into a plurality of divided ranges. Subsequently, the normalization unit <NUM> associates, with respective pixels of the first color input value, the second color input value, the third color input value, and the fourth color input value, a value of a level (level value allowing index development at step S305) corresponding to the divided range including the color input value (gradation value).

For example, in a case where the index development process at step S305 is a process corresponding to n values from level <NUM> to level (n - <NUM>), the normalization unit <NUM> divides <NUM> gradations of a <NUM>-bit range into (n - <NUM>) equal parts. Subsequently, the normalization unit <NUM> associates, with the pixel of the first color input value, the level value of a level corresponding to a divided range including the gradation value corresponding to the first color input value, among each of the (n - <NUM>) equally divided ranges. In addition, the normalization unit <NUM> associates, with the pixel of the second color input value, the level value of a level corresponding to the divided range including the gradation value corresponding to the second color input value, among each of the (n - <NUM>) equally divided ranges. In addition, the normalization unit <NUM> associates, with the pixel of the third color input value, the level value of a level corresponding to the divided range including the gradation value corresponding to the third color input value, among each of the (n - <NUM>) equally divided ranges. In addition, the normalization unit <NUM> associates, with the pixel of the fourth color input value, the level value of a level corresponding to the divided range including a gradation value corresponding to the fourth color input value, among each of the (n - <NUM>) equally divided ranges.

Furthermore, the normalization unit <NUM> normalizes each divided range into <NUM> bits (<NUM> gradations). Accordingly, for pixels of each of the first color input value, the second color input value, the third color input value, and the fourth color input value, there is acquired a <NUM>-bit color input value (<NUM>-bit gradation data) corresponding to each color input value in a normalized divided range, acquired by normalizing a divided range including the color input value to <NUM> bits (<NUM> gradations). The aforementioned control allows for performing the subsequent quantization process by a similar process, regardless of the number (n) of quantization.

The processes by the acquisition unit <NUM>, the noise addition unit <NUM>, and the normalization unit <NUM> described above are performed in parallel for gradation data of each color. In other words, <NUM>-bit gradation data for cyan, magenta, yellow, and black are generated and input to the multi-order color conversion unit <NUM> in the present embodiment.

The multi-order color conversion unit <NUM> converts the <NUM>-bit gradation data of C, M, Y, and K output from the normalization unit <NUM> into multi-order color data. As has been described above, the multi-order color data, which is data of primary colors C, M, Y, and K and data of a tertiary color CMY, turns out to be five types of data (five colors). Details of the conversion performed by the multi-order color conversion unit <NUM> will be described below. Subsequently, the multi-order color conversion unit <NUM> outputs the multi-order color data of the five colors to a dither processing unit <NUM>.

The dither processing unit <NUM> provide the quantization unit <NUM> with the multi-order color data of the color to be quantized (data to be processed), among the multi-order color data of the five colors (<NUM>-bit data of each of C, M, Y, and K, and <NUM>-bit data of CMY) input from the multi-order color conversion unit <NUM>. In addition, the dither processing unit <NUM> provides, as reference data, the inter-color processing unit <NUM> with the multi-order color data other than the data to be processed, among the multi-order color data of the five colors input from the multi-order color conversion unit <NUM>.

The inter-color processing unit <NUM> determines a final threshold value by performing, on the threshold value acquired by a threshold value acquisition unit <NUM>, a predetermined process based on the reference data, and outputs the determined threshold value to the quantization unit <NUM>.

The quantization unit <NUM> compares the data to be processed with the threshold value output from the inter-color processing unit <NUM>, and outputs "to be recorded (<NUM>)" or "not to be recorded (<NUM>)" as a quantization result (quantization data) for the data to be processed.

The threshold value acquisition unit <NUM> selects a corresponding one of the threshold value matrices from a plurality of dither patterns (threshold value matrices) <NUM> stored in a memory such as the ROM <NUM>, and acquires, from the selected threshold value matrix, a threshold value corresponding to the pixel position of the data to be processed. In the present embodiment, the dither pattern <NUM>, which is a two-dimensional matrix arranged so that threshold values of <NUM> to <NUM> have blue noise characteristics, has various sizes and shapes such as <NUM>×<NUM> pixels, <NUM>×<NUM> pixels, <NUM>×<NUM> pixels, or the like. In other words, the threshold value acquisition unit <NUM> selects a threshold value matrix corresponding to the print mode and the ink color from the memory having preliminarily stored therein a plurality of threshold value matrices having different sizes and shapes. Subsequently, the threshold value acquisition unit <NUM> acquires a threshold value corresponding to the pixel position (x, y) of the data to be processed among a plurality of threshold values arranged in two dimensions in the selected threshold value matrix, and outputs the acquired threshold value to the inter-color processing unit <NUM>.

Next, there will be described conversion (multi-order color conversion) performed by the multi-order color conversion unit <NUM>, referring to the flowchart of <FIG>.

At step S601, the multi-order color conversion unit <NUM> acquires <NUM>-bit gradation data of C, M, Y, and K output from the normalization unit <NUM>. In the following, description will be provided taking as an example a case where gradation data <NUM>, <NUM>, <NUM>, and <NUM>, respectively representing C, M, Y, and K, have been input as the <NUM>-bit gradation data of C, M, Y, and K.

At step S602, the multi-order color conversion unit <NUM> determines, according to the following equation (Formula <NUM>), an excess amount Δ from the <NUM>-bit gradation data of C, M, Y, and K acquired at step S601.

Here, I_max, i.e., the maximum value of the value normalized by the normalization unit <NUM> is <NUM> in the present embodiment. On this occasion, the excess amount Δ is calculated by the Formula <NUM> such that Δ = <NUM> + <NUM> + <NUM> + <NUM> - <NUM> = <NUM>. In other words, at step S602, the multi-order color conversion unit <NUM> acquires the excess amount Δ as an amount that a total gradation value, which is the sum of the gradation data of the plurality of colors (C, M, Y, and K) used for recording the pixel of interest, has exceeded from a predetermined value.

Next, at step S603, the multi-order color conversion unit <NUM> determines the tertiary color CMY (<NUM>-bit gradation data) from the excess amount Δ, according to the following Formula <NUM>.

Here, Min() is a function that returns the minimum value among the arguments, and it turns out that, in the case of Formula <NUM>, the minimum value of Δ/<NUM> (half value of Δ), C, M, and Y is set to CMY. Here, when Δ is an odd number, a value after truncating numbers beyond the decimal point is set to CMY. On this occasion, CMY turns out to be CMY = Min(<NUM>/<NUM>, <NUM>, <NUM>, <NUM>) = <NUM>, according to the Formula <NUM>.

Next, at step S604, the multi-order color conversion unit <NUM> subtracts CMY from C, M, and Y, respectively, to acquire the final C, M, and Y. However, when numbers beyond the decimal point are truncated at step S603, a value <NUM> is further subtracted from the gradation value of one of the colors. In the present embodiment, Y is assumed to be the color from which the value <NUM> is subtracted. However, there is a possibility that Y is <NUM> and, in such a case, a color to be subtracted by <NUM> is determined in order of Y, M, and C. According to the aforementioned process, the multi-order color data (C, M, Y, K, and CMY) turns out to be as follows:<MAT><MAT> <MAT> <MAT> <MAT>.

Subsequently, the multi-order color conversion unit <NUM> outputs the multi-order color data determined in the aforementioned manner to the dither processing unit <NUM>.

Next, there will be described the inter-color processing unit <NUM>, referring to <FIG> is a block diagram illustrating a functional configuration example of the inter-color processing unit <NUM>. The process performed by the inter-color processing unit <NUM> having the functional configuration example illustrated in <FIG>; and the quantization process performed by the quantization unit <NUM> will be described, referring to the flowchart of <FIG>.

In the following, description will be provided taking as an example a case where data of the five colors K = <NUM>, CMY = <NUM>, C = <NUM>, M = <NUM>, and Y = <NUM> have been input as multi-order color data to the inter-color processing unit <NUM> from the multi-order color conversion unit <NUM>.

In <FIG>, the i-th (i = <NUM> to <NUM>) multi-order color data among the multi-order color data of the five colors is selected as the data to be processed, the data to be processed being denoted as In_i(x, y). Here, (x, y) indicate a pixel position and are coordinate parameters that the threshold value acquisition unit <NUM> uses for acquiring a threshold value corresponding to the pixel position of the data to be processed from within the threshold value matrix. In the following, (x, y) may be omitted in the notation for simplicity of explanation.

In addition, <FIG> illustrates reference data as In_j(x, y) when the i-th multi-order color data is used as the data to be processed. Here, j is an integer in a range from <NUM> to i - <NUM>. For example, when processing the third multi-order color data In_3, two items In_1 and In_2 become the reference data. Here, In_1 to In_5 are arranged in order of visual prominence (higher density), which is the order of K, CMY, C, M, and Y in the present embodiment.

At step S501, the calculation unit <NUM> acquires the reference data In_j(x, y) input to the inter-color processing unit <NUM>. Subsequently, at step S502, the calculation unit <NUM> uses the acquired reference data In_j(x, y) to calculate a threshold value offset Ofs_i(x, y) for data to be processed In_i(x, y), according to the following Formula <NUM>.

Here, Σ represents the result (total) of summing In_k(x, y) for k = <NUM> to j. Here, Formula <NUM> is equivalent to the following equations. <MAT> <MAT> <MAT> <MAT> <MAT>.

Next, at step S503, a subtraction unit <NUM> acquires, from the threshold value acquisition unit <NUM>, a threshold value Dth (x, y) corresponding to the data to be processed In_i(x, y). Then, at step S504, the subtraction unit <NUM> subtracts the threshold value offset Ofs_i(x, y) calculated by the calculation unit <NUM> from the threshold value Dth (x, y) acquired from the threshold value acquisition unit <NUM>, and determines the subtraction result to be a quantized threshold value Dth_i(x, y).

On this occasion, when Dth_i(x, y) turns out to be negative, Dth_max + <NUM> is added thereto to update the quantized threshold value Dth_i(x, y). The foregoing keeps the quantized threshold value Dth_i in a range between <NUM> and Dth_max.

At step S505, the quantization unit <NUM> acquires, from the subtraction unit <NUM>, the quantized threshold value Dth_i(x, y) determined according to Formula <NUM> or Formula <NUM>. Subsequently, the quantization unit <NUM> compares the data to be processed In_i(x, y) with the quantized threshold value Dth_i(x, y). Subsequently, in accordance with the result of comparison, the quantization unit <NUM> outputs whether a dot at the pixel position (x, y) is"to be recorded (<NUM>)" or "not to be recorded (<NUM>)", as quantization data Out_i(x, y) of the data to be processed In_i(x, y).

For example, when In_i(x, y) ≥ Dth_i(x, y), the quantization unit <NUM> outputs "to be recorded (<NUM>)" as the quantization data Out_i(x, y) of the data to be processed In_i(x, y). When, on the other hand, In_i(x, y) < Dth_i(x, y), the quantization unit <NUM> outputs "not to be recorded (<NUM>)" as the quantization data Out_i(x, y) of the data to be processed In_i(x, y).

<FIG> illustrates ranges of threshold values determined "to be recorded (<NUM>)" among a plurality of threshold values <NUM> to Dth_max arranged in the threshold value matrix, when In_1 to In_5 is input. The horizontal axis represents the threshold value Dth, with the reference numeral <NUM> indicating Dth_max (maximum of the threshold values included in the dither matrix). Each line indicates a range of a threshold value in which the dots are arranged.

In the present example, Ofs_1 = <NUM> holds for K according to Formula <NUM>-<NUM>. Therefore, pixel positions corresponding to threshold values of <NUM> to In_1 - <NUM> (<NUM> to <NUM>) are set "to be recorded (<NUM>)". Similarly, Ofs_2 = In_1 holds for CMY according to Formula <NUM>-<NUM>, and In_1 to In_1 + In_2 - <NUM> (<NUM> to <NUM>) are set "to be recorded (<NUM>)". Similarly, Ofs_3 = In_1 + In_2 holds for C according to Formula <NUM>-<NUM>, and In_1 + In_2 to In_1 + In_2 + In_3 - <NUM> (<NUM> to <NUM>) are set "to be recorded (<NUM>)". Similarly, Ofs_4 = In_1 + In_2 + In_3 holds for M according to Formula <NUM>-<NUM>, and In_1 + In_2 + In_3 to In_1 + In_2 + In_3 + In_4 - <NUM> (<NUM> to <NUM>) are set "to be recorded (<NUM>)". Similarly, Ofs_5 = In_1 + In_2 + In_3 + In_4 holds for Y according to Formula <NUM>-<NUM>, and In_1 + In_2 + In_3 + In_4 to In_1 + In_2 + In_3+ In_4 + In_5 - <NUM> (<NUM> to <NUM>) are set "to be recorded (<NUM>)".

Therefore, with inter-color processing, the quantized threshold value Dth_i inherent to each color is determined by setting values input to each other as offset values, while using a common threshold value matrix. Subsequently, by using the newly calculated quantized threshold value Dth_i in the quantization process, dots can be arranged so that a dot arrangement pattern with a mixture of a plurality of colors has blue noise characteristics.

Next, an operation of a multi-order color integration unit <NUM> will be described. The multi-order color integration unit <NUM> integrates quantization data of the five colors, i.e., C, M, Y, K, and CMY, output from the quantization unit <NUM>, into quantization data of C, quantization data of M, quantization data of Y, and quantization data of K.

Specifically, the multi-order color integration unit <NUM> establishes, as the final quantization data of C, the sum (logical addition) of the quantization data of C and the quantization data of the tertiary color CMY, CMY representing superimposed dots of C, M, and Y. Similarly, the multi-order color integration unit <NUM> establishes, as the final quantization data of M, the sum (logical addition) of the quantization data of M and the quantization data of the tertiary color CMY. Similarly, the multi-order color integration unit <NUM> establishes, as the final quantization data of Y, the sum (logical addition) of the quantization data of Y and the quantization data of the tertiary color CMY.

<FIG> illustrates ranges of threshold values determined "to be recorded (<NUM>)" among a plurality of threshold values <NUM> to Dth_max arranged in the threshold value matrix as a result of integrating quantization data <NUM> of K, quantization data <NUM> of CMY, quantization data <NUM> of C, quantization data <NUM> of M, and quantization data <NUM> of Y into quantization data of C, quantization data of M, quantization data of Y, and quantization data of K.

Here, after the multi-order color integration process (step S304), the multi-order color integration unit <NUM> performs, at step S305, an index development process on respective integrated quantization data of C, M, Y, and K to determine a dot arrangement pattern corresponding to pixel position (x, y) for C, M, Y, and K, respectively. In other words, the CPU <NUM> of the printer <NUM> determines a dot arrangement pattern in which dots are not arranged for a pixel whose quantization data is "<NUM>", and determines, for a pixel whose quantization data is "<NUM>", a dot arrangement pattern corresponding to the level value corresponding to the pixel. The number (size) of dots to be recorded in the pixel position (x, y) of a pixel whose quantization data is "<NUM>"is set to a number (size) corresponding to the level value such as, for example, one dot (or small dot) when the level value of the pixel is <NUM>, and <NUM> dots (or large dot) when the level value of the pixel is <NUM>. Accordingly, it is possible to determine a dot arrangement pattern for C, M, Y, and K, respectively.

Next, an effect of the present embodiment will be described. <FIG> illustrates a result of a case where a conventional inter-color processing is performed on respective gradation data (<NUM>, <NUM>, <NUM>, <NUM>) of C, M, Y, and K, without performing the aforementioned multi-order color conversion. The order of processing is K, C, M, and Y. <FIG> illustrates the result of <FIG> using superimposed dots of multi-order colors.

As a result of performing quantization in order of K, C, M, and Y while shifting the threshold value, the threshold values of ink colors M and Y come around to overlap with K-dots, when the total value of each ink color has exceeded the maximum value of the threshold. On this occasion, ink colors M and Y overlapping with ink color K are affected by K, resulting in substantially achromatic color development. On the other hand, ink colors C and M recorded without being superimposed are not affected by K. As a result, the color shifts toward blue as a whole.

Next, it is considered to adjust the amount of C, M, and Y in response to the color shift toward blue. <FIG> illustrate the result of reducing the amount of C and M, and increasing the amount of Y in order to reduce blueness, so that respective gradation data of C, M, Y, and K turn out to be <NUM>, <NUM>, <NUM>, and <NUM>. In comparison with <FIG>, it can be seen that, in spite of the reduced amount of M, the number of M-dots that do not overlap with ink color K increases. Additionally, in spite of the increased amount of Y, all of Y overlaps with K and turns out to be substantially achromatic. Therefore, unintended color shift toward magenta may occur. As such, conventional quantization of inter-color processing makes the relation between ink amount and color development complicated, and therefore it is difficult to suppress color shift.

On the other hand, superimposition of dots with ink color K has not occurred in <FIG> illustrating the result of the present embodiment. In addition, the numbers of C-, M- and Y-dots are (<NUM>, <NUM>, <NUM>), maintaining the difference at CMY (<NUM>, <NUM>, <NUM>) of the input color signal. In other words, an achromatic tertiary color CMY is generated while maintaining the intended color tone. As a result, it is possible to suppress color shift occurring in conventional inter-color processing.

As has been described above, the present embodiment allows for suppressing color shift by generating achromatic dots preferentially when overlapping of dots occurs, in quantization that suppresses overlapping between inks colors.

In the present and subsequent embodiments, only the difference from the first embodiment will be described, assuming that the rest are similar to the first embodiment unless otherwise stated. In the first embodiment, an example has been described in which the tertiary color CMY is calculated based on the excess amount. However, there may be a case where the color shift is not sufficiently resolved, depending on the ratio of input C, M, and Y. <FIG> illustrates a result of multi-order color conversion in a case where respective gradation data of C, M, Y, and K are set to be <NUM>, <NUM>, <NUM>, and <NUM> in the first embodiment.

Formula <NUM> gives Δ = <NUM> + <NUM> + <NUM> + <NUM> - <NUM> = <NUM>, and Formula <NUM> gives CMY = Min(<NUM>/<NUM>, <NUM>, <NUM>, <NUM>) = <NUM>, and therefore the final multi-order color data turns out to be:<MAT>K = <NUM>
<MAT>CMY = <NUM> <MAT> <MAT> <MAT>.

The sum of the aforementioned multi-order color data of the five colors turns out to be <NUM>, which exceeds the value <NUM> of Dth_max. As a result, some of the M-dots are superimposed with ink color K, as illustrated in <FIG>. Therefore, in the present embodiment, an example will be described that allows the multi-order color conversion unit <NUM> to generate all the multi-order color data, without limited to CMY.

<FIG> illustrates combinations of multi-order color data that can be generated when there are four types of ink colors, namely, CMYK. There are four combinations of primary colors, namely, C, M, Y, and K, and six combinations of secondary colors, namely, CM, CY, CK, MY, MK, and YK. In addition, there are four combinations of tertiary colors, namely, CMY, CMK, CYK, and MYK, and there is only one combination of quaternary color, namely, CMYK. Here, a zero-order color denoted by W is paper white with no ink applied thereto.

In the following, there will be described a multi-order color conversion process according to the present embodiment, referring to <FIG> and <FIG>. <FIG> is a flowchart of the multi-order color conversion process according to the present embodiment. <FIG> illustrates the progress and results of multi-order color conversion, in which multi-order color data from the zero-order color W to the quaternary color CMYK are listed from left to right in order of priority.

In principle, the present embodiment sets the priority in ascending order of density (descending order of brightness) of multi-order colors when being superimposed. However, achromatic color CMY is provided with a higher priority than chromatic colors MY, CY, and CM. In the following, description is provided taking as an example for a case where respective gradation data of K, C, M, and Y input to the multi-order color conversion unit <NUM> are <NUM>, <NUM>, <NUM>, and <NUM>.

At step S1201, the multi-order color conversion unit <NUM> performs an initialization process. In the initialization process, only W among the multi-order color data is set to the maximum value of <NUM>, and all the other values are cleared to <NUM>. A row <NUM> in <FIG> represents an initialized state. Additionally, in the initialization process, a variable i used in the following processing is initialized to <NUM>.

Next, at step S1202, the multi-order color conversion unit <NUM> acquires, as the data to be processed (input value), the gradation data of the i-th color (i = <NUM> to <NUM>) from the top of K, C, M, and Y.

Next, at step S1203, the multi-order color conversion unit <NUM> acquires the multi-order color data of an effective color, referring to the order of priority. Here, an effective color refers to a color set to a value of one or higher in <FIG>. However, a color that cannot be superimposed with the i-th color ink to be processed is excluded from the effective colors. It is assumed in the present embodiment that identical ink colors cannot be superimposed and when, for example, the gradation data of K is selected as the data to be processed, K, YK, MK, MYK, CYK, CMK, and CMYK are excluded from the effective colors. In the example of <FIG>, only W being set to a value "<NUM>" becomes the effective color, when the gradation data of K is selected as the data to be processed after the initial state indicated by the row <NUM>.

At step S1204, the multi-order color conversion unit <NUM> uses the data to be processed acquired at step S1202 and the multi-order color data acquired at step S1203 to superimpose the color of the data to be processed (the i-th color from the top of K, C, M, and Y) on the effective color of the multi-order color data. A row <NUM> in <FIG> indicates a result of selecting the gradation data of K as the data to be processed after the initial state indicated by the row <NUM>, and superimposing the color of the data to be processed on the effective color of the multi-order color data acquired at step S1203. As indicated by the row <NUM>, superimposing the color K = <NUM> of the data to be processed on the effective color W = <NUM> of the multi-order color data acquired at step S1203 results in W = <NUM> - <NUM> = <NUM> and K = <NUM>.

Next, at step S1205, the multi-order color conversion unit <NUM> determines the rest of the data to be processed acquired at step S1202, which are not superimposed on the effective color. Referring to the row <NUM>, all of K (<NUM>) has been superimposed on W and the rest turns out to be <NUM> in this case.

At step S1206, the multi-order color conversion unit <NUM> determines whether or not the rest of the data acquired at step S1205 is <NUM>. When, as a result of the determination, the rest of the data acquired at step S1205 is <NUM>, the process flow proceeds to step S1207, or the process flow proceeds to step S1203 when the rest of the data acquired at step S1205 is not <NUM>.

At step S1207, the multi-order color conversion unit <NUM> determines whether or not the gradation data of all the colors K, C, M, and Y have been acquired at step S1202 as the data to be processed. When, as a result of the determination, the gradation data of all the colors K, C, M, and Y have been acquired at step S1202 as the data to be processed, the multi-order color conversion unit <NUM> outputs the multi-order color data of each color to the dither processing unit <NUM>, and terminates the process according to the flowchart of <FIG>. When, on the other hand, there remains gradation data of a color among K, C, M, and Y which has not been acquired at step S1202 as the data to be processed, the value of the variable i is incremented by one and the process flow proceeds to step S1202.

A row <NUM> in <FIG> indicates the result of processing C, which is the i-th, i.e., the second color. C is to be superimposed on W, which is the effective color with the highest priority. Since W has a value of <NUM>, the entirety of C is superimposed on W, which results in C being <NUM> and W being <NUM> - <NUM> = <NUM>. Since the rest of C is <NUM>, the process flow proceeds to step S1207 according to the determination at step S1206, and returns to step S1202 with M, which is i = <NUM>, i.e., the third color to be processed.

A row <NUM> in <FIG> indicates a result of processing M, which is the i-th, i.e., the third color. M is first superimposed on W, which is the effective color with the highest priority. Since W has a value of <NUM>, it is impossible to superimpose the entirety of M on W. As a result of superimposing <NUM> of M on W, W becomes <NUM>, with the rest of M being <NUM> - <NUM> = <NUM>. Since the rest of M is not <NUM>, the process flow returns to step S1203 according to the determination at step S1206. Acquiring the effective color for M again at step S1203 leaves C as the effective color with the highest priority, and therefore <NUM> of C is superimposed on M. As a result, CM turns out to be <NUM>, updating C to <NUM> - <NUM> = <NUM>.

Similarly, a row <NUM> in <FIG> indicates the result of processing Y, which is the i-th, i.e., the fourth color. Y is superimposed with CM being the effective color with the highest priority. As a result, CMY turns out to be <NUM> and CM is updated to <NUM> - <NUM> = <NUM>.

Processing of all the colors of the present embodiment is completed as has been described above, and the multi-order color data of K = <NUM>, CMY = <NUM>, CM = <NUM>, C = <NUM>, and M = <NUM> are output to the dither processing unit <NUM>.

<FIG> illustrates a result of the present embodiment. Here, the order of processing by the inter-color processing unit <NUM> is the order of visual prominence (higher density). In the present embodiment, the aforementioned order is K, CM, CMY, C, and M.

Unlike the results illustrated in <FIG>, it turns out that the substantially achromatic secondary color MK is not generated, and the chromatic color CM is generated. In other words, with the intended color tone being maintained, it is possible to suppress the color shift caused by the inter-color processing.

As has been described above, the present embodiment allows for suppressing color shift even in a case where the ratio of input C, M, and Y is deviated when overlapping of dots occurs, in quantization that suppresses overlapping between inks colors.

In the aforementioned embodiments, an example using four ink colors C, M, Y, and K has been described. However, the type and number of ink colors are not limited to the aforementioned embodiments described above, and ink colors such as, for example, Gray (Gr), Light cyan (Lc), and Light magenta (Lm) may also be used as high-brightness light-color ink. In this case, it is desirable to raise the priority of the achromatic color Gr, or the achromatic tertiary color LcLmY generated by combining Lc, Lm, and Y.

In addition, it is also possible to use particular color ink such as Red (R), Green (g), and Blue (b) at the same time. Similarly in this case, color shift can be suppressed by raising the priority of the achromatic secondary colors CR, MG, and YB.

In addition, although the aforementioned embodiment controls overlapping of colors using the priority of effective colors, overlapping of dots can be controlled similarly to the first embodiment according to the following equation.

For example, let us assume that respective gradation data of K, C, M, and Y are <NUM>, <NUM>, <NUM>, <NUM>. In this case, Formula <NUM> gives Δ = <NUM> + <NUM> + <NUM> + <NUM> - <NUM> = <NUM> and Formula <NUM> gives CMY = Min(<NUM>/<NUM>, <NUM>, <NUM>, <NUM>) = <NUM>, and therefore the multi-order color data turns out to be as follows:<MAT><MAT> <MAT> <MAT> <MAT>.

With the Dth_max excess amount Δ2 being <NUM> - <NUM> = <NUM> at this time point, the value of the secondary color CM is calculated from Formula <NUM>: <MAT> which gives CM = Min(<NUM>, <NUM>, <NUM>) = <NUM>, and the final multi-order color data turns out to be as:<MAT><MAT><MAT> <MAT> <MAT> <MAT>.

In addition, although an example has been described in the aforementioned embodiments in which inter-color processing is performed by subtracting an offset amount from the threshold, the method of inter-color processing is not limited to the aforementioned embodiments. For example, the two instances of inter-color processing described below provide an identical result. Process <NUM> is one that is described in the aforementioned embodiments. Process <NUM> multiplies the input value with an offset value to quantize the former, and subsequently subtracts the quantization result of the first color. <IMG>
<IMG>.

Although there is a disadvantage with the process <NUM> in that it refers to the output result of the other color (Out1) and therefore cannot perform parallel processing, both processes can acquire equivalent results.

In addition, although an example has been described in the aforementioned embodiments in which a dither process according to a threshold value matrix is used as the quantization process, the method of quantization process is not limited to the aforementioned embodiments. For example, in a known error diffusion, equivalent inter-color processing can be realized by adding an offset to the threshold value of the second color in a pixel with the quantization result of the first color being "to be recorded (<NUM>)". However, the aforementioned case also refers to the output result (Out1) of the other color, and therefore it is impossible to perform parallel processing.

Further, although the aforementioned embodiments have been described using a serial recording apparatus as illustrated in <FIG>, the aforementioned embodiments can also support full-line recording apparatuses.

Here, the numerical values, processing timing, processing order, type and number of data, or the like used in the foregoing description are provided as an example for a specific description, and are not intended to limit the invention to such an example.

In addition, a part or all of the aforementioned embodiments and variations may be used in combination as appropriate. In addition, a part or all of the aforementioned embodiments and variations may be selectively used.

Claim 1:
An image processing apparatus comprising:
first generating means for generating gradation data corresponding to an achromatic color generated by combining three or more colors among a plurality of colors, for an excess amount of a total gradation value exceeding a predetermined value, the total gradation value being a sum of gradation values of the plurality of colors used for recording a pixel of interest, and generating gradation data corresponding to the plurality of colors, based on the generated gradation data corresponding to the achromatic color; and
second generating means for quantizing the gradation data generated by the first generating means, and generating data to control recording of dots corresponding to the pixel of interest, wherein
the predetermined value is a maximum value of the normalized gradation values, indicating whether or not to record the dots in an overlapping manner, in case it is determined in a dithering process based on a preset dither pattern that the dots corresponding to the total gradation value are to be recorded.