US 20040196302 A1
Systems and methods are disclosed to subpixel render source image data over time. Temporal subpixel rendering may be used to improve viewing angle in LCD displays or to improve subpixel rendering in other display technologies.
1. In a display system comprising a graphics subsystem, said graphics subsystem further comprising a subpixel rendering system, and a display being driven by said graphics subsystem wherein said display further comprises a plurality of colored subpixels across said display, each of said colored subpixels further comprising at least one of a group of a first color, a second color and a third color,
a method for subpixel rendering colored subpixel data over time, the steps of said method comprising:
inputting a first and a second adjacent source image data of a first color;
in a first frame, outputting said first adjacent source image data of said first color to a first color subpixel location on said panel;
in a second frame, outputting said second adjacent source image data of said first color to the same said first color subpixel location on said panel.
 The present application is related to commonly owned (and filed on even date) U.S. patent applications: (1) U.S. patent application Ser. No. ______ entitled “SUB-PIXEL RENDERING SYSTEM AND METHOD FOR IMPROVED DISPLAY VIEWING ANGLES”; and (2) U.S. patent application Ser. No. ______ entitled “SYSTEMS AND METHODS FOR MOTION ADAPTIVE FILTERING”, which are hereby incorporated herein by reference.
 In commonly owned U.S. patent applications: (1) U.S. patent application Ser. No. 09/916,232 (“the '232 application”) entitled “ARRANGEMENT OF COLOR PIXELS FOR FULL COLOR IMAGING DEVICES WITH SIMPLIFIED ADDRESSING” filed Jul. 25, 2001; (2) U.S. patent application Ser. No. 10/278,353 (“the '353 application”), entitled “IMPROVEMENTS TO COLOR FLAT PANEL DISPLAY SUB-PIXEL ARRANGEMENTS AND LAYOUTS FOR SUB-PIXEL RENDERING WITH INCREASED MODULATION TRANSFER FUNCTION RESPONSE,” filed Oct. 22, 2002; (3) U.S. patent application Ser. No. 10/278,352 (“the '352 application”), entitled “IMPROVEMENTS TO COLOR FLAT PANEL DISPLAY SUB-PIXEL ARRANGEMENTS AND LAYOUTS FOR SUB-PIXEL RENDERING WITH SPLIT BLUE SUBPIXELS,” filed Oct. 22, 2002; (4) U.S. patent application Ser. No. 10/243,094 (“the '094 application), entitled “IMPROVED FOUR COLOR ARRANGEMENTS AND EMITTERS FOR SUBPIXEL RENDERING,” filed Sep. 13, 2002; (5) U.S. patent application Ser. No. 10/278,328 (“the '328 application”), entitled “IMPROVEMENTS TO COLOR FLAT PANEL DISPLAY SUB-PIXEL ARRANGEMENTS AND LAYOUTS WITH REDUCED BLUE LUMINANCE WELL VISIBILITY,” filed Oct. 22, 2002; (6) U.S. patent application Ser. No. 10/278,393 (“the '393 application”), entitled “COLOR DISPLAY HAVING HORIZONTAL SUB-PIXEL ARRANGEMENTS AND LAYOUTS,” filed Oct. 22, 2002; (7) U.S. patent application Ser. No. ______ (“the '______ application”), entitled “IMPROVED SUB-PIXEL ARRANGEMENTS FOR STRIPED DISPLAYS AND METHODS AND SYSTEMS FOR SUB-PIXEL RENDERING SAME,” filed Jan. 16, 2003, novel subpixel arrangements are therein disclosed for improving the cost/performance curves for image display devices and herein incorporated by reference.
 These improvements are particularly pronounced when coupled with subpixel rendering (SPR) systems and methods further disclosed in those applications and in commonly owned U.S. patent applications: (1) U.S. patent application Ser. No. 10/051,612 (“the '612 application”), entitled “CONVERSION OF RGB PIXEL FORMAT DATA TO PENTILE MATRIX SUB-PIXEL DATA FORMAT,” filed Jan. 16, 2002; (2) U.S. patent application Ser. No. 10/150,355 (“the '355 application”), entitled “METHODS AND SYSTEMS FOR SUB-PIXEL RENDERING WITH GAMMA ADJUSTMENT,” filed May 17, 2002; (3) U.S. patent application Ser. No. 10/215,843 (“the '843 application”), entitled “METHODS AND SYSTEMS FOR SUB-PIXEL RENDERING WITH ADAPTIVE FILTERING,” filed Aug. 8, 2002,—all patent applications and other references mentioned in this specification are herein incorporated by reference.
 The accompanying drawings, which are incorporated in, and constitute a part of this specification illustrate exemplary implementations and embodiments of the invention and, together with the description, serve to explain principles of the invention.
FIG. 1 depicts an observer viewing a display panel and the cones of acceptable viewing angle off the normal axis to the display.
FIG. 2 shows one embodiment of a graphics subsystem driving a panel with subpixel rendering and timing signals.
FIG. 3 depicts an observer viewing a display panel and the possible color errors that might be introduced as the observer views subpixel rendered text off normal axis to the panel.
FIG. 4 depicts a display panel and a possible cone of acceptable viewing angles for subpixel rendered text once techniques of the present application are applied.
FIGS. 5 through 8 show several embodiments of performing temporal subpixel rendering over two frames.
FIG. 9 shows a two curves of brightness (100% and 50%) versus viewing angle on a LCD display.
FIGS. 10A-10E show a series of curves depicting the performance of brightness versus time when the response curve of a typical liquid crystal is modulated by various pulse trains.
FIGS. 11A-11D show another series of curves of brightness versus time with different types of pulse trains.
FIGS. 12 and 13 depict several embodiments of implementing temporal subpixel rendering.
 Reference will now be made in detail to implementations and embodiments, examples of which are illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts.
FIG. 1 shows a display panel 10 capable of displaying an image upon its surface. An observer 12 is viewing the image on the display at an appropriate distance for this particular display. It is known that, depending upon the technology of the display device (liquid crystal display LCD, optical light emitting diode OLED, EL, and the like) that the quality of the displayed image falls off as a function of the viewing angle, but particularly so for LCDs. The outer cone 14 depicts an acceptable cone of viewing angles for the observer 12 with a typical RGB striped system that is not performing sub-pixel rendering (SPR) on the displayed image data.
 A further reduction in acceptable viewing angle (i.e. inner cone 16) may occur when the image data itself is sub-pixel rendered in accordance with any of the SPR algorithms and systems as disclosed in the incorporated applications or with any known SPR system and methods. One embodiment of such a system is shown in FIG. 2 wherein source image data 26 is placed through a driver 20 which might include SPR subsystem 22 and timing controller 24 to supply display image data and control signals to panel 10. The SPR subsystem could reside in a number of embodiments. For example, it could entirely in software, on a video graphics adaptor, a scalar adaptor, in the TCon, or on the glass itself implemented with low temperature polysilicon TFTs.
 This reduction in acceptable viewing angle is primarily caused by color artifacts that may appear when viewing a subpixel rendered image because high spatial frequency edges have different values for red, green, and blue subpixels. For example, black text on a white background which uses SPR on a design similar to FIG. 5 will result in the green subpixels switching between 100% and 0% while the red and blue subpixels switching from 100% to 50%.
FIG. 3 depicts the situation as might apply to subpixel rendered black text 30 on a white background. As shown, observer 12 experiences no color artifact when viewing the text substantially on the normal axis to the panel 10. However, when the observer “looks down or up” on the screen, the displayed data may show a colored hue on a liquid crystal display (LCD), which is due to the anisotropic nature of viewing angle on some LCDs for different gray levels, especially for vertical angles (up/down). Thus it would be desirable to perform corrections to the SPR data in order to increase the acceptable viewing angle 40 of SPR data, as depicted in FIG. 4.
 Currently, red and blue image data are averaged via a SPR process to create the proper value on the red and blue subpixels on a display. This averaging causes viewing angle problems for some liquid crystal displays because the viewing angle characteristics are a function of the voltage setting on the pixel. To smooth out the visual effects, several embodiments disclosed herein describe a temporal method to create the average value such that the viewing angle is not affected by subpixel rendering. As will be discussed further below in connection with FIG. 12, one embodiment takes the image data from two adjacent source pixels and uses them sequentially frame by frame. Since the data from pixel to pixel does not change dramatically, there should be no flicker observed. For sharp transitions, adaptive filtering takes over and this temporal averaging can be turned off.
 As an example, FIG. 5 shows how a “white” line can be rendered on a panel having a subpixel repeat grouping—such as grouping 50 which comprises red subpixels 52, green subpixels 54, and blue subpixels 56. It will be appreciated that this choice of subpixel repeat grouping is merely for illustrative purposes and that other subpixel repeat groupings would suffice for purposes of the present invention. Such other subpixel repeat groupings are further described in the above-incorporated by reference patent applications.
FIGS. 5-8 depict various embodiments of temporally subpixel rendering a single vertical white line in order to reduce the amount of off-normal axis color error. In Frame 1 of FIG. 5, the first three columns of colored subpixels are fully illuminated (as indicated by the heavy hatching lines); whereas in Frame 2 of FIG. 5, only the middle column of green subpixels are fully illuminated and the rest are off. If the two frames are switched sufficiently fast enough, then the visual effect remains a “white” line; but, as will be explained below, reduces the amount of off-normal axis color error.
FIG. 6 shows Frame 1 with the top row (first three subpixels) and only the bottom middle column green subpixel as fully illuminated. Frame 2 has the bottom row (first three subpixels) and top middle column green subpixel as fully illuminated.
FIG. 7 shows Frame 1 with upper left and lower right red subpixels with two middle green subpixels fully illuminated. Frame 2 has the lower left and upper right blue subpixels with two green subpixels fully illuminated.
FIG. 8 shows Frame 1 with the first two columns fully illuminated; while Frame 2 shows the second and third columns fully illuminated. All four FIGS. 5-8 depict embodiments of performing subpixel rendering in time that produces for the human viewer the proper color on the normal axis viewing; while reducing the color error introduced on off-normal axis viewing—particularly for LCD displays. These combinations of ON and OFF pixels can be varied in a prescribed time sequence to minimize flicker; for example, the sequence of FIG. 5 through 8 could be repeated over 8 frames of data.
 For illustrative purposes, FIG. 9 depicts why these color artifacts arise. When a single “white” line is drawn as in Frame 1 of FIG. 5 and held over time (which is typical for SPR that does not vary over time), it is centered on the middle row of green subpixels. As measured on the normal axis, the middle column of green subpixels is fully illuminated at 100% brightness level; the blue and the red subpixels are illuminated at 50% brightness. Put another way, the green subpixel is operating with a filter kernel of  (i.e. the “unity” filter with ‘255’ being 100% on a digital scale); while the blue and red subpixels have a filter kernel of [128 128] (i.e. a “box” filter with ‘128’ being 50% on a digital scale). At zero viewing angle (i.e. normal to the display), a “white” line is shown because the red and blue subpixels are of double width of the green subpixels. So with G˜100, R˜50, B˜50, a chroma-balaced white is produced at 100−2×(50)−2×(50). The multiplicative factor of “2” for red and blue comes from the fact that the red and blue subpixels are twice the width of the green subpixels.
 As the viewing angle increase to angle ΘUP, then the observer would view a fall-off of ΔG in the green subpixel brightness—while viewing a ΔR,B fall-off in the brightness of either the red or the blue subpixel brightness. Thus, at ΘUP, there is G′˜80, R′˜20, B′˜20, which results in the image of the white line assuming a more greenish hue—e.g. 80−2×(20)−2×(20). For angle ΘDOWN, the green pixels will again fall off an amount ΔG, while the red and blue subpixels will actually rise an amount ΔR,B. In this case, the white line will assume a magenta hue.
 So, to correct for this color artifact, it might be desirable to drive the red and blue subpixels effectively on a different curve so that the delta fall-off in the green vs. the red/blue subpixels better match each other as a relative percentage of their total curve. An intermediate curve which is the average curve between 100% and 0% is shown in FIG. 9. This intermediate curve depicts the time-averaged curve that occurs if the red and blue subpixels are driven in Frame 1 to 100% luminance and in Frame 2 to 0% luminance. As may be seen, at the same off-normal axis angle as in FIG. 9, the difference in the fall-off between the green and the red/blue subpixels are better matched.
 Other embodiments and refinements of the above temporal subpixel rendering are possible. FIGS. 10A, B, and C are a series of three graphs. FIG. 10A shows a typical brightness response curve of a liquid crystal over time. FIG. 10B shows a series of pulse trains—each a width equal to one frame and represents the voltage applied to the red and blue subpixels (e.g. for the white line example above). Thus, the red and blue subpixels are driven to 100% luminance for odd frames and 0% for even frames.
 As may be seen, the response time for liquid crystals (as shown in FIG. 10A) is longer than the frame time, as shown in FIG. 10B. Thus, FIG. 10C shows the resulting brightness response of the red and blue subpixels on the display. As with our above example, the green subpixels are driven at 100% luminance. The average response for the red and blue subpixels in FIG. 10C is around 20%—which does not a chroma-balaced white; but more of a greenish hue.
 To correct this color imbalance, FIG. 10D depicts one embodiment of drive voltages that achieves approximately 50% average brightness of the red and blue subpixels. The effect of driving the red and blue subpixels with such pulse train—that is, having two voltages that would straddle the subpixels 50% luminance point of that subpixel is shown in FIG. 10E. It will be appreciated that any suitable pairs of voltage values that substantially gives the resulting luminance curve of FIG. 10E would suffice—so the present invention is not limited to the two voltages depicted in FIG. 10D.
 An alternate embodiment that achieves a 50% average brightness but experiences a near 100% and 0% peak luminances would improve the overall viewing angle performance because the liquid crystal has a best viewing angles at these two extreme luminance values. If the LC does not fully switch, then the brightness of the red and blue pixels will be wrong and color fringing will be seen. In this case, a “gain” or offset to the pixel values can be applied so as to achieve the desired brightness. For example, if the pixel cannot fully switch in a frame time (˜15 ms), then the average brightness (transmission) of the LCD will be less than the average of the two pixel values. If a black to white edge is desired, then the two values are 100% and 0% for an average of 50%. If, for example, the LC only switches to 50% and then goes back to 0%, it will be necessary to multiply the two pixel values by 0.5 and then add 0.25. Then the two states will switch between 100*0.5+0.25=75% and 0*0.5+0.25=25% for an average of the desired 50%. These gain and offset values are adjusted empirically or can be calculated; once determined, they will be the same for all panels unless the LC material or cell gap is changed. The color stability will not be as good as with faster responding LC material, but will be an improvement over non-temporal filtering. One may also just adjust the lower value, leaving the higher value constant. This may improve the viewing angle.
 An alternative embodiment is now described that uses multiple numbers of frames to achieve the desired temporal averaging. FIGS. 11A and 11B depict a pulse train optimized for a certain liquid crystal performance, such as depicted in FIG. 10A (e.g. a slower rise time than fall time). FIGS. 11C and 11D depict a pulse train optimized for a liquid crystal having a performance curve in which the rise time and fall times are more equal.
FIG. 11A shows a pulse train in which the voltage applied to the red and blue subpixels is 100% for two frames and 0% for one frame. FIG. 11B is the resulting brightness. FIG. 11C shows a pulse train in which the voltage applied to the red and blue subpixels is 100% for three frames and 0% for three frames. FIG. 11D is resulting brightness. As can be seen in both FIGS. 11B and 11D, the liquid crystal spends most of its time at either 100% or at 0% with an average about 50%.
 With either FIG. 11B or 11D, however, there is a potential for flicker in the red and blue subpixels. This potential flicker can be reduced by varying the pulse train temporally or spatially. For example, the red and blue subpixels that are near each other on the panel can be driven with the same pulse train but taken at different phase from each other. Thus, the red and blue subpixels are effectively interlaced to reduce the temporal flicker effect. The same phased pulse trains could be applied to neighboring red subpixels themselves or blue subpixels themselves to achieve the same result. Additionally, the pulse trains could be designed to minimize observable flicker in other ways: (1) by keeping the flicker frequency as high as possible; and/or (2) by designing the pattern to have less energy in lower frequency flicker components and more energy in higher frequency components.
 Other embodiments of suitable pulse trains to achieve substantially the same result can be designed to match any given liquid crystal performance curve. For example, if the liquid crystal has a fast rise time and slow fall time then an appropriate pulse train may be 0% for frame 1, 100% for frame 2 and 3, and then repeat.
 In general, by using arbitrary number of frames in an on/off-pattern-period, one can design a pulse trains or patterns of ON's and OFF's that ultimately give the correct average pixel luminance. As discussed, separate patterns can be applied to each color. This technique may have lower temporal resolution, but judiciously applied to static images, the correct amount of emitted light from a particular pixel may be realized. In the case of scrolling text, the technique may also be applied. Since the operator in general is not attempting to read the text while it is moving, any temporal distortion of the text due to the applied pattern will not negatively impact the user's experience. The patterns can be designed to provide color correction to scrolling text.
 This embodiment avoids the necessity of employing a voltage offset from the zero value as used in FIG. 10D to realize arbitrary values of subpixel luminance, thereby avoiding viewing angle and color error problems introduced with non-zero values. By using only full ON and full OFF values, the performance should be similar to RGB stripe panel performance.
 Another example of a suitable pulse train is as follows: consider a four frame pattern is 1,1,1,0 (or some other arbitrary pattern) that is applied to red and blue subpixels such that the flicker from each cancels each other—i.e. red and blue subpixels are out of luminance phase. Green remains unmodulated in this example. Theoretically, the output luminance will be 75% of maximum for red and blue subpixels. However, given the asymmetry of the ON and OFF response times, the response will be less than 75%, approaching 50% depending on the specific LC response time. The flicker frequency will be 15 Hz assuming a 60 Hz refresh rate, but the variations can be minimized by phasing the red and blue to cancel each other. The remaining flicker will be a fraction of the total light due to the proximity of a 100% green pixel, so the flicker effect will be attenuated.
 For LCDs which are polarity inverted to achieve zero DC voltage across the cell, there is an extra requirement when using temporal filtering. Usually the polarity is inverted every frame time, either row by row (row inversion), column by column (column inversion) or pixel by pixel (dot inversion). In the case of dot inversion, the polarity of the inversion either varies every row (1:1) or every two rows (1:2). The choice of inverting the polarity every frame is somewhat for convenience of the circuitry; polarity can be inverted every two frames without degrading the LC material. It may be desirable to invert every two frames when temporal dithering is employed so as to not get extra DC applied to the cell along edges. This could occur for the case with inversion every frame because some pixels may be switching 1 0 1 0 . . . ; if the polarity is switching every frame, then the “1” state will always be the same polarity.
 One further embodiment for implementing a temporal SPR system is shown in FIG. 12. This embodiment assumes a panel comprising a subpixel repeat grouping as found in FIG. 5; however, it should be appreciated that suitable changes can be made to the present embodiment to accommodate other subpixel repeat groupings. FIG. 12 shows only the red image data; blue data would be treated similarly. As green data in the repeat grouping of FIG. 5 is mapped 1:1 from source image data, there is no need to temporally process the green data. Of course, with other subpixel repeat groupings, green data may be temporally processed as well.
FIG. 12 shows how the red data is mapped from a source image data plane 1202 to the panel data planes over frames 1204 and 1206, wherein the panel has the layout as described above. For example, RS11 maps to RP11 in Frame 1 (1204) whereas RS12 maps to RP11 in Frame 2 (1206). This mapping effectively averages the values of RS11 and RS12 (creating the equivalent of a spatial “box” filter) and outputs the result to RP11. Similarly, RS22 will be output to RP21 in Frame 1 and RS23 will be output to RP21 in Frame 2.
 As may be seen, red source image data 1202 may be stored in the system or otherwise input into the system. This temporal averaging for red and blue data will result in the same visual appearance compared to an RGB stripe system; viewing angle and response time effects will be the same. It may also simplify the data processing for pictorial applications such as camera or TV applications. This one embodiment for remapping may work well for rendering text, but might lead to some inaccuracies in gray levels which can affect picture quality. Thus, yet another embodiment for a remapping for images, as shown in FIG. 13, is to first average the source pixels and then output to the panel. For example, RS11 and RS12 are averaged via function 1308 and outputted to RP11 in frame 1 (1304). Then RS12 and RS13 are averaged by function 1308 and outputted to RP11 in frame 2 (1306). It will be understood that function 1308 could be more than just the averaging of two pixels and could include a more complex subpixel rendering process of two or more input pixels. It will also be understood that these techniques described in FIGS. 12 and 13 equally to all display technologies—such as LCD, OLED, plasma, EL and other pixilated color displays. For OLED and plasma in particular, the viewing angle and response time are not an issue as it is with LCD. Therefore, the primary purpose of using temporal SPR for these technologies is to simplify the SPR processing—e.g. gamma adjustment is not required.
 Adaptive filtering can be applied to decide when to use the values directly or to average them. For edges, the R and B values are temporally averaged frame by frame, preserving the viewing angle. For non-edges, the adjacent values are first averaged and then outputted to the output subpixels. Averaging adjacent image data values for edges is not necessarily desirable because averaging would tend to blur the edge—thus making the transition less sharp. So, it may be desirable to detect where and when an edge is occurring in the image.
 The averaging will make pictures slightly more accurate. Note that the averaging goes to left pixel on odd frames and right pixel on even. A typical algorithm is as follows (shown for red):
 Odd field:
 IF ABS(RSn−RSn−1)>max THEN RPn=RSn−1 ELSE RPn=(RSn+RSn−1)/2 where RS is source pixel (e.g. RED) and RP is a panel pixel and where “max” is chosen sufficient such that an edge is occurring at this point in the image with a good degree of probability.
 Even field:
 IF ABS(RSn−RSn−1)>max THEN RPn=RSn ELSE RPn=(RSn+RSn+1)/2 where RS is source pixel (e.g. RED) and RP is a panel pixel and where “max” is chosen sufficient such that an edge is occurring at this point in the image with a good degree of probability.