Method and apparatus for compensating image data for LED display
11263956 · 2022-03-01
Assignee
Inventors
- Eric LI (Milpitas, CA, US)
- Yi Zhang (Milpitas, CA, US)
- Shang-Kuan Tang (Milpitas, CA, US)
- Shean-Yih Chiou (Milpitas, CA, US)
Cpc classification
G09G2310/027
PHYSICS
G09G2320/064
PHYSICS
G09G3/2014
PHYSICS
International classification
G09G3/20
PHYSICS
Abstract
An LED display system has and LED display panel coupled to a driver circuitry. The driver circuitry includes a scrambled PWM generator, a register, and a memory. The scrambled PWM generator receives an image data from an external source and, after certain compensations, is sent to a scramble PWM generator to be distributed according to a new set of rules that involves a compensation image data K. Image data K can be an empirical value or obtained according a formula using coefficients p and q, which can be obtained by calibration.
Claims
1. An LED display system, comprising: an LED display panel comprising an array of LEDs; and a driver circuitry that drives the LED display panel, wherein the driver circuitry comprises a scrambled PWM generator, a register, and a memory, wherein the scrambled PWM generator receives a compensated image data of a grayscale value (X+K), X being a grayscale value of a data from an external image source and K being a compensation value generated by the driver circuitry, wherein the scrambled PWM generator distributes the grayscale value (X+K) into a plurality of segments according to the following set of rules: when (X+K) equals or is smaller than G.sub.0*S.sub.0, S=ceil((X+K)/G.sub.0) and R=mod(X+K, G.sub.0), wherein G.sub.0 is a grouping number and S.sub.0 is a preset segment number stored in the driver circuitry, S is the number of output segments, among which S-1 segments has a pulse width of G.sub.0 GCLKs and one segment has a pulse width of R; and when (X+K) is larger than G.sub.0*S.sub.0, M=floor((X+K)/S.sub.0) and L=mod(X+K, S.sub.0), wherein L is the number of segments that each receives a pulse width of M+1, while the remaining S.sub.0-L segments each receives a pulse width of M, and wherein the compensation value K is a pre-determined value or K=(floor(p*X)+q)−X, wherein p and q are constants obtained by calibrating the LED array for brightness uniformity.
2. The LED display system according to claim 1, wherein the grouping number is predetermined or is obtained by measuring flickering of the LED display.
3. The LED display system according to claim 1, wherein the LED display panel comprises an LED array of RGB LED pixels, wherein the LED array has a plurality of common anode nodes, each of the plurality common anode nodes operably connects anodes of LEDs of a same color in a row to a corresponding scan switch, and cathodes of LED pixels in the same column are operably connected to a power source.
4. The LED display system according to claim 1, wherein the LED display panel comprises an LED array of RGB LED pixels, wherein the LED array has a plurality of common cathode nodes, each of the plurality common cathode nodes operably connects cathodes of LED pixels in a row to a corresponding scan switch, and anodes of LEDs of a same color in a column of LED pixels are operably connected to a current source.
5. A method for operating an LED display system, comprising: connecting an LED display panel to a driver circuitry comprising a scrambled PWM generator; sending an image data to the driver circuitry, wherein the image data has a value of X; adding a compensation value K to the value of the image data X to form a compensated image data having a grayscale value of (X+K); sending the compensated image data into the scrambled PWM generator, wherein the scrambled PWM generator scrambles the compensated image data into a number of segments according to the following rules: when (X+K) equals or is smaller than G.sub.0*S.sub.0, S=ceil((X+K)/G.sub.0) and R=mod(X+K, G.sub.0), wherein G.sub.0 is a grouping number and S.sub.0 is a preset segment number stored in the driver circuitry, S is the number of output segments, among which S-1 segments has a pulse width of G.sub.0 GCLKs and one segment has a pulse width of R; and when (X+K) is larger than G.sub.0*S.sub.0, M=floor((X+K)/S.sub.0) and L=mod(X+K, S.sub.0), wherein L is the number of segments that each receives a pulse width of M+1, while the remaining S.sub.0-L segments each receives a pulse width of M; and sending the PWM pulses from the scrambled PWM generator to a plurality of power or current sources, wherein the compensation value is K=(floor(p*X)+q)−X, wherein p is a value derived from a first set of calibration data from calibrating the LED display panel at a high brightness and q is a value derived from a second set of calibration data obtained from calibrating the LED display panel at a low brightness.
6. The method according to claim 5, further comprising calibrating the LED display to obtain a value of the group number G.sub.0 by measuring flickering of the LED display.
7. The method according to claim 5, further comprising storing a preset value of the group number G.sub.0 in a memory in the driver circuitry.
8. A method for compensating image data for LED display, comprising: connecting a video source with a driver circuitry comprising a scrambled PWM generator, wherein the driver circuitry drives an LED display; sending an image data X from the video source to the driver circuitry; generating a compensated image data in the driver circuitry that has a value of floor (p*X)+q; and sending the compensated image data into the scrambled PWM generator, wherein the scrambled PWM generator scrambles the compensated image data into a plurality of segments.
9. The method of claim 8, further comprising calibrating the LED display at a low brightness level to determine a value of q; or calibrating the LED display at a high brightness level to determine a value of p; or both.
10. The method of claim 8, wherein q is a constant for LEDs of a same color in the LED display.
11. A method for calibrating an LED display having an array of LEDs, comprising: obtaining a first image of the array of LEDs at a high brightness level; deriving a matrix of coefficient P wherein each matrix elementp corresponds to an LED in the LED array using the first image; obtaining one or more images of the array of LEDs at one or more low brightness levels; and deriving a matrix of coefficient Q wherein each matrix element q corresponds to an LED in the LED array using the one or more images, wherein p is a ratio between an intensity of the corresponding LED and a mean intensity of LEDs in the LED array having the same color as the corresponding LED.
12. The method of claim 11, wherein q=X.sub.L−B*X.sub.H/X.sub.L/p, in which X.sub.L is an image data input at the high brightness level, X.sub.L is an image data input at the low brightness level, and B is a brightness intensity of the LED extracted from the image of the LED taken at the low brightness level.
13. The method of claim 11, wherein q=X.sub.1−B1(X.sub.1−X.sub.2)/(B1−B2), wherein B1 is a brightness intensity of the LED extracted from an image of the LED taken at a first low brightness level, B2 is a brightness intensity of the LED extracted from an image of the LED taken at a second low brightness level.
14. The method of claim 11, comprising: Step a: applying an image data matrix X′ to the LED array, wherein X′=(X+Q)*P, X is a uniform matrix; Step b: obtaining an image of the LED array and extracting a brightness intensity matrix B from the image; Step c: obtaining an error matrix E, wherein E=B−mean(B) and mean(B) is an uniform matrix representing an average brightness intensity of the LED array; Step d: obtaining a new matrix Q.sub.new, wherein Q.sub.new=Q−k*E and k is a constant; Step e: assigning Q.sub.new to Q; repeating Step a to Step e, when the error matrix E is at or smaller than a threshold value, outputting Q as a result of the calibration process.
15. The method of claim 14, wherein k is a constant smaller than a lighting efficiency of the LED array.
16. The method of claim 14, wherein the LED array are an array of RGB LEDs.
Description
DESCRIPTIONS OF DRAWINGS
(1) The teachings of the present disclosure can be readily understood by considering the following detailed description in conjunction with the accompanying drawings.
(2)
(3)
(4)
(5)
(6)
(7)
DETAILED DESCRIPTION OF THE EMBODIMENT
(8)
(9) Reference will now be made in detail to several embodiments of the present disclosure(s), examples of which are illustrated in the accompanying figures. It is noted that wherever practicable similar or like reference numbers may be used in the figures and may indicate similar or like functionality. The figures depict embodiments of the present disclosure for purposes of illustration only. One skilled in the art will readily recognize from the following description that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the disclosure described herein.
(10) Used herein, the term “couple,” “couples,” “connect,” or “connects” means either an indirect or direct electrical connection unless otherwise noted. Thus, if a first device couples or connects to a second device, that connection may be through a direct electrical connection, or through an indirect electrical connection via other devices or connections.
(11) In this disclosure, the term “low brightness” (i.e., low grayscale) generally refers to situations when the input signal length is low, e.g., less than 4 times the rise time of the LED, or less than 3 times the rise time of the LED. Conversely, the term “high brightness” (i.e., high grayscale) refers to situations when the input signal length is high, e.g., more than 4 times the rise time, or more than 6, 8, or 10 times the rise time of the LED.
(12)
(13) The current disclosure provides an inventive S-PWM scheme C. For illustrative purposes, X is the grayscale value of the input image data in one grayscale input period; K is the compensation value added to the input image data; S.sub.0 is the segment number; and G.sub.0 is the length of each segment.
(14) In S-PWM scheme C, when (X+K) equals or is smaller than G.sub.0*S.sub.0, S=ceil((X+K)/G.sub.0) and R=mod(X+K, G.sub.0). S is the number of output segments, among which S−1 segments has a pulse width of G0 GCLKs and one segment has a pulse width of R. R is a positive integer less than G.sub.0. Used herein, an output segment is a segment having at least 1 GCLK pulse width while a segment having no output pulse is hereby referred to as a “dark segment.” Accordingly, (S.sub.0−S) segments are dark segments.
(15) In contrast, when (X+K) equals or is larger than G.sub.0*S.sub.0, M=floor((X+K)/S.sub.0) and L=mod(X+K, S.sub.0). L is the number of segments that each has a pulse width of M+1, while the remaining S.sub.0−L segments each has a pulse width of M.
(16) Applying this rule to the scenario of distributing 1 to 320 GCLKs into 32 segments (S.sub.0=32), assuming the grouping number is 8 GCLKs (G.sub.0=8), the distribution of the grayscale value can be illustrated in Tables 1 and 2 below. Table 1 shows the case for distributing grayscale values from 1 to 256 GCLKs (e.g., grayscale value ≤S.sub.0×G.sub.0=256), while Table 2 shows the result for distributing grayscale values from 257 to 320 GCLKs.
(17) TABLE-US-00001 TABLE 1 (X + K) S # of G.sub.0 GCLKs R GCLKs (32-S) GCLK output in each of the (S-1) in one output dark Value segment output segment segment segments 1 1 0 1 31 2 1 0 2 31 3 1 0 3 31 4 1 0 4 31 5 1 0 5 31 6 1 0 6 31 7 1 0 7 31 8 1 1 × 8 0 31 9 2 1 × 8 1 30 10 2 1 × 8 2 30 . . . . . . . . . . . . . . . 15 2 1 × 8 7 30 16 2 2 × 8 0 30 17 3 2 × 8 1 29 . . . . . . . . . . . . . . . 240 30 30 × 8 0 2 241 31 30 × 8 1 1 . . . . . . . . . . . . . . . 248 31 31 × 8 0 1 . . . . . . . . . . . . . . . 254 32 31 × 8 6 0 255 32 31 × 8 7 0 256 32 32 × 8 0 0
(18) TABLE-US-00002 TABLE 2 (X + K) S.sub.0-L L GCLK M M + 1 segments with M segments with Value GCLKs GCLKs GCLKs (M + 1) GCLKs 257 8 9 31 1 258 8 9 30 2 259 8 9 29 3 260 8 9 28 4 . . . . . . . . . . . . . . . 286 8 9 2 30 287 8 9 1 31 288 9 10 32 0 289 9 10 31 1 290 9 10 30 2 . . . . . . . . . . . . . . . 318 9 10 2 30 319 9 10 1 31 320 10 11 32 0
(19) Table 1 shows that, when the grayscale value is smaller or equal to S.sub.0*G.sub.0, the available grayscale data are first put into one single segment until the PWM pulse width in that segment reaches G.sub.0 before the remaining grayscale data is put into another segment that has less than G.sub.0 PWM pulse width. Accordingly, the maximum PWM pulse width in each segment is G.sub.0 (i.e., eight in this example). Consequently, at very low grayscale values, the priority is to fill individual segments until the segment has a pulse width G.sub.0 while the remaining segments receive no signal and remain dark. Note that when the grayscale value equals G.sub.0*S.sub.0, every segment has a pulse width of G.sub.0.
(20) The rule of distribution changes when the grayscale value is larger than G.sub.0*S.sub.0. As shown in Table 2, the GCLK number in excess of G.sub.0*S.sub.0 is distributed 1 GCLK a time to a segment until all 32 segments have (G.sub.0+1) GCLKs. Then the excess GCLKs beyond (G.sub.0+1)*S.sub.0 is distributed one GCLK a time to each segment until all 32 segments have (G+2) GCLKs.
(21) Accordingly, in this embodiment, the rule of distributing grayscale value into the segments when the grayscale value is larger than S.sub.0*G.sub.0 is the same as in the conventional S-PWM scheme. Nonetheless, when the grayscale value is low, i.e., less than S.sub.0*G.sub.0, this method maximizes the number of segments having at least a pulse width of G.sub.0.
(22)
(23)
(24)
(25) Since S-PWM scheme B increases the PWM value in each of the 32 segments by the same number GLCKs, the LED is either on in all segments or remains unlit in all segments, which does not allow fine-tuning at low brightness. In contrast, S-PWM scheme C allows increasing the limited amount of PWM value in individual segments under certain conditions so that the LED emits light at least in some segments even at very low brightness levels. Accordingly, the S-PWM scheme B results in large increments in the optical energy output while the S-PWM scheme C allows fine-tuning of the optical energy output.
(26) In some embodiments of the disclosure, the compensation value K is obtained by calibration. For example, the calibration is carried out through photo capturing and adjusting of the brightness of individual LEDs in the LED display. This calibration is normally carried out at high brightness. The purpose is to achieve uniformity in brightness across the display. In such a calibration, each individual LEDs in the LED display receives that same image data—same X value. A first photo of the LED display is taken, which shows variations of brightness of the LEDs. A first data is added to the image data and sent to the LEDs. A second photo is taken. Adjustments of the input image data are made and photos are taken until the uniformity in brightness meets the pre-determined criteria. The corresponding compensation value K for this LED display is set in this matter.
(27) In a specific embodiment, each LED pixel is a RGB LED pixel that contains a red LED, a blue LED, and a green LED, each receiving its respective input image data X.sub.i and obtaining a coefficient p.sub.i, i=r, g, or b. The coefficient p.sub.i obtained from the calibration for each individual LED is then stored in, e.g., a look-up table in a memory, such as a SRAM. The memory can be built on the same chip together with the driver circuitry or on a different chip coupled to the driver circuitry chip. The coefficient is retrieved when needed, e.g., at the power-up of the LED to preload the calibration data to a register in the driver circuitry.
(28) In a further embodiment, the calibration process is carried out both under a high brightness level to obtain a first set of coefficients p.sub.i and under a low brightness condition to obtain a second set of coefficients q.sub.i. In some embodiments, the performance characteristic at low brightness is flickering of the LED display, which can be monitored by visual inspection. Assuming, at a low brightness condition, an individual LED receives an input image data X.sub.i and is assigned a coefficient q.sub.i after the calibration process. Alternatively, q.sub.i can be stored in a memory in the driver circuit. Accordingly, coefficient p.sub.i, q.sub.i, or both are assigned to each individual LED.
(29) For a 1920×1080 pixel color LED display, there can be up to six matrices of calibration data—P.sub.r, P.sub.b, P.sub.g, Q.sub.r, Q.sub.b, and Q.sub.g—each being of 1920×1080 in size. The elements in these matrices are p.sub.imn or q.sub.imn, in which i=r, g, or b, while m is the row number and n is the column number of the color pixel in the LED array.
(30) Used herein, p, p.sub.i, and p.sub.imn may be used interchangeably. Each of them is a coefficient assigned to an LED in the LED array while p refers to a coefficient assigned to an LED in general, p.sub.i emphasizes the color of the LED, and p.sub.imn indicates the color and position of the LED. The coefficient p may differ from one LED to another. Alternatively, the same coefficient p may be applied to all LEDs of the same color in the LED array. Likewise, q, q.sub.i, and q.sub.imn may be used in the same manner. Further, a matrix of p, p.sub.i, or p.sub.imn is designated as coefficient matrix P while a matrix of q, q.sub.i, or q.sub.imn is designated as coefficient matrix Q.
(31) One of the calibration methods in this disclosure is an open loop process that derives coefficients p and q using two or more images of the LED array. First, the calibration is carried out at a high brightness level. For each red, green, or blue color, the LED array is provided with a uniform input data set. E.g., when pwm_R=65535, pwm_G=0, pwm_B=0, the red LEDs in the LED array are lit. An image of the LED array is taken using a camera. The image is then processed to deduce the brightness of each red LED to obtain an intensity matrix A. The lighting efficiency of each red LED is proportional to the corresponding matrix element. A red LED at column m and row n has the intensity of A.sub.rmn while the mean intensity of all red LEDs in the LED array is mean(A). The corresponding coefficient p.sub.imn can be derived according to the equation:
p.sub.imn=A.sub.rmn/mean(A) (3)
The same process is repeated when the input to the LED array is green or blue. As such, red, green, and blue color each has a corresponding coefficient p.sub.imn. The coefficient matrix P is a matrix of coefficients p.sub.imn.
(32) The second step of the calibration process may be carried out at a low brightness level. Likewise, for each red, green, or blue color, a uniform data set is sent to all LEDs of the same color in the LED array but at a low brightness level. For example, the data set (pwm_R=200, pwm_G=0, pwm_B=0) lit all red LEDs in the array at a low brightness level. An image of the LED array is taken and an intensity matrix B is extracted from the image. Likewise, each of red, green, and blue color is calibrated to obtain its corresponding matrix B.
(33) Assuming the input data of high brightness is X.sub.H and input data of low brightness is X.sub.L. The following equations can be obtained:
B.sub.imn=(X.sub.L−q.sub.imn)*p.sub.imn*X.sub.L/X.sub.H (4), and
q.sub.imn=X.sub.L−B.sub.imn*X.sub.H/X.sub.L/p.sub.imn (5)
q.sub.imn is the coefficient a color LED obtained at a low intensity. The matrix of coefficients q.sub.imn is designated as matrix Q.
(34) The calculations above assume the imaging efficiency at the high brightness level and at the low brightness level are the same, which may not be accurate. Used herein, the term “imaging efficiency” means the ratio between the brightness extracted from the image of the LED to the actual brightness of the LED. To solve this problem, in some embodiments, q.sub.imn is obtained using images of the LED array at two different but low brightness levels. Two intensity matrix B1 and B2 are derived from two images taken at two different low brightness levels having input data X.sub.1 and X.sub.2, respectively. In this case q.sub.imn can be obtained by solving two linear equations for each color LED as follows:
B1.sub.imn=(X.sub.1−q.sub.imn)*p.sub.imn; (6)
B2.sub.imn=(X.sub.2−q.sub.imn)*p.sub.imn, (7)
q.sub.imn=X.sub.1−B1.sub.imn(X.sub.1−X.sub.2)/(B1.sub.imn−B2.sub.imn) (8).
(35) Another exemplary calibration method is a closed loop or iterative process, which uses an imaging system to adjust coefficient q for each LED to obtain a uniform brightness. This process uses an adjustment loop in which the value of q is modified to reduce the measured image variations until the displayed image is at or below a pre-determined level. Details of this embodiment is described below, referencing
(36) As shown in
X′=(X+Q)*P (9)
The matrix X is a uniform matrix. As such, Q applies an adjustment to the matrix X. Used herein, a uniform matrix is a matrix in which all elements are of a same value.
(37) After the adjustment, in S4, an image is taken and an intensity matrix B is extracted using the image. The difference between B and a uniform matrix is calculated as the error matrix E in S5 according to Equation 8.
E=B−mean(B) (10)
In Equation (10), mean(B) is the matrix of the mean intensity value of LEDs of in the LED array, which is a uniform matrix.
(38) In S6, the error matrix E is compared with a pre-determined threshold value. If E is at or smaller than the threshold value, Q is output as the result of the calibration. The threshold value can be a small fraction of mean(B), e.g., 1% of mean(B) or 0.5% of mean(B). Each element q in the matrix Q is the coefficient obtained at a low brightness less or the equivalent thereof. If E is larger than the threshold value, the process continues to S7.
(39) A compensation matrix C is calculated using the error matrix E in S7.
C=−k*E (11)
k is a constant smaller than the lighting efficiency of the LED array, i.e., 50% of the average lighting efficiency of the LED array.
(40) In S8, the compensation matrix C is added to matrix Q to obtain an adjusted Q.sub.new.
Q.sub.new=Q+C=Q−k*E=Q−k*(B−mean(B)) (12)
(41) Q.sub.new is assigned to Q in S2 to calculate a new input data matrix X′ to the LED array and start a new iteration.
(42) When the observed intensity of an LED pixel in the array is high, its corresponding element in the error matrix E for the LED array would also be large. To that the LED pixel requires a more significant compensation c for that pixel (C=−k*E). Consequently, the new data input to that pixel q.sub.new is smaller (Q.sub.new=Q+C), which results in a lower output brightness. Q is further adjusted using the new output intensity matrix B and a smaller k. As such, every iteration modifies the input data to give brighter LED pixels smaller input values so that the output image becomes more uniform. The iteration continues until the variation of the images reaches a pre-determined level or does not have any further noticeable reduction. The resulting Q matrix provides q, which is used in calculating the compensation value K.
(43) In certain embodiments, e.g., when light emitting from LEDs are consistent and uniform, it may not be necessary to apply a different q to each individual LED. Instead, all LEDs of the same color in the LED array can use one set of calibration data at low brightness, high brightness, or both. I.e., at low brightness, all red LEDs use the same q.sub.r, all blue LEDs use the same q.sub.b, and all green LEDs use the same q.sub.g, thereby reducing q.sub.imn, (three matrices q.sub.r, q.sub.b, and q.sub.g, each being of 1920×1080 in size) to three numbers. Independently from what values of q.sub.r, q.sub.b, and q.sub.g are used for low brightness, at high brightness, all red LEDs may use the same P.sub.r, all blue LEDs use the same p.sub.b, all green LEDs use the same p.sub.g, thereby reducing p.sub.imn (three matrices p.sub.r, p.sub.b, and p.sub.g, each being of 1920×1080 in size) to three numbers. Such simplifications reduce the size of the memory needed for storing the calibration data. In these embodiments, the values of q and p can be selected based on experience or obtained by calibration.
(44) Both q and p are used in determining the compensation value K so that optimal compensation of the LED can be accomplished in the full range of brightness levels.
(45) In another embodiment of this disclosure, the grouping number G.sub.0 and the segment number S.sub.0 can be determined based on experience or obtained by calibration. S.sub.0 and G.sub.0 are stored in the driver circuitry of the LED display, e.g., in a register. In the calibration process, an initial G.sub.0 value (e.g., 8) and/or an initial S.sub.0 (e.g., 32) values are set in the driver circuitry, the LED display is run at various brightness levels, especially low brightness levels, to test performance characteristics such as flickering and brightness uniformity. The G.sub.0 and S.sub.0 can be adjusted until the performance meets or exceeds a pre-determined criteria.
(46) Note that the values of p.sub.i, q.sub.i, G.sub.0, and S.sub.0 can be obtained through calibration of the LED array or can be per-determined without calibration, e.g., based on experience.
(47)
(48) Data from the multiplier enters an adder where the second set of calibration data, q.sub.i, is added. The second set of calibration data is obtained under a low brightness condition, i.e., low brightness calibration. Assuming the calibration data adds q.sub.i GCLKs to N.sub.1, the output data N.sub.2 from the adder equals (N.sub.1+q.sub.i) or (floor(p.sub.i*X)+q.sub.i). As such, the compensation value K.sub.i=(floor(p.sub.i*X)+q.sub.i)−X. Therefore, the compensation value K.sub.i is informed by both the high brightness calibration and the low brightness calibration, corresponding to the curves shown in Panel C of
(49) The calibrated image data (X+K) is sent to a S-PWM engine, which receives a preset segment number S.sub.0 and a preset grouping number G.sub.0 from a register and generates digital PWM signals. The digital PWM signals are sent to a plurality of power sources. The power sources in turn drive a scan-type LED display panel, which may be either a common anode configuration or a common cathode configuration.
(50) In the common anode configuration, the LED display panel has an array of RGB LED pixels arranged in rows and columns. The LED array has a plurality of common anode nodes. Each of the plurality common anode nodes operably connects anodes of LEDs of a same color in a row to a corresponding scan switch. The cathodes of the LED pixels in a same column are connected to a power source.
(51) In the cathode configuration, the LED array has a plurality of common cathode nodes. Each of the plurality common cathode nodes operably connects cathodes of LEDs in a row to a corresponding scan switch. The anodes of LEDs of a same color in a column of LED pixels are connected to a current source.
(52) Many modifications and other embodiments of the disclosure will come to the mind of one skilled in the art having the benefit of the teaching presented in the forgoing descriptions and the associated drawings. For example, the driver circuit can be used to drive an LED array in either common cathode or common anode configuration. Elements in the LED array can be single color LEDs or RGB units or any other forms of LEDs available. The driver circuit can be scaled up or scaled down to drive LED arrays of various sizes. Multiple driver circuits may be employed to drive a plurality of LED arrays in a LED display system. The components in the driver can either be integrated on a single chip or on more than one chip or on the PCB board. Further, the display can be any suitable display, including large outdoor display panel or small micro display for cell phones. Such variations are within the scope of this disclosure. It is to be understood that the disclosure is not to be limited to the specific embodiments disclosed, and that the modifications and embodiments are intended to be included within the scope of the dependent claims.