Signal intensity range transformation apparatus and method
A system and method for manipulating image data is disclosed. Generally, the system and method identifies useful grey-levels within an input image. The image is then scaled based upon the identified useful grey-levels.
Latest Patents:
This application is a divisional application claiming the benefit of U.S. application Ser. No. 10/657,723 filed Sep. 8, 2003; which claims the benefit of U.S. Provisional Application No. 60/408,663, filed Sep. 6, 2002; the contents of both of these applications are herein incorporated by reference.
TECHNICAL FIELDThe present invention generally relates to imaging systems, and in particular, to a system for manipulating image data.
BACKGROUND OF THE INVENTIONHuman interpretation of video or other imagery can be made difficult or even impossible by system noise, image blur, and poor contrast. These limitations are observed, for example, in most video and closed circuit television systems, and others, including such technology as RS-170 monochrome video, NTSC/PAL/SECAM video or digital color video formats.
Extreme lighting variation, for example, due to sunlight beams, can cause typical video cameras and imaging sensors to saturate (i.e., become unable to represent the real-world luminance range) resulting in wide-scale bright and dark regions having extremely low-contrast wherein objects are difficult or impossible to discern. At outdoor automated teller machines, for example, sunlight beams or strong lighting, in the background can cause a person in a dark area to become unidentifiable due to low contrast. This weakness is due to the limited luminance range of the imaging system.
The electronic iris and automatic gain control provided by some imaging systems are designed to try to optimally map the wide luminance values within a real-world light situation into a limited range digital representation, often resulting in a poor compromise. To adequately represent the bright areas, less illuminated areas become dramatically compressed in contrast and thus become very dark.
Besides having limited range, video or imagery from lower-cost imaging sensors can have significant noise due to a number of basic system limitations, as well as significant blur due to lower-cost, small, or simple optical configurations. Reducing noise and blur within these systems can improve the ability for a human viewer to effectively interpret image content.
Moreover, digital samples of interlaced analog video from a video field are typically taken by imaging systems. The noise inherent in such digital samples can make human interpretation of important details in the image difficult.
Hence, a need exists for a luminance range transformation apparatus and method that manipulates image data for improved interpretation thereof.
Others have provided some image post processing devices which can enhance contrast of an image. However, in many areas such as in security monitoring, real-time evaluation of images is highly beneficial or necessary. Accordingly, there is also a need to provide a luminance range transformation apparatus which can enhance an image in real-time or near-real time.
SUMMARY OF THE INVENTIONAccording to the present invention, a system and method has been developed that considers the mechanisms and defects of imagery from video or other sources to prescribe a sequence of tailored image processing operations designed to improve human interpretation of resulting images.
However, in a broad aspect of the invention, methods and devices are provided to redistribute discrete signal intensity values within groups of signal intensity values. The signal intensity values are supplied directly or indirectly from a sensor sensing an environment. It is proposed that the inventions can be used for enhanced interpretation of any array of signal intensities or variable values in any group of such values that have spatial or geometric relationships to one another (e.g. coordinates).
For example, the detailed disclosures below are directed to redistribution of grey-scale or luminance values in a rectilinear array (pixels) from a camera. It is also contemplated however, that the inventions may be applied to other values in a video image, such as redistribution of chrominance values. It is also proposed that the inventions may be employed with other sensing modalities such as, magnetic resonance imagery, radar, sonar, infrared, ultraviolet, microwave, X-ray, radio wave, and the like.
According to another aspect of the invention, the spatial scale of an entire group of signal intensity values are considered, for example, the luminance in an entire pixel image, so that the overall brightness from corner to corner is taken into account. In an orthogonal direction, all the frequency content of an image must be represented by the one global mapping, including the very lowest spatial frequency. Often, this single global mapping has to stretch to map all of the low frequency variation in the image, and then fails to enhance higher frequency structure of interest. The result can be a bright “bloom” on one side of the image, with too dark an area on the other side of the image. As such, there may not be optimal recognition of spatial structure because of the need to represent the large scale variation across the entire image.
It is proposed that to further improve overall contrast balance to reveal image structure at scales of interest by applying equalization at spatial scales representative of scales of interest. Accordingly, the inventions propose generating subset partitions of an image (group of signal intensities) representative of the spatial scales of interest. A transform mapping (e.g. of luminance) for the subsets of signal values is generated, so that a spatial scale (e.g., is ¼ of a global image for a quadrant subset) so as to mitigate or eliminate the lowest frequency from consideration. This improves representation of contrast for structures at this scale.
Computing a luminance transformation at every pixel (with for example a filter kernel) for a neighborhood around that pixel, would result in a large computational burden because the resulting spatial scales are too small. In contrast, the present invention employs accumulating pixel samples across larger “right-sized” spatial scales, while using efficient interpolation to produce the correct transform (e.g. for luminance) representation at each pixel.
According to another aspect of the invention, apparatus and methods include: decomposing a group of signal values into subgroup partitions from which to sample values and construct associated transforms and to combine those transform values at every coordinate (e.g. pixel) according to a rule which weights the contribution of each mapping in accordance with “image” geometry and value coordinate or position.
According to another aspect of the invention, apparatus and methods are provided for blending transformed values from the global set of values (e.g. entire pixel image) with transformed values from the spatial segments to adjust contributions from several spatial scales as desired.
While overall interpretation of groups of signal intensity values is provided according to the invention, it is of particular note that the effectively mitigate signal values which are out of limit for a sensor system, for example, saturated sensor response.
In a preferred embodiment for enhancing luminance contrast in video signals, preferred operations can include digital sampling and luminance/color separation, noise reduction, deblurring, pixel noise reduction, histogram smoothing, contrast stretching, and luminance and chrominance re-combination. One or more of the operators can have configurable attributes, such as degree of noise reduction, brightness, degree of deblurring, and determined range of useful grey-levels.
Other advantages and features of the present invention will be apparent from the following description of a specific embodiment illustrated in the accompanying drawings.
BRIEF DESCRIPTION OF DRAWINGS
FIGS. 4(a)-(f) depict various exemplary kernels shapes that can be used with the system noise reduction filter, deblurring module, and pixel noise reduction module of
This invention is susceptible of embodiments in many different forms. For example, the methods and apparatus disclosed there is shown in the drawings and will herein be described in detail, a preferred embodiment of the invention. The present disclosure is to be considered as an exemplification of the principles of the invention and is not intended to limit the broad aspect of the invention to the embodiment illustrated.
Referring now to the drawings, and as will be appreciated by those having skill in the art, each of the FIGURES depicts a simplified block diagram wherein each block provides hardware (i.e., circuitry), firmware, software, or any combination thereof that performs one or more operations. Each block can be self-contained or integral with other hardware, firmware, or software associated with one or more other blocks.
Turning particularly to
Preferably, the device 10 is a stand-alone or embedded system. As used herein, the term “stand-alone” refers to a device that is self-contained, one that does not require any other devices to perform its primary functions. For example, a fax machine is a stand-alone device because it does not require a computer, printer, modem, or other device. Accordingly, in an embodiment, the device 10 does not need to provide ports for connecting a disk drive, display screen, or a keyboard. However, in an alternative embodiment, the device 10 could provide one or more ports (e.g., RS-232) for supporting field interactivity.
Also, as used herein, an embedded system is a system that is not a desktop computer or a workstation computer or a mainframe computer designed to admit facile human interactivity. Another delineator between embedded and “desktop” systems is that desktop systems (and workstation, etc.) present the status of the computer state to the human operator via a display screen and the internal state of the computer is represented by icons on the screen, and thus the person can interact with the computer internal state via control of the icons. Moreover, such a computer uses a software layer called an “operating system” through which the human operator can interact with the internal state of the computer. Conversely, with an embedded system, while it is performing its work function, the human operator cannot interact with the work process except to stop it.
The input connector 12 provides for operably connecting the device 10 to an image input signal 17 generated by a video camera (not shown), or the like, having a video output. In one embodiment, the input connector 12 consists of an F connector, BNC connector, RCA jacks, or the like. The input connector 12 is operably connected to the logic circuitry 14 by way of a conductive path attached to the input connector and the printed circuit board contained within the housing 13. The logic circuitry could also be coupled through other than a conductive path such as through optical coupling.
Preferably, but not necessarily, the image input signal 17 is a conventional analog video signal containing a plurality of still images or fixed image frames taken in a sequential manner. Each frame provided by the image input signal is also referred to herein as an image input frame. Each image or frame includes data regarding an array of pixels contained therein.
The output connector 16 of the device 10 provides for connecting the device to an output device such as a monitor (not shown). Like the input connector 12, the output connector 16 consists of any means for outputting the signal to other devices such as, an F connector, BNC connector, RCA jacks, or the like. The output connector 16 is operably connected to the logic circuitry 14 by way of a conductive or coupled path attached to the output connector and the printed circuit board contained within the housing 13. As explained in detail further herein, the output signal provided by connector 16, and thus the device 10, provides an output signal which includes data resulting from transforming or other operations carried out with respect to image input signal 17 received (“transformed output signal”). The output signal can include a plurality of image output frames and be formatted as a conventional analog video signal, a digital signal, or the like. For example, but by no means exclusive, the output signal can be in a format as defined by NTSC, VGA, HDTV, or other desired output formats.
In one embodiment, the logic circuitry 14 within the device 10 includes, inter alia, circuitry configured to transform the variable range of grey-scale values in the image input signal 17 received by the input connector 12. Preferably, the logic circuitry 14 includes a logical device 18 with corresponding support circuitry 20, a video decoder 22, and a video encoder 23. The support circuitry 20 preferably includes a microcontroller 24, a read only memory 26, and a random access memory 28 comprising a synchronous dynamic random access memory.
In an embodiment, an optional switch 29 is provided for configuring the logic circuitry 14 within the device 10. The switch 29 is operably connected to the microcontroller 24 and logical device 18. The switch 29 allows a user to enable or disable, features or processes provided by the logic circuitry 14 within the device 10. In one embodiment, the switch 29 consists of a conventional DIP switch. In an alternative embodiment, the configuration of the circuitry 14 within the device 10 is hardwired, or can be set via software commands, instead of using a switch.
Preferably, video decoder 22 is operably connected to the input connector 12 and the logical device 18. Accordingly, the video decoder 22 receives the image input signal 17 that can consist of live video from a television broadcast, a video tape, a camera, or any other desired signals containing or representing image content. The video decoder 22 preferably is a conventional device for tracking the video image input signal 17, digitizing the input signal (if required), separating out the brightness and color information from the input signal, and forwarding the digital video signal 30 to the logical device 18 on a frame by frame basis.
In one embodiment, the input image signal 17 received by the video decoder 22 is an analog signal formatted in a predefined manner such as PAL, NTSC, or another conventional format. The video decoder 22 converts the analog signal 17 into a digital video signal 30 using a conventional analog-to-digital conversion algorithm. Preferably, the digital video signal 30 provided by the video decoder 22 includes luminance information and color information in any conventional manner such as, specified by YUV format, YCbCr format, super video, S-video, or the like. Alternatively, the digital video signal 30 can have the luminance information embedded therein such as that provided by digital RGB, for example.
In one embodiment, the video decoder 22 is capable of converting a plurality of different analog video formats into digital video signals suitable for processing by the logical device 18 as described in detail further herein. In one embodiment, the microcontroller 24 configures the video decoder 22 for converting the image input signal 17 into a digital video signal 30 having a specific format type (e.g., CCIR601, RGB, etc.). If desired, the microcontroller 24 determines the format of the image input signal 17, and configures the video decoder 22 accordingly. The determination can be accomplished by the microcontroller 24 checking the user or device manufacturer configured settings of the DIP switch corresponding with the format of the image input signal 17 expected to be received. Alternatively, the video decoder 22 can include circuitry for automatically detecting the format of the image input signal 17, instead of using preset DIP switch settings.
Preferably, the gain of the video decoder 22 is set to reduce overall contrast on the luminance for reducing the probability of image saturation. In an alternative embodiment, the video decoder 22 provides a fixed bit resolution output range (e.g., 8 bit, 16 bit, 32 bit, etc.) and a digitizer maps the image input signal in a conventional manner for effective use of the resolution output range. Preferably, the full range of the digitizer output is utilized.
Turning to the logical device 18, as will be understood by those having skill in the art, the logical device receives digital video signals 30 and provides digital output signals 31 (i.e., transformed pixel array or frame data) in response to the digital video signals 30. As indicated previously, in one embodiment, the device 10 receives analog image input signals 17 that are converted by the video decoder 22 into digital video signals 30 for manipulation by the logical device 18. Moreover, as explained in detail further herein, the digital output 31 of the logical device 18 can be converted (if desired) into an analog output by the video encoder 23 connected between the logical device 18 and the output connector 16.
Preferably, the logical device 18 consists of a conventional field programmable gate array (FPGA). However, the logical device 18 can consists of a Digital Signal Processor (DSP), a microcontroller, an Application Specific Integrated Circuit (ASIC), or other suitable device.
In an alternative embodiment, instead of receiving analog input signals 17, the device 10 can receive digital image input signals that are provided, without any conversion, to the logical device 18. Thus, in this alternative embodiment, the video decoder 22 can be omitted.
Regardless of whether a video encoder or decoder is provided, it is to be understood that the logical device 18 is operably connected between connectors 12 and 16. Accordingly, an image input signal enters the input connector 12, is modified by the logical device 18, and then exits via the output connector 16 as a transformed output signal. Preferably, the frame output rate of the device 10 is substantially equal to the frame input rate to the device. The device 10 provides an output of thirty frames per second in response to a frame input rate of thirty frames per second.
In one embodiment, the logical device 18 provides a sequence of image processing functional modules or blocks 32 within a process as illustrated in
Each of the modules 32 preferably performs a specific functional step or plurality of functional steps as described in detail further herein. Turning back to
Storage for data manipulation and the like is provided by the synchronous dynamic random access memory (SDRAM) 28. Preferably, a high speed random access memory is provided by the support circuitry 20 to reduce performance bottlenecks. In one embodiment, the memory 20 is used as a field buffer.
Turning back to
Preferably, the color transform 34 uses a conventional algorithm for converting a digital RGB video input signal into a Yuv format signal, YCbCr format signal, or other desired format signal. Accordingly, the color transform 34 provides an output comprising three channels: luminance 43, and U-V or other values ascribed per pixel location.
In an alternative embodiment, the digital video signal 30 provided by the video decoder 22 consists of a super video or S-video. As such, the digital video signal 30 consists of two different signals: chrominance and luminance. Accordingly, the color transform 34 can be omitted from the process of
It should be understood as noted above, that a separate channel or channels (not shown) comprising the steps to be discussed below with respect to luminance information, could be provided to any one of RGB/chrominance values independently for transforming the values and redistributing the color values in the image.
As shown in
In one embodiment, the video time integration module 44 consists of a low-pass filter for noise reduction of the luminance signal 43. As understood by those having skill in the art, each frame includes an array of pixels wherein each pixel has a specific i,j coordinate or address. Noise reduction by the video time integration module 44 is preferably achieved by combining the current frame (n) with the immediately preceding frame (n−1) stored by the logical device 18 within the memory 28. Desirably, for each pixel c(i,j) in the current image frame (n), the corresponding pixel p(i,j) from the preceding captured frame (n−1) is subtracted to result in a difference d(i,j). The absolute value of the difference d(i,j) is determined, and compared to a predetermined threshold value. If the absolute value of the difference d(i,j) is greater than the predetermined threshold, then the time integration output signal 45 of the video time integration module 44 is c(i,j). Otherwise, the time integration output signal 45 of the video time integration module 44 is the average of c(i,j) and p(i,j).
As indicated above, the video time integration module 44 can operate such that object motion, which ordinarily creates large pixel differences, are represented by current pixels while background differences due to noise are suppressed by the averaging. Accordingly, the video time integration module 44 provides for avoiding image blurring as a result of low-pass spatial domain filtering on the current image.
In one embodiment, the median filter or system noise reduction module 46 receives the time integration output signal 45 (i.e., transformed pixel frame data) and, in response thereto, provides for reducing pixel noise caused by the system sensor (e.g., camera), electromagnetic, and/or thermal noise. The median filter 46 can include a user selectable level of noise reduction by selecting from a plurality of filter kernels via DIP switch 29, or the like, operably coupled to the logical device 18. The filter kernel applied by the noise reduction module 40 to the current frame, as preferably modified by time integration module 44, is designed to achieve noise reduction while minimizing the adverse effect of the filter on perceived image quality. For instance, a 3.times.1 kernel (
The deblurring module or block 48 provides for counteracting image blurring attributable to the point spread function of the imaging system (not shown). In an embodiment, the deblurring module or block 48 uses a Laplacian filter to sharpen the output 47 (i.e., transformed pixel frame data) received from the filter 46. The deblurring module or block 48 can include a user-selectable level of image sharpening from a plurality of Laplacian filter center pixel weights. In one embodiment, the user or manufacturer can select the center pixel weight via the DIP switch 29 operably coupled to the logical device 18.
Preferably, the Laplacian filter uses a 3.times.3 kernel (
As will be appreciated by those having ordinary skill in the art, the deblurring module or block 48 can use other filters in place of a Laplacian type filter. In an embodiment, and in like fashion to the use of the Laplacian filter with various weights, a general filter with kernel as shown in
The output 49 (i.e., transformed pixel frame data) of the deblurring module 48 emphasizes isolated pixel noise present in the input image signal. Preferably, the pixel noise reduction module 50 provides for reducing isolated pixel noise emphasized within the output 49 of the deblurring module 48. In one embodiment, the pixel noise reduction module 50 employs a small-kernel median filter (i.e., small pixel neighborhood such as a 3.times.3) to reduce isolated pixel noise. The pixel noise reduction filter or module 50 can provide a user or manufacturer selectable level of noise reduction by allowing for the selection from a plurality of filter kernels. In a preferred embodiment, the DIP switch 29, software, or the like, is used to select from a five-point “plus patterned” kernel (
As shown in
Turning to
In one embodiment, the sample area selection module or block 52 receives the conditioned luminance image signal 53 provided by the image pre-contrast conditioner 36 (
Depending upon the overall embodiment of a system, the selected portion of the image can be selected in a conventional manner such as by using a point-and-click interface (e.g., a mouse) to select a rectangular sub-image of an image displayed on a monitor (not shown). Alternatively, the selected portion of the image can be selected by automated means such as by a computer, based upon movement detection, with a portion of the image or other criteria.
In one embodiment, the equalized look-up table construction module or block 54 receives the selected conditioned image signal 59 from the sample area selection module or block 52 and, in response thereto, provides for creating a lookup table 61 that is used in generating the enhanced image signal 55 (i.e., transformed pixel frame data). As previously indicated, the selected conditioned luminance signal 59 received from the sample area selection module or block 52 can be a sub-image comprising a portion of the overall conditioned luminance image signal 53 received from the image pre-contrast conditioner 36 (
As shown in
In one embodiment, the input image smoothing module, or block 58, receives the selected conditioned luminance image signal 59 and, in response thereto, generates a smoothed conditioned luminance image signal on a frame-by-frame basis. Preferably, the input image smoothing module or block 58 applies a Gaussian filter with a traditional 3.times.3 kernel to the selected signal 59 for smoothing the image within each frame. As recognized by those having skill in the art, the Gaussian filter performs a weighted sum (center pixel=highest weight), wherein the result is normalized by the total kernel weight.
In one embodiment, a histogram accumulation module, or block 60, provides for generating a histogram of the selected conditioned image signal 59, as modified by the input image smoothing module. The histogram accumulation module, or block 60, accumulates a conventional histogram from the received input. Accordingly, the histogram can be used to provide a graph of luminance levels to the number of pixels at each luminance level. Stated another way, the histogram reflects the relationship between luminance levels and the number of pixels at each luminance level.
Accordingly, the histogram accumulation module or block 60 includes a plurality of data storage locations or “bins” for tracking the number of occurrences of each grey-level occurring in the received input signal, for example, such as that received by block 58. Preferably, the histogram accumulation module or block 60 includes a bin for every discrete grey-level in the input signal. As stated previously, for each grey-level in the input signal, the histogram accumulation module or block 60 determines the number of pixels in the input luminance image with the corresponding grey-level after being filtered, if desired. Accordingly, the histogram result for any given grey-level k is the number of pixels in the luminance image input having that grey-level.
In one embodiment, the histogram smoothing module or block 62 provides for reducing noise in the histogram created from the input image. The histogram smoothing module, or block 62, receives the histogram from the histogram accumulation, module or block 60, and in response thereto, generates a smoothed histogram. Preferably, the histogram smoothing module or block 62 applies a 5-point symmetric kernel (
In one embodiment, the cumulative distribution function integration module or block 64 provides for integrating the histogram to create a cumulative distribution function. The cumulative distribution function integration module or block 64 receives the histogram from the histogram smoothing module 62, or optionally from the histogram accumulation module 60. The cumulative distribution function integration module 64 integrates the received histogram to generate a cumulative distribution function. It has been observed that integrating a smoothed histogram can result in a cumulative distribution function having an increased accuracy over a cumulative distribution function resulting from an unsmoothed histogram.
The cumulative distribution function integration module or block 64 includes a plurality of data storage locations or “bins” which hold the cumulative distribution function result for each input grey-level. Preferably, the cumulative distribution function integration module, or block 64, includes a bin for every discrete grey-level in the image resolution input range. For each grey-level in the image resolution input range, the cumulative distribution function integration module or block 64 determines the cumulative distribution function result and stores that result in the bin corresponding to that grey-level. For each grey-level k, the cumulative distribution function result is the sum of the histogram value for grey-level k and the cumulative distribution function result for the previous grey-level k−1. Accordingly, the following equation describes the cumulative distribution function result for a given grey-level k:
CDF(k)=H(k)+CDF(k−1)
where CDF(k) is the cumulative distribution function result for grey-level k, H(k) is the histogram value for grey-level k, and CDF(k−1) is the cumulative distribution function result for the grey-level one increment lower than grey-level k.
The saturation bias identification module, or block 66, provides for identifying the grey-levels that bound the useful information in the luminance signal 43. In one embodiment, the saturation bias identification module 66 receives the cumulative distribution function from the cumulative distribution function integration module 64 and determines the grey-levels at which the first unsaturated grey-level, k.sub.f, and the last unsaturated grey-level, k.sub.1, occurs. The first unsaturated grey-level, k.sub.f, is determined by identifying the first grey-level k.sub.0 for which the cumulative distribution function returns a non-zero value. The grey-level k.sub.0 is treated as saturated, and the saturation bias identification module 66 identifies k.sub.f as the sum of k.sub.0 plus one additional grey-level. The last unsaturated grey-level, k.sub.1, is determined by identifying the first grey-level k.sub.n for which the cumulative distribution function returns the number of pixels in the image. The grey-level k.sub.n is treated as saturated, and the saturation bias identification module or block 66 identifies k.sub.1 as the difference between k.sub.n minus one additional grey-level.
Accordingly, the useful grey-levels identified by the saturation bias identification module 66 is the range from, and including, k.sub.0 plus one additional grey-level through k.sub.n minus one additional grey-level. In another embodiment, the useful grey-levels identified by the saturation bias identification module 66 is the range from, and including, k.sub.0 through k.sub.n minus one additional grey-level. In yet another embodiment, the useful grey-levels identified by the saturation bias identification module 66 is the range from, and including k.sub.0 plus one additional grey-level through k.sub.n. In a further embodiment, the useful grey-levels identified by the saturation bias identification module 66 is the range from, and including, k.sub.0 plus X additional grey-level(s) through k.sub.n minus Y additional grey-level(s), wherein X and Y are whole numbers greater than zero.
The linear cumulative distribution function scaling module or block 68 provides for scaling the portion of the cumulative distribution function corresponding to the unsaturated, useful grey-levels in the luminance input image across the entire range of cumulative distribution function grey-level inputs. In a preferred embodiment, the linear cumulative distribution function scaling module 68 receives the cumulative distribution function, provided by the cumulative distribution function integration module 64, and the first unsaturated grey-level k.sub.f and the last unsaturated grey-level k.sub.1 from the saturation bias identification module 66.
The linear cumulative distribution function scaling module 68 includes a plurality of data storage locations or “bins” equal to the number of bins in the cumulative distribution function for holding the linearly mapped cumulative distribution function result for each input grey-level. In a preferred embodiment, the cumulative distribution function scaling module 68 scales the portion of the cumulative distribution function between k.sub.f and k.sub.1 inclusively across the entire range of the linearly scaled cumulative distribution function. Accordingly, for each grey-level k in the input range, the linearly scaled cumulative distribution function output value LCDF(k) is determined by the following equation:
LCDF(k)=(CDF(k)−CDF(kf))/(CDF(Kl)−CDF(Kf))
where CDF(k) is the cumulative distribution function result for grey-level k, CDF(kf) is the cumulative distribution function result for kf, and CDF(kl) is the cumulative distribution function result for kl. Each linearly mapped cumulative distribution function result is stored in the bin corresponding to the current grey-level k. If LCDF(k) is negative for any input grey-level k, the linearly scaled cumulative distribution function result in the bin corresponding to the input grey-level k is set to zero.
The determination of the cumulative distribution function output value can be calculated using known methodologies for improving computation ease. For instance, the numerator can be scaled by a multiplier, before the division operation, to obtain proper integer representation. The result of the division can then be inversely scaled by the same multiplier to produce the LCDF(k) value. Preferably, the scale factor is an adequately large constant, such as the number of pixels in the input image.
In one embodiment, the lookup table construction module or block 70 generates a lookup table 61 that is used by the enhanced luminance image generation module (
Preferably, the lookup table 61 is constructed by multiplying each linearly scaled cumulative distribution function result by the number of discrete grey-levels in the output image resolution range which can be provided by the DIP switch 29 (
Turning back to
As shown in
The color inverse transform 42 generates the contrast enhanced digital video output signal 31, having an expanded range, in response to the enhanced image signal 72 and the color information for the same frame. The enhanced image signal and color information are combined in a conventional manner wherein luminance is combined with color information.
As will be appreciated by those having skill in the art, while the luminance of the input signal is being enhanced, the color information can be stored within memory 28, for example. Once the luminance has been enhanced, it can be re-combined with the color information stored in memory.
In response to the digital video output signal 31, the video encoder 23 preferably provides an analog output signal via output connector 16. The video encoder 23 preferably utilizes conventional circuitry for converting digital video signals into corresponding analog video signals.
Turning to
The median bin identification module or block 174 determines the median of the histogram provided by the histogram accumulation module 160. Next, the brightness midpoint value is calculated by the weighted midpoint calculation module or block 176. The brightness midpoint value preferably is calculated as the weighted sum of the actual grey-level midpoint of the input frame and the median of the input distribution. Preferably, the weights assigned to the grey-level midpoint and the median of the input distribution are configured as compile-time parameters.
The image segmentation module, or block 178, receives the luminance image data for the selected sample area, via module 152, and provides for segmenting the luminance image data into light and dark regimes and performing enhancement operations separately (i.e., luminance redistribution) on each of the regimes. Stated another way, the image segmentation module 178 assigns each pixel in the selected sample area to either the light or dark regime based on each pixel's relationship to the brightness midpoint value received from the midpoint calculation module 176. Pixels with a brightness value greater than the midpoint are assigned to the light regime, and pixels with a brightness value less than the midpoint value are assigned to the dark regime.
Pixel values assigned by the image segmentation module 178 are received by the lookup table construction modules, wherein lookup tables are constructed and forwarded to the enhanced luminance image generation module 156 for remapping of the conditioned luminance signal 53.
According to broad aspects of the invention, contrast enhancement is provided by heuristic and algorithmic techniques, including the calculation of the image grey-level histogram and sample cumulative distribution function. Preferably, maximum utilization of available grey-levels for representation of image detail is provided.
Entropy is a measure of the information content of the image. Entropy is generally the average number of bits required to represent a pixel of the image. Accordingly, a completely saturated image with only black and white can be represented by one-bit per pixel, on and off, thus, the image entropy is one-bit. A one bit image contains less information than an eight-bit image with 256 shades of grey.
According to broad aspects of the invention, optimized entropy is provided while maintaining a monotonic grey-level relationship wherein “monotonic” generally means that the precedence order of the input grey-levels are not changed by the desired grey-level transformation employed.
In one embodiment, contrast enhancement includes calculation of the sample cumulative distribution function of the image grey-levels. The inverted sample cumulative distribution is applied to map the input grey-levels. Because the inverted sample cumulative distribution function is used, the resulting transform approximates uniformly distributed grey levels within the input range. The uniform density histogram generally has the maximum entropy.
As known by those having skill in the art, classical “histogram equalization” directly applies the inverted sample cumulative distribution function to form the grey-level mapping lookup table. In an embodiment in accordance with the present invention, along with the inverted sample cumulative distribution data, it is preferred to combine a linear mapping to ensure full-range output, and also combine a saturation bias identification to improve grey-level uniformity in the presence of saturation. As will be appreciated by those having skill in the art, image saturation creates a pathology in the inverted sample cumulative distribution mapping that is not addressed in classical histogram equalization.
When the image is saturated the histogram has a pathology—an inordinate number of pixels are black or white or both. Direct calculation of the sample cumulative distribution function produces large gaps in endpoints of the grey-level transform. Such gaps mean that the maximum number of grey-level values are not being used, and the resulting output distribution does not closely approximate the desired uniform distribution. Moreover, the resulting image will contain broad areas of a single grey-level (for both black and with saturation). Sometimes, such areas are referred to as “puddles.”
An embodiment of another broad aspect of the invention is disclosed in
The identity lookup table builder 211 constructs an identity lookup table for the image frame received. Thus, for each pixel having a contrast k, the lookup table output provided by block 211 provides the same contrast, k.
The global equalized lookup table builder 213 constructs a global equalized lookup table for the image data received. In particular, the functionality of the builder 213 within
Similar to the global equalized lookup table builder 213, each of the zone equalized lookup table builders 215, 217, 219 and 221, constructs an equalized lookup table for that portion of the image data within the particular table builder's zone. In particular, within each zone, a range of useful grey-levels is identified by the builder assigned to the zone. The range for each zone can include all grey-levels within a cumulative distribution function, except the first and/or last unsaturated grey-level within the zone's distribution function, or the like. The range is then scaled to include an extended range of grey-levels including, but not limited to, the full range of grey-levels. The lookup table builder for each zone then provides, as an output, its scaled range as a lookup table to a non-linear transform 223, 225, 227, 229 and 231.
The output of each non-linear transform 221-231 is multiplied by a weight as shown by blocks 233-241 of
Likewise, the weighting provided by weights 235-241 determines the balance between the contrast enhanced global lookup table 243 and each transformed zone equalized lookup table. These combinations or blends result in a plurality of zonal balanced lookup tables 245-251 wherein the balanced lookup tables are contrast enhanced and relate, in part, to a particular zone of the original input image.
Turning to
In particular, the image data input provided to each lookup table 245, 247, 249 and 251 includes the original grey-level for each pixel within the image frame. Stated another way, each lookup table 245, 247, 249 and 251 receives the original grey-level image data input for each pixel within the image frame.
The outputs 263, 265, 267 and 269 of the lookup tables 245, 247, 249 and 251 provide new grey-level values for each pixel within the corresponding zone. This new grey-level values can be increased, decrease, or the same as the original luminance.
The outputs 263, 265, 267 and 269, of the lookup tables are multiplied by a corresponding position weighting factor 271, 273, 275 and 277. In particular, the new grey-level values for each pixel is multiplied by a weighting factor 271, 273, 275 and 277, based upon the pixel's location relative to one or more reference positions within the image frame. As will be appreciated by those having ordinary skill in the art, the weighting factors 271, 273, 275 and 277, govern how the grey-level within each zone effects the new grey-level values provided for each pixel within the image. Preferably, a pixel is effected more by pixel values within the zone within which it is located, and is effected less dramatically by pixel values from a zone furthest from the pixel. The weightings can be normalized so their total sum is 1.
In one embodiment, the reference positions within the image frame are located at the corners of the image frame. In a further embodiment, the reference positions can be at the centers of the defined zones.
The weightings are based upon the distance the pixel is located from the reference positions. For example, if the image frame is a square containing four equally sized zones with the reference positions at the corners of the image frame, then the weighting factors 271, 273, 275 and 277, for the center pixel within the image frame would be 0.25 because the pixel is equal distant from each zone's reference position (i.e., the corners of the image frame). Likewise, each pixel at the corners of the image frame would be weighted such that only the lookup table results for the zone containing the pixel would be applied in determining the pixel's new grey-level.
In yet another embodiment, and as will be appreciated by those having ordinary skill in the art, only a single zone can be used within an image frame. Preferably, the zone is centered in the image frame and is small in size than the entire image frame.
It should be understood that the device 10 and its combination of elements, and derivatives thereof, provide circuits and implement techniques that are highly efficient to implementation yet work very well. Others have proposed various forms of contrast enhancement solutions but the proposals are much more complex to implement. Apparatus and methods according to the invention create an algorithmically efficient procedure that results in cost efficient real-time implementation. This, in turn provides lower product costs.
While the specific embodiments have been illustrated and described, numerous modifications come to mind without significantly departing from the spirit of the invention and the scope of protection is only limited by the scope of the accompanying claims.
Claims
1. A device providing an image output frame in response to an image input frame, the device comprising: a housing having a printed circuit board contained therein; an input connector attached to the housing and having a conductive path attached to the printed circuit board; an output connector attached to the housing and having a conductive path attached to the printed circuit board; an integrated circuit placed on the printed circuit board, the integrated circuit having an output responsive to the image input frame, the output comprising transformed pixel frame data; and wherein the device does not require a keyboard to operate.
2. The device of claim 1 wherein the device is an embedded system.
3. The device of claim 1 wherein the input connector receives thirty frames per second and the output connector provides thirty frames per second.
4. The device of claim 1 wherein a port is not provided for operably attaching the device to the keyboard.
5. The device of claim 1, further comprising a saturation bias identification circuit having a range of useful grey-levels output responsive to the image input frame, and a cumulative distribution function scaling circuit having a scaled output responsive to the useful grey-levels output.
6. A method for providing an image output frame in response to an image input frame, the method comprising the steps of: segmenting the image input frame into one or more zones; determining a plurality of grey-level values for a pixel based, at least in part, on grey-level data contained within the one or more zones; and, calculating a composite enhanced pixel grey-level value for the pixel by blending the plurality of grey-level values.
7. The method of claim 6 wherein the image input frame is segmented into a plurality of zones.
8. The method of claim 6 further comprising establishing reference points within the image input frame, and wherein the step of calculating a composite enhanced pixel grey-level value is based, at least in part, on distance from the reference points.
9. The method of claim 6 further comprising the step of generating a digital output responsive to the image input frame.
10. The method of claim 6 further comprising the step of generating an analog output in response to the image input frame.
11. The method of claim 6 further comprising the step of generating a luminance output signal in response to the image input frame.
12. The method of claim 6 further comprising the step of generating a conditioned output responsive to the image input frame.
13. A method for providing an image output frame in response to an image input frame, the method comprising the steps of: establishing reference points within the image input frame; calculating grey-level values for a plurality of pixels within the image input frame; and, calculating a composite enhanced pixel grey-level value for the pixels based, at least in part, on distance from the reference points.
14. The method of claim 13 further comprising segmenting the image input frame into a plurality of zones, and wherein at least one of the reference points is located within one of the zones.
15. The method of claim 13 further comprising generating a range of useful grey-levels in response to the image input frame, and generating a scaled output in response to the range of useful grey-levels.
16. A method for providing an image output frame in response to an image input frame, the method comprising the steps of: constructing an equalized lookup table for the image input frame; constructing an equalized lookup table for a zone within the image input frame; and, utilizing the lookup tables to build a balanced lookup table.
17. The method of claim 16 further comprising the step of utilizing a lookup table representative of the image input frame to build the balanced lookup table.
18. A method for providing an output of signal values in response to an input array of signal values derived directly or indirectly from a sensor, wherein each input value is variable within a range of values based upon an environment sensed by the sensor, and each value of the input signal has coordinates with a spatial and or geometric relationship to other values in the input signal, comprising the steps of: segmenting the image input array into one or more spatial zones; determining a plurality of signal intensity values for a coordinate based, at least in part, on signal intensity contained at coordinates within the one or more other zones; and, calculating a composite enhanced coordinate signal value for the coordinate by blending the plurality of signal intensity values.
19. A method for providing an output of signal values in response to an input array of signal values derived directly or indirectly from a sensor, wherein each input value is variable within a range of values based upon an environment sensed by the sensor, and each value of the input signal has coordinates with a spatial and or geometric relationship to other values in the input signal, comprising the steps of: establishing reference points within the array of signal values; calculating signal intensity values for a plurality of coordinates within the array of input values; and, calculating a composite enhanced coordinate signal intensity value for the coordinates based, at least in part, on a distance of the coordinate from the reference points.
20. A method providing an output of signal values in response to an input array of signal values derived directly or indirectly from a sensor, wherein each input value is variable within a range of values based upon an environment sensed by the sensor, and each value of the input signal has coordinates with a spatial and or geometric relationship to other values in the input signal, comprising the steps of: constructing an equalized lookup table for the array of signal intensity values; constructing an equalized lookup table for a zone within the array of signal intensity values; and, utilizing the lookup tables to build a balanced lookup table.
Type: Application
Filed: Dec 18, 2007
Publication Date: Apr 24, 2008
Applicant:
Inventors: Stephen Johnson (Little Compton, RI), Norbert Elsdoerfer (Warwick, RI), Charles Anastasia (Barrington, RI)
Application Number: 12/002,674
International Classification: G06K 9/40 (20060101);