Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberUS4477833 A
Publication typeGrant
Application numberUS 06/489,151
Publication dateOct 16, 1984
Filing dateApr 25, 1983
Priority dateAug 12, 1981
Fee statusLapsed
Publication number06489151, 489151, US 4477833 A, US 4477833A, US-A-4477833, US4477833 A, US4477833A
InventorsDavid A. Clark, David C. Strong, Q. White II Thomas
Original AssigneeR. R. Donnelley & Sons Company
Export CitationBiBTeX, EndNote, RefMan
External Links: USPTO, USPTO Assignment, Espacenet
Method of color conversion with improved interpolation
US 4477833 A
Abstract
An apparatus for converting a color image from one color space to another color space includes a memory in which is stored a finite number of output signals which represent colors in the output space and which is addressed by signals representing a color in the input space. In order to derive an output color value for an input color located between colors stored in the memory, an interpolation process is utilized. The interpolation process takes into account the four closest color values in the memory above and below the input color and develops an interpolated output color value from vectors derived from the four color values.
Images(5)
Previous page
Next page
Claims(15)
We claim:
1. In the conversion of a color image from one color space to another color space including the steps of providing a three dimensional input signal representing the color of a pixel of said image in said one space and providing a memory with a finite number of three dimensional addresses representing colors in said one space, said memory having at each address output signals representing the corresponding color in said other space, an improved method of interpolating to determine the output signals for pixel color input signals between two memory addresses, comprising:
determining the base output signals for the base memory address next below said input signals;
determining the high, mid and low valued input signal components representing the difference between the pixel color input signal and the base memory address below the input signal;
determining additional signals for memory addresses next above said input signals in accordance with said high, mid and low valued input difference signal components;
interpolating between output signals for the memory addresses below and above the input signal in accordance with the low valued input difference signal component to establish a first output signal increment from said base output signals;
interpolating between output signals for the memory addresses below and above the input signal in the plane of the mid and high input difference signals in accordance with the excess of the mid valued input difference signal component over the low valued input difference signal component to establish a second output signal increment from said base output signals;
interpolating between output signals representing memory addresses below and above the input signal along the axis of the high valued input difference signal component in accordance with the excess of the high valued input difference signal component over the mid valued input difference signal components to establish a third output signal increment from said base output signals; and
summing the base output signals with said first, second and third output signal increments to generate output signals representing the color of said pixel in said other color space.
2. The interpolation method defined in claim 1 in which said three dimensional input signal is a multi-bit binary digital signal.
3. The interpolation method of claim 2 in which said input signal has for each dimension a plurality of most significant bits and a plurality of least significant bits;
said base output signals are determined for an address defined by the most significant bits;
the additional output signals are determined for addresses defined by the least significant bits; and
the interpolations are performed in accordance with said least significant bits.
4. The interpolation method of claim 3 in which said three dimensional input signal has three bytes of 8 bits each, 4 bits of each byte being the most significant bits and 4 bits of each byte being the least significant bits.
5. The interpolation method of claim 1 in which said three dimensional input signal represents the color of a pixel as a function of red, green and blue components.
6. The interpolation method in claim 1 in which the output signals at each memory address represent color in terms of yellow, magenta and cyan components.
7. The improved interpolation method of claim 1 in which said three dimensional input signal represents the color of a pixel as a function of red, green and blue components and in which the output signals at each memory address represent color in terms of functions of yellow, magenta and cyan components.
8. The interpolation method of claim 1 in which the input signals are derived by scanning copy.
9. The interpolation method of claim 1 in which printing plates are prepared in accordance with the output signals, representing the color of each pixel in said other color space.
10. The interpolation method of claim 1 in which the input signals are derived by scanning copy and printing plates are prepared in accordance with the output signals, representing the color of each pixel in said other color space.
11. The interpolation method of claim 8 in which said three dimensional input signal is stored prior to performance of the interpolation.
12. The interpolation method of claim 1 in which said output signals are stored subsequent to the summation step and thereafter the printing plates are prepared.
13. The interpolation method of claim 8 in which said three dimensional input signal is stored prior to performance of the interpolation and said output signals are stored subsequent to the summation step and thereafter the printing plates are prepared.
14. The interpolation method of claim 1 in which a cathode ray tube is driven in accordance with the output signals representing the color of each pixel in said other color space to provide a display of said image.
15. The interpolation method of claim 1 in which a color printer is driven in accordance with the output signals representing the color of each pixel in said other color space to provide a print of said image.
Description

This is a continuation of application Ser. No. 292,293 filed Aug. 12, 1981, now abandoned.

BACKGROUND OF THE INVENTION

This invention relates generally to color correction, and in particular to a method for performing color correction to allow for visually exact duplication of colors in systems of color input and output devices, where each device may have different color representation capabilities.

While most color correction is today done in film or using analog devices which themselves add distortions to the color result, the method of digital color control and correction as described herein affords for the first time a practicable capability of accurately controlling different color handling characteristics to achieve visually exact duplication of color input and output.

A page containing colors to be reproduced is typically sensed by a color separation scanner which breaks up the page into a number of discrete pixels, each of which is analyzed to determine its color content. The scanner provides color information in terms of three primary colors which represent the components of the sensed color in a three dimensional space.

Generally, it would be possible to use the output from the scanner to reproduce colors in the output devices or the printed page if the filters used by the scanner were perfect, the color handling characteristics of the output devices were identical, and the inks used in the printing process were perfect colors and were linear over the dynamic range of the ink values, and if the paper used in printing were perfectly white. In practice, however, filters are not capable of perfectly separating colors, color handling capabilities such as amount of available resolution varies widely among output devices, and inks and papers vary from the ideal. Consequently, it has been found necessary to correct the color values generated by the scanner to account for these and other factors which affect the colors reproduced in intermediate output devices such as a CRT or by final output devices used in printing the final copy.

This correction may be performed by loading a memory with the corrected color values corresponding to all visually discernible combinations of input color component values and by using the output of the scanner to address this memory.

However, the domain of all possible input color component combinations must be made quite large so that a wide range of colors can be reproduced, e.g., on the order of 224 possible combinations, and hence the memory must contain a like number of memory positions so as to be capable of providing a corrected color value for each combination of input color components. Obviously, such a large memory is prohibitively expensive.

An attempt at solving this problem has been made by storing the corrected color values for only a fraction of the total number of input color combinations. A corrected color value for those input color combinations not having a corresponding corrected value in the memory is derived by interpolating along the three axes between two of the values stored in the memory. However, this type of interpolation process along the three axes produces discontinuities in the gray scale when the color increments along the three axes are not equal, resulting in the introduction of errors in the color correction process.

SUMMARY OF THE INVENTION

In order to overcome the above noted difficulties, the memory or map table is loaded with the corrected values of only a fraction of the total number of input colors. For example, the map table may contain corrected values for 4096 colors which are evenly spaced within a color space, thereby permitting the use of an inexpensive memory.

A corrected color value for each point in the color space which lies between points stored in the memory is derived by using an interpolation process.

The process performs an interpolation between the corrected color values in the map table on the basis of the relative values for each color component of the difference between the input color and the points stored in the map table.

This type of interpolation process results in an apparatus having color reproduction capability which is optically equivalent to the capability of systems utilizing large memories which store corrected color values for each optically discernible input combination, but accomplishes this result in a far more practical manner.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a system for accomplishing direct engraving of a rotogravure cylinder or other output from a scanned copy, which uses the color correction method of the present invention;

FIG. 2 is a chromaticity diagram illustrating a particular color space;

FIG. 3 is a diagram representing a second type of color space;

FIG. 4a is a representative diagram similar to FIG. 3 which illustrates the interpolation process used in the present invention;

FIG. 4b is an enlarged view of a portion of FIG. 4a;

FIG. 5a is a representative diagram similar to FIG. 4a of an example of the interpolation process;

FIG. 5b is a representative diagram of an output color space in the example shown in FIG. 5a; and

FIG. 6 is a schematic block diagram of the color corrector shown generally in block form in FIG. 1.

DESCRIPTION OF THE PREFERRED EMBODIMENT

Referring to FIG. 1, there is illustrated a block diagram of a system for scanning and reproducing a color image. Source copy, as a picture, is sensed by a color separation scanner 20 which breaks up the page into a number of discrete pixels, each of which is analyzed to determine its color content. The pixel color information from the scanner is transferred to a storage disc or other storage device 22.

Alternatively, the color information may be sensed by a camera which utilizes a plurality of charge coupled devices (CCD's) to develop a serial input to the storage disc 22.

The information stored on the storage disc 22 is then "read" one pixel at a time by a color corrector 24 which includes an interpolator 26 and a memory 28.

A plurality of corrected color values are stored in the memory 28; however, as before noted, it is prohibitively expensive to use a memory large enough to accommodate sufficient color values for reproduction of all perceptible variations.

Accordingly, the memory stores the corrected color values for only a limited number of input colors. In order to develop a corrected color value for those input color values not having a corrected value in the memory, the interpolator 26 utilizes the corrected color values of the four closest input color values to the color value received from the disc 22 in an interpolation process, such process being more fully described hereinafter.

The output of the color corrector 24 is then transferred to a second storage disc 30. The output signal from the disc 30 may be used to control a cylinder engraver 32 which produces cylinders suitable for a rotogravure printing process. The output signals may also be used with other printing systems. For example, a film printer 34 may print four black and white films representing yellow, magenta, cyan and black, in either half tones or continuous tone used in preparing plates for letter press, offset or gravure printing.

The output from the disc 30 may also be used to drive output devices such as a color printer 36, a cathode ray tube 38 or the like to enable inspection of the final copy without the necessity of engraving a cylinder.

Referring now to FIGS. 2 and 3, a brief description of two types of color spaces used to represent colors will be given to assist in understanding the invention.

The space represented in FIG. 2 is a chromaticity diagram illustrating the distribution of the three light primary colors of red, green and blue, and the complements of these colors, i.e., cyan, magenta and yellow, respectively, which are referred to as the printing primary colors. The chromaticity diagram is shown as being superimposed on two separate coordinate axes, designated the YIQ (dashed lines) and the xyz (solid lines) coordinate systems.

The origin of the YIQ system is shown as the intersection of the I and Q axes, with the Y axis extending perpendicular to the plane of the paper. In general, points lying on the curve, e.g., green, represent fully saturated colors. Values located inside the curve are colors which are less saturated than those lying on the curve, such colors tending towards grayness the closer the point is to the origin. At the origin, there are equal contributions of all colors, and hence a gray "color" results.

The Y axis of the YIQ system represents the brightness of the color. For example, increasing values in the Y direction (i.e., increasing distance upwardly from the plane of the page) result in lighter colors than those present at a lower value. Conversely, the lower the Y value for a particular color, the darker the color is.

Complementary colors are those colors which lie on a straight line which passes through the origin in a particular Y plane.

The xyz coordinate system is similar to the YIQ system, the primary difference being that the origin of the xyz system is translated relative to the origin of the YIQ system so that all values of x and y are positive.

Referring to FIG. 3, a second type of color space is defined by a set of three axes in a cartesian coordinate system. Each axis is subdivided into 16 units or major divisions and each major division is in turn divided into 16 subunits or minor divisions. The color space is therefore divided into 163, or 4096 separate subspaces, each subspace in turn containing 4096 points, each of which uniquely identifies a particular color acccording to its color values along the three axes.

Each of the three axes may be thought of as representing values of a particular primary color. In the preferred embodiment, the colors are either positive or zero and the color space is defined in terms of the printing primary colors where one of the axes is the yellow axis, deonted Yel, another axis is the magenta axis, denoted Mag, and the third axis is the cyan axis, denoted Cyan. Any point in the space can be represented as an ordered triplet (Y, M, C) representing the value of the color along the Yel, Mag and Cyan axes, respectively. It should be noted that any other set of information may be used, providing that the set of information is capable of fully defining all colors which are to be reproduced.

In printing, yellow, magenta and cyan inks are deposited on white paper to form resultant colors. In the cartesian space defined above, the origin is the point where no colors are used and hence the resultant is a white "color".

Since equal amounts of each of the primary colors combine to form varying degrees of grayness, the line representing the points at which the yellow, magenta and cyan values are equal, and hence the line along which all gray values are located, is the diagonal line from the origin O of the space to the point at which all three color values are at a maximum, denoted point "MAX". At the point MAX each of the primary color values is at a maximum, and hence a black "color" is the result.

The lines representing equal values of two of the three primary printing colors while the third primary color is equal to zero represent values of secondary printing colors formed by the combination of the respective primary colors. For example, the line defined by the equations: Mag=Cyan, Yel=O represents values of blue, which is formed by a combination of cyan and magenta in the color space.

Similarly, the secondary printing colors green and red are formed by combination of equal values of cyan and yellow or by equal values of yellow and magenta, respectively.

It should be noted that the color space may alternatively be a color space in which colors are subtracted from white to form other colors, similar to the effect perceived when white light is passed through a colored filter. Moreover, the color space may be defined by other than a three-dimensional cartesian coordinate system, e.g., a three-dimensional polar coordinate system.

Color correction may be performed by mapping, converting or transforming the input color space shown in FIG. 3, in which the values from the scanner are represented, to derive an output color space which contains all the corrected color ink values. Such a transformation can be performed by a memory which contains a corrected value for each point in the input space.

However, as noted previously, the input space is divided into 16 major divisions, each of which is divided into 16 minor divisions. Consequently, there is a total of 224 points in the input stage, requiring a like number of positions in the memory to provide a corrected color value for each point in the input space. Obviously, such a large memory is quite expensive.

In order to overcome this difficulty, the memory or map table 28 shown in FIG. 1 is loaded with a fraction of the total number of corrected color values, e.g., the corrected values of only those points in the input space which represent the intersections of the planes perpendicular to the 16 major divisions along each axis in the input space. Hence the map table contains 163 or 4096 memory positions, each of which stores a corrected color value representing a point in the output space and each of which is addressed by a signal representing one of the 4096 points in the input color space.

A corrected color value for a point in the input color space lying between major divisions is derived by using an interpolation process. The process interpolates between corrected color values according to the difference between the input color and several of the closest map table address, as described more fully hereinafter.

It should be noted that a greater or lesser number of points may be stored in the memory 28, with the number of stored points determining the brightness resolution of color reproduction.

In practice, the assembled page to be reproduced is sensed by the scanner 20, which typically works by sensing reflected light from the page and consequently provides color information in terms of the light primaries (or the printing secondaries) of red, green and blue (or R, G, B). This information is subsequently complemented, as defined in connection with FIG. 2, to determine for each pixel the required ink amounts or values of the printing primary colors of yellow, magenta and cyan which, when corrected and reproduced, produce the original color on the resultant image.

The complemented output from the scanner 20 which is stored on the storage disc 22 is typically in the form of a three byte binary code, each byte consisting of 8 bits, which defines the values of the three primary colors of the pixel of the source image.

The color information present on the storage disc 22 is read one pixel at a time to develop a signal denoted INPUT.

As shown in FIG. 4a, the signal INPUT may be considered a point in the input space defined by a vector INPUT which begins at the origin and terminates at a point (YelIN, MagIN, CyanIN), where YelIN, MagIN, and CyanIN are the 8-bit words of the signal.

A signal, called BASE, is generated from the four most significant bits of the signal INPUT by eliminating the four least significant bits thereof. For the purpose of illustrating the interpolation process, a vector called BASE is defined as having three 8-bit components, the four most significant bits of each component being equal to the respective components of the signal BASE, and the four least significant bits thereof being zeroes. The vector BASE may then be considered as extending from the origin OIN of the input space to one corner of a cube which is defined by the eight closest addresses of the map table surrounding the value INPUT. The corner defined by the vector BASE is the corner of the cube closest to the origin OIN and is the memory address next below the signal INPUT.

It should be understood, however, that in the implementation of the interpolation process, the signal BASE along with other signals defined below which are used to address the memory 28 each consist of 4 bits so they combine to make an address of 12 bits.

Alternatively, the memory 28 may contain a different number of stored points, as previously noted, or may utilize a different addressing scheme, such as 3 bit4 bit5 bit addresses, as opposed to the 4 bit4 bit4 bit addresses defined above.

The vector BASE is then incremented by 16 along each of the three axes to identify a vector, called NEXT, which extends from the origin OIN of the input space and terminates at the corner of the above-defined cube farthest away from the origin OIN.

Referring to FIG. 4b, the four least significant bits of each component of the signal INPUT are represented by a vector, called DIFF (difference), which extends from the point BASE to the point INPUT. The components of the vector DIFF represent the distance between these two points along the three axes.

From the vector DIFF, a vector called COLOR is defined as follows: ##EQU1##

Moreover, from this determination, a second vector, denoted COMP, is defined as follows: ##EQU2##

The vectors COLOR and COMP are illustrated in FIG. 4b for the case in which the magenta and cyan components are the highest and next highest components, respectively, of the vector DIFF.

The vectors COLOR and COMP are each used to develop signals represented by two further corners of the cube surrounding the value INPUT, in addition to the corners defined by the vectors BASE and NEXT, as follows:

PRI=coordinates of (BASE+COLOR)

SEC=coordinates of (BASE+COMP)

It can be seen that the corner PRI is the coordinants of the corner defined by BASE incremented by 16 in the direction of the axis along which the component of the vector DIFF is at maximum.

Similarly, the corner SEC is the coordinates of the corner defined by BASE incremented by 16 along the two axes along which the highest and next highest components of the vector DIFF occur. In effect, the corner SEC is that corner of the cube defined above which lies in the direction of the complement of the color having the lowest component of the vector DIFF, i.e., the corner which lies diagonally across one of the faces of the cube from the point defined by BASE in a plane perpendicular to the color axis having the smallest component of the vector DIFF.

It can be seen that the corners PRI, SEC and NEXT represent the addresses for the memory 18 which are next above the signal INPUT.

Each of the signals BASE, PRI, SEC and NEXT are used to address the memory. As previously noted, these signals are equal to the four most significant bits of the coordinates of the corners defined by the vectors BASE, COLOR, COMP and NEXT. In response to this addressing the memory produces the corrected values of yellow, magenta and cyan, along with a fourth color value representing the value of black ink, denoted K, which is added to the three corrected color components. In general, black ink is used to increase the maximum density and to add sharpness to the reproduced colors, in addition to reducing the required quantity of the remaining three inks.

Moreover, the loading of the memory with black ink values allows complete control of the gray scale, thereby eliminating undesirable discontinuities therein which lead to errors in reproduction.

Alternatively, the map table can be loaded to introduce nonlinearities in the color transformation, or even discontinuities, if desired.

The memory produces four output signals, denoted F1, F2, F3 and F4, in response to the addressing thereof by the signals BASE, PRI, SEC and NEXT, respectively. The values F1 -F4 are the values in the output space which represent the corrected color values for these corners of the cube. The values stored in the memory are selected to take into account the varying factors involved in the scanning and the printing processes, as noted above. In effect, the memory causes the input values to be mapped into a four valued output space, which represents all of the corrected color values.

Each of the values provided by the memory, i.e., F1, F2, F3 and F4 are then used in a mathematical equation set out in general terms below:

INTERPOLATED COLOR VALUE=(Yel0, Mag0, Cyan0, K0)

where:

Yel0 =(D1 Yel1 +D2 Yel2 +D3 Yel3 +D4 -Yel4)16

Mag0 =(D1 Mag1 +D2 Mag2 +D3 Mag3 +D4 Mag4)16

Cyan0 =(D1 Cyan1 +D2 Cyan2 +D3 Cyan3 +D4 Cyan4)16

K0 =(D1 K1 +D2 K2 +D3 K3 +D4 K4)16

and where:

F1 =(Yel1, Mag1, Cyan1, K1)=data representing CORRECTED BASE

F2 =(Yel2, Mag2, Cyan2, K2)=data representing CORRECTED PRI

F3 =(Yel3, Mag3, Cyan3, K3)=data representing CORRECTED SEC

F4 =(Yel4, Mag4, Cyan4, K4)=data representing CORRECTED NEXT

D1 =16-CH

D2 =CH -CM

D3 =CM -CL

D4 =CL

where CH, CM and CL are the highest, middle and lowest scalar components, respectively, of the vector DIFF, i.e., of the four least significant bits of the signal INPUT.

It can be seen that the interpolation process involves the vector sum of scaled quantities of vectors in the output space extending from the origin thereof to the points CORRECTED BASE, CORRECTED NEXT, CORRECTED PRI and CORRECTED SEC. By rearranging the equations for Y0, M0, C0, K0, it can be shown that the interpolated color value is derived by a sum of three scaled vectors with the vector extending from the origin to the point CORRECTED BASE. The three scaled vectors are parallel to the following defined vectors:

ΔCORRECTED NEXT=the vector from CORRECTED BASE to CORRECTED NEXT;

ΔCORRECTED PRI=the vector from CORRECTED BASE to CORRECTED PRI;

ΔCORRECTED SEC=the vector from CORRECTED BASE to CORRECTED SEC.

Consequently, the process interpolates between the corrected color values in the map table on the basis of the differences between the input color and the map table addresses for each color component. As a result, the interpolation process allows color reproduction which is optically equivalent to that which can be performed by a system utilizing large memories containing a corrected value for each perceptibly different input color combination.

Referring now to FIGS. 5a and 5b, there is illustrated pictorial representations of an input and an output space wherein it is desired to increase in the final printed copy the excess of the cyan component over the next highest component by 50%, when the cyan component is the largest component of the pixel color. Assume that, for purposes of illustration of this example, it is not desired to produce a black ink component K.

As shown in particular in FIG. 5a, assume that the vector INPUT, i.e., the complemented pixel color information, is equal to (202, 216, 238). Replacing the four least significant bits of each word with zeroes yields a value for the vector BASE of (192, 208, 224).

As before noted, the vector NEXT is the vector BASE augmented by 16 along each axis, and is therefore equal to (208, 224, 240).

By subtracting BASE from INPUT, the vector DIFF is found to be (10, 8, 14), yielding the scalar values of 8, 10 and 14 for CL, CM and CH respectively. Furthermore, since the greatest component of DIFF is the cyan component and the least component of DIFF is the magenta component, the vectors COLOR and COMP are defined as follows:

COLOR=(0, 0, 16)

COMP=(16, 0, 16)

Accordingly, from these vectors, the corners PRI and SEC are defined as follows:

PRI=(0, 0, 16)+(192, 208, 224)=(192, 208, 240)

SEC=(16, 0, 16)+(192, 208, 224)=(208, 208, 240)

Referring to FIG. 5b, the signals BASE, NEXT, PRI and SEC are used to address the memory, which in turn produces output values as follows:

F1 =(192, 208, 232)

F2 =(192, 208, 256)

F3 =(208, 208, 256)

F4 =(208, 224, 248)

Note that the cyan component of the points F2 and F3 in the output space are separated by a value of 24 minor divisions from the cyan component of the point F1, which reflects an increase of 50% over the usual 16 minor divisions in the input space by which the cyan components of the points PRI and SEC are separated from the cyan component of the point BASE. Consequently, the cube represented in the input color space is distorted to the form shown in FIG. 5b.

Inserting these values into the equation (1) results in the equation:

Yel0 =[2(192)+4(192)+2(208)+8(208)]16=202

Mag0 =[2(208)+4(208)+2(208)+8(224)]16=216

Cyan0 =[2(232)+4(256)+2(256)+8(248)]16=249

As seen in FIG. 5b, the interpolated color value is visualized as a sum of scaled vectors V1, V2, V3 and V4, which are parallel to CORRECTED BASE, ΔCORRECTED PRI, ΔCORRECTED SEC and ΔCORRECTED NEXT, respectively.

Referring now to FIG. 6, there is illustrated a detailed block diagram of the color corrector 24 illustrated in FIG. 1.

The scanner 20 develops a 32-bit signal for each pixel consisting of three 8-bit words denoting red, green and blue information and a fourth 8-bit word used in representing black type matter. With colors other than black, the fourth word is all ones. The 32-bit signal is complemented in a complementing circuit 40 which in turn develops yellow, magenta and cyan information which is stored on the disc 22. The fourth word becomes zeroes for a color image and does not affect the interpolation process.

The disc 22, under control of a computer (not shown), provides the 32-bit complemented word INPUT through a computer bus 42, a high speed data interface HSDA and a bus A to the memory 28.

The four most significant bits of each word of INPUT is used to address the memory 28. The memory 28 includes an address multiplexer 42 which converts the three 4-bit words into a form usable by the memory.

The four least significant bits of each word of the signal INPUT is used to address a lookup table 44 which contains 4096 memory positions. As previously noted, the four least significant bits of each word of INPUT represents the vector DIFF and this addressing results in a determination of the high, mid and low valued signal components CH, CM and CL.

The addressing of the lookup table by the four least significant bits results in the transfer of the values D1 -D4, calculated from the values CH, CM and CL, to a latch 46, which is a part of the lookup table 44. The values D1 -D4 are stored in each memory position and are each 5-bit values which represent any number between zero and 16.

The addressing of the lookup table 44 also causes a 3-bit number to be produced which determines and identifies the colors having the highest, least and middle components of the four least significant bits. This 3-bit number is coupled to a sequence controller 48 which in turn generates a control signal CS which controls various other components in the circuit.

In the preferred embodiment, the sequence controller 48 is implemented by suitably programming an Am2910 Microprogrammer Controller, manufactured by Advanced Micro Devices, Inc., and which is an address sequencer for controlling the sequence of execution of microinstructions stored in a microprogram memory. The microprogram may be stored in an external memory, such as a PROM (not shown). A descriptive listing of the microprogram for the interpolation process is given in an Appendix to this specification.

The accessing of the memory map 28 is controlled by the sequence controller 48 through the control signal CS. The four most significant bits of each byte of the input signal combine to form the base memory address next below the signal INPUT which is first used to address the memory 28, which determines the base output signal F1 representing the point CORRECTED BASE, and transfers this signal to a latch 50 which is a part of the memory map 28.

As previously noted, the four most significant bits of each byte of the signal INPUT are equal to the signal BASE. Therefore, in order to generate the address for the output value F2, the address for the output F1 is incremented by one (instead of 16), under control of the signal CS, in the component thereof which corresponds to the largest component of the four least significant bits of the signal input. In other words, the address represented by the vector BASE must be incremented as follows: ##EQU3## where COLOR is the vector representing the increment to a next higher address in the direction of the highest component of the vector DIFF, as previously noted.

Similarly, the address for F1 is incremented by the control signal CS to generate the following addresses for F3 and F4 :

address for F3 =address for F1 +COMP/16

address for F4 =address for F1 +(1, 1, 1)

where COMP is the increment to the next higher address in the direction of the highest and next highest components of the vector DIFF, as previously noted.

To facilitate the use of existing memory devices, the three 4-bit numbers are joined together to form a single 12-bit number which is accepted by the memory as a unique address.

The addressing of the memory by these additional signals determined in accordance with the control signal CS results in the determination of the corresponding output signals F2 -F4 which are stored in the latch 50 with the output F1 as 8-bit numbers. These output signals are coupled to an ALU 54 through a multiplexer 52.

The ALU 54 also receives the values D1 -D4 from the latch 48 through a multiplexer 56. The multiplexers 52 and 56 are also controlled in accordance with the control signal CS to allow the ALU 54 to perform operations in proper order.

The ALU 54 multiplies the values D1 -D4 with the values F1 -F4 according to the relation:

DN FN 

where N=1-4

The ALU 54 contains a set of internal registers R0-R3 which store various intermediae values during the course of a microprogram execution and an output register ROUT which stores the final values.

In the preferred embodiment, the ALU 54 is implemented by using four AM 2901B 4-bit bipolar microprocessor slices in conjunction with an AM2902A high speed look ahead carry generator and a 255557 high speed 88 bit multiplier, all of which are manufactured by Advanced Micro Devices, Inc.

The ALU 54 interpolates between output signals for the memory addresses below and above the signal INPUT in accordance with the signals D1 -D4 to establish three output signal increments which are summed with the base signal output F1. The first output signal increment is determined by multiplying the low valued input difference signal component CL with the output signal F4 representing the vector ΔCORRECTED NEXT. The second output signal increment is determined by multiplying the quantity (CM -CL) with the output signal F3 representing the vector ΔCORRECTED SEC which is the vector in the plane of the high and mid valued components of the vector DIFF. The third output signal increment is determined by multiplying the quantity (CH -CM) with the output signal F2 representing the vector ΔCORRECTED PRI which is the vector along the axis of the highest valued component of the vector DIFF.

The final values stored in the registers R0-R3 are then divided by 16 in a divider circuit 58, which may simply drop the four least significant bits therefrom. These values are then transferred through a demultiplexer 40 to an output shift register 62 which stores the interpolated color value.

The contents of the output shift register 62 are transferred under computer control through a bus B, a high speed data interface HSDB and the computer bus 42 to the storage disc 30 illustrated in FIG. 1.

As previously noted, the information stored on disc 30 is used to control a cylinder engraver 32, or may be used as an input to a color printer 34 or cathode ray tube 36, as desired.

The descriptive listing shown in the Appendix details the control of the ALU 54 by the sequence controller 48. The ALU 54 multiplies the individual color components of F1 -F4 with the values D1 -D4 as follows:

______________________________________ ##STR1##        where FN (Yel) is the Yellow component word of            FN ##STR2##        where FN (Mag) is the Magenta component word of            FN ##STR3##        where FN (Cyan) is the Cyan component word of            FN ##STR4##        where FN (black) is the black component word of            FN______________________________________

As previously noted, the output of the ALU 54 is divided by 16 in the divider circuit 58 to generate the values Y0, M0, C0, K0.

As noted in the co-pending application referred to above, the memory map 28 may be loaded with appropriate corrected color values under control of a general purpose computer (not shown) which includes a computer memory 64 and the computer bus 42. The appropriate values to be stored in the various memory positions of the memory map 28 may be stored in the computer memory 64 and may be transferred, under computer control, through the high speed data interface HSDA, the bus A and a series of read/write map I/O lines 66 into the appropriate positions in the memory 28. A load counter 68 sequentially controls the accessing of the memory 28 so that the values stored in the computer memory 64 are placed in the appropriate memory positions within the map 28.

It should be noted that the output values originally stored in the computer memory 64 may be generated by the general purpose computer, or may be externally generated and placed directly into the map 28.

APPENDIX

Address memory using 4 LSB's of INPUT;

Multiply F1 (Yel)D1 ;

Address memory using address for F2, multiply F1 (Mag)D1 and store F1 (Yel)D1 in R0 ;

Multiply F1 (Cyan)D1 and store F1 (Mag)D1 in R1 ;

Multiply F1 (Black)D1 and store F1 (Cyan)D1 in R2 ;

Multiply F2 (Yel)D2 and store F1 (Black)D1 in R3 ;

Address memory using address for F3, multiply F2 (Mag)D2, add F2 (Yel)D2 to previous product in R0 and store in R0 ;

Multiply F2 (Cyan)D2, add F2 (Mag)D2 to previous product in R1 and store in R1 ;

Multiply F2 (Black)D2, add F2 (Cyan)D2 to previous product in R2 and store in R2 ;

Multiply F3 (Yel)D3, add F2 (Black)D2 to previous product in R3 and store in R3 ;

Address memory using address for F4, multiply F3 (Mag)D3, add F3 (Yel)D3 to contents of R0 and store in R0 ;

Multiply F3 (Cyan)D3, add F3 (Mag)D3 to contents of R1 and store in R1 ;

Multiply F3 (Black)D3, add F3 (Cyan)D3 to contents of R2 and store in R2 ;

Multiply F4 (Yel)D4, add F3 (Black)D3 to contents of R3 and store in R3 ;

Multiply F4 (Mag)D4, add F4 (Yel)D4 to contents of R0 and put result 16 Yel0 into ROUT ;

Multiply F4 (Cyan)D4, add F4 (Mag)D4 to contents of R1 and put result 16 Mag0 into ROUT ;

Multiply F4 (Black)D4, add F4 (Cyan)D4 to contents of R2 and put result 16 Cyan0 into ROUT ;

Add F4 (Black)D4 to contents of R3, put result of 16K0 into ROUT.

Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
US4275413 *Jul 3, 1979Jun 23, 1981Takashi SakamotoLinear interpolator for color correction
US4334240 *Jul 2, 1980Jun 8, 1982Crosfield Electronics LimitedInterpolation methods and apparatus
Referenced by
Citing PatentFiling datePublication dateApplicantTitle
US4670780 *May 28, 1985Jun 2, 1987Tektronix, Inc.Method of matching hardcopy colors to video display colors in which unreachable video display colors are converted into reachable hardcopy colors in a mixture-single-white (MSW) color space
US4679072 *Dec 13, 1985Jul 7, 1987Canon Kabushiki KaishaColor adjusting device
US4717954 *May 8, 1984Jan 5, 1988Toppan Printing Co., Ltd.Method and apparatus using a conversion table based on pre-printed color charts for determining half-tone dot percents required to reproduce the color of a color specimen
US4758885 *Jun 10, 1986Jul 19, 1988Canon Kabushiki KaishaMethod of processing color image
US4805013 *Apr 11, 1988Feb 14, 1989Canon Kabushiki KaishaImage data conversion system
US4839721 *Aug 28, 1984Jun 13, 1989Polaroid CorporationMethod of and apparatus for transforming color image data on the basis of an isotropic and uniform colorimetric space
US4839722 *Oct 30, 1987Jun 13, 1989Colorocs CorporationMethod and apparatus for providing improved color correction in a subtrative color printing system
US4879594 *Sep 23, 1988Nov 7, 1989Crosfield Electronics LimitedReproduction of colored images
US4884080 *Jun 2, 1987Nov 28, 1989Kabushiki Kaisha ToshibaColor image printing apparatus
US4893181 *Oct 3, 1988Jan 9, 1990Crosfield Electronics LimitedInteractive image modification
US4954912 *May 31, 1989Sep 4, 1990Crosfield Electronics LimitedImage generating apparatus
US5073818 *Dec 21, 1988Dec 17, 1991Minolta Camera Kabushiki KaishaMethod for processing color image and apparatus therefor
US5081527 *Jan 31, 1991Jan 14, 1992Minolta Camera Kabushiki KaishaDigital image forming apparatus
US5119186 *Sep 28, 1989Jun 2, 1992International Business Machines CorporationColor mapping system and method
US5138699 *Feb 13, 1990Aug 11, 1992International Business Machines CorporationHardware utilization of color interpolation capability in a color imaging system
US5149960 *Jul 3, 1991Sep 22, 1992R. R. Donnelley & Sons CompanyMethod of converting scanner signals into colorimetric signals
US5175701 *Oct 8, 1991Dec 29, 1992Eastman Kodak CompanySystem for performing linear interpolation
US5185661 *Sep 19, 1991Feb 9, 1993Eastman Kodak CompanyInput scanner color mapping and input/output color gamut transformation
US5208631 *Dec 9, 1991May 4, 1993Xerox CorporationHigh light color toner identification scheme
US5296935 *Sep 27, 1991Mar 22, 1994Scitex Corporation Ltd.Method and apparatus for calibrating a pipelined color processing device
US5299291 *Oct 28, 1992Mar 29, 1994Canon Information SystemsColor printing method and apparatus using an out-of-gamut color table
US5321797 *Jun 11, 1990Jun 14, 1994Eastman Kodak CompanyApparatus and method for performing coordinate transformation employing stored values and interpolation
US5323247 *Apr 9, 1992Jun 21, 1994Research Corporation TechnologiesMethod and apparatus for halftoning and inverse halftoning and the transmission of such images
US5327509 *Apr 27, 1992Jul 5, 1994Star Technologies, Inc.Compressed image system for texture patterns
US5331430 *Oct 11, 1991Jul 19, 1994R.R. Donnelley & Sons CompanyElectronic high-fidelity screenless conversion system
US5335089 *Jul 29, 1992Aug 2, 1994R. R. Donnelley & Sons CompanyElectronic high-fidelity screenless conversion system and method using a separable filter
US5341228 *Dec 3, 1991Aug 23, 1994Research Corporation TechnologiesMethod and apparatus for halftone rendering of a gray scale image using a blue noise mask
US5390035 *Dec 23, 1992Feb 14, 1995International Business Machines CorporationMethod and means for tetrahedron/octahedron packing and tetrahedron extraction for function approximation
US5432892 *Nov 25, 1992Jul 11, 1995International Business Machines CorporationArithmetic apparatus
US5432906 *Jun 3, 1994Jul 11, 1995Eastman Kodak CompanyColor image processing system for preparing a composite image transformation module for performing a plurality of selected image transformations
US5438649 *Oct 28, 1992Aug 1, 1995Canon Information Systems, Inc.Color printing method and apparatus which compensates for Abney effect
US5475510 *Oct 16, 1992Dec 12, 1995Fuji Xerox Co., Ltd.Method for transforming color signals and apparatus for the method
US5477305 *Nov 22, 1994Dec 19, 1995Research Corporation TechnologiesMethod and apparatus for halftone rendering of a gray scale image using a blue noise mask
US5477334 *Aug 2, 1994Dec 19, 1995Bemis Manufacturing CompanyMethod of classifying a color sample
US5479272 *Aug 13, 1993Dec 26, 1995Seiko Instruments Inc.Color gradation correction system of combination of looking-up table and interpolation and method thereof
US5479534 *Feb 22, 1995Dec 26, 1995Konica CorporationImage reading apparatus
US5481655 *Sep 18, 1992Jan 2, 1996Iris Graphics, Inc.System for matching a picture on a monitor to a printed picture
US5500921 *Oct 5, 1992Mar 19, 1996Canon Information Systems, Inc.Method and apparatus for printing high fidelity color reproductions of colors displayed on a monitor
US5504821 *Mar 31, 1994Apr 2, 1996Matsushita Electric Industrial Co., Ltd.Color converting apparatus for performing a three-dimensional color conversion of a colored picture in a color space with a small capacity of memory
US5508826 *Apr 27, 1993Apr 16, 1996Lloyd; William J.Method and apparatus for calibrated digital printing using a four by four transformation matrix
US5519515 *Sep 26, 1994May 21, 1996Ricoh Company, Ltd.Method of determining color signals for input signals at vertices in input color space
US5539540 *Sep 13, 1994Jul 23, 1996Eastman Kodak CompanyMethod and associated apparatus for transforming input color values in an input color space to output color values in an output color space
US5581376 *Feb 8, 1996Dec 3, 1996Xerox CorporationSystem for correcting color images using tetrahedral interpolation over a hexagonal lattice
US5583666 *Feb 16, 1995Dec 10, 1996Eastman Kodak CompanyMethod for cross-device color calibration and enhancement using explicit constraints
US5590251 *Aug 5, 1994Dec 31, 1996Toyota Jidosha Kabushiki KaishaColor reproducing device for reproducing matched colors and an outputting device for outputting information for reproducing a color of a coated surface
US5592591 *Oct 4, 1993Jan 7, 1997Xerox CorporationReduced storage of pre-computed difference tables used in color space conversion
US5596510 *Mar 23, 1994Jan 21, 1997Island GraphicsTable-based linear interpolation for color correction system and method
US5615282 *Mar 25, 1994Mar 25, 1997Scitex Corporation Ltd.Apparatus and techniques for processing of data such as color images
US5652831 *Feb 1, 1996Jul 29, 1997Industrial Technology Reasearch InstituteVariable point interpolation apparatus and method with scalable architecture for color correction
US5657137 *May 10, 1995Aug 12, 1997Hewlett-Packard CompanyColor digital halftoning using black and secondary color replacement
US5659406 *Jun 20, 1996Aug 19, 1997Ricoh Company, Ltd.Color correction system for transforming color image from one color space to another
US5666436 *Apr 17, 1995Sep 9, 1997Electronics For ImagingMethod and apparatus for transforming a source image to an output image
US5666437 *Aug 2, 1996Sep 9, 1997Hewlett-Packard CompanyApparatus for routing interpolator input data by performing a selective two's complement based on sets of lower and higher order bits of input data
US5677967 *Dec 23, 1994Oct 14, 1997R. R. Donnelley & Sons CompanyMethod of and apparatus for converting between a color appearance space and a colorant space
US5708518 *Apr 11, 1995Jan 13, 1998Research Corporation Technologies, Inc.Method and apparatus for halftone rendering of a gray scale image using a blue noise mask
US5717507 *Aug 2, 1996Feb 10, 1998Hewlett-Packard CompanyApparatus for generating interpolator input data
US5726772 *Oct 6, 1995Mar 10, 1998Research Corporation TechnologiesMethod and apparatus for halftone rendering of a gray scale image using a blue noise mask
US5748195 *Aug 18, 1995May 5, 1998International Business Machines CorporationMethod and means for evaluating a tetrahedral linear interpolation function
US5751926 *Dec 23, 1992May 12, 1998International Business Machines CorporationFunction approximation using a centered cubic packing with tetragonal disphenoid extraction
US5781310 *Apr 14, 1997Jul 14, 1998Ricoh Company Ltd.Copying system having image inputting unit and image outputting unit shared with other image processing systems
US5786907 *Dec 20, 1994Jul 28, 1998International Business Machines CorporationHigh speed color compensation system
US5786908 *Oct 5, 1993Jul 28, 1998E. I. Du Pont De Nemours And CompanyMethod and apparatus for converting image color values from a first to a second color space
US5809181 *Jul 12, 1996Sep 15, 1998Canon Information Systems Research Australia Pty. LimitedColor conversion apparatus
US5818960 *Mar 20, 1995Oct 6, 1998Eastman Kodak CompanyCharacterization calibration
US5870077 *Feb 26, 1997Feb 9, 1999Hewlett-Packard CompanyComputerized data transformation method
US5966474 *Dec 12, 1997Oct 12, 1999Hewlett-Packard CompanyNon-symmetric radial and non-symmetric pruned radial interpolation
US5982990 *Jun 4, 1997Nov 9, 1999Hewlett-Packard CompanyMethod and apparatus for converting color space
US6002795 *Jun 19, 1997Dec 14, 1999Electronics For Imaging, Inc.Method and apparatus for transforming a source image to an output image
US6028683 *Dec 12, 1997Feb 22, 2000Hewlett-Packard CompanyCommon pruned radial and pruned tetrahedral interpolation hardware implementation
US6031642 *Dec 12, 1997Feb 29, 2000Hewlett-Packard CompanyTetrahedral and pruned tetrahedral interpolation
US6040925 *Dec 12, 1997Mar 21, 2000Hewlett-Packard CompanyRadial and pruned radial interpolation
US6040926 *Dec 12, 1997Mar 21, 2000Hewlett-Packard CompanyCommon non-symmetric pruned radial and non-symmetric pruned tetrahedral interpolation hardware implementation
US6049400 *Dec 12, 1997Apr 11, 2000Hewlett-Packard CompanyNon-symmetric tetrahedral and non-symmetric pruned tetrahedral interpolation
US6137494 *Sep 5, 1997Oct 24, 2000International Business Machines CorporationMethod and means for evaluating a tetrahedral linear interpolation function
US6292195 *Mar 23, 1998Sep 18, 2001Fujitsu LimitedFormatting color signals by selecting irregularly distributed output color points of one color space surrounding an inputted color point of another color space
US6389161Aug 16, 1997May 14, 2002Heidelberger Druckmaschinen AgMethod of interpolation in an n-dimensional color space
US6421140 *Dec 8, 1995Jul 16, 2002Canon Kabushiki KaishaColor space conversion with simplified interpolation
US6466333Jun 26, 1998Oct 15, 2002Canon Kabushiki KaishaStreamlined tetrahedral interpolation
US6771275 *Jun 7, 2000Aug 3, 2004Oak Technology, Inc.Processing system and method using a multi-dimensional look-up table
US6933949Feb 26, 1997Aug 23, 2005Hewlett-Packard CompanyMethod for interpolation of tristimulus color data
US7019868 *Dec 19, 2000Mar 28, 2006Sharp Laboratories Of Ameirca, Inc.Black generation method for CMYK color printer using multiple lookup tables and interpolation
US7397483Jun 30, 1999Jul 8, 2008Canon Kabushiki KaishaImage data conversion using interpolation
US7777760Jun 29, 2007Aug 17, 2010Apple Inc.Display color correcting system
US7924291Jun 23, 2010Apr 12, 2011Apple Inc.Display color correcting system
US8094167Mar 3, 2011Jan 10, 2012Apple Inc.Display color correcting system
US8184304Nov 19, 2007May 22, 2012Moore Wallace North America, Inc.System and method of operating a raster image processor
US8289538Mar 28, 2007Oct 16, 2012Moore Wallace North America, Inc.Systems and methods for managing print jobs
US8427499Dec 22, 2011Apr 23, 2013Apple Inc.Display color correcting system
US8564808Dec 18, 2007Oct 22, 2013R. R. Donnelley & Sons CompanySystems and methods for processing of variable documents
DE4234985A1 *Oct 16, 1992Apr 22, 1993Fuji Xerox Co LtdVerfahren zum transformieren von farbsignalen und vorrichtung zur durchfuehrung des verfahrens
DE4234985C2 *Oct 16, 1992Jun 18, 1998Fuji Xerox Co LtdVerfahren zum Transformieren von Farbsignalen und Vorrichtung zur Durchfhrung des Verfahrens
DE19641822A1 *Oct 10, 1996Apr 16, 1998Hell Ag LinotypeVerfahren zur Interpolation in einem n-dimensionalen Farbraum
EP0313794A2 *Sep 16, 1988May 3, 1989Tektronix, Inc.Display-based color system
EP0398502A2 *Apr 18, 1990Nov 22, 1990Hewlett-Packard CompanyMethod and system for providing a colour match between a scanned colour test pattern and the respective printout of a colour printer, using a closed control loop
EP0410719A2 *Jul 25, 1990Jan 30, 1991Seiko Instruments Inc.Colour correction system and method
EP0637731A1 *Aug 4, 1994Feb 8, 1995Toyota Jidosha Kabushiki KaishaMethod of color reproduction, method of reproducing a coating color, and method of selecting a coating color
EP0647061A1 *Sep 30, 1994Apr 5, 1995Xerox CorporationColor space conversion
EP0700198A2Aug 24, 1995Mar 6, 1996Xerox CorporationSystem for correcting color images using tetrahedral interpolation over a hexagonal lattice
EP0822396A1 *Aug 4, 1994Feb 4, 1998Toyota Jidosha Kabushiki KaishaMethod of selecting a coating color
EP0853423A2 *Nov 26, 1997Jul 15, 1998Sharp Kabushiki KaishaImage data color correction method
EP0889439A2 *Jul 1, 1998Jan 7, 1999Fuji Photo Film Co., Ltd.Image transforming method and apparatus
WO1991006174A1 *Oct 1, 1990May 2, 1991Eastman Kodak CoColor digital halftoning with vector error diffusion
WO1994008274A1 *Oct 5, 1993Apr 14, 1994Du PontMethod and apparatus for converting image color values from a first to a second color space
Classifications
U.S. Classification358/525, 358/524
International ClassificationH04N1/60, G03F3/08
Cooperative ClassificationH04N1/6025
European ClassificationH04N1/60D3B
Legal Events
DateCodeEventDescription
Dec 24, 1996FPExpired due to failure to pay maintenance fee
Effective date: 19961016
Oct 13, 1996LAPSLapse for failure to pay maintenance fees
May 21, 1996REMIMaintenance fee reminder mailed
Mar 11, 1992FPAYFee payment
Year of fee payment: 8
Mar 3, 1988FPAYFee payment
Year of fee payment: 4