Image processing apparatus generating conversion table using input-side profile and output-side profile
Granted 7 Aug 2018 · no office action yet
Current assignee: BROTHER KOYO KABUSHIKI KAISHA · originally Brother Industries Limited
Law firm: Law firm · Log in to unlock
Attorney: Attorney · Log in to unlock
Inventors: Kazuhide Sawada · Examiner: Christopher D Wait · AU 2672 · TC 2600
Life of the application
8 dated eventsAbstract
An image processing apparatus specifies j number of input-side profiles from among J number of input-side profiles in a target file which has K number of sets of object data defining color in a specific color space. The J number of input-side profiles are for converting a value in the specific color space to a value in a first color space. A conversion table is generated using one of the j number of input-side profiles and an output-side profile, and for converting a value in the specific color space to a value in the second color space without generating a value in the first color space. The output-side profile is for converting a value in the first color space to a value in the second color space. The apparatus converts k number of sets of object data correlated to one of the j number of input-side profiles using the table.
Description
15 parts›CROSS REFERENCE TO RELATED APPLICATION
This application claims priority from Japanese Patent Application No. 2015-253613 filed Dec. 25, 2015. The entire content of the priority application is incorporated herein by reference.
›TECHNICAL FIELD
The present disclosure relates to an image processing apparatus that performs color conversion on object data provided in a target file and outputs an image represented by the target file.
›BACKGROUND
In a conventional method, when a printer acquires a PDF file, the printer performs a sequence of color conversion processes on object data in the PDF file using first an input-side profile provided in the PDF file and then an output-side profile stored on the printer. Next, the printer uses the image data produced from this color conversion to print an image represented by the PDF file.
›SUMMARY
However, there is need for a technology capable of performing color conversion of object data more rapidly. Therefore, it is an object of the present disclosure to provide a technology that enables an image processing apparatus to perform rapid color conversion on object data in a target file.
In order to attain the above and other objects, the disclosure provides an image processing apparatus. The image processing apparatus includes processor and a memory storing computer-readable instructions therein. The computer-readable instructions, when executed by the processor, causes the image-processing apparatus to perform: acquiring a target file having K number of sets of object data and J number of input-side profiles where K is an integer larger than or equal to two and J is an integer larger than or equal to two, each of the K number of sets of object data defining color by a coordinate value in a specific color space, each of the K number of sets of object data being correlated to one of the J number of input-side profiles, each of the J number of input-side profiles including data for converting a coordinate value in the specific color space to a coordinate value in a first color space; specifying j number of input-side profiles from among the J number of input-side profiles where j is an integer larger than or equal to two and smaller than or equal to J; generating a conversion table by using at least one of the j number of input-side profiles and an output-side profile after the j number of input-side profiles are specified, the output-side profile including data for converting a coordinate value in the first color space to a coordinate value in the second color space, the conversion table including data for converting a coordinate value in the specific color space to a coordinate value in the second color space without generating a coordinate value in the first color space; generating k number of sets of partial image data by converting respectively k number of sets of object data using the conversion table where k is an integer larger than or equal to two and smaller than or equal to K, each of the k number of sets of object data among the K number of sets of object data being correlated to one of the j number of input-side profiles, each of the k number of sets of partial image data having a plurality of pixel values respectively representing a plurality of coordinate values in the second color space; and outputting an image represented by the target file using the k number of sets of partial image data.
According to another aspects, the disclosure provides a non-transitory computer readable storage medium storing a set of program instructions thereon that, when executed by a computer, cause the computer to perform operations including: acquiring a target file having K number of sets of object data and J number of input-side profiles where K is an integer larger than or equal to two and J is an integer larger than or equal to two, each of the K number of sets of object data defining color by a coordinate value in a specific color space, each of the K number of sets of object data being correlated to one of the J number of input-side profiles, each of the J number of input-side profiles including data for converting a coordinate value in the specific color space to a coordinate value in a first color space; specifying j number of input-side profiles from among the J number of input-side profiles where j is an integer larger than or equal to two and smaller than or equal to J; generating a conversion table by using at least one of the j number of input-side profiles and an output-side profile after the j number of input-side profiles are specified, the output-side profile including data for converting a coordinate value in the first color space to a coordinate value in the second color space, the conversion table including data for converting a coordinate value in the specific color space to a coordinate value in the second color space without generating a coordinate value in the first color space; generating k number of sets of partial image data by converting respectively k number of sets of object data using the conversion table where k is an integer larger than or equal to two and smaller than or equal to K, each of the k number of sets of object data among the K number of sets of object data being correlated to one of the j number of input-side profiles, each of the k number of sets of partial image data having a plurality of pixel values respectively representing a plurality of coordinate values in the second color space; and outputting an image represented by the target file using the k number of sets of partial image data.
›BRIEF DESCRIPTION OF THE DRAWINGS
The particular features and advantages of the disclosure as well as other objects will become apparent from the following description taken in connection with the accompanying drawings, in which:
FIG. 1 is a block diagram illustrating a configuration of a communication system according to a first embodiment;
FIG. 2 is a schematic diagram illustrating an overview of a process of the first embodiment;
FIG. 3 is a flowchart illustrating a printing process according to the first embodiment;
FIG. 4 is a flowchart illustrating a grouping process shown in FIG. 3 ;
FIG. 5 is an explanatory diagram illustrating the grouping process shown in FIG. 4 ;
FIG. 6 is a diagram including a flowchart illustrating a similarity index value calculating process and an explanatory diagram illustrating sample cases A and B in which similarity index values are different from each other;
FIG. 7 is a flowchart illustrating a conversion table generating process shown in FIG. 3 ;
FIG. 8 is an explanatory diagram illustrating the conversion table generating process shown in FIG. 7 ;
FIG. 9 is a flowchart illustrating a drawing process shown in FIG. 3 ; and
FIG. 10 is an explanatory diagram illustrating processes of second to fourth embodiments.
›DETAILED DESCRIPTION · 1 of 10
First Embodiment
Structure of a Communication System 2
As shown in FIG. 1 , a communication system 2 includes a printer 10 , and a terminal apparatus 50 . The printer 10 and the terminal apparatus 50 are connected to a local area network (LAN) 4 and can communicate with each other over the LAN 4 . The LAN 4 may be wired or wireless. When the terminal apparatus 50 provides a PDF file 100 to the printer 10 via the LAN 4 , for example, the printer 10 can print an image represented by the PDF file 100 .
Structure of the Printer 10
The printer 10 is a peripheral apparatus (that is, an auxiliary apparatus that interacts with the terminal apparatus 50 and the like) that implements a printing function. The printer 10 includes an operating interface (IF) 12 , a display 14 , a network interface (IF) 16 , a printing engine 18 , and a controller 30 that are connected to each other via a bus line. The operating interface 12 is configured of a plurality of keys. The user can input various commands into the printer 10 by operating the operating interface 12 . The display 14 is an apparatus that displays various types of information. The display 14 functions as a touchscreen. That is, the display 14 functions as an operating interface that the user can operate. The network interface 16 is connected to the LAN 4 . The printing engine 18 is provided with an inkjet printing mechanism or a laser printing mechanism, for example.
The controller 30 includes a CPU 32 , and a memory 34 . The CPU 32 executes various processes according to programs 36 stored in the memory 34 . The memory 34 is configured of one or a plurality of memory devices. The memory 34 includes a nonvolatile area 34 a for storing information that is not lost when the power to the printer 10 is turned off, and a volatile area 34 b for storing information that is lost when the power to the printer 10 is turned off. The information in the nonvolatile area 34 a is stored at the factory prior to the printer 10 being shipped. Information is stored in the volatile area 34 b as the CPU 32 is executing processes.
In addition to the programs 36 , the nonvolatile area 34 a stores a first output profile OP 1 , a second output profile OP 2 , and an independent output profile OP 3 . The first and second output profiles OP 1 and OP 2 are output-side International Color Consortium (ICC) profiles that are used together with an input profile IP 1 included in the Portable Document Format (PDF) file 100 . The independent output profile OP 3 is an output-side ICC profile to be used alone, rather than together with the input profile IP 1 .
The first output profile OP 1 includes data for sets of converting coordinate values in a device-independent color space that does not depend on the characteristics of a device to sets of coordinate values in a standard color space. The device-independent color space used in the embodiment is the L*a*b* color space, but the XYZ color space or the like may be used in a variation. Below, L*a*b* will be abbreviated as “Lab.” Further, the standard color space is predetermined. The RGB color space is used as the standard color space in the embodiment, but another color space may be used as a variation.
The first output profile OP 1 may be configured of a grid that correlates a plurality of sets of coordinate values (17 3 grid points, for example) in the Lab color space with a plurality of sets of coordinate values in the RGB color space, or may be represented by a function for converting sets of coordinate values in the Lab color space to sets of coordinate values in the RGB color space. The other output profiles OP 2 and OP 3 and the input profiles IP 1 and the like are also expressed as grids or functions.
The second output profile OP 2 includes data for converting sets of coordinate values in a standard color space (that is, the RGB color space), i.e., sets of coordinate values that have been converted from the Lab color space by the first output profile OP 1 , to sets of coordinate values in a device-dependent color space that depends on characteristics of the printer 10 . The device-dependent color space for the printer 10 is the CMYK color space in the embodiment, but in a variation of the embodiment may be a color space having more colors than the four CMYK colors (the six colors CMYK plus orange and green; or eight colors, for example).
The independent output profile OP 3 includes data for converting sets of coordinate values in a standard color space (that is, the RGB color space) to sets of coordinate values in a device-dependent color space that depends on characteristics of the printer 10 (that is, the CMYK color space).
Both the output profiles OP 2 and OP 3 described above convert sets of coordinate values in the RGB color space to sets of coordinate values in the CMYK color space, but these profiles have the following differences. In the second output profile OP 2 , the C value is only dependent on the R value and not the G and B values. Similarly, the M and Y values are only dependent on the G and B values, respectively. Thus, each of the CMY values is dependent only on one of the RGB values in the second output profile OP 2 . In the independent output profile OP 3 , on the other hand, each of the CMY values is dependent on two or more of the RGB values. Note that the output profiles OP 2 and OP 3 may be the same profile in a variation of the embodiment.
The volatile area 34 b stores a process table PT that is produced when the CPU 32 executes the process of FIG. 2 described later. The process table PT is used for performing color conversion on object data OD 1 and the like stored in the PDF file 100 .
Structure of the PDF File 100
The PDF file 100 includes object identifiers, such as “ 1 obj”, “ 2 obj”, and the like and an entry describing the object identified by each object identifier. For example, the entry “/ICCBased 11 obj” is provided for “ 10 obj”. This signifies that the input profile IP 1 entered as the description for identifier “ 11 obj” is an input-side ICC profile. The entry provided for object identifier “ 12 obj” includes “ColorSpace 10 obj” and the object data OD 1 . This signifies that color conversion should be performed on the object data OD 1 using the input profile defined in “ 10 obj”, i.e., the input profile IP 1 entered as the description for “ 11 obj.” In other words, the content described in “ 10 obj”-“ 12 obj” correlates the input profile IP 1 with the object data OD 1 on which color conversion using the input profile IP 1 is to be performed.
›DETAILED DESCRIPTION · 2 of 10
Similarly, an input profile IP 2 and the object data OD 2 are correlated in the entries for “ 20 obj”-“ 22 obj.” Note that correlations are not limited to those between only a single input profile, such as the input profile IP 1 , and a single set of object data, such as the object data OD 1 . For example, two or more sets of object data including the object data OD 1 may be correlated with the input profile IP 1 . Further, all sets of object data do not necessarily be correlated with any input profile. There may exist object data with which no input profile has been associated. With this configuration, the PDF file 100 may include a plurality of sets of object data and a plurality of input profiles, and the plurality of sets of object data may include a set of object data with which input profiles have been correlated and a set of object data with which input profiles have not been correlated.
Each of the input profiles IP 1 and IP 2 includes data for converting sets of coordinate values in a device-dependent color space (the RGB color space in the embodiment) that is dependent on characteristics of the device generating the PDF file 100 (the terminal apparatus 50 , for example) to sets of coordinate values in a device-independent color space (i.e., the Lab color space).
Each set of the object data OD 1 and OD 2 specifies colors defined by sets of coordinate values in the device-dependent color space (i.e., the RGB color space) for the device that generated the PDF file 100 . Each set of the object data OD 1 and OD 2 may be bitmap data (i.e., an image object) configured by a plurality of pixels specifying sets of coordinate values in the RGB color space, may be text format data (i.e., a text object), or may be data of another format (for example, data for defining a tile pattern or data for drawing a graph).
Further, the description “subtype/image” and the object data OD 1 are entered for “ 12 obj.” This signifies that the type of the object data OD 1 is an image object. Similarly, the description “subtype/text” and the object data OD 2 are entered for “ 22 obj.” This signifies that the type of the object data OD 2 is a text object.
Further, the description “ 12 obj/sizeXXX” is entered for “ 99 obj.” This signifies that the size of the object represented by the object data OD 1 entered as the description for “ 12 obj” is “XXX.” This size does not denote the pixel number of the object data OD 1 , but rather the height and width of the object in the image represented by the PDF file 100 . Similarly, the size of the object image represented by the object data OD 2 is “YYY” as indicated in the description for “ 99 obj.”
Overview of the Embodiment
Next, the method in which the printer 10 prints an image represented by the PDF file 100 will be described with reference to FIG. 2 . Prior to describing the method of the embodiment, a method for comparison will be described.
In the comparative example, the printer generates Lab image data LD 1 by converting the object data OD 1 using the input profile IP 1 , generates RGB image data RD 1 by converting the Lab image data LD 1 using the first output profile OP 1 , and generates CMYK image data CD 1 by converting the RGB image data RD 1 using the second output profile OP 2 . The printer similarly generates data LD 2 , RD 2 , and CD 2 from the object data OD 2 through sequential conversions using the profiles IP 2 , OP 1 , and OP 2 . Thus, the method of the comparative example requires three conversion processes for each set of object data, which can lengthen the time for printing.
In the method of the embodiment, the printer 10 executes the following process when, for example, the two input profiles IP 1 and IP 2 are similar to each other. Specifically, the printer 10 calculates a plurality of sets of CMYK coordinate values by converting a plurality of predetermined sets of RGB coordinate values using the input profile IP 1 , the first output profile OP 1 , and the second output profile OP 2 in sequence and generates a conversion table CT 1 that correlates the plurality of predetermined sets of RGB coordinate values with the plurality of sets of CMYK coordinate values. Next, the printer 10 uses the conversion table CT 1 to convert the object data OD 1 and OD 2 respectively associated with the similar input profiles IP 1 and IP 2 to generate corresponding CMYK image data CD 1 ′ and CD 2 ′ directly, without needing to convert the object data to a set of coordinate values in the Lab color space or convert the set of coordinate values in the Lab space to a set of coordinate values in the RGB color space. Here, the object data OD 2 is not converted using the input profile IP 2 , but is converted using the conversion table CT 1 having the conversion characteristics of the input profile IP 1 , which is similar to the input profile IP 2 . Therefore, the CMYK image data CD 2 ′ can accurately render colors in the image represented by the object data OD 2 . The method of the embodiment requires some time to generate the conversion table CT 1 using the input profile IP 1 , but eliminates the need to perform three conversion processes for each set of object data. Hence, the method of the embodiment can shorten the time required for printing from that required in the comparative example.
Note that after generating each of the sets of CMYK image data CD 1 ′ and CD 2 ′, the printer 10 executes a halftone process on the multi-level ( 256 gradations, for example) pixel values in the CMYK image data CD 1 ′ and CD 2 ′ to produce respective sets of CMYK image data (hereinafter called “print data”) having relatively few gradations (two or three levels, for example). Next, the printer 10 supplies the print data to the printing engine 18 , instructing the printing engine 18 to print an image represented by the print data, i.e., the image represented by the PDF file 100 .
Printing Process
Next, steps in a printing process executed by the CPU 32 of the printer 10 will be described with reference to FIG. 3 . The CPU 32 continuously executes the process of FIG. 3 while the power to the printer 10 is on. In S 10 of FIG. 3 , the CPU 32 monitors the network interface 16 to determine whether a PDF file 100 has been acquired from the terminal apparatus 50 via the network interface 16 . The CPU 32 advances to S 20 when a PDF file 100 has been acquired (S 10 : YES).
›DETAILED DESCRIPTION · 3 of 10
In S 20 the CPU 32 executes a grouping process for grouping together the input profile IP 1 and other input profiles in the PDF file 100 that resemble each other (described later with reference to FIG. 4 ). Through the grouping process, the CPU 32 generates the process table PT in the volatile area 34 b (see FIG. 1 ).
In S 30 the CPU 32 executes a conversion table generating process (described later with reference to FIG. 7 ) for generating a conversion table (see the conversion table CT 1 in FIG. 2 ) for each group identified in S 20 . Through the conversion table generating process, the CPU 32 generates a conversion table for each group in the process table PT.
In S 40 the CPU 32 executes a drawing process (described later with reference to FIG. 9 ). The drawing process includes a process for generating CMYK image data from all the sets of object data using the conversion tables generated in S 30 , a process for generating print data, and the like.
In S 50 the CPU 32 supplies the print data generated in S 40 to the printing engine 18 and controls the printing engine 18 to print an image represented by the print data.
In S 60 the CPU 32 deletes the process table PT and each of the conversion tables that were generated in S 20 and S 30 , respectively, from the volatile area 34 b . Hence, all information in the process table PT generated on the basis of the PDF file 100 is not used for printing other PDF files. After completing step S 60 , the process of FIG. 3 ends.
Grouping Process
Next, steps in the grouping process executed in S 20 of FIG. 3 will be described with reference to FIG. 4 . While not shown in FIG. 4 , the CPU 32 first generates the process table PT in the volatile area 34 b at the beginning of the process in FIG. 4 . As shown in FIG. 5 , the process table PT holds records of correlating information correlating group IDs, profile IDs, profile data, and data IDs. The group IDs and the profile IDs serve to identify groups and input profiles, respectively. Profile data is the data generated from input profiles. The data IDs serve to identify object data associated with the input profiles. When the process table PT is first generated, correlating information has not yet been recorded in the process table PT.
In S 100 of FIG. 4 , the CPU 32 searches each object identifier in the PDF file 100 in ascending order and specifies a single input profile for the detected object identifier (the input profile IP 1 in FIG. 1 , for example). In the following description, the specified input profile will be called the “target input profile.”
In S 102 the CPU 32 uses the target input profile identified in S 100 to generate target profile data that includes M number of sets of coordinate value data where M is an integer of 2 or greater. More specifically, as illustrated in the example of S 100 in FIG. 5 , the CPU 32 uses the input profile IP 1 as the target input profile to convert M number of predetermined sets of RGB coordinate values P 1 -PM to M number of sets of Lab coordinate values Q 1 -QM.
For example, assuming the target input profile is a function-type profile, the CPU 32 calculates a set of Lab coordinate values by plugging one set of RGB coordinate values targeted for conversion into the function. As another example, the target input profile may be a grid-type profile. In this case, when the target input profile includes one set of RGB coordinate values that matches one set of RGB coordinate values to be converted, the CPU 32 identifies a set of Lab coordinate values correlated with the set of RGB coordinate values in the target input profile. However, when the target input profile does not include one set of RGB coordinate values matching that to be converted, the CPU 32 executes an interpolation process using one or more sets of RGB coordinate values in the target input profile that are near each set of RGB coordinate value being converted in order to calculate a corresponding set of Lab coordinate values. Note that when the target input profile is a grid-type profile, the value of M is preferably a smaller value (256, for example) than the number of grid points in the target input profile (17 3 , for example). In this way, the CPU 32 can more quickly execute a process described later for determining similarity (or, similarity index value calculating process) (see S 122 and S 130 of FIG. 4 ) than if the target input profile itself were recorded in the process table PT. However, the CPU 32 may record the target input profile itself in the process table PT in a variation of the embodiment.
After acquiring the M number of sets of Lab coordinate values Q 1 -QM, the CPU 32 generates target profile data PD 1 having coordinate value data that correlates the M number of sets of RGB coordinate values P 1 -PM with the M number of sets of Lab coordinate values Q 1 -QM.
Note that the M number of sets of RGB coordinate values P 1 -PM include at least one set of coordinate values specifying achromatic colors (for example, P 1 (0, 0, 0) and PM(255, 255, 255)). As described with reference to FIG. 2 , the printer 10 of the embodiment can convert the object data OD 2 using the conversion table CT 1 that includes conversion characteristics of the input profile IP 1 rather than converting the object data OD 2 using the input profile IP 2 associated with the object data OD 2 . Thus, if a configuration were employed for determining whether two input profiles IP 1 and IP 2 are similar without regard for their achromatic-related conversion characteristics, conversion characteristics that differ greatly from the conversion characteristics related to achromatic colors in the input profile IP 2 could be reflected in the object data OD 2 , that is, conversion characteristics related to achromatic colors in the input profile IP 1 could be reflected. Since conversion characteristics related to achromatic colors have a greater impact on converted colors than other colors, the converted colors obtained from the object data OD 2 could differ greatly from the colors actually defined in the PDF file 100 . To avoid this occurrence, the CPU 32 in the embodiment uses the sets of coordinate values P 1 and PM specifying achromatic colors to generate the target profile data PD 1 . In this way, the CPU 32 can consider achromatic-related conversion characteristics when determining whether two input profiles IP 1 and IP 2 are similar. As a result, the CPU 32 can suppress the output (i.e., printing) of colors that differ greatly from the colors actually defined in the PDF file 100 . Note that a set of coordinate values specifying achromatic colors may be omitted from the M number of sets of RGB coordinate values P 1 -PM in a variation of the embodiment.
›DETAILED DESCRIPTION · 4 of 10
In S 110 of FIG. 4 , the CPU 32 determines whether at least one record of standard profile data is recorded in the process table PT. Standard profile data denotes profile data present in the process table PT when the CPU 32 reaches S 110 . Since information has not yet been recorded in the process table PT the first time the CPU 32 performs the process of S 110 (S 110 : NO), the CPU 32 advances to S 150 .
In S 150 the CPU 32 records new correlating information in the process table PT. More specifically, the CPU 32 generates a new group ID for identifying a new group. The CPU 32 sets the profile ID to the object identifier (“ 11 ojb”, for example) of the target input profile (the input profile IP 1 , for example) in the PDF file 100 . The CPU 32 also searches the PDF file 100 to identify the object identifier (“ 12 obj”, for example) for the object data (the object data OD 1 , for example) associated with the target input profile (the input profile IP 1 , for example) and sets the data ID to the detected object identifier. If a plurality of sets of object data is correlated with the target input profile, the CPU 32 detects all of the object identifiers, and sets each of the detected object identifiers as a data ID. Next, the CPU 32 records new correlating information in the process table PT correlating the group ID generated above, the profile ID set above, the target profile data generated in S 102 , and the data IDs set above. In the example of FIG. 5 , the new correlating information recorded in the process table PT includes the group ID G 1 , the profile ID “ 11 obj”, the profile data PD 1 , and the data ID “ 12 obj”. After completing the process in S 150 , the CPU 32 advances to S 170 .
In S 170 the CPU 32 determines whether all input profiles in the PDF file 100 have been specified in S 100 . Specifically, the CPU 32 determines whether other input profiles are recorded in the PDF file 100 subsequent to the most recent target input profile. The CPU 32 ends the process in FIG. 4 when there is no other input profile (S 170 : YES). The CPU 32 repeats the process in S 100 -S 110 described above when confirming that another input profile is recorded in the PDF file 100 (S 170 : NO).
The second and subsequent times that the CPU 32 executes the process of S 110 , at least one record of profile data is recorded in the process table PT. Accordingly, in S 110 the CPU 32 determines that at least one record of standard profile data is recorded in the process table PT (S 110 : YES) and advances to S 120 .
In S 120 the CPU 32 specifies one group by referencing the process table PT. More specifically, the CPU 32 specifies a group ID (the group ID G 1 in the example of FIG. 5 ). In the following description, the group ID specified in S 120 and the group itself will be respectively called the “target group ID” and the “target group.”
In S 122 the CPU 32 uses the target profile data to calculate a similarity index value for each set of standard profile data in the target group. Next, the similarity index value calculating process of S 122 will be described while referring to the flowchart in FIG. 6 . In the example of FIG. 6 , the input profile IP 2 is set as the target input profile (S 100 ); the target profile data PD 2 is set to the profile data generated from the input profile IP 2 (S 102 ); the group identified by the group ID G 1 is the target group (S 120 ); and the profile data PD 1 correlated with the group ID G 1 (see FIG. 5 ) is the standard profile data.
In S 200 of the similarity index value calculating process, the CPU 32 calculates the distance (i.e., the Euclidean distance) between the set of Lab coordinate values in the target profile data PD 1 calculated from one set of RGB coordinate values and the set of Lab coordinate values in the target profile data PD 2 calculated from the same one set of RGB coordinate values for each of the M number of sets of RGB coordinate values P 1 -PM (see FIG. 5 ) used for calculating the profile data. The resulting distances calculated in S 200 are M number of distances D 1 -DM.
In S 210 the CPU 32 calculates the arithmetic average D ave of the M number of distances D 1 -DM. The larger the arithmetic average D ave , the greater the difference in conversion characteristics between the two sets of target profile data PD 1 and PD 2 .
In S 220 the CPU 32 calculates a similarity index value IV by subtracting the arithmetic average D ave from a predetermined value (128 in the embodiment). The larger the similarity index value IV, the smaller the difference in conversion characteristics between the two sets of target profile data PD 1 and PD 2 and the greater the similarity between the two sets of target profile data PD 1 and PD 2 (i.e., the input profiles IP 1 and IP 2 ). After completing the process in S 220 , the process of FIG. 6 ends.
When a plurality of records of standard profile data is present in the process table PT in association with the target group ID, in S 122 of FIG. 4 the CPU 32 calculates one similarity index value IV for each of the records of standard profile data. Note that while reference numbers PD 1 and PD 2 are indicated in the flowchart of FIG. 6 , similarity index values IV are calculated in the same way for other profile data. After completing the process of S 122 in FIG. 4 , the CPU 32 advances to S 130 .
In S 130 the CPU 32 determines whether the largest similarity index value among the one or more similarity index values calculated in S 122 is greater than a predetermined threshold value (120, for example). If the largest similarity index value is greater than the threshold value (S 130 : YES), the CPU 32 determines that standard profile data similar to the target profile data exists in the target group and advances to S 160 . That is, the CPU 32 determines that the standard profile corresponding to the largest similarity index is similar to the target profile data.
In S 160 the CPU 32 records the new correlating information in the process table PT. More specifically, the CPU 32 first sets the profile ID to the object identifier (“ 21 obj”, for example) for the target input profile (the input profile IP 2 , for example) in the PDF file 100 . Next, the CPU 32 searches the PDF file 100 to identify the object identifier (“ 22 obj”, for example) for the object data (the object data OD 2 , for example) associated with the target input profile (the input profile IP 2 , for example) and sets the data ID to the identified object identifier. If a plurality of sets of object data is correlated with the target input profile, the CPU 32 detects all of the object identifiers, and sets each of the detected object identifiers as a data ID. Next, the CPU 32 records new correlating information in the process table PT that correlates the target group ID, the profile ID set above, the target profile data generated in S 102 , and the data ID set above. In the example of Case A in FIG. 6 , the new correlating information recorded in the process table PT includes the group ID G 1 , the profile ID “ 21 obj”, the target profile data PD 2 , and the data ID “ 22 obj”. After completing step S 160 , the CPU 32 advances to S 170 described above.
›DETAILED DESCRIPTION · 5 of 10
On the other hand, if the CPU 32 determines in S 130 that the largest similarity index value is smaller than or equal to the threshold value (S 130 : NO), the CPU 32 determines that standard profile data similar to the target profile data does not exist in the target group, and advances to S 140 .
In S 140 the CPU 32 determines whether all groups in the process table PT have been specified in S 120 . When there remains a group in the process table PT that have not been identified (S 140 : NO), the CPU 32 repeats the process in S 120 -S 130 described above. However, when all groups in the process table PT have been identified (S 140 : YES), the CPU 32 advances to S 150 described above. Through this process, the CPU 32 records new correlating information in the process table PT that includes a new group ID and the like. In the example of Case B of FIG. 6 , the CPU 32 has recorded new correlating information that includes the group ID G 2 , the profile ID “ 21 obj”, the profile data PD 2 , and the data ID “ 22 obj”.
After repeating the process in S 100 -S 160 until reaching a YES determination in S 170 , the CPU 32 has recorded correlating information in the process table PT for all input profiles in the PDF file 100 . As a result, the CPU 32 has completed creation of a process table PT in which similar input profiles have been grouped together.
Conversion Table Generating Process
Next, steps in the conversion table generating process executed in S 30 of FIG. 3 will be described with reference to FIG. 7 . In S 300 of the process, the CPU 32 specifies a target group (i.e., a target group ID), as in S 120 of FIG. 4 .
In S 302 the CPU 32 determines whether two or more input profiles are present in the target group. Specifically, the CPU 32 advances to S 320 when two or more profile IDs are correlated with the target group identifier (S 302 : YES). The CPU 32 advances to S 310 when only one profile ID is correlated with the target group identifier (S 302 : NO). As shown in either Case A or Case B of FIG. 6 , assume that the group ID G 1 is set as the target group ID in the process table PT for example. In Case A, the CPU 32 would reach a YES determination in S 302 since two profile IDs “ 11 obj” and “ 21 obj” are associated with the group ID G 1 . However, in Case B the CPU 32 would reach a NO determination in S 302 since “ 11 obj” is the only profile ID associated with the group ID G 1 .
In S 310 the CPU 32 generates a conversion table using the input profile (the input profile IP 1 , for example) identified by the single profile ID in the target group (“ 11 obj” in Case B of FIG. 6 , for example). Specifically, the CPU 32 sequentially uses the input profile, the first output profile OP 1 , and the second output profile OP 2 to convert the plurality (17 3 , for example) of sets of predetermined RGB coordinate values to a plurality of sets of CMYK coordinate values. Next, the CPU 32 generates a conversion table correlating the plurality of sets of RGB coordinate values with the plurality of sets of CMYK coordinate values. As described above, the CPU 32 generates a conversion table by sequentially performing conversions using the input profile and each of the first and second output profiles OP 1 and OP 2 . Accordingly, the resulting conversion table has conversion characteristics of the input profile and conversion characteristics of the first and second output profiles OP 1 and OP 2 . Here, “conversion characteristics” denotes the relationship between the set of pre-converted coordinate values and the set of converted coordinate values. In the case of grid-type profiles, the conversion characteristics signify the relationship between a set of coordinate values in a certain color space and a set of coordinate values in a different color space corresponding to the set of coordinate values in the first color space. Further, the expression “the conversion table has conversion characteristics of each profile” signifies that the set of CMYK coordinate values obtained by sequentially using the input profile and the first and second output profiles OP 1 and OP 2 to convert the set of RGB coordinate values are substantially equivalent to the set of CMYK coordinate values obtained by converting the set of RGB coordinate values using this conversion table. After completing the process in S 310 , the CPU 32 advances to S 340 .
In S 320 , on the other hand, the CPU 32 selects one of the input profiles according to a prescribed criterion from the two or more input profiles (the input profiles IP 1 and IP 2 , for example) identified by the two or more profile IDs in the target group (“ 11 obj” and “ 21 obj” in Case A of FIG. 6 , for example). The prescribed criterion in the embodiment is to select the input profile associated with the largest number of sets of object data in the process table PT (hereinafter called the “predominant input profile”).
Using the example of the process table PT in FIG. 8 , group G 1 includes three input profiles identified by the three profile IDs “ 11 obj”, “ 21 obj”, and “ 25 obj”. One data ID is correlated with each of the profile IDs “ 11 obj” and “ 21 obj”, while three data IDs are correlated with the profile ID “ 25 obj”. When group G 1 is set as the target group, in S 320 of FIG. 7 the CPU 32 selects the profile ID “ 25 obj” associated with the largest number of data IDs as the predominant input profile.
Group G 2 in the example of FIG. 8 includes two input profiles identified by the two profile IDs “ 41 obj” and “ 45 obj”. Two data IDs are correlated with each of the profile IDs “ 41 obj” and “ 45 obj”. Consequently, there are two predominant input profiles when group G 2 is the target group. In this case, in S 320 of FIG. 7 the CPU 32 selects the predominant input profile that is registered first, i.e., the input profile identified by the profile ID “ 41 obj”. As a variation of the embodiment, the CPU 32 may select the predominant input profile that is registered last, i.e., the input profile identified by the profile ID “ 45 obj” in this case, or may randomly select one of the input profiles from the two predominant input profiles.
›DETAILED DESCRIPTION · 6 of 10
After completing the process in S 320 of FIG. 7 , in S 330 the CPU 32 generates a conversion table using the input profile selected in S 320 . S 330 is identical to S 310 . When group G 1 in the example of FIG. 8 is the target group, the CPU 32 uses the input profile identified by the profile ID “ 25 obj” to generate a conversion table CTg 1 . When group G 2 of FIG. 8 is the target group, the CPU 32 uses the input profile identified by the profile ID “ 41 obj” to generate a conversion table CTg 2 .
Note that a group G 3 in the example of FIG. 8 includes only one input profile identified by the single profile ID “ 51 obj”. In this case, the CPU 32 reaches a NO determination in S 302 of FIG. 7 , as described above, and in S 310 uses the input profile identified by the profile ID “ 51 obj” to generate a conversion table CTg 3 . After completing the process in S 310 or S 330 , the CPU 32 advances to S 340 .
In S 340 the CPU 32 records the conversion table generated in S 310 or S 330 in the process table PT in association with the target group ID. Accordingly, the conversion table is correlated with all the data IDs of the target group ID in the process table PT. This signifies that object data identified by these data IDs are to be converted using the corresponding conversion table.
In S 350 the CPU 32 determines whether all groups in the process table PT have been specified in S 300 . When there remains a group in the process table PT that has not yet been specified (S 350 : NO), the CPU 32 repeats the process described above in S 300 -S 340 . However, when all groups in the process table PT have been specified (S 350 : YES), the CPU 32 ends the process of FIG. 7 .
Drawing Process
Next, steps in the drawing process executed in S 40 of FIG. 3 will be described with reference to FIG. 9 . In S 400 the CPU 32 searches each object identifier in the PDF file 100 in ascending order to specify one set of object data (the object data OD 1 in FIG. 1 , for example). Specifically, the CPU 32 specifies one object identifier for the object data (“ 12 obj” in FIG. 1 , for example). In the following description, the specified object data and its object identifier will be called the “target object data” and “target object identifier,” respectively.
In S 402 the CPU 32 determines whether an input profile has been associated with the target object data. Specifically, the CPU 32 advances to S 404 when the entry for the target object identifier includes a character string identifying an input profile (“ColorSpace 10 obj” in FIG. 1 , for example; S 402 : YES). The CPU 32 advances to S 406 when the entry for the target object identifier does not include such a character string (S 402 : NO).
In S 404 the CPU 32 acquires the conversion table associated with the data ID matching the target object identifier identified in S 400 in the process table PT. Next, the CPU 32 uses the conversion table acquired above to convert the target object data specified in S 400 , thereby generating CMYK image data that includes a plurality of pixels specifying a plurality of sets of coordinate values in the CMYK color space.
For example, when the target object identifier matches the data ID “ 12 obj” in group G 1 of FIG. 8 , the CPU 32 uses the conversion table CTg 1 to convert the object data OD 1 into CMYK image data. As another example, when the target object identifier matches the data ID “ 22 obj” in group G 1 , the CPU 32 uses the conversion table CTg 1 to convert the object data OD 2 into CMYK image data. After completing the process in S 404 , the CPU 32 advances to S 408 .
In S 406 , on the other hand, the CPU 32 uses the independent output profile OP 3 to convert the target object data identified in S 400 , thereby generating CMYK image data that includes a plurality of pixels specifying a plurality of sets of coordinate values in the CMYK color space. After completing the process in S 406 , the CPU 32 advances to S 408 .
In S 408 the CPU 32 determines whether all object data in the PDF file 100 has been specified in S 400 . Specifically, the CPU 32 advances to S 410 when there are no more descriptions of object data following the target object identifier most recently identified in S 400 (S 408 : YES). However, the CPU 32 returns to S 400 when determining that there is a description of other object data (S 408 : NO).
Upon reaching a YES determination in S 408 , the CPU 32 has produced multi-value CMYK image data including a plurality of sets of CMYK image data generated from all object data. Next, in S 410 the CPU 32 executes a halftone process on the multi-value CMYK image data to generate print data. After completing the process in S 410 , the process of FIG. 9 ends.
Effects of the Embodiment
As illustrated in the example of FIG. 8 , the printer 10 classifies the plurality of input profiles IP 1 , etc. into groups. All of the input profiles IP 1 , etc. included in a single group are similar to each other. Next, the printer 10 generates the conversion table CTg 1 using one of the three input profiles included in group G 1 in this example and the first and second output profiles OP 1 and OP 2 . A total of five sets of object data (“ 12 obj”, “ 22 obj”, “ 26 obj”, “ 30 obj”, and “ 35 obj”) are associated with the three input profiles in group G 1 . The printer 10 uses the same conversion table CTg 1 to convert each of the five sets of object data into five sets of CMYK image data. Hence, the printer 10 need not use the input profile associated with each set of object data and the first and second output profiles OP 1 and OP 2 to convert each of the five sets of object data. Accordingly, the printer 10 more rapidly perform conversion on the five sets of object data and as a result can more quickly print the image represented by the PDF file 100 .
Further, the printer 10 uses the plurality of distances between the plurality of sets of Lab coordinate values in the target profile data PD 1 acquired from the input profile IP 1 and the plurality of sets of Lab coordinate values in the target profile data PD 2 acquired from the input profile IP 2 (S 200 -S 220 of FIG. 6 ) to determine whether the target profile data PD 1 is similar to the target profile data PD 2 (S 130 of FIG. 4 ). Thus, the printer 10 executes actual conversions using each of the input profiles IP 1 and IP 2 and uses each distance between two sets of Lab coordinate values obtained through these conversions to determine appropriately whether the target profile data PD 1 is similar to the target profile data PD 2 , i.e., whether the input profile IP 1 is similar to the input profile IP 2 . As a result, the printer 10 can suitably identify groups of similar input profiles.
›DETAILED DESCRIPTION · 7 of 10
Further, the printer 10 selects the predominant input profile from the input profiles in the target group (S 320 of FIG. 7 ). That is, the printer 10 selects the input profile that will have a relatively large effect on the image represented by the converted print data. Next, the printer 10 uses the selected input profile to generate a conversion table (S 330 ). Therefore, the printer 10 can convert a relatively large amount of object data using the input profile associated with this object data. Accordingly, the printer 10 can produce converted image data representing an image whose colors do not differ greatly from the colors in the image represented by the PDF file 100 .
Correspondences
The printer 10 , network interface 16 , and printing engine 18 are examples of the “image processing apparatus,” the “communication interface,” and the “output section,” respectively. The RGB color space dependent on characteristics of the device generating the PDF file 100 , the Lab color space, and the CMYK color space are examples of the “specific color space,” the “first color space,” and the “second color space.” Further, the RGB color space representing the standard color space to which the printer converts data from the Lab color space is an example of the “third color space.” In FIG. 8 , the three input profiles identified by the three profile IDs “ 11 obj”, “ 21 obj”, and “ 25 obj” included in group G 1 are an example of the “j number of input-side profiles.” The input profile identified by “ 25 obj” and the conversion table CTg 1 are examples of the “at least one input-side profile” and the “conversion table,” respectively. The five sets of object data identified by the five data IDs “ 12 obj”, “ 22 obj”, “ 26 obj”, “ 30 obj”, and “ 35 obj” included in group G 1 are an example of the “k number of sets of object data.” The input profile IP 1 , RGB coordinate values, and Lab coordinate values in FIG. 5 are examples of the “first input-side profile,” the “prescribed coordinate value,” and the “first coordinate value,” respectively. The input profile IP 2 and the Lab coordinate values in the target profile data PD 2 in FIG. 6 are examples of the “second input-side profile” and the “second coordinate value,” respectively. The first output profile OP 1 and the second output profile OP 2 are examples of the “first output-side profile” and the “second output-side profile,” respectively.
Second Embodiment
In the second embodiment, the prescribed criterion employed in S 320 of FIG. 7 differs from that used in the first embodiment. That is, the prescribed criterion for selecting an input profile in the second embodiment is to select the profile associated with object data representing the largest object. In the following description, input profile “number+obj” and object data “number+obj” will be used as the notation for the respective input profile and object data identified by the identifier “number+obj”.
Further, object “number+obj” will be used as the notation for the object represented by the object data “number+obj”.
The following explanation assumes that the process table PT is configured as shown in FIG. 10 . When group G 1 is set as the target group, in S 320 of FIG. 7 the CPU 32 identifies the size of each of the objects “ 12 obj” and “ 22 obj” included in group G 1 (see FIG. 10 ). As shown in FIG. 1 , the size of each object is entered as the description for object identifier “ 99 obj” in the PDF file 100 . The CPU 32 identifies the size of each object by referencing the entry for “ 99 obj”. In the example of FIG. 10 , the size of object “ 12 obj” is greater than the size of object “ 22 obj”. Accordingly, the CPU 32 selects the input profile “ 11 obj” by selecting the profile ID “ 11 obj” associated with the data ID “ 12 obj” in the process table PT. In this case, the CPU 32 uses the input profile “ 11 obj” to generate the conversion table CTg 1 in S 330 of FIG. 7 . As described above, the size of the object denotes the height and width of the object. The CPU 32 may give priority to the height when determining relations in size concerning objects in the target group in S 320 . That is, when one object has a height larger than that of another object, the CPU 32 may determine the one object is larger than the another object. When the one object has the height equal to that of the another object, the CPU 32 may determine whether the one object has a width larger than that of the another object. In this case, when the one object has the width larger than that of the another object the one object, the CPU 32 may determine that the one object is larger than the another object. However, the CPU 32 may give priority to the width of the object in a variation.
When group G 2 is set as the target group, in S 320 of FIG. 7 the CPU 32 identifies the size of each of the objects “ 42 obj”, “ 43 obje”, and “ 46 obj” included in group G 2 (see FIG. 10 ). In this example, a plurality of objects “ 42 obj” and “ 43 obj” is associated with the single profile ID “ 41 obj”. Here, the CPU 32 calculates the total size of objects “ 42 obj” and “ 43 obj”. In the example shown in FIG. 10 , the total size of these objects is smaller than the size of object “ 46 obj”. Accordingly, the CPU 32 selects the input profile “ 45 obj” by selecting the profile ID “ 45 obj” associated with the data ID “ 46 obj” in the process table PT. In this example, the CPU 32 uses the input profile “ 45 obj” to generate the conversion table CTg 2 in S 330 of FIG. 7 . In the second embodiment, the CPU 32 compares a total size of all the objects (sum of sizes of objects) associated to one profile data in the target group with a total size of all the objects associated to another profile data in the target group when determining a relation in size concerning objects in the target group in S 320 .
In the second embodiment, the printer 10 can select an input profile that will have a relatively large impact on the image represented by the converted print data and can generate a conversion table using the selected input profile. Accordingly, the printer 10 can produce converted image data representing an image whose colors do not differ greatly from the colors in the image represented by the PDF file 100 .
›DETAILED DESCRIPTION · 8 of 10
Third Embodiment
In the third embodiment, the nonvolatile area 34 a also stores rank information RI (see FIG. 1 ) indicating the order of priority for each type of object data. Objects in an image represented by converted print data that are most noticeable to the user are given a higher priority. Specifically, the highest priority ranking is given to object data representing image objects, the second highest priority ranking is given to object data representing objects specifying tile patterns, and the lowest priority ranking is given to object data representing text objects. In a variation of this embodiment, the rank information RI may specify an order different from the order described above (for example, the order (1) image objects, (2) text objects, and (3) pattern objects) and may include additional priority rankings for other object types.
In the third embodiment, the prescribed criterion applied in S 320 of FIG. 7 differs from that in the previous embodiments. That is, the prescribed criterion for selecting an input profile in the third embodiment is to select the profile associated with object data having the highest priority ranking according to the rank information RI.
The following explanation assumes that the process table PT is configured as shown in FIG. 10 . When group G 1 is set as the target group, in S 320 of FIG. 7 the CPU 32 identifies the type of each of the objects “ 12 obj” and “ 22 obj” included in group G 1 (see FIG. 10 ). As shown in FIG. 1 , the descriptions “subtype/image” and “subtype/text” are entered for the object identifiers “ 12 obj” and “ 22 obj”, respectively, in the PDF file 100 . Thus, the CPU 32 identifies image objects and text objects as the types of the object data “ 12 obj” and “ 22 obj”, respectively. Next, the CPU 32 references the rank information RI to find the rankings of the object data “ 12 obj” and “ 22 obj” and identifies the object data “ 12 obj” representing an image object as the type of object data having the highest priority ranking. The CPU 32 selects the input profile “ 11 obj” by selecting the profile ID “ 11 obj” associated with the data ID “ 12 obj” in the process table PT. In this case, the CPU 32 uses the input profile “ 11 obj” in S 330 of FIG. 7 to generate the conversion table CTg 1 .
Further, a plurality of sets of object data “ 42 obj” and “ 43 obj” is associated with the single profile ID “ 41 obj” in the example of group G 2 . When these sets of object data “ 42 obj” and “ 43 obj” are of different types, the CPU 32 treats the set of object data having the type with the highest ranking as being the object data associated with the profile ID “ 41 obj” and selects an input profile in the same way described with group G 1 .
In the third embodiment, the printer 10 selects the input profile associated with object data that is most noticeable to the user. The configuration according to the third embodiment can suppress the user's impression that colors of an image based on converted image data is different from the colors in the image represented by the PDF file 100 .
Fourth Embodiment
In the fourth embodiment, the prescribed criterion applied in S 320 of FIG. 7 differs from that described in the above embodiments. That is, the prescribed criterion for selecting the input profile in the fourth embodiment is to select the profile associated with object data representing the object having the largest flesh-colored region.
The following explanation assumes that the process table PT is configured as shown in FIG. 10 . When group G 1 is set as the target group, in S 320 of FIG. 7 the CPU 32 identifies a size of fresh-colored region of each of the objects “ 12 obj” and “ 22 obj” included in group G 1 (see FIG. 10 ). Specifically, first, the CPU 32 acquires RGB image data in the form of bitmap data representing the objects “ 12 obj” and “ 22 obj”. If object “ 12 obj” is an image object, for example, the object data OD 1 is the RGB image data itself. In this case, the CPU 32 acquires RGB image data representing the object “ 12 obj” by acquiring the object data OD 1 from the PDF file 100 . Further, if the object “ 22 obj” is a text object, for example, the object data OD 2 includes commands for describing text. In this case, the CPU 32 executes the commands to generate RGB image data representing the object “ 22 obj”. Next, the CPU 32 identifies the number of pixels constituting the RGB image data that specify a flesh color and neighboring colors of the flesh color within a predetermined color range (hereinafter called the “number of flesh-colored pixels”) for each set of RGB image data acquired above. In the example of FIG. 10 , the number of flesh-colored pixels in the object “ 12 obj” is greater than the number of flesh-colored pixels in the object “ 22 obj”. Accordingly, the CPU 32 selects the input profile “ 11 obj” by selecting the profile ID “ 11 obj” associated with the data profile “ 12 obj” in the process table PT. In this case, the CPU 32 uses the input profile “ 11 obj” in S 330 of FIG. 7 to generate the conversion table CTg 1 .
When a plurality of objects “ 42 obj” and “ 43 obj” is associated with a single profile ID “ 41 obj”, as in group G 2 , the CPU 32 compares the total number of flesh-colored pixels in the plurality of objects “ 42 obj” and “ 43 obj” to the number of flesh-colored pixels in the object “ 46 obj” and selects the input profile in the same manner described for group G 1 . In the fourth embodiment, the CPU 32 compares a total number of flesh-colored pixels in all the objects associated to one profile data in the target group with a total number of flesh-colored pixels in all the objects associated to another profile data in the target group when selecting an input profile.
Generally, the user more readily perceives differences between colors in the input image and colors in the output image when the flesh colors in the input image differ from those in the output image. In view of this phenomenon, the printer 10 according to the fourth embodiment selects an input profile on the basis of the size of the flesh-colored region. Accordingly, the printer 10 can produce converted image data representing an image whose flesh colors do not differ greatly from the flesh colors in the image represented by the PDF file 100 . The configuration according to the fourth embodiment can suppress the user's impression that flesh colors of an image based on converted image data is different from the flesh colors in the image represented by the PDF file 100 .
›DETAILED DESCRIPTION · 9 of 10
While the disclosure has been described in detail with reference to the above embodiments, it would be apparent to those skilled in the art that various changes and modifications may be made thereto.
Variation 1
In the embodiments described above, the CPU 32 acquires the PDF file 100 from the terminal apparatus 50 via the network interface 16 . As an alternative, the CPU 32 may acquire the PDF file 100 from a memory device through a memory interface in which the memory device is detachably mounted, for example. Further, if a personal computer is used in place of the printer 10 as an example of the image processing apparatus, the CPU of the personal computer may acquire the PDF file 100 by reading the PDF file 100 from a memory in the personal computer.
Variation 2
The following are some possible variations of S 320 in FIG. 7 . ( 1 ) The CPU 32 may select a single input profile by selecting the profile ID that was first recorded in the process table PT from among the profile IDs in the target group. (2) Alternatively, the CPU 32 may generate a single input profile having all conversion characteristics of the plurality of input profiles identified by the plurality of profile IDs in the target group. Specifically, the CPU 32 uses each of the plurality of input profiles to calculate one set of Lab coordinate values from one predetermined set of RGB coordinate values. Next, the CPU 32 associates this set of RGB coordinate values with the median of the plurality of sets of Lab coordinate values acquired using the plurality of input profiles. The CPU 32 executes the same process on each of the other predetermined sets of RGB coordinate values to generate the single input profile. In general, the CPU 32 may generate a conversion table using just one of the j number of input-side color conversion profiles, as in the embodiments described above, or may generate the conversion table using some of the j number of input-side color conversion profiles.
Variation 3
In S 320 of FIG. 3 , the CPU 32 may specify just a single group. For example, the CPU 32 performs conversion on each set of object data included in the group that was first recorded in the process table PT (group G 1 in the example of FIG. 8 ) using the same conversion table (conversion table CTg 1 in the example of FIG. 8 ). For each of the other sets of object data, the CPU 32 generates a conversion table using the input-side profile associated with the object data and the first and second output profiles OP 1 and OP 2 . Next, the CPU 32 may perform conversion on each of the other sets of object data using the individual conversion table obtained from the input profile associated with the object data and the first and second output profiles OP 1 and OP 2 . Generally speaking, the image processing apparatus of the disclosure may convert k number of sets of object data using a single conversion table and may (1) form groups with the remaining (K-k) number of sets of object data, as in the embodiments described above, (2) convert the remaining (K-k) number of sets of object data using conversion tables obtained from the input-side profile and at least one of output-side profiles, (3) convert the remaining (K-k) number of sets of object data using a default conversion table, or (4) convert the remaining (K-k) number of sets of object data sequentially using the input-side profile and output-side profiles rather than a conversion table.
Variation 4
Rather than calculating the similarity index value IV in S 210 and S 220 of FIG. 6 by subtracting the arithmetic average D ave for the M number of distances from a prescribed value (128 in the embodiment), the CPU 32 may use the arithmetic average D ave itself as the similarity index or may use the sum of the M distances as the similarity index. In these cases, a larger similarity index value denotes a lower degree of similarity. Therefore, when the CPU 32 determines in S 130 of FIG. 4 that the smallest similarity index value among the index values for all the respective sets of standard profile data in the target group is less than or equal to the threshold value, the CPU 32 determines that the target profile data is similar to the standard profile data corresponding to the smallest similarity index value (S 130 : YES).
Variation 5
Rather than using the M number of sets of RGB coordinate values P 1 -PM in S 102 of FIG. 4 , the CPU 32 may use a single set of RGB coordinate values to generate the target profile data. In this case, the CPU 32 calculates only a single distance in S 200 of FIG. 6 and skips steps S 210 and S 220 . When the CPU 32 determines in S 130 of FIG. 4 that the smallest distance among distances (i.e., each similarity index value) calculated from respective sets of standard profile data is less than or equal to the threshold value, the CPU 32 determines that the target profile data is similar to the standard profile data corresponding to the smallest distance (S 130 : YES).
Variation 6
In S 122 of FIG. 4 , the CPU 32 may determine whether the similarity index value is greater than the threshold value each time a similarity index value is calculated. When determining that the similarity index value is greater than the threshold value, the CPU 32 may advance to S 160 without calculating the similarity index values for other sets of standard profile data. When determining that the similarity index value is less than or equal to the threshold, the CPU 32 may calculate similarity index values for the other sets of standard profile data.
Variation 7
Rather than using the M number of sets of RGB coordinate values P 1 -PM in S 102 of FIG. 4 , the CPU 32 may perform reverse conversion on M sets of predetermined Lab coordinate values using the target input profile to generate M number of sets of RGB coordinate values. Further, the target profile data may include M number of sets of coordinate value data correlating the M number of sets of generated RGB coordinate values with the M number of sets of predetermined Lab coordinate values. In this case, in S 200 of FIG. 6 the CPU 32 may calculate M number of distances between the M number of sets of generated RGB coordinate values in the target profile data PD 1 and the M number of sets of generated RGB coordinate values in the target profile data PD 2 . In this variation, the set of Lab coordinate values, the set of generated RGB coordinate values in the target profile data PD 1 , and the set of generated RGB coordinate values in the target profile data PD 2 are examples of the “prescribed coordinate value,” “first coordinate value,” and “second coordinate value,” respectively.
›DETAILED DESCRIPTION · 10 of 10
Variation 8
The method of determining similarity among input profiles is not limited to the method in the embodiments described above. For example, the CPU 32 may determine that two input profiles are similar when the same attribute information (profile name or the like, for example) is associated with the two input profiles. This type of method is another example of “identifying j number of input-side profiles from among the J number of input-side profiles.”
Variation 9
In S 310 and S 330 of FIG. 7 , the CPU 32 may use just the input profile and the first output profile OP 1 to generate the conversion table, without using the second output profile OP 2 . In this case, the conversion table includes data for converting sets of coordinate values in the RGB color space dependent on characteristics of the device that generated the PDF file 100 to sets of coordinate values in the RGB color space serving as the standard color space. Next, in S 404 of FIG. 9 the CPU 32 performs color conversion on the object data using the conversion table to generate RGB image data and performs color conversion on the RGB image data using the second output profile OP 2 to generate CMYK image data. In this variation, the standard color space (RGB color space) is an example of the “second color space.” Further, only the first output profile OP 1 is an example of the “output-side color conversion profile.”
Variation 10
The memory 34 may store a single output profile having both of conversion characteristics of the first output profile OP 1 and conversion characteristics of the second output profile OP 2 , rather than storing the first and second output profiles OP 1 and OP 2 themselves. This single output profile includes data for converting sets of coordinate values in the Lab color space to sets of coordinate values in the CMYK color space. In this case, in S 310 and S 330 of FIG. 7 the CPU 32 generates a conversion table using the input profile and the single output profile. In this variation, the single output profile is an example of the “output-side color conversion profile.”
Variation 11
After generating RGB image data including a plurality of pixels specifying a plurality of sets of coordinate values in the RGB color space (standard color space), the CPU 32 may supply the RGB image data to the display 14 and direct the display 14 to display an image represented by the RGB image data. In this variation, the display 14 is an example of the “output section.” Further, the RGB color space (standard color space) is an example of the “second color space.”
Variation 12
While the CPU 32 uses the sizes of flesh-colored regions in the fourth embodiment described above, the CPU 32 may instead use the sizes of regions of another color, such as red regions or blue regions. In this variation, the other color and the colors neighboring the other color are an example of the “colors in the predetermined color range.”
Variation 13
The CPU 32 may execute the same processes described in the embodiments when acquiring files of another format (the JPEG format, for example) rather than PDF files. In other words, the “target file” may be a file of any format, provided that the format correlates an input profile with object data.
Variation 14
The image processing apparatus in the disclosure need not be the printer 10 , but may be another device, such as a personal computer, a server, or a portable terminal. For example, a personal computer may generate print data by executing the same processes described in the embodiments and may transmit the print data to the printer. In this case, the printer is an example of the “output section.”
Variation 15
External memory configured separately from the printer 10 (USB memory, a server, a personal computer, or the like) may be used to store the output profiles OP 1 -OP 3 , the rank information RI, and the process table PT, and the CPU 32 may execute the process in FIG. 3 using this external memory. In this case, the external memory is an example of the “memory”. Further, the CPU 32 need not execute all processes described in the embodiments. Other devices may execute some or all of these processes. For example, after executing S 10 of FIG. 3 , the CPU 32 may transmit the PDF file 100 to at least one server. In this case, a first server executes the processes in S 20 -S 40 of FIG. 3 and transmits the resulting print data to the printer 10 . Next, the CPU 32 executes step S 50 . In this variation, the printer 10 and the first server together are an example of the image processing apparatus. As a separate variation, the first server described above may execute step S 20 , a second server configured separately from the first server may execute step S 30 , and a third server configured separately from the first and second servers may execute step S 40 . In this variation, the printer 10 and the first through third servers combined are an example of the image processing apparatus.
Variation 16
In the embodiments described above, the CPU 32 executes processes based on the programs 36 to implement the various processes in FIGS. 2 through 10 . Alternatively, at least one of the various processes in FIGS. 2 through 10 may be implemented in logic circuits or other hardware.
The technical elements described in the present specification or drawings exhibit technical utility either independently or in various combinations and shall not be limited to the combinations set forth in the claims at the time of filing. Further, the technology illustrated in the specification or drawings achieves multiple objects at the same time, and achieving one of the objects itself demonstrates technical utility.
Claims as granted
14 claimsLog in to read the claims of this application.
Log in to unlockClassifications
1 codes- H04N1/60
Claim changes
SoonSee which claims were amended, added or cancelled during examination, with every added and removed word marked.
The published claims of this application are not paired with the granted ones in what we hold.
File wrapper
See the full prosecution history — every USPTO and applicant action on this file, in order.
Log in to unlockDocuments
Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.
Log in to unlockChain of title
See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.
Log in to unlock