1. Field of the Invention
The present invention relates to electronic imaging systems and, more specifically, to correcting projected or displayed images.
2. Background Information
There are a wide-variety of digital image projectors that are currently available. Most digital projectors include a video decoder and a light engine. The video decoder converts video data received by the projector, e.g., from the display connection of a personal computer (PC), into pixel and color data. The pixel and color data is then supplied to the light engine, which converts that data into the actual projected image. The light engine includes a lamp, optics and logic for manipulating the light in order to generate the pixels and color.
There are three different types of technologies utilized by the light engines of today's projectors: Liquid Crystal Display (LCD), Digital Light Processing (DLP) and Liquid Crystal on Silicon (LCOS). An LCD light engine breaks down the light from a lamp into red, green and blue components. Each color is then polarized and sent to one or more liquid crystal panels that turn the pixels on and off, depending on the image being produced. An optic system then recombines the three color signals and projects the final image to a screen or other surface.
DLP technology was developed by Texas Instruments, Inc. of Dallas, Tex. A DLP light engine directs white light from a lamp onto a color wheel producing red, green, blue and white light. The colored light is then passed to a Digital Micromirror Device (DMD), which is an array of miniature mirrors capable of tilting back-and-forth on a hinge. Each mirror corresponds to a pixel of the projected image. To turn a pixel on, the respective mirror reflects the light into the engine's optics. To turn a pixel off, the mirror reflects the light away from the optics.
A LCOS light engine combines LCD panels with a low cost silicon backplane to obtain resolutions that are typically higher than LCD or DLP projectors. The LCOS light engine has a lamp whose light is sent to a prism, polarized, and then sent to a LCOS chip. The LCOS chip reflects the light into the engine's optics where the color signals are recombined to form the projected image.
Oftentimes, a projector is positioned relative to the screen or other surface onto which the image is to be displayed such that the projector's optical axis is not perpendicular in all directions to the screen. Sometimes, for example, even though the projector is set up directly in front of the screen, the optical axis is nonetheless angled up (producing an image above the projector) or down (producing an image below the projector), such as from a ceiling mounted projector. The resulting image that is projected onto the screen has a trapezoidal shape, and the distortion is known as the keystone-effect. In other arrangements, the optical axis of the projector is not only angled up or down, but is also angled to the left or right. Here, the resulting image is a polygon, and the distortion is known as the oblique-effect. In addition to being non-rectangular in shape, the projected images also suffer from variations in the luminance or brightness level. Specifically, those portions of the projected image that are closer to the projector appear brighter, while those portions that are further away appear dimmer. Such non-uniformities in luminance further reduce the quality of the projected image.
Some projectors include mechanisms for correcting keystone distortion in the vertical direction only. These mechanisms typically achieve this correction by one of two ways so that all lines appear to have the same length: (1) increase the subsampling of higher lines, or (2) scaling scan lines. These mechanisms do not, however, correct for the non-uniformity in luminance that also occurs when the projector is positioned such that the screen is not perpendicular to the projector's optical axis. The luminance non-uniformity of an obliquely projected image can become more pronounced when a “composite” image is created by multiple projectors whose individual obliquely projected images are tiled together, e.g., in a 4 by 5 pattern, to form the composite image.
Accordingly, a need exists for correcting luminance non-uniformity resulting from the optical axis of a projector being non-perpendicular to the screen.
Briefly, the present invention is directed to a system and method for correcting luminance non-uniformity caused by obliquely projected images. To correct luminance non-uniformity, an attenuation array is created. The array is configured with attenuation values that are applied to input image data during operation of the projector so as to generate corrected image data. This corrected image data is then used to drive the projector such that the entire displayed image has the same luminance as the dimmest point. More specifically, a camera is used to capture the geometry of the obliquely displayed image. A homography is then computed that maps pixels between the projector's coordinate system and the screen's coordinate system. Utilizing the homography, the projector pixel that subtends to the largest projected area on the screen is identified. Next, the ratio of each pixel's projected area to the largest projected area is computed. These ratios are then organized into the attenuation array.
In operation, the input luminance information for each pixel location is received by a run-time system that performs a look-up on the attenuation array to retrieve the attenuation value for the respective pixel location. The attenuation value and input luminance information are then multiplied together to generate a corrected luminance value for the respective pixel location. This corrected luminance value is then used to drive the projector, resulting in a displayed image that is uniform in luminance. In the illustrative embodiment, the run-time system is further configured to correct the geometric distortion of the obliquely projected image so as to produce a rectangular corrected image on the screen.
The invention description below refers to the accompanying drawings, of which:
The light engine 108 may use any suitable technology, such as one or more Liquid Crystal Display (LCD) panels, Digital Light Processing (DLP) or Liquid Crystal on Silicon (LCOS). Suitable digital projectors for use with the present invention include the HP (Compaq iPAQ) Model MP 4800 or the HP Digital Projector Model xb31 both from Hewlett Packard Co. of Palo Alto, Calif. Nonetheless, those skilled in the art will recognize that the present invention may be used with other projectors, including those using other types of image generation technologies.
It should be understood that pixel or image information may be in various formats. For example, with bi-tonal image information, there is only one component for representing the image, and that component has two shades. Typically, the shades are black and white although others may be used. With monochrome image information, there is one component used to define the luminance of the image. Monochrome images typically have black, white and intermediate shades of gray. Another format is color, which, in turn, can be divided into two sub-groups. The first sub-group is luminance/chrominance in which the images have one component that defines luminance and two components that together define hue and saturation. The second sub-group is RGB. A color image in RGB format has a first component that defines the amount of red (R) in the image, a second component that defines the amount of green (G) in the image, and a third component that defines the amount of blue (B) in the image. Together these three color components define the luminance and chrominance of the image. For ease of description, the terms “luminance” and “level” are used herein to refer to any such type of is image systems or formats, i.e., bi-tonal, monochrome or color.
In order to generate a mapping between the screen coordinate system 208 and the projector coordinate system 300, a camera 210 (
Suitable video cameras for use with the present invention include the Hitachi DZ-MV100A and the Sony DCR-VX2000, among others. That is, in a preferred embodiment, the camera utilized by the present invention is a low-cost, conventional digital video camera. Nonetheless, those skilled in the art will recognize that other cameras, including still digital cameras, may be used.
Generating the Homographies
Assuming that the optics of both the projector 100 and the camera 210 can be modeled as pinhole systems, then the mapping from the camera coordinate system 400 to the projector coordinate system 208 is given by the following equations:
where,
xc, yc and xp, yp are corresponding points in the camera coordinate system 400 and the projector coordinate system 300, respectively, and
h1 through h9 are the unknown parameters of the mapping from the projector coordinate system 300 to the camera coordinate system 400.
The values of h1 through h9 can be derived by causing the projector 100 to display at least four different points, whose coordinates in the projector coordinate system 300 are known, and determining where these points appear in the image(s) captured by the camera 210 relative to the camera coordinate system 400. These points can be displayed by projector 100 either individually in a sequence of images, or all together in a single image. For example, the projector 100 can be provided with input data that only causes the pixels corresponding to the four comers of the projector's displayable area or field to be illuminated, e.g., turned on. The same result can be achieved by projecting all of the pixels in the projector's displayable area, and identifying the comers of the resulting quadrilateral. The projected image(s) is capture by the camera 210 and the x,y coordinates in the camera coordinate system 400 of each point, i.e., each corner, is determined. This permits eight linear equations to be written, i.e., one for each of the x-coordinates of the four corners and one for each of the y-coordinates of the four comers. The eight equations are as follows:
Given eight equations and nine unknowns, the system is under specified. To determine the nine transform parameters h1 through h9, the eight equations are arranged into matrix form. Notably, the set of solutions for the nine transform parameters h1 through h9 are all within the same scale factor.
In the illustrative embodiment, the following matrix is generated from which the homography parameters h1 through h9 can be determined:
Those skilled in the art will recognize that many techniques are available to solve for the eight transform parameters, such as singular value decomposition as described in Sukthankar, R., Stockton R., and Mullin M. “Smarter presentations: exploiting homography in camera-projector systems” Proceedings of International Conference on Computer Vision (2001), which is hereby incorporated by reference in its entirety.
Those skilled in the art will further recognize that instead of using four points from the projector coordinate system, four lines or other selections, such as illuminating the entire projection area, may be used.
As expressed in matrix form, the mapping is given by the following equation:
where w is a scale factor similar to a normalizing constant. For each point xp and yp, w is the third element in the vector that results from the matrix multiply. It is then used to find xc and yc by dividing the first and second elements of the resulting vector.
For ease of description, the three-by-three matrix containing the nine homography parameters h1 through h9 may be abbreviated as H. Furthermore, the parameters h1 through h9 that form the mapping from the projector coordinate system to the camera coordinate system may be abbreviated as pHc.
As the camera 210 was arranged with its optical axis perpendicular to the screen 202, the homography between the projector 100 and the screen 202, pHs, is the same as the homography between the projector 100 and camera 210, pHc, as computed above.
Those skilled in the art will recognize that a computer, such as a Compaq D315 business PC or a HP workstation zx2000, both of which are commercially available from Hewlett Packard Co., may be used to receive the pixel data from the captured images produced by camera 502, to average those images and to produce the resulting camera attenuation array. The computer may further be used to supply image data to the projector 100 to display the four or more pixels. More specifically, the computer, which has a memory and a processor, may include one or more software libraries containing program instructions for performing the steps of the present invention.
Suppose now that the camera 210 is positioned so that its optical axis is not perpendicular to the screen 202, as illustrated in the projection arrangement 500 of
Because the camera 210 no longer “sees” an undistorted view of the screen 502, pHs does not equal cHp, and thus pHs cannot be calculated in a single step as was the case in the previously described example. Instead, in accordance with the present invention, the camera 210 is assumed to be able to view a rectangle having a known aspect ratio, which is the rectangle's width, i.e., its x-dimension, divided by its height, i.e., its y-dimension. The aspect ratio will typically be provided as an input. A suitable rectangle for consideration is the screen 202. To compute the mapping from the projector to the screen, pHs, a sequence of homographies are preferably composed as described below.
First, the mapping from the projector 100 to the camera 210, pHc, is decomposed into a mapping from the projector 100 to the screen 202, pHs, followed by a mapping from the screen 202 to the camera 210, sHc. The relationship among these mappings is given by the following equation:
pHs=sHc−1pHc (12)
The homographies on the right side of the equation can be determined from known point correspondences using the procedure described above. More specifically, with reference to
With reference to
It has been recognized by the inventors that the exact dimensions of this rectangle do not need to be known. Only its relative dimensions are required, which may be given by the aspect ratio. That is, the four reference comers are given by the following x,y coordinates: (0, α), (1, α), (1,0) and (0,0), where a is the aspect ratio. Accordingly, substituting the screen's aspect ratio, α, gives the following:
(xs5, Ys5)=(0, 1) (13)
(xs6, Ys6)=(α, 1) (14)
(xs7, ys7)=(α, 0) (15)
(xs8, Ys8)=(0, 0) (16)
To derive pHc, whose nine elements are arranged in the matrix order as in equation (11), the following system of equations is preferably solved:
Likewise, to derive sHc, the following system of equations is preferably solved:
Once these two homographies are solved, such as in the manner described above, pHs can be obtained using equation (12) as also described above.
Generating the Attenuation Array
Assuming that each pixel is equally illuminated by the projector 100, the non-uniformity in luminance in the obliquely projected image 204 on screen 202 is related to the relative areas of the projected pixels on the screen. That is, pixels that subtend to a larger area, such as those pixels corresponding to screen coordinates, xs1, ys1 and Xs2, Ys2, appear dimmer, while pixels that subtend to a smaller area, such as those pixels corresponding to screen coordinates Xs3, Ys3 and Xs4, ys4, appear brighter. To correct for luminance non-uniformities, the present invention preferably computes the ratio between the projected areas of different pixels. The ratio of the areas of two projected pixels may be given by the ratio of the Jacobean of the mapping, i.e., a matrix of partial derivatives.
Considering the previously computed homographies, this ratio is given by the following equation:
where,
S(xpi, ypi) is the area of the projected pixel at projector location xpi, ypi,
S(xpj, ypj) is the area of the projected pixel at projector location xpj, ypj, and
h7, h8 and h9 are the homography parameters from the third row of the projector to screen homography matrix, pHs.
Given that the pixel that subtends to the largest projected area should appear the dimmest, an attenuation array is preferably generated that comprises the ratio between the projected area of each projector pixel and the largest projected area. To find the pixel that subtends to the largest projected area, the present invention preferably defines the following value, w(xp, yp), for each projector pixel:
w(xp,yp)=|h7xp+h8yp+h9| (18)
With reference to equation (17), the projector pixel having the largest area will also have the smallest w(xp, yp) value. Accordingly, the w(xp, yp) value is computed for each projector pixel, and the smallest computed value of w(xp, yp) is assigned to the variable wd. Utilizing the computed value of wd, the attenuation array, ao, is then given by:
The attenuation array, ao, will have a value of “1” at the location of the dimmest pixel meaning that no luminance is taken away from this pixel, and a value between “0” and something less than “1” at every other pixel, meaning that the luminance of the other pixels is reduced accordingly.
For a projector 100 having a resolution of 768 by 1280, the attenuation array, ao, will have 768×1280 or 9.8×105 correction values.
It will be understood to those skilled in the art that the luminance correction engine 104 and/or run-time system 800, including each of its sub-components, may be implemented in hardware through registers and logic circuits formed from one or more Application Specific Integrated Circuits (ASICs) or Field Programmable Gate Arrays (FPGAs), among other hardware fabrication techniques. Alternatively, engine 104 and/or run-time system 800 may be implemented through one or more software modules or libraries containing program instructions pertaining to the methods described herein and executable by one or more processing elements (not shown) of projector 100. Other computer readable media may also be used to store and execute these program instructions. Nonetheless, those skilled in the art will recognize that various combinations of software and hardware, including firmware, may be utilized to implement the present invention.
Extension to Other Luminance Correction Systems
The present invention may also be combined with other techniques for correcting luminance non-uniformity caused by other and/or additional factors.
For example, commonly owned, co-pending application Ser. No. [Attorney Docket No. 15311-2347], filed Jul. 2, 2003, titled “System and Method for Correcting Projector Non-uniformity”, which is hereby incorporated in its entirety, discloses a system and method for correcting luminance non-uniformity caused by both internal projector non-uniformities as well as oblique image projections. That system utilizes a camera to capture a series of images produced by the projector in which each individual image has a uniform output level at all pixel locations. The image information captured by the camera is used to generate an attenuation array, which may be denoted as ap(xp, yp). If the projector is then moved to a new location relative to the screen or other surface, the process is repeated to generate a new attenuation array for use from this new projector position.
In a further embodiment of the present invention, the system and method of the present invention can be combined with the system and method of the application Ser. No. [Attorney Docket No. 15311-2347] to simplify the process of generating a new attenuation array whenever the projector is moved to a new location. More specifically, suppose that a first attenuation array, ap(xp, yp), is generated in accordance with the system and method of the application Ser. No. [Attorney Docket No. 15311-2347] for a first projector position relative to the screen. In addition, a first oblique attenuation array, ao1((xp, yp) is also generated in accordance with the present invention. Suppose further that the projector is then moved to a second location relative to the screen. With the projector at the second location, a second oblique attenuation array, ao2(xp, yp) is generated in accordance with the present invention. With the projector at the second location, the relative attenuation at each projector pixel address is given by the following equation:
This relative attenuation is preferably normalized by finding the largest value for the variable β from the following equation:
It should be understood that the largest value of β corresponds to the location of the dimmest pixel. Next, a composite attenuation array, a′p is normalized so that the dimmest pixel location has an attenuation value of “1.0”, using the following equation:
The attenuation array, a′p, described above in accordance with equation (18), is loaded into spatial attenuation array 914. The front end LUT 902 is loaded in the manner described in application Ser. no. [Attorney Docket No. 15311-2347]. Thus, rather than use the camera to capture an image corresponding to each projector level with the projector positioned at the second location, the method of the present invention is used to generate an oblique attenuation array that is then combined with the two attenuation arrays previously computed for the projector when it was at the first location.
Commonly owned, co-pending application Ser. No. 10/612,309, filed Jul. 2, 2003, titled “System and Method for Increasing Projector Amplitude Resolution and Correcting Luminance Nonuniformity”, which is hereby incorporated in its entirety, discloses a system and method for increasing a projector's apparent amplitude resolution as well as correcting luminance non-uniformity. It employs dithering to increase the projector's apparent amplitude resolution. In the same manner as previously described, when a projector is moved from a first location to a second location, the system and method of the present invention can be used to generate a composite attenuation array, a′p, which can then be utilized with the invention of application Ser. No. 10/612,309.
With this embodiment, the attenuation array, a′p, described above in accordance with equation (18), is loaded into spatial attenuation array 1006. The remaining components of the run-time system 1000 are configured and operated in the manner described in application Ser. No. 10/612,309.
Image Pre-Warping
In addition to correcting the non-uniformity in luminance that results when the projector's optical axis is not perpendicular to the screen in at least one plane, the luminance correction engine 104 and/or the video controller 106 may be further configured to correct the geometric appearance of the projected image. That is, the luminance correction engine 104 may be configured to adjust the image being displayed on the screen so that it appears as a rectangle rather than a polygon, even though the projector's optical axis is not aligned perpendicularly with the screen.
A suitable technique for identifying the regions 1206a-c of a projector image 1202 that are to be blanked out so as to produce a corrected, rectangular image 1106 is described in Sukthankar, R. et al. “Smarter presentations: exploiting homography in camera-projector systems” Proceedings of International Conference on Computer Vision (2001). This technique is preferably incorporated within either the luminance correction engine 104 and/or the video controller 106.
To conserve processor and memory resources, the run-time system 800 preferably skips over those pixels that fall within one of the blanked-out regions 1206a-c. In particular, a mask is generated that identifies those pixels that fall within the blanked-out regions 1206a-c. For example, those pixels that fall within subset image 1204 are assigned a value of binary “1”, while those pixels that fall within a blanked-out region 1206a-c are assigned a value of binary “0” within the mask. In response to receiving input image data, the run-time system 800 preferably checks whether the mask value of the respective pixel location is set to “0” or to “1”. If the mask value is set to binary “0”, then the run-time system 800 does not perform a look-up on the spatial attenuation array 802, and instead outputs a “0” luminance value for the respective pixel location, effectively turning the pixel location off. If the mask value is set to binary “1”, the run-time system 800 performs a look-up on its attenuation array 802 and passes the retrieved attenuation value to the multiplier logic circuit 804 for generation of a “corrected” luminance value.
The foregoing description has been directed to specific embodiments of the present invention. It will be apparent, however, that other variations and modifications may be made to the described embodiments, with the attainment of some or all of their advantages. For example, the attenuation array, ao, may be sub-sampled to reduce the overall size of the array. Therefore, it is the object of the appended claims to cover all such variations and modifications as come within the true spirit and scope of the invention.