Method and display device

The overdrive circuitry in HMD devices addresses the challenge of precise overdrive voltage application in VR applications by using position-based voltage determination and progressive overdrive techniques, resulting in reduced visual artifacts and improved virtual reality experiences.

JP7660735B2Active Publication Date: 2025-04-11SYNAPTICS INC
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
JP2024047609
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2018-08-29
Filing Date
2024-03-25
Publication Date
2025-04-11
Estimated Expiration
2039-04-15

AI Technical Summary

Technical Problem

In head-mounted display (HMD) devices, particularly in virtual reality (VR) applications, the accurate application of overdrive voltage to pixel elements is crucial to maintain a seamless virtual environment. However, the existing overdrive technologies struggle to provide precise overdrive due to the dynamic nature of HMD displays, leading to visual artifacts like ghosts and motion blur.

Method used

The proposed solution involves an overdrive circuitry that determines the appropriate voltage to be applied to each pixel element based on its position in the pixel array. This circuitry uses a lookup table repository and an overdrive voltage generator to calculate the necessary voltage, which can vary depending on the row position of the pixel element. Additionally, the solution incorporates progressive overdrive techniques, where the amount of overdrive applied increments with each successive row, ensuring that all pixel elements reach their target values within the display period.

Benefits of technology

This approach effectively reduces visual artifacts and maintains a high-quality virtual reality experience by ensuring precise and timely transitions of pixel elements, even in dynamic HMD environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007660735000002
    Figure 0007660735000002
  • Figure 0007660735000003
    Figure 0007660735000003
  • Figure 0007660735000004
    Figure 0007660735000004
Patent Text Reader

Abstract

To provide a method and device for making precise an amount of overdrive applied to each pixel element of a display.SOLUTION: A display device 200 comprises a pixel array 210, and an overdrive circuit portion 240 for determining a current pixel value and a target pixel value for a first pixel element of the pixel array 210. The overdrive circuit portion 240 is further configured to determine first voltage to be applied to the first pixel element to cause the first pixel element to transition from the current pixel value to the target pixel value by a first time. The first voltage is determined at least in part on the basis of a position of the first pixel element in the pixel array 210. The display device 200 further comprises a data driver 212 for applying the first voltage to the first pixel element before the first time and a backlight for illuminating the pixel array 210 at the first time.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present embodiments relate generally to liquid crystal displays (LCDs), and more particularly to overdrive techniques for LCD devices. [Background technology]

[0002] A head-mounted display (HMD) device is configured to be worn or attached to a user's head. An HMD device comprises one or more displays positioned in front of one or both of the user's eyes. An HMD may display images (e.g., still images, sequential images, and / or video) from an image source overlaid with information and / or images from the user's surroundings (e.g., captured by a camera), for example, immersing the user in a virtual world. HMD devices find application in medical, military, gaming, aviation, engineering, and various other professional and / or entertainment industries.

[0003] HMD devices may use liquid-crystal display (LCD) technology in their displays. An LCD display panel may be formed from an array of pixel elements (e.g., liquid crystal cells) arranged in rows and columns. Each row of pixel elements is connected to a respective gate line, and each column of pixel elements is connected to a respective data (or source) line. A pixel element may be accessed (e.g., updated with new pixel data) by driving a gate line with a relatively high voltage to "select" or activate a corresponding row of pixel elements, and by driving a corresponding data line with another voltage to update the selected pixel element. The voltage levels of the data lines may depend on the desired color and / or intensity of the target pixel value. Thus, an LCD display panel may be updated by "scanning" the rows of pixel elements in succession (e.g., one row at a time) until each row of the pixel array has been updated.

[0004] Voltages applied to the data lines change the color and / or brightness of a particular pixel element by changing (e.g., rotating) its physical state. As such, the pixel element may require time to stabilize to the new state or position. The stabilization time for a particular pixel element may depend on the degree of color and / or brightness change. For example, a transition from a maximum brightness setting (e.g., a "white" pixel) to a minimum brightness setting (e.g., a "black" pixel) may require a longer stabilization time than a transition from an intermediate brightness setting to another intermediate brightness setting (e.g., from one shade of "gray" to another shade of "gray"). Delays in pixel transitions may result in ghosting and / or other visual artifacts appearing on the display if the stabilization time of the pixel element is slower than the time between successive frame updates.

[0005] LCD overdrive is a technique for accelerating pixel transitions when updating an LCD display. In particular, pixel elements are applied with a voltage higher than the target voltage for a desired color and / or brightness level. The higher voltage rotates the liquid crystals faster, thus allowing them to reach the target brightness in a shorter time. In fixed LCD displays (e.g., televisions, monitors, mobile phones, etc.), an object is often illuminated by the same pixel element for the duration of multiple frames. Thus, the amount of overdrive applied to pixel elements of a fixed LCD display may be approximated, since a user may not detect an error in the color and / or brightness of the corresponding pixel if the error persists for only one frame. However, in HMD devices, particularly virtual reality (VR) applications, objects viewed on the display may be illuminated by different pixels due to the user's head and / or eye movements. Thus, the amount of overdrive applied to each pixel element of an HMD display should be much more precise in order to maintain the user's sense of immersion in the virtual environment. Summary of the Invention

[0006] This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key or essential elements of the scope of the claimed subject matter, nor is it intended to limit the scope of the claimed subject matter.

[0007] A method and apparatus for overdriving a pixel element with a desired voltage. The display device comprises a pixel array and overdrive circuitry for determining a current pixel value for a first pixel element of the pixel array and a target pixel value for the first pixel element. The overdrive circuitry is further configured to determine a first voltage to be applied to the first pixel element to transition the first pixel element from the current pixel value to the target pixel value by a first time. The first voltage is determined based at least in part on a position of the first pixel element in the pixel array. The display device further comprises a data driver for applying the first voltage to the first pixel element prior to the first time, and a backlight for illuminating the pixel array at the first time.

[0008] The location of the first pixel element may correspond to a row location of the first pixel element in the pixel array. In some embodiments, when the row location is below a threshold line number of the pixel array, the first voltage corresponds to a target voltage, and the target voltage stabilizes the first pixel element to a target pixel value. In some other embodiments, when the row location is above a threshold line number of the pixel array, the first voltage corresponds to an overdrive voltage, and the overdrive voltage may differ from the target voltage.

[0009] In some embodiments, the overdrive circuitry may comprise a lookup table (LUT) repository configured to store a plurality of LUTs, and an overdrive voltage generator configured to determine the first voltage based at least in part on the plurality of LUTs. In some aspects, each of the plurality of LUTs indicates a plurality of overdrive voltages for pixel elements of a corresponding row of the pixel array.

[0010] In some embodiments, the overdrive voltage generator may select a first and a second LUT from the plurality of LUTs based at least in part on a row location of the first pixel element. For example, the first LUT may be associated with a row of the pixel array that is lower than a row location of the first pixel element, and the second LUT may be associated with a row of the pixel array that is higher than a row location of the first pixel element. The overdrive voltage generator may further determine the first voltage based at least in part on a linear interpolation of the first LUT and the second LUT. In some aspects, the overdrive voltage generator may select the first and second LUTs based at least in part on a temperature of the display.

[0011] In some embodiments, the overdrive current generator may comprise a LUT generator configured to generate an interpolation LUT based on a linear interpolation of the first and second LUTs. The overdrive current generator may further comprise an overdrive voltage interpolator configured to select at least two rows of the interpolation LUT based on a current pixel value and to select at least two columns of the interpolation LUT based on a target pixel value. The overdrive voltage interpolator is further configured to determine the first voltage based on a bilinear interpolation of selected rows and columns of the interpolation LUT.

[0012] In some embodiments, the overdrive circuitry may be further configured to determine a second voltage to be applied to a second pixel element of the pixel array to transition the second pixel element from a current pixel value to a target pixel value by the first time. More particularly, the second voltage may be different from the first voltage. In some aspects, the data driver may be further configured to apply the second voltage to the second pixel element prior to the first time. In some aspects, the first pixel element may be located in a different row of the pixel array than the first pixel element. [Brief description of the drawings]

[0013] The depicted embodiments are illustrated by way of example and are not intended to be limited by the figures of the accompanying drawings.

[0014] [Figure 1] FIG. 1 illustrates an example of a display system in which the present embodiments may be implemented.

[0015] [Diagram 2] FIG. 2 illustrates an example block diagram of a display device having overdrive circuitry according to one or more embodiments.

[0016] [Diagram 3] FIG. 3 shows a timing diagram illustrating an example of the timing of pixel updates in a display device according to one or more embodiments.

[0017] [Figure 4A] FIG. 4A shows a timing diagram illustrating an example implementation of progressive overdrive according to one or more embodiments. [Figure 4B] FIG. 4B illustrates a timing diagram illustrating an example implementation of progressive overdrive according to one or more embodiments.

[0018] [Figure 5A]FIG. 5A illustrates a block diagram of a progressive overdrive controller according to one or more embodiments. [Figure 5B] FIG. 5B illustrates a block diagram of a progressive overdrive controller according to one or more embodiments.

[0019] [Figure 6] FIG. 6 illustrates an example pair of look-up tables (LUTs) that can be used to generate progressive overdrive voltages in accordance with one or more embodiments.

[0020] [Figure 7] FIG. 7 illustrates a block diagram of a progressive overdrive controller according to one or more embodiments.

[0021] [Figure 8] FIG. 8 is an illustrative flow chart illustrating an example process for driving pixel elements of a display to a target pixel value.

[0022] [Figure 9] FIG. 9 is an exemplary flow chart illustrating an example process for selectively applying overdrive voltages to pixel elements of a pixel array.

[0023] [Figure 10] FIG. 10 is an exemplary flow chart illustrating an example process for determining an overdrive voltage to be used to drive a pixel element to a target pixel value. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0024] In the following description, numerous specific details are set forth, such as examples of specific components, circuits, and processes, in order to provide a thorough understanding of the present disclosure. As used herein, the term "connected" means directly connected or connected through one or more intervening components or circuits. The terms "electronic system" and "electronic device" may be used interchangeably to refer to any system capable of electronically processing information. Furthermore, in the following description, and for purposes of explanation, specific nomenclature is used in order to provide a thorough understanding of aspects of the present disclosure. However, it will be apparent to one skilled in the art that these specific details may not be required to practice the exemplary embodiments. In other instances, well-known circuits and devices are shown in block diagram form in order to avoid obscuring the present disclosure. Some portions of the following detailed description are presented in terms of processes, logic blocks, processing, and other symbolic representations of operations on data bits within a computer memory.

[0025] These descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. In this disclosure, the process, logic blocks, processes, etc., are conceived as a self-consistent sequence of steps or instructions leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electronic or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated in a computer system. It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities.

[0026] As will become apparent from the discussion below, unless specifically stated otherwise, discussions made throughout this application using expressions such as "accessing," "receiving," "transmitting," "using," "selecting," "determining," "normalizing," "multiplying," "averaging," "monitoring," "comparing," "applying," "updating," "measuring," "deriving," and the like, will be deemed to refer to actions and processing by a computer system (or similar electronic computing device) that manipulate and convert data represented as physical (electrical) quantities in the registers and memory of the computer system into other data similarly represented as physical quantities in the memory or registers of the computer system, or other such information storage, transmitter, or display device.

[0027] In the figures, a single block may be described as performing one or more functions. However, in actual implementation, one or more functions performed by the block may be performed by a single component or across multiple components, and / or may be performed using hardware, software, or a combination of hardware and software. To clearly illustrate this interchangeability of hardware and software, various example components, blocks, modules, circuits, and steps are generally described below in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in various ways for each particular application, and such implementation decisions should not be interpreted as causing a departure from the scope of the present invention. Additionally, the example input device may include components other than those shown, including well-known components such as a processor and memory.

[0028] The techniques described herein may be implemented as hardware, software, firmware, or combinations thereof, unless specifically described as being implemented in a particular manner. Any features described as modules or components may be implemented together in an integrated logic device, or may be implemented separately as separate but interoperable logic devices. If implemented as software, the techniques may be realized, at least in part, by a non-transitory processor-readable storage medium storing instructions that, when executed, perform one or more of the methods described below. The non-transitory processor-readable data storage medium may form part of a computer program product. The computer program product may include a packaged article of manufacture.

[0029] The non-transitory processor-readable storage medium may comprise random access memory (RAM), such as synchronous dynamic random access memory (SDRAM), read only memory (ROM), non-volatile random access memory (NVRAM), electrically erasable programmable read-only memory (EEPROM), flash memory, other known storage media, etc. The present technology may additionally or alternatively be implemented, at least in part, by a processor-readable communications medium that conveys or communicates code in the form of instructions or data structures and that is accessible, read, and / or executable by a computer or other processor.

[0030] The various example logic blocks, modules, circuits, and instructions described with respect to the embodiments disclosed herein may be executed by one or more processors. As used herein, the term "processor" may refer to any general-purpose processor, conventional processor, controller, microcontroller, and / or state machine capable of executing one or more software program scripts or instructions stored in memory. As used herein, the term "voltage source" may refer to a direct-current (DC) voltage source, an alternating-current (AC) voltage source, or other means of generating an electric potential (such as ground).

[0031] FIG. 1 illustrates an exemplary display system 100 in which the present embodiments may be implemented. The display system 100 includes a host device 110 and a display device 120. The display device 120 may be any device configured to display an image or a series of images (e.g., video) to a user. In some embodiments, the display device 120 may be a head-mounted display (HMD) device. In some aspects, the host device 110 may be implemented as a physical part of the display device 120. Alternatively, the host device 110 may be connected to (and communicate with) components of the display device 120 using various wired and / or wireless interconnection and communication technologies, such as a bus or network. An exemplary technology is Inter-Integrated Circuit (IIC) or other interconnection and communication technologies. 2 C), Serial Peripheral Interface (SPI), PS / 2, Universal Serial bus (USB), Bluetooth, Infrared Data Association (IrDA), and various radio frequency (RF) communication protocols defined in the IEEE 802.11 standard.

[0032] The host device 110 receives image source data 101 from an image source (not shown for simplicity) and renders the image source data 101 (e.g., as display data 102) for display on the display device 120. In some embodiments, the host device 110 may include a rendering engine 112 configured to process the image source data 101 according to one or more capabilities of the display device 120. For example, in some aspects, the display device 120 may display dynamically updated images to the user based on the user's eye position. More specifically, the display device 120 may track the user's head and / or eye movements and may display a portion of the image that corresponds to the user's gaze point (e.g., a central vision region) at a higher resolution than other regions of the image (e.g., a full frame image). Thus, in some embodiments, the rendering engine 112 may generate a high-resolution central vision image to be overlaid on the central vision region of the full frame image. In some other embodiments, the rendering engine 112 may scale the full frame image for display on the display device 120 (e.g., at a lower resolution than the central vision image).

[0033] The display device 120 receives the display data 102 from the host device 110 and displays a corresponding image to a user based on the received display data 102. In some embodiments, the display device 120 may include a display 122 and a backlight 124. The display 122 may be a liquid crystal display (LCD) panel formed from an array of pixel elements (e.g., liquid crystal cells) configured to allow a variable amount of light to pass from one surface of the display panel to the other (e.g., depending on a voltage or electric field applied to each pixel element). For example, the display device 120 may apply appropriate voltages to each pixel element to render an image on the display 122 (which may include a central vision image overlaid on a full frame image). As mentioned above, LCDs do not emit light and therefore rely on separate light sources to illuminate the pixel elements so that the image is visible to the user.

[0034] The backlight 124 may be disposed proximate to the display 122 to illuminate the pixel elements from behind. The backlight 124 may comprise one or more light sources, including, but not limited to, cold cathode fluorescent lamps (CCFLs), external electrode fluorescent lamps (EEFLs), hot-cathode fluorescent lamps (HCFLs), flat fluorescent lamps (FFLs), light-emitting diodes (LEDs), or any combination thereof. In some aspects, the backlight 124 may comprise an array of individual light sources (such as LEDs) capable of providing different levels of illumination to different regions of the display 122. In some embodiments, the display device 120 may comprise an inverter (not shown for simplicity) capable of dynamically changing the intensity or brightness of the backlight 124, for example, to improve image quality or conserve power consumption.

[0035] As explained above, the color and / or brightness of each pixel element may be adjusted by varying the voltage applied to that pixel element. However, the degree of color and / or brightness change achievable in a single frame transition or update may be limited by the stabilization time of the pixel element. For example, a transition from a maximum brightness setting (e.g., a "white" pixel) to a minimum brightness setting (e.g., a "black" pixel) may require a longer stabilization time than a transition from an intermediate brightness setting to another intermediate brightness setting (e.g., from one shade of "gray" to another shade of "gray"). When a pixel element is unable to achieve the desired color and / or brightness between successive frame updates, artifacts (such as ghosting) may appear in the displayed image.

[0036] LCD overdrive is a technique for increasing the speed of pixel transitions when updating an LCD display. In particular, pixel elements are applied a voltage higher than a target voltage associated with a desired color and / or brightness level. The higher voltage causes the liquid crystal in each pixel element to rotate faster, and therefore reach the target brightness in a shorter time. Therefore, in some embodiments, the display system 100 may include overdrive circuitry (not shown for simplicity) that can dynamically adjust the amount of voltage applied to each pixel element of the display 122 to reduce the occurrence of artifacts and / or prevent them from interfering with the user's viewing experience.

[0037] FIG. 2 illustrates a block diagram of a display device 200 having overdrive circuitry in accordance with one or more embodiments. The display device 200 may be an exemplary embodiment of the display 122 of the display device 120 of FIG. 1. More specifically, the display device 200 may include a pixel array 210, a timing controller 220, a display memory 230, and overdrive (OD) circuitry 240. In some embodiments, the display device 200 may correspond to an LCD display panel. As such, the pixel array 210 may include a number of liquid crystal pixel elements (not shown for simplicity). Each row of pixel elements is connected to a respective gate line (GL). Each column of pixel elements is connected to a respective data line (DL). Accordingly, each pixel element of the array 210 is disposed at an intersection of a gate line and a source line.

[0038] The data driver 212 is connected to the pixel array 210 via data lines DL(1)-DL(N). In some aspects, the data driver 212 may be configured to drive pixel data (e.g., in the form of corresponding voltages) to individual pixel elements via the data lines DL(1)-DL(N) to update a frame or image displayed on the pixel array 210. For example, voltages applied to the data lines DL(1)-DL(N) may change (e.g., rotate) the physical state of the pixel elements of the pixel array 210 (e.g., when the pixel elements are liquid crystals). Thus, the voltages applied to each pixel element directly affect the color and / or intensity of light emitted by the pixel element. Note that the rows of pixel elements of the pixel array 210 are respectively connected to the same data lines DL(1)-DL(N). Thus, the display device 200 may update the pixel array 210 by sequentially scanning the rows of pixel elements.

[0039] The gate driver 214 is connected to the pixel array 210 via gate lines GL(1)-GL(M). In some aspects, the gate driver 214 may be configured to select which row of pixel elements receives pixel data driven by the data driver 212 at any given time. For example, each pixel element of the array 210 may be connected to one of the data lines DL(1)-DL(N) and one of the gate lines GL(1)-GL(M) via an access transistor (not shown for simplicity). The access transistor may be an NMOS (or PMOS) transistor having a gate terminal connected to one of the gate lines GL(1)-GL(M), a drain (or source) terminal connected to one of the source lines DL(1)-DL(N), and a source (or drain) terminal connected to a corresponding pixel element in the array 210. When one of the gate lines GL(1)-GL(M) has a sufficiently high voltage applied to it, the access transistor associated with the selected gate line turns on, allowing current to flow from the data lines DL(1)-DL(N) to the corresponding row of pixel elements. In response, the gate driver 214 may be configured to sequentially select, or activate, each of the gate lines GL(1)-GL(M) until each row of the pixel array 210 has been updated.

[0040] The timing controller 220 is configured to control the timing of the data driver 212 and the gate driver 214. For example, the timing controller 220 may generate a first set of timing control signals (D_CTRL) to control the activation of the data lines DL(1)-DL(N) by the data driver 212. The timing controller 220 may further generate a second set of timing control signals (G_CTRL) to control the activation of the gate lines GL(1)-GL(M) by the gate driver 214. The timing controller 220 may generate the S_CTRL and G_CTRL signals based on a reference clock signal generated by a signal generator 222. For example, the signal generator 222 may be a crystal oscillator. The timing controller 220 may drive the D_CTRL and G_CTRL based on applying respective phase offsets to the reference clock signal. More specifically, the timing of the D_CTRL and G_CTRL signals may be synchronized such that the gate driver 214 activates the correct gate line (e.g., connected to the row of pixel elements to be driven with pixel data) at the time the data driver 212 drives the data lines DL(1)-DL(N) with pixel data intended for that row of pixel elements.

[0041] The display memory 230 may be configured to store a buffer of display data 203 to be displayed in the pixel array 210. The display data 203 may include pixel values ​​204 (e.g., corresponding to color and / or intensity) for each pixel element of the array 210. For example, each pixel element may further comprise a number of sub-pixels, including, but not limited to, red (R), green (G), and blue (B) sub-pixels. In some aspects, the display data 203 may indicate R, G, and B values ​​for the sub-pixels of an image to be displayed. The R, G, and B values ​​may affect the color and brightness level (or density level) of each pixel. For example, the pixel values ​​204 may each be an 8-bit value indicating one of 256 possible density levels. As explained above, each pixel value 204 may be associated with a target voltage level. In other words, when a target voltage is applied to a particular pixel element, the color and / or brightness of the pixel element may eventually stabilize to a desired pixel value. However, the settling time of a pixel element may depend on the degree of change in pixel value, so when the change in pixel value exceeds a threshold amount, the target voltage may not be sufficient to drive the pixel element to the desired pixel value within a given frame update period.

[0042] The overdrive circuitry 240 may determine an overdrive voltage 205 to be applied to one or more pixel elements of the array 210 based at least in part on the pixel value 204. More specifically, for each pixel element of the array 210, the overdrive circuitry 240 may compare a current pixel value (e.g., a pixel value from a previous frame update) to a target pixel value (e.g., a pixel value for a next frame update) to determine an amount of voltage to be applied to the pixel element to achieve a change in the pixel value within a frame update period. In some aspects, the overdrive circuitry 240 may compare the current pixel value and the target pixel value to corresponding values ​​in a look-up table (LUT) to determine an overdrive voltage 205 to be applied to the pixel element to achieve a desired change in the pixel value. In some instances, the overdrive voltage 205 may exceed (e.g., be higher or lower than) the target voltage. However, the overdrive voltage 205 may be limited (e.g., upper bounded) by the voltage range of the data driver 212. As such, the pixel element may not exceed a threshold change in pixel value within any frame update period.

[0043] As described above, individual rows of pixel array 210 may be updated sequentially (e.g., one row at a time). However, the representation of an image in pixel array 210 may not be visible unless the pixel elements are illuminated by a light source (e.g., backlight 124 of FIG. 1). In a stationary LCD display, the backlight may provide illumination to the pixel array continuously (e.g., the backlight is continuously on or at least pulse-width modulated to a desired brightness level). Therefore, any change in pixel value may be noticeable as soon as an updated voltage is applied to the pixel element. However, in a virtual reality (VR) application, an object viewed in the display may be illuminated by different pixels as the user's head and / or eyes move. Rapid fluctuations in pixel values ​​may cause motion blur and / or other artifacts in the image depicted on the LCD display that may detract from the virtual reality experience. Display devices may reduce or prevent motion blur by periodically (rather than continuously) updating the display. For example, a display device may blink a backlight at periodic intervals so that rapid changes in pixel values ​​at such intervals are suppressed (e.g., similar to the phenomenon of saccadic suppression in human visual perception).

[0044] For example, with reference to the example timing diagram 300 of FIG. 3, an image may be displayed by the pixel array 210 periodically during successive frame update periods. More specifically, each frame update period (e.g., from time t0 to t3 and from t3 to t6) may include a pixel adjustment period (e.g., from time t0 to t2 and from t3 to t5) followed by a display period (e.g., from time t2 to t3 and from t5 to t6). During each pixel adjustment period, the pixel array 210 may be activated for pixel updates (e.g., from time t0 to t1 and from t3 to t4). The updated pixel elements are then "displayed" (e.g., made visible) to a user during the subsequent display period. For example, an image on the pixel array 210 may be displayed to a user by activating a light source (such as the backlight 124 of FIG. 1) configured to illuminate the pixel array 210.

[0045] During each pixel update period, individual rows of pixel array 210 may be updated sequentially (e.g., in a cascade fashion). Curves 301 and 302 show example pixel update times for each row of pixel array 210 based on the line number for that row. Thus, as shown in FIG. 3, rows associated with higher line numbers (e.g., further down the cascade) are updated later (e.g., toward the beginning of the cascade) than rows associated with lower line numbers. However, because the pixel elements are only illuminated during the display period, any changes in pixel values ​​that occur before or after the display period may not be visible to a user. As a result, pixel elements associated with higher line numbers (e.g., pixel elements that are updated later) have less time to transition to a desired pixel value than pixel elements associated with lower line numbers (e.g., pixel elements that are updated earlier). For example, pixel elements at the top of array 210 may have a pixel adjustment period duration (T) to reach a target pixel value. In contrast, pixel elements in the middle of array 210 may have a significantly shorter period (Tx) to reach their target pixel value, and pixel elements at the bottom of array 210 may have an even shorter period (T-2x) to reach their target pixel value.

[0046] Aspects of the present disclosure recognize that different amounts of overdrive may be applied to different rows of pixel elements due to different transition times for individual rows of pixel array 210. For example, pixel elements associated with relatively low line numbers may require less overdrive voltage (if any) to reach their target pixel value by the next display period. However, pixel elements associated with higher line numbers may require progressively higher overdrive voltages to reach their target pixel value by the next display period. As such, in some embodiments, overdrive circuitry 240 may progressively increase the amount of overdrive applied to rows of pixel elements based at least in part on their position (e.g., line number) in array 210. More specifically, pixel elements associated with higher line numbers (e.g., updated later in a display update period) are generally provided with a greater amount of overdrive than pixel elements corresponding to lower line numbers (e.g., updated earlier in a display update period).

[0047] 4A illustrates a timing diagram 400A showing an example implementation of progressive overdrive, according to some embodiments. In some embodiments, the progressive overdrive method illustrated in FIG. 4A may be performed by the overdrive circuitry 240 of FIG. 2. The timing diagram 400A illustrates an example frame update period (e.g., from time t0 to t2) that may include a pixel adjustment period (e.g., from time t0 to t1) followed by a display period (e.g., from time t1 to t2). Curve 401 represents an example pixel update time for each row of pixel array 210 based on the line number associated with that row.

[0048] In the example of FIG. 4A, the overdrive circuitry 240 drives lines l0 to l1 of the pixel array 210. pIn some cases, a progressive overdrive voltage may be generated for successive rows of pixel elements between lines l0 to l1. More specifically, the amount of overdrive voltage may vary from line l0 to line l1. p For example, for line l, the pixel count may be increased incrementally for each successive row of pixel elements between p A pixel element connected to line l may be applied with a higher voltage than a pixel element connected to line l0 to achieve the same amount of change in pixel value (e.g., the same amount of change in density level) by the beginning of the display period. As explained above, the amount of overdrive that can be applied to a pixel element may be limited by the voltage range of the data driver 212. In the example of FIG. 4A, line l p By the time the pixel elements connected to line l of pixel array 210 are updated, the overdrive voltage may saturate. p and line l M In other words, the maximum overdrive may be applied to the rows of pixel elements between line l p and line l M When any pixel element between is updated during a pixel adjustment period, overdrive circuitry 240 may apply maximum overdrive to change the pixel value of such pixel element.

[0049] Aspects of the present disclosure recognize that the need for progressive overdrive may be highly dependent on the characteristics of the LCD display (e.g., number of pixels, temperature, response time, etc.). For example, an LCD display having fewer pixel elements (or at least fewer lines of pixels) may require less time for updating the entire pixel array. Thus, in a smaller pixel array, the change in overdrive from one row of pixel elements to another row may be more gradual. Aspects of the present disclosure further recognize that in some embodiments, one or more rows of pixel elements may stabilize at their target pixel values ​​without the use of overdrive (e.g., by applying only a target voltage to the pixel elements) until the next display period.

[0050] FIG. 4B illustrates a timing diagram 400B showing another implementation of progressive overdrive, according to some embodiments. In some embodiments, the progressive overdrive method illustrated in FIG. 4B may be performed by the overdrive circuitry 240 of FIG. 2. The timing diagram 400B illustrates an example frame update period (e.g., from time t0 to t2) that may include a pixel adjustment period (e.g., from time t0 to t1) followed by a display period (e.g., from time t1 to t2). Curve 402 represents an example pixel update time for each row of pixel array 210 based on the line number (e.g., gate line) associated with that row.

[0051] In the example of FIG. 4B, the overdrive circuitry 240 drives lines l0 to l1 of the pixel array 210. n For the rows of pixel elements between lines l0 and l1, no overdrive may be applied. Instead, during the pixel adjustment period, n Each pixel element between lines l of pixel array 210 may have its target voltage applied to it. n From pA progressive overdrive voltage may be generated for successive rows of pixel elements between lines l and t. As explained above, the amount of overdrive voltage varies with the number of lines l and t. n From p For each successive row of pixel elements between the lines l p By the time the pixel elements connected to line l of pixel array 210 are updated, the overdrive voltage may saturate. p and line l M In other words, the maximum overdrive may be applied to the rows of pixel elements between line l p and line l M When any pixel element between is updated during a pixel adjustment period, overdrive circuitry 240 may apply maximum overdrive to change the pixel value of such pixel element.

[0052] By applying overdrive in a progressive manner (as shown in FIGS. 4A and 4B ), overdrive circuitry 240 may ensure that each of the pixel elements of array 210 is updated to its target pixel value (or at least a pixel value that substantially approximates the target pixel value) prior to the next display period. Moreover, by selectively applying overdrive to only a portion of the pixel array (e.g., as shown in FIG. 4B ), embodiments herein may reduce the amount of resources (e.g., memory, time, power, and other processing resources) required to generate an overdrive voltage for pixel array 210.

[0053] 5A illustrates a block diagram of a progressive overdrive controller 500A, according to some embodiments. The progressive overdrive controller 500A may be an example of an embodiment of the overdrive circuitry 240 of FIG. 2. As such, the progressive overdrive controller 500A may be configured to progressively increase an amount of overdrive applied to one or more rows of pixel elements of a pixel array (such as pixel array 210 of FIG. 2) based at least in part on the position of the row in the array 210.

[0054] The progressive overdrive controller 500A includes an overdrive voltage generator 510, a previous image buffer 520, and a look-up table (LUT) repository 530. The overdrive voltage generator 510 may determine an overdrive pixel voltage 505 to be applied to each pixel element of an associated pixel array. More specifically, the overdrive voltage generator 510 may generate the overdrive pixel voltage 505 based at least in part on a target pixel value 501, a current pixel value 502, and an overdrive (OD) index 503. The target pixel value 501 may correspond to a pixel value to which a particular pixel element is to be driven by the next display period. For example, the target pixel value 501 may be provided by a buffer of an input image (such as the display memory 230 of FIG. 2). The current pixel value 502 may correspond to a pixel value for a particular pixel element that was displayed during a previous display period. For example, the current pixel value 502 may be stored in and retrieved from the previous image buffer 520. In some aspects, after each frame update, the overdrive voltage generator 510 may store the target pixel value 501 of the current frame in the previous image buffer 520 (e.g., for use as the current pixel value 502 in the next frame update).

[0055] In some embodiments, the overdrive voltage generator 510 may determine the overdrive pixel voltage 505 by comparing the target pixel value 501 to the current pixel value 502. More specifically, the progressive overdrive controller 510 may determine the amount of voltage to be applied to the corresponding pixel element to change the pixel value from the current pixel value 502 to the target pixel value 501. In some aspects, the overdrive voltage generator 510 may determine the overdrive pixel voltage 505 by comparing the target pixel value 501 and the current pixel value 502 to corresponding values ​​in a look-up table (LUT). For example, a row of the LUT may correspond to multiple current values ​​and a column of the LUT may correspond to multiple target pixel values. The intersection of a particular row and a particular column may indicate the overdrive voltage required to change from the current pixel value (of the corresponding row) to the target pixel value (of the corresponding column).

[0056] Conventional LCD displays use a single look-up table to determine the overdrive voltage to be applied to pixel elements of a pixel array. However, in HMD devices (and especially VR applications), different pixel elements may have different timing constraints (e.g., to reach a target brightness or pixel value) based on their position in the array (e.g., as described with reference to FIG. 3). For example, pixel elements in the first row of the array may have significantly more time to reach their pixel value than pixel elements in the last row of the array. Thus, the progressive overdrive controller 500A may progressively increase (or decrease) the amount of overdrive voltage for multiple successive rows of pixel elements in the pixel array to achieve a given pixel value variation (e.g., as described with reference to FIGS. 4A and 4B).

[0057] In some embodiments, the overdrive voltage generator 510 may use multiple LUTs to determine the overdrive pixel voltage 505. For example, the LUT repository 530 may store multiple LUTs that may be retrieved by the overdrive voltage generator 510. Each of the multiple LUTs may be associated with a different row of pixel elements of the corresponding pixel array. For example, the LUT repository 530 may store a first LUT associated with a first row of the pixel array and a second LUT corresponding to a last row of the pixel array. The first LUT may indicate multiple overdrive voltages to be used to achieve different variations in pixel value for any pixel element in the first row of the array. Meanwhile, the second LUT may indicate multiple overdrive voltages to be used to achieve different variations in pixel value for any pixel element in the last row of the array. The overdrive voltage in the second LUT may be greater than the corresponding overdrive voltage in the first LUT because the pixel elements in the last row of the array have less time to reach the target pixel value than the pixel elements in the first row of the array.

[0058] In some embodiments, the overdrive voltage generator 510 may use the overdrive index 503 to determine the overdrive voltage for a particular row of pixel elements. More specifically, the overdrive index 503 may be used to select one or more LUTs from the LUT repository 530. For example, in some aspects, the overdrive index 503 may be based, at least in part, on a line number or row number associated with the pixel elements to be driven. However, other factors may also affect the amount of overdrive voltage required to achieve a desired change in pixel value within a frame update period. For example, the responsiveness of liquid crystals may vary with the temperature of the display. Pixel elements with higher temperatures tend to have faster response speeds and therefore require less overdrive voltage to achieve the same change in pixel value compared to pixel elements with lower temperatures. Thus, for any given row of pixel elements, the overdrive voltage generator 510 may use a different LUT under higher temperature conditions than under lower temperature conditions to determine the overdrive voltage. In some embodiments, the overdrive index 503 may be based on a combination of factors including, but not limited to, the line or row number associated with the pixel element to be driven and the temperature of the display.

[0059] For example, Figure 5B shows a block diagram of a progressive overdrive controller 500B that can dynamically adjust the overdrive pixel voltage 505 based on the temperature of the LCD display. In addition to the overdrive voltage generator 510, the look-ahead image buffer 520, and the LUT repository 530 (described above in connection with Figure 5A), the progressive overdrive controller 500B further includes a temperature sensor 540 that can provide a temperature measurement 506 to a processor (e.g., a CPU) 550 external to the progressive overdrive controller 500B and / or the display driver. For example, the CPU 550 may be located in a host device (or elsewhere on the display device) that has more memory and processing resources than the display driver. Because the temperature sensor 540 is located on the display device (e.g., in close proximity to the LCD display), the temperature measurement 506 can provide a relatively accurate indication of the temperature of the LCD display.

[0060] In some embodiments, the CPU 550 may use the temperature measurements 506 to select a set of temperature-specific LUTs 507 from the external LUT repository 560. As explained above, the responsivity of liquid crystals in an LCD display may vary with the temperature of the LCD display. Therefore, for any given row of pixel elements, it may be desirable to determine the overdrive voltage using a different LUT under higher temperature conditions than under lower temperature conditions. However, aspects of the present disclosure recognize that memory resources of a display driver may be very scarce. Thus, the LUT repository 530 may be capable of storing only a limited number of LUTs at any given moment. Thus, in some embodiments, the CPU 550 may update and / or populate the LUT repository 530 with temperature-specific LUTs 507 obtained from the external LUT repository 560 based on the current temperature of the LCD display (e.g., as indicated by the temperature measurements 506).

[0061] In some embodiments, the LUT repository 530 may store a different LUT for each row of the pixel array. For example, the overdrive index 503 may identify the correct LUT 504 to be retrieved by the overdrive voltage generator 510 for a particular row of pixel elements. However, aspects of the present disclosure recognize that storing many LUTs may not be practical or even feasible (because an LCD display may contain hundreds, if not thousands, of rows of pixel elements). Thus, in other embodiments, the LUT repository 530 may store LUTs for only a portion of the rows of the pixel array. In response, the overdrive voltage generator 510 may determine the overdrive pixel voltage 505 for a particular pixel element based on bilinear interpolation of multiple LUTs. For example, the overdrive voltage generator 510 may retrieve from the LUT repository the two LUTs 504 that are closest to the overdrive index 503. The overdrive voltage generator 510 may perform bilinear interpolation on the two LUTs 504 to determine the overdrive pixel voltage 505 to be applied to each pixel element in the selected row to change the corresponding pixel value from the current pixel value 502 to the target pixel value 501.

[0062] 6 illustrates an example pair of look-up tables (LUTs) 601 and 602 that can be used to generate progressive overdrive voltages according to one or more embodiments. In the example of FIG. 6, LUTs 601 and 602 may each be a 17×17 LUT. Each element (e.g., cell) of the LUT may store an 8-bit grayscale pixel value. Each of LUTs 601 and 602 is associated with a different row of pixel elements of a corresponding pixel array.

[0063] In one particular example, referring to FIG. 4B, the first LUT 601 is a pixel element line number l n The second LUT 602 may relate to the line number l of the pixel element. pTherefore, the first LUT 601 may be related to the line number l n A number of overdrive voltages (e.g., v ) that can be used to drive pixel elements connected to the LUT 601 from a current pixel value (e.g., indexed along the rows of the LUT 601) to a target pixel value (e.g., indexed along the columns of the LUT 601). a1 -v a20 Similarly, the second LUT 602 may include a line number l p A number of overdrive voltages (e.g., v ) that can be used to drive pixel elements connected to the LUT 602 from a current pixel value (e.g., indexed along the rows of the LUT 602) to a target pixel value (e.g., indexed along the columns of the LUT 602). b1 -v b20 ) may be included. Line number n The time it takes for the pixel element connected to line number l to reach the target value. p Since the second LUT 602 may have more pixel elements connected to it than the first LUT 601, the overdrive voltages of the second LUT 602 may each be greater than the corresponding overdrive voltages of the first LUT 601 (e.g., V b1 >V a1 , V b2 >V a2 , V b3 >V a3 , etc.).

[0064] In some embodiments, LUT 601 and LUT 602 are interpolated based on line number l of the array (e.g., based on bilinear interpolation of LUTs 601 and 602). n and p In some embodiments, the LUTs 601 and 602 may be used to obtain overdrive voltages for pixel elements in any row between line number l n and pThe first and second LUTs 601, 602 may be synthesized by linear interpolation to create a new LUT 603 for a selected row between the first and second LUTs 601, 602. Thus, each element of the new LUT 603 may be generated based on a linear interpolation of corresponding elements of the first LUT 601 and the second LUT 602, as shown by the following equation:

number

[0065] Each cell of the new LUT 603 may indicate an overdrive voltage that can be used to drive a pixel element of a selected row from a current pixel value (e.g., indexed along the rows of the LUT 603) to a target pixel value (e.g., indexed along the columns of the LUT 603). The new LUT 603 (like the other LUTs 601 and 602) may include only a portion of all possible grayscale values ​​(e.g., 0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192, 208, 224, 240, and 255). Therefore, a further step of interpolation may be used to determine the overdrive voltage for any grayscale value that lies between the grayscale values ​​explicitly specified in the LUT 603. For example, the overdrive voltage to be used to drive a pixel element from a grayscale value of 8 to a grayscale value of 20 may be determined based on a bilinear interpolation of the current grayscale values ​​of 0 and 16 and the target grayscale values ​​of 16 and 32.

[0066] 7 illustrates a block diagram of a progressive overdrive controller 700 according to one or more embodiments. The progressive overdrive controller 700 may be an example of an embodiment of the progressive overdrive controller 500A of FIG. 5A and / or the overdrive circuitry 240 of FIG. 2. As such, the progressive overdrive controller 700A may be configured to progressively increase the amount of overdrive applied to one or more rows of pixel elements of a pixel array (such as pixel array 210 of FIG. 2) based at least in part on the position of the row in the array 210.

[0067] The progressive overdrive controller 700 includes an overdrive voltage interpolator 710, a previous image buffer 720, a look-up table (LUT) repository 730, a look-up table (LUT) generator 740, and a look-up table (LUT) buffer 750. The overdrive voltage interpolator 710 may determine an overdrive pixel voltage 704 to be applied to each pixel element of an associated pixel array. More specifically, the overdrive voltage interpolator 710 may generate the overdrive pixel voltage 704 based at least in part on a target pixel value 701, a current pixel value 702, and a look-up table (LUT). The target pixel value 701 may correspond to a pixel value to which a particular pixel element should be driven by the next display period. For example, the target pixel value 701 may be provided by a buffer of an input image (such as the display memory 230 of FIG. 2). The current pixel value 702 may correspond to a pixel value for a particular pixel element that was displayed during a previous display period. For example, the current pixel value 702 may be stored in and retrieved from the previous image buffer 720. In some aspects, after each frame update, the overdrive voltage interpolator 710 may store the target pixel value 701 of the current frame in the previous image buffer 720 (e.g., for use as the current pixel value 702 in the next frame update).

[0068] In some embodiments, the overdrive voltage interpolator 710 may determine the overdrive pixel voltage 704 by comparing the target pixel value 701 to the current pixel value 702. More specifically, the overdrive voltage interpolator 710 may determine the amount of voltage to be applied to a corresponding pixel element to change the pixel value from the current pixel value 702 to the target pixel value 701. In some aspects, the overdrive voltage interpolator 710 may compare the target pixel value 701 and the current pixel value 702 to corresponding values ​​in a look-up table (LUT) to determine the overdrive pixel voltage 704. In some embodiments, the progressive overdrive controller 700 may progressively increase (or decrease) the amount of overdrive voltage for multiple successive rows of pixel elements in the pixel array for a given pixel value variation. To that end, in some aspects, the overdrive voltage interpolator 710 may determine the overdrive pixel voltage 704 using different (or updated) LUTs for different rows of the pixel array.

[0069] In some embodiments, the LUT repository 730 may store multiple LUTs associated with different rows of a pixel array. More specifically, the LUT repository 730 may store LUTs for only a portion of the rows of a pixel array. In some aspects, the LUT repository 730 may store at least two and up to five LUTs for a given pixel array. At least one LUT is associated with the pixel elements of the array (e.g., line number l0 in FIG. 4A or line numbers l0-l in FIG. 4B). n At least one LUT may be associated with a minimum overdrive voltage that should be applied to one or more rows of pixel elements (e.g., pixel elements connected to line number l in FIGS. 4A and 4B ). p -l M In some cases, this may relate to the maximum overdrive voltage that should be applied to one or more rows of pixel elements (i.e., the pixel elements connected to the row).

[0070] The LUT generator 740 may retrieve one or more LUTs (LUT+ and LUT-) from the LUT repository 730 based at least in part on the overdrive index 703. In some aspects, the overdrive index 703 may be based at least in part on a line number or row number associated with the pixel element to be driven. In some embodiments, the overdrive index 703 may be based on a combination of factors including, but not limited to, a line or row number associated with the pixel element to be driven and the temperature of the display. In some embodiments, the LUT generator 740 retrieves a pair of LUTs that are closest to the overdrive index 703. For example, if the overdrive index 703 corresponds to a particular LUT stored in the LUT repository 730, the LUT generator 740 may retrieve two copies of the same LUT. However, if the overdrive index 703 does not correspond to any LUT stored in the LUT repository, the LUT generator 740 retrieves the closest LUT associated with the overdrive index 703 that has an index greater than the overdrive index 703 (e.g., LUT+) and the closest LUT associated with the overdrive index 703 that has an index less than the overdrive index 703 (e.g., LUT-).

[0071] The LUT generator 740 may generate an interpolation LUT (Int_LUT) by interpolating the LUTs obtained from the LUT repository 730. In some embodiments, the interpolation LUT may be based at least in part on a linear interpolation of the LUTs obtained from the LUT repository 730 (e.g., as described above in connection with FIG. 6). More specifically, each element of the interpolation LUT may be generated based on a linear interpolation of corresponding elements of the LUT+ and the LUT-. Thus, based on the overdrive index 703, the overdrive voltage in the interpolation LUT may be closer to the voltage of the LUT+ (e.g., when the overdrive index 703 is closer to that of the LUT+) and closer to the voltage of the LUT- (e.g., when the overdrive index 703 is closer to that of the LUT-). Each cell of the interpolation LUT may respectively indicate an overdrive voltage that can be used to drive a pixel element (e.g., associated with the overdrive index 703) of a selected row of the pixel array from a current pixel value to a target pixel value.

[0072] The interpolation LUT may be stored in the LUT buffer 750 and accessed by the overdrive voltage interpolator 710. For example, the overdrive voltage interpolator 710 may look up the target pixel value 701 and the current pixel value 702 in the interpolation LUT to determine the overdrive pixel voltage 704. In some embodiments, the interpolation LUT may include only a portion of all possible grayscale values ​​for the target pixel value and the current pixel value, respectively. As such, in some aspects, the overdrive voltage interpolator 710 may interpolate pixel values ​​in the interpolation LUT to generate the overdrive pixel voltage 704. For example, the overdrive voltage interpolator 710 may select an overdrive voltage (e.g., V CP+) and the overdrive voltage (e.g., V CP- ) and the overdrive voltage (e.g., V TP+ ) and an overdrive voltage (e.g., V TP- ) and the overdrive voltage interpolator 710 may then obtain a sequence of V CP+ , V CP- , V TP+ , and V TP- The overdrive pixel voltage 704 may be generated based on a bilinear interpolation of

[0073] When performing progressive overdrive, the overdrive voltage interpolator 710 may use a different (or updated) interpolation LUT for each successive row of pixel elements in the array. As such, in some embodiments, the interpolation LUT from the LUT generator 740 may be double buffered in the LUT buffer 750. For example, the LUT buffer 750 may store the interpolation LUT for a current row of pixel elements as well as the interpolation LUT for the next row of pixel elements to be processed by the overdrive voltage interpolator 710. This allows the overdrive voltage interpolator 710 to obtain the overdrive pixel voltages 704 for the next row of pixel elements immediately after processing the overdrive pixel voltages 704 for the current row of pixel elements (e.g., without waiting to buffer the next interpolation LUT).

[0074] In conventional display systems, LCD overdrive circuitry (e.g., overdrive circuitry 240 of FIG. 2) is provided on (or implemented by) a display driver provided on a display device (e.g., display device 120). The display driver may then generate the overdrive voltages to be applied to each pixel element while simultaneously rendering each frame of display data received from the host. However, because several LUTs are used to perform the progressive overdrive, the display device may require significant amounts of memory and other hardware resources to store and process each LUT for various rows of pixel elements. Because display devices are more resource limited than host devices, it may be desirable to perform some (or all) of the progressive overdrive processing in the host device.

[0075] In some embodiments, the overdrive voltage for each pixel element of the pixel array may be generated or determined by a host device. Referring to FIG. 1, the host device 110 may generate the overdrive voltages simultaneously while processing the image source data 101 for display on the display device 120. In response, the host device 110 may send the overdrive voltage information along with the display data 102 to the display device 120. In some embodiments, the host device 110 records the overdrive voltage information in the display data 102. Then, upon receiving the display data 102 from the host device 110, the display device 120 may render a corresponding image on the display 122 with the correct overdrive voltages for each row of pixel elements in that particular frame.

[0076] 8 is an exemplary flowchart illustrating an example process 800 for driving pixel elements of a display to a target pixel value. With reference to FIGS. 1 and 2, the example process 800 may be performed by any display device of this disclosure (e.g., display device 120 or display device 200).

[0077] The display device determines (810) a current pixel value for a first pixel element of the pixel array. For example, the current pixel value may correspond to a color and / or intensity of the first pixel element on a current display (e.g., for a current frame or image). The first pixel element may comprise a number of sub-pixels, including, but not limited to, red (R), green (G), and blue (B) sub-pixels. In some aspects, the current pixel value may correspond to R, G, and B values ​​for the sub-pixels of the first pixel element. The R, G, and B values ​​may affect the color and intensity (e.g., gray level) of the first pixel element. For example, each pixel value may be an 8-bit value indicating one of 256 possible grayscale levels.

[0078] The display device further determines (820) a target pixel value for the first pixel element. For example, the target pixel value may correspond to a desired color and / or intensity of the first pixel element to be displayed (e.g., for a next frame or image in a sequence). The target pixel value may be achieved by applying a voltage to the first pixel element. More specifically, the voltage may change (e.g., rotate) a physical state of the first pixel element, causing a corresponding change in color and / or intensity. In some aspects, the target pixel value may relate to a target voltage that, when applied to the first pixel element, stabilizes the first pixel element to the target pixel value.

[0079] The display device may determine (830) a first voltage to be applied to the first pixel element based at least in part on the position of the first pixel element in the pixel array. More specifically, the first voltage may cause the first pixel element to transition from a current pixel value to a target pixel value by a first time (e.g., the beginning of a display period). However, aspects of the present disclosure recognize that because the pixel array is updated row by row, different pixel elements may have different transition times depending on their row positions in the pixel array. For example, pixel elements associated with a higher line number (e.g., pixel elements that are updated more slowly) may have less time to transition to a desired pixel value than pixel elements corresponding to a lower line number (e.g., pixel elements that are updated more quickly). Accordingly, the row position of the first pixel element may affect the amount of time to transition from the current pixel value to the target pixel value, as well as the voltage that must be applied to cause the transition within the allotted time.

[0080] The display device may apply a first voltage to the first pixel element prior to a first time (840) and may emit one or more light sources to illuminate the pixel array at the first time (850). For example, when the first voltage is applied, the first pixel element may begin to transition toward a target pixel value. However, depending on the row location of the first pixel element, the first pixel element may or may not stabilize at the target pixel value by the beginning of the display period. For example, when the target voltage is applied, the first pixel element may stabilize at the target pixel value by the beginning of the display period. When an overdrive voltage is applied, the first pixel element may reach the target pixel value at the beginning of the display period, but may continue to transition after the display period (e.g., eventually stabilize at a pixel value higher or lower than the target pixel value). However, because the pixel element is only illuminated during the display period, any changes in pixel value that occur before or after the display period will not be visible to a user.

[0081] 9 is an example flow chart illustrating an example process 900 for selectively applying overdrive voltages to pixel elements of a pixel array. With reference to FIGS. 2, 5A, 5B, and 7, the example process 900 may be performed by overdrive circuitry 240 and / or progressive overdrive controllers 500A, 500B, and / or 700. In some embodiments, the example process 900 may be used to determine a voltage to be applied to a particular pixel element that will cause the pixel element to transition from a current pixel value to a target pixel value.

[0082] First, the overdrive circuitry may determine a row location of the selected pixel element (910). For example, the row location may correspond to a particular line number of the corresponding pixel array. In some aspects, the row location may indicate the order in which the selected pixel element is updated in the pixel array. For example, the individual rows of the pixel array may be ordered from the lowest line number (l0) to the highest line number (l1). M ), may be updated sequentially (e.g., one row at a time).

[0083] The overdrive circuitry adjusts the row position of the selected pixel element to the first threshold line number I TH1 For example, the first threshold line number (e.g., line l in FIG. 4B) may be compared (920). n ) may correspond to the row of the pixel array to which overdrive is first applied. Aspects of the present disclosure recognize that because the pixel array is updated row by row, different pixel elements may have different transition times depending on their row location in the pixel array. More specifically, if the row location is lower than the first threshold line number (e.g., lines l0 and l1), n Pixel elements (between 0 and 1) may have enough time to settle to their target pixel value before the next display period.

[0084] Thus, if the row of the selected pixel element is below the first threshold line number (as tested in 920), the overdrive circuitry selects a target voltage to be applied to the selected pixel element (930). As explained above, the target voltage may be a voltage that, when applied to the selected pixel element, stabilizes the pixel element at the target pixel value.

[0085] However, if the row position of the selected pixel element is not below the first threshold line number (as tested in 920), the overdrive circuitry changes the row position of the selected pixel element to a second threshold line number I TH2 For example, the second threshold line number (e.g., line l in FIGS. 4A and 4B ) may be compared to (940). P ) may correspond to the row of the pixel array to which the maximum overdrive is applied first. Aspects of the present disclosure recognize that the amount of voltage that can be applied to a pixel element may be limited by the voltage range of the pixel element (or data driver). Accordingly, the overdrive voltage is applied to rows higher than the second threshold line number (e.g., line l p In some cases, pixel elements with higher (vertical) positions may be saturated by the time they are updated.

[0086] Thus, if the row of the selected pixel element is above the second threshold line number (as tested in 940), the overdrive generation circuitry selects the maximum overdrive voltage to be applied to the selected pixel element (950). As explained above, the maximum overdrive voltage may be the highest (or lowest) voltage achievable in the voltage range of the pixel element (or data driver).

[0087] However, if the row location of the selected pixel element is between the first threshold line number (as tested in 930) and the second threshold line number (as tested in 940), the overdrive circuitry may apply progressive overdrive to the selected pixel element (960). As described above with reference to Figures 4A and 4B, the amount of overdrive is determined by the line l n From p For example, the pixel count for line l may be increased incrementally for each successive row of pixel elements. p The pixel elements connected to line l are connected to line l to produce the same pixel value change. n A higher voltage may be applied to a pixel element connected to the overdrive circuitry than to a pixel element connected to the overdrive circuitry. In some embodiments, the overdrive circuitry may determine the amount of overdrive voltage to be applied to a selected pixel element based at least in part on one or more look-up tables (LUTs) stored in a LUT repository.

[0088] 10 is an exemplary flow chart illustrating an example process 1000 for determining an overdrive voltage to be used to drive a pixel element to a target pixel value. With reference to FIGS. 2, 5A, 5B, and 7, the example process 1000 may be performed by overdrive circuitry 240 and / or progressive overdrive controllers 500A, 500B, and / or 700. In some embodiments, the example process 1000 may be used to determine a voltage to be applied to a particular pixel element to cause the pixel element to transition from a current pixel value to a target pixel value.

[0089] The overdrive circuitry may first receive an overdrive index (1010). In some aspects, the overdrive index 503 may be determined based at least in part on a line or row number associated with the pixel element to be driven. However, other factors may also affect the amount of overdrive voltage required to achieve a desired change in pixel value within a frame update period. For example, the responsiveness of liquid crystals may vary with the temperature of the display. Thus, in some embodiments, the overdrive index 503 may be based on a combination of factors, including, but not limited to, the line or row number associated with the pixel element to be driven and the temperature of the display.

[0090] The overdrive circuitry may select 1020 a first lookup table (LUT) based on the overdrive index. For example, the overdrive circuitry may include a LUT repository that stores a number of LUTs. More specifically, each LUT may indicate a number of overdrive voltages for pixel elements in a corresponding row of the pixel array (as described with reference to FIG. 6). In some embodiments, the LUT repository may store a different LUT for each row of the pixel array. In some other embodiments, the LUT repository may store LUTs for some (but not all) of the rows of the pixel array. The first LUT selected by the overdrive circuitry may correspond to a LUT associated with a row that is closest to or lower than the row position (or line number) indicated by the overdrive index.

[0091] The overdrive circuitry may further select a second LUT based on the overdrive index (1030). The second LUT selected by the overdrive circuitry may correspond to a LUT associated with a row that is closest to or higher than the row position (or line number) indicated by the overdrive index. As described above, in some embodiments, the LUT repository may store a different LUT for each row of the pixel array. In such implementations, there may be a LUT associated with the row position indicated by the overdrive index. Thus, in some aspects, the second LUT may be the same as the first LUT (e.g., the LUT that is closest to or higher than the overdrive index may be the same as the LUT that is closest to or lower than the overdrive index).

[0092] The overdrive circuitry may generate the interpolation LUT based on a linear interpolation of the first and second LUTs (1040). For example, each element of the interpolation LUT may be generated based on a linear interpolation of corresponding elements of the first and second LUTs (e.g., as described with reference to FIG. 6). Thus, depending on the overdrive index, the overdrive voltage in the interpolation LUT may be closer to the voltage of the first LUT (e.g., when the overdrive index is closer to the row associated with the first LUT) or closer to the voltage of the second LUT (e.g., when the overdrive index is closer to the row associated with the second LUT).

[0093] Finally, the overdrive circuitry may determine 1050 an overdrive voltage to be applied to a row of pixel elements associated with the overdrive index based on a bilinear interpolation of the rows and columns of the interpolation LUT. For example, each cell of the interpolation LUT (as described in conjunction with FIG. 6) may indicate a respective overdrive voltage that may be used to drive pixel elements of a selected row of the pixel array from a current pixel value to a target pixel value. However, in some embodiments, the interpolation LUT may include only a portion of all possible grayscale values ​​for each of the target pixel value and the current pixel value. Thus, in some aspects, the overdrive circuitry may interpolate pixel values ​​of the interpolation LUT (as described in conjunction with FIG. 6) to determine an overdrive voltage to achieve a transition from any current pixel value to any target pixel value.

[0094] Those skilled in the art will appreciate that information and signals may be represented using any of a variety of different technologies and techniques. For example, the data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or combinations thereof.

[0095] Moreover, those skilled in the art will appreciate that the various illustrative logical blocks, modules, circuits, and algorithmic steps described in connection with aspects of the present disclosure may be implemented as electrical hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, the various illustrative components, blocks, modules, circuits, and steps have been described generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints required for the overall system. Those skilled in the art may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.

[0096] The methods, procedures, or algorithms described in connection with the aspects of the present disclosure may be embodied directly in hardware, in software modules executed by a processor, or in a combination of both. The software modules may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, removable disk, CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. Alternatively, the storage medium may be integral to the processor.

[0097] In the foregoing specification, embodiments have been described with reference to specific examples thereof. It will be apparent, however, that various modifications and changes may be made thereto without departing from the broader scope of the disclosure, as set forth in the appended claims. The specification and drawings are therefore to be regarded in an illustrative rather than a restrictive sense.

Claims

1. 1. A method for updating pixel values ​​of a pixel array, comprising the steps of: determining a first current pixel value and a first target pixel value for a first pixel element located in a first row of the plurality of rows of the pixel array; determining a second current pixel value and a second target pixel value for a second pixel element located in a second row of the plurality of rows; determining a first target voltage that will cause the first pixel element to settle to the first target pixel value based on the first pixel element having time to settle to the first target pixel value by a display period for the pixel array; determining a first overdrive voltage to be applied to the second pixel elements based on the display period and an order in which voltages are applied to the rows during a pixel adjustment period prior to the display period; applying the first target voltage to the first pixel element during the pixel adjustment period; applying the first overdrive voltage to the second pixel element during the pixel adjustment period; During the display period, activating one or more light sources to illuminate the pixel array; Including, the first overdrive voltage is greater than a second target voltage that stabilizes the second pixel element at the second target pixel value; method.

2. the first overdrive voltage is determined to transition the second pixel element from the second current pixel value to the second target pixel value by a start of the display period.

2. The method of claim 1.

3. determining a third current pixel value and a third target pixel value for a third pixel element located in a third row of the plurality of rows; determining a second overdrive voltage to be applied to the third pixel element based on the display period and the order in which voltages are applied to the rows of the pixel array during the pixel adjustment period; It further includes: a change in pixel value of the third pixel element from the third current pixel value to the third target pixel value is equal to a change in pixel value of the second pixel element from the second current pixel value to the second target pixel value; the second overdrive voltage is different from the first overdrive voltage; 2. The method of claim 1.

4. the first overdrive voltage is determined based on a plurality of look-up tables (LUTs); each of the plurality of LUTs indicating a plurality of overdrive voltages for pixel elements in a corresponding row of the plurality of rows; The method of claim 3.

5. Determining the first overdrive voltage comprises: determining a maximum overdrive voltage applicable to the second pixel element based on a voltage range of a data driver configured to provide the first overdrive voltage; selecting the first overdrive voltage to be equal to the maximum overdrive voltage in response to the second row being a given row or a row that is updated after the given row is updated during the pixel adjustment period; Including, 2. The method of claim 1.

6. A display device, comprising: one or more processors; a memory storing instructions that, when executed by the one or more processors, cause the display device to: determining a first current pixel value and a first target pixel value for a first pixel element located in a first row of the plurality of rows of the pixel array; determining a second current pixel value and a second target pixel value for a second pixel element located in a second row of the plurality of rows; determining a first target voltage that will cause the first pixel element to settle to the first target pixel value based on the first pixel element having time to settle to the first target pixel value by a display period for the pixel array; determining a first overdrive voltage to be applied to the second pixel elements based on the display period and an order in which voltages are applied to the rows during a pixel adjustment period prior to the display period; applying the first target voltage to the first pixel element during the pixel adjustment period; applying the first overdrive voltage to the second pixel element during the pixel adjustment period; During the display period, activating one or more light sources to illuminate the pixel array; and a memory for causing the Equipped with the first overdrive voltage is greater than a second target voltage that stabilizes the second pixel element at the second target pixel value; Display device.

7. the first overdrive voltage is determined to transition the second pixel element from the second current pixel value to the second target pixel value by a start of the display period. A display device according to claim 6.

8. Execution of the instructions causes the display device to: determining a third current pixel value and a third target pixel value for a third pixel element located in a third row of the plurality of rows; determining a second overdrive voltage to be applied to the third pixel elements based on the display period and the order in which voltages are applied to the rows of the pixel array during the pixel adjustment period; Then, a change in pixel value of the third pixel element from the third current pixel value to the third target pixel value is equal to a change in pixel value of the second pixel element from the second current pixel value to the second target pixel value; the second overdrive voltage is different from the first overdrive voltage; A display device according to claim 6.

9. the first overdrive voltage is determined based on a plurality of look-up tables (LUTs); each of the plurality of LUTs indicating a plurality of overdrive voltages for pixel elements in a corresponding row of the plurality of rows; A display device according to claim 6.

10. Execution of the instructions to determine the first overdrive voltage may cause the display device to: determining a maximum overdrive voltage applicable to the second pixel element based on a voltage range of a data driver configured to provide the first overdrive voltage; selecting the first overdrive voltage to be equal to the maximum overdrive voltage in response to the second row being a given row or a row that is updated later than the given row during the pixel adjustment period; Execute the A display device according to claim 6.

Citation Information

Patent Citations

  • Overdrive circuit and liquid crystal display panel driving apparatus including the same

    CN1804986A

  • Driving method employing overdrive control method and liquid crystal display device using the same

    JP2006030834A

  • Method for driving liquid crystal display, system for compensating for temperature variation in the liquid crystal display, and computer program product

    JP2008242458A

  • Liquid crystal display device and stereoscopic image display device

    JP2010091782A

  • Image display apparatus and control method thereof

    JP2012163762A