I. Field of the Invention
The invention relates to display devices. More specifically, the invention describes a method and apparatus for enhancing the appearance of motion on an LCD panel display.
II. Overview
Each pixel of an LCD panel can be directed to assume a luminance value discretized to the standard set [0, 1, 2, . . . , 255] where a triplet of such pixels provides the R, G, and B components that make up an arbitrary color which is updated each frame time, typically {fraction (1/60)}th of a second. The problem with LCD pixels is that they respond sluggishly to an input command in that the pixels arrive at their target values only after several frames have elapsed, and the resulting display artifacts—“ghost” images of rapidly moving objects—are disconcerting. Ghosting occurs when the response speed of the LCD is not fast enough to keep up with the frame rate. In this case, the transition from one pixel value to another cannot be attained within the desired time frame since LCDs rely on the ability of the liquid crystal to orient itself under the influence of an electric field. Therefore, since the liquid crystal must physically move in order to change intensity, the viscous nature of the liquid crystal material itself contributes to the appearance of ghosting artifacts.
In order to reduce and/or eliminate this deterioration in image quality, the LC response time is reduced by overdriving the pixel values such that a target pixel value is reached, or almost reached, within a single frame period. In particular, by biasing the input voltage of a given pixel to an overdriven pixel value that exceeds the target pixel value for the current frame, the transition between the starting pixel value and target pixel value is accelerated in such a way that the pixel is driven to the target pixel value within the designated frame period. However, in order to efficiently calculate the overdrive pixel value, an LCD overdrive table is used that provides the appropriate overdrive pixel value that corresponds to a start, target pixel pair.
Accordingly, in an LCD controller, a LCD overdrive look up table (or LUT) is used to remap 8-bit values to the LCD panel in a current frame in order to speed the transition from the start pixel value to the target pixel value. Since each panel has different physical characteristics governing its liquid crystal element response time, each panel must be characterized to determine the proper transfer function to be used in the lookup table. In the absence of software that automatically performs the calibration, it must be performed manually. Since the calibration requires over 80 separate measurements, manual calibration is time-consuming and fraught with potential for human error.
Therefore, what is required is a method, system, and apparatus that automatically calibrates LCD panels and calculates the resultant calibration data used in populating an LCD overdrive table.
What is provided is a method, apparatus, and system suitable for auto-calibrating a liquid crystal display (LCD) panel. In one embodiment, the method is carried out by generating and displaying on the LCD a test patch at a first grey level, generating a first signal based upon the test pattern at the first grey level, generating and displaying a second test patch at a second grey level, generating a second signal based upon the test pattern at the second grey level, and calculating an entry to an LCD overdrive table based upon the first and the second signal.
In another embodiment, an auto-calibration system suitable for automatically calibrating a liquid crystal display (LCD) is described. The system includes a processor unit and an onscreen display generator unit coupled to the LCD and the processor unit arranged to generate and display on the LCD a first test patch at a first grey level at a first time slot and generate and display on the LCD a second test patch at a second grey level at a second time slot under control of the processor unit. The system also includes a photosensitive detector coupled to the processor unit arranged to generate a first signal and a second signal each based upon light received from the first patch and the second patch, respectively. The processor in turn calculates an entry to an LCD overdrive table based upon the first and the second signal.
Computer program product for auto-calibration of a liquid crystal display (LCD). The computer program product includes computer code for generating and displaying on the LCD a test patch at a first grey level, computer code for generating a first signal based upon the test pattern at the first grey level, computer code for generating and displaying a second test patch at a second grey level, computer code for generating a second signal based upon the test pattern at the second grey level, computer code for calculating an entry to an LCD overdrive table based upon the first and the second signal, and computer readable medium for storing the computer code.
In yet another embodiment, a method of automatically calibrating a liquid crystal display (LCD) is disclosed. The method is performed by displaying a test pattern on the LCD and automatically populating an overdrive table based upon the displayed test pattern.
Reference will now be made in detail to a particular embodiment of the invention an example of which is illustrated in the accompanying drawings. While the invention will be described in conjunction with the particular embodiment, it will be understood that it is not intended to limit the invention to the described embodiment. To the contrary, it is intended to cover alternatives, modifications, and equivalents as may be included within the spirit and scope of the invention as defined by the appended claims.
It should be noted that even though the invention is described with respect to a specific embodiment having a pixel bit size (or depth) of 8 bits (representative of 256 levels), the invention is also applicable to embodiments having pixels of other bit depths, such as 10-bit pixels.
One of the keys to the overdrive method is accurate characterization of the LCD panel's optical response. An accurate model allows the overdrive to more accurately predict the response to a given pixel thereby allowing a more accurate selection of overdriven value and predicted pixel values. The liquid crystals must physically rotate and thus its viscosity determines how quickly this rotation can take place. It is the speed of this rotation that determines the response time of a given LCD panel.
In order to improve the performance of slow LCD panels, the performance of the LCD panel is first characterized by, for example, taking a series of measurements that show what each pixel will do by the end of one frame time. Such measurements are taken for a representative pixel (or pixels) each being initially at a starting pixel value s that is then commanded toward a target value t (where s and t each take on integer values from 0 to 255). If the pixel value actually attained in one frame time is p, then
p=fs(t) (1)
where fs is the one-frame pixel-response function corresponding to a fixed start-pixel s. For example, the one-frame pixel response function fs (t) for a pixel having a start pixel value s=32 and a target pixel value t=192 that can only reach a pixel value p=100 is represented as f32(192)=100.
For slow panels (where most if not all targets can not be reached within a frame time) functions m(s) and M(s) give the minimum pixel value and maximum pixel value, respectively, reachable in one frame time as functions of s that define maximum-effort curves. In order to reach a pixel value p that lies within the interval [m(s), M(s)], equation (1) is solved for the argument that produces pixel value p referred to as the overdrive pixel value that will achieve the goal (i.e., pixel value p) in one frame time. If p<m(s), then the overdrive pixel value is taken as having a best-effort value of 0, with m(s) being the best-effort result achieved. Likewise, if p>M(s) then the overdrive pixel is taken to be 255, with M(s) being the best-effort result. Thus, for a given start pixel s, overdrive function gs can be defined by equation 2 as
In this way, the overdrive pixel value is effective in compelling the pixel to reach its target value in the non-saturation region and M(s) and m(s) in the saturation regions SM and Sm, respectively.
Using any of a number of non-inertial approaches (i.e., one that ignores pixel velocity) it is possible to create an overdrive table that shows, for each starting pixel and each target pixel, the command pixel that will most-likely cause the target pixel value to be achieved at the end of one frame time. In an ideal case, the overdrive table is formed of a lookup table with 256 columns—one for each starting pixel in the range 0 to 255—and likewise 256 rows, one for each possible target. However, it isn't practical to store a table of that size (256×256) so by sub-sampling the pixel array at every 32nd pixel, for example, using a reference sequence:
pix={0, 32, 64, 96, 128, 160, 192, 224, 255} (3)
(in which the last entry is truncated to 255), a smaller 9×9 is developed that greatly reduces the amount of memory and computational resources required at runtime. One such overdrive table 100 configured in such a way that a start pixel is given by column j and a target pixel by row i is shown in
In order to take advantage of the overdrive table, an LCD panel's response time must be determined for at least each of the start and target pixel values enumerated in the overdrive LUT. Therefore, an auto-calibration procedure in accordance with the invention is hereinafter described suitable for use with any number and kind of LCD panels.
Accordingly,
In the described embodiment, the test pattern takes the form of a number of patches 214 each of an arbitrary grey level (it should be noted that although the test pattern is shown schematically as 214-1 through 214-3, in the described embodiment, the various patches 214 are displayed one at a time on the LCD 212). Therefore, for proper LCD calibration, the system 200 must be able to display each patch 214 (at an arbitrary grey level) per output frame, with no frame tear, frame drops, repeated frames, or other visible glitches. In addition, there should be a known latency (in frames) between the issuance of a patch display command and its actual display on the LCD 212 thereby synchronizing the display and corresponding signal capture by the photosensor 202.
Since the starting point of transitions between grey levels of only slightly different values can be difficult to distinguish, the frame in which the transition starts must be known for accurate measurement. In addition, the grey patch must be able to be displayed at an arbitrary size and position on the LCD 212. Since the LCD 212 is addressed row by row, there is a small temporal lag in the transition from one grey level to the next in pixels of different lines giving rise to a slight temporal “smearing” of the transition waveform. This smearing is mitigated by reducing the vertical size of the patch, however, the patch must still be large enough to provide sufficient light for the photosensor 202 to provide accurate measurement. In the described embodiment, these competing requirements, (patch size to reduce smearing vs. providing sufficient light output) is done dynamically, since different LCDs have different light levels over a given area. Also, the position must be dynamically changeable to ensure the best correlation between sensor and patch position on the screen.
In the described embodiment, an on-chip On Screen Display (OSD) generator 218 generates an OSD 220 formed of several “tiles” virtually stored in a memory 222 (such as SRAM 222) that mediates between the size of the patch to optimize image smearing and light output. Accordingly, each tile is formed of a data structure that includes such information as tile position and size, highlight position and size, transparency/blend/blink information, and a pointer to the tile data in SRAM. The tile data is a set of 1, 2, or 4 bit per pixel data, each of which is expanded into an index to a 256 entry color lookup table (CLUT). In the described embodiment, the CLUT is a 256 word structure containing 256 24-bit colors that allows for up to 256 24-bit colors to be displayed in a particular OSD 220. In the currently described implementation, there are two lookup tables, one active and one pending. The active CLUT is used for the displayed OSD while the pending CLUT can then be written to without causing glitches on the LCD 212. Once the pending CLUT has finished being updated, it can be switched with the active CLUT.
Since the auto-calibration procedure requires only that a single patch consisting of one grey value be displayed on the screen at a time, no tile is stored in SDRAM. The color index in command SRAM indexes into the CLUT and fills the entire OSD with that color. Therefore, by filling up the CLUT with 256 gray levels, any gray level can be displayed simply by changing the color index in the command SRAM. In addition, the position and the size of the OSD 220 can be changed by corresponding parameters in command SRAM
It should be noted that while a particular test sequence is running, the photosensor 202 (placed in such a position to gather light from the LCD panel 212) converts the LCD light output generated by the test patches 202 to a test signal Stest. The signal Stest is representative of the pixel transitions of the various test patterns it is primarily composed of low frequency components and as such generally has a frequency on the order of just a few times the frame rate. In order to reduce any spurious high frequency noise, the signal Stest is filtered by the filter 204 having a cutoff frequency of approximately 1 kHz. The filtered signal is then sampled by the capture card 206 in preparation for input to the auto-calibration software 216 on the computer 208.
Once the appropriate measurements for the particular test sequence has been received and processed, the computer 208 calculates appropriate LCD overdrive table values used to populate an LCD overdrive table 224 used by the LCD controller unit 210 to control the LCD panel 212 during normal operation. It should be noted that each vertical refresh rate creates a different response in the LCD and must be measured and recorded separately.
It should also be noted that since the LCD optical response can vary widely from on-axis to off-axis viewing and has a wide acceptance angle into its photoreceptor can cause measuring inaccuracies due to not only off-axis light from the LCD itself but also from environmental ambient light such as overhead fluorescent or sunlight. Therefore, an external collimator (not shown) may be desirable to eliminate off-axis light, however, the collimator will also reduce the total light sampled and may thus reduce the signal-to-noise ratio of the final sensor output.
A method for auto-calibrating an LCD panel in accordance with an embodiment of the invention will now be discussed with regards to
Accordingly, the initial set up process 300 by initializing the display by resetting the data acquisition device, or DAQ device, by checking that a supported DAQ device is connected to the PC. In the described embodiment, a data structure that lists the DAQ device properties (gain settings, bit resolution, etc.) is filled out and the DAQ device is reset to an initial state at 302. Next at 304, panel data is read in while at 306, the DAQ device is calibrated by verifying that the minimum necessary (two) input channels exist, that the DAQ device has a sample resolution between 8 and 16 bits, and that the array of gain settings is ordered. In addition, a full screen grey patch with RGB=(255,255,255) is displayed to find the gain setting for the DAQ device that provides the best resolution without over-saturation. In addition, the synchronization signal provided from the board is toggled at the specified rate; the sync polarity is checked to ensure that the sensor voltage is relatively stable.
Next at 308, a sensor position is found. Since each scan line in the LCD is addressed sequentially, the vertical position of the optical sensor will determine the exact instant each step response transition measurement must start. This part of the algorithm displays patches on the screen using an overlapping binary search to find the sensor's vertical position. In the described embodiment, patches with a vertical height of one half that of the LCD screen is displayed. Three such patches are measured, covering the top, bottom, and middle of the LCD panel. The patch with the strongest optical response is then subdivided in the next iteration, each of which uses patches with half the vertical height of those of the previous iteration. The midpoint of the smallest patch with a reasonable response (above a defined threshold) is taken to be the sensor's vertical midpoint. Using this line number, the delay in samples from the vertical synchronization signal to the sensor midpoint is calculated and stored. Once the initial set up is complete, the panel response is measured at 310.
It should be noted that throughout the measurement process, a number of error checks are performed that include checking the polarity of the sync signal at the first sample of each iteration to help ensure the sample stream from the DLL conform to the first condition above and at each transition, the sensor sample at the transition starting point must be close to the corresponding level obtained during the measure grey levels step above. The starting point is the one calculated during the Find sensor position procedure of the algorithm setup above. Each measured transition must rise from start to end if expecting a rising edge transition, or fall if expecting a falling edge transition. Next at 408, rise times of 10-90% and 0-99% are measured by first calculating the corresponding grey level values of the starting and ending percentages based on the static grey level measurements. Then, from the start of the first frame of the sequence, it compares the data to the starting and ending grey levels required in order to calculate the number of samples in between. The number of samples is translated into time in milliseconds to find the rise/fall times. Multiple repetitions of each step are measured to average out noise effects. At 410, the grey levels are measured again and at 412, the grey levels are compared since the grey level measurements must be consistent from the first to the second set of measurements. If they drift excessively, it could indicate insufficient panel warm up time, a sudden change in the ambient light level, or similar effects which could seriously impair the reliability of the measurements. At 414, the panel measurements are sent to a file.
It should be noted that optionally peak-to-peak one-frame step measurements are performed by iterating through each combination of steps (36 rising and 36 falling steps), displaying each grey level one frame at a time and measuring the peak-to-peak voltage difference between the two grey levels. Each step is repeated 30 times to average out noise and instability. This information will be used later to compare to the overdriven peak-to-peak results.
Although only a few embodiments of the present invention have been described, it should be understood that the present invention might be embodied in many other specific forms without departing from the spirit or the scope of the present invention. The present examples are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope of the appended claims along with their full scope of equivalents.
While this invention has been described in terms of a described embodiment, there are alterations, permutations, and equivalents that fall within the scope of this invention. It should also be noted that there are many alternative ways of implementing both the process and apparatus of the present invention. It is therefore intended that the invention be interpreted as including all such alterations, permutations, and equivalents as fall within the true spirit and scope of the present invention.
This patent application takes priority under 35 U.S.C. 119(e) to (i) U.S. Provisional Patent Application No.: 60/527,423, filed on Dec. 5, 2003 (Attorney Docket No. GENSP0114P) entitled “LCD OVERDRIVE AUTOCALIBRATION” by Selby, (ii) U.S. Provisional Patent Application No.: 60/527,543, filed on Dec. 5, 2003 (Attorney Docket No. GENSP0115P) entitled “METHOD OF IMPROVING FIXED PIXEL DISPLAY RESPONSE TIME by Selby, and (iii) U.S. Provisional Patent Application No.: 60/527,437, filed on Dec. 5, 2003 (Attorney Docket No. GENSP0116P) entitled “METHOD AND APPARATUS FOR ENHANCING THE APPEARANCE OF MOTION ON AN LCD PANEL” by Selby.
Number | Date | Country | |
---|---|---|---|
60527423 | Dec 2003 | US | |
60527543 | Dec 2003 | US | |
60527437 | Dec 2003 | US |