# Patent

## Title
Method for mapping a color specified using a smaller color gamut to a larger color gamut

## Abstract

A method maps a color specified using a smaller color gamut to a larger color gamut. Under that method, a map in a chromaticity diagram is constructed that provides a direction and a magnitude for a unit change in chroma for a specified pixel value in the chromaticity diagram. Using the magnitude and direction in the map, the specified color is mapped to a new pixel value corresponding to a predetermined shift in chromaticity. Preferably, the new pixel value preserves the hue of the specified color, and its luminance related to that of the specified color. Also, the new pixel value preferably has a greater color saturation than the specified pixel value.

## Background
CROSS REFERENCE TO RELATED APPLICATIONS
The present invention is also related to (a) U.S. Non-Provisional patent application entitled “Method for Compensating for A Chromaticity Shift Due to Ambient Light in An Electronic Signboard,” filed herewith on the same day, bearing Ser. No. 11/836,104; U.S. Non-Provisional patent application entitled “Method for Fault-Healing in A Light Emitting Diode (LED) Based Display,” filed herewith on the same day, bearing Ser. No. 11/836,110; (c) U.S. Non-Provisional patent application entitled “Graphical Display Comprising a Plurality of Modules Each Controlling a Group of Pixels Corresponding to a Portion of the Graphical Display,” filed herewith on the same day, bearing Ser. No. 11/836,116; (d) U.S. Non-Provisional patent application entitled “Method for Displaying a Single Image for Diagnostic Purpose without Interrupting an Observer's Perception of the Display of a Sequence of Images,” filed herewith on the same day, bearing Ser. No. 11/836,117; (e) U.S. Non-Provisional patent application entitled “Enclosure for Housing a Plurality of Pixels of a Graphical Display,” filed herewith on the same day, bearing Ser. No. 11/836,120; (f) U.S. Non-Provisional patent application entitled “Apparatus For Dynamically Circumventing Faults in The Light Emitting Diodes (LEDs) of a Pixel in A Graphical Display,” filed herewith on the same day, bearing Ser. No. 11/836,122; and (g) U.S. Non-Provisional patent application Ser. No. entitled “Method for Computing Drive Currents for a Plurality of LEDs in a Pixel of a Signboard to Achieve a Desired Color at a Desired Luminous Intensity,” filed herewith on the same day, bearing Ser. No. 11/836,125.
The disclosures of the patent applications listed above are hereby incorporated by reference in their entireties.
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to light-emitting diode (LED) based signboards. In particular, the present invention relates to increasing both functionality and reliability of such LED-based signboards.
2. Discussion of the Related Art
Light emitting diodes (LEDs) produce most of the active images shown on modern advertising structures. A large number of LEDs (e.g., hundreds of thousands to millions) are used on a typical signboard to produce a multicolored image. Thus, the reliability of both the pixels formed from groups of LEDs and their associated electronics is an important design consideration. Thus, it is important to be able to detect and to handle LED failure, incurring only a minimal down time.
In a typical signboard, the LEDs are arranged in small groups, with each group providing a picture element (pixel) in the image being displayed. Each pixel is capable of displaying a wide range (“gamut”) of colors. Typically, each pixel1 is made up of three kinds of LED. Each “kind” of LEDs may consist of a single LED, or a serially connected string of LEDs, providing a specific color of light (“primary color”). Popular LEDs provide red, green and blue lights. Light of a wide variety of colors and intensities may be produced from each pixel by properly controlling the intensity of light emitted from each kind of LED. The intensity of light emitted from each LED kind is controlled by the electrical current flowing through the LED. In addition, the human psycho-visual system is insensitive to light intensity changes that are more rapid than about 100 Hz. For these reasons, the typical driver for an LED, or for a string of serially connected LEDs, is made up of a current source that is pulse-modulated to produce two states: i.e., either having no current or a current of a reference value. The modulation rate is chosen so that the waveform has essentially no energy present below about 100 Hz. A duty cycle may be selected so that the average value of the current waveform over time provides the required light intensity from the LEDs. The desired duty cycle is stored in a counter that is preset by digital circuitry to correspond to the relative intensity desired from a particular kind of LED (e.g., red-emitting) within a pixel. The reference value Iref of the current is such as to provide a desired brightness for the entire image display consisting of many pixels. 1 In the present description, a pixel may include one or more LEDs provided within a locality of the signboard to appear to a distant viewer as an illuminated point on the display. The LEDs forming the pixel may be addressed and programmed as a single unit, or as separate individual units.
For convenience in construction, installation and maintenance, a typical signboard organizes its pixels in groups, with each group being housed in a common structure or module. A group typically consists of hundreds to thousands of pixels. Sometimes, each group is further subdivided into many parts each consisting of a few to a few tens of pixels. However, since each color in each pixel must be controlled independently of all others, large amounts of data must flow to each group of pixels whenever a change is made in the image displayed on the advertising structure. To show a motion picture on such a structure would require the ability to handle a huge data flow rate. Contemporary signboards use many parallel wires to transfer the data and additional wires for control and monitoring functions. Consequently, a large number of connectors are required for interconnecting components. The cost and reliability of the connectors, the cost of manufacture and the cost of maintenance all suggest that alternative methods for accomplishing the interconnections are desirable.
As signboards are large outdoor structures, their exposed faces become dirty and must be cleaned to preserve the quality and appearance of the images shown. Additionally, particularly for structures exposed to strong sunlight, the faces may be also exposed to significant heat loads. Therefore, cleaning the faces and controlling the thermal environment can prolong the life and reduce repair and maintenance costs.
The entire set of colors that a light-emitting display is capable of showing is called its color gamut, which is a function of all primary colors that the light-emitting elements can produce. Typically, a set of LEDs may provide a gamut which produces images exceeding the gamut capability of the display system that generates or processes the images. As a result, the gamut available on a signboard may not be fully utilized. The images shown thus may not have the attention-capturing or aesthetic impact that would be possible if the gamut were more effectively utilized.
Further, in humans, color perception changes with the ambient lighting condition. A color perceived in a bright background looks different when the background brightness changes, so that some signboards may be difficult to read or an image appears to be of the wrong or unnatural colors under certain lighting conditions. Accordingly, a method for compensating for perceived color shift due to ambient light is desired.
SUMMARY
According to one embodiment of the present invention, a method maps a color specified using a smaller color gamut to a larger color gamut. Under that method, a map in a chromaticity diagram is constructed that provides a direction and a magnitude for a unit change in chroma for a specified pixel value in the chromaticity diagram. Using the magnitude and direction in the map, the specified color is mapped to a new pixel value corresponding to a predetermined shift in chromaticity. Preferably, the new pixel value preserves the hue of the specified color, and its luminance related to that of the specified color. Also, the new pixel value preferably has a greater color saturation than the specified pixel value.
In one implementation, the map includes one or more look-up tables indexed by a representation of the specified pixel value. The look-up table's entries contain a tristimulus representation of the new pixel value. When multiple look-up tables are provided, each look-up table corresponds to a different predetermined shift in chromaticity.
According to another embodiment of the present invention, the map includes one or more interpolation functions. One of the interpolation function may receive as argument the specified pixel value and may provide a characteristic value representing a line or surface of constant hue, and a distance representing a unit chromatic shift along the line or surface of constant hue. The characteristic value may be, for example, an initial angle at a white point of a chromaticity diagram. The second interpolation function may take the output values of the first interpolation function to provide a new pixel value (e.g., a value expressed in a tristimulus representation or the currents for driving LEDs in a pixel of a graphical display).
According to one embodiment, the method provides special treatment to certain colors, such as human skin colors.
The present invention is better understood upon consideration of the detailed description below in conjunction with the accompanying drawings.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows area 100 defined by the boundary of the color gamut of the human psychovisual system, and illustrative, hypothetical color gamut 120 representing a color gamut that can be constructed from five (5) LED kinds, in accordance with one embodiment of the present invention.
FIGS. 2-6 show resulting colors gamuts 121-125, when the blue LED, the blue-green LED, the green LED, the amber LED and the red LED fail, respectively.
FIG. 7 is a block diagram showing illustrative pixel 700, according to one embodiment of the present invention.
FIG. 8 illustrates one detection method that is suitable for implementing in fault detector 703.
FIG. 9 shows an illustrative interconnection using router or switch 901 to group together a set of switches 902-1 to 902-m, each of which connects to a set of modules 903-1 to 903-n containing multiple pixel groups, in accordance with one embodiment of the present invention.
FIG. 10 shows one implementation of a module, in accordance with the present invention.
FIG. 11 shows enclosure 1100 for a module with fluid flow capability, in accordance with one embodiment of the present invention.
FIG. 12, is a CIE chromaticity diagram showing lines of perceived constant hue within area 100, which represents substantially all colors perceived by humans.
FIG. 13 shows small arrows representing the direction of increasing chroma, where the length of each arrow indicates the “distance” along a line of constant hue required to produce a unit of change in chroma.
FIG. 14 shows a map of such a function that reduces the value of α in the vicinity of colors usually associated with face colors.
FIG. 15 shows an integrated circuit 1500 including several current sources, connected to a number of LED strings.
FIG. 16 illustrates using parallel redundant LED drivers, with one of the parallel current sources active at a time, to avoid service interruption.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
According to one embodiment of the present invention, a fault in an LED or the wiring in a pixel may be circumvented. When a fault in either an LED or in the wiring is detected and located, the intensities of other LEDs in a pixel may be dynamically altered, so that the pixel can continue to function based on other functional LEDs in the pixel, despite the fault and until repair is performed. Under this arrangement, the pixel may function with little or no noticeable difference from the input (original) tristimulus value for the pixel. In this embodiment, each pixel may have 3 or more different kinds of LED, with each LED providing light contributing to providing the color specified by the input (original) tristimulus value for the pixel coordinate (xi, yi). (The present detailed description follows the color coordinate convention of G. Wyszecki and W. Stiles, Color Science: Concepts and Methods, Quantitative Data and Formulae, 2nd Edition, John Wiley & Sons, Inc., New York (1982). See pages 130-248, especially 137-142, for a discussion of the CIE colorimetric system.)
FIG. 1 shows area 100 defined by the boundary of the color gamut of the human psychovisual system (also known as the “CIE chromaticity diagram”), and illustrative, hypothetical color gamut 120 representing a color gamut that can be constructed from five (5) kinds of LED, in accordance with the present invention. At the boundary of color gamut 100, the oval-shaped curve is called the “spectral locus” and the straight line connecting the ends of the spectral locus is the “purple line”. Points on the spectral locus each correspond to the color of a monochromatic (i.e., single-wavelength) light, with blue at the lower left, greens near the peak, yellow then orange on the downward sloping upper side and finally red at the rightmost end. Points on the purple line correspond to an additive mixture of monochrome blue and monochrome red light. Almost 100% of all colors perceived by the human psychovisual system are represented by points in the closed surface bounded by the spectral locus and purple line.
As shown in FIG. 1, color gamut 120 covers all colors that can be created using LEDs with colors at coordinate 101 (“blue-green LED”), 102 (“green LED”), 103 (“amber LED”), 104 (“red LED”) and 105 (“blue LED”). All colors represented by the interior and boundary of the pentagon are available for display. FIGS. 2-6 shows the resulting colors gamuts 121-125 when exactly one of the 5 LED kinds fails. Namely, FIGS. 2-6 show resulting colors gamuts 121-125, when the blue LED, the blue-green LED, the green LED, the amber LED and the red LED fail, respectively.
According to one embodiment of the present invention, a pixel may be provided a sensor associated with each kind of LED (i.e., either a single LED or a serially-connected string of LEDs of that kind) in a pixel, such that a fault detector may indicate a fault in one kind of LED in the pixel (e.g., detecting a short or an open circuit in the LED or the LED string). When one kind of LED fails in a pixel with N kinds of LED, N−1 kinds of LED remain functional, so that the resulting gamut of colors available for that pixel has the lesser of 2 or N−2 dimensions. When N=3, the gamut is just one-dimensional (along the line joining the color coordinates of the remaining kinds of LED). If the desired pixel color (xd, yd) does not lie within a just-noticeable-difference distance from the line connecting the color coordinates of the two remaining colors, no circumvention of the fault is possible. When N>3, the gamut may be two-dimensional. If the desired pixel color (xd, yd) lies within the convex hull formed by connecting the color coordinates of the N−2 remaining LED, then the fault may be circumvented by applying appropriate drives to the remaining LED kinds to create the desired pixel color (xd, yd), whenever the required brightness is within the capability of those remaining LEDs. Standard techniques from linear algebra may be used to find the set of luminances of the remaining, functional LEDs that will produce the desired pixel color and luminance. One method for calculating an LED drive for a desired pixel color using a constrained maximization approach is described in further detail below.
FIG. 7 is a block diagram showing illustrative pixel 700, according to one embodiment of the present invention. As shown in FIG. 7, pixel 700 includes control module 701 receiving control signals 721 specifying the color coordinate of the desired color. Control module 701 also receives fault detection signals 724 from fault detector 703. When all LED kinds are operational, the control signals 721 are mapped into the N current signals 722 driving the N LED kinds of LEDs 702. If fault detection signals 724 indicate that one or more of the LED kinds is detected to be faulty, the control signals 721 are mapped into the appropriate current signals 722 driving the remaining LED kinds. The current of each LED kind is sensed and signals 723, representing the states of the LED kinds, are provided to fault detector 703. In a hierarchical control system, the status and fault information of the LED kinds, as detected by detector 703 may be provided along the control hierarchy to a control element (e.g., a CPU) at a higher control level. The suitable drive currents for the remaining LEDs may be calculated at this higher level control element, and may be provided to control module 701 to circumvent the fault conditions.
Notice that the color gamut is severely restricted if a failure occurs in either the blue LED or the red LED. Thus, in one embodiment of the present invention, redundant strings of red and blue LEDs are provided to minimize the risk of a pixel failure due to a failure of a single LED string.
According to one embodiment of the present invention, a gamut of the source images is mapped to the capability of the system using LEDs that have larger gamuts. An example of such a system includes those displays utilizing more than three primary colors. As explained above, the light intensities emitted from different LED kinds are each controlled by the short-term average of the electrical current through the LED. By adjusting the average current through each LED kind in a pixel, the precise adjustment through the entire range of colors and brightness is made possible. Using this technique, an image produced by an apparatus with a reduced color gamut may be shown on an image display that has a greater gamut. This gamut expansion can be performed using software, customized hardware or a combination of both hardware and software. When the human psychovisual system is taken into account in the gamut expansion procedure, impressive results (e.g., in an image with exceptional color richness) may be achieved. In the prior art, however, such an image may be displayed only with the colors of the reduced color gamut.
In mapping colors between color gamuts, the psychovisual system should be considered, as the human is particularly intolerant of misrepresentation of certain color groups (e.g., skin colors and logo colors used in advertising). Therefore, a gamut expansion in the vicinity of these colors requires special attention. The present invention provides this special attention as well as attention to continuity and gradient control in mapping between color gamuts. A gamut expansion changes the color, and, possibly, the luminance, of most pixels in the image to be displayed in a way that increases the perceptual quality of the image. The changes are preferably smooth (e.g., in CIE tristimulus space) and should preferably preserve the hue of the pixels. According to one embodiment, a parameter α controls the “amount” of gamut expansion. The gamut expansion may be represented by function ƒ (t, α) which maps an input tristimulus vector t into another tristimulus value (the output tristimulus vector), where α is a scalar that controls the amount of change (e.g., where the input and the output tristimulus vectors are desired to be the same, α=0).
When expanding a gamut, it is desirable to keep the same hue (“general color”) but increase the chroma (“saturation”). For example, a “bleached” color would be mapped to a more “pure” color under such a procedure. Additionally, the chroma may be changed by an amount that depends on α and, possibly, the tristimulus value of the pixel under consideration. The tristimulus value dependency protects (i.e., allowing only small changes) certain hues, such as human skin or face colors. One method according to the present invention uses a map that provides a direction and magnitude for a unit change in chroma for any feasible tristimulus value. The total change at any chroma may then be calculated by integrating on the map (i.e., integrating the magnitude along the given direction), beginning at the input (i.e., original) tristimulus value for the pixel, until the desired amount of gamut expansion is reached for that pixel. Methods may be developed under any of a number of already known models that relate perceived colors and standard colorimetry.
FIG. 12, is a CIE chromaticity diagram showing lines of perceived constant hue within area 100, which represents substantially all colors perceived by humans, as already described above. The color coordinate (0.310, 0.316) is an example of a “white point” corresponding to white (specifically, at CIE Illuminant C). As the constant-hue lines radiate outward from white near the center of the chromaticity diagram, the chroma increases until the constant-hue lines terminate on either the spectral locus (denoting monochromatic light) or the purple line, which connects blue and red.
FIG. 13 shows small arrows representing the direction of increasing chroma, where the length of each arrow indicates the “distance” along a line of constant hue required to produce a unit of change in chroma. FIGS. 12 and 13 are obtained using the Stiles model in the Wyszecki and Stiles text (mentioned above), discussed for example, at pages 670-6722, based on extensive experiments on two-color thresholds. As one may see from the following discussion, the methods of the present invention are independent of the choice of model. Thus, other choices of models may be used to obtain similar results. As physiologists and others provide improvement in the models, the methods of the present invention can track and take advantage of these new models. 2Note that the definitions for the Christoffel symbols set forth on page 671 are incorrect. The correct definitions are




  
    [
    
      12
      ,
      1
    
    ]
  
  =
  
    
      
        1
        2
      
      ⁢
      
        
          ∂
          
            g
            11
          
        
        
          ∂
          
            x
            2
          
        
      
      ⁢
      
        
      
      ⁢
      
        and
        ⁢
        
          
        
        [
        
          22
          ,
          1
        
        ]
      
    
    =
    
      
        
          ∂
          
            g
            21
          
        
        
          ∂
          
            x
            2
          
        
      
      -
      
        
          1
          2
        
        ⁢
        
          
            ∂
            
              g
              22
            
          
          
            ∂
            
              x
              1
            
          
        
      
    
  




As seen from FIG. 12, for example, the lines (or sheets, if luminance dependence exists) of constant hue are curved in tristimulus space, and the lines (sheets) of constant chroma are therefore not uniformly spaced. Each choice of input pixel tristimulus vector t is on a line of constant hue. To find the output tristimulus value ƒ (t, α) the arrow at t in FIG. 13 is followed until an amount of chroma change required by the value of α is achieved. The resulting position corresponds to the output tristimulus value ƒ (t, α). Where the luminance is held constant, each line of constant hue may be uniquely specified by a single parameter (e.g., the initial angle of the line emanating from the cluster point). Thus, a line of constant hue that contains a given tristimulus vector t may be found in a map such as FIG. 12, by searching over lines of constant hue that cover the tristimulus space, and selecting the two lines that surround the point t. Bisection or any other suitable method may then be used to find the specific line containing t. Alternatively, if the luminance changes along the line on a sheet of constant hue, then two parameters are needed to select a line (on a sheet of constant hue). In that case, the search is then over the set of the two parameters and standard techniques may also be used for conducting the search.
On a digital computer, to realize a good approximation to ƒ (t, α), a tradeoff exists between execution speed and memory requirements. Thus, numerous implementations are possible. Many operations required to expand the gamut are repetitive and independent of the real-time data. These operations need be performed once (“pre-processed”), with their results stored in a data structure that provides access during real-time operation. With such preprocessing, significant reduction in the quantity of operations required in real-time results, reducing the calculation cost and time. In each of these methods, gamut expansion is performed on a pixel-by-pixel basis. Input to the expansion algorithm is a tristimulus representation of the original color and intensity. Output of the expansion algorithm is a tristimulus representation of the expanded color and intensity.
According to one embodiment, a look-up table may be constructed for each choice (of a set of discrete values) of α, indexed by the input tristimulus value. Each entry in the look-up table is populated by the output tristimulus value or, more directly, the current required to drive the LED strings contained in the pixel to reproduce the color of the output tristimulus value. For example, if the input is the CIE L*a*b value from a typical TIFF image format, then 24 bits are used to describe the tristimulus value and, hence, the look-up table would have 224 (i.e., 16,777,216) entries. If five colors are used as primary colors in a pixel, and each color requires 16 bits (i.e., two 8-bit bytes) for its luminance description, then 5×2×224=167,772,160 bytes of storage are required for each choice of α. Therefore, a few gigabytes of storage could be required for an extensive lookup table that would provide a direct mapping from an input pixel value to a drive value for each of the primary colors used in a pixel. Using look-up tables provides the fastest way to perform the mapping, as such an approach requires only a few memory fetch operations per pixel, making it feasible for real-time display of a motion picture.
Alternatively, a “uniform color space” representation may be used for the input and the output tristimulus values, so that the integration for the gamut expansion may be carried out using a linear transformation. Examples of a uniform color space include the CIE L*a*b* and the CIE L*u*v representations. There are also other uniform color spaces that may be used. Under this method, a look-up table indexed by the input tristimulus vector t provides a pointer to a data structure. The data structure holds the individual components of two vectors t and v expressed in the uniform color space. Vector v is a unit vector representing the direction along the line or sheet of constant hue. Each of the vectors t and v may have two or three components, depending on whether luminance is kept constant during the chroma expansion. Each element of the data structure may therefore be of the form (a, b, va, vb) or (L, a, b, vL, va, vb). Thus for a desired gamut expansion of Δs color difference units in the uniform color space (i.e., (Δs)2=(L1−L2)2+(a1−a2)2+(b1−b2)2, for two color points 1 and 2). A color difference unit of one (1) represents the minimum perceptible color difference. Using the values from the data structure, the output tristimulus value is provided by t+(Δs) v, which is then rounded and trimmed, if required. Such a look-up table has 224 entries. Thus, approximately 256 or 384 megabytes are necessary to hold the table and the data structures, depending on whether luminance is kept constant in the expansion, and assuming that each of the components is expressed as an 8-bit value. The storage requirement may be halved, if the values of L, a and b are not stored, but are obtained by other means (e.g., computing the transformation). Under this method, a few tens to a few hundreds machine operations are required per pixel.
One transformation preserves hue while changing saturation of the resulting color. The mapping is given by:

a2=(1+γ)a1 

b2=(1+γ)b1 

L2=ƒ(L1,γ)

This transformation preserves hue as γ is changed. γ is related to the change parameter α discussed above, except that γ is a quantity in the uniform color space. By selecting ƒ(L1, 0)=L1, the transformation provides no change when γ=0. Generally, function ƒ allows luminous intensity varies with γ. ƒ is usually a smooth function in both L and γ. If ƒ is constant for a given γ, independent of luminance L, (Δs)2=(a1−a2)2+(b1−b2)2, i.e., Δs depends only on ai and bi.
Under this transformation,




  
    
      
        
          (
          
            Δ
            ⁢
            
              
            
            ⁢
            s
          
          )
        
        2
      
      =
      
        
          
            (
            
              
                
                  f
                  ⁡
                  
                    (
                    
                      
                        L
                        1
                      
                      ,
                      γ
                    
                    )
                  
                
                -
                
                  L
                  1
                
              
              γ
            
            )
          
          2
        
        +
        
          a
          1
          2
        
        +
        
          b
          1
          2
        
      
    
    }
  
  ⁢
  
    γ
    2
  




Approximating the quotient by the derivative obtained by letting γ approach zero, then




  
    γ
    =
    
      
        Δ
        ⁢
        
          
        
        ⁢
        s
      
      
        
          [
          
            
              
                (
                
                  
                    ∂
                    
                      f
                      ⁡
                      
                        (
                        
                          
                            L
                            1
                          
                          ,
                          0
                        
                        )
                      
                    
                  
                  
                    ∂
                    γ
                  
                
                )
              
              2
            
            +
            
              a
              1
              2
            
            +
            
              b
              1
              2
            
          
          ]
        
        
          1
          2
        
      
    
  
  ,




where the positive square root has been chosen, such that γ increases with Δs. Values va, vb and vL may be given by:




  
    
      v
      a
    
    =
    
      
        a
        1
      
      
        
          [
          
            
              
                (
                
                  
                    ∂
                    
                      f
                      ⁡
                      
                        (
                        
                          
                            L
                            1
                          
                          ,
                          0
                        
                        )
                      
                    
                  
                  
                    ∂
                    γ
                  
                
                )
              
              2
            
            +
            
              a
              1
              2
            
            +
            
              b
              1
              2
            
          
          ]
        
        
          1
          2
        
      
    
  




  
    
      v
      b
    
    =
    
      
        
          b
          1
        
        
          
            [
            
              
                
                  (
                  
                    
                      ∂
                      
                        f
                        ⁡
                        
                          (
                          
                            
                              L
                              1
                            
                            ,
                            0
                          
                          )
                        
                      
                    
                    
                      ∂
                      γ
                    
                  
                  )
                
                2
              
              +
              
                a
                1
                2
              
              +
              
                b
                1
                2
              
            
            ]
          
          
            1
            2
          
        
      
      ⁢
      
        
      
      ⁢
      or
    
  




  
    
      v
      L
    
    =
    
      
        
          ∂
          
            f
            ⁡
            
              (
              
                
                  L
                  1
                
                ,
                0
              
              )
            
          
        
        
          ∂
          γ
        
      
      
        
          [
          
            
              
                (
                
                  
                    ∂
                    
                      f
                      ⁡
                      
                        (
                        
                          
                            L
                            1
                          
                          ,
                          0
                        
                        )
                      
                    
                  
                  
                    ∂
                    γ
                  
                
                )
              
              2
            
            +
            
              a
              1
              2
            
            +
            
              b
              1
              2
            
          
          ]
        
        
          
            
          
          2
        
      
    
  



Hence,

a2=a1+(Δs)va 

b2=b1+(Δs)vb 

L2=L1+(Δs)vL 

Note that protection of certain colors, as discussed above, may be accomplished by multiplying the values of va, vb and vL each by a constant that is less than one. If luminance does not change with γ, vL=0 and L2=L1. Then only two components are needed for each term in the data structure.
Hence, by storing the values of the va, vb and vL for each possible choice of the triplet (L1, a1, b1), repetitive calculations are avoided and evaluation of the output requires only lookup and a few arithmetic operations.
Yet another alternative, according to one embodiment of the present invention, provides a preprocessing step that constructs, from a list of values of vector t along each of a set of constant hue lines, (i) a first interpolation function, given by t=ƒ1(θ, s), where θ is the initial angle (or two angles, if the luminance changes along a line of constant hue) and s is the distance along the line or sheet of constant hue measured in units of constant chroma, and (ii) a second interpolation function, given by (θ, s)=ƒ2(t), the second interpolation function being constructed by sampling t to produce a list of θ and s as a function of the components of vector t.
To find the output tristimulus value tout from the input value tin, a pair (θ, s) is obtained using the second interpolation function ƒ2(tin). The output (expanded) tristimulus value tout is then obtained using the first interpolation function tout=ƒ1(θ, s+Δs), where Δs corresponds to the desired shift in chroma and which is linearly related to the change parameter α described above. This method would require tens to hundreds of thousand machine operations per pixel, mostly to evaluate the two interpolation functions ƒ1 and ƒ2.
As explained above, it is desirable to limit gamut expansion of certain ranges of colors, such as skin colors. One method provides a function that gives the value of α, as a function of the input tristimulus value, so that colors in or near the protected colors are provided a lesser α. FIG. 14 shows a map of such a function that reduces the value of α in the vicinity of colors usually associated with face colors. Depending on the detail of the map, the value produced by the map at a given pixel may be combined additively, multiplicatively or with some other composition on the nominal choice of α used for gamut expansion of the image.
Images that are to be displayed on a signboard using LEDs are typically provided by a system having a smaller color gamut than that available using LEDs. The present invention, by any of the gamut expansion methods discussed above, thus provides. a way to more effectively utilize the color gamut available in an LED display. Significant improvement in the perceived image quality of images that are designed or processed in a system capable of only a smaller color gamut is thereby achieved,
The present invention provides a method for an image display that compensates for ambient light. In an LED-based signboard of the present invention, sensors are provided to measure the ambient light, or the light provided by a pixel or a group of pixels. The light measurements are provided as input to photometric equations which describe the desired intensity and the color of a pixel under the measured ambient or lighting conditions. The equations are then solved for the luminous intensity required for each LED kind in the pixel. This calculation is repeated for every pixel in the display.
Suppose the desired primary color stimuli for a given pixel, as expressed in the tristimulus colorimetric system, are (Xd, Yd, Zd) for a given pixel, and the primary stimuli for the ambient light are (Xa, Ya, Za), the following basic colorimetric equations apply to the additive color mixture:



  
    
      
        X
        a
      
      +
      
        
          ∑
          
            p
            =
            1
          
          P
        
        ⁢
        
          
            b
            p
          
          ⁢
          
            X
            p
          
        
      
    
    =
    
      X
      d
    
  




  
    
      
        Y
        a
      
      +
      
        
          ∑
          
            p
            =
            1
          
          P
        
        ⁢
        
          
            b
            p
          
          ⁢
          
            Y
            p
          
        
      
    
    =
    
      Y
      d
    
  




  
    
      
        Z
        a
      
      +
      
        
          ∑
          
            p
            =
            1
          
          P
        
        ⁢
        
          
            b
            p
          
          ⁢
          
            Z
            p
          
        
      
    
    =
    
      Z
      d
    
  



Where the display includes P different LED kinds, wherein the p-th LED kind provides light with the primary stimuli (Xp, Yp, Zp) at maximum luminance. The variable bp (0≦bp≦1) provides a linear luminance control for each of the P LED kinds. The equations may be rewritten in vector matrix notation as follows:



  
    
      
        Ab
        +
        
          v
          a
        
      
      =
      
        v
        d
      
    
    ,
    
      

    
    ⁢
    where
  




  
    
      A
      =
      
        [
        
          
            
              
                X
                1
              
            
            
              ...
            
            
              
                X
                p
              
            
            
              ...
            
            
              
                X
                P
              
            
          
          
            
              
                Y
                1
              
            
            
              ...
            
            
              
                Y
                p
              
            
            
              ...
            
            
              
                Y
                P
              
            
          
          
            
              
                Z
                1
              
            
            
              ...
            
            
              
                Z
                p
              
            
            
              ...
            
            
              
                Z
                P
              
            
          
        
        ]
      
    
    ,
    
      b
      =
      
        [
        
          
            
              
                b
                1
              
            
          
          
            
              ...
            
          
          
            
              
                b
                p
              
            
          
          
            
              ...
            
          
          
            
              
                b
                P
              
            
          
        
        ]
      
    
    ,
    
      
        v
        d
      
      =
      
        
          
            [
            
              
                
                  
                    X
                    d
                  
                
              
              
                
                  
                    Y
                    d
                  
                
              
              
                
                  
                    Z
                    d
                  
                
              
            
            ]
          
          ⁢
          
            
          
          ⁢
          and
          ⁢
          
            
          
          ⁢
          
            v
            a
          
        
        =
        
          [
          
            
              
                
                  X
                  a
                
              
            
            
              
                
                  Y
                  a
                
              
            
            
              
                
                  Z
                  a
                
              
            
          
          ]
        
      
    
  



When a set of non-negative values b1, b2, . . . , bP; (0≦bp≦1) are found for the above equations, given A, va and vd, a realizable, exact set of luminous intensities are found, such that compensation for the ambient light is achieved. An approximate solution is required when no set of non-negative values {b1, b2, . . . , bP; 0≦bp≦1} is found.
The present invention provides an algorithm for solving the above equations exactly, when possible, and otherwise provides an approximate solution that is nearest to the desired perceived pixel color.
It is convenient to map the CIE XYZ system to an approximately uniform color space—i.e., a space in which perceptual color difference is approximately the same for equal position differences in the color space. Suppose the one-to-one mapping from CIE XYZ space to the approximately uniform space is the function U where the domain and the range each consist of three-dimensional vectors. As discussed above, the L*a*b color space is an example of a uniform color space. Other approximately uniform color space may also be chosen. Define functions ƒ and g as follows:




  f
  =
  
    {
    
      
        
          
            
              
                u
                
                  1
                  /
                  3
                
              
            
            
              
                
                  if
                  ⁢
                  
                    
                  
                  ⁢
                  u
                
                >
                0.008856
              
            
          
          
            
              
                
                  7.787
                  ⁢
                  u
                
                +
                
                  (
                  
                    16
                    /
                    116
                  
                  )
                
              
            
            
              otherwise
            
          
        
        ⁢
        
          

        
        ⁢
        g
      
      =
      
        {
        
          
            
              
                
                  116
                  ⁢
                  
                    v
                    
                      1
                      /
                      3
                    
                  
                
                -
                16
              
            
            
              
                
                  if
                  ⁢
                  
                    
                  
                  ⁢
                  u
                
                >
                0.008856
              
            
          
          
            
              
                903.3
                ⁢
                v
              
            
            
              otherwise
            
          
        
      
    
  




Then, representation in the L*a*b color space for a given CIE XYZ (X, Y, Z) value is given by:




  
    U
    ⁡
    
      (
      
        [
        
          
            
              X
            
          
          
            
              Y
            
          
          
            
              Z
            
          
        
        ]
      
      )
    
  
  =
  
    [
    
      
        
          
            g
            ⁡
            
              (
              
                Y
                /
                
                  Y
                  n
                
              
              )
            
          
        
      
      
        
          
            500
            ⁡
            
              [
              
                
                  f
                  ⁡
                  
                    (
                    
                      X
                      /
                      
                        X
                        n
                      
                    
                    )
                  
                
                -
                
                  f
                  ⁡
                  
                    (
                    
                      Y
                      /
                      
                        Y
                        n
                      
                    
                    )
                  
                
              
              ]
            
          
        
      
      
        
          
            200
            ⁡
            
              [
              
                
                  f
                  ⁡
                  
                    (
                    
                      Y
                      /
                      
                        Y
                        n
                      
                    
                    )
                  
                
                -
                
                  f
                  ⁡
                  
                    (
                    
                      Z
                      /
                      
                        Z
                        n
                      
                    
                    )
                  
                
              
              ]
            
          
        
      
    
    ]
  




where white at maximum luminous intensity is given by the triple (Xn, Yn, Zn) in the CIE XYZ color space and the appropriate norm ∥*∥ is the square root of the sum of the squares of the components of its argument. For example, if the XYZ triple is changed from t1 to t2, then ∥U(t1)−U(t2)∥ is the amount of perceived change in the light.

According to one embodiment of the present invention, the perceived difference in the light actually available at a pixel and the light that is desired is minimized. Let P be the proposition that a set of values bp, 0≦bp≦1, exists that satisfy Ab+va=vd, and S be a given condition to be minimized when P is true. The follow algorithm finds the best pixel color:
Algorithm A:

    
    
        If P then minimize S constrained by Ab+va=vd, and 0≦bj≦1;
        Otherwise, find argmin(∥U(vd)−U(Ab+va)∥) subject to 0≦bj≦1.
    
    


In either case, using the values 0≦bp≦1 found in Algorithm A provides the luminous intensities for the LED kind for each pixel.
Depending on the design of the sensors, it is useful to be able to do ambient light compensation in several different circumstances. In one embodiment, the ambient background light may be directly measured (e.g., measured using a spectrophotometer or a colorimeter that gives va directly). For example, the ambient light may be measured occasionally with the signboard switched off briefly (e.g., less than 30 milliseconds). Alternatively, a background reference reflector may be provided near or within the sign to measure the ambient light reflected from it, The measured value of can then be used as input to Algorithm A to calculate the required luminous intensities of the LEDs to accomplish compensation for the chroma shift due to the ambient light.
According to one embodiment of the present invention, indirect measurement of the background light is accomplished by measuring the color of a pixel or a group of pixels while the sign is displaying colored objects. The measured color is then used in conjunction with the known desired color vd in the measurement region of interest to calculate the ambient background va. The value of va is then used as input to Algorithm A.
The CIE xyz chromaticities are values related to the CIE tristimuli XYZ values by:



  
    x
    =
    
      X
      
        X
        +
        Y
        +
        Z
      
    
  




  
    y
    =
    
      Y
      
        X
        +
        Y
        +
        Z
      
    
  




  
    z
    =
    
      Z
      
        X
        +
        Y
        +
        Z
      
    
  



from which, the following relationships may be derived:




  
    X
    =
    
      x
      ⁢
      
        
      
      ⁢
      
        Y
        y
      
    
  




  
    Z
    =
    
      z
      ⁢
      
        
      
      ⁢
      
        Y
        y
      
    
  




  
    
      x
      +
      y
      +
      z
    
    =
    1
  



Consider measurements made at more than one pixel or pixel group, each measurement being represented by vector




  
    
      v
      m
      k
    
    =
    
      [
      
        
          
            
              X
              k
            
          
        
        
          
            
              Y
              k
            
          
        
        
          
            
              Z
              k
            
          
        
      
      ]
    
  
  ,




where index k indicates that the measurement is made at the k-th pixel or pixel group. Accordingly, the error of the measurement is given by vmk−(vdk+va), or in the CIE xyz representation: ek=αkck−(vdk+va), where





  
    c
    k
  
  =
  
    [
    
      
        
          
            x
            k
          
        
      
      
        
          
            y
            k
          
        
      
      
        
          
            z
            k
          
        
      
    
    ]
  




denotes the measured color at the k-th pixel or pixel group, and





  
    α
    k
  
  =
  
    
      Y
      k
    
    
      y
      k
    
  




is the scalar multiplier. The ambient tristimulus value va is assumed to be the same at all pixels. Note that αk is an inferred value, since the luminance Yk is not measured in the color measurement. Since ck has three components, there are therefore 3K equations for K distinct measurements and K+3 unknowns. The K+3 unknowns are the three components of va and the K αk's. A weighted least squares method may be used to estimate the K+3 unknowns and their covariances. Note that the error ek does not take into consideration that human perceptual errors are not uniform over all values of ek. Mapping the values of ek to a uniform color space (e.g., CIE L*a*b) resolves the difficulty. An error in the uniform color space to be minimized over αk, for k=1, . . . , K and the three components of va may be, for example:





  ɛ
  =
  
    
      ∑
      
        k
        =
        1
      
      K
    
    ⁢
    
      
        
        
          
            U
            ⁡
            
              (
              
                
                  
                    α
                    k
                  
                  ⁢
                  
                    c
                    k
                  
                
                -
                
                  v
                  a
                
              
              )
            
          
          -
          
            U
            ⁡
            
              (
              
                v
                d
                k
              
              )
            
          
        
        
      
      2
    
  




A Taylor series expansion of the transformation function U about the point vdk provides an approximation {tilde over (ε)} of the error ε. Let the 3×3 matrix Jk represents the derivative of U with respect to




  
    [
    
      
        
          X
        
      
      
        
          Y
        
      
      
        
          Z
        
      
    
    ]
  
  ,




evaluated at the point vdk. The approximation





  
    ɛ
    ~
  
  =
  
    
      ∑
      
        k
        =
        1
      
      K
    
    ⁢
    
      
        
        
          
            J
            k
          
          ⁢
          
            e
            k
          
        
        
      
      2
    
  




approaches exactly the squared-error in CIE L*a*b color space as the errors become small. The same results may be obtained for any other uniform color space that has a continuous derivative at point vdk. The approximation can also be written in the form:





  
    
      ɛ
      ~
    
    =
    
      
        ∑
        
          k
          =
          1
        
        K
      
      ⁢
      
        
          
          
            J
            ⁡
            
              (
              
                Bx
                -
                u
              
              )
            
          
          
        
        2
      
    
  
  ,




where





  x
  =
  
    [
    
      
        
          
            v
            a
          
        
      
      
        
          
            α
            1
          
        
      
      
        
          ⋯
        
      
      
        
          
            α
            k
          
        
      
      
        
          
            
          
        
      
      
        
          
            α
            K
          
        
      
    
    ]
  




is a (K+3)-dimensional vector,





  u
  =
  
    [
    
      
        
          
            v
            d
            1
          
        
      
      
        
          ...
        
      
      
        
          
            v
            d
            k
          
        
      
      
        
          ...
        
      
      
        
          
            v
            d
            K
          
        
      
    
    ]
  




is a 3K-dimensional vector, and





  J
  =
  
    [
    
      
        
          
            J
            1
          
        
        
          0
        
        
          0
        
        
          0
        
        
          0
        
        
          0
        
        
          0
        
      
      
        
          ⋯
        
        
          ⋯
        
        
          ⋯
        
        
          ⋯
        
        
          ⋯
        
        
          ⋯
        
        
          0
        
      
      
        
          0
        
        
          ⋯
        
        
          ⋯
        
        
          0
        
        
          ⋯
        
        
          ⋯
        
        
          ⋯
        
      
      
        
          0
        
        
          ⋯
        
        
          0
        
        
          
            J
            k
          
        
        
          0
        
        
          ⋯
        
        
          0
        
      
      
        
          0
        
        
          ⋯
        
        
          ⋯
        
        
          0
        
        
          ⋯
        
        
          ⋯
        
        
          0
        
      
      
        
          ⋯
        
        
          ⋯
        
        
          ⋯
        
        
          ⋯
        
        
          ⋯
        
        
          ⋯
        
        
          ⋯
        
      
      
        
          0
        
        
          0
        
        
          0
        
        
          0
        
        
          0
        
        
          0
        
        
          
            J
            K
          
        
      
    
    ]
  




is the block-diagonal 3K×3K transformational matrix carrying all the tristimulus error to the uniform color space. The 3K×(K+3) matrix B is defined as





  
    B
    =
    
      [
      
        
          
            
              -
              I
            
          
          
            
              c
              1
            
          
          
            0
          
          
            0
          
          
            0
          
          
            0
          
          
            0
          
          
            0
          
        
        
          
            
              -
              I
            
          
          
            0
          
          
            
              c
              2
            
          
          
            0
          
          
            ⋯
          
          
            ⋯
          
          
            ⋯
          
          
            0
          
        
        
          
            
              -
              I
            
          
          
            0
          
          
            0
          
          
            ⋯
          
          
            ⋯
          
          
            ⋯
          
          
            ⋯
          
          
            0
          
        
        
          
            ⋯
          
          
            ⋯
          
          
            ⋯
          
          
            ⋯
          
          
            ⋯
          
          
            ⋯
          
          
            ⋯
          
          
            ⋯
          
        
        
          
            
              -
              I
            
          
          
            0
          
          
            ⋯
          
          
            ⋯
          
          
            0
          
          
            ⋯
          
          
            ⋯
          
          
            ⋯
          
        
        
          
            
              -
              I
            
          
          
            0
          
          
            ⋯
          
          
            0
          
          
            
              c
              k
            
          
          
            0
          
          
            ⋯
          
          
            0
          
        
        
          
            
              -
              I
            
          
          
            0
          
          
            ⋯
          
          
            ⋯
          
          
            0
          
          
            ⋯
          
          
            ⋯
          
          
            ⋯
          
        
        
          
            ⋯
          
          
            ⋯
          
          
            ⋯
          
          
            ⋯
          
          
            ⋯
          
          
            ⋯
          
          
            ⋯
          
          
            ⋯
          
        
        
          
            
              -
              I
            
          
          
            0
          
          
            ⋯
          
          
            ⋯
          
          
            ⋯
          
          
            ⋯
          
          
            0
          
          
            0
          
        
        
          
            
              -
              I
            
          
          
            0
          
          
            ⋯
          
          
            ⋯
          
          
            ⋯
          
          
            0
          
          
            
              c
              
                K
                -
                1
              
            
          
          
            ⋯
          
        
        
          
            
              -
              I
            
          
          
            0
          
          
            0
          
          
            0
          
          
            0
          
          
            0
          
          
            0
          
          
            
              c
              k
            
          
        
      
      ]
    
  
  ,




where I is the 3×3 identity matrix.

The value x that minimizes the error approximation {tilde over (ε)} may be found in numerous ways. One approach is to solve the set of linear equations (B′J′JB)x=(B′J′J)u. A generally more satisfactory approach is to use a singular value decomposition, which provides =(JB)+Ju, where (·)+ denotes the Moore-Penrose3 inverse. However, (JB)+ is usually not explicitly calculated. Rather a sequence of transformations are used to calculate . If va is not small compared with vdk, then error ε is minimized using a direct minimization method that minimizes ε over all va and αk. In that case, the approximate solution for {tilde over (ε)} may serve as a starting point for iterations. 3See, for example, Adi Ben-Israel et al., Generalized Inverses—Theory and Applications, Wiley International Series on Pure and Applied Mathematics, p. 7.
Independently of how the minimization is done, the actual error ε may be obtained by substituting the resulting x into the equation for the error ε. The square-root of ε is the error in the selected uniform color space. Also, the first three elements of vector x are the components of vector va, which may be used in Algorithm A to obtain the drive vector bk and the tristimuli vector Ab associated with LEDs for individual pixels.
Thus, ambient light compensation allows the maintenance of uniform quality of the observed images as the ambient light reflected back from the signboard changes, particularly during the daytime with direct sunlight. The above description are applicable to systems where three or more primary colors are available at each pixel. The range of compensation increases with the number of primary colors (preferably, four or more primary colors). Moderate computational resources are needed for tracking sunlight when the image latency is a few seconds. Motion pictures could require significant computational resources for high-quality compensation.
The present invention also provides rapid detection and location of LED failures on the signboard, which enhance the overall sign reliability and reduce time and cost to repair. One detection method that is suitable for implementing in fault detector 703 is shown in FIG. 8. As shown in FIG. 8, current driver 801 provides a current at terminal Iouti to drive the i-th output line provided to an LED or an LED string. Iret is the common current return terminal. Terminal Iouti approaches a limiting voltage Vlim, when terminal Iouti is terminated in an open circuit or a very high resistance. Voltage Vlim is set such that no current flows through detector diode 803 when the LEDs in the LED string are operating at maximum current. Current driver 801 is controlled by a pulse-width modulation signal with amplitude Iref and a specified duty cycle. The control parameters for the current may be specified by an external control module in a register.
According to one embodiment of the present invention, a voltage threshold detector (e.g., voltage threshold detector 802) is provided to each of the Iouti lines. When the voltage at terminal Iouti is below voltage threshold Vthresh, which is set to a value just above Vlim, voltage threshold detector 802 asserts signal Di to indicate that an open circuit (or a high resistance) is detected. Thus, asserted signal Di indicates the presence of a fault (e.g., an open circuit) between the sense point at terminal Iouti and return terminal Iret. Signal Di may be fed into an encoder receiving signals Di of each of the N LED kinds in a pixel. The value of encoder output Eout indicates which, if any, LED strings (or connecting wires) in the pixel are faulty. The encoder outputs of for all pixels may be organized (e.g., hierarchically) by further logic circuit to allow unique location of all faults in the LED kinds of all pixels in the signboard.
In applications that require a sustained high-quality display, it is desirable to measure the technical characteristics of the light produced by individual and groups of pixels without interrupting the content that is being displayed (e.g., the advertisement being displayed on the signboard). The methods of the present invention provide additional benefits of sensing the ambient light reflected from the display, as well as detecting and locating faulty LEDs, when present. FIG. 15 shows an integrated circuit 1500 including several current sources, connected to a number of LED strings. The voltage VLED is selected to be sufficiently high to provide a voltage offset for operation of the on-off pulse-width modulated current sources. As discussed above, the modulation rate is chosen such that the waveform has essentially no energy present below about 100 Hz and the duty cycle is selected such that the average value of the waveform provides the required light intensity from the LEDs.
According to one embodiment of the present invention, a different image from that perceived may be displayed for a very short duration on the LED display without an observer's notice. Such a brief image may be used, for example, for diagnostic purpose. The images that may be displayed in this manner include a test image for a) calibration of color and luminance, b) sensing the ambient light reflected from the display or c) detecting and determining locations of faulty LEDs. While a suitable driver circuit (e.g., the Texas Instrument integrated circuit TLC5911) typically has an open-circuit detector (OCD) available for each string of LEDs, short-circuits and other malfunctions of an LED cannot be detected by the OCD. A direct detection of the light output, or its absence, is preferable for detecting these faults.
To avoid being noticed by an observer, the duration of the diagnostic output does not exceed about 10 milliseconds, and the diagnostic image should be placed adjacent temporally to images with similar luminosity. If no buffering other than the normal double buffer (i.e., while the image in one buffer is being displayed, another image is being received into a second buffer), the display must have the bandwidth for receiving more than 100 different complete frames per second. Without using a lossy compression (undesirable for high-quality displays), the required bandwidth represents a data rate of many gigabits per second for even a modest display dimension.
According to one embodiment of the present invention, the high communication data rate requirement may be avoided by storing the test image or images at the display controller or within the LED drivers. By displaying an image of the brief duration that selectively activates predetermined LED strings, for example, the activated LED strings may be tested during that brief duration. If a short circuit is detected, using the method discussed above with respect to FIG. 8, for example, existence of a faulty LED string is detected without interrupting the advertising program being displayed. In addition, light sensors may be placed to detect the luminance of the LEDs that are selectively activated. The light sensors can also be used to sense ambient light when the test image switches off all pixels of the signboard.
Additionally, the method switches on redundant drivers to avoid service interrupt when a local driver failure is detected. Since the typical LED drivers use switched current sources, the preferred method is to provide parallel current sources, with one of the parallel current sources active at a time, as shown in FIG. 16. When one of LED driver is found defective, the redundant parallel driver may be activated. In addition to status indication and fault detection, the methods disclosed can also be used to sense ambient light reflected from the display as well as detect and determine the exact location of faulty LEDs.
As discussed above, having more than three colors (e.g., five) of LED allows the same psychovisual color and luminous intensity to be achieved by any of several different luminosity combinations in the LEDs of a pixel. One approach for calculating the LED drive required to achieve a given color and luminous intensity finds the maximum luminous intensity Ŷ at each color within the gamut. For on-line use, the maximum luminous intensity Ŷ at each color may be interpolated from sampling points selected from the gamut. Only the quantity and specification of each LED string used to produce a basis color are required for this calculation. The calculation of maximum luminous intensity Ŷ at each color may be carried out off-line and stored away. During run time, to display a desired color (e.g., colorimetric coordinates (x, y)), the desired color is input to the interpolation function, which returns the previously calculated maximum luminous intensity Ŷ and the associated LED drive vector {circumflex over (b)}. The required luminous intensities for the desired color and luminous intensity may be scaled (e.g., linearly) at run time. A model for the calorimetric equations may be provided by:



  
    
      
        ∑
        
          p
          =
          1
        
        P
      
      ⁢
      
        
          b
          p
        
        ⁢
        
          X
          p
        
      
    
    =
    X
  




  
    
      
        ∑
        
          p
          =
          1
        
        P
      
      ⁢
      
        
          b
          p
        
        ⁢
        
          Y
          p
        
      
    
    =
    Y
  




  
    
      
        ∑
        
          p
          =
          1
        
        P
      
      ⁢
      
        
          b
          p
        
        ⁢
        
          Z
          p
        
      
    
    =
    Z
  



where (X, Y, Z) is the desired color in the tristimulus CIE XYZ representation, and the p-th of P kinds of LED specified by (Xp, Yp, Zp) at maximum luminosity. In vector notation, these equations may be written as Ab=v, where A is the matrix of basis color specification





  
    [
    
      
        
          
            X
            1
          
        
        
          ⋯
        
        
          
            X
            p
          
        
        
          ⋯
        
        
          
            X
            P
          
        
      
      
        
          
            Y
            1
          
        
        
          ⋯
        
        
          
            Y
            p
          
        
        
          ⋯
        
        
          
            Y
            P
          
        
      
      
        
          
            Z
            1
          
        
        
          ⋯
        
        
          
            Z
            p
          
        
        
          ⋯
        
        
          
            Z
            P
          
        
      
    
    ]
  
  ,




b is the drive vector





  
    [
    
      
        
          
            b
            1
          
        
      
      
        
          ...
        
      
      
        
          
            b
            p
          
        
      
      
        
          ...
        
      
      
        
          
            b
            P
          
        
      
    
    ]
  
  ,




and v is the color vector





  
    [
    
      
        
          X
        
      
      
        
          Y
        
      
      
        
          Z
        
      
    
    ]
  
  .




As discussed above, these equations can also be represented in the CIE xyz chromaticity coordinate system as constraint C1(Y):





  Ab
  =
  
    
      
        Y
        y
      
      ⁡
      
        [
        
          
            
              x
            
          
          
            
              y
            
          
          
            
              
                1
                -
                x
                -
                y
              
            
          
        
        ]
      
    
    .
  




In one embodiment, A has the value





  
    [
    
      
        
          2.8971
        
        
          0.3816
        
        
          0.6580
        
        
          0.9143
        
        
          5.9733
        
      
      
        
          1.56
        
        
          2.2
        
        
          2.92
        
        
          2.56
        
        
          2.56
        
      
      
        
          17.8286
        
        
          1.9082
        
        
          0.5346
        
        
          0.1829
        
        
          0
        
      
    
    ]
  
   




(rounded), for a five basis color gamut.

A second constraint is that the drive vector includes only non-negative bp values, 0≦bp≦1. In other words, C2: 0≦b≦1. Ŷ and {circumflex over (b)} may be obtained by solving constraint equations: Ŷ,{circumflex over (b)}={Y≧Ŷ,b|C1(Y),C1(Ŷ),C2}. These equations may be solved using linear programming. Let Ai denote the i-th row of matrix A. First, solving for Y in one of the rows, for example, the second row, substituting Y in the other rows:




  
    
      
        
          
            A
            2
          
          ⁢
          b
        
        =
        Y
      
    
  
  
    
      
        
          
            (
            
              
                A
                1
              
              -
              
                
                  (
                  
                    x
                    y
                  
                  )
                
                ⁢
                
                  A
                  2
                
              
            
            )
          
          ⁢
          b
        
        =
        0
      
    
  
  
    
      
        
          
            (
            
              
                A
                3
              
              -
              
                
                  (
                  
                    
                      1
                      -
                      x
                      -
                      y
                    
                    y
                  
                  )
                
                ⁢
                
                  A
                  2
                
              
            
            )
          
          ⁢
          b
        
        =
        0
      
    
  




Then, maximize A2b (i.e., finding A2b=Ŷ) subject to




  
    
      (
      
        
          A
          1
        
        -
        
          
            (
            
              x
              y
            
            )
          
          ⁢
          
            A
            2
          
        
      
      )
    
    ⁢
    b
  
  =
  0




and





  
    
      
        (
        
          
            A
            3
          
          -
          
            
              (
              
                
                  1
                  -
                  x
                  -
                  y
                
                y
              
              )
            
            ⁢
            
              A
              2
            
          
        
        )
      
      ⁢
      b
    
    =
    0
  
  ;
  
    0
    ≤
    b
    ≤
    1.
  




Solving the linear programming problem may be carried out off-line. Points within the gamut may be interpolated between from points computed in this manner. If the desired color (x, y) is not a point within the gamut, its color may be provided by the point at the intersection of a line of constant chromaticity and the boundary of the gamut between the achromatic point and (x, y).

The present invention also provides a method for handling high data rates, while minimizing the quantity of interconnecting wires and cables required. A conventional signboard or advertising structure is organized using a hierarchy of electrical and electronic components. Drivers for the LED strings are usually arranged at the level of sub-groups or groups of pixels because a number of drivers may be provided in an integrated circuit, with each integrated circuit accommodating a few tens of LED strings. Such conventional hierarchical data distribution systems are expensive and unreliable.
According to one embodiment of the present invention, rather than directly connecting from a central control unit to the pixel groups, networking techniques are applied to convey control and pixel data to the pixel groups. Grouping of pixels at the integrated circuit level constitutes the lowest-level opportunity for networking, as the interfaces at that and higher levels are mostly digital, except for power distribution. Network techniques may be applied at any of the digital levels. Many network topologies are possible, so that scalability and distributed control and data processing may be achieved.
FIG. 9 shows an illustrative interconnection using router or switch 901 to group together a set of switches 902-1 to 902-m, each of which connects to a set of modules 903-1 to 903-n, each containing multiple pixel groups, according to one embodiment of the present invention. Each module is individually addressable using a network address (e.g., an IP address). Control, data, status and faults are all communicated over the network using conventional network protocols (e.g., IP protocol). In one embodiment, a signboard is divided into 32 groups of modules, with each group having up to 32 modules, thereby allowing 32×32=1024 modules to be addressed. FIG. 10 shows implementation 1000 of a module (e.g., module 903-1), in accordance with the present invention. As shown in FIG. 10, network interface 1001 connects module implementation 1000 to a network switch (e.g., any of network switch 902-1 to 902-m). Microprocessor or controller 1002, which accesses memory 1004, drives the pixels in the group of sub-group of pixels through interconnection matrix 1003. (Each of these pixels may be implemented, for example, by pixel 700 shown in FIG. 7.) The interconnection matrix 1003 also allows microprocessor 1002 to send and receive extensive status determination and fault detection signals from the pixels. Remote indication of status and diagnosis of faults is also greatly facilitated by embedded computers, such as microprocessor 1002. Alternatively, image processing functions may also implemented in microprocessor 1002, thus allowing scaling of the signboard to handle very large amounts of video and image data (e.g., full-motion surround imagery and many other large-scale image displays).
The network of the present invention, including any distributed computational structures, may be implemented by off-the-shelf standard components. Standard protocols may be used for communication over the network and standard software and firmware may be used to provide internal and external interfaces to the physical network, providing reliability and reduction in cost. For example, the IP “stack” including TCP, RTP, UDP, NTP and other associated protocols provides broad functionality for communications needed in the signboard (e.g., for controlling the LEDs), while ethernet or SONET/SDH can be used to provide link-level control and data transfer. Optical fiber, wire cables or wireless can be used for the physical connection.
During manufacture and in operation, positions of the LEDs must be controlled to small tolerances to ascertain uniformity of the resulting images on the display. The enclosure for each module, for example, is typically provided by a polymer molding with holes for the LEDs. Such an enclosure experiences large heat loads, as the enclosures have low reflectivity and, particularly on outdoor structures, may be subjected to direct sunlight for extended periods of time. Solar heat loads up to about 1000 watts per square meter of surface area are possible on the face of the structure. The polymer moldings are typically made of polymers that have low thermal conductivity and low thermal capacity. Thus, the temperature in an enclosure can become high quite rapidly and would fluctuate as the heat load changes. Temperature fluctuations produce mechanical expansion and contraction stresses on the enclosure, causing misalignment and relative movement of the pixels, which results in concomitant loss of image uniformity. Temperature uniformity and constancy improve accuracy and precision of colors displayed. Mechanical fatigue caused by repeated stresses can also produce broken connections and other electrical continuity problems, which reduce the reliability and, potentially, the useful lifetime of the display system. Additionally, the external face of the sign accumulates dirt and debris that can reduce the light output, increase reflectivity, shift the color balance and produce other deleterious effects.
Therefore, maintenance of a signboard requires both effective cleaning and cooling of the signboard. These functions may be performed independently of each other. According to one embodiment of the present invention, the sign face may be cleaned frequently by flowing a fluid over the sign face, or by providing a jet of fluid at the sign face. Typically, the sign face is not a simple flat surface. The LED lens, LED protective covering, louvers to provide shade on the sign face, and other deviations from a flat surface may be desirable or exist. A laminar fluid flow covering the entire sign face may not be possible or may not be adequate to ensure proper cleaning. Instead, jets consisting of one or more cleaning fluids may be used for cleaning in many circumstances. The jets may be placed on a scaffold with rails which allows the jets to slide along a horizontal or vertical direction, or both. The jets can be generated in many ways. One method uses compressed air to provide a motive force to force a liquid through directed nozzles. The fluid may be collected, filtered and recirculated to minimize fluid loss.
As an additional benefit from frequent fluid flow over the sign, temperatures and temperature fluctuations can be reduced significantly. Fluid may also be circulated in conduits installed in the sign to provide a purely cooling function. Without the need to perform the cleaning function, the fluid conduits may be closed (e.g., in pipes).
Although laminar fluid flow covering the entire sign face may not be possible, fluid flow to parts of the sign face provide moderation of temperature fluctuations. For example, fluid flow over or across louvers4 associated with each row, or every few rows, of pixels is sufficient if the thermal conductance to the louvers is sufficiently high. Use of heat wicks, heat pipes or thin sheets of material with high thermal conductivity distributes the heat to near the surface of the face where fluid flow can remove the heat, thereby moderating temperature fluctuations. 4 In this embodiment, louvers are provided for shading from incident sunlight to reduce reflectivity of the signboard. The louvers are not required to effectuate cleaning or cooling of the signboard.
FIG. 11 shows enclosure 1100 for a module with fluid flow capability, in accordance with one embodiment of the present invention. As shown in FIG. 11, enclosure 1100 includes a first face 1106 in which a group of LEDs are placed behind transparent windows or lens 1104. (Face 1106 forms part of the graphical display of the signboard). FIG. 11 shows enclosure 1100 including 4 pixels, with each pixel having 10 elements. In one implementation, each pixel includes 5 red LEDs, 3 blue LEDs and 2 green LEDs. Each enclosure is designed to be a building block of the signboard, capable of being stacked vertically and placed adjacently and horizontally relative to each other. The pixels are positioned in each module at specific locations such that, when the enclosures are stacked vertically or placed horizontally, all adjacent pixels are equidistantly separated from each other, regardless of whether the adjacent pixels are in the same enclosure or in different enclosures. Face 1106 may be formed as a laminar structure consisting of a thin layer (e.g., a few millimeters) of polymer and thin metal mesh 1101. The polymer layer is chosen to provide low reflectivity in the visible band (about 380 to 720 nm wavelength), low water absorbance, resistance to the weather and ultraviolet exposure and good mechanical properties. Thin metal mesh 1101 of high thermal conductivity is provided as a heat wick a short distance behind face 1106 as a collector of the thermal load incident on first face 1106. Metal mesh 1101 is selected to have a differential temperature coefficient consistent with the polymer material of face 1106, and capable of providing a good thermal bond thereto. A number of heat wicks or heat pipes (e.g., heat pipe 1105) are provided behind metal mesh 1101 to conduct heat away from metal sheet 1101 towards the back side of enclosure 1100. Typically, air conditioning is provided at the back side for moisture and temperature control. In this embodiment, fluid conduits are provided in top wall 1102 and bottom wall 1103 for circulating a cleaning fluid. Top wall 1102 may provide a louver that overhangs face 1106.
Perforations opening to the fluid conduits of top wall 1102 may be provided along the louver so that a stream of the cleaning fluid may flow substantially in a laminar flow over face 1106. Alternatively or in addition, the cleaning fluid may be provided, for example, by nozzles placed at regular intervals, or which move along vertically or horizontally running conduits provided along the dimensions of the signboard, so that jets of cleaning fluids may be directed to face 1106 of each enclosure in the signboard. The cleaning fluid is preferably one that does not leave behind a film on face 1106. The stream of cleaning fluid is collected in a gutter in bottom wall 1103, which empties into fluid conduits that direct the cleaning fluid into a reservoir where the cleaning fluid is filtered and recycled. The fluid flow also provides temperature moderation that reduces thermally-induced stress, thus promoting greater lifetime for the LEDs and associated electronics with resulting reduced service and maintenance costs. If the cooling function is not necessary for a given sign board (e.g., due to its location), cleaning may be performed relatively infrequently.
Many of the mechanical, fluid control and distribution components needed for cleaning are common to those needed for temperature moderation. Significant cost savings are therefore realized by integrating the design and realization of the means for providing both cleaning and temperature moderation for the signboard.
Assuming a solar heat load of 1000 watts per square meter, some temperature gradients and differentials may be estimated. Since the thermal conductivity of most of the polymers is about 0.3 wm−1K−1, about a 3° C. temperature differential exists across each millimeter thickness of the laminar material used in face 1106. Using a heat wick consisting of 60-mesh (60 wires per inch) copper screen as thin metal sheet 1101 provides a temperature gradient of about 3° C. per centimeter of linear lateral length from the heat sink connection to the copper screen. As a result, using a thin heat wick (e.g., a copper screen) will provide good temperature stability if the distance between heat sink connections does not exceed up to about ten centimeters. Spacing between heat- or cold-sink connections may be increased as the thermal conductance is increased by, e.g., using multiple layers of screen or solid sheets of material with high thermal conductivity. Alternatively, using active or gravity-feed heat pipes (e.g., heat pipes 1105) provide a mechanism to move heat over greater distances with, however, increase in complexity.
Embedding heat wicks, heat pipes, or both within an enclosures for the LEDs in the modular structure typically containing a few to a few hundred pixels moderates the temperature changes resulting from exposure to direct sunlight or extreme cold.
The detailed description above is provided to illustrate specific embodiments of the present invention and is not intended to be limiting. Numerous modifications and variations within the scope of the present invention are possible. The present invention is set forth in the following claims.

## Claims

1. A method for image processing that maps a color specified using a color gamut of a first graphical display device to a corresponding color in a color gamut of a second graphical display device, the color gamut of the first graphical display device being defined by a lesser number of basis colors than the color gamut of the second graphical display device, the method comprising:
constructing a map based on constant hue lines in a chromaticity diagram that provides a direction and a magnitude for a unit change in chroma for the specified color;
in conjunction with preparing an image for display in the second graphical display device, mapping the specified color to the corresponding color, the corresponding color being derived by applying to the specified color a predetermined shift in chromaticity for the specified color, in accordance with the direction and the magnitude provided by the map for the specified color; and
sending the corresponding color over a communication link to the second graphical display device for display.

2. A method as in claim 1, wherein the corresponding color preserves the hue of the specified color.

3. A method as in claim 1, wherein the corresponding color has its luminance related to that of the specified color.

4. A method as in claim 1, wherein the corresponding color has a greater color saturation than the specified color.

5. A method as in claim 1, wherein the map comprises a look-up table indexed by a representation of the specified color.

6. A method as in claim 5, wherein the look-up table comprises entries containing a tristimulus representation of the corresponding color.

7. A method as in claim 6, wherein the look-up table is one of a plurality of look-up tables, each provided for a different predetermined shift in chromaticity.

8. A method as in claim 6, wherein the look-up table comprises entries each containing a pointer to a data structure, and the wherein the data structure holds a representation of the specified color in a uniform color space and a unit vector representing a unit chromaticity shift.

9. A method as in claim 8, wherein the mapping comprises computing the corresponding color by summing the representation of the specified color in the uniform color space with the product of a scalar value related to the predetermined shift in chromaticity and the unit vector.

10. A method as in claim 5, wherein, the look-up table comprises entries containing current specifications for a plurality of LEDs in a pixel of a display.

11. A method as in claim 1, wherein the map comprises a first interpolation function receiving as argument the specified color and providing a characteristic value representing a line or surface of constant hue, and a distance representing a unit chromatic shift along the line or surface of constant hue.

12. A method as in claim 11, wherein the characteristic value comprises an initial angle at a white point of a chromaticity diagram.

13. A method as in claim 11, wherein the map further comprising a second interpolation function which takes as arguments a given characteristic value and a given distance value and provides a representation of the corresponding color.

14. A method as in claim 13, wherein the representation of the corresponding color comprises a tristimulus representation.

15. A method as in claim 13, wherein the representation of the corresponding color comprises currents for driving LEDs in a pixel of a graphical display.

16. A method as in claim 1, wherein the predetermined shift in chromaticity is a function of the specified color.

17. A method as in claim 16, wherein when the specified color is within a predetermined distance on the chromaticity diagram from a selected group of colors, the predetermined shift is less than the predetermined shift when the specified color is not within the predetermined distance from the selected group of colors.

18. A method as in claim 17, wherein the predetermined group of colors comprise human skin colors.