Abstract:
Disclosed is a color conversion method, the method including the steps of (a) converting a color using an approximation technique, and (b) correcting an error of the color using a preset error correction table containing information regarding a difference between a color channel based on an original conversion formula and a color channel based on the approximation technique.

Description:
CLAIM OF PRIORITY 
       [0001]    This application claims priority to an application entitled “Color Conversion Method Based on Error Correction Table” filed with the Korean Intellectual Property Office on Jan. 24, 2006 and assigned Serial No. 2006-7438, the contents of which are incorporated herein by reference. 
       BACKGROUND OF THE INVENTION 
       [0002]    1. Field of the Invention 
         [0003]    The present invention relates to a method for converting colors using an error correction table (e.g. color lookup table) so that colors are created and displayed/outputted by a suitable display/output device. 
         [0004]    2. Description of the Related Art 
         [0005]    As generally known in the art, color regeneration apparatuses including scanners, printers, monitors, and recently-developed mobile LCDs are evolving. These devices are moving towards multi-functionality, high quality, and low price, in order to satisfy various user demands. Color regeneration apparatuses use different color spaces or color models according to their field of application. For example, a Red-Green-Blue (RGB) color space is used for computer monitors, and a Cyan-Magenta-Yellow-Black (CMYK) color space is used for printing purpose. In addition, a Commission Internationale de l&#39;Eclairage (CIE) color space is used to define so-called apparatus-independent colors, i.e. which can be accurately regenerated by any apparatus. CIE color spaces may be classified into CIE-XYZ, CIE L*a*b*, and CIE LUV color spaces. CIE color spaces can be easily used in computer environments so as to express a wide range of colors. For these reasons, they are extensively used in the art. 
         [0006]    The RGB color model is commonly used to express colors in the case of digital imaging. However, the RBG color model is not apparatus-independent and renders accurate color correction difficult. Therefore, a color conversion process is usually performed to convert the RGB color model into a CIE L*a*b* color model. 
         [0007]    Conventional color conversion techniques use a simple type of approximation, such as interpolation based on a Color LookUp Table (CLUT) or polynomial regression equation. This is to reduce the storage space necessary for conversion and improving the conversion performance. Referring to  FIG. 1 , the CLUT-based interpolation is one of the most widely used color conversion techniques. In operation the CLUT-based interpolation samples and stores some colors in a CLUT format during conversion of the entire color space. The remaining colors (i.e. colors which have not been stored in a table) are converted in any interpolation mode (e.g. tetrahedral interpolation, tri-linear). For the polynomial regression equation, the original conversion formula, which is complicated, is approximated into a simple type of polynomial equation to be used for color conversion. For example, the polynomials can be as defined by Table 1 below. 
         [0000]    
       
         
               
             
           
               
                 TABLE 1 
               
               
                   
               
               
                 Table 3.1 The Polynomials for Color Space Conversion 
               
               
                   
               
             
             
               
                 
                   
                     
                       
                         
                           1. 
                            
                           
                               
                           
                            
                           
                             P 
                              
                             
                               ( 
                               
                                 x 
                                 , 
                                 y 
                                 , 
                                 z 
                               
                               ) 
                             
                           
                         
                         = 
                         
                           
                             
                               a 
                               1 
                             
                              
                             x 
                           
                           + 
                           
                             
                               a 
                               2 
                             
                              
                             y 
                           
                           + 
                           
                             
                               a 
                               3 
                             
                              
                             z 
                           
                         
                       
                     
                   
                   
                     
                       
                         
                           2. 
                            
                           
                               
                           
                            
                           
                             P 
                              
                             
                               ( 
                               
                                 x 
                                 , 
                                 y 
                                 , 
                                 z 
                               
                               ) 
                             
                           
                         
                         = 
                         
                           
                             a 
                             0 
                           
                           + 
                           
                             
                               a 
                               1 
                             
                              
                             x 
                           
                           + 
                           
                             
                               a 
                               2 
                             
                              
                             y 
                           
                           + 
                           
                             
                               a 
                               3 
                             
                              
                             z 
                           
                         
                       
                     
                   
                   
                     
                       
                         
                           3. 
                            
                           
                               
                           
                            
                           
                             P 
                              
                             
                               ( 
                               
                                 x 
                                 , 
                                 y 
                                 , 
                                 z 
                               
                               ) 
                             
                           
                         
                         = 
                         
                           
                             
                               a 
                               1 
                             
                              
                             x 
                           
                           + 
                           
                             
                               a 
                               2 
                             
                              
                             y 
                           
                           + 
                           
                             
                               a 
                               3 
                             
                              
                             z 
                           
                           + 
                           
                             
                               a 
                               4 
                             
                              
                             xy 
                           
                           + 
                           
                             
                               a 
                               5 
                             
                              
                             yz 
                           
                           + 
                           
                             
                               a 
                               6 
                             
                              
                             zx 
                           
                         
                       
                     
                   
                   
                     
                       
                         
                           4. 
                            
                           
                               
                           
                            
                           
                             P 
                              
                             
                               ( 
                               
                                 x 
                                 , 
                                 y 
                                 , 
                                 z 
                               
                               ) 
                             
                           
                         
                         = 
                         
                           
                             a 
                             0 
                           
                           + 
                           
                             
                               a 
                               1 
                             
                              
                             x 
                           
                           + 
                           
                             
                               a 
                               2 
                             
                              
                             y 
                           
                           + 
                           
                             
                               a 
                               3 
                             
                              
                             z 
                           
                           + 
                           
                             
                               a 
                               4 
                             
                              
                             xy 
                           
                           + 
                           
                             
                               a 
                               5 
                             
                              
                             yz 
                           
                           + 
                           
                             
                               a 
                               6 
                             
                              
                             zx 
                           
                           + 
                           
                             
                               a 
                               18 
                             
                              
                             xyz 
                           
                         
                       
                     
                   
                   
                     
                       
                         
                           5. 
                            
                           
                               
                           
                            
                           
                             P 
                              
                             
                               ( 
                               
                                 x 
                                 , 
                                 y 
                                 , 
                                 z 
                               
                               ) 
                             
                           
                         
                         = 
                         
                           
                             
                               a 
                               1 
                             
                              
                             x 
                           
                           + 
                           
                             
                               a 
                               2 
                             
                              
                             y 
                           
                           + 
                           
                             
                               a 
                               3 
                             
                              
                             z 
                           
                           + 
                           
                             
                               a 
                               4 
                             
                              
                             xy 
                           
                           + 
                           
                             
                               a 
                               5 
                             
                              
                             yz 
                           
                           + 
                           
                             
                               a 
                               6 
                             
                              
                             zx 
                           
                           + 
                           
                             
                               a 
                               7 
                             
                              
                             
                               x 
                               2 
                             
                           
                           + 
                           
                             
                               a 
                               8 
                             
                              
                             
                               y 
                               3 
                             
                           
                           + 
                           
                             
                               a 
                               9 
                             
                              
                             
                               z 
                               3 
                             
                           
                         
                       
                     
                   
                   
                     
                       
                         
                           6. 
                            
                           
                               
                           
                            
                           
                             P 
                              
                             
                               ( 
                               
                                 x 
                                 , 
                                 y 
                                 , 
                                 z 
                               
                               ) 
                             
                           
                         
                         = 
                         
                           
                             a 
                             0 
                           
                           + 
                           
                             
                               a 
                               1 
                             
                              
                             x 
                           
                           + 
                           
                             
                               a 
                               2 
                             
                              
                             y 
                           
                           + 
                           
                             
                               a 
                               3 
                             
                              
                             z 
                           
                           + 
                           
                             
                               a 
                               4 
                             
                              
                             xy 
                           
                           + 
                           
                             
                               a 
                               5 
                             
                              
                             yz 
                           
                           + 
                           
                             
                               a 
                               6 
                             
                              
                             zx 
                           
                           + 
                           
                             
                               a 
                               7 
                             
                              
                             
                               x 
                               2 
                             
                           
                           + 
                           
                             
                               a 
                               8 
                             
                              
                             
                               y 
                               3 
                             
                           
                           + 
                           
                             
 
                           
                            
                           
                               
                           
                            
                           
                             
                               a 
                               9 
                             
                              
                             
                               z 
                               3 
                             
                           
                           + 
                           
                             
                               a 
                               10 
                             
                              
                             xyz 
                           
                         
                       
                     
                   
                   
                     
                       
                         
                           7. 
                            
                           
                               
                           
                            
                           
                             P 
                              
                             
                               ( 
                               
                                 x 
                                 , 
                                 y 
                                 , 
                                 z 
                               
                               ) 
                             
                           
                         
                         = 
                         
                           
                             a 
                             0 
                           
                           + 
                           
                             
                               a 
                               1 
                             
                              
                             x 
                           
                           + 
                           
                             
                               a 
                               2 
                             
                              
                             y 
                           
                           + 
                           
                             
                               a 
                               3 
                             
                              
                             z 
                           
                           + 
                           
                             
                               a 
                               4 
                             
                              
                             xy 
                           
                           + 
                           
                             
                               a 
                               5 
                             
                              
                             yz 
                           
                           + 
                           
                             
                               a 
                               6 
                             
                              
                             zx 
                           
                           + 
                           
                             
                               a 
                               7 
                             
                              
                             
                               x 
                               2 
                             
                           
                           + 
                           
                             
                               a 
                               8 
                             
                              
                             
                               y 
                               3 
                             
                           
                           + 
                           
                             
 
                           
                            
                           
                               
                           
                            
                           
                             
                               a 
                               9 
                             
                              
                             
                               z 
                               3 
                             
                           
                           + 
                           
                             
                               a 
                               10 
                             
                              
                             xyz 
                           
                           + 
                           
                             
                               a 
                               11 
                             
                              
                             
                               x 
                               3 
                             
                           
                           + 
                           
                             
                               a 
                               12 
                             
                              
                             
                               y 
                               3 
                             
                           
                           + 
                           
                             
                               a 
                               13 
                             
                              
                             
                               z 
                               3 
                             
                           
                         
                       
                     
                   
                   
                     
                       
                         
                           8. 
                            
                           
                               
                           
                            
                           
                             P 
                              
                             
                               ( 
                               
                                 x 
                                 , 
                                 y 
                                 , 
                                 z 
                               
                               ) 
                             
                           
                         
                         = 
                         
                           
                             a 
                             0 
                           
                           + 
                           
                             
                               a 
                               1 
                             
                              
                             x 
                           
                           + 
                           
                             
                               a 
                               2 
                             
                              
                             y 
                           
                           + 
                           
                             
                               a 
                               3 
                             
                              
                             z 
                           
                           + 
                           
                             
                               a 
                               4 
                             
                              
                             xy 
                           
                           + 
                           
                             
                               a 
                               5 
                             
                              
                             yz 
                           
                           + 
                           
                             
                               a 
                               6 
                             
                              
                             zx 
                           
                           + 
                           
                             
                               a 
                               7 
                             
                              
                             
                               x 
                               3 
                             
                           
                           + 
                           
                             
                               a 
                               8 
                             
                              
                             
                               y 
                               2 
                             
                           
                           + 
                           
                             
 
                           
                            
                           
                               
                           
                            
                           
                             
                               a 
                               9 
                             
                              
                             
                               z 
                               2 
                             
                           
                           + 
                           
                             
                               a 
                               10 
                             
                              
                             xyz 
                           
                           + 
                           
                             
                               a 
                               11 
                             
                              
                             
                               x 
                               3 
                             
                           
                           + 
                           
                             
                               a 
                               12 
                             
                              
                             
                               y 
                               3 
                             
                           
                           + 
                           
                             
                               a 
                               13 
                             
                              
                             
                               z 
                               3 
                             
                           
                           + 
                           
                             
                               a 
                               14 
                             
                              
                             
                               xy 
                               2 
                             
                           
                           + 
                           
                             
                               a 
                               15 
                             
                              
                             
                               x 
                               2 
                             
                              
                             y 
                           
                           + 
                           
                             
 
                           
                            
                           
                               
                           
                            
                           
                             
                               a 
                               16 
                             
                              
                             
                               yz 
                               2 
                             
                           
                           + 
                           
                             
                               a 
                               17 
                             
                              
                             
                               y 
                               2 
                             
                              
                             z 
                           
                           + 
                           
                             
                               a 
                               18 
                             
                              
                             
                               zx 
                               2 
                             
                           
                           + 
                           
                             
                               a 
                               19 
                             
                              
                             
                               z 
                               2 
                             
                              
                             x 
                           
                         
                       
                     
                   
                 
               
               
                   
               
             
          
         
       
     
         [0008]    In general, the CLUT-based interpolation requires a large storage space, but it is accurate and fast. In contrast, the polynomial regression requires a small storage space, but it is inaccurate and slow. 
         [0009]    Meanwhile, a mapping table may be used for the entire color space conversion. For example, in a 24 bit color format, which is generally used in the industry, the mapping table requires a memory of 2 24 ×3=48M byte. This size is too large to be implemented. However, in a 16 bit color format, the necessary memory is 2 16 ×2=128K byte, which can be implemented easily. 
         [0010]    In summary, conventional color conversion methods using a simple approximation technique (e.g. CLUT-based interpolation, polynomial regression equation) have a larger error when compared with the original conversion formula, which is complicated. Therefore, it is necessary to reduce the error occurring in the conventional methods. 
       SUMMARY OF THE INVENTION 
       [0011]    The present invention has been made to reduce or overcome the above-mentioned problems occurring in the prior art. An object of the present invention is to provide a color conversion method using an error correction table, which reduces the conversion error while using a small storage space. 
         [0012]    According to the principles of the present invention a color conversion method is provided using on an error correction table, the method including the steps of (a) converting a color using an approximation technique and (b) correcting an error of the color using a preset error correction table containing information regarding a difference between a color channel based on an original conversion formula and a color channel based on the approximation technique. 
         [0013]    Preferably, the error correction table includes values for each color channel of a color space (to be converted). The error correction values are obtained from the difference between a color channel based on an original conversion formula and a color channel based on the approximation technique. The error correction values are stored in fields for storing a code and an error displacement value. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0014]    The present invention will be more apparent from the following detailed description taken in conjunction with the accompanying drawings, in which: 
           [0015]      FIG. 1  shows a color conversion method based on a color lookup table according to the prior art; 
           [0016]      FIG. 2  is a block diagram showing an example of a color conversion apparatus to implement a color conversion method using an error correction table according to the present invention; 
           [0017]      FIG. 3  is a flowchart showing an overall color conversion process using an error correction table according to the present invention; 
           [0018]      FIG. 4  shows an example of an RGB error correction table for a color conversion operation using an error correction table according to the present invention; 
           [0019]      FIG. 5  shows an example of a format of an error correction value for a color conversion operation using an error correction table according to the present invention; 
           [0020]      FIG. 6  is a flowchart showing an overall process for creating an error correction table during a color conversion operation using an error correction table according to the present invention; 
           [0021]      FIG. 7  is a flowchart showing detailed steps for creating an error correction table during the process shown in  FIG. 6 ; 
           [0022]      FIG. 8  is a flowchart showing detailed steps for compressing an error correction table during the process shown in  FIG. 6 ; 
           [0023]      FIG. 9  shows an example of compressing an error correction value during the process shown in  FIG. 6 ; and 
           [0024]      FIG. 10  is a flowchart showing detailed error correction steps during a color conversion operation using an error correction table according to the present invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0025]    Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings. For the purposes of clarity and simplicity, a detailed description of known functions and configurations incorporated herein is omitted to avoid making the subject matter of the present invention unclear. 
         [0026]      FIG. 2  is a block diagram showing an example of a color conversion apparatus to implement a color conversion method using an error correction table according to the present invention. As shown, the apparatus includes an input device  10 , an image processing device  20 , and a display device  30 . The input device  10  crates image data and transmits it to the image processing device  20 . The image processing device  20  subjects the transmitted image data to color conversion, correction, etc. so that it can be displayed by the display device  30 . After such processing, the data is outputted to the display device  30 . 
         [0027]    The image processing device  20  includes an interface  21 , a ROM  22 , a main memory  23 , an image memory  25 , a CPU  24 , and an image processing unit  26 . 
         [0028]    When the interface  21  performs interfacing with the input device  10 , the CPU  24  obtains image data from the input device  10  via the interface  21  and temporarily stores the data in the main memory  23 . The ROM  22  pre-stores a program necessary for various operations of the CPU  24 , including image processing. The CPU  24  controls the overall operation of the image processing device  20 . In particular, the CPU  24  stores image data, which has been temporarily stored in the main memory  23 , in the image memory  25  after suitable processing. The image output unit  26  creates video signals by subjecting the image data to signal conversion and outputs them to the display device  30 . 
         [0029]    The image memory  25  has an image data region  251  to store image data, as well as a CLUT region  252 . The CPU  24  performs the necessary color conversion operations based on the color information from a CLUT in the CLUT region  252 , which is referred to by the image data in the image data region  251 . 
         [0030]      FIG. 3  is a flowchart showing an overall color conversion process using an error correction table according to the present invention. The color conversion process is divided into two steps. In step  261 , a conventional approximation technique (e.g. CLUT-based interpolation or polynomial regression equation) is used to convert colors. In step  262 , error correction is performed according to the present invention, which reduces the error of converted colors. 
         [0031]    As shown in  FIG. 4 , in the error correction step, an error correction table is used for each color channel (e.g. R, G, B). Each table stores error correction values regarding the entire color space that is converted. A displacement bit number is added to the table as field information. Each error correction value is obtained from a difference between a color channel based on an original conversion formula and that based on an approximation technique. As shown in  FIG. 5 , the value is then separately stored in code and displacement fields. 
         [0032]    An exemplary conversion algorithm for obtaining error correction values is provided below. Other conversion algorithms may be used. In the algorithm, CH 1  refers to a current color channel value obtained from an original conversion formula, and CH 2  refers to a color channel value obtained from an approximation technique. 
         [0033]    Conversion algorithm 
         [0000]    
       
         
               
               
             
           
               
                   
                   
               
             
             
               
                   
                 If (CH1 &gt;= CH2) 
               
               
                   
                 code = 0 
               
               
                   
                 displacement = CH1 − CH2 
               
               
                   
                 else 
               
               
                   
                 code = 1 
               
               
                   
                 displacement = CH2 − CH1 
               
               
                   
                   
               
             
          
         
       
     
         [0034]      FIG. 6  is a flowchart showing an overall process for creating an error correction table during a color conversion operation using an error correction table according to the present invention. The process for creating an error correction table includes two steps. In step  60 , an error correction value is obtained for each channel from a difference between a color channel based on an original conversion formula and that based on an approximation technique. A corresponding error correction table is created. In step  61 , the created error correction table is properly compressed. 
         [0035]      FIG. 7  is a flowchart showing detailed steps for creating an error correction table using a conversion algorithm during the process shown in  FIG. 6 . Referring to  FIG. 7 , the current color is set as a zero-numbered color in step  702 . An output color C 1  is calculated in an approximation mode in step  704 . An output color C 2  is calculated in the original mode in step  706 . The first channel is set as the current channel in step  708 . The error of the current channel is calculated from C 1  and C 2  in step  710 . The error value is successively stored in the error correction table of the current channel in step  712 . A checked is performed to determine whether the current channel is the last channel in step  714 . If not, the current channel is set as the next channel in step  716 . Then, the steps for calculating the error of the current channel from C 1  and C 2  is repeated from step  710 . If it is determined that the current channel is the last channel in step  714 , then a checked is performed to determine whether the current color is the last color in step  718 . If so, the process is terminated. If not, the number of the current color is increased by 1 in step  720 , and the steps starting from step  704  are repeated. 
         [0036]    Assuming that the output color based on the approximation mode is C 1 , the output color based on the original conversion formula is C 2 , the current channel value of C 1  is CH 1 , and the current channel value of C 2  is CH 2  in the steps for creating an error correction table shown in  FIG. 7 , an error value E is defined as CH 2 -CH 1  and stored. When the error value E is a negative number, the code bit is stored as 1 and, when the error value E is a positive number or zero, the code bit is stored as 0. The absolute value of the error value E is stored as the displacement value. 
         [0037]      FIG. 8  is a flowchart showing detailed steps for compressing an error correction table during the process shown in  FIG. 6 . Referring to  FIG. 8 , the current color is set as a zero-numbered color in step  802 . The error displacement of the current color is compared with a maximum displacement bit number (currently, there is no stored value) in step  804  so as to confirm if the error displacement is the maximum. If so, the flow is directed to step  806 ; if not, the flow is directed to step  808 . In step  806 , the bit number of the current error displacement is set as the maximum displacement bit number. Then, in step  808 , it is checked if the current color is the last color. If not, the number of the current color is increased by 1 in step  810 , and the steps starting from step  804  are repeated. If the current color is the last color, step  812  is conducted. 
         [0038]    In step  812 , an error correction table is created by compressing it according to the maximum displacement bit number. In step  814 , the current color is set as a zero-numbered color. In step  816 , the code of the current color is copied to the compressed correction table. In step  819 , a checked is performed to determine whether the current color is the last color. If so, the process is terminated. If not, the number of the current color is increased by 1 in step  820 , and the steps starting from step  816  are repeated. 
         [0039]    The steps for creating and compressing an error correction table shown in  FIGS. 7 and 8  will now be described in more detail. As shown in  FIG. 7 , a primary error correction table is created. The size of a field is the sum of the bit number occupied by the current channel in the input color and 1 bit of code. Such setting of field size prevents the error value from becoming too large (i.e. larger than the field size) to be stored in the table. When a secondary error correction table is created as shown in  FIG. 8 , it is compressed by adjusting the field size so as to conform to the maximum error displacement value of the table. The change of field size is defined by equation (1) below. 
         [0000]      Field size before compression=current channel bit number of input color+code bit 1 
         [0000]      Field size after compression=bit number of maximum error displacement+code bit 1   (1) 
         [0040]    Illustratively as shown in  FIG. 9 , when the maximum error displacement of channel C in RGB565 format is 7, the field size of a table of channel G is 7 bit before compression and 4 bit after compression. 
         [0041]      FIG. 10  is a flowchart showing the detailed error correction steps during a color conversion operation using an error correction table according to the present invention. Particularly, these steps are sub-steps of step  262  shown in  FIG. 3 . Referring to  FIG. 10 , an inputted approximate output color is set as C 1  in step  1002 . An outputted correction color is set as C 2  in step  1004 . The first channel is set as the current channel in step  1006 , the current channel value of C 1  is set as CH in step  1008 . An error correction value E of the current channel is obtained from an error correction table, which has been stored in the processes shown in  FIGS. 6 to 8 , in step  1010 . A checked is performed to determine whether the code bit of E is 0 in step  1012 . If so, the flow is directed to step  1014 . If not (i.e. when the code bit is 1), the flow is directed to step  1018 . In step  1014 , the current channel value of C 2  is set as CH+displacement of E, then step  1016  follows. In step  1018 , the current channel value of C 2  is set as CH−displacement of E, then step  1016  follows. In step  1016 , a checked is performed to determine whether the current channel is the last channel. If so, the process is terminated. If not, the current channel is set as the next channel in step  1020 , and steps starting from step  1008  are repeated. 
         [0042]    Via the steps shown in  FIG. 10 , a value obtained from the error correction table is added to or subtracted from each channel of the approximate output color, so that a final correction output color is obtained. 
         [0043]    The above-mentioned color conversion method using an error correction table according to an embodiment of the present invention aims at reducing errors occurring in color conversion techniques. The present invention uses simple approximation by adding a table-based error correction step to a post-processing step. A table storage space of 128K byte is necessary for entire mapping in a 16-bit format. However, comparison between the inventive color conversion method based on an error correction table and a conventional technique using a mapping table for the entire color space conversion shows that the present invention requires only half the table storage space or less, because only the error value needs to be stored. 
         [0044]    The color conversion method using an error correction table according to the present invention has a number of advantages. The amount of necessary storage space is reduced to a half or less when compared with conventional conversion techniques using a mapping table for the entire color space. The inventive method supports more precise color conversion than in the case of conversion techniques using simple approximation. The inventive color conversion method is particularly advantageous to a device using 16-bit color format, such as a mobile LCD. 
         [0045]    While the invention has been shown and described with reference to certain preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims.