TECHNICAL FIELD
[0001] The present invention generally relates to driving a video display panel, such as
a liquid crystal display, and more particularly to an apparatus and method for adjusting
a video signal to reduce flicker generated by the display.
BACKGROUND ART
[0002] The display of video images on a viewable display screen, such as a liquid crystal
display (LCD) panel, is known in the art. However, LCDs suffer from a disadvantage
known as flicker. Flicker is a variation (drop or rise) in the average luminance across
an LCD when the LCD displays a moving, but constant luminance, image. One particular
cause of flicker is an asymmetry between the rise time and decay time of each pixel
of the LCD. Viewing a display screen with flicker can cause considerable eye strain
and fatigue. In applications where display resolution, contrast, response speed and
viewer comfort is desirable, a flickering display is nearly unacceptable. An example
of such an application is a display where an operator is required to pay close attention
to the display for hours at a time without distraction.
[0003] Referring to FIGS. 1a-1c and 2, the phenomenon of flicker will be described in greater
detail. For simplicity, the illustrated and described example is for a monochromatic
display, but it is understood that multicolor displays operate in the same fashion.
The example display is a normally white active matrix LCD (AMLCD). However, the same
principle applies to most types of LCDs, including normally black LCDs.
[0004] FIG. 1a shows an image 200. For illustrative purposes, the image 200 is a black pixel
or group of black pixels (i.e., fully dark pixels) displayed on at least a portion
of a display 202 where the surrounding pixels are white (i.e., fully bright). The
display 202 is being driven by a video signal instructing to display the image 200
at a particular location, or first location 204. The example image 200 illustrated
in FIG. 1a corresponds to time t
0 in FIG. 2.
[0005] As illustrated in FIGS. 1a-1c, the video signal instructs the display 202 to move
the image 200 to a second location 206. The term move is used loosely, since the image
200 does not physically move. Rather, the video signal instructs the display 202 to
make the pixels at the first location 204 fully bright and make the pixels at the
second location 206 fully dark. Other examples of image movement include the scrolling
of text or the movement of a cursor on a computer display, and an underwater object
moving on a sonar display.
[0006] The video signal data for the pixels at the first location 204 is a step function
rising from fully dark (zero percent luminance) to fully bright (100% luminance) in
a single frame. Simultaneously, the video signal data for the pixels at the second
location 206 is a step function decaying from fully bright to fully dark. Referring
to FIG. 2, the actual LCD response to these inputs are illustrated. Curve 208 represents
the response of a pixel(s) to the rising step function and curve 210 represents the
response of a pixel(s) to the decaying step function. The responses are similar to
that of a low pass filter; however, the low pass filter model is only a crude approximation.
The actual LCD response is a function of the actual behavior and inertia of the liquid
crystal in the display.
[0007] In the example LCD, the rising pixels will have a rise time t
r with a duration longer than a decay time t
d of the decaying pixels. The rise time t
r and decay time t
d for a specific display, and for a specific pixel of a specific display, will vary.
However, rise times are typically in the range of 30 milliseconds (ms) to 60 ms and
decay times are typically in the range of 8 ms to 20 ms. It is noted that depending
on the specific display, the decay time t
d can be longer than the rise time t
r. For instance, normally black panels often exhibit longer decay times. It should
be apparent that longer decay times will still result in flicker as the display has
asymmetrical rise and decay times.
[0008] FIG. 1b illustrates the image 200 at time t
1 in FIG. 2 when the pixels at the first location 204 are still transitioning from
fully dark to fully bright and when the pixels at the second location 206 are still
transitioning from fully bright to fully dark. The lingering image at location 204
is referred to as an artifact.
[0009] Curve 212 in FIG. 2 represents the average luminance of the display for the first
and second locations 204, 206. For a theoretical display, where rise and decay times
are equal and the pixels rise and decay at the same rate, the average luminance of
the display due to the described luminance of the first and second locations 204,
206, as one rises and one falls in luminance, will be constant. However, for an actual
display, where rise time t
r and decay time t
d are not equal and their rates of changes are not equal, the average luminance curve
212 is not constant. The exemplary average luminance curve 212 has a negative flicker
component. This variation is perceptible to humans and detracts from the performance
of the display. It is noted that the average luminance curve for LCDs where the decay
time is longer than the rise time will have a positive flicker component. Positive
flicker components are equally perceptible and also detract from the performance of
the display.
[0010] FIG. 1c illustrates the image 200 at time t
2 in FIG. 2 when the pixels at the first location 204 have transitioned to fully bright
and when the pixels at the second location 206 have transitioned to fully dark.
[0011] Flicker can be exacerbated by several factors dependent on the incoming video signal.
An example situation that causes increased perceptible flicker includes sequentially
moving an image through a series of adjacent pixels such that each pixel in the series
of pixels is transitioned from light to dark (or vice versa) and becomes a luminance
producing artifact as the image moves. Another example situation is moving a relatively
large or intricate image where the luminance of the artifacts in the aggregate results
in a large flicker component.
[0012] One approach to reducing flicker can be found in European Patent Specification EP
0 951 007. This EP patent discloses using a subtractor to subtract a predicted present
luminance from an incoming video signal. A processing block is used to derive first
(ΔR) and second (ΔC) correction values from the output of the subtractor and the predicted
present luminance. Briefly, ΔC is a correction value to be added to the predicted
present luminance in order to reach a chosen luminance which is output to the display
panel. ΔR is the predicted value with which the luminance will have changed after
the next correction period when ΔC is added to the predicted present luminance, taking
into account the parameters of the display screen. The correction values are based
on first order low pass filter equations such that the video signal output to the
display panel attempts to increase the actual display luminance in a manner to significantly
match an inverted version of an uncorrected decaying curve. More specifically, the
corrected response attempts to follow a series of exponential curves from one correction
period to the next.
[0013] The method and apparatus disclosed in the foregoing EP patent suffer from at least
two significant disadvantages. Predictions of the luminance at the end of each correction
period are made and used in the computation of the next output value. The predictions
will be different from the actual displayed luminance and, even after one correction
period, an accumulation of error between the predicted luminance and the actual luminance
will be present. The error can achieve significant levels where the correction becomes
ineffective to prevent flicker.
[0014] The second disadvantage is maintaining good contrast between the image as it moves
and partially illuminated adjacent pixels (e.g., 20% to 50% luminance) which serves
as a second image or as a background image. The method and apparatus disclosed in
the foregoing EP patent gradually increase the luminance of a pixel being made bright
over the course of six or more correction periods. During such a graduated elevation
in luminance, the target pixel will have a brightness similar to that of the partially
illuminated adjacent pixels and may become indistinguishable from the adjacent pixels
for a longer period of time than is desirable. The result is poor contrast and a potential
loss of displayed information, especially if the target pixel moves again before the
end of all the correction periods used to make the target pixel fully bright or fully
dark.
[0015] At present, flickerless LCD panels having equal pixel rise and decay characteristics
are not available. Therefore, there exists a need in the art for an LCD driver which
adjusts the video signal to compensate for flicker.
SUMMARY OF THE INVENTION
[0016] According to one aspect of the invention, the invention is a video data correction
circuit for adjusting an input video signal intended to be displayed on a display,
the display having at least one pixel, the pixel having a luminance rise time and
a luminance decay time, one of the rise time and decay time being longer than the
other, the video data correction circuit having a video data processor having a first
video data input, a second video data input and a video data output, the first video
data input connected to receive an input video signal having a series of input luminance
data values, the output providing an output video signal having a series of output
luminance data values, the second input being connected to receive a present output
luminance data value, and the video data processor determines a difference between
a present input luminance data value and the present output luminance data value,
if the difference indicates that the input luminance data is changing in a prescribed
direction the video data processor adjusts the present output luminance data value
by an adjustment function to determine a next output luminance data value.
[0017] According to another aspect of the invention, the invention is a method of adjusting
an input video signal intended to be displayed on a display, the display having at
least one pixel, the pixel having a luminance rise time and a luminance decay time,
one of the rise time and the decay time being longer than the other, the method having
the steps of deriving a difference between a value of a present input luminance data
value and a value of a present output luminance data value; and adjusting the present
output luminance data value by an adjustment function to determine a next output luminance
data value when the difference indicates that the input luminance data is changing
in a prescribed direction.
[0018] According to another aspect of the invention, the invention is a method of adjusting
an input video signal intended to be displayed on a display, the display having at
least one pixel, the pixel having a luminance rise time and a luminance decay time,
one of the rise time and the decay time being longer than the other, the method having
the steps of inputting a present input luminance data value into an addressable memory
device; inputting a present output luminance data value into the addressable memory
device; and outputting a next output luminance data value from one of a plurality
of addresses of the addressable memory device, each address corresponding to the current
input luminance data value and the current output luminance data value, and values
of the next output luminance data value stored at each address being based on an adjustment
of the present output luminance data by an adjustment function when a difference between
the present input luminance data value and the present output luminance data value
indicates that the input luminance data is changing in a prescribed direction.
BRIEF DESCRIPTION OF DRAWINGS
[0019] These and further features of the present invention will be apparent with reference
to the following description and drawings, wherein:
FIGS. 1a-1c depict a moving image on a display that produces flicker;
FIG. 2 is a luminance versus time diagram for the display of FIG. 1;
FIG. 3 is a block diagram of a video data correction circuit according to the present
invention;
FIG. 4 is a block diagram of a video data correction look up table;
FIG. 5 is a luminance versus time diagram of an LCD response to uncorrected video
data;
FIG. 6 is an operating loop for the video data correction circuit; and
FIG. 7 is a luminance versus time diagram of an LCD response to corrected video data.
DISCLOSURE OF INVENTION
[0020] In the detailed description which follows, identical components have been given the
same reference numerals, regardless of whether they are shown in different embodiments
of the present invention. To illustrate the present invention in a clear and concise
manner, the drawings may not necessarily be to scale and certain features may be shown
in somewhat schematic form.
[0021] Referring to FIG. 3, a liquid crystal display (LCD) video data correction circuit
10 is illustrated. Briefly, the LCD video data correction circuit 10 acts as a discrete
time recursive filter to minimize flicker which otherwise results from the fluid dynamics,
or some other function or characteristic, of the liquid crystal in the LCD panel causing
an asymmetry between the rise time and decay time and between the rise rate and decay
rate of the each pixel of the LCD. The invention described herein will be discussed
for a normally white active matrix LCD (AMLCD). However, one skilled in the art will
immediately recognize that the video data correction circuit 10 can be adapted for
use with other LCD panels, such as normally black LCDs, twisted nematic, cholesteric
and smectic LCDs, encapsulated liquid crystal LCDs, network liquid crystal LCDs, etc.
The video data correction circuit can also be used for non-LCD type displays, such
as CRTs, electro-luminescent displays, plasma displays, etc.
[0022] An input video signal for display on an LCD 12 is received by an analog interface
board 14. The input video signal is an analog signal which is converted to a 24 bit
RGB digital video signal by the analog interface board 14. The digital video signal
is output from the analog interface board 14 into a video data processor 16, such
as a logic device implemented with hardware or software. In one embodiment, as will
be discussed in greater detail below, the video data processor 16 is a dual port random
access memory (RAM) 17 (FIG. 4) rather than a logic device. In either arrangement,
the video data processor 16 acts to compensate for the non-linearity and fluid dynamics
of the liquid crystal in the LCD 12.
[0023] The 24 bit digital video signal has 8 bits representing red, 8 bits representing
green and 8 bits representing blue. As is known, controlling the luminance of adjacent
red, green and blue pixels allows for the generating of color images. The invention
described herein can also be used for monochromatic displays. The video data correction
circuit 10 operates on each 8 bit grouping of each frame of the video signal simultaneously.
However, to discuss the invention in a clear and concise manner, the discussion herein
will be limited to discussing one series of 8 bit digital words which represent a
series of frames of the video data signal for a selected pixel as the video data is
processed by the video data correction circuit 10. As should be apparent, an 8 bit
digital word has a decimal equivalent ranging from zero to 255. As used herein, digital
video data having a decimal equivalent of zero represents a desired luminance (also
referred to as transmittance depending on the type of LCD panel) of 0%, or fully dark.
Digital video data having a decimal equivalent of 255 represents a desired luminance
of 100%, or fully bright.
[0024] The video data processor 16 has a first input port 18 and a second input port 19.
The incoming video signal is connected to the first port 18 of the video data processor
16 and the bits of data associated with the presently arriving frame is considered
present input video data, or X
n.
[0025] The video data processor 16 is programmed with a process 20 to modify the present
input data X
n to output an associated frame, or set of frames, referred to herein as present output
video data, or Y
n. The present output video data Y
n is received by the LCD panel 12 via a personality module. The personality module
is used to properly address the particular LCD panel being used. The present input
data X
n is modified, or corrected, so that the present output data Y
n drives, or refreshes, the LCD in a particular manner to reduce flicker. The process
20 used to modify the present input data X
n will be described in more detail below.
[0026] With additional reference to FIG. 5, the LCD response to an uncorrected video signal,
or luminance data, is illustrated. As an example, the luminance data (curve 21) is
a step function rising from decimal equivalent of zero, or fully dark, to a decimal
equivalent of 255 (100% luminance), or fully bright, then decaying from the decimal
equivalent of 255 back to zero. The LCD will respond (curve 22) to the increase in
luminance data by transitioning from dark to light. However, due to the response characteristics
of liquid crystals (described more fully above with respect to FIGS. 1a-1c and 2),
the LCD pixel being instructed to become bright will transition to bright over a rise
time, or t
r. For example, the rise time t
r can be about 30 milliseconds (ms) to about 60 ms. Similarly, as the luminance data
(curve 21) transitions from 255 to zero, the LCD response will transition to dark
over a decay time, or t
d. For example, the decay time t
d can be about 8 ms to about 20 ms. Since the rise time t
r and the decay time t
d are not equal, the LCD panel will have a tendency to flicker. It is noted that the
instantaneous slope of curve 22 during increasing luminance (i.e., rise rate) and
during decreasing luminance (i.e., decay rate) are also not equal. Therefore, even
if the rise time t
r and the decay time t
d were equal, flicker could be present if the rise rate and decay rate were unequal.
[0027] Referring back to FIG. 3, the present output data Y
n is also received by a frame buffer 24. The frame buffer 24 temporarily stores the
most recent frame of the video data output from the video data processor 16. This
data, which is Y
n, is input into a buffer, such as a first- in/first-out (FIFO) buffer 26. The FIFO
buffer 26 queues the present video output data Y
n so that the present video output data Y
n can be input to the video data processor 16 at the prompting of a programmable logic
controller 28. As one skilled in the art will appreciate, the frame buffer 24 and
FIFO buffer 26 can be combined into a single buffer or frame data storage device.
The programmable logic 28 is a logic device which can be implemented in hardware,
such as one or more complex programmable logic devices (CPLD) or a microprocessor,
or in software. The programmable logic 28 communicates with the analog interface board
14 to receive synchronization signals, clocking signals and control signals. The programmable
logic 28 controls the storage and retrieval of video data and effectively clocks the
video data as the video data progresses through the components of the video data correction
circuit 10.
[0028] The programmable logic 28 can also control the refresh rate of the luminance data
output to the personality module and LCD 12 by selecting from different modes of operation.
The modes include a frame locked mode, where the refresh rate of the present output
data Y
n directed to the display is locked at a steady rate matched to the incoming video
signal frame rate (e.g., 60 Hz or a frame period of 17 ms). The frame locked mode
is preferable when the content of the video signal is moving quickly, for example
video data changing every frame or every few frames. In this situation the frame locked
mode assists in displaying moving images that are temporally uniform (i.e., not jerky).
The modes also include a free running mode, where the refresh rate is updated to be
tuned with respect to the response of the LCD panel at a specified temperature. The
free running mode is appropriate for slow moving images, for example video data changing
over a number of frames such that a difference between the frame rate of the incoming
video signal and refresh rate of the output luminance data to the LCD would be imperceptible
to the viewer. In this situation, the free running mode assists in providing enhanced
compensation against flicker. As an example, in the free running mode the LCD refresh
rate may have three output refresh frames for each incoming video signal frame. The
implementation of the foregoing modes is well known in the art and will consequently
not be discussed in greater detail.
[0029] The video data correction circuit 10 has a processor 30 for calculating values to
be used in the process 20, or for calculating values stored in a recursion matrix
look up table 32 (FIG. 4) which is part of the RAM 17. A detailed discussion of the
values to be calculated and the algorithms used to calculate the values is presented
below. These values may be dependent on external factors, such as user selectable
preferences. Some users are more tolerant of flicker than others. Also, flicker perception
can depend on factors such as the user's viewing angle, ambient light and other environmental
factors. Therefore, it is desirable to make video data corrections based on user preferences
which take into account factors such as a the user's tolerance, height, seating habits
and ambient light. Accordingly, the processor 30 receives data related to the external
factors from an input device 34, such as a keyboard, switches, sensors, a microphone,
a mouse, an interactive computer menu, a memory device or combination of devices making
up the input device 34. The data can be in the form of actual predetermined values
known to the user. Alternatively, the data may be selected by the user from a menu
of values. In another embodiment, the user can simply instruct the processor 30 to
increase or decrease flicker compensation and the processor will calculate the appropriate
compensation values. In yet another embodiment, the user can enter information related
to the foregoing flicker dependent factors and the processor 30 can calculate the
appropriate compensation values. The processor 30 also may receive program instructions
stored in the input device, or from some other source; an example of such program
instructions is described below with respect to FIG. 6.
[0030] The processor 30 also compensates for temperature of the LCD. As is known, the performance
of LCD panels, including the rise and decay times of each pixel, is dependent on the
temperature of the pixels. Accordingly, the video data correction circuit 10 has a
temperature sensor 36, such as a glass temperature sensor, for sensing the temperature
of the display in at least one location on the display. Temperature information is
provided to the processor 30 which updates the values calculated by the processor
30 based on the sensed temperature.
[0031] With additional reference to FIG. 6, a programmed operating loop of the processor
30 is illustrated. After starting up in step 40, the operating loop will determine
if user preference information has been received from the input device 34 in step
42. If user preference information has been entered, the processor 30 will access
the information and read the information into a memory in step 44. If user preference
information has not been entered, a default user preference information will be stored
in the memory or the last input user preference information stored will be retained
in the memory. Next, the processor 30 determines the temperature of the display, or
a temperature gradient across the display, from the information provided by the temperature
sensor 36 in step 46. If the processor 30 has not yet calculated the values to be
stored in the video data processor 16 as determined in step 48, the processor 30 will
calculate the values based on the user preference information stored in the memory
and the sensed temperature(s) (step 50). Once the values are calculated, the processor
30 will communicate the values to the video data processor 16. The video data processor
16 stores the values for operational use in memory addresses. After calculating and
storing the values, the operating loop will repeat itself.
[0032] If, in step 48, it is determined that the values have already been calculated, the
processor will determine whether a difference between the presently sensed temperature(s)
and the temperature(s) sensed during a prior temperature measurement exceeds a predetermined
threshold in step 52. If the threshold is not exceeded, the operating loop will repeat
itself. If the threshold is exceeded, the processor will recalculate the values in
step 50 using the presently sensed temperature(s). As one skilled in the art should
appreciate, the measurement of LCD temperature and compensation for temperature variation
is optional and these steps of the programmed operating loop can be omitted.
[0033] Referring to FIGS. 3 and 7 (FIGS. 5 and 7 appear on the same drawing sheet to facilitate
viewing and comparison), the functional operation of the video data processor 16 will
be discussed. The present invention reduces the amount of flicker an LCD panel will
produce by artificially directing the actual LCD response. More specifically, the
correction circuit 10 will supply corrected luminance data (curve 60) to the personality
module and LCD 12 such that the LCD will have a corrected luminance response (curve
62). The corrected luminance data curve 60 is selected so that the area under the
corrected luminance response curve 62 during the luminance transition is approximately
equal to the area under an ideal luminance response curve 64. The ideal luminance
response curve 64 is the inverse of the longer of the uncorrected LCD response to
a rising step function or the uncorrected LCD response to a decaying step function.
The ideal luminance response curve 64 is selected in this manner since the sum of
the values along the ideal curve 64 and the associated uncorrected LCD response at
every point in time during the transition results in a constant average luminance.
Since the example display has a longer uncorrected rising time tr, the ideal response
curve 64 is the inverse of the LCD response to a rising step function. However, the
invention is not limited to slowing the faster LCD response to have an area under
the corrected LCD response to be approximately equal to the area under an ideal curve
where the ideal curve is the inverse of the slower uncorrected response curve. Simple
modifications can be implemented to speed the slower LCD response to have an area
under the corrected LCD response to be approximately equal to the area under an inverse
of the faster uncorrected response curve. Other modifications can be made to slow
the faster uncorrected response and to concurrently speed up the slower uncorrected
response to match the corrected responses to a preselected ideal rising and decaying
response.
[0034] Continuing with the correction techniques for the example LCD, it is noted that the
correction circuit 10 does not adjust the luminance data for incoming video data instructing
the LCD to transition in the direction of the longer uncorrected response. Correction
is made to the shorter of the uncorrected rising or decaying response so that the
overall average luminance across the display is made fairly constant as one pixel
is instructed to decay and another pixel is instructed to rise to give the appearance
that an image is moving. In the example, the rising time t
r is longer than the decaying time t
d. Therefore, when the incoming video data signal has successive frames instructing
the LCD to increase the luminance of a pixel, the video data for that pixel will be
passed to the personality module and LCD 12 without alteration. However, when the
incoming video data signal has successive frames instructing the LCD to decrease the
luminance of a pixel, the correction circuit 10 will adjust the video data for that
pixel. One skilled in the art will recognize that if the decaying time t
d is longer than the rise time t
r, the correction circuit 10 should be configured to pass decaying luminance data to
the personality module and LCD 12 without correction and correct rising luminance
data in the same manner as described herein.
[0035] As is known, the area under a curve can be obtained by taking the integral of the
function defining the curve. If the curve is made up of several segments where each
segment can be defined by a function, the area under the overall curve can be derived
by taking the integral of each segment's function and adding the results.
[0036] By progressively stepping down the luminance data in multiple steps, the LCD will
respond in a progression of decay curves as illustrated in FIG. 7. The original decay
time t
d will be extended to a corrected decay time, or t
d'. The corrected decay time t
d' is preferably shorter than the uncorrected rise time t
r, but can be approximately equal to the uncorrected rise time t
r. At some instances, the overall actual LCD response to the progressive steps of the
luminance data will overshoot the ideal curve (e.g., the first illustrated luminance
data step 60a and corresponding LCD response 62a) and at some instances the overall
actual LCD response to the progressive steps of the luminance data will undershoot
the ideal curve (e.g., the third and forth illustrated luminance data steps 60b, 60c
and corresponding LCD response 62b, 62c). However, in the aggregate over the corrected
decay time t
d', the LCD can be made to respond so that the area under the actual LCD response curve
62 is close enough to the area under the ideal decay curve 64 such that the average
luminance of a moving image stays constant enough so that perceptible flicker is minimized
or eliminated. It is noted that, in mathematical terms, some flicker will occur as
the image moves since the average luminance across the display will not be actually
constant during the corrected decay time t
d'.
[0037] Several ways of correcting the luminance data contained in the incoming video data
can be used such that the LCD's response to the output luminance data has an area
under the LCD response curve 62 approximately equal to the ideal decay curve 64. One
approach is to use mathematical approximations of the low pass filter type response
of the LCD. However, these expression are cumbersome exponential equations requiring
a high level of computing power to solve and are somewhat inaccurate of the actual
LCD response.
[0038] A more preferred approach adjusts the present input data X
n by an adjustment function, such as a slope and offset function or a percentage offset
function. The adjustment function uses linear approximations and many possible equations
may be employed to achieve the desired result.
[0039] An example slope and offset equation to reduce the current video output data Y
n in appropriate steps will be discussed first. The equation uses a difference between
the current video input data X
n and the current video output data Y
n, or X
n - Y
n. A slope weighting factor M and an offset factor B are used to adjust the output
data by taking into consideration LCD temperature and user preferences.
[0040] For the example normally white LCD, decaying luminance data is corrected. Therefore,
if the input video data is constant or increases from one frame to the next (i.e.,
X
n is greater or equal to Y
n), the next frame of output luminance data, or Y
n+1, generated in response to a present input data X
n will be the present input data X
n. It is noted that video data is clocked through the video data processor 16 somewhat
akin to the clocking of data through a flip-flop latch where the processor 30 controls
the clock function. Therefore, at any given instant the video data processor 16 will
have a present input X
n and a present output Y
n. The present input X
n and the present output Y
n are compared to derive the next output Y
n+1. In short, Y
n+1 equals X
n when (X
n-Y
n)≥0. Once Y
n+1 is output from the video data processor 16, it becomes the present output data, or
Y
n, for display on the LCD 12 and for comparison with the next incoming video data frame.
Table 1 illustrates a situation where the incoming video signal instructs a pixel
to rise in luminance by stepping the video data from a decimal equivalent of zero
to a decimal equivalent of 255.
TABLE 1
Frame |
Present Input Data (Xn) |
Present Output Data (Yn) |
Difference (Xn-Yn) |
Next Output Data (Yn+1) |
n |
0 |
0 |
0 |
0 |
n+1 |
255 |
0 |
255 |
255 |
n+2 |
255 |
255 |
0 |
255 |
n+3 |
255 |
255 |
0 |
255 |
[0041] If the input video data decreases from one frame to the next (i.e., X
n is less than Y
n), the next output video data Y
n+1 in response to a present input data X
n will be the present output data adjusted by the slope and offset correction equation.
One appropriate slope and offset function, or equation, is (M(X
n - Y
n) + B)(X
n - Y
n). M is a slope variable and B is an offset variable, each being derived by the processor
30 based on factors such as the user preferences, LCD panel temperature as is well
known in the art, the duration of the longer of the rise time t
r or the decay time t
d, the input data frame rate and the output data refresh frame rate. Therefore, when
(X
n-Y
n) is less than zero, Y
n+1 can be derived from the following equation:
![](https://data.epo.org/publication-server/image?imagePath=2001/44/DOC/EPNWA2/EP01109767NWA2/imgb0001)
[0042] It is noted that for LCDs where the decay time t
d of the pixels is longer than the rise time t
r of the pixels, Y
n+1 equals X
n when (Y
n-X
n) is greater than or equal to zero and Y
n+1 equals Y
n-(M(Y
n-X
n)+B)(Y
n-X
n) when (Y
n-X
n) is less than zero.
[0043] Using equation 1, table 2 illustrates an example situation where the incoming video
signal instructs a pixel to decay in luminance by stepping the video data from a decimal
equivalent of 255 to a decimal equivalent of 0 when M is 0.0025 and B is 1. It is
noted that the values are decimal equivalents of 8 bit digital words. Therefore, the
results of the equations are rounded down (preferably up for LCD panels where t
d is longer than t
r) to the nearest integer such that the decimal result has a binary equivalent. Once
the result of the calculation, or Y
n+1, is less than decimal 1, the output data signal will have a binary equivalent of
all zeros representing fully dark video data. As one skilled in the art will realize,
the actual time it will take for the pixel to decay to fully dark, or t
d', will be dependent upon the refresh rate of the luminance data being supplied to the
LCD 12 and on the actual response characteristics of the LCD 12.
TABLE 2
Frame |
Present Input Data (Xn) |
Present Output Data (Yn) |
Difference (Xn-Yn) |
Next Output Data (Yn+1) |
n |
255 |
255 |
0 |
255 |
n+1 |
0 |
255 |
-255 |
162 |
n+2 |
0 |
162 |
-162 |
66 |
n+3 |
0 |
66 |
-66 |
11 |
n+4 |
0 |
11 |
-11 |
0 |
n+5 |
0 |
0 |
0 |
0 |
[0044] Table 3 illustrates another example situation where the incoming video signal instructs
a pixel to decay in luminance by stepping the video data from a decimal equivalent
of 255 to a decimal equivalent of 0 when M is 0.002 and B is 1.
TABLE 3
Frame |
Present Input Data (Xn) |
Present Output Data (Yn) |
Difference Data (Xn-Yn) |
Next Output Data (Yn+1) |
n |
255 |
255 |
0 |
255 |
n+1 |
0 |
255 |
-255 |
130 |
n+2 |
0 |
130 |
-130 |
34 |
n+3 |
0 |
34 |
-34 |
2 |
n+4 |
0 |
2 |
-2 |
0 |
n+5 |
0 |
0 |
0 |
0 |
[0045] To reduce the amount of steps, or refresh frames, used to reduce the corrected luminance
data curve to zero, the process 20 can be programmed such that if the calculated next
output data Y
n+1 is less than a selected threshold, for example 15 to 80, the actual next output data
will be set to zero. This technique can be advantageous in instances when adjacent
pixels may be fully or partially illuminated. In this situation it is desirable that
the transition from fully bright to fully dark takes as little time as possible to
increase contrast between the transitioning and adjacent pixels, while also attempting
to increase the area under the actual LCD response curve to reduce flicker. More specifically,
at least a first adjusted value in response to decaying luminance data is intended
to drive the actual LCD response to have a greater luminance value than the luminance
value of the ideal curve at the time just before the next adjusted refresh data frame
is output. This will increase the area under the actual LCD response curve 62, but,
to enhance contrast, the subsequent refresh frames can be adjusted to drive the LCD
to fully dark at a faster rate than the ideal decay curve 64.
[0046] In another example, if M were selected to be 0.0025 and B were selected to be 1.25,
the decimal equivalent response of the corrected luminance data curve 60 to a decaying
input video step function (255 to 0 in one frame) would be the following series of
luminance values: 255, 98 and zero.
[0047] As an alternative corrected luminance data curve 60 generating technique, a percentage
offset equation can be used to reduce the current video output data Y
n by a selected percentage for each refresh frame. If the present input data X
n is the same or greater than the present output data Y
n, the next output data Y
n+1 will be set to the present input data X
n. However, if the present input data X
n is less than the present output data Y
n, the next output data Y
n+1 will be equal to a percentage value, or C, multiplied by the present output data
Y
n (Y
n+1 = C*Y
n). If C were selected to be 20%, or 0.2, the decimal equivalent response of the corrected
luminance data curve 60 to a decaying input video step function (255 to 0 in one frame)
would have the following series of luminance values: 255, 51, 10, 2 and zero. Alternatively
expressed, the decay luminance data can be computed using the equation Y
n+1 = Y
n + (1-C)(X
n-Y
n).
[0048] A modified percentage offset technique is particularly useful in situations where
the uncorrected rise time t
r has a duration between one and two update frame periods and the uncorrected decay
time t
d is shorter or just slightly longer than the update frame period. In the modified
arrangement, instead of allowing the luminance data to be reduced by the selected
percentage at a time, when the difference between X
n and Y
n reaches a certain threshold the video data processor 16 will set the next output
data Y
n+1 to the present input data X
n. The threshold can be set as high as the maximum decimal equivalent value of C*Y
n minus one. If C were selected to be 0.2 and the threshold set to 50, the decimal
equivalent response of the corrected luminance data curve 60 to a decaying input video
step function (255 to 0 in one frame) would have the following series of luminance
values: 255, 51 and zero. This process 20 brings the LCD response of the target pixel
to the desired luminance level by the end of two refresh frames, but the value of
C can be selected to add area under the actual decay response curve to reduce flicker.
[0049] As should be apparent, the corrected luminance data reduces the LCD response from
higher to lower luminance over the course of several refresh frames. As mentioned,
the frame rate of the output video data can be the same as the frame rate of the incoming
video data or independent of the incoming video data frame rate. For example, if the
output video data frame rate is selected to be faster than the incoming video data,
more than one luminance data value can be output to the personality module and LCD
12 before the arrival of the next incoming frame. This allows for greater flexibility
in the quantity and value of the correction luminance data points used to correct
the LCD response.
[0050] One skilled in the art will appreciate that the invention is not limited to slowing
the faster LCD response to have an area under the corrected LCD response to be approximately
equal to the area under an ideal curve where the ideal curve is the inverse of the
slower uncorrected response curve. Simple modifications can be implemented to speed
the slower LCD response to have an area under the corrected LCD response to be approximately
equal to the area under an inverse of the faster uncorrected response curve. Other
modifications can be made to slow the faster uncorrected response and to concurrently
speed up the slower uncorrected response to match the corrected responses to a preselected
ideal rising and decaying response.
[0051] FIG. 3 illustrates the functional operation of the video data processor 16. The video
data processor 16 has a subtractor 66 for determining the difference between the present
input data X
n and the present output data Y
n. The processor 30 will calculate compensation values, such as M, B and/or C, for
use by the process 20. The compensation values are adjusted based on factors such
as the user preferences, LCD panel temperature as is well known in the art, the duration
of the longer of the rise time t
r or the decay time t
d, the input data frame rate and the output data refresh frame rate. The process 20
will, in turn, derive output data values using the present input data, the difference
result as determined by the subtractor 66 and the compensation values obtained from
the processor 30. Using the example display correction techniques described thus far,
if the difference result is zero, positive and/or negative but below a certain threshold,
the process 20 will pass each frame of the input data X
n to the output of the video data processor 16 so that the next output frame Y
n+1 is the same as X
n. If, however, the difference result is negative or negative but above a certain threshold,
the process 20 will adjust the present output data value Y
n by the appropriate correction amount as derived from the adjustment equation so that
the next output frame Y
n+1 is a corrected output data value to control the LCD luminance response.
[0052] In the implementation of the video data processor 16 illustrated in FIG. 3, the video
data processor 16 is continually making calculations to derive the value of the next
output pixel value Y
n+1. Since the frame rate of the incoming video data is relatively fast (e.g., 60 Hz)
and the frame rate of the output data may be even faster, the software or hardware
logic processor implementing the video data processor 16 is preferably faster enough
to calculate the output data at the selected frame rates.
[0053] FIG. 4 illustrates an alternative arrangement for the video data processor 16 without
continual calculation of the output data. Rather, the alternative arrangement uses
an addressable memory device, such as the dual port RAM 17 having a look up table
32 to derive the output data. In this arrangement, the processor 30 not only calculates
the values used in the adjustment equations, such as M, B and or C, but precalculates
the next output data value Y
n+1 for each possible pair of present input data X
n and present output data Y
n values using the same calculation method described above. The results for Y
n+1 are stored in the look up table 32. The video frame data making up the present input
data X
n are entered into the RAM 17 through the first port 18. The video frame data making
up the present output data Y
n are entered into the RAM 17 through the second port 19. The RAM will match the present
input value X
n and the present output value Y
n to addresses in the look up table and extract the next output value Y
n+1 stored at the address matching X
n and Y
n. The next output value Y
n+1 will then be output from the RAM 17 to the personality module and LCD 12 for display.
The next output value Y
n+1 will also be sent to the frame buffer 24 and FIFO 26 to be used in the next comparison
between present input value X
n and the present output value Y
n. It is noted that the values stored in the look up table 32 can be dynamically updated
in response to changes in user preferences, temperature or the like.
[0054] As an alternative, the values of Y
n+1 stored in the look up table 32 for each possible pair of present input data X
n and present output data Y
n are derived from experimental results from monitoring an LCD panel, or a combination
of calculated results, experimental results and/or computer modeled results.
[0055] The logic and memory devices, including, but not limited to, the programmable logic
28, processor 30, video data processor 16 and the look up table 32, can be embodied
in software, in hardware or a combination of software and hardware. These devices
can be combined into one device or separate devices. If embodied in hardware, the
logic devices can be implemented as a circuit that employs any one or a combination
of technologies, including but not limited to, discrete logic circuits having logic
gates for implementing various logic functions upon an application of one or more
data signals, an application specific integrated circuit having appropriate logic
gates, a programmable gate array(s) (PGA), a field programmable gate array (FPGA),
a complex programmable logic device (CPLD), a microprocessor or other components.
Such technologies are generally well known by those skilled in the art and, consequently,
are not described in detail herein.
[0056] The block diagrams and flow chart of FIGS. 3, 4 and 6 show the architecture, functionality,
and operation of an implementation of certain aspects of the present invention. If
embodied in software, each block may represent a module, segment, or portion of code
that comprises one or more executable instructions to implement the specified logical
function(s). If embodied in hardware, each block may represent a circuit or a number
of interconnected circuits to implement the specified logical function(s). Although
the FIGS. 3, 4 and 6 illustrate a specific order of execution, it is understood that
the order of execution may differ from that which is depicted. For example, the order
of execution of two or more blocks may be altered relative to the order shown. Also,
two or more blocks may be executed concurrently or with partial concurrence. It is
understood that all such variations are within the scope of the present invention.
[0057] Although particular embodiments of the invention have been described in detail, it
is understood that the invention is not limited correspondingly in scope, but includes
all changes, modifications and equivalents coming within the spirit and terms of the
claims appended hereto.
1. A method of adjusting an input video signal intended to be displayed on a display
(12), the display (12) having at least one pixel, the pixel having a luminance rise
time and a luminance decay time, one of the rise time and the decay time being longer
than the other, the method comprising the steps of:
deriving a difference between a value of a present input luminance data value and
a value of a present output luminance data value; and
adjusting the present output luminance data value by an adjustment function to determine
a next output luminance data value when the difference indicates that the input luminance
data is changing in a prescribed direction.
2. The method according to claim 1, wherein the prescribed direction is decreasing and
the adjustment function is (M(Xn-Yn)+B)(Xn-Yn), where Xn represents the present input luminance data, Yn represents the present output luminance data, M is a slope variable and B is an offset
variable, and the slope and offset function is added to the present output luminance
data Yn to determine the next output luminance data value.
3. The method according to claim 1, wherein the adjustment function is a percentage of
the present output luminance data.
4. The method according to claim 1, wherein the prescribed direction is decreasing and
the adjustment function increases an area under a curve representing an uncompensated
display response to decreasing luminance data, and an area under a curve representing
a display response to the adjusted luminance data being approximately equal to the
area under an ideal display response curve.
5. The method according to claim 4, wherein the ideal display response curve is an inverse
of a curve representing an uncompensated display response to increasing luminance
data and the curve representing the display response to the adjusted luminance data
and the ideal curve are not equal, and a first adjusted output luminance data value
drives the display response to the adjusted luminance data to have a greater luminance
value than a luminance value of the ideal curve.
6. The method according to claim 1, further comprising the step of setting the next output
luminance data to be the same as the present input luminance data if the difference
is less than a predetermined threshold.
7. The method according to claim 1, further comprising the step of calculating values
for use in the adjustment function, the values based on one or more factors including
user preferences relating to flicker perceptibility, a duration of the rise time,
an input data frame rate, an output data frame rate, and a temperature of the display
(12).
8. The method according to claim 1, wherein the prescribed direction is increasing and
the adjustment function is (M(Yn-Xn)+B)(Yn-Xn), where Xn represents the present input luminance data, Yn represents the present output luminance data, M is a slope variable and B is an offset
variable, and the slope and offset function is subtracted from the present output
luminance data Yn to determine the next output luminance data value.
9. The method according to claim 1, wherein the prescribed direction is increasing and
the adjustment function increases an area under a curve representing an uncompensated
display response to increasing luminance data, and an area under a curve representing
a display response to the adjusted luminance data being approximately equal to the
area under an ideal display response curve.
10. The method according to claim 9, wherein the ideal display response curve is an inverse
of a curve representing an uncompensated display response to decreasing luminance
data and the curve representing the display response to the adjusted luminance data
and the ideal curve are not equal, and a first adjusted output luminance data value
drives the display response to the adjusted luminance data to have a smaller luminance
value than a luminance value of the ideal curve.
11. An apparatus for carrying out the method of any of claims 1 to 10, comprising:
a video data processor (16) having a first video data input (18), a second video data
input (19) and a video data output, the first video data input (18) connected to receive
an input video signal having a series of input luminance data values, the output providing
an output video signal having a series of output luminance data values, the second
input (19) being connected to receive the present output luminance data value, and
the video data processor (16)
determines the difference between the present input luminance data value and the present
output luminance data value and outputs the next output luminance data value.
12. The apparatus according to claim 11, wherein the video data processor (16) is an addressable
memory storing values of the next output luminance data value stored in addresses,
the addresses corresponding to a value of the present input luminance data value and
a value of the present output luminance data value.
13. The apparatus according to any of claims 11 to 12, further comprising:
a personality module (12) for receiving the output video signal; and
a liquid crystal display being addressed by the personality module and displaying
an image corresponding to the output video signal.
14. A method of adjusting an input video signal intended to be displayed on a display
(12), the display (12) having at least one pixel, the pixel having a luminance rise
time and a luminance decay time, one of the rise time and the decay time being longer
than the other, the method comprising the steps of:
inputting a present input luminance data value into an addressable memory device (17);
inputting a present output luminance data value into the addressable memory device
(17); and
outputting a next output luminance data value from one of a plurality of addresses
of the addressable memory device (17), each address corresponding to the current input
luminance data value and the current output luminance data value, and values of the
next output luminance data value stored at each address being based on an adjustment
of the present output luminance data by an adjustment function when a difference between
the present input luminance data value and the present output luminance data value
indicates that the input luminance data is changing in a prescribed direction.
15. The method according to claim 14, wherein the prescribed direction is decreasing and
the adjustment function is (M(Xn-Yn)+B)(Xn-Yn), where Xn represents the present input luminance data, Yn represents the present output luminance data, M is a slope variable and B is an offset
variable, and the slope and offset function is added to the present output luminance
data Yn to determine the next output luminance data value.
16. The method according to claim 14, wherein the adjustment function is a percentage
of the present output luminance data.
17. The method according to claim 14, wherein the prescribed direction is decreasing and
the adjustment function increases an area under a curve representing an uncompensated
display response to decreasing luminance data, and an area under a curve representing
a display response to the adjusted luminance data being approximately equal to the
area under an ideal display response curve.
18. The method according to claim 17, wherein the ideal display response curve is an inverse
of a curve representing an uncompensated display response to increasing luminance
data and the curve representing the display response to the adjusted luminance data
and the ideal curve are not equal, and a first adjusted output luminance data value
drives the display response to the adjusted luminance data to have a greater luminance
value than a luminance value of the ideal curve.
19. The method according to claim 14, further comprising the step of setting the next
output luminance data to be the same as the present input luminance data if the difference
is less than a predetermined threshold.
20. The method according to claim 14, further comprising the step of calculating values
for use in the adjustment function, the values based on one or more factors including
user preferences relating to flicker perceptibility, a duration of the rise time,
an input data frame rate, an output data frame rate and a temperature of the display
(12).
21. The method according to claim 14, wherein the prescribed direction is increasing and
the adjustment function is (M(Yn-Xn)+B)(Yn-Xn), where Xn represents the present input luminance data, Yn represents the present output luminance data, M is a slope variable and B is an offset
variable, and the slope and offset function is subtracted from the present output
luminance data Yn to determine the next output luminance data value.
22. The method according to claim 14, wherein the prescribed direction is increasing and
the adjustment function increases an area under a curve representing an uncompensated
display response to increasing luminance data, and an area under a curve representing
a display response to the adjusted luminance data being approximately equal to the
area under an ideal display response curve.
23. The method according to claim 22, wherein the ideal display response curve is an inverse
of a curve representing an uncompensated display response to decreasing luminance
data and the curve representing the display response to the adjusted luminance data
and the ideal curve are not equal, and a first adjusted output luminance data value
drives the display response to the adjusted luminance data to have a smaller luminance
value than a luminance value of the ideal curve.
24. The method according to claim 14, further comprising the step of displaying a series
of output luminance data values on a liquid crystal display.