Abstract:
A method is presented for realizing standard colors on a display that does not have the standard primaries. The method enables a display with non-standard primaries to show colors as it has standard SMPTE-C primaries. Further, a method is presented to show the same standard colors on different locations of the display. Measurements of the physical parameters of the display&#39;s color primaries are obtained and implemented as calibrated display or a display which can be calibrated by user/calibrator with a color measuring tool such as calorimeter or spectroradiometer.

Description:
FIELD OF THE INVENTION  
       [0001]     The present invention relates in general to image processing and display calibration, and in particular to standard color realization of a color display using image processing.  
       BACKGROUND OF THE INVENTION  
       [0002]     The real world scene contains millions of different colors with different hues and saturations. Reproducing these colors correctly is an essential goal of all color reproduction systems, including input systems (e.g., scanners, still and video cameras, etc.) and output system (e.g., printers, displays, big silver screens, etc.). The goal of color reproduction is to reproduce exactly the same colors as they are perceived, which is extremely difficult. First, both the input and output of color reproduction systems have a limited color gamut, meaning only the color within the color gamut can be recorded by the input device or reproduced by the output device. In addition, the color gamut is different for different devices. Once a color is recorded as values based on one particular input device&#39;s primary colors, the color values are associated with that input device. While the color values are transmitted to reproduce the original color, the output device should have the exactly same color settings as the particular input device in order to reproduce the same color. However, this is not always the case and different output devices show different colors for the same color value.  
         [0003]     The television industry has attempted to solve this problem by setting the same color standard for both the input and output systems. In this way, color reproduction becomes simpler for displays since only compliance with the standard is needed, and considering the input device&#39;s color setting is unnecessary. Still, it is difficult and expensive to completely comply with the color standard with new display technologies such as LCD, DLP and PDP, without using the traditional CRT phosphors. Professional color calibration is usually required to achieve better color reproduction of the TV set. At the same time, as the displays are becoming larger, it is usually difficult to achieve uniform colors across the screens. As such, there is a need for a method and system to achieve standard color for nonstandard color displays and to achieve uniform color across the screen for those displays  
       BRIEF SUMMARY OF THE INVENTION  
       [0004]     The present invention addresses the above needs. In one embodiment, the present invention provides methods and systems that achieve standard color for nonstandard color displays and achieve uniform color across the screen for those displays.  
         [0005]     A method and corresponding system for realizing standard colors on displays using an image processing approach is provided. As mentioned, the realization of standard color in hardware is relatively difficult and expensive. The present invention improves the color accuracy of a display that is biased in hardware. To do so, color measurements are required for computing a color transformation that can transform the input color values to output color values such that the display shows correct colors. This can be implemented either as a built-in transformation for the display, or as a system allowing user input of measurements wherein the system computes the corresponding transformation. In addition, the present invention enables a display to show uniform standard color on different locations of the display. This requires color measurements of different locations of the display, wherein interpolation is used for the color transformation of those locations that are not directly measured.  
         [0006]     Other features and advantages of the present invention will be apparent from the following specifications taken in conjunction with the following drawings. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0007]      FIG. 1  shows two sets of color primaries, one being an example of device primaries and the other standard primaries defined by SMPTE C standard.  
         [0008]      FIG. 2  shows an example block diagram of a system for transforming the input RGB values to an output RGB values according to an embodiment of the present invention.  
         [0009]      FIG. 3  shows an example block diagram of a system for realizing uniform standard colors according to an embodiment of the present invention.  
         [0010]      FIG. 4  shows example interpolation system for uniform standard colors according to an embodiment of the present invention. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0011]     Referring to the drawings, example embodiments of the present invention are now described. In one example, measurements of the colors of the display are utilized. Colorimeters or spectroradiometers that measure the CIE Yxy or CIE XYZ values of the light output from the display can be used. A first example method requires three measurements (Y i ,x i ,y i ) or (X i ,Y i ,Z i ), i=1,2,3, of the display, each of which corresponds to the input RGB value of (R i ,G i ,B i ), i=1,2,3. If the instruments provide only Yxy values, the corresponding transformation from Yxy to XYZ is as follows:  
         X   =     x   ·     Y   /   y         ,     
     ⁢     Y   =   Y     ,     
     ⁢     Z   =       (       1   y     -     x   y     -   1     )     ·     Y   .             
 
         [0012]     A simple way is to set the three normalized input RGB values as (1, 0, 0), (0, 1, 0) and (0, 0, 1), and obtain their CIE XYZ values through the measurements. The measured Y values need to be normalized so that they are ranging from 0 to 1. If we assume that the color space transformation between the device dependent RGB color and the device independent XYZ color space is a linear transformation, i.e.,  
           (         X           Y           Z         )     =     M   ·     (         R           G           B         )         ,       
 
         [0013]     it can be seen that for three XYZ values of the above RGB colors, the transformation matrix M can be calculated as:  
       M   =       (           X   1           X   2           X   3               Y   1           Y   2           Y   3               Z   1           Z   2           Z   3           )     .         
 
         [0014]     Measurements of any other non-singular three colors can also be used to calculate M. It can initially be assumed that:  
         M   =     (           m   11           m   12           m   13               m   21           m   22           m   23               m   31           m   32           m   33           )       ,       
 
 wherein after plugging in the three measurements, we have:  
       {                     X   i     =         m   11     ⁢     R   i       +       m   12     ⁢     G   i       +       m   13     ⁢     B   i           ,                   Y   i     =         m   21     ⁢     R   i       +       m   22     ⁢     G   i       +       m   23     ⁢     B   i           ,                   Z   i     =         m   31     ⁢     R   i       +       m   32     ⁢     G   i       +       m   33     ⁢     B   i           ,           ⁢           ⁢   i     =   1     ,   2   ,   3.         
 
         [0015]     The transformation matrix M can be obtained by solving the above relations for X i , Y i  and Z i , for i=1, 2, 3.  
         [0016]     In one example embodiment of the present invention, it is assumed that the incoming RGB values comply to the SMPTE-C standard, which is a standard for broadcasting. The example plot  100  in  FIG. 1  shows the two sets of color primaries. In  FIG. 1 , the triangle&#39;s vertices are the SMPTE-C primaries and the triangle itself defines the SMPTE-C color gamut. One set is the device primaries and the other set is the standard primaries. It can be seen that the two sets of primaries are different. It is usually difficult to achieve the SMPTE-C standard primaries on a consumer display device. Since the incoming RGB values are associated with the SMPTE-C primaries, it will be rendered incorrectly on the display with primaries different from the SMPTE-C primaries. In order to render the correct colors, we need to modify the incoming RGB values based on the relationship between the two sets of primaries. The relationship between SMPTE-C compliant RGB values and the CIE XYZ values is as follows:  
               (         X           Y           Z         )     =       M   0     ⁡     (         R           G           B         )                   =       (         0.3935       0.3653       0.1916           0.2124       0.7011       0.0866           0.0187       0.1119       0.9582         )     ·       (         R           G           B         )     .                 
 
         [0017]     Thus, for the input RGB values (R in ,G in ,B in ), which comply to SMPTE C color standard, we can use the above equation to transform them to device independent XYZ values. To realize these XYZ values on the display with non-standard primaries, new RGB values (R out ,G out ,B out ) need to be calculated so that by displaying (R out ,G out ,B out ) on the non-standard display, the device independent color XYZ transformed from (R in ,G in ,B in ) can be achieved.  
         [0018]     As we earlier, the relationship between device dependent RGB values and the device independent color values XYZ can be obtained from the three measurements of non-singular colors. Therefore, the output color values (R out ,G out ,B out ) can be computed as:  
               (           R   out               G   out               B   out           )     =       M     -   1       ⁡     (         X           Y           Z         )                   =       M     -   1       ·     M   0     ·       (           R     i   ⁢           ⁢   n                 G     i   ⁢           ⁢   n                 B     i   ⁢           ⁢   n             )     .                 
 
         [0019]     Using the above equation, output RGB values can be directly determined based on the input RGB values. However, the computed output RGB values may be out of range [0, 1], meaning the values cannot be physically produced by the display. To address the out-of-range issue, in one example, the output RGB values are clipped to the range [0, 1].  
         [0020]      FIG. 2  shows a block diagram of a system  200  according to the present invention for transforming the input RGB values to an output RGB values. A first transformation block  210  implements a method whereby the input RGB values are first transformed to CIE XYZ values based on the standard primaries that the device needs to realize. A second transformation block  220  implements a method whereby the CIE XYZ values are transformed back to RGB values for output, but with a transformation based on measurements of the device primaries.  
         [0021]     The above description provides an example embodiment of the present invention which uses measurements of the Yxy or XYZ color values of three colors, and assumes linear transformation between the device dependent RGB color space and the CIE XYZ color space. In the following example according to the present invention, it is assumed that the linear transformation between the two color spaces holds, but measurements for n colors are used, where n&gt;3. Similar to the previous example, for n different color measurements, there are 3n different equations (e.g., 9 equations when n =3):  
       {                     X   i     =         m   11     ⁢     R   i       +       m   12     ⁢     G   i       +       m   13     ⁢     B   i           ,                   Y   i     =         m   21     ⁢     R   i       +       m   22     ⁢     G   i       +       m   23     ⁢     B   i           ,                   Z   i     =         m   31     ⁢     R   i       +       m   32     ⁢     G   i       +       m   33     ⁢     B   i           ,           ⁢           ⁢   i     =   1     ,   2   ,   …   ⁢           ,   n   ,       where   ⁢           ⁢   n     &gt;   3.           
 
         [0022]     In the above linear equations there are 9 unknown variables m ij ,i=1,2,3 ad j=1,2,3, which can be determined through least square fitting by minimizing:  
           J   1     =       ∑     i   =   1     n     ⁢       (         m   11     ⁢     R   i       +       m   12     ⁢     G   i       +       m   13     ⁢     B   i       -     X   i       )     2         ,     
     ⁢       J   2     =       ∑     i   =   1     n     ⁢       (         m   21     ⁢     R   i       +       m   22     ⁢     G   i       +       m   23     ⁢     B   i       -     Y   i       )     2         ,     
     ⁢       J   3     =       ∑     i   =   1     n     ⁢         (         m   31     ⁢     R   i       +       m   32     ⁢     G   i       +       m   33     ⁢     B   i       -     Z   i       )     2     .             
 
         [0023]     The parameters m ij  that minimize J i  can be computed by solving the linear relations of  
             ∂     J   i         ∂     m   ij         =   0     ,       
 
 where i, j=1,2,3. 
 
         [0024]     To account for the nonlinearity of the display characteristics (not unusual for consumer displays) interpolation is used to obtain the device dependent RGB color from two neighboring linear transformations of the device independent XYZ color. In an example embodiment of our invention, measurement of CIE XYZ values of a set of different colors is utilized. For simplicity, n colors for each RGB component are measured, i.e., in total 3n different colors (R i ,0,0) (0,G i ,0) and (0,0B i ), i=1,2, . . . ,n.  
         [0025]     For an input color (R in ,G in ,B in ), the nearest RGB colors (R u ,G u ,B u ) and (R d ,G d ,B d ) for each of their component color values are measured, such that R d &lt;R i &lt;R u , G d &lt;G in &lt;G u  and B d &lt;B in &lt;B u . From the measurements of (R u ,0,0), (0,G u ,0) and (0,0,B u ), a transformation matrix M u  is computed, using which the output (R out   u ,G out   u ,B out   u ) is determined as:  
         (           R   out   u               G   out   u               B   out   u           )     =       M   u     -   1       ·     M   0     ·       (           R   in               G   in               B   in           )     .           
 
         [0026]     Similarly, corresponding transformation M d  is determined through the measurements of (R d ,0,0) (0,G d ,0) and (0,0,B d ) and used to compute the output (R out   d ,G out   d ,B out   d ) as:  
         (           R   out   d               G   out   d               B   out   d           )     =       M   d     -   1       ·     M   0     ·       (           R   in               G   in               B   in           )     .           
 
         [0027]     The final output (R out ,G out ,B out ) can be obtained by interpolating said two upper and lower outputs (R out   u ,G out   u ,B out   u ) and (R out   d ,G out   d ,B out   d ). A simple interpolation method includes computing:  
       {               R   out     =         a   r     ⁢     R   out   d       +       (     1   -     a   r       )     ⁢     R     out   ,     u                       G   out     =         a   g     ⁢     G   out   d       +       (     1   -     a   g       )     ⁢     G     out   ,     u                       B   out     =         a   b     ⁢     B   out   d       +       (     1   -     a   b       )     ⁢     B     out   ,     u                           
 
 where  
       {                 a   r     =         R   in     -     R   d           R   u     -     R   d           ,                   a   g     =         G   in     -     G   d           G   u     -           ⁢     G   d           ,                 a   b     =           B   in     -     B   d           B   u     -     B   d         .                       
 
         [0028]     In the above description, examples of transforming the input RGB color values to achieve standard colors are provided. The present invention can also be implemented within a display hardware that stores all the parameters for transformation of RGB colors from input to output in order to display the correct color. The present invention can also be implemented as a calibration capability of the display, wherein that user/calibrators can measure the CIE XYZ or CIE Yxy values of required RGB input color values, and the hardware then establishes the transformation inside the display accordingly. In that case, the measured values can be input to the display device through any input method, such as the TV remote.  
         [0029]     The display device may have different color characteristics at different locations of the screen. To compensate and achieve uniform standard color across the screen, the present invention further provides the use of the above methods on different display locations (such that the transformation is location dependent) to realize color uniformity. Accordingly,  FIG. 3  shows a block diagram of an example system  300  according to the present invention for realizing uniform standard colors. The spatial position is given for the input RGB values where the device primaries are measured at that position. A first transform block  310  implements a method whereby the input RGB values are transformed into corresponding CIE XYZ values based on standard primaries. A second transform block  320  implements a method whereby said corresponding CIE XYZ values are transformed back to output RGB values based on the primaries measured at that position. As shown by example in  FIG. 3 , colors are measured on different locations (spatial position) in order to output the correct color at each location.  
         [0030]     Interpolation can be used to achieve the color correctness for the locations where measurements of colors are not available. Accordingly,  FIG. 4  shows an example system  400  according to the present invention that uses interpolation for realizing uniform standard colors. In the system  400 , the measured positions are used to triangulate the entire screen into small triangles. The position of the input RGB color determines three vertices of the triangle that the position belongs to. Three different RGB values are calculated based on the color measurements of the three different vertices. The three calculated RGB values are then interpolated based on their spatial position to obtain an output RGB value.  
         [0031]     The system  400  includes a triangulator  410 ; a vertices finder  420 ; transform blocks  430 ,  440 ,  450 ,  460 ; and an interpolator  470 . The input RGB values are transformed into device independent XYZ values using the transform block  430 .  
         [0032]     The triangulator  410  triangulates the entire display screen into triangles using four corners of the display screen and the positions of measurements as vertices. The triangulation can be implemented using a Delaunay triangulation method, or we can simply measure colors on a simple grid and triangulate the grid. Each vertex of the triangulation will have its own transformation from device independent XYZ color to RGB color based on the color measurement performed on the vertex. If the color measurement is not available for the corners, the measurements of their nearest neighbors can be utilized. For each input spatial position, the vertices finder  420  can find a triangle based on the triangulation result. Each input RGB color will first be transformed to a device independent XYZ values using a transformation M in the transform block  430 . The transformed XYZ values are again transformed through transform blocks  440 ,  450 ,  460 , to compute the output RGB values Output RGB 1 , Output RGB 2  and Output RGB 3 , respectively. Each of the transform blocks  440 ,  450  and  460  implements a transformation based on color measurements of one of the vertex positions of the triangle found in block  420 . The three output RGB values are then interpolated in the interpolation block  470  to obtain a final output RGB value is sent to the display.  
         [0033]     The present invention has been described in considerable detail with reference to certain preferred versions thereof; however, other versions are possible. Therefore, the spirit and scope of the appended claims should not be limited to the description of the preferred versions contained herein.