1. Field of the Invention
The present invention relates to an image processing apparatus and a table creation method. In particular, the present invention relates to how to define an interpolation space when lattice point data of a table is determined by interpolation.
2. Description of the Related Art
Typical tables used for an image processing include, for example, a color separation table for converting signal values of R, G, and B color spaces to signal values of ink as color material for a printer and a color conversion table for adjusting color gamut between an input device and an output device. These tables are generally formed as a lookup table (LUT).
The table as described above has been conventionally created by an illustrative example (Japanese Patent Application Laid-open No. 2002-033930) for example in which a color separation table is created in the manner as described below. First, on a cube composed of lattice points defined in a RGB space, six control lines connecting a white (W) lattice point, lattice points respectively corresponding to primary colors (C, M, Y) and secondary colors (R, B, G) of color materials of a printer, and black (Bk) lattice points are defined. In addition, a control line connecting the white lattice point and the black lattice point is defined. Then, with regards to the defined control lines, data for lattice points on these lines are determined and the determined data for these lattice points (e.g., C, Lc, M, Lm, Y, Bk) is used to determine data for other lattice points by an interpolation calculation.
According to the interpolation method disclosed by Japanese Patent Application Laid-open No. 2002-033930, a cube is firstly divided, as shown in
However, the above-described conventional table creation method divides a cube into six tetrahedrons in order to define interpolation spaces. This causes, when a cube is divided, a relatively large number of triangles as boundary surfaces (i.e., common surfaces of respective two tetrahedrons, which are caused when the respective tetrahedrons are joined to constitute an original cube (hereinafter common surfaces formed by such a division are called as “dividing surfaces”)). For example, the tetrahedron shown in
The dividing surface as described above constitutes a boundary between different interpolation spaces. Thus, there may be a case where a finally created table includes discontinuity of lattice point data at this boundary surface. The discontinuous pieces of lattice point data as described above may cause, in the case of a color separation table for example, an image formed by color materials based on these pieces of lattice point data to have a false contour. The table as disclosed in Japanese Patent Application Laid-open No. 2002-033930 using six tetrahedrons as an interpolation space has a relatively great number of dividing surfaces, which causes a problem of a proportionally increased probability of the false contour. As described above, the existence of a great number of dividing surfaces causes in a table, when an image is formed based on the image processing result using the table, the image to have some image defect with a higher probability.
Furthermore, the respective tetrahedrons include a relatively large number of triangles as final interpolation spaces at the surfaces of the tetrahedrons and the interior thereof. This causes a proportional increase of the time and load required for an interpolation calculation. Furthermore, all of these triangles as interpolation spaces do not have the same shape. This causes another problem of a proportionally complicated interpolation calculation.
An objective of the present invention is to provide an image processing apparatus and a table creation method which can reduce probability of an image defect due to the existence of a dividing surface in creating a table such as a color separation. Another objective of the present invention is to provide an image processing apparatus and a table creation method which can reduce the load and time required for an interpolation calculation.
In the first aspect of the present invention, there is provided an image processing apparatus that creates a table used for obtaining an output color signal corresponding to color signals which define three dimensional color space, said apparatus comprising: control line setting means for defining control lines on a cube, which is constituted of lattice points defined by the color signals, and determining lattice point data on the control lines; dividing means for dividing the tube at a cutting surface of a quadrangle defined in said cube into two triangular prisms which include the control lines as sides; interpolation means for, for each of the divided two triangular prisms, defining triangles, which include the control lines as sides, on surfaces of the triangular prism to determine lattice point data for the lattice point inside the respective triangles by performing interpolation calculation with use of lattice point data on the control lines as the sides, and defining triangles on an interior of the triangular prism to determine lattice point data for the lattice point inside the respective triangles by performing interpolation calculation with use of lattice point data on an interior of the triangles defined on the surfaces of the triangular prism; and synthesizing means for synthesizing the triangles, for which the lattice point data has been determined, to obtain the cube for which the lattice point data is defined.
In the second aspect of the present invention, there is provided a table creating method of creating a table used for obtaining an output color signal corresponding to color signals which define three dimensional color space, said method comprising: a control line setting step for defining control lines on a cube, which is constituted of lattice points defined by the color signals, and determining lattice point data on the control lines; a dividing step for dividing the tube at a cutting surface of a quadrangle defined in said cube into two triangular prisms which include the control lines as sides; an interpolation step for, for each of the divided two triangular prisms, defining triangles, which include the control lines as sides, on surfaces of the triangular prism to determine lattice point data for the lattice point inside the respective triangles by performing interpolation calculation with use of lattice point data on the control lines as the sides, and defining triangles on an interior of the triangular prism to determine lattice point data for the lattice point inside the respective triangles by performing interpolation calculation with use of lattice point data on an interior of the triangles defined on the surfaces of the triangular prism; and a synthesizing step for synthesizing the triangles, for which the lattice point data has been determined, to obtain the cube for which the lattice point data is defined.
According to the above-described configuration, in a table creation, firstly a cube constituting a table is divided into two triangular prisms. Then, in each of the triangular prisms, triangles at the surface of the triangular prism and an inner triangle in parallel with for example the upper surface and the bottom surface of the triangular prism are defined. Then, the respective triangles are assumed as interpolation spaces and lattice point data for lattice points in the triangles is determined. By this, a dividing surface caused when an interpolation spaces are defined from a cube is only one quadrangle that is a cut surface on the division. Thus, probability where lattice point data may be discontinuous at a dividing surface in the created table can be reduced. The number of the triangles at the surface and the interior of the triangular prism as the final interpolation spaces is relatively small. This can proportionally reduce the time and load required for the interpolation calculation. Furthermore, all of these triangles as interpolation spaces can have the same shape. This can proportionally simplify the interpolation calculation.
Thus, a table such as a color separation table can be created with a lower probability of occurring a false contour and the load and time required for the interpolation calculation can be reduced.
Further features of the present invention will become apparent from the following description of exemplary embodiments (with reference to the attached drawings).
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
As shown in
For the lattice point data determined by the interpolation in the respective three directions in a manner as described above, a grid weighting 106 performs weighting for each lattice point. Then, an averaging processing 107 averages the weighted lattice point data of the above three directions to obtain final lattice point data for LUT.
In
A reference numeral 303 denotes a CPU that executes, in accordance with a predetermined program, a control of operations of the respective components of the computer system and data processing. The CPU 303 executes, in accordance with a program, a color separation table creation process, which will be described later with reference to
A reference numeral 306 denotes a display control device that controls the display device 203 which displays an image to be processed or a message to an operator. A reference numeral 307 denotes an interface (I/F) that transmits signals between the computer system 202 and the color printer 204. A reference numeral 308 denotes a hard disk (HD) that can previously store programs and image data which are to be transferred to the RAM 305 for example or that can store image data after the processing. A reference numeral 309 denotes an interface (I/F) connecting a computer system with the transmission device 314 such as a modem and a network card, which transmit various pieces of data maintained at the respective sections of the computer system to an external device or receives various pieces of data from an external device. A reference numeral 310 denotes a CD drive that reads or writes data from or to CD (CD-R, CD-RW, or DVD), which is one of external storage media. A reference numeral 311 denotes an FD drive that reads data from FD or writes data to FD as in the CD drive 310. When CD, FD, DVD or the like stores an image editing program or printer information for example, the information is installed in the HD 308 and is transferred to the RAM 305 when needed. A reference numeral 312 denotes a sound interface (I/F) that is connected with an external line input 315 or a microphone to receive audio data from the exterior.
First, in step S401, for a cube defined by R, G, and B signals, as shown in
Next, in step S402, the cube shown in
It is noted that processes from the division step of step S402 to step 407 are repeated as the similar process for further respective two triangular prisms, which are different from the triangular prisms shown in
Next, in step S403, for each of two triangular prisms determined as described above, triangles are defined, which have control lines set in step S401 as three sides. For example, for a triangular prism shown in
Next, in step S404, for each of triangles of the two triangular prisms that are defined in step S403, interpolations are executed to determine lattice point data for the lattice points inside the triangle.
This interpolation for the interior of the triangle can use, for example, the method disclosed in Japanese Patent Application Laid-open No. 2002-033930 described above. However, the interpolation method is not particularly limited. For example, with regards to signal values of three sides of a triangle to be subjected to an interpolation, the interpolation may be performed, as shown in
The interpolation method shown in
The lattice point data of the interior of the respective triangles calculated by the interpolation is stored in the RAM 305. When the data volume is large, the data is stored in the external storage apparatus 308 for example.
Next, in step S405, derived triangles are defined. In the case of the triangular prism shown in
Then, in step S406, the respective triangles of the respective triangular prisms defined in step S405 as interpolation spaces are subjected to an interpolation to determine lattice point data for the lattice points in the respective triangle. The interpolation method may be the same as the triangle interpolation in step S404. The lattice point data of the respective sides of the triangle used in this processing is lattice point data for the surface of the triangular prism determined by the interpolation calculation of step S404. The determined lattice point data for the interior of the respective triangles is stored in the RAM 305. When the data volume is large, the data is stored in the external storage apparatus 308 for example.
Next, in step S407, the lattice point data for the triangles of the respective triangular prisms processed in step S403 to step S406 is synthesized and finally two triangular prisms divided in step S402 are synthesized to provide an original cube.
The processes of steps 402 to 407 are performed a plurality of times. In this embodiment, the above processes are repeated for the three division directions as described for step 402. This finally provides cubes based on the lattice point data in accordance with the three division directions. These three types of pieces of LUT data for the cube are stored in the RAM305. When the data volume is large, the data is stored in the external storage apparatus 308 or the like.
In step S408, the three pieces of LUT data for the respective division directions stored in RAM 305 or the like are subjected to a weighting processing. Then, a processing is performed to obtain an average of the respective weighted pieces of lattice point data for the lattice points among the three pieces of LUT data. Specifically, an averaging control for a weighting among three (or a plurality of) cubes is performed. It is noted that the weighting may be performed, for example, so that parts (planes) sandwiching a gray axis (W-Bk line) are significantly weighted in accordance with a distance from the cutting surface for division into triangular prisms, or weightings are differentiated for respective hues.
Finally, in step S409, the lattice point data obtained by the average of the weighting in step S408 is used as final cube LUT data to store the data in the RAM 305, the external storage apparatus 308 or the like.
As described above, according to this embodiment, in an LUT creation, firstly a cube constituting a table is divided into two triangular prisms. Then, in each of the triangular prisms, triangles at the surface of the triangular prism and an inner triangle in parallel with for example the upper surface and the bottom surface of the triangular prism are defined. Then, the respective triangles are assumed as interpolation spaces and lattice point data for lattice points in the triangles is determined. By this, a dividing surface caused when an interpolation spaces are defined from a cube is, in the example shown in
Also, in this embodiment, triangles as final interpolation spaces are defined on the surface and the interior of the triangular prism and thus a number of interpolation spaces is relatively small. As a result, the time and load required for the interpolation calculation can be proportionally reduced. Furthermore, since all of these triangles as interpolation spaces have the same shape. Thus, an interpolation calculation can be proportionally simplified.
In the above-described first embodiment, one cube is set with seven control lines and six additional control lines. However, the present invention is not limited to this example. For example, only the seven control lines may be used for an interpolation with out using the additional control lines. In the case of a triangular prism shown in
Although the above-described embodiments have described an example of a method for creating a color separation table, the present invention also can be applied to the creation of another table such as a color conversion table for color gamut conversion, as is clear from the above description.
The present invention also can be realized by a program code realizing the procedure of the flowchart shown in
Storage media for supplying a program code may be, for example, floppy (registered trademark) disk, hard disk, optical disk, magneto optical disk, CD-ROM, CD-R, magnetic tape, nonvolatile memory card, ROM or the like.
The above-described function of the embodiment is not limitedly realized by the execution of the program code read by a computer and also can be realized by an OS operating on the computer by allowing the OS to execute, based on the instruction of the program code, a part or the entirety of an actual processing.
Furthermore, another configuration also may be used in which a program code is written to a function enhancement board inserted to a computer or a memory in a function enhancement unit connected to a computer to subsequently allow, based on the instruction of the program code, CPU or the like to execute a part or the entirety of an actual processing.
While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.
This application claims the benefit of Japanese Patent Application No. 2005-380065, filed Dec. 28, 2005, which is hereby incorporated by reference herein in its entirety.
Number | Date | Country | Kind |
---|---|---|---|
2005-380065 | Dec 2005 | JP | national |