For a more complete understanding of the invention, reference is now made to the following descriptions taken in conjunction with the accompanying drawing, in which:
Referring initially to
A white light source 15 shines white light through a concentrating lens 16a, a color wheel 17 and a collimating lens 16b. The light, now being colored as a function of the position of the color wheel 17, reflects off a DMD 16 and through a lens 18 to form an image on a screen 19.
In the illustrated embodiment, an input image signal, which may be an analog or digital signal, is provided to a signal interface 11. In embodiments where the input signal is analog, an analog-to-digital converter (not illustrated) may be employed to convert the incoming signal to a digital data signal. The signal interface 11 receives the data signal and separates video, synchronization and audio signals. In addition, a Y/C separator is also typically employed, which converts the incoming data from the image signal into pixel-data samples, and which separates the luminance (Y) data from the chrominance (C) data, respectively. Alternatively, in other embodiments, Y/C separation could be performed before analog-to-digital (A/D) conversion.
The separated signals are then provided to a processing system 12. The processing system 12 prepares the data for display, by performing various pixel data processing tasks. The processing system 12 may include whatever processing components and memory useful for such tasks, such as field and line buffers. The tasks performed by the processing system 12 may include linearization (to compensate for gamma correction), colorspace conversion, and interlace to progressive scan conversion. The order in which any or all of the tasks performed by the processing system 12 may vary.
Once the processing system 12 is finished with the data, a frame store/format module 13 receives processed pixel data from the processing system 12. The frame store/format module 13 formats the data, on input or on output, into bit-plane format and delivers the bit-planes to the DMD 14. The bit-plane format permits single or multiple pixels on the DMD 14 to be turned on or off in response to the value of one bit of data, in order to generate one layer of the final display image. In one embodiment, the frame store/format module 13 is a “double buffer” memory, which means that it has a capacity for at least two display frames. In such a module, the buffer for one display frame may be read out to the SLM while the buffer for another display frame is being written. To this end, the two buffers are typically controlled in a “ping-pong” manner so that data is continually available to the SLM.
For the next step in generating the final desired image, the bit-plane data from the frame store/format module 13 is delivered to the SLM. Although this description is in terms of an SLM having a DMD 14 (as illustrated), other types of SLMs could be substituted into the display system 100. Details of a suitable SLM are set out in U.S. Pat. No. 4,956,619, entitled “Spatial Light Modulator,” which is commonly owned with this disclosure and incorporated herein by reference in its entirety. In the case of the illustrated DMD-type SLM, each piece of the final image is generated by one or more pixels of the DMD 14, as described above. Generally, the SLM uses the data from the frame store/format module 13 to address each pixel on the DMD 14. The “ON” or “OFF” state of each pixel forms a black or white piece of the final image, and an array of pixels on the DMD 14 is used to generate an entire image frame. Each pixel displays data from each bit-plane for a duration proportional to each bit's PWM weighting, which is proportional to the length of time each pixel is ON, and thus its intensity in displaying the image. In the illustrated embodiment, each pixel of the DMD 14 has an associated memory cell to store its instruction bit from a particular bit-plane.
For each frame of the image to be displayed in color, red, green, blue (RGB) data may be provided to the DMD 14 one color at a time, such that each frame of data is divided into red, blue and green data segments. Typically, the display time for each segment is synchronized to an optical filter, such as the color wheel 17, which rotates so that the DMD 14 displays the data for each color through the color wheel 17 at the proper time. Thus, the data channels for each color are time-multiplexed so that each frame has sequential data for the different colors.
In an alternative embodiment, the bit-planes for different colors could be concurrently displayed using multiple SLMs, one for each color component. The multiple color displays may then be combined to create the final display image on the screen 19. Of course, a system or method employing the principles disclosed herein is not limited to either embodiment.
Also illustrated in
Turning now to
Although only a small number of pixels 21 are illustrated in
In many embodiments, the number of groups into which a mirror array 200 is arranged is somewhat arbitrary. In general, the minimum bit-plane display time is inversely proportional to the number of groups. On one hand, shorter bit-times are often desirable because they allow better flexibility for mitigating visual artifacts. However, on the other hand, overall complexity of the display system increases with more groups because of the need for additional drive circuits, package pins, and control circuitry. In general, however, the principles described herein apply to a DMD 14 having any number of groups. Moreover, the rows in each group need not be consecutive, and any pattern is possible, such as an interleaved pattern of every nth row for n number of reset lines. Furthermore, the pattern could be in vertical or diagonal rows, and the pattern need not be row-by-row, but rather in blocks, contiguous or interleaved.
Turning now to
As soon as one group is loaded, loading of the next group may begin. Such loading, resetting and displaying process is repeated for each of the fifteen groups, such that after each group is loaded, the loading of the next group begins while the previous group is being reset and displayed. In the embodiment in
In this embodiment, the reset of each group occurs immediately after the loading of that group. As a result, the display time is as long as the total time to load all groups, typically referred to a “nominal” display time. In the particular example of
For load/reset sequence generation, a sequence controller, such as the controller 18 described above, is programmed with a sequence of loads and reset instructions. The “sequence” is the particular order, for a frame period, of loads and resets for all the groups. For example, relative to time 0, a portion of a reset sequence might include the following two instructions:
reset [170,1]
reset [16,2]
where the argument is [delay, group number]. A portion of a load sequence might include the following two instructions:
load [300,5]
load [198,6]
where the argument is [delay, bit-plane number]. Usually, a load of a bit-plane occurs without interruption for all groups. In such an embodiment, no group designations are necessary, it being implied that a load instruction is for a continuous series of all groups. However, the loads of groups for a bit-plane may also be independently initiated.
The reset sequence and the load sequence are coordinated with each other so that loads and resets occur at the proper times. In the above examples of reset and load sequences, the delays are from a common reference. The sequence programmed into the sequence controller 20 is the result of a sequence generation process discussed in several of the references cited above. A computer that is programmed in accordance with the principles disclosed herein typically performs such a sequence generation process. A “sequence generator” may be implemented in a general-purpose or dedicated computer, an embedded microprocessor, or one or more dedicated application-specific integrated circuits (ASICs) or field-programmable gate arrays (FPGAs).
Referring now to
The sequence controller 20 includes a sequence generator 510. The sequence generator 510 generates a sequence of resets and loads and their initial timing. To generate valid loads and resets, the sequence generator 510 takes into consideration certain incoming data and classifies segments. The output of the sequence generator 510 is a stream of reset and load instructions. At least some of the reset instructions ostensibly contain conflicts. Conventionally, the stream of reset instructions is provided directly to a DMD reset waveform controller 530 and hence too late for conventional software-based resolution techniques to intervene. Thus, the conflicts would propagate to the DMD reset waveform controller 530, where they are transformed into reset waveforms that, if applied to the DMD, could cause serious errors in DMD operation. In contrast, the illustrated embodiment of the invention interjects a hardware-based reset conflict arbiter 520 between the sequence generator 510 and the DMD reset waveform controller 530. The reset conflict arbiter 520 identifies and resolves reset conflicts through arbitration. Thus, with the reset conflict arbiter 520 in place, the stream of reset instructions is relieved of conflicts.
Having described an example projection visual display system and the concept of phased resetting of a DMD therein, various reset conflict scenarios and resolutions will now be described. Due to load constraints, only two possible types of reset conflict scenarios are possible in the example system. They are as follows.
The first conflict scenario involves a conflict between two resets. The two conflicting resets are separated from neighboring resets by about a load time, so conflicts under this first scenario are isolated to the two resets. In the context of the disclosed projection visual display system, the first conflict scenario applies to short bits. In the discussion that follows, the first conflict scenario will be resolved in four contexts: (1) a general case in which instruction time resolution is infinite (time resolution is not limited apart from clock speed); (2) a first special case in which instruction resolution equals the minimum time required for edge separation, Δt, and the clock period that determines the reset waveform timing also equals to Δt; (3) a second special case in which reset instruction time resolution is 0.5 Δt, the minimum time required for edge separation is Δt, and the clock period that determines the reset waveform timing is 0.5 Δt; and (4) a third special case in which a simplified resolution scheme is used for any clock resolution at the expense of a larger resultant error.
The second conflict scenario involves a conflict among three resets. The three conflicting resets are separated from neighboring resets by about a load time, so conflicts under this second scenario are isolated to the three resets. In the context of the disclosed projection visual display system, the second conflict scenario applies to fast clear bits. In the discussion that follows, the second conflict scenario will be resolved in two different ways. While both resolution methods fall within the scope of the invention, the first one of the two is preferred in the context of the disclosed projection visual display system.
For the purposes of this discussion, the two resets are called “rstb tn” and “rstb tn+1,” where tn and tn+1 are the start time of each reset waveform and tn+1>tn. Let Tn=tn+1−tn. All reset waveforms are assumed be identical. It is assumed that Toffset >Trpl+2*Δt. Δt is assumed to be the minimum time required for edge separation but is not held to a particular minimum value (subject, of course, to clock speed).
(1) Tn<Δt (determined in a decisional step 610), or
(2) Trpl−Δt<Tn<Trpl+Δt (determined in a decisional step 620), or
(3) (Trpl+Toffset)−Δt<Tn<(Trpl+Toffset)+Δt (determined in a decisional step 630), or
(4) Toffset−Δt<Tn<Toffset+Δt (determined in a decisional step 640).
The method resolves these edge conflicts respectively by the following steps:
(1) In a step 650, tn or tn+1 is increased or decreased (whichever results in the least change) until Tn>=Δt.
(2) In a step 660, tn or tn+1 is increased or decreased (whichever results in the least change) until Tn>=Trpl+Δt, or Tn=<Trpl−Δt.
(3) In a step 670, tn or tn+1 is increased or decreased (whichever results in the least change) until Tn>=(Trpl+Toffset)+Δt, or Tn<=(Trpl+Toffset)−Δt.
(4) In a step 680, tn or tn+1 is increased or decreased (whichever results in the least change) until Tn>=Toffset+Δt, or Tn<=Toffset−Δt.
In this first special case, instruction resolution equals the minimum time required for edge separation, Δt, and the clock period that determines the reset waveform timing also equals to Δt. As a result, the conflict determination and resolution algorithms can be simplified. For the purposes of this discussion, the two resets are called “rstb tn” and “rstb tn+1,” where tn and tn+1 are the start time of each reset waveform and tn+1>tn. Both tn and tn+1 are quantized to a resolution of Δt. All reset waveforms are assumed be identical. It is assumed that Toffset>Trpl+2*Δt. Δt is assumed to be the minimum time required for edge separation.
(1) Tn=0 (determined in a decisional step 810), or
(2) Tn=Trpl (determined in a decisional step 820), or
(3) Tn=Trpl+Toffset (determined in a decisional step 830), or
(4) Tn=Toffset (determined in a decisional step 840).
The method resolves these conflicts by the following step:
In a step 850, delay (increase in time) tn+1 by Δt.
In this second special case, reset instruction time resolution is 0.5 Δt, the minimum time required for edge separation is Δt, and the clock period that determines the reset waveform timing is 0.5 Δt. As a result, the resolution algorithm can be simplified. For the purposes of this discussion, the two resets are called “rstb tn” and “rstb tn+1,” where tn and tn+1 are the start time of each reset waveform and tn+1>tn. Both tn and tn+1 are quantized to a resolution of 0.5 Δt. All reset waveforms are assumed be identical. It is assumed that Toffset>Trpl+2.5 Δt. At is assumed to be the minimum time required for edge separation.
(1) Tn<Δt (determined in a decisional step 1010), or
(2) Trpl−Δt<Tn<Trpl+Δt (determined in a decisional step 1020), or
(3) (Trpl+Toffset)−Δt<Tn<(Trpl+Toffset)+Δt (determined in a decisional step 1030), or
(4) Toffset−Δt<Tn<Toffset+Δt (determined in a decisional step 1040).
The method resolves these conflicts by the following step:
In a step 1050, once a conflict is detected, delay (increase in time) tn+1 by 1.5 Δt.
In the first special case, a simplified method is also possible. For the purposes of this discussion, the two resets are called “rstb tn” and “rstb tn+1,” where tn and tn+1 are the start time of each reset waveform and tn+1>tn. Let Tn tn+1−tn. All reset waveforms are assumed be identical. It is assumed that Toffset>Trpl+2*Δt. At is assumed to be the minimum time required for edge separation but is not held to a particular minimum value (subject, of course, to clock speed).
(1) Tn<Δt (determined in a decisional step 1210), or
(2) Trpl−Δt<Tn<Trpl+Δt (determined in a decisional step 1220), or
(3) (Trpl+Toffset)−Δt<Tn<(Trpl+Toffset)+Δt (determined in a decisional step 1230), or
(4) Toffset−Δt<Tn<Toffset+Δt (determined in a decisional step 1230).
The method resolves these conflicts by the following step:
In a step 1250, once a conflict is detected, delay (increase in time) tn+1 by 2 Δt. The maximum error resulting from the resolution method is 2 Δt. It is necessary to assume Toffset>Trpl+3*Δt and that Trpl>3*Δt. At could be any real positive value representing time in any unit.
In a step 1310, the reset rstb tn is received and buffered for a period of time that is less than or equals Trpl+Toffset. In a decisional step 1320, it is determined whether a subsequent reset, rstb tn+1 has been received while rstb tn is being buffered. If not, rstb tn is transmitted to a DMD reset waveform controller (e.g., 530 of
In this first embodiment, positive identification of each reset type is required to minimize the resulted error. For the purposes of this discussion, the three resets are called “rstb tn,” “rstb tn+1” and “rstb tn+2,” where tn, tn+1 and tn+2 are the start time of each reset waveform and tn+2>tn+1>tn. All reset waveforms are assumed to be identical. It is assumed that Toffset>Trpl+3*Δt and that Trpl>3*Δt. Δt is assumed to be the minimum time required for edge separation.
A new name, rxtb, is given to the reset that initiates the dark segment in the fast clear bits. A new name, rx2tb, is given to the reset that terminates the dark segment in the fast clear bits. For fast clear bit, each reset group will consist three consecutive resets, rstb, rxtb, rx2tb. Conflicting resets will occur either in clusters of two or clusters of three resets. When in clusters of three, the conflicting resets will consists of rstb, rxtb, rx2tb in various orders.
In a step 1440, any conflict between rxtb and rx2tb is resolved by delaying rx2tb by less than Δt. In a step 1450, any conflict between rstb and rx2tb is resolved by delaying rx2tb by less than Δt. The accumulated maximum error in the fast clear bits is Δt. The accumulated maximum error in the dark segment is 2 Δt.
In this second embodiment, identification of each reset type is not required. All resets are treated as generic resets. In this case, the resolution algorithm is simplified because it does not need to identify the reset types. For the purposes of this discussion, the three resets are called “rstb tn,” “rstb tn+1” and “rstb tn+2,” where tn, tn+1 and tn+2 are the start time of each reset waveform and tn+2>tn+1>tn. All reset waveforms are assumed to be identical. It is assumed that Toffset>Trpl+3*Δt and that Trpl>3*Δt. Δt is assumed to be the minimum time required for edge separation.
In a step 1520, any conflict between tn′ and tn+2 is resolved by delaying tn+2 by less than or equal to Δt. In a step 1530, any conflict between tn+1′ and tn+2′ is resolved by delaying tn+2′ by less than or equal to Δt. The accumulated maximum error in tn+2 is 2 Δt. As between the first and second embodiments of reset conflict resolution under the second scenario, the first embodiment is preferred if less error is valued more than the simplicity of the resolution device.
Implicit in both of the above-described first and second scenarios is that the minimum instruction resolution value is smaller than the minimum required edge separation time Δt. If the instruction resolution value is greater than the minimum required edge separation time Δt, the delay amounts used for conflict resolution should use the instruction resolution time instead of Δt.
Although the invention has been described in detail, those skilled in the pertinent art should understand that they can make various changes, substitutions and alterations herein without departing from the spirit and scope of the invention in its broadest form.