Offset drive scheme for digital display
12094387 ยท 2024-09-17
Assignee
Inventors
Cpc classification
G09G2320/0686
PHYSICS
G09G2310/08
PHYSICS
G09G2360/127
PHYSICS
G09G3/2092
PHYSICS
G09G2300/0452
PHYSICS
International classification
G09G3/20
PHYSICS
Abstract
A novel method for driving a digital display having a plurality of pixel rows includes receiving a frame of data to be written to the display in a predetermined frame time, dividing the frame time into a plurality of time intervals, defining a plurality of row groups, and defining a unique sequence for each row group to display corresponding multi-bit data words and a number of off states on the pixels of the rows of the row groups. The drive sequence of each row is offset with respect to an initial row by a unique predetermined number of off states. The predetermined numbers of off states ensure that the pixel updates of the groups do not overlap.
Claims
1. A method for driving a digital display including a plurality of pixels arranged in a plurality of rows, said method comprising: receiving a frame of data, said frame of data to be written to said digital display during a predefined frame time, said frame of data including one multi-bit data word corresponding to each pixel of said display, each multi-bit data word including a plurality of individual bits, each bit having a weight corresponding to an amount of time that said bit should be displayed by said corresponding pixel, each multi-bit data word capable of defining a maximum number of different intensity values; dividing said frame time into a total number of time intervals, said total number of time intervals being greater than said maximum number of different intensity values; defining a first set of said rows of said display; defining a second set of said rows of said display; defining a first sequence for displaying said corresponding multi-bit data words and one or more off states by said rows of said first set of rows, said first sequence beginning with the display of bits of said multi-bit data words; defining a second sequence for displaying said corresponding multi-bit data words and one or more off states on said rows of said second set of rows, said second sequence beginning with the display of an initial off state, said first sequence and said second sequence beginning during a same time interval of said number of time intervals; and displaying said frame of data and said off states on said display according to said first sequence and said second sequence; and wherein the number of time intervals during which off states are asserted on the pixels of said first set of rows during said first sequence is the same as the number of time intervals during which off states are asserted on the pixels of said second set of rows during said second sequence.
2. The method of claim 1, wherein: said multi-bit data words are binary weighted data words; and a duration of said initial off state of said second sequence is equal to 5, 10, 23, 43, 52, 77, or 88 of said time intervals.
3. The method of claim 2, wherein said duration of said initial off state of said second sequence is equal to 5 of said time intervals.
4. The method of claim 1, wherein: said first sequence includes loading data into said pixels of said first set of rows during a first set of said time intervals; said second sequence includes loading data into said pixels of said second set of rows during a second set of said time intervals; and said first set of said time intervals and said second set of said time intervals are mutually exclusive.
5. The method of claim 1, wherein: said first sequence includes sequentially loading said data bits of said multi-bit data words into said pixels in descending order of bit significance, loading an off state into said pixels, and then reloading said bits of said multi-bit data words into said pixels in ascending order of bit significance; and said second sequence includes sequentially loading a first off state into said pixels, loading said data bits of said multi-bit data words into said pixels in descending order of bit significance, reloading said bits of said multi-bit data words into said pixels in ascending order of bit significance, and then loading a second off state into said pixels.
6. The method of claim 5, wherein the duration of said off state in said first sequence is equal to a sum of the durations of said first off state and said second off state of said second sequence.
7. The method of claim 1, wherein: said first sequence includes a first bit that is displayed for a first time period; said second sequence includes a second bit that is displayed during at least a part of said first time period; and said second sequence includes a third bit that is displayed during at least a part of said first time period.
8. The method of claim 7, wherein said second sequence includes a fourth bit that is displayed during at least a part of said first time period.
9. The method of claim 8, wherein: said third bit is displayed for a second time period; said second time period starts after said first time period begins; and said second time period ends before said first time period ends.
10. The method of claim 1, further comprising: defining one or more additional sets of said rows of said display; asserting off states on the pixels of the rows of each set of rows for the same number of said time intervals; and determining said same number of time intervals based on a total number of sets of rows that are defined.
11. The method of claim 10, wherein: exactly three sets of rows are defined, and the same number of time intervals during which off states are asserted is ten; exactly four sets of rows are defined, and the same number of time intervals during which off states are asserted is twenty-three; exactly five sets of rows are defined, and the same number of time intervals during which off states are asserted is forty-three; exactly six sets of rows are defined, and the same number of time intervals during which off states are asserted is fifty-two; exactly seven sets of rows are defined, and the same number of time intervals during which off states are asserted is seventy-seven; or exactly eight sets of rows are defined, and the same number of time intervals during which off states are asserted is eighty-eight.
12. The method of claim 1, further comprising: defining an additional plurality of sets of rows; and wherein during every one of said time intervals, data is written to no more than one set of rows.
13. A method for displaying data on a display including a plurality of pixels arranged in a plurality of rows, said method comprising: receiving a frame of data to be written to said display during a predefined frame time, said frame of data including one multi-bit data word corresponding to each pixel of said display, each multi-bit data word including a plurality of individual bits, each bit having a weight corresponding to an amount of time that said bit should be displayed by said corresponding pixel, each multi-bit data word being capable of defining a maximum number of different intensity values; dividing said frame time into a total number of time intervals, said total number of time intervals being greater than said maximum number of intensity values; defining a plurality of groups of said rows; and defining a different update sequence for each group of said plurality of groups of said rows, each of said update sequences defining the particular ones of said time intervals during which said pixels of said rows of an associated group will be updated with bits of said multi-bit data words and other ones of said time intervals during which said pixels of said rows of said associated group will be updated with off states; and displaying said frame of data and said off states on said display according to said different update sequences; and wherein during each particular one of said time intervals, the pixels of no more than one group of rows will be updated.
14. The method of claim 13, wherein: a first update sequence associated with a first group of said rows begins with the sequential assertion of said bits of said multi-bit data words, each bit being asserted for a number of said time intervals corresponding to a significance of said bit being asserted, and ends with the assertion of off states for a predetermined number of said time intervals, said predetermined number of said time intervals depending on the number of groups in said plurality of groups; a second update sequence associated with a second group of said rows begins with the assertion of off states for said predetermined number of said time intervals and ends with the sequential assertion of said bits of said multi-bit data words, each bit being asserted for a number of said time intervals corresponding to a significance of said bit being asserted; and a third update sequence associated with a third group of said rows begins with the assertion of off states for an initial number of said time intervals, proceeds to the sequential assertion of said bits of said multi-bit data words, each bit being asserted for a number of said time intervals corresponding to a significance of said bit being asserted, and ends with the assertion of off states for a trailing number of said time intervals, a sum of said initial number of said off states and said trailing number of said off states is equal to said predetermined number of said off states.
15. The method of claim 14, wherein: an additional plurality of update sequences associated, respectively, with an additional plurality of groups of rows, each begins with the assertion of off states for a unique initial number of said time intervals, proceeds to the sequential assertion of said bits of said multi-bit data words, each bit being asserted for a number of said time intervals corresponding to a significance of said bit being asserted, and ends with the assertion of off states for a unique trailing number of said time intervals; and for each update sequence of said additional plurality of update sequences a sum of said unique initial number of said time intervals and said unique trailing number of said time intervals is equal to said predetermined number of said off states.
16. A display system including: a display including a plurality of pixels arranged in a plurality of rows; a frame buffer operative to receive a frame of data and to provide said data to said pixels of display responsive to control signals, said frame of data including one multi-bit data word corresponding to each pixel of said display, each multi-bit data word including a plurality of individual bits, each bit having a weight corresponding to an amount of time that said bit should be displayed by said corresponding pixel, each multi-bit data word capable of defining a maximum number of different intensity values; configuration data defining said frame time as a total number of time intervals, said total number of time intervals being greater than said maximum number of different intensity values, defining a first set of said rows of said display, defining a second set of said rows of said display, defining a first sequence for displaying said corresponding multi-bit data words and one or more off states by said rows of said first set of rows, said first sequence beginning with the display of bits of said multi-bit data words, and defining a second sequence for displaying said corresponding multi-bit data words and one or more off states on said rows of said second set of rows, said second sequence beginning with the display of on initial off state, said first sequence and said second sequence beginning during a same time interval of said number of time intervals; and a controller configured to generate control signals and coupled to provide said control signals to said frame buffer and said display, said control signals causing said frame of data and off states to be transferred to said pixels of said display according to said first sequence and said second sequence; and wherein said configuration data defines one or more additional sets of said rows of said display; said configuration data defines a total number of said time intervals during which off states are to be asserted in each sequence, said total number of said time intervals depending on a total number of sets of rows; said configuration data defines an additional unique sequence for asserting data and off states on each additional set of rows, each additional unique sequence beginning with the assertion of off states for a unique initial number of said time intervals, proceeding to the sequential assertion of said bits of said multi-bit data words, each bit being asserted for a number of said time intervals corresponding to a significance of said bit being asserted, and ending with the assertion of off states for a unique trailing number of said time intervals; and for each additional unique sequence a sum of said unique initial number of said time intervals and said unique trailing number of said time intervals is equal to said total number of said time intervals during which off states are to be asserted in each sequence.
17. The display system of claim 16, wherein: said multi-bit data words are binary weighted data words; and a duration of said initial off state of said second sequence is equal to 5, 10, 23, 43, 52, 77, or 88 of said time intervals.
18. The display system of claim 17, wherein said duration of said initial off state of said second sequence is equal to 5 of said time intervals.
19. A method for driving a digital display including a plurality of pixels arranged in a plurality of rows, said method comprising: receiving a frame of data, said frame of data to be written to said digital display during a predefined frame time, said frame of data including one multi-bit data word corresponding to each pixel of said display, each multi-bit data word including a plurality of individual bits, each bit having a weight corresponding to an amount of time that said bit should be displayed by said corresponding pixel, each multi-bit data word capable of defining a maximum number of different intensity values; dividing said frame time into a total number of time intervals, said total number of time intervals being greater than said maximum number of different intensity values; defining a first set of said rows of said display; defining a second set of said rows of said display; defining a first sequence for displaying said corresponding multi-bit data words and one or more off states by said rows of said first set of rows, said first sequence beginning with the display of bits of said multi-bit data words; defining a second sequence for displaying said corresponding multi-bit data words and one or more off states on said rows of said second set of rows, said second sequence beginning with the display of an initial off state, said first sequence and said second sequence beginning during a same time interval of said number of time intervals; and displaying said frame of data and said off states on said display according to said first sequence and said second sequence; and wherein said first sequence includes a first bit that is displayed for a first time period; said second sequence includes a second bit that is displayed during at least a part of said first time period; and said second sequence includes a third bit that is displayed during at least a part of said first time period.
20. A method for driving a digital display including a plurality of pixels arranged in a plurality of rows, said method comprising: receiving a frame of data, said frame of data to be written to said digital display during a predefined frame time, said frame of data including one multi-bit data word corresponding to each pixel of said display, each multi-bit data word including a plurality of individual bits, each bit having a weight corresponding to an amount of time that said bit should be displayed by said corresponding pixel, each multi-bit data word capable of defining a maximum number of different intensity values; dividing said frame time into a total number of time intervals, said total number of time intervals being greater than said maximum number of different intensity values; defining a first set of said rows of said display; defining a second set of said rows of said display; defining one or more additional sets of said rows of said display; defining a first sequence for displaying said corresponding multi-bit data words and one or more off states by said rows of said first set of rows, said first sequence beginning with the display of bits of said multi-bit data words; defining a second sequence for displaying said corresponding multi-bit data words and one or more off states on said rows of said second set of rows, said second sequence beginning with the display of an initial off state, said first sequence and said second sequence beginning during a same time interval of said number of time intervals; defining one or more additional sequences for displaying said corresponding multi-bit data words and one or more off states on said rows of said one or more additional set of rows; determining a same number of time intervals based on a total number of sets of rows that are defined; and displaying said frame of data and said off states on said display according to said first sequence, said second sequence, and said one or more additional sequences, by asserting said off states on the pixels of the rows of each said set of rows for said same number of said time intervals.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The present invention is described with reference to the following drawings, wherein like reference numbers denote substantially similar elements:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
DETAILED DESCRIPTION
(12) The present invention overcomes the problems associated with the prior art, by providing a display having an array of pixels logically separated into at least two groups of pixels and a pixel driver that drives the first group of pixels according to a drive sequence that is temporally offset from the drive sequence of the second group. In the following description, numerous specific details are set forth (e.g., number of pixels in a pixel array, specific display hosting devices, specific display circuitry, specific pixel weighting scheme, 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 display manufacturing practices and components have been omitted, so as not to unnecessarily obscure the present invention.
(13)
(14)
(15) In this double-buffered example embodiment, input buffer 204 has the capacity to hold two frames of input data. One frame of input data is the data required to represent a complete image on the screen. That is, one frame of data includes: (number of display rows)?(number of display columns)?(number of colors)?(number of bits per color). For example, for a 1920?1080 display, using 24-bit RGB data (8 bits per color), one frame of data would be 49,766,400 bits (approximately 50 Mb). Because system 100 is a double buffered system, input buffer 204 will have a capacity of two frames, or 99,532,800 bits (approximately 100 Mb). In the double buffered system, one frame of data can be written to half of input buffer 204, while a preceding frame of data is read from a second half of input buffer 204.
(16) Each 24-bits of data includes an 8-bit data word indicative a particular red intensity, an 8-bit data word indicative of a particular green intensity, and an 8-bit data word indicative of a particular blue intensity. In this example, each 8-bit data word is a binary-weighted data word. That is, the individual bit weights (or significances) are as follows: 2.sup.7, 2.sup.6, 2.sup.5, 2.sup.4, 2.sup.3, 2.sup.2, 2.sup.1, and 2.sup.0. Therefore, each 8-bit data word is capable of defining 256 different intensity values ranging from 0-255 (128+64+32+16+8+4+2+1). For example, the 8-bit data word (10101001) represents an intensity value of 169 (i.e., 128+0+32+0+8+0+0+1). Value 255 represents the maximum intensity/brightness, and value 0 represents the minimum intensity/brightness. Value 0, which represents the darkest possible pixel, can also be used to place the pixel in an off state. The assertion of three different intensity values on three different colored LEDs of a pixel result in the appearance of a single pixel of intermediate color and intensity.
(17) Row decoder 206 is coupled between controller and pixel array 208 and is configured to selectively assert row enable signals 216 onto the various pixel rows of pixel array 208 to cause the pixels of the enabled row to load a row of data 214 from input buffer 204 into pixel array 208. More specifically, row decoder 206 receives row address data 218 identifying rows on to which row enable signals 216 are to be asserted. Pixel array 208 is an m?n pixel array, wherein m is the number of columns and n is the number of columns. Pixel array 208 displays video (e.g., a rapid series of images) by asserting the bit-planarized data 214 received and latched from input buffer 204. The details of pixel array 208 will be described in greater detail with reference to
(18)
(19) Eventually, all 24 bits of the RGB data will be delivered to and displayed by the corresponding pixels. However, as described above, this is accomplished bit-by-bit. For example, during one row load bits B7.sub.R, B7.sub.G, and B7.sub.B can be delivered, via the set of three data lines 302, to the red, green, and blue LEDs of a pixel. Then, during a subsequent row load, bits B6.sub.R, B6.sub.G, and B6.sub.B can be delivered, via the set of three data lines 302, to the red, green, and blue LEDs of the same pixel. The process is repeated until all 24 bits of the RGB data are displayed at least once during a frame time.
(20) Each row of pixels 300 is electrically coupled to a respective row enable signal line 304. Responsive to the row decoder 206 asserting an enable signal on a row enable signal line 304, each pixel 300 of that particular row latches data (e.g., a red bit, a green bit, and a blue bit) from a respective set of data lines 302. To load a single frame of data from input buffer 204 to pixels 300, row enable signals are asserted on signal lines 304 in a predetermined order. For example, may start at line 304.sub.1 and finish on line 304.sub.m, but the controller can be configured to transfer data to the rows of pixels in any useful order. Each time controller 202 transitions the row enable signal from one row to another, controller 202 also provides control signals to input buffer 204 to coordinate the assertion by input buffer 204 of a different set of data bits on data lines 302.sub.1-302.sub.n.
(21) The following example summarizes the loading of a single frame of pixel data. Initially, row decoder 206 is not asserting an enable signal on any of row enable lines 304. Then, responsive to a row address from controller 202, input buffer asserts bit values corresponding to a particular row of pixels on data lines 302.sub.1-302.sub.n. Then, responsive to a row address and a load signal from controller 202, row decoder asserts a row enable signal on a corresponding one of row enable signal lines (e.g., signal lines 304.sub.1), thereby latching the data from lines 302.sub.1-302.sub.n into the respective enabled pixels 300. The row enable signal is asserted by row decoder 206 for a predetermined time and then removed. Next, responsive to a next row address from controller 202, input buffer 204 asserts bit values intended for second row of pixels 300 on data lines 302.sub.1-302.sub.n302. Then, responsive to a corresponding row address and a load signal from controller 202, row decoder 206 asserts a row enable signal on the next row enable signal line (e.g., signal lines 304.sub.2), thereby latching the new data being asserted on lines 302.sub.1-302.sub.n into the respective enabled pixels 300 of the second row. The transfer of data bits to the display proceeds sequentially from one row to the next, and repeats, until the entire frame of data (e.g., all bits of every multi-bit data word) and any off states are transferred to the display one or more times. Then, the same process can be used to transfer subsequent frames of data to the display. The relative timing of data bit transfer, row enable signals, and so on will be discussed below in greater detail with reference to several additional figures.
(22)
(23) Red light circuit 400 includes a switch 406, a latch 408, a first red ?LED 410, and a second red ?LED 412. Switch 406 has a control input coupled to row enable signal line 304 at a node 414, a data input coupled to red light intensity data line Bit.sub.r at a node 416, and a data output coupled to an input of latch 408 at a node 418. Latch 408 has an output coupled to inputs of both first ?LED 410 and second ?LED 412 at a node 420.
(24) Green light circuit 402 includes a switch 422, a latch 424, and a green ?LED 426. Switch 422 has a control input that is coupled to row enable signal line 304 at node 414, a data input that is coupled to green light intensity data line Bit.sub.g at a node 428, and an output that is coupled to latch 424 at a node 430. Latch 424 has an output that is coupled to an input of ?LED 426 at a node 432.
(25) Blue light circuit 404 includes a switch 434, a latch 436, and a blue ?LED 438. Switch 434 has a control input that is coupled to row enable signal line 304 at node 414, a data input that is coupled to blue light intensity data line Bit.sub.b at a node 440, and to latch 436 at a node 442. Latch 436 has an output that is coupled to an input of ?LED 438 at a node 444.
(26) The operation of pixel 300 is summarized as follows. First, three data bits of a multi-bit RGB data word are simultaneously asserted on respective data lines 302. Specifically, a first red bit is asserted on data line Bit.sub.r, a second green bit is asserted on data line Bit.sub.g, and a third blue bit is asserted on data line Bit.sub.b. Then, a row enable signal (e.g. digital high) is asserted on row enable signal line 304 and, via node 414, on the control inputs of switches 406, 422, and 434. Responsive to the row enable signal being asserted on their control inputs, each of switches 406, 422, and 434 asserts the bit on its data input onto its output. Thus, actuating switch 406 causes the bit value of Bit.sub.r to get stored into latch 408. Similarly, actuating switch 422 causes the bit value of Bit.sub.g to get stored into latch 424, and actuating switch 434 causes the bit value of Bit.sub.b to get stored into latch 436. When the row enable signal on row enable line 304.sub.1 is terminated (e.g., goes low), the data bits latched into latches 408, 424, and 436 remain stored until a subsequent row enable signal is asserted on row enable signal line 304 to load the next bits.
(27) The bit value stored in latch 408 is output to node 420, so when the bit value is a digital high, both red ?LEDs 410 and 412 illuminate. On the other hand, when the bit value stored in latch 408 and output to ?LEDs 410 and 412 is a digital low, both red ?LEDs 410 and 412 will be in an off state (e.g., dark). Similarly, the bit value stored in latch 424 is output to node 432, so when the bit value stored in latch 424 is a digital high, green ?LED 426 will illuminate. But, if the bit value stored in latch 424 is a digital low, green ?LED 426 will be off. The bit value stored in latch 436 is output to node 444, so if the bit value stored in latch 436 is a digital high, blue ?LED 438 will illuminate. However, if the bit value stored in latch 436 is a digital low, then blue ?LED 438 will be off.
(28)
(29) The example drive includes grouping the pixels of pixel array 208 into two or more groups and driving the different groups at different times, even though the different groups share the same data lines. The time offset allows pixel data to be loaded into one group, while the other group is between data update times. The invention is not limited to any number of groups or how the groups are defined. For example, one group can include the top half of pixel rows, while another group includes the remaining bottom half of pixel rows. As another example, the first group may include odd-numbered pixel rows while the second group includes even-numbered pixel rows.
(30) In this example, 24-bit RGB video data is loaded into pixel array 208. Each 24-bits includes an 8-bit data word to define a red intensity level, an 8-bit data word to define a green intensity level, and an 8-bit data word to define a blue intensity level. Together, the three 8-bit data words combine to determine a color and brightness displayed by a pixel.
(31) The example method uses a binary-weighted bit scheme. More specifically, each 8-bit data word (b.sub.7, b.sub.6, b.sub.5, b.sub.4, b.sub.3, b.sub.2, b.sub.1, b.sub.0) is a binary number that specifies an intensity value. The time during which all of the data corresponding to one display image is asserted (one or more times) on the pixels of the display is called the frame time. The frame time can be divided into a number of coequal time segments, and the significance of each bit of the binary number corresponds to a number of the coequal time segments during which the particular bit will be displayed. In a particular binary weighted scheme, for example: bit b.sub.0 has a bit significance of 2.sup.0 and is displayed for one time segment; bit b.sub.1 has a bit significance of 2.sup.1 and is displayed for two time segments; bit b.sub.2 has a bit significance of 2.sup.2 and is displayed for four time segments; bit b.sub.3 has a bit significance of 2.sup.3 and is displayed for eight time segments, bit b.sub.4 has a bit significance of 2.sup.4 is displayed for sixteen time segments; bit b.sub.5 has a bit significance of 2.sup.5 and is displayed for thirty-two time segments; bit b.sub.6 has a bit significance of 2.sup.6 and is displayed for sixty-four time segments; and bit b.sub.7 has a bit significance of 2.sup.7 and is displayed for one-hundred and twenty-eight time segments. Accordingly, b0 is the least significant bit (LSB) that has an intensity precision of 1/256 of full intensity. In this particular drive scheme, each frame includes 72 time segments.
(32) In some cases, it is desirable to write the same frame of date to the display more than once during a single frame time. For example, in the sequences shown in
(33) The following example summarizes one process of loading a single frame of video data into pixel array 208. As previously mentioned, pixel array 208 can driven by 24-bit video data, which includes 8-bit data words for red intensity, 8-bit data words for green intensity, and 8-bit data words for blue intensity. However, the invention is not limited to displays driven by 8-bit data words. Rather, the drive scheme applies to other display systems that use data words having a greater or lesser number of bits. In order to simplify the drawing and explanation of an example process, timing diagram 500 will describe the loading of a frame of 5-bit grayscale data.
(34) As shown in
(35) The time difference between the loading of the b.sub.4 bits into the rows of Group (1) 502 and Group (2) 504 can be considered a temporal offset. In this case, the offset is 5 time intervals. Significantly, for binary-weighted data schemes, this offset of five time intervals ensures that a data load of the subsequent bits into the rows of Group (1) 502 will not coincide with a data load of subsequent bits into the rows of Group (2) 504.
(36) Next, at time t.sub.16, the b.sub.3 bits begin sequentially loading into the rows of Group (1) 502 and are displayed for 8 time segments. At time t.sub.21, the b.sub.3 bits begin loading into the rows of Group (2) 504 and are displayed for 8 time segments. Then, at time t.sub.24, the b.sub.2 bits begin loading into the rows of Group (1) 502 and are displayed for 4 time segments. At time t.sub.28, the b.sub.1 bits begin loading into the rows of Group (1) 502 and are displayed for 2 time segments. Next, at time t.sub.29, the b.sub.2 bits begin loading into the rows Group (2) 504 and are displayed for four time segments. At time t.sub.30, the b.sub.0 bits (LSBs) begin loading into the rows of Group (1) 502 and are displayed for 1 time segment (the LSB time). Immediately thereafter, at time t.sub.31, digital low values corresponding to an off-state begin loading into the rows of Group (2) 502 and are displayed for 10 time segments. At time t.sub.33, the b.sub.1 bits begin loading into the rows of Group (2) 504 and are displayed for 2 time segments. Next, at time t.sub.35, the b.sub.0 bits begin loading into the rows of Group (2) 504 and are displayed for 1 time segment.
(37) Time t.sub.36 marks the temporal center of the frame time. At this point, the b.sub.0-b.sub.4 bits (a complete frame of data) have been sequentially displayed, in descending order of significance, by the rows of both Group (1) 502 and Group (2) 504. During the second half of the frame time, all of the b.sub.0-b.sub.4 bits will be loaded and displayed again, but this time in increasing order of significance. As a result, the data will be displayed temporally symmetrically about the center point of the frame time.
(38) At time t.sub.36, the b.sub.0 bits do not need to be reloaded into the rows of Group (2) 504, because they were already loaded, but are merely displayed for 1 additional time segment. Then, at time t.sub.37, the b.sub.1 bits begin loading into the rows of Group (2) 504 and are displayed for 2 time segments. At time t.sub.39, the b.sub.2 bits begin loading into the rows of Group (2) 504 and are displayed for 4 time segments. Next, at time t.sub.41, the b.sub.0 bits begin loading into the rows of Group (1) 502 and are displayed for 1 time segment. Immediately thereafter, at time t.sub.42, the b.sub.1 bits begin loading into the rows of Group (1) 502 and are displayed for 2 time segments. Then, at time t.sub.43, the b.sub.3 bits begin loading into the rows of Group (2) 504 and are displayed for 8 time segments. At time t.sub.44, the b.sub.2 bits begin loading into the rows of Group (1) 502 and are displayed for 4 time segments. Next, at time t.sub.48, the b.sub.3 bits begin loading into the rows of Group (1) 502 and are displayed for 8 time segments. At time t.sub.51, the b.sub.4 bits begin loading into the rows of Group (2) 504 and are held for 16 time segments. Then, at time t.sub.56, the b.sub.4 bits begin loading into the rows of Group (1) 502 and are displayed for 16 time segments. At time t.sub.67, digital low values (off states) begin loading into the rows of Group 504 and are displayed for 10 time segments, which carry over and end at time t.sub.5 of the following frame when bit b.sub.4 of the following frame is loaded into the rows of Group (2) 504. As explained above, and is visible in
(39) In this example, off states (e.g., a dark pixel) is achieved by loading a digital low into the pixel. However, other types of displays can have different means of turning a pixel off. The processes and driving methods disclosed herein are compatible with and can be used in conjunction with any such different displays.
(40) In the view of
(41) For example, consider time t30, where the LSB is loaded into the rows of Group (1) 502. If the rows of Group (2) 504 were also loaded during t30 (immediately following the loading of Group (1) 502, the loading of Group (2) 504 would not be completed by time t31. By the time the loading of rows of Group (2) 504 was completed, the LSB would have already been displayed by the rows of Group (1) 502 for too long.
(42)
(43) Although signals 506 and 508 may appear different, the resulting intensity of both are the same. Because the data word and off states are displayed twice in the frame time, the voltage is high (V.sub.H) (pixel on) for a total of 28 time segments (2?14) out of the 72 time segments, and the voltage is low (V.sub.L) (pixel off) for the other 44 time segments, 10 of which are off states. The human eye will integrate the on states, and so the intensity (01110) will appear the same, regardless of which group of rows displays the value.
(44) The same number of off states should be introduced into the driving sequence of each group of rows. If additional logical groups of rows are defined, more off states will be used to offset the driving sequences of those additional groups. However, every group of rows will use the same number of off states as the row group requiring the greatest offset. As will be explained below, those off states will be distributed differently within the driving sequences of the respective rows.
(45) The introduction of the off states to accommodate the offset between groups of rows results in a loss in optical efficiency. For example, because the off states corresponding to the offset occupy a total of 10 time segments (5 in the first half of the frame time and 5 in the second half of the frame time), the maximum possible intensity represented by the data word 11111 would result in an on state for 62 (2?31) time segments out of 72 time segments. To accommodate for this loss
(46)
in optical efficiency, the electrical current supplied to the ?LEDs may be increased. The optical efficiency for different length data words will be discussed in further detail with reference to upcoming
(47) In choosing the number of time segments to offset the loading of Row Group (2) 504 from the loading of Row Group (1) 502, certain unique offset numbers will prevent the time intervals during which bits are loaded into Row Group (1) 502 from coinciding with the time intervals during which bits are loaded into Row Group (2) 504. For example, by offsetting row group 504 from row group 502 by 5 time segments, the times at which new data is loaded into the rows of Group (1) 502 (i.e., t.sub.0, t.sub.16, t.sub.24, t.sub.28, t.sub.30, t.sub.31, t.sub.41, t.sub.42, t.sub.44, t.sub.48, and t.sub.56) do not overlap or coincide with the times at which new data is loaded into the rows of Group (2) 504 (i.e., t.sub.5, t.sub.21, t.sub.29, t.sub.33, t.sub.35, t.sub.36, t.sub.37, t.sub.39, t.sub.43, t.sub.51, and t.sub.67). On the other hand, if row group 504 is offset from row group 502 by a number of time segments other than these unique numbers, the time intervals during which new data is loaded into the rows of Group (1) 502 will overlap with the time intervals during which new data is loaded into the rows of Group (2) 504 at least once. As previously mentioned, it is desirable that these times should not overlap due to the limitations of the LSB time.
(48) Note also that the data bits can be loaded into each segment in the same order (e.g., b.sub.4, b.sub.3, b.sub.2, b.sub.1, b.sub.0, b.sub.0, b.sub.1, b.sub.2, b.sub.3, b.sub.4). In prior art systems, more complicated arrangements of bit order were used to try to accommodate shorter LSB times.
(49)
(50) The Row Group #identifies a logical group of rows, but does not necessarily dictate a sequence or number of row groups that are defined. For example, the rows of a display could be divided into three groups, with group 1 having no offset, group 2 having an offset of 10, and group 3 having an offset of 52. In this case there would be no overlap in the updating of the rows of the groups. However, as will be explained below, there would be an unnecessarily large loss in optical efficiency. For efficiency sake, once the number of row groups is determined, using the row groups with the least amount of offset is preferred.
(51)
(52) The total number of off states (for each half of the frametime) is determined based on the number logical row groups that are defined. In particular, the total number of off states is selected to be equal to the offset of the row having the greatest offset. So, according to table 600 of
(53) After the halfway point 702 of the frame time, the pixels of Row Group 1 display the same number of off states, and then again display the data for Row Group 1. In this second display of the data for Row Group 1, the data will be rearranged so as to maintain temporal symmetry about the halfway point 702. For example, in the first half of the frame time, the data bits can be displayed in order of decreasing significance. Then, in the second half of the frame time, the data bits can be displayed in order of increasing significance.
(54) The sequence for Row Group 2 begins with a number of leading off states (L.sub.off) corresponding to the desired offset for Row Group 2. Because Row Group 2 is the second defined group of rows, then according to table 600 of
(55) The sequence for Row Group 3 begins with the display of a number of leading off states, proceeds to the display of the pixel data, which is followed by the display of a number of trailing off states. For Row Group 3, according to table 600, the number leading off states is 10. Therefore, if the total number of off states x=23, then the number of trailing off states will be 13 (23?10).
(56) The sequence for Row Group (y) begins with the display of the maximum number of leading off states (x). The display of the x leading off states is followed by the display of the pixel data, which ends at the halfway point 702 of the frame time. The sequence for Row Group (y) does not include any trailing off states.
(57) For each Row Group 1?y, the display sequence for the second half of the frame time is the reverse of the display sequence for the first half of the frame time. As indicated above, using the reverse sequence in the second half of the frame time maintains temporal symmetry about the halfway point 702. Also, the sequence for each row group includes the same number of off states.
(58)
(59) The sequence for Row Group 1 is initiated at time t.sub.0 with the display of the pixel data, which continues for 255 time segments and is followed by 23 off states up to the halfway point of the frame time. Then, in the second half of the frame time, the same sequence for Row Group 1 is displayed in reverse order. The sequence for row Group 2 begins at time t.sub.0 with the display of an off state, which continues for 5 time segments, then proceeds to the display of the pixel data for Row Group 2, which takes 255 time segments, and then displays off states again for 18 (23?5) time segments, up to the halfway point of the frame time. Then, in the second half of the frame time, the same sequence for Row Group 2 is displayed in reverse order. The sequence for Row Group 3 begins at time t.sub.0 with the display of off states, which continues for 10 time segments. Then the pixel data for Row Group 3 is displayed over the next 255 time segments. After the display of the pixel data, off states are displayed again for 13 (23?10) time segments up to the halfway point of the frame time. Then, in the second half of the frame time, the same sequence for Row Group 3 is displayed in reverse order. Finally, for Row Group 4, off states are initiated at time t.sub.0 and continue for 23 time segments. Then, the pixel data for Row Group 4 is displayed over the next 255 time segments, up to the halfway point of the frame time. Then, in the second half of the frame time, the same sequence for Row Group 4 is displayed in reverse order.
(60)
(61) Table 900 is useful in determining a good compromise between the number of row groups to use and efficiency. The greater the number of row groups, the greater bit depth, color precision, and intensity precision. However, the increased number of row groups comes at the cost of efficiency. The inventor has discovered that an efficiency of around 95% is acceptable, at least in part because the output of the ?LEDs can be increased slightly by increasing the electrical current through the ?LEDs. Therefore, for a 10-bit system, 5 or 6 logical row groups is a good compromise. On the other hand, for an 8-bit system, 3 logical row groups is a good compromise.
(62)
(63) 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 types of digital displays (e.g. liquid crystal displays, monochromatic displays, and so on), may be substituted for the ?LED display. As another example, the pixel array may include different circuitry for loading data bits and/or off states. As yet another example, although the example embodiments included multi-color pixels, the methods described herein are also advantageous in grayscale displays. As yet another example, in the illustrated drive schemes the multibit data words are each written twice during a frame time (symmetrically about a temporal center of the frame time). However, the data words can be written only once during each frame time, as long as the loading of each segment does not coincide with the loading of another segment. 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.