Abstract:
Disclosed is a technique for N-dimensional image data interpolation processing utilizing a multi-stage technique. Each stage processes one of the N-dimensions to constrain output data in that dimension. Subsequent processing in successive stages only occurs within the confines of the constrained output of the previous stage. Multiple data values can be simultaneously processed in the different stages, to pipeline the interpolation process.

Description:
FIELD OF THE INVENTION 
     The present invention relates to the interpolation of data and, in particular, to a process and apparatus for the interpolation of multi-dimensional data, such as color image data. 
     BACKGROUND OF THE INVENTION 
     In an imaging system having color graphics, it is desirable to generate color images on many types of output devices such as computer display screens and printers. However, due to inherent differences between such devices, color data that represents a certain color in one device may not match the same color output in another. To ensure color matching between devices, it is necessary to translate color data when transmitting it between devices. There are several methods in which this is presently done, and, in general, most methods involve a color look-up table (LUT). The color LUT functions to translate color data corresponding to a first display device (referred to as the source device) to color data corresponding to a second device (referred to as the destination device). The LUT stores color values corresponding to the destination device and functions such that, when it is indexed with source device image data, it provides corresponding translated color data to the destination device. 
     Generally, in color reproduction in an imaging system, each color input and output device is characterized as having a range, or gamut, of colors that define a corresponding color space. Display screens generally represent colors in a red, green, blue (RGB) color space. Printers, on the other hand, typically represent colors in a cyan, magenta, yellow, and black (CMYK) color space. 
     Typically, the manner in which color information is translated from a source color space to a destination color space is to initially translate the color data from the source device to a device-independent color space value. One well-known device-independent color space is the Cie-standard ABC color space. If the source device is properly calibrated, this translation is well-known and may be performed either by translation equations, or by a standardized color LUT. 
     After translating a color value from the source color space to the device-independent color space, the information is once again translated. This time the information is translated from the device-independent color space to the destination device color space. This transformation may be accomplished by using a color LUT that corresponds to the destination device, by use of translation equations, or by use of color transform algorithms. 
     A LUT contains data which corresponds to an output transfer function, which transfer function translates input image data to output image data in such a way that image color reproduction accuracy is maintained between a source and a destination device. The entire gamut of colors within a given color space may encompass thousands or even millions of distinct colors. Due to practical limits on the size of the memory that can be used to store the color look-up table, however, only discrete data points within the gamut are stored in the color LUT. As a result, it is often necessary to interpolate between data points stored in a color LUT to determine desired output color for a destination device. 
     Interpolation involves calculations based on geometric factors, to determine output values which correspond to a reliable reproduction of a source device color on a destination device. Interpolation for color image data is multi-dimensional in nature, where each dimension corresponds to one component of the color space for the source device. If the source device is a display monitor which represents colors in an RGB color space, for example, three-dimensional interpolation is required. 
     In a typical scenario wherein a source device is a video display, and a destination device is a printer, interpolation may involve taking input color image data values corresponding to a pixel from the video display and applying a known transform to determine output color image data values which correspond to accurate color reproduction of the pixel in a printed point on the printer. This process may or may not go though the intermediate medium of a device-independent color space. 
     It is an object of the present invention to provide a system for performing interpolation of multi-dimensional data, such as that stored in color LUTs, which provides a method and system for transformation, or translation, of such data. 
     It is a further object of the present invention to provide a system for performing interpolation processing of color image data, wherein image attributes, corresponding to each of the components of a color space, are individually processed on a dimension-by-dimension basis. 
     SUMMARY OF THE INVENTION 
     The aforementioned and other objects of the invention are achieved by providing a system for multi-dimensional interpolation processing of input data, wherein the input data is analyzed for a single dimensional parameter at individual processing levels or stages. 
     The present invention operates by performing interpolation processing according to a multi-level, or multi-stage analysis wherein each level of processing is dedicated to a single dimensional attribute of the data. That is to say, at each level or stage of processing, an individual dimensional attribute is assessed to determine interpolation values for the particular dimension. 
     The output data from a given level is restricted to the interpolation values arrived upon for the particular dimension, so that subsequent processing of the remaining dimensions need only be analyzed within the range of values determined by the previous processing. 
     Hence, for an exemplary scenario wherein input data comprising data points each having X, Y and Z-dimensional attributes are involved, the inventive arrangement first analyzes the data with respect to the X-dimensional attribute in accordance with a known X-dimensional transform. The output of such analysis is output interpolation data which is constrained in the X-dimension. Subsequent processing occurs for the Y-dimensional attributes (in accordance with a known Y-dimensional transform), and operates on the output determined by the preceding X-dimensional processing. Consequently, the interpolation processing of the Y-dimensional data is reduced, as it is only performed for the interpolation values determined by X-dimensional processing, and not over the entire range of X values. 
     Output from the Y-dimensional interpolation assessment has fixed interpolation values for both the X and Y dimensions. Accordingly, Z-dimensional processing is expedited, as such processing is performed on output data whose range of X and Y values has been reduced by preceding processing. 
     Other objects and advantages of the invention will become readily apparent from the drawings and detailed description set out below. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 depicts an exemplary computing system in which an interpolation processor in accordance with the present invention may be employed; 
     FIG. 2 depicts an example of one-dimensional interpolation processing; 
     FIG. 3 depicts a one-dimensional interpolation unit; 
     FIG. 4 depicts a three-dimensional interpolation unit; 
     FIG. 5 depicts a three-dimensional interpolation processing color space having an output value indicated therein; and 
     FIG. 6 depicts an analysis of the three dimensional color space of FIG. 5 to arrive at a desired output value. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     To facilitate an understanding of the present invention, it is described hereinafter in the context of its implementation in a color imaging systemof the type in which three-dimensional color space data for an RGB monitor is converted into corresponding data values for a printer that represents colors in a three-component or four-component color space. It will be appreciated, however, that this disclosed embodiment is exemplary, and that the invention can find practical utility in any environment in which interpolation of multi-dimensional data values is carried out. 
     FIG. 1 shows an exemplary computer system in which the present invention may be utilized. In this type of system, image data from a source device in the form of a display 12 is interpolated to provide output data to a destination device in the form of a printer 14. For example, the display 12 may represent colors in a red-green-blue (RGB) color space, whereas theprinter may operate in a cyan-magenta-yellow (CMY) or cyan-magenta-yellow-black (CMYK) color space. When an image appearing on the display is to be printed on the printer, it must be converted from thedisplay&#39;s color space into that of the printer&#39;s color space. Typically, this is done by retrieving conversion values from a look-up table. Since the look-up table may not store a value for every possible color in the color gamuts of the source and destination devices, interpolation of the retrieved value may be required. 
     In a preferred embodiment, color interpolation processing is handled by software which controls the operation of a color interpolation processor 16 which can be located in the printer 14, or within a CPU 18 or embodied in a separate device 20 located between the printer 14 and the CPU 18. Thecolor interpolation processor 16 may be an application specific integrated circuit (ASIC). Input image data from the source display 12 is provided tothe interpolation processor 16. The interpolation processor 16 interpolatesthe input data and provides the output to the destination printer 14 to generate a printed image. 
     A detailed explanation of interpolation processing in accordance with the present invention is given below with respect to one- and three-dimensional processing. However, it is within the scope of the present invention to apply the present invention to processing of data having any number of dimensions. Furthermore, while the present invention is described with respect to color data, the invention may be applied to interpolation processing of other image attributes including, but not limited to, grayscale values, half tones, hues, and shading or any other application that requires multi-dimensional interpolation. 
     FIG. 2 depicts a case exemplifying one-dimensional interpolation processing. A zero point on an axis represents one value that might be retrieved from a color conversion look-up table, while another point X mayrepresent the next adjacent value stored in the table. This input data is used to linearly interpolate between values of V 0  and V X  found at the two points 0 and X, respectively, to determine a desired interpolated value V X-0  at point X-0. The resulting fractional distance X-0, divided by the distance between X and 0, is denoted as the function F X . The value at X-0 is given by: 
     
         V.sub.X-0 =V.sub.0 +(V.sub.X -V.sub.0)F.sub.X 
    
     A corresponding structure for implementing such a function may be referred to as an interpolation unit (IU) 22 depicted in FIG. 3. The interpolation unit 22 may represent a software process carried out within the interpolation processor 16, or may be a hardware arrangement that consistsof adders and multipliers for implementing the function represented by the equation set forth above. In any event, the IU structure is provided for explanatory purposes, and the particular means utilized by the IU for executing the equation(s) is not critical to the invention. 
     An arrangement of a number of IUs in a multi-stage structure is capable of providing a high performance multidimensional interpolation engine. In such an arrangement, the depth of the structure, that is, the number of stages, is related to the number of dimensions of the image data being interpolated. A set, or array, of IUs at each stage provides processing for a particular attribute or dimension. A three-dimensional interpolationprocessor having three processing stages is shown in FIG. 4. Such a processor is capable of interpolating three-dimensional color space data, such as that for an RGB color space, for example. 
     A detailed analysis for three-dimensional interpolation processing is provided, as follows, with respect to FIGS. 4 through 6. It should be noted that the following description is merely exemplary and that any number of I/O dimensions, or attributes, may be involved in practicing thepresent invention. 
     A three dimensional color space can be graphically represented as shown in FIG. 5. The X, Y, and Z dimensions of the representation may correspond tothe red, green, and blue components of an RGB color space, the cyan, magenta, and yellow components of a CMY color space, on the three generic components of the device-independent CIE-ABC color space. The present invention operates in a fashion which quickly and efficiently determines the desired interpolation values for the X, Y and Z factors. The desired ultimate output interpolation value (point) corresponding to the XYZ spaceis labelled as  (XYZ-YZ)-(XZ-Z)!- (XY-Y)-(X-0)! in FIG. 5, which corresponds to a reference point 49 in FIG. 6. 
     FIG. 6 provides a graphic depiction of how the image data space shown in FIG. 5 might be processed to determine the interpolation values in each ofthe X, Y, and Z dimensions. Processing of the data represented by such a space might be performed by the three-stage interpolation unit depicted inFIG. 4. Processing indicated by various reference numbers in FIG. 6 corresponds to the same reference numbers in FIG. 4. 
     In accordance with a preferred embodiment of the invention, the interpolation unit arrangement in FIG. 4 first processes the image data inthe X dimension. That is, interpolation processing is performed for each offour pairs of points: (0,X), (Y,XY), (Z,XZ), and (YZ,XYZ), which define respective distances in the direction of the X dimension. It is to be noted that, although depicted as being equal in FIG. 6, each of these fourX-dimension distances might be different in a non-linear system, such as a typical color space. For this reason, each of the four distances defined by the respective pairs of points is individually processed. This X-axis processing is depicted in FIG. 6 by respective arrows 32, 34, 36 and 38, corresponding to the four X-dimension distances. The corresponding processing in the interpolation unit of FIG. 4 is shown at reference numerals 32, 34, 36 and 38. More particularly, an array 40 of four IU processors performs interpolation in the X-dimension. In FIG. 4, the interpolation values obtained for each of the X-axis distances, defined bythe above-given pairs of points, are given by V X-0 , V XY-Y , V XZ-Z , and V XYZ-YZ , which correspond to output values 33, 35, 37and 39, respectively. FIG. 6, accordingly, depicts the interpolation valuesV X-0 , V XY-Y , V XZ-Z , and V XYZ-YZ , respectively, at points 33, 35, 37 and 39 on the X-axis edges of the depicted space. The image data, over which subsequent Y and Z dimensional interpolation processing occurs, is constrained to a two-dimensional space 50, e.g. a plane in a linear system, whose comers are defined by points 33, 35, 37 and 39. Consequently, subsequent processing is simplified as it is limitedto the two-dimensional space 50. 
     Processing next occurs in the Y dimension. Such processing is simplified inthat it will be constrained to those Y-axis values which lie in the two-dimensional space 50 defined by the data values V X-0 , V XY-Y ,V XZ-Z , and V XYZ-YZ  (points 33, 35, 37 and 39, respectively). Processing for the Y-dimension values is performed in the Y-axis dimensionof the space 50, as shown by arrows 52 and 54. Such Y directional processing is conducted in accordance with a known Y dimensional transformF Y , to determine the interpolation values in the Y dimension with respect to the values defined within points 33 and 35, and 37 and 39, respectively. Corresponding Y-dimensional processing in the interpolation unit of FIG. 4 is shown by the two IUs of a second-stage array 42 which produce values 41 and 43. The result of the Y-dimensional processing is given by the interpolation values V.sub.(XY-Y)-(X-0) and V.sub.(XYZ-YZ)-(XZ-Z) depicted in FIG. 6 at points 41 and 43, respectively. 
     The interpolation values given by Y-dimensional processing determine a one-dimensional line 16, defined by points 41 and 43, over which the Z dimensional values are analyzed to determine the interpolation value for the Z-dimension. Processing of the Z dimensional interpolation value is conducted in accordance with a known Z dimensional transform F Z . SuchZ dimensional processing corresponds to the arrow 48. This processing is carried out in a third stage 44 of the processor, which contains a single interpolation unit. The ultimate result is given as V.sub. (XYZ-YZ)-(XZ-Z)!- (XY-Y)-(X-0)! which is depicted at point 49 in FIG. 6, and represents the (X,Y,Z) value to be used for output purposes. 
     Hence, it can be seen that utilizing a multi-stage structure to interpolatemultidimensional data significantly increases the simplicity of processing by reducing the space, or range over which subsequent interpolation processing is to occur, rather than processing each of the dimensions overthe entire range of each dimension. 
     An additional advantage provided by the present invention is the fact that input data may be &#34;pipelined&#34; in the multi-stage interpolation unit. When color values are interpolated, each component of the color value is separately processed. For example, if the destination color space is CMYK,each of the cyan, magenta, yellow and black components of the input data points are separately processed, typically in sequence. In the processor of the present invention, after a data value corresponding to a first component of a pixel is processed in the X-dimension by IU array 40 to generate output values 33, 35, 37, and 39, the IU array 40 may immediatelybe loaded with input data for a second component of the pixel. Hence, immediately following generation of X-dimensional output values 33, 35, 37, and 39, for one component input data corresponding to the next component can be processed in the IU array 40 for X-dimensional interpolation at the same time that the data for the first component is undergoing Y-dimensional interpolation in the second stage 42. At the nextstep, the image data for three component values of a pixel can be simultaneously interpolated at the same time for the three dimensions, respectively. 
     Different mechanisms can be employed to carry out the invention. Any suitable software, firmware, or hardware arrangement sufficient to bring about a desired result will suffice. In software, the invention may be carried out by providing a parallel processing structure wherein each stage of processing is dedicated to one of the input dimensions. In a pipelined arrangement, a particular transform can be fed directly into theprocessing stage involved with its particular dimension. The same can be said of firmware arrangements. 
     In hardware, the necessary logic can be implemented in any number of ways. The basic premise is to provide a multi-stage structure with an appropriate number of stages to provide analysis for an appropriate numberof dimensions. Hardware embodiments for carrying out the invention include field programmable logic arrays and application-specific integrated circuits (ASICs). However, the particular arrangement in which the invention is carried out is not critical. 
     Although the elements of the present invention have been described in a conjunction with certain embodiments, it will be appreciated that the invention may be implemented in a variety of other ways. Consequently, it is to be understood that the particular embodiments shown and described byway of illustration should in no way be considered limiting.