Title: Real time data conversion for a digital display
Abstract: A system and method for extracting and manipulating image data is provided. A pixel panel is rotated so as to increase a resolution of a projected image. The rotation may be calculated so as to achieve a desired resolution. A portion of the image is retrieved from a memory and an address is calculated for either the portion or discrete bits in order to determine where the bits should appear on the pixel panel. The manipulated bits are transferred to a buffer, which may be a line or frame buffer, and from the buffer to the pixel panel. One or more shift registers may be used to shift the bits into the buffer.
Patent Number: 6,965,387 Issued on 11/15/2005 to Mei,   et al.
| Inventors:
|
Mei; Wenhui (Plano, TX);
Mueller; Chad W. (Wylie, TX)
|
| Assignee:
|
Ball Semiconductor, Inc. (Allen, TX)
|
| Appl. No.:
|
923233 |
| Filed:
|
August 3, 2001 |
| Current U.S. Class: |
345/649 |
| Intern'l Class: |
G09G 005/00 |
| Field of Search: |
382/293
345/649
|
References Cited [Referenced By]
U.S. Patent Documents
| 3534467 | Oct., 1970 | Sachs et al.
| |
| 4126812 | Nov., 1978 | Wakefield.
| |
| 4744047 | May., 1988 | Okamoto et al.
| |
| 4879466 | Nov., 1989 | Kitaguchi et al.
| |
| 5049901 | Sep., 1991 | Gelbart.
| |
| 5079544 | Jan., 1992 | DeMond et al.
| |
| 5082755 | Jan., 1992 | Liu.
| |
| 5106455 | Apr., 1992 | Jacobsen et al.
| |
| 5131976 | Jul., 1992 | Hoko.
| |
| 5132723 | Jul., 1992 | Gelbart.
| |
| 5138368 | Aug., 1992 | Kahn et al.
| |
| 5200925 | Apr., 1993 | Morooka.
| |
| 5208818 | May., 1993 | Gelbart et al.
| |
| 5269882 | Dec., 1993 | Jacobsen.
| |
| 5281996 | Jan., 1994 | Bruning et al.
| |
| 5361272 | Nov., 1994 | Gorelik.
| |
| 5416729 | May., 1995 | Leon et al.
| |
| 5431127 | Jul., 1995 | Stevens et al.
| |
| 5448689 | Sep., 1995 | Matsuo et al.
| |
| 5461455 | Oct., 1995 | Coteus et al.
| |
| 5691541 | Nov., 1997 | Ceglio et al.
| |
| 5793473 | Aug., 1998 | Koyama et al.
| |
| 5815287 | Sep., 1998 | Yamada.
| |
| 5818498 | Oct., 1998 | Richardson et al.
| |
| 5870176 | Feb., 1999 | Sweatt et al.
| |
| 5900637 | May., 1999 | Smith.
| |
| 5907329 | May., 1999 | Nobutani et al.
| |
| 5909658 | Jun., 1999 | Clarke et al.
| |
| 5949557 | Sep., 1999 | Powell.
| |
| 5955776 | Sep., 1999 | Ishikawa.
| |
| 5995475 | Nov., 1999 | Gelbart.
| |
| 5998069 | Dec., 1999 | Cutter et al.
| |
| 6052517 | Apr., 2000 | Matsunaga et al.
| |
| 6072518 | Jun., 2000 | Gelbart.
| |
| 6084656 | Jul., 2000 | Choi et al.
| |
| 6107011 | Aug., 2000 | Gelbart.
| |
| 6133986 | Oct., 2000 | Johnson.
| |
| 6205364 | Mar., 2001 | Lichtenstein et al.
| |
| 6251550 | Jun., 2001 | Ishikawa.
| |
| Foreign Patent Documents |
| 0552953 | Jul., 1993 | EP.
| |
| 9110170 | Jul., 1991 | WO.
| |
Other References
"New Multi-EB Direct Write Concept for Maskless High Throughput", Canon SubMicron
Focus, vol. 5, Summer 2000.
Sandstrom and Odselius, "Large-Area High Quality Photomasks", Micronic Laser
Systems, published by SPIE, vol. 2621, 1985, pp. 312-318.
Singh-Gasson, Sangeet et al., Maskless Fabrication of Light-Directed Oligonucleotide
Microarrays Using a Digital Micromirror Array, vol. 17, No. 10, Oct. 1999, pp. 974-978.
Devitt, Terry, "Advanced May Put Gene Chip Technology on Scientists Desktops",
http://www.biotech.wise.edu/Education/biotechnews/GeneChip.html, Oct. 7, 1999.
|
Primary Examiner: Brier; Jeffery
Assistant Examiner: Lee; Hwa C.
Attorney, Agent or Firm: Haynes and Boone, LLP
Claims
1. A method for transferring image data in real time for projection by a pixel
panel, the method comprising:
extracting a predefined amount of image data from a memory using a digital signal
processor;
calculating an angle of rotation between the pixel panel and a subject based
on a value K, wherein the value K defines a number of points of the pixel panel
that fall onto a single scan line;
calculating a location for each of a plurality of image portions of the extracted
image data on the pixel panel, wherein each location accounts for the angle of
rotation;
loading each bit from each of the image portions into a corresponding one of
a plurality of registers of a shift register, wherein the loading orders the bits
based on the location calculated for each image portion;
transferring each of the image portions into a frame buffer; and
transferring each frame to the pixel panel, wherein the extracting, calculating,
loading, and transferring occurs in real time in response to a demand for image
data for the pixel panel.
2. The method of claim 1 wherein loading each bit includes placing each bit from
a single image portion into a separate register in a position corresponding to
a position of each of the other bits from the single image portion in other registers.
3. The method of claim 2 wherein transferring each of the image portions into
a frame buffer includes shifting a corresponding bit of each register into a single frame.
4. The method of claim 1 wherein loading each bit includes sequentially placing
all bits from a single image portion into a single register.
5. The method of claim 1 wherein K is greater than 1.
Description
BACKGROUND
The present invention relates generally to optical systems, and more particularly,
to a system and method for converting and displaying image data in real time in
a photolithography system.
Digital systems, such as those used in maskless photolithographic processing,
require image data to be processed and projected onto a subject. The amount of
image data that must be processed is generally relatively large, and increases
when higher resolutions are desired. Higher resolution may be desirable for a number
of reasons. For example, a line may have a minimum width when projected at a certain
resolution. This minimum width may be undesirable, for instance, because it limits
the number of lines which may be projected onto the subject. Using a higher resolution
may allow the line to be projected using a smaller minimum width, and so more lines
may be projected onto the subject. In photolithography, the subject may be a substrate
and the projected image may be a mask. Therefore, a higher resolution enables a
more detailed mask to be projected onto the substrate without altering the size
of the substrate.
A two dimensional image, such as may represent a photolithography mask, may be
thought of as lying in a coordinate system having two axes. One common example
of such a coordinate system utilizes an x axis and a y axis. An image is generally
displayed through or from a projection device, such as a pixel panel, so that the
edges of the image are aligned with the x and y axes of the pixel panel. In other
words, the top and bottom edges of the image may be parallel to the x axis and
perpendicular to the y axis, while the left and right edges may be parallel to
the y axis and perpendicular to the x axis. This allows relatively simple techniques
to be used to design and store the image in the computer system, since it is can
be stored in a memory array using techniques well known in the art and projected
by the pixel panel.
However, in applications where the image is projected onto a subject, the
resolution of the projected image is constrained by the fact that it is limited
to the resolution available on the pixel panel. In applications such as maskless
photolithography, this results in a maximum resolution which is limited by the
resolution of the original image, the resolution of the pixel panel, the transfer
rate of the system, the available storage capacity, and similar factors.
Therefore, certain improvements are needed in converting and displaying
image data. For example, it is desirable to convert an image in real time for projection
upon a subject. It is also desirable to manipulate the image in order to project
the image as desired. It is also desirable to use minimal storage space, to transfer
data as efficiently as possible, to provide high light energy efficiency, to provide
high productivity and resolution, and to be more flexible and reliable.
SUMMARY
A technical advance is provided by a novel system and method for extracting and
manipulating image data. In one embodiment, the system includes a first memory
operable to store the image data and a processing device connectable to the first
memory, the processing device operable to manipulate the image data. The system
also includes a second memory accessible to the processing device, the second memory
operable to buffer the manipulated data. A pixel panel positioned in a first plane
is operable to receive the buffered data and project the data upon a subject positioned
in a second plane substantially parallel to the first plane, where the pixel panel
is positioned at an angle relative to the subject.
In another embodiment, a method for converting image data in real time for projection
onto a subject retrieves at least a portion of the image from a memory. The method
calculates at least one address for the image portion, the calculation operable
to determine the position of the image portion on a pixel panel positioned in a
first plane and rotated relative to the subject, where the subject is positioned
in a second plane that is substantially parallel to the first plane. The image
portion is transferred to a buffer and transferred from the buffer to the pixel panel.
In yet another embodiment, a point array including a plurality of points for
projection
onto a subject is rotated. The points are arranged in a plurality of columns and
rows and projectable onto the subject along scan lines. A number of rows in the
array is determined, as is a first distance between two scan lines. A number of
redundant points is established, the redundant points falling on a single scan
line. An angle is calculated using the number of rows and the number of redundant
points such that the first distance is achieved when the point array is rotated
to coincide with the angle.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a diagrammatic view of an improved digital photolithography system
for implementing various embodiments of the present invention.
FIG. 2 illustrates an exemplary point array aligned with a subject.
FIG. 3 illustrates the point array of FIG. 2 after being rotated relative to
the subject.
FIG. 4 illustrates a point array rotated so that no points fall on a single
vertical line.
FIG. 5 illustrates the point array of FIG. 4 rotated so that two points fall
on a single vertical line.
FIG. 6 illustrates the point array of FIG. 5 rotated so that three points fall
on a single vertical line.
FIG. 7 illustrates a point array overlaid on an exemplary memory grid.
FIG. 8 is an exploded view of a portion of the point array of FIG. 7 illustrating
individual points in a series of frames.
FIG. 9 illustrates the point array of FIG. 7, with a portion of a second point
array overlay visible.
FIG. 10 is an example of an image portion projected at two different resolutions.
FIG. 11 is a diagrammatic view of one embodiment of an exemplary system for
converting image data for display on a rotated pixel panel.
FIG. 12 is a diagrammatic view of another embodiment of an exemplary system
for converting image data for display on a rotated pixel panel.
FIG. 13 is a flow chart illustrating a process for retrieving image data from
memory and projecting it on a rotated pixel panel.
FIG. 14 is a diagrammatic view of yet another embodiment of an exemplary system
for converting image data for display on a rotated pixel panel.
DETAILED DESCRIPTION
The present disclosure relates to optical devices and more particularly to converting
and displaying image data in a photolithography system. It is understood, however,
that the following disclosure provides many different embodiments, or examples,
for implementing different features of the invention. Specific examples of components
and arrangements are described below to simplify the present disclosure. These
are, of course, merely examples and are not intended to limit the invention from
that described in the claims. In addition, the present disclosure may repeat reference
numerals and/or letters in the various examples. This repetition is for the purpose
of simplicity and clarity and does not in itself dictate a relationship between
the various embodiments and/or configurations discussed.
Referring now to FIG. 1, a maskless photolithography system
100
is one example of a system that can benefit from the present invention. In the
present example, the maskless photolithography system
100 includes a light
source
102, a first lens system
104, a computer aided pattern design
system
106, a pixel panel
108, a panel alignment stage
110,
a second lens system
112, a subject
114, and a subject stage
116.
A resist layer or coating
118 may be disposed on the subject
114.
The light source
102 may be an incoherent light source (e.g., a Mercury
lamp) that provides a collimated beam of light
120 which is projected through
the first lens system
104 and onto the pixel panel
108.
The pixel panel
108, which may be a digital mirror device (DMD), is provided
with digital data via suitable signal line(s)
128 from the computer aided
pattern design system
106 to create a desired pixel pattern (the pixel-mask
pattern). The pixel-mask pattern may be available and resident at the pixel panel
108 for a desired, specific duration. Light emanating from (or through)
the pixel-mask pattern of the pixel panel
108 then passes through the second
lens system
112 and onto the subject
114. In this manner, the pixel-mask
pattern is projected onto the resist coating
118 of the subject
114.
The computer aided mask design system
106 can be used for the creation
of the digital data for the pixel-mask pattern. The computer aided pattern design
system
106 may include computer aided design (CAD) software similar to that
which is currently used for the creation of mask data for use in the manufacture
of a conventional printed mask. Any modifications and/or changes required in the
pixel-mask pattern can be made using the computer aided pattern design system
106.
Therefore, any given pixel-mask pattern can be changed, as needed, almost instantly
with the use of an appropriate instruction from the computer aided pattern design
system
106. The computer aided mask design system
106 can also be
used for adjusting a scale of the image or for correcting image distortion.
In some embodiments, the computer aided mask design system
106 is connected
to a first motor
122 for moving the stage
116, and a driver
124
for providing digital data to the pixel panel
108. In some embodiments,
an additional motor
126 may be included for moving the pixel panel. The
system
106 can thereby control the data provided to the pixel panel
108
in conjunction with the relative movement between the pixel panel
108 and
the subject
114.
Efficient data transfer may be one aspect of the system
106. Data
transfer techniques, such as those described in U.S. provisional patent application
Ser. No. 60/278,276, filed on Mar. 22, 2001, and also assigned to Ball Semiconductor,
Inc., entitled "SYSTEM AND METHOD FOR LOSSLESS DATA TRANSMISSION" and hereby incorporated
by reference as if reproduced in its entirety, may be utilized to increase the
throughput of data while maintaining reliability. Some data, such as high resolution
images, may present a challenge due in part to the amount of information needing
to be transferred.
Referring now to FIG. 2, a pixel panel
210 comprising a DMD, which
may be present in a system such as that described above with reference to FIG.
1, is illustrated. The pixel panel
210, which is shown as a point array
for purposes of clarification, projects an image (not shown) upon a substrate
212.
The substrate is moving in a direction indicated by an arrow
214. Alternatively,
the point array
210 could be in motion while the substrate
212 is
stationary, or both the substrate
212 and the point array
210 could
be moving simultaneously. The point array
210 is aligned with both the substrate
212 and the direction of movement
214 as shown. A distance, denoted
for purposes of illustration as "D", separates individual points
216 of
the point array
210. In the present illustration, the point distribution
that is projected onto the subject
212 is uniform, which means that each
point
216 is separated from each adjacent point
216 both vertically
and horizontally by the distance D.
As the substrate
212 moves in the direction
214, a series of scan
lines
218 indicate where the points
216 may be projected onto the
substrate
212. The scan lines are separated by a distance "S". Because of
the alignment of the point array
210 with the substrate
212 and the
scanning direction
214, the distance S between the scan lines
218
equals the distance D between the points
216. In addition, both S and D
remain relatively constant during the scanning process. Achieving a higher resolution
using this alignment typically requires that the point array
210 embodying
the DMD be constructed so that the points
216 are closer together. Therefore,
the construction of the point array
210 and its alignment in relation to
the substrate
212 limits the resolution which may be achieved.
Referring now to FIG. 3, a higher resolution may be achieved with the point
array
210 of FIG. 2 by rotating the DMD embodying the point array
210
in relation to the substrate
212. As illustrated in FIG. 3, although the
distance D between the points
216 remains constant, such a rotation may
reduce the distance S between the scan lines
218, which effectively increases
the resolution of the point array
210. The image data that is to be projected
by the point array
210 must be manipulated so as to account for the rotation
of the point array
210. The manipulation should include an angle θ
between an axis
310 of the rotated point array
210 and a corresponding
axis
312 of the substrate.
The magnitude of the angle θ may be altered to vary the distance S between
the scan lines
218. If the angle θ is relatively small, the resolution
increase may be minimal as the points
216 will remain in an alignment approximately
equal to the alignment illustrated in FIG.
2. As the angle θ increases,
the alignment of the points
216 relative to the substrate
212 will
increasingly resemble that illustrated in FIG.
3. If the angle θ is
increased to certain magnitudes, various points
216 will be aligned in a
redundant manner and so fall onto the same scan line
218. Therefore, manipulation
of the angle θ permits manipulation of the distance S between the scan lines
218, which affects the resolution of the point array
210. It is noted
that the distance S may not be the same between different pairs of scan lines as
the angle θ is altered.
Referring now to FIG. 4, a pixel panel
410 (again shown as a point
array) comprising M columns by N rows is illustrated. In the present example, M=16
and N=12. The point array
410 may represent an image, such as an image used
in a maskless photolithography system. Each column and row includes a plurality
of individual points
416. For purposes of illustration, each point
416
will be referenced by its column/row position in the point array
410 when
it is important to identify a particular point. For example, the point
416
located in the second column, fourth row, will be referred to as point (
2,
4).
Each point
416 is separated by a distance "D" from the corresponding point
in the adjacent columns and rows. For example, the point (
10,
11)
is a distance D from point (
9,
11), point (
11,
11), point
(
10,
10), and point (
10,
12). Therefore, the total distance
between the first and last points
416 in each row is equal to (M-1)*D, while
the total distance between the first and last points
416 in each column
is (N-1)*D.
An angle θ represents the angle between an axis
420 of the point
array
410 and a corresponding axis
422 of a subject
412 (not
shown). A series of scan lines
418 indicate where the points
416
may be projected onto the subject
412. Depending on the angle θ, the
scan lines
418 may be separated by a constant distance or by varying distances,
as described below. When no redundancy occurs (i.e., no two points
416 from
the array
410 may fall on the same scan line
418), a variable "K"
is equal to one, signifying a one to one correspondence between a point
416
and a scan line
418. A series of relationships may be developed using the
values M, N, K, D and θ. The relationships enable various aspects of the
rotation of the array
410 to be calculated in order to achieve a desired result.
A distance "B", which designates the distance between the scan lines
418
of two adjacent points
416 in a row when the array
410 is rotated
to angle θ, may be calculated by setting B equal to D*cos(θ). A distance
"C" represents the distance between the scan lines
418 of two adjacent points
416 in a column when the array
410 is rotated to angle θ, and
may be calculated by setting C equal to D*sin(θ). A distance "A" represents
the distance between the scan lines
418 of the point
416 in the bottom
row of a column and the point
416 in the top row of the next column when
the array
410 is rotated to angle θ. For example, the scan lines associated
with the point (
15,
12) and the point (
16,
1) are separated
by the distance A, which may be calculated as B-(N-1)*D*sin(θ).
In the present example, the points
416 are uniformly distributed (i.e.,
the same distance separates each point
416 from the adjacent points
416
when projected onto the subject). When this uniformity occurs, A=C=D*sin(θ)
and tan(θ)=K/N.
Using one or more of these relationships, the angle θ can be calculated
to achieve a desired distance between the scan lines
418. For example, when
N=600 and K=1, then θ=tan
-1(1/600)≈0.0955 degrees. Therefore,
rotating the point array
410 by 0.0955 degrees will enable the array
410
to be projected with the desired characteristics of A, B, C and D.
It should be noted that choosing a uniform distribution of points
416
may
simplify the calculation of θ and its effect on the resolution provided by
the spacing of the scan lines
418. This may be accomplished by selecting
a desired resolution so that A=C=D*sin(θ).
Referring now to FIG. 5, the point array
410 of FIG. 4 is illustrated
with a larger angle θ. In contrast to FIG. 4, the present figure depicts
an example where K=2. This means that there is redundancy such that two points
416 from the array
410 fall on the same scan line
418 (i.e.,
there is a two to one correspondence between two points
416 and a scan line
418). For example, the point (
8,
1) and the point (
7,
7)
are associated with the same scan line
418. Such redundancy may be desirable
if, among other reasons, the DMD includes a faulty mirror. If the mirror associated
with one of the points on a scan line fails, a redundant mirror may be utilized
to ensure the point is properly projected.
The distance "D" separates each point
416 from the adjacent points
416.
The total distance between the first and last points
416 in each row is
equal to (M-1)*D, while the total distance between the first and last points
416
in each column is (N-1)*D. Using M, N, K, D and θ, a series of relationships
may be developed for K=2. As in FIG. 4, the relationships may enable various aspects
of the rotation of the array
410 to be calculated in order to achieve a
desired result.
The distance "B" designates the distance between the scan lines
418 of
two points in a row separated by another point
416 when the array
410
is rotated to angle θ. For example, the point (
14,
12) is separated
from the point (
16,
12) by the distance b, which may be calculated
as B=K*D*cos(θ). The distance "C" may be calculated as C=D*sin(θ).
The distance "A" may be calculated as A=B-(N-1)*D*sin(θ).
When the points
416 are uniformly distributed (i.e., the same distance
separates each point
416 from the adjacent points
416 when projected
onto the subject), then A=C=D*sin(θ) and tan(θ)=K/N.
Using one or more of these relationships, the angle θ can be calculated
to achieve a desired distance between the scan lines
418. For example, when
N (the number of rows) is equal to 600 and K=2, then θ=tan
-1(2/600)≈0.19098 degrees.
Referring now to FIG. 6, the point array
410 of FIG. 5 is illustrated
with a larger angle θ. In contrast to FIG. 5, the present figure depicts
an example where K=3. This means that there is redundancy such that three points
416 from the array
410 fall on the same scan line
418 (i.e.,
there is a three to one correspondence between three points
416 and a scan
line
418). For example, the points (
8,
1), (
7,
5),
and (
6,
9) are associated with the same scan line
418.
The distance "D" separates each point
416 from the adjacent points
416.
As in FIG. 5, the total distance between the first and last points
416 in
each row is equal to (M-1)*D, while the total distance between the first and last
points
416 in each column is (N-1)*D. Using M, N, K, D and θ, a series
of relationships may be developed for K=3. As in FIG. 5, the relationships enable
various aspects of the rotation of the array
410 to be calculated in order
to achieve a desired result.
The distance "B" designates the distance between the scan lines
418 of
two points in a row separated by two other points
416 when the array
410
is rotated to angle θ. For example, the point (
13,
12) is separated
from the point (
16,
12) by the distance B, which may be calculated
as B=K*D*cos(θ). The distance "C" may be calculated as C=D*sin(θ).
The distance "A" may be calculated as A=B-(N-1)*D*sin(θ). A distance "R"
represents the distance between redundant points
416 on a scan line
418.
For example, the point (
15,
5) is separated from the point (
14,
9)
by the distance R. A distance "E" designates the distance between the scan lines
418 of two adjacent points in a row when the array
410 is rotated
to angle θ, and may be calculated as E=C*N/K.
When the points
416 are uniformly distributed (i.e., the same distance
separates each point
416 from the adjacent points
416 when projected
onto the subject), then A=C=D*sin(θ), N/K is an integer, and tan(θ)=K/N.
Additional relationships may be developed using the above described equations.
Using one or more of these relationships, the angle θ can be calculated
to achieve a desired distance between the scan lines
418. For example, when
N (the number of rows) is equal to 600 and K=3, then θ=tan
-1(3/600)≈0.286 degrees.
Angles for different relationships may be calculated by applying the above
described equations. For example, if N=600 and K=20, then N/K=30, which is an integer.
Therefore, there is a uniform distribution of points on the substrate surface and
the angle θmay be calculated from tan(θ)=K/N. In this instance, θ≈1.91 degrees.
Referring now to FIG. 7, in one embodiment, a point array
710 (such
as is embodied by a rotated DMD) is illustrated as an overlay on a memory
712
(shown as an exemplary memory grid). The point array
710 comprises M columns
and N rows, where M=24 and N=15. For purposes of illustration, the memory
712
comprises an S column by T row grid
718 of memory locations
714.
The memory
712 may be contiguous (as illustrated) or non-contiguous.
The memory
712 includes an image (not shown) such as may be used for a
photolithographic mask. Therefore, portions of the image are located at appropriate
S,T locations
714 in the memory
712. Individual points
716
of the array
710 are illustrated overlaying memory locations
714
so as to reflect the rotation of the array
710 (i.e., located in such a
way that each point
716 can be identified by a set of S,T coordinates).
The rotation of the array
710 is such that K=3, which means that three points
714 from the array
710 are in the same memory column S.
The size of the memory grid
712 is 130×94, which may be calculated
as follows:
T=M+(
N-1)*
N/K=24+(15-1)*15/3=94.
Image data for the point array
710 may be retrieved memory row T by
memory row T from the memory
712 and projected onto a subject (not shown).
It is noted that a memory row T may not be equivalent to a point array row N, as
the point array
710 has been rotated. As each memory row T is retrieved,
a pointer
718 representing a starting address for the retrieved memory row
T is updated to the address for the next memory row T to be retrieved. It is apparent
that alternate retrieval strategies may be implemented to achieve the same result.
For example, it may be preferable to retrieve multiple rows simultaneously, or
it may be advantageous to retrieve the point array from memory on a column by column basis.
The point array
710 with its respective points
716, as illustrated
in FIG. 7, may be viewed as a single "frame" in a scanning process. Each point
716 would then represent a corresponding pixel in the image stored in the
underlying memory location
714. Therefore, each memory location
714
would appear in its respective position when the frame is projected onto a subject.
This process is described in further detail with respect to FIG.
8.
Referring now to FIG. 8, an exploded view of a portion of the point array
710 overlay of FIG. 7 is now illustrated. The view illustrates an exemplary
frame sequence for the point array
710. The points
716 of point array
710 are illustrated as a series of frames
810-
822. Although
the exploded view does not show each point
716, the frames
810-
822
each include a set of 24×15 points
716 having a similar shading. Therefore,
FIG. 8 illustrates seven frames
810-
822. Each frame
810-
822
includes the points
716, but the location of the points relative to the
underlying image is altered as the point array
710 is scanned. For example,
the frame
810 includes the topmost set of points in each group of seven,
while the frame
812 includes the second set of points, and so on.
Referring now to FIG. 9, a final row of memory overlaid by the array
710
of FIG. 7 is illustrated as the current address of the pointer
718. A portion
of memory for a second array
910 is visible and will be retrieved next starting
with the bottom row. It is noted that a single point array may utilize a large
amount of memory, and multiple arrays utilize increasingly large amounts of memory.
In addition, a high rate of retrieval should be maintained for optimal projection results.
Referring now to FIGS. 10
a-b, an example of a benefit afforded by
the higher resolution provided by the present invention is illustrated. Referring
now specifically to FIG. 10
a, a pixel panel (not shown) is operable to project
a point array
1010 at a resolution of 3.4 micrometers (μm). The point
array includes "full" pixels
1012 which may represent pixels for circuit
components and "empty" pixels
1014 which represent empty space in which
no circuit component is present. This may be accomplished with a frame rate of
approximately 5000 frames per second (5 Kfps) at a data rate of approximately 450
KB per pixel panel. As previously described, the resolution of the projected image
is typically limited by the resolution of the pixel panel.
Referring now specifically to FIG. 10
b, rotating the pixel panel
such that K=30 enables the same portion of the point array
1010 to be projected
at a higher resolution of 0.85μm. Therefore, in the present example, rotating
the point array
1010 provides a level of resolution that is four times greater
than the native resolution of the pixel panel. This means that each pixel
1012,
1014
of FIG. 10
a is now represented by sixteen pixels in FIG. 10
b. This
may allow edges to be smoothed and similar desirable refinements to be made to
the circuit.
Referring now to FIG. 11, one embodiment of a system
1110 for real
time data extraction and manipulation is illustrated. The system
1110 may
be incorporated in another system, such as the system
100 of FIG. 1, or
it may be a stand alone system. In the present embodiment, the system
1110
includes a personal computer (PC)
1112, an interface
1114, an image
memory
1116, a plurality of digital signal processing (DSP) devices
1118,
a frame buffer
1120, and a DMD
1122. The PC, utilizing the interface
1114, may interact with and/or control aspects of the system
1110.
For purposes of illustration, the system
1110 utilizes point arrays
1124
(not shown) of M=848 columns and N=600 rows, such as are described in relation
to FIGS. 4-9. The point arrays
1124 may be combined to form an image
1126
(not shown), and so each point array
1124 may be viewed as a single frame
of the image
1126. Each point array
1124 includes a plurality of
points
1128. Each DSP device
1118 operates in a similar manner, and
so a single exemplary DSP device
1118 is described below. In the present
embodiment, the DMD
1122 is rotated so that K=30, as has been previously
described and has a native resolution of 848 pixels by 600 pixels.
The memory size needed to store an 848×600 point array (a frame) may be
calculated by inserting the values for M, N, and K into the previously described
equations. Doing so results in a memory size of:
or 17540×12828. This can be viewed in terms of storage as approximately twenty-eight
megabytes (MB).
In operation, the DSP device
1118 extracts a discrete unit, such as a
frame
embodied in one of the point arrays
1124, from the image
1126. The
DSP device
1118 then calculates a position on the DMD
1122 for each
point
1128 of the point array
1124. Because the DMD
1122 is
rotated in relation to a subject
1130 (not shown), the position of each
point
1128 should enable proper projection of the associated point array
1126.
After the DSP device
1118 has calculated the DMD positions of the points
1128, the frame is transferred to the frame buffer
1120. In the current
embodiment, the frame buffer
1120 is capable of storing a single 848×600
frame, which is approximately 62.1 kilobytes (KB) of data. The frame buffer
1120
then transfers the frame to the DMD
1122, where the frame is projected onto
a subject. It is noted that a plurality of frame buffers
1120 may be utilized
for increased efficiency and throughput. For example, dual frame buffers
1120
may be utilized so that, while one frame buffer is receiving data from the DSP
device
1118, the other frame buffer is transferring its data to the DMD
1122.
Referring now to FIG. 12, another embodiment of a system
1210 for
real time data extraction is illustrated. The system
1210 may be incorporated
in another system, such as the system
100 of FIG. 1, or it may be a stand
alone system. In the present embodiment, the system
1210 includes a PC
1212,
an interface
1214, an image memory
1216, a DSP device
1218,
a shift register
1220, a frame buffer
1222, and a DMD
1224.
The PC, utilizing the interface
1214, may interact with and/or control
aspects of the system
1210. The shift register
1220 may be a single
shift register or may be a plurality of shift registers suitable for a desired
operation. For purposes of illustration, the shift register
1220 is a 64×53
bit register (i.e., it includes
53 registers operable to store 64 bits each).
The DMD
1224 in the system
1210 includes a 53 bit data path, although
other data path sizes may be used as desired, and has a native resolution of 848×600.
The frame buffer
1222 includes a capacity for sixty-four 848×600 frames.
As in FIG. 11, the system
1210 utilizes point arrays
1226 (not
shown)
of M=848 columns and N=600 rows. The point arrays
1226 may be combined to
form an image
1228 (not shown), and so each point array
1226 may
be viewed as a single frame of the image
1228. Each point array
1226
includes a plurality of points
1230. In the present embodiment, the DMD
1224 is rotated so that K=30, as has been previously described.
The memory size needed to store an 848×600 point array (a frame) may be
calculated by inserting the values for M, N, and K into the previously described
equations. Doing so results in a memory size of:
or 17540×12828. This can be viewed in terms of storage as approximately 28
megabytes (MB).
In the present embodiment, the DSP device
1218 selects and extracts 64
bits of data from the memory
1216. The selection and extraction of data
may be done by row or column, or by some other method. The DSP device
1218
then calculates the location for each of the 64 bits on the DMD
1224, and
transfers the data into one of the 64 bit registers of the shift register
1220.
The DSP device
1218 continues with this selection, extraction, calculation,
and transfer process until all 53 of the 64 bit registers of the shift register
1220 are full.
The contents of the shift register
1220 are then transferred to the frame
buffer
1222. Since each of the 64 frames included in the frame buffer
1222
is 848×600, the contents of the shift register
1220 may not be sufficient
to fill a frame. Therefore, the process involving the DSP device
1216, the
shift register
1220, and the frame buffer
1222 may be repeated until
each frame of the frame buffer
1222 is filled. After 64 frames (or less,
if 64 frames are not available) are stored in the frame buffer
1222, the
frames are transferred to the DMD
1224 and projected onto a subject. The
process then begins again in order to retrieve more data for the DMD
1224
as is illustrated in FIG.
13.
Referring now to FIG. 13, a method
1310 suitable for application
to the system
1210 of FIG. 12 is illustrated. In step
1312, the method
calculates an address for 64 bits, which determines the location of each bit on
the DMD
1224. The 64 bits are then retrieved from the memory
1216
in step
1314 and sent to the register
1220 in step
1316. Once
this process occurs
53 times, as determined in step
1318, the data
is shifted into the frame buffer by column (i.e., 53 bits at a time) in step
1320.
For example, the most significant digit (or least, depending on the endian ordering)
of all
53 registers are shifted in the first frame, while the second most
(or least) significant digits of all 53 registers are shifted into the second frame
and so on, until all 64 bits have been shifted into an appropriate frame. Therefore,
a total of 64 shifts will be utilized to fully clear the shift register
1220.
If the frames of the frame buffer
1222 are not full as determined in step
1322, the process returns to step
1312. This continues until the
frames are full or until all the data has been transferred from the memory
1216.
When the frames are full, the data is transferred for each frame in sequential
order to the DMD
1224 in step
1324. If image data remains to be transferred
as determined in step
1326, the process returns to step
1312. It
is noted that the ordering of some steps of the method
1310 may be altered
and that certain steps may be modified or removed. For example, it may be preferable
to retrieve the 64 bits from the memory before calculating the addresses. In addition,
it may be preferable to calculate a single address for each retrieved set of bits,
rather than for each bit. These and other alterations may depend on a particular
implementation of the system
1210, and so the described system and method
are merely exemplary.
Referring again to FIG. 12, it is noted that a plurality of frame buffers
1222 may be utilized for increased efficiency and throughput. For example,
dual frame buffers
1222 may be utilized so that, while one frame buffer
is receiving data from the shift register
1220, the other frame buffer is
transferring its data to the DMD
1224. The system
1210 utilizes a
relatively small amount of memory, but certain steps may be repeated in order to
retrieve all of the frames.
Referring now to FIG. 14, yet another embodiment of a system
1410
for real time data extraction is illustrated. The system
1410 may be incorporated
in another system, such as the system
100 of FIG. 1, or it may be a stand
alone system. In the present embodiment, the system
1410 includes a line
buffer
1412, a DSP device
1414, a frame buffer
1416, a selector
1418, and a DMD
1420. The DMD
1420 in the system
1410
includes a 53 bit data path, although other data path sizes may be used as desired,
and has a native resolution of 848×600. The frame buffer
1416 is operable
to hold a plurality of 848×600 frames for an image
1422 (not shown).
As in FIG. 11, the system
1410 utilizes point arrays
1424 (not
shown)
of M=848 columns and N=600 rows. The point arrays
1424 may be combined to
form the image
1422 (not shown), and so each point array
1424 may
be viewed as a single frame of the image
1422. Each point array
1424
includes a plurality of points
1426. In the present embodiment, the DMD
1420 is rotated so that K=30, as has been previously described.
In the present embodiment, the line buffer
1412 receives lines of data
from a memory (not shown). For example, the line may be a row of memory such was
described in relation to FIG.
7. The data line is retrieved from the line
buffer
1412 by the DSP device
1420. The DSP device
1414 calculates
the address for the line data so that its location on the DMD
1420 is known.
The DSP device
1414 then transfers the line data into the frame buffer
1416.
This process continues until all the line data has been placed into the appropriate
frames. Therefore, the frame buffer
1416 includes a total number of frames
for the image
1422.
After the line data is stored in the frame buffer
1416, the selector
1418 selects a frame and transfers the selected frame to the DMD
1420
for projection. This selection may be sequential or may use some other criteria
for the order in which frames are selected and transferred.
It is noted that modifications to the system
1410 may be made as desired.
For example, it may be desirable for the selector to transfer frames as they are
filled, rather than waiting for the frame buffer
1416 to completely fill
before beginning the selection and transfer process. In addition, the DSP device
1414 may insert the line data into the frames in a variety of ways. For
example, the DSP device
1414 may insert the entire line into a single frame,
or it may insert individual bits of the line data into appropriate but different frames.
The system
1410 may utilize more memory than some systems (for example,
the system
1210 if FIG.
12), but is operable to prepare all the frames
of an image for transfer at one time. Therefore, different systems may be used
to accomplish different goals. In addition, systems or portions of systems may
be combined so as to gain particular benefits as desired.
It is noted that memory usage may be effected by the value selected for K. As
is illustrated below, a smaller K generally results in higher memory consumption,
while a higher K results in a lower memory consumption.
For example, a point array of 848×600 with K=30 should have a memory array
of 17540×12828, as calculated previously. A line buffer operable to buffer
a complete line of data will need memory for 17540 bits, or approximately 3.3 KB.
A frame buffer operable to hold all the frames should have a memory allowance for
12828×848×600 bits, or 816 MB.
In contrast, the same point array of 848×600, but with K=20, should have
a memory array of 26010×18818. A line buffer operable to buffer a complete
line of data will need memory for 26010 bits, or approximately 3.3 KB. A frame
buffer operable to hold all the frames should have a memory allowance for 18818×848×600
bits, or 1.2 gigabytes (GB).
While the invention has been particularly shown and described with reference
to the preferred embodiment thereof, it will be understood by those skilled in
the art that various changes in form and detail may be made therein without departing
from the spirit and scope of the invention. For example, it is within the scope
of the present invention that alternate types and/or arrangements of DSP devices,
buffers, registers, and/or other components may be used. Furthermore, the order
of components may be altered in ways apparent to those skilled in the art. Additionally,
the type and number of components may be supplemented, reduced or otherwise altered.
Other uses are also foreseen, such as digital projection and image manipulation
and display. Therefore, the claims should be interpreted in a broad manner, consistent
with the present invention.
*