Low latency display system and method

A novel display system includes a host and a display. In a particular embodiment the host includes a data scaler and a dual frame buffer. Frames of image data are down-scaled before being transferred to the display, and is up-scaled while being loaded into the frame buffer or the display. The down-scaled frames of image data include less data than the frames of image data. In another embodiment, the process of loading the image data into the display begins before an entire frame of data is loaded into the frame buffer. Increasingly sized portions of the image data, each corresponding to a different color field, are asserted on the display and displayed one at a time. The portions of the frame that were not previously displayed are displayed along with the initial portions of a subsequent frame.

BACKGROUND OF THE INVENTION

Field of the Invention

This invention relates generally to digital video displays, and more particularly to displays with features that improve latency.

Description of the Background Art

Liquid crystal displays typically include large arrays of individual pixels. Intensity values to be displayed by each pixel are typically represented by multi-bit data words, and each bit of the multi-bit data word is asserted on the pixel during a portion of a video frame time corresponding to the significance of the asserted bit. Each bit will cause the pixel to display either a light (“on”) or dark (“off”) intensity, depending on the values of the asserted bits. Over the frame time, an observer's eye integrates the light and dark intensities of the individual bits, to perceive an intermediate intensity value corresponding to the value of the multi-bit data word.

The process of loading each data bit onto each pixel takes some time. The latency of a display is defined as the amount of time between the receipt of a first portion of a frame of image data into a buffer of the display and the first assertion of data of that frame on the pixels of the display.

The increase in interactive display technology, such as computer monitors, video game consoles, and virtual reality headsets, among others, has created a need for systems with decreased latency. In such technology, video data must be altered as the user interacts with the device or with the world. For example, a head mounted display might display information over an object in the user's field of view. If the information is intended to be displayed in a fixed position with respect to the world, image data from the device must be constantly altered as the user moves his/her head or eyes with respect to the object. In known devices, visual artifacts (blurred or jerky object motion) are caused by the latency of the display device.

Efforts to improve latency in liquid crystal displays have not been fully satisfactory. While some have decreased latency in certain display devices, the delays remain significant in applications requiring immediate alteration of image data. For example, in known devices there is at least a one frame delay between receiving the image data and displaying it. What is needed, therefore, is a system and method for decreasing latency of a display to less than the frame time of the display.

SUMMARY

The present invention overcomes the problems associated with the prior art by providing a digital display and a novel method of writing data to the display. The invention facilitates a significant reduction in the latency of the display, by reducing the amount of data that is loaded into a display driver before a given frame is displayed. In one embodiment of the present invention, the size of frames of image data is reduced to generate frames of down-scaled image data, which contain many fewer data words than the original image data. The down-scaled image data can be loaded into the driver, and consequently displayed by the display, much quicker than the original image data.

In another embodiment, portions of frames of image data are displayed before the entire frame of image data is loaded into the display driver. For example, less than a full red color field of an initial frame is displayed after only a portion of the full initial frame of data is received. Then, less than a full green color field of the initial frame is displayed before the full initial frame of data is received. Finally, a full blue color field is displayed. The remaining two-thirds of red data and one-third of green data of the initial frame is displayed with the next frame of data, portions of which are also displayed before the entire next frame is loaded into the display driver.

An example display system includes a display, including a plurality of individual pixels, and a display driver. The display driver is coupled to receive sequential frames of image data and to assert at least a portion of the image data on the pixels of the display. The display driver also asserts at least some data corresponding to each frame of the image data on the pixels of the display within a predetermined amount of time after receiving a first portion of each frame of the image data. The predetermined amount of time is less than an amount of time required for the display driver to receive a full frame of the image data.

In an example embodiment the display system includes an image data scaler, which is electrically coupled to receive the frames of image data and operative to reduce the size of the image data. Each frame includes a particular amount of data, and in reducing the size of the image data, the image data scaler generates down-scaled frames of image data, which include less than the particular amount of data. The image data scaler also provides the down scaled frames of image data to the display driver. The display driver is electrically coupled to receive the down-scaled frames of image data from the image data scalar, and is operative to increase the size of the down-scaled frames of image data. In increasing the size of the down-scaled frames of image data, the display driver generates up-scaled frames of image data and also asserts at least some data from each of the up-scaled frames of image data on pixels of the display before receiving an amount of data corresponding to the particular amount of data.

In a particular embodiment, the down-scaled image data includes no more than 75% of the amount of image data in a frame of the originally formatted image data. In another more particular embodiment, the down-scaled image data includes no more than 50% of the amount of image data in a frame of the originally formatted image data.

In another more particular embodiment, the image data scaler is operative to generate the down-scaled data by omitting data values associated with particular pixels of the display from the originally formatted data. In yet a more particular embodiment, the image data scaler is operative to generate the down-scaled data by omitting data values associated with predefined rows of pixels of the display from the originally formatted data.

Optionally, the display system includes a controller operative to dynamically transition the image data scaler between an on-state and an off-state. For example, one embodiment includes a sensor. The controller, responsive to data from the sensor, transitions the image data scaler between the on-state and the off-state. In a more particular embodiment, the sensor is an image sensor. In another more particular embodiment, the sensor is a motion sensor. In yet another more particular embodiment, the sensor is an orientation sensor.

In another example embodiment, the display system includes an image data buffer electrically coupled to receive the sequential frames of image data. The image data buffer provides the sequential frames of image data to the display. The display driver is operative to assert a portion of a first frame of image data on a first set of the pixels of the display, and assert a portion of a second frame of image data on a second set of pixels. The portion of the second frame is asserted on the second set of pixels while the portion of the first frame is being asserted on the first set of pixels. The display is illuminated with light of a first color while the portion of the first frame and the portion of the second frame are being simultaneously asserted on the pixels of the display. The display is illuminated before the entire second frame is received in the image data buffer. In a particular embodiment, the portion of the first frame is larger than the portion of the second frame.

In another particular embodiment, the display driver asserts a second portion of the first frame on a third set of pixels, and also asserts a second portion of the second frame on a fourth set of pixels. The second portion of the second frame is asserted on the fourth set of pixels while the second portion of the first frame is being asserted on the third set of pixels. The display is illuminated with light of a second color while the second portion of the first frame and the second portion of the second frame are being simultaneously asserted on the pixels. In a more particular embodiment, the second portion of the first frame is smaller than the second portion of the second frame.

In yet another particular embodiment, the display driver asserts a third portion of the second frame on all of the pixels. The display is illuminated with light of a third color while the third portion of the second frame is asserted on all of the pixels.

In another particular embodiment, one of the first set of pixels and the second set of pixels includes one-third of the pixels of the display. The other of the first set of pixels and the second set of pixels includes two-thirds of the pixels of the display. In yet another particular embodiment, one of the first set of pixels and the second set of pixels includes a middle one-third of the pixels of the display. In another particular embodiment, one of the first set of pixels and the second set of pixels includes one-fourth of the pixels of the display, and the other of the first set of pixels and the second set of pixels includes three-fourths of the pixels of the display.

A method for displaying digital data is also described. The method includes receiving sequential frames of image data, and asserting at least some data corresponding to each frame of the image data on pixels of a display within a predetermined amount of time after receiving a first portion of each frame of the image data. The predetermined amount of time is less than an amount of time required to receive each full frame.

An example method includes receiving frames of originally formatted image data, reducing the size of the image data to generate frames of down-scaled image data, providing the frames of down-scaled image data to a display, increasing the size of the frames of down-scaled image data to generate frames of up-scaled image data, and asserting at least some data from each of the frames of up-scaled image data on pixels of the display. The originally formatted frames of image data each include a particular amount of data. The down-scaled frames of image data each include less than the particular amount of data. The data is asserted on the pixels of the display before an amount of data corresponding to the particular amount of data is received.

A particular method includes asserting at least some data of each frame of the up-scaled image data on the pixels of the display within a certain amount of time after receiving a first portion of each frame of the down-scaled image data. The certain amount of time is less than an amount of time required for the display to receive a frame of the originally formatted data.

In another particular method, the step of reducing the size of the image data to generate frames of down-scaled image data includes generating frames of down-scaled image data each including no more than 75% of the amount of image data in a frame of the originally formatted image data. In a more particular embodiment, the step of reducing the size of the image data to generate frames of down-scaled image data includes generating frames of down-scaled image data including no more than 50% of the amount of image data in a frame of the originally formatted image data.

In yet another particular method, the step of reducing the size of the image data to generate frames of down-scaled image data includes omitting data values associated with particular pixels of the display from the originally formatted data. In another particular method, the step of reducing the size of the image data to generate frames of down-scaled image data includes omitting data values associated with predefined rows of pixels of the display from the originally formatted data.

In yet another particular method, the step of reducing the size of the image data includes reducing the size of the image data when a predefined condition is met and not reducing the size of the image data when the predefined condition is not met. Particularly, the step of reducing the size of the image data includes receiving data from a sensor and determining whether the condition is met based at least in part on the data from the sensor. In an even more particular method, the step of receiving data from a sensor includes receiving data from an image sensor. In another more particular method, the step of receiving data from a sensor includes receiving data from a motion sensor. In yet another more particular method, the step of receiving data from a sensor includes receiving data from an orientation sensor.

Another example method includes the steps of asserting a portion of a first frame of image data on a first set of the pixels of the display and asserting a portion of a second frame of image data on a second set of pixels. The portion of the second frame is asserted on the second set of pixels while the portion of the first frame is being asserted on the first set of pixels. The method also includes illuminating the display with light of a first color while the portion of the first frame and the portion of the second frame are being simultaneously asserted on the pixels. The display is illuminated before the entire second frame is received in the image data buffer. In a particular method, the portion of the first frame is larger than the portion of the second frame.

Another particular method includes the steps of asserting a second portion of the first frame on a third set of pixels and asserting a second portion of the second frame on a fourth set of pixels. The second portion of the second frame is asserted on the fourth set of pixels while the second portion of the first frame is being asserted on the third set of pixels. The method also includes illuminating the display with light of a second color while the second portion of the first frame and the second portion of the second frame are being simultaneously asserted on the pixels of the display. In a more particular method the second portion of the first frame is smaller than the second portion of the second frame.

Yet another particular method includes the steps of asserting a third portion of the first frame on a fifth set of pixels and asserting a third portion of the second frame on a sixth set of pixels. The third portion of the second frame is asserted while the third portion of the first frame is being asserted on the fifth set of pixels. The method also includes illuminating the display with light of a third color while the third portion of the first frame and the third portion of the second frame are being simultaneously asserted on the pixels of the display.

In an even more particular method, the third portion of the first frame includes 0% of the first frame and the third portion of the second frame includes 100% of the second frame. Additionally, the fifth set of pixels includes none of the pixels of the display and the sixth set of pixels includes all of the pixels of the display.

In another particular method, one of the first set of pixels and the second set of pixels includes one-third of the pixels of the display. The other of the first set of pixels and the second set of pixels includes two-thirds of the pixels. In yet another particular method, one of the first set of pixels and the second set of pixels includes a middle one-third of the pixels. In another particular method, one of the first set of pixels and the second set of pixels includes one-fourth of the pixels, and the other of the first set of pixels and the second set of pixels includes three-fourths of the pixels.

Another example method for displaying digital video data is also described. The method includes loading sequential frames of video data into a data buffer. Each frame of video data includes a plurality of color fields. The method also includes asserting a first portion of a first color field of a first frame of the video data onto a display and illuminating the display with a first colored light corresponding to the first color field. The first portion of the first color field is asserted after the first portion of the first color field is loaded into the data buffer and before an entirety of the first frame is loaded. The method also includes asserting a first portion of a second color field onto the display and illuminating the display with a second colored light corresponding to the second color field. The first portion of the second color field is asserted after the first portion of the second color field is loaded into the data buffer and before the entirety of the first frame is loaded. The method further includes asserting a first portion of a third color field onto the display and illuminating the display with a third colored light, corresponding to the third color field. The first portion of the third color field is asserted after the first portion of the third color field is loaded into the data buffer.

Additionally, the method includes asserting a first portion of the first color field of a second frame of video data and a remaining portion of the first color field of the first frame onto the display and illuminating the display with the first colored light. The first portion and the remaining portion are asserted after the first portion of the first color field of the second frame is loaded into the data buffer and before an entirety of the second frame is loaded. The method further includes asserted a first portion of the second color field of the second frame and a remaining portion of the second color field of the first frame onto the display and illuminating the display with the second colored light. The first portion and the remaining portion are asserted after the first portion of the second color field of the second frame of video data is loaded into the data buffer and before the entirety of the second frame is loaded. Additionally, the method includes asserting a first portion of a third color field of the second frame and any remaining portion of the third color field of the first frame into the display and illuminating the display with the third colored light. The first portion and the remaining portion are asserted after the first portion of the third color field of the second frame is loaded into the data buffer.

DETAILED DESCRIPTION

The present invention overcomes problems associated with the prior art, by providing a system and method for decreasing display latency that includes manipulating image data and the way it is written to the display. In the following description, numerous specific details are set forth (e.g., the specific order in which portions of data are written, the structure of the data buffer, etc.) in order to provide a thorough understanding of the invention. Those skilled in the art will recognize, however, that the invention may be practiced apart from these specific details. In other instances, details of well-known digital image display practices (e.g., planarization, routine optimization, etc.) and components have been omitted, so as not to unnecessarily obscure the present invention.

FIG. 1shows a display system100to include a host102, a display104, an image/video data source106and a sensor108. Host102receives image data from data source106(e.g., a static memory source or a video input) and sensor108(e.g., an image sensor or a motion/orientation sensor). Host102processes the image data and writes it to display104via a data bus110. Additionally, host102can alter video data written to display104based on data received from sensor108. For example, if a displayed object needs to move based on data from sensor108, host102alters the video data corresponding to the displayed object based on the data received from sensor108. Control signals are communicated between host102and display104via a control bus112.

In alternate embodiments, host102can be any of a number of various devices. For example, host102can be a cell phone, a head mounted display, or any other similar device. Additionally, host102can have display104, data source106, and sensor108embodied therein. Consequently, host102can include any number of devices (e.g. cameras, microphones, motion/orientation sensors, etc.), whether or not they are explicitly stated. Additionally, host102can serve any number of functions concurrently with the display functions described in this disclosure.

In addition, system100can include any combination of various devices. For example, in alternate embodiments, system100can include a cell phone (host102), with data source106embodied therein, and a head mounted display with display104and sensor108embodied therein. In such embodiments control bus112can be replaced with any applicable datalink, including, but not limited to, a short range wireless (e.g., Bluetooth®) connection, a wired connection (e.g., a universal serial bus (USB)), and so on.

FIG. 2shows some relevant functional components of host102, including a data scaler200, and a video controller202. Data scaler down-scales the image data from data source106. For example, in this particular embodiment, data scaler200deletes data words corresponding to a predefined portion of the pixels from the received image data. More particularly, data scaler200deletes the pixels corresponding to every other row or column of pixels. Data scaler200sends the down-scaled image data, via data bus110, to display104, where it will be up-scaled and displayed.

Video controller202receives data from sensor108and uses that data to control the function of data scaler200, via a control bus204. For example, as a user moves his/her head (or eye direction) relative to his/her surroundings, video controller202sends control signals to data scaler200to initiate the down-scaling of image data in order to improve display latency. On the other hand, when a user's head or eye direction remains fixed relative to his/her surroundings, video controller202sends control signals to data scaler200to suspend the down-scaling of image data in order to improve image resolution. Additionally, video controller204sends control signals to display104via a control bus112. Control signals sent to display104include signals to coordinate video data transfer, and a signal to indicate the state of data scaler200.

FIG. 3shows the functional components of display104, including a controller300, a data load register302, a data buffer304, a pixel array306, and a light source308. Controller300receives image data from host102, via a data bus110, and sends image data and control instructions to data load register302, via a data bus310and a control bus312, respectively. Controller300planarizes the image data and loads it into data load register302in rows, by asserting control signals control bus312.

Controller300also coordinates the transfer of data from data load register302into data buffer304, via a data bus314. When a full row of data is loaded into data load register302, controller300asserts control signals (e.g., a row output signal) on control bus312and control signals (e.g., a row address and a row enable signal) on control bus316. These control signals cause a row of data to be asserted by data load register302onto data bus314and also cause data buffer304to latch the asserted row of data into data buffer304.

When data scaler200is functioning, each row of down-scaled video data is latched into data buffer304twice, resulting in up-scaled data being written to data buffer304. For example, if the down-scaled video data includes only the odd rows of video data, then each odd row of video data will be written into its appropriate position in data buffer304and also into an adjacent position for an even numbered row of video data. In other words, each odd numbered row of video data will be substituted for an adjacent even numbered row of video data. Controller300generates the up-scaled frame of video data by duplicating the rows of data in the down-scaled image data.

By latching each row of data into data buffer304twice, the amount of time required to load an entire frame of data is reduced by approximately one-half. Because controller300can begin asserting the data in data buffer304on pixel array306as soon as the frame of up-scaled video data is latched into data buffer304, the latency period is half of the full latency period, and a half-frame time decrease in latency is sufficient to prevent visual artifacts in the displayed images.

Data buffer304contains enough storage space to hold two frames of image data. This space is partitioned into two halves, which are alternately written to and read from (double buffer scheme). After a frame of image data is written to data buffer304, that data is written to pixel array306, via a data bus318, while a subsequent frame is being written to data buffer304, via data bus314. Once the first frame is displayed, the subsequent frame of data is then written to pixel array306, via data bus318, while yet another frame is being written to data buffer304. This process is repeated for as long as image data is received from host102.

Based on the image data asserted from data buffer304, pixel array306modulates and reflects light from light source308to a display screen (not shown), through optics (not shown), or directly into a user's eye. Light source308is an RGB light source operative to sequentially emit red, green or blue light onto pixel array306, in order to create colored images. Light source308can include, for example, light emitting diodes, lasers, or any other suitable colored light sources.

Controller300provides control signals to light source308, via a control bus322, in order to coordinate the function of light source308and pixel array306. Colored images are generated by displaying separate images in three different colors in quick succession. The human eye blends the three colors, and the perceived color of any given pixel is a function of the intensity of that pixel in each of the three colors. Controller300coordinates the flashing on of each colored light of light source308with the assertion of corresponding data onto pixel array306.

FIG. 4is a diagram illustrating the partitioning of image data in data buffer304. In this example, data buffer304is partitioned into six separate portions: a first red portion400(1), a second red portion400(2), a first green portion402(1), a second green portion402(2), a first blue portion404(1), and a second blue portion404(2). Portions400(1),402(1), and404(1) together correspond to a first half406(1) of data buffer304, which holds one frame of image data. Portions400(2),402(2), and404(2) together correspond to a second half406(2) of data buffer304, which also holds another frame of image data. The portions of halves406(1) and406(2) are labeled with “Frame1” and “Frame2” for illustrative purposes only. An initial frame of image data can be written to either of halves406(1) or406(2). The labels are intended to illustrate that two consecutive frames will each be placed into one of halves406(1) and406(2), but not to suggest that either of the frames should be written to one or the other halves, specifically.

Red, green and blue image data of a particular frame is written to portions400(1),402(1), and404(1), or to portions400(1),402(2), and404(2). Typically, image data is received in 24-bit data words, each corresponding to a particular pixel. Every 24-bit data word is separated into 8 red bits, 8 green bits, and 8 blue bits, which are written to portions400(1) or400(2),402(1) or402(2), and404(1) or404(2), respectively. When data scaler200is functioning, some incoming data bits will be written more than once. Which data bits are duplicated depends on which data bits were originally omitted in down-scaling the image data. For example, if the originally formatted data was down-scaled by omitting data corresponding to every other row of pixels, each row of the down-scaled data would be duplicated as it is written into image data buffer304. This method allows down-scaled data to be written to image data buffer304in half the time as compared to the originally formatted data. Each frame of this new, up-scaled data fills one of halves406(1) or406(2).

The data stored in each portion of buffer304corresponds to a single color field, associated with one of the three colors that make up the frame. Because the three color fields that make up a single frame are displayed one at a time, data is written to pixel array306from only one of the portions at a time. Data is written from one of halves406(1) or406(2), while data is written to the other of halves406(1) or406(2). By writing frames to alternating halves of data buffer304, unnecessary delays are avoided, and latency is minimized.

FIG. 5is a diagram illustrating the improved latency provided by the example embodiment of the present invention. The diagram is separated into a first frame500(1) and a second frame500(2), which both include red, green, and blue data. Because only half of the data is used, it only takes half of frame1to load first frame500(1) begin displaying a red output field502(1). A green output field504(1) and a blue output field506(1) are displayed immediately following output field502(1). By the time output field506(1) is displayed, second frame500(2) will have been loaded, and a red output field502(2) can displayed. A green output field504(2) and a blue output field506(2) are displayed immediately following output field502(2). This process continues with new frames until there is no more image data left to display. There is no delay between consecutive frames, because of the utilization of multiple data buffers.

FIG. 6shows an alternate host600, including a video controller602. Video controller602receives image data from a data source (not shown) and sends that image data to a display700(FIG. 7), via a data bus604. Video controller602also receives data from a sensor (not shown) and provides control instructions, based at least in part on the data from the sensor, to display700, via a control bus606. For example, video controller602can retrieve certain image data from the data source depending on input from the sensor. In this example, video controller602can determine, from the sensor input, a proper perspective of a digital object to be displayed, and then, based on that perspective, retrieve image data from the data source corresponding to that perspective. Alternatively, input from the sensor can be provided directly to the data source, which can use the sensor input to determine what image data to provide to video controller602.

FIG. 7is a block diagram of an alternate display700, including a controller702, a data load register704, a data buffer706, a pixel array708, and a light source710. Controller702receives image data from host600via data bus604. Controller702sends image data and control signals to data load register704via a data bus712and a control bus714, respectively. The image data is loaded into data load register704and arranged in rows, based on control signals from controller702. Based on control signals from host600, via control bus112, controller702coordinates the transfer of rows of data from data load register704and into data buffer706, via a data bus716. When a full row of data is loaded into data load register704, controller702asserts control signals (e.g., row output signals) onto control bus714, and asserts control signals (e.g., a row address and a row enable signal) onto control bus718, causing data buffer706to latch the row of data being asserted on data bus716by data load register704.

Data buffer706contains enough storage space to hold two frames of image data. This space is partitioned into two halves and is used as a dual buffer. However, controller702can transfer data into one portion of a particular half of data buffer706, while transferring data out of another portion of the same half of data buffer706. After controller702writes a first portion of an initial frame of image data into data buffer706, controller702asserts control signals (e.g., a row address and a row output signal) on control bus718and control signals (e.g., a row address and a row enable signal) on control bus722, to transfer that data to pixel array708via a data bus720, while the remaining portion of the initial frame continues to be transferred into data buffer706via data bus716.

Only a portion of the initial frame is displayed in some of the color fields, and as more and more of the initial frame is written to data buffer706, the portion of the initial frame data displayed in each color field increases. While the third color field of the first frame is displayed, a first portion of a subsequent frame is written to data buffer706. The first portion of the subsequent frame is then displayed along with the previously un-displayed portion of the first color field of the initial frame. As more and more of the subsequent frame is written to data buffer706, the portion of the initial frame displayed in each color field decreases and the portion of the subsequent frame displayed increases. This process is repeated for as long as image data is received from host600.

Because the time between frames is small (a display working at 60 frames-per-second must display a frame every 60thof a second), the human eye cannot detect that two portions of separate images are being displayed at once. The frames blend together smoothly. Optionally, the initial portion of image data that is displayed can consist of the middle of the frame. Because the eye is generally focused near the middle of the screen, this alternative further increases the perceived smoothness of the video and reduces the perception of any field tearing. This method will be explained in more detail as part of the description ofFIG. 9B.

As briefly described above, controller702also coordinates the transfer of data from data buffer706to pixel array708. For example, controller702asserts control signals on control bus718, to cause data buffer706to assert a row of image data onto data bus720. Controller702also asserts control signals onto control bus722, causing pixel array708to latch the row of image data being asserted on data bus720by data buffer706. In general, controller702asserts row addresses, row enable signals, and any other necessary control signals onto control buses718and722to cause the image data to be asserted on the appropriate pixels of pixel array708in the order and sequences described herein.

Based on the image data received from data buffer706, pixel array708modulates and reflects light from light source710to a display screen (not shown), through optics (not shown), or directly into a user's eye. Light source710is an RGB light source operative to selectively emit red, green and blue light onto pixel array708, in order to create a series of colored images.

Controller702provides control signals to light source710, via a control bus724, in order to coordinate the function of light source710and pixel array708. Colored images are generated by displaying separate images in three different colors in quick succession. The human eye blends the three colors, and the perceived color of any given pixel is a function of the intensity of that pixel in each of the three colors. Controller702coordinates the emission of each colored light of light source710with the assertion of corresponding data on pixel array708.

FIGS. 8A-8Gshow two sequential frames of data being written to and read from data buffer706. Each figure shows a separate time period, and the time difference between each period is equal to the time required for a third of a frame of image data to be written to data buffer706. Data buffer706is partitioned into a first red portion, a first green portion, a first blue portion, a second red portion, a second green portion, and a second blue portion. Together, the first red portion, the first green portion, and the first blue portion store a complete frame of video data. Similarly, the second red portion, the second green portion, and the second blue portion store another complete frame of video data. Each portion is additionally divided into thirds (labeled “1stThird of Red Portion”, “2ndThird of Green Portion”, etc.) to facilitate clear explanation of the display driving schemes described herein.

FIG. 8Ashows RGB data being written to data buffer706during a first time period. As previously explained, the received video data includes multiple bits of data associated with each of the three colors: red, green, and blue. One-third of the data of a first frame (represented by slashes) is being written to the first third of each of the associated first colored portions: red, green, and blue. BecauseFIG. 8Arepresents the writing of an initial frame of image data, nothing is read from data buffer706during the first time period.

FIG. 8Bshows data being written to and read from data buffer706during a second time period. A second third of the data of the first frame is being written to the second third of each of the first colored portions. Because the first third of the first frame was written into data buffer706during the first time period, the first third of the red color field of the first frame can be transferred to pixel array708and displayed during the second time period. Initially displaying only the first third of the image data facilitates a significant reduction in the latency period.

FIG. 8Cshows data being written to and read from data buffer706during a third time period. The final third of the data of the first frame is being written to the third of each of the first colored portions. Because the second third of the first frame was written during the second time period, the first two-thirds of the green color field of the first frame can be transferred to pixel array708and displayed during the third time period.

FIG. 8Dshows data being written to and read from data buffer706during a fourth time period. A first third of the data of the second frame is being written to the first third of each of the second colored portions. Because the third of the first frame was written during the third time period, the entire blue color field of the first frame can be transferred to pixel array708and displayed during the fourth time period.

FIG. 8Eshows data being written to and read from data buffer706during a fifth time period. A second third of the data of the second frame is being written to the second third of each of the second colored portions. Because the first third of the second frame was written during the fourth time period, the first third of the red color field of the second frame and the previously un-displayed two-thirds of the red color field of the first frame are transferred to pixel array708and displayed as a single red color field during the fifth time period. Displaying portions of different frames at the same time allows all of the video data to be displayed, and the latency is reduced to only one-third of the latency of conventional systems.

FIG. 8Fshows data being written to and read from data buffer706during a sixth time period. The final third of the data of the second frame is being written to the third of each of the second colored portions. Because the second third of the second frame was written during the fifth time period, the first two-thirds of the green color field of the second frame and the previously un-displayed third of the green color field of the first frame are transferred to pixel array708and displayed as a single green color field during the sixth time period.

FIG. 8Gshows data being written to and read from data buffer706during a seventh time period. A first third of the data of a third frame (represented by “X”s) is being written to the first third of each of first colored portions800(1),802(1), and804(1). Because the third of the second frame was written into data buffer706during the sixth time period, the entire blue color field of the second frame is transferred to pixel array708and displayed during the seventh time period. As data of previous frames is overwritten by new frame data in data buffer706, the process of combining portions of separate frames and displaying them as single color fields continues. For example, data from the second frame and the third frame will be combined into a single red color field and a single green color field. The same will happen for data from the third frame and the fourth frame and so on.

Those skilled in the art will recognize that the division of the data into thirds is not an essential element of the present invention. For example, the present invention may be practiced by displaying frames in quarters instead of thirds. Instead of displaying the blue portions of frame data in individual blue color fields, the blue portions would be split into three quarters of new frame data and one quarter of old frame data. Likewise, the green fields would be split in half, and the red fields would consist of one quarter of new frame data and three quarters of old frame data. This implementation would further decrease the latency, and is explained in more detail with reference toFIG. 9C. As another alternative, a smaller frame buffer, only large enough to hold a single frame of image data, can be used. Utilizing a smaller frame buffer would require over-writing old frame data immediately after it is written to the pixel array708.

FIG. 9Ais a diagram illustrating improved latency of the presently described example embodiment. The diagram is separated into frames900(1) and900(2), which both include red, green, and blue data. Because only a third of the data from frame900(1) is written to data buffer704before a first red output field902(1) is displayed, the latency is reduced to one-third of the frame time.

A first green output field904(1) and a first blue output field906(1) are displayed immediately following the display of output field902(1). Output field902(1) includes a red portion908(1) and a prior data portion910(1). Prior data portions include data from a prior frame or, in the case of an initial frame, random data from the data buffer706that is not displayed. Similarly, output field904(1) includes a green portion912(1) and a prior data portion914(1), and output field906(1) includes a blue portion914(1). A second red output field902(2) is displayed following the display of output field906(1). Output field902(2) includes a red portion908(2) of data from frame900(2), and a red portion910(2) of data from frame900(1). A second green output field904(2), including a green portion908(2) and a green portion910(2), is displayed following the display of output field902(2). Green portion908(2) includes data from frame900(2) and green portion910(2) includes data from frame900(1). A second blue output field906(2) is displayed following the display of output field904(2). Output field906(2) includes data from frame900(2). The process of displaying portions of frames as they are written into data buffer706continues until there is no more video data to display.

FIG. 9Bis a diagram illustrating improved latency of another example method of the present embodiment of the present invention. The diagram is again separated into frames900(1) and900(2). However, instead of displaying the top third of output field902(1) first, the middle third is displayed first. In this example method, host600provides the middle rows of data to controller702first, then the top rows, and then the bottom rows, which is unconventional. As in the previously described embodiment, the output fields corresponding to the second frame consist of portions of the first frame of data as well as portions of the new frame of data, but in this method, the top and bottom thirds of the display will consist of the previous frame data in output field902(2). This method is advantageous, because it improves the perceived smoothness of the video data. Because the eye is most often focused on the middle of a screen, it will be less disruptive to display new data on that part of the screen first. This example method differs from the previously described method only in the output of the red fields.

FIG. 9Cis a diagram illustrating the improved latency of yet another method of the present invention. The diagram is again separated into frames900(1) and900(2). However, instead of displaying output field902(1) after a third of the image data is written to data buffer706, it is displayed after only a quarter of the first frame of image data is received. Output field902(1) is comprised of a red portion918(1) and a prior data portion920(1). Red portion918(1) makes up a quarter of output field902(1) and prior data portion920(1) makes up the remaining three quarters. Output field904(1) is displayed after the next quarter of the first frame of image data is received into data buffer704and includes a green portion922(1) and a prior data portion924(1). Green portion922(1) makes up half of output field904(1) and prior data portion924(1) makes up the remaining half. Output field906(1) is written after the next quarter of the first frame of data is written to data buffer706and includes a blue portion926(1) and a prior data portion928(1). Blue portion926(1) makes up three fourths of output field906(1) and prior data portion928(1) makes up the remaining portion.

Output fields902(2),904(2), and906(2) are displayed in succession following the display of output field906(1) and a blank (off) time. Output field902(2) includes a red portion918(2), which includes image data from a subsequent frame of data, and a red portion920(2), which replaces prior data portion920(1) and includes previously un-displayed image data from the previous frame. Output field904(2) includes a green portion922(2), which includes image data from the subsequent frame, and a green portion924(2), which replaces prior data portion924(2) and includes image data from the previous frame. Output field906(2) includes a blue portion926(2), which is comprised of image data from the subsequent frame, and a blue portion928(2), which replaces prior data portion928(1) and is comprised of image data from the previous frame. The process of displaying portions of frames as they are written into data buffer706continues until there is no more video data to display.

FIG. 9Dis a diagram illustrating the improved latency of yet another method of the present invention. The method ofFIG. 9Dis similar to that ofFIG. 9Cin that the latency is approximately 25% of a frame time. However, the method ofFIG. 9D, introduces a fourth output field930, which uses the blank time in the method ofFIG. 9C. In this example, the fourth color is white, and output filed930(1) includes a white portion932(1) from frame901(1). Similarly, output filed930(2) includes a white portion932(2) from frame901(2). The use of white as the fourth color provides additional advantages including, but not limited to, increasing the dynamic range of the display. Optionally, the use of a fourth color (e.g., other than white) will increase the color gamut of the display and can facilitate the display of higher color gamut input.

The use of the fourth output field930facilitates options other than the use of another color field. For example, the fourth color field can be used to display data of one (e.g. green) of the original three colors twice for each frame to implement an RGBG scheme. When the same green data is displayed twice in a frame, the intensity of the green light source is dimmed to achieve the proper over all intensity of the green field. As yet another option, the fourth field can facilitate the display of additional numbers of bits for one of the colors, in order to accommodate higher resolution input data.

FIG. 10is a flowchart summarizing an example method1000for displaying sequential frames of image data. In a first step1002, sequential frames of image data are received. Then, in a second step1004, at least some data corresponding to each frame of the image data is asserted on pixels of a display. The data is asserted after receiving a first portion of each frame of data and before receiving the entire portion of the second frame of data. In a third step1006, it is determined whether there is more data to be received. If there is more data to be received, method1000returns to step1002. If there is no more data to be received method1000ends.

FIG. 11is a flowchart summarizing an example method1100for displaying sequential frames of image data. In a first step1102, frames of originally formatted image data are received. Next, in a second step1104, the size of the image data is reduced to generate frames of down-scaled image data. There are several possible methods for executing step1104. One such method is to omit image data corresponding to predetermined rows or columns of pixels on a display. This method can include omitting every other row or column, every third row or column, and so on. In a third step1106, the frames of down-scaled image data are provided to a display. Next, in a fourth step1108the size of the frames of down-scaled image data is increased to generate up-scaled image data. Finally, in a fifth step1110, at least some data from the frames of up-scaled image data is asserted on the pixels of the display.

FIG. 12is a flow chart summarizing an example method of performing step1104of method1100. This step can be implemented with or without other previously described methods. In a first step1200, a condition is defined. Then, in a second step1202, data is received from a sensor. Next, in a third step1204, it is determined whether or not the condition of step1200is met based at least in part on the data from the sensor. If the condition is met, the method proceeds to a fourth step1206, during which the size of the image data is reduced and the method ends. If the condition is not met, the method proceeds to a fifth step1208, during which the size of the data is not reduced and the method ends.

In the present embodiment, the data received from the sensor makes up at least part of the criteria for determining whether or not the condition of step1200is met. Those skilled in the art will recognize, however, that there are a number of possible criteria for making the determination of step1204. For example, the determination can be made based solely on the image data. Alternatively, the determination can be made based on user input. Ultimately, any criteria that bear upon the quality of the displayed video can be used to make the determination of step1204.

FIGS. 13A-13Care a flow chart showing another example method1300for displaying sequential frames of image data. In a first step1302(FIG. 13A), a portion of a first frame of image data is asserted on a display. Next, in a second step1304, a portion of a subsequent frame is asserted on the display while the portion of the first frame of data is being asserted. Then, in a third step1306, the display is illuminated with light of a first color while the portion of the first frame of data and the portion of the subsequent frame of data are simultaneously asserted on the pixels of the display and before the subsequent frame of data is completely received in a data buffer. Next, in a fourth step1308(FIG. 13B), a second portion of the first frame of data is asserted on the display. Then, in a fifth step1310, a second portion of the subsequent frame of data is asserted on the display while the second portion of the first frame of data is being asserted. Next, in a sixth step1312the display is illuminated with light of a second color while the second portion of the first frame of data and the second portion of the subsequent frame of data are simultaneously asserted on the display. Then, in a seventh step1314(FIG. 13C), a third portion of the first frame of data is asserted on the display. Next, in an eighth step1316, a third portion of the subsequent frame of data is asserted on the display while the third portion of the first frame of data is asserted. Finally, in a ninth step1318, the display is illuminated with light of a third color while the third portion of the first frame of data and the third portion of the subsequent frame of data are simultaneously asserted.

FIGS. 14A-14Care a flow chart summarizing another example method1400for displaying sequential frames of image data. In a first step1402(FIG. 14A), sequential frames of video data are loaded into a data buffer, each frame including a plurality of color fields. Next, in a second step1404, a first portion of a first color field of a first frame of data is asserted onto pixels of a display after the first portion of the first color field is loaded into the data buffer and before the entire frame of data is loaded into the data buffer. Then, in a third step1406, the display is illuminated with light of a first color, corresponding to the first color field. Next, in a fourth step1408, a first portion of a second color field is asserted onto the pixels of the display after the first portion of the second color field is loaded into the data buffer and before the entire frame of data is loaded into the data buffer. Then, in a fifth step1410(FIG. 14B), the display is illuminated with light of a second color, corresponding to the second color field. Next, in a sixth step1412, a first portion of a third color field is asserted onto the pixels of the display after the first portion of the third color field is loaded into the data buffer. Then, in a seventh step1414, the display is illuminated with light of a third color, corresponding to the third color field. Next, in an eighth step1416, a first portion of the first color field of a subsequent frame of data and a remaining portion of the first color field of the first frame of data are asserted onto the pixels of the display after the first portion of the first color field of the subsequent frame of data is loaded into the data buffer and before the entire subsequent frame of data is loaded into the data buffer. Then, in a ninth step1418(FIG. 14C), the display is illuminated with light of the first color. Next, in a tenth step1420, a first portion of the second color field of the subsequent frame of data and a remaining portion of the second color field of the first frame of data are asserted onto the pixels of the display after the first portion of the second color field of the subsequent frame of data is loaded into the data buffer and before the entire subsequent frame of data is loaded into the data buffer. Then, in an eleventh step1422, the display is illuminated with light of the second color. Next, in a twelfth step1424, a first portion of a third color field of the subsequent frame of data and a remaining portion (if any) of the third color field of the first frame of data are asserted onto the pixels of the display after the first portion of the third color field of the subsequent frame of data is loaded into the data buffer. Finally, in a thirteenth step1426, the display is illuminated with light of the third color.

The description of particular embodiments of the present invention is now complete. Many of the described features may be substituted, altered or omitted without departing from the scope of the invention. For example, alternate data buffers, may be substituted for the data buffers described inFIGS. 3 & 7. Specifically, two smaller data buffers can be used in place of the single data buffer as described. Additionally, only a single smaller data buffer can be used in conjunction with appropriate data transfer techniques. As another example, the new portions of each frame can be displayed from the bottom of the pixel array first, instead of from the top. Alternately, the new portions can be displayed from the middle of the pixel array first. As yet another example, down-scaled image data can be stored in the frame buffer and up-scaled as it is transferred to the display pixels, as opposed to being up-scaled as it is written into the frame buffer. These and other deviations from the particular embodiments shown will be apparent to those skilled in the art, particularly in view of the foregoing disclosure.