Histogram data collector for applying progressively adjusted histogram equalization to an oscilloscope image
A system is disclosed for equalizing the distribution of pixel intensities in an image displayed by an oscilloscope. In a primarily software implementation, the maximum pixel intensity (I) present in the rasterized input image, the maximum available display intensity (P) and the desired image resolution (R) are the input variables which permit the calculation of thresholds or bins to which each pixel is assigned. By iteratively performing the analysis of existing pixel intensities and bin thresholds, the number of pixels in each bin may be optimized to form an equalized histogram. Another implementation of the histogram equalization system utilizes software to optimize a hardware-based histogram collector.
Latest Tektronix, Inc. Patents:
This application is based on and claims priority from U.S. Provisional Application Ser. No. 60/356,883, filed on Feb. 12, 2002.
FIELD OF THE INVENTIONThe subject invention relates generally to the field of oscilloscope display systems, and more particularly to an oscilloscope employing and displaying histograms.
BACKGROUND OF THE INVENTIONCurrent oscilloscopes can display images of waveforms derived from an internal image which may possess a large dynamic range of pixel intensities. Although the variation in pixel intensity of the internal image may be large, the actual display of this image limits the intensity range and therefore does not fully reflect all of the information contained in the internal image. An example of an oscilloscope which illustrates this problem is disclosed in U.S. Pat. No. 5,986,637 entitled DIGITAL OSCILLOSCOPE ARCHITECTURE FOR SIGNAL MONITORING WITH ENHANCED DUTY CYCLE, issued to Etheridge et al. The Etheridge et al. device increases the percentage of time that an input signal is actively monitored in an attempt to detect and ultimately display rare, anomalous and nonrepetitive events.
Etheridge et al. illustrates the fact that as acquisition technology improves, greater dynamic range of the internal image intensity is created from the increased number of signal acquisitions incorporated into a single waveform image. However, due to limitations in existing display technology it is not possible to display this enhanced dynamic range. Current oscilloscopes typically deliver only sixteen levels of dynamic range in brightness to the user. Future oscilloscopes will probably present a brightness range of 64 or more (i.e., 256) levels.
Since the displayable dynamic range is limited, the desired goal is to extract the maximum intensity variation and hence the maximum signal information from the internal waveform image. Ideally, a method to automatically and fully utilize the available, limited dynamic range of the display, and a machine to implement that method, is needed. Histogram equalization is a known image processing method for increasing contrast and utilizing dynamic range in an image. An example of such image processing is disclosed in U.S. Pat. No. 5,995,656 entitled IMAGE ENHANCING METHOD USING LOWPASS FILTERING AND HISTOGRAM EQUALIZATION AND A DEVICE THEREFORE, issued to Kim. By adjusting the intensities of an image such that the histogram of image intensities is flat, the best representation of the full dynamic range of intensities present in the image is realized.
Intensity adjustment allows many pixels of similar intensities, which were previously displayed in a similar manner, to appear with differing intensities, allowing the user to discern additional signal detail from the intensity variations. A histogram is a representation of the relative distribution of the intensities appearing in an image.
Referring also to
Programmable mapping machines exist that can be used to transfer an image having a large dynamic range to a display having a small dynamic range, such as is disclosed in U.S. Pat. No. 5,909,244, entitled REAL TIME ADAPTIVE DIGITAL IMAGE PROCESSING FOR DYNAMIC RANGE REMAPPING OF IMAGERY INCLUDING LOW LIGHT VISIBLE IMAGERY, issued to Waxman et al. This device can implement linear mapping or a gamma corrective mapping.
SUMMARY OF THE INVENTIONThe present invention addresses the problem of applying histogram equalization to an oscilloscope waveform display. The dynamic range of display intensities is more fully utilized. This allows the user to more easily discern the difference in intensities between pixels, the pixels indicating the frequency or magnitude of rasterized image data.
The present invention typically enables the user to view all of the steady state waveforms present on the display screen that may otherwise have been obscured using a more typical linear display function. The histogram equalization algorithm is applied during mapping from a rasterized image with a large dynamic range to the much smaller dynamic range of the display device.
The mapper hardware which reduces the dynamic range is also used to compute a histogram of the displayed output image based on the input image and the existing mapping function. The histogram generated has only as many regions or bins as the output image has levels of intensity. This technique limits the information content of the histogram, but allows much faster computation than taking a histogram of the input image. This is a significant feature of the present invention insofar as the histogram equalization is accomplished by examining the existing histogram and computing a new mapping function to be applied to the original image. The original mapping function may be programmed as a linear mapping of the input image based on the maximum input image pixel value. Since a histogram of the output image cannot fully represent all the information of a histogram of the input image, any mapping function generated from the output image may not precisely equalize the histogram. For this reason a histogram equalization function adjustment algorithm has been developed that can be run in multiple passes, once each time the function generates a new output image histogram. The adjustment algorithm attempts to adjust the original mapping function to further equalize the histogram.
Mapping of the input image to a smaller dynamic range can occur simultaneously with the collection of histogram data, or mapping can occur without writing to memory, or only collection of the histogram information can occur. The histogram equalization function adjustment algorithm is applied to an oscilloscope image to improve the equalization properties of the mapping function. The new mapping function is then applied to the next image to be mapped. The assumption is made that the next image will be similar to the previous image or at least possess the same input histogram properties. This assumption and the prediction of the histogram properties of subsequent images saves processing time as a separate histogram collection function does not need to be executed. Typically the histogram collection of the current image is done while mapping the current image for display.
When the series of images for display does have changing histogram properties, the changes will typically be fairly minor from image to image. The histogram equalization function adjustment algorithm follows those changes and thereby maintains an appropriate histogram equalization function for most of the output images to be displayed. Whenever the image has a large change from image to image (e.g. adding or removing a signal) the algorithm may require several successive images in order to fully adjust.
The present invention may be used successfully with many other common image processing algorithms utilized for oscilloscope images. Examples of such algorithms include histogram specification, local histogram enhancement, image subtraction, high-boost filtering and median filtering.
Referring to
Referring also to
The maximum number M of the intensity bins required to capture all of the possible display intensities depends on the value of the maximum intensity I found in the rasterized image 148 and the desired intensity resolution or range R of each intensity bin. Step 44 calculates the maximum number of intensity bins according to the formula M=P/R. The resolution of an intensity bin is therefore equal to the number of intensities between maximum pixel intensity and zero divided by the total number of intensity bins which are desired or can be accommodated. At step 45 the total number of nonzero intensities Z present in the image is measured. The number of probable or expected intensities E to be mapped for each displayable intensity level is the total number of nonzero intensities in image 64 divided by the number of displayable intensity levels (assumed to be fifteen, for example). Thus step 46 solves the equation E=ZA/15.
Step 47 assigns each image intensity element to an intensity bin. At this point the actual distribution of image intensities is unknown. In order to determine the actual threshold or boundaries of each intensity bin, the program initially examines at step 48 the intensity bin which contains the largest number of data elements. At step 49 the program then searches for the first intensity bin which contains the next fewest data elements which occurs after the expected number of intensities per displayable intensity level has been encountered at step 50. The intensity B associated with this intensity bin establishes the first threshold T1. Alternatively, the thresholds T can be assigned from a table or according to a protocol designed to create histograms having a desired shape or characteristic. This search process continues until all the available intensity levels remaining to be mapped have been assigned established thresholds (at step 52) or the last data contained in intensity bin 80 (
One shortcoming of this threshold defining method is that a disproportionately large value for the maximum number of image pixels to be mapped may cause the intensity bins to create a relatively coarse output image 148. Additionally, if a large number of pixels have very similar intensity levels, they may all be absorbed by a single intensity bin.
Either of these two conditions may cause the creation of fewer thresholds than is appropriate for the number displayable intensity levels. In order to compensate for this shortcoming, the computer program 150 must use a large number of intensity bins. For example, to effectively map fifteen displayable intensity levels as well as perform reasonable histogram equalization, the program 150 can create on the order of fifty thousand intensity bins. Due to the substantial amounts of memory required, this software implementation of the present invention cannot always be utilized.
Referring to
The histogram data collection and equalization system 105 may operate with any suitable rasterized source data 64 intended for presentation on an oscilloscope screen. The signal data 64 is forwarded to an analog to digital converter 231. The demultiplexer 232 receives data from A/D converter 231 along signal path 108 and makes data available along bus 103 to the remaining downstream components of the system 105. Referring also to
The rasterizer 60 derives an image from the sample stream of data 63 which is stored in circular buffers in memory. Each collection of data is referred to as an acquisition. The rasterizer 60 creates images by means of record view compression, a technique that takes point values as inputs and draws the vertical vector between them. This action is performed repetitively, thereby compressing many samples into a single column. Referring also to
The rasterizer 60 draws a two dimensional graphical representation of the A/D sample data 63 into a section of random access memory 66 (the raster plane 32) where each pixel 67 (
Referring also to
The thirty-two-bit to eight-bit mapping operation is performed by dual rank threshold circuit 157. The dual rank logic 157 of mapper 61 forwards the threshold data along signal path 160 to the mapper output interface 158, which compresses or packs any eight bit data to four bits and writes the eight (or four) bit data into reorder buffers 161 and 162 via signal paths 163 and 164 respectively. The threshold circuit 157 includes a map point reader 226 (
The remaining value 208 as seen in
Whenever a nonzero pixel is processed by the coarse transfer function 201 the mapPreMap counter 227 (
The pixel mode determines the size of data in each pixel 67 and the bit packing determines how many bits a pixel uses when it is forwarded to the graphics adapter 36.
Initially, the ranges for each of the sixteen pixel intensity thresholds or bins (BIN 0 through BIN 15) are preset based on the maximum pixel intensity (MPI) to:
- BIN 15 Intensity Range=(14/15*MPI)<intensity<=MPI
- BIN 14 Intensity Range=(13/15*MPI)<intensity<=(14/15*MPI)
- BIN 13 Intensity Range=(12/15*MPI)<intensity<=(13/15*MPI)
- BIN 12 Intensity Range=(11/15*MPI)<intensity<=(12/15*MPI)
- BIN 11 Intensity Range=(10/15*MPI)<intensity<=(11/15*MPI)
- BIN 10 Intensity Range=(9/15*MPI)<intensity<=(10/15*MPI)
- BIN 9 Intensity Range=(8/15*MPI)<intensity<=(9/15*MPI)
- BIN 8 Intensity Range=(7/15*MPI)<intensity<=(8/15*MPI)
- BIN 7 Intensity Range=(6/15*MPI)<intensity<=(7/15*MPI)
- BIN 6 Intensity Range=(5/15*MPI)<intensity<=(6/15*MPI)
- BIN 5 Intensity Range=(4/15*MPI)<intensity<=(5/15*MPI)
- BIN 4 Intensity Range=(3/15*MPI)<intensity<=(4/15*MPI)
- BIN 3 Intensity Range=(2/15*MPI)<intensity<=(3/15*MPI)
- BIN 2 Intensity Range=(1/15*MPI)<intensity<=(2/15*MPI)
- BIN 1 Intensity Range=(0 MPI)<intensity<=(1/15*MPI)
- BIN 0 Intensity Range=(all non-zero intensities)
After the rasterized image data 64 is mapped with the preset bin thresholds, the next step is to calculate the desired intensity ranges based on the actual contents of the intensity bins numbered BIN 15 through BIN 1. The intensity range calculation begins with a premapping step performed by mapPreMap counter 227 (
The ranges for BIN 1 thru BIN 15 are defined by the mapping thresholds. There are thus fourteen mapping thresholds and fifteen intensity ranges. The lower range boundary for BIN 1 is 1 unit of pixel intensity. The upper range boundary for BIN 15 is the current maximum pixel intensity of I units of pixel intensity. Referring to Table 1, the threshold generated by the subroutine is the upper threshold for the intensity bin associated with that threshold. For example, newThrsh[2] is the upper limit of pixel intensity for the BIN 2. The mapper 61 extracts the fourteen mapping thresholds that are obtained from the foregoing calculation, thereby resulting in a set of optimized bin thresholds to be applied as the coarse thresholding transfer function 201. In summary, the algorithm starts with the default mapping from the rasterized input image 64 to the fifteen (for example) available display colors for output image 148, and then maps the image 64 from thirty two to eight bits, but counts the number of times each available color or intensity is used. The number of colors in each bin is used to adjust the default mapping so that during the next iteration each color or intensity is used an equal number of times in the output image 148.
The mapping operation performed by dual rank logic program 157 occurs while simultaneously calculating another intensity histogram. The bin counts obtained from the most recently calculated histogram are used to once more optimize the intensity bin ranges of the map registers 237. Ultimately, the intensity bin ranges will be set prior to each pre-mapping or mapping phase, with bin ranges calculated from the previous pixel intensity histogram results. Default values will always be used when starting from the initial or stop state. In an alternate embodiment of the present invention, the software program invokes a histogram grading protocol which causes the premapping phase to iterate yet again should the histogram effort fail to achieve certain predefined criteria such as a large maximum pixel change from the previous reading. Referring to
What has been described is a system for equalizing the distribution of pixel intensities in an image displayed by an oscilloscope. In a primarily software implementation, the maximum pixel intensity (I) present in the rasterized input image, the maximum available display intensity (P) and the desired image resolution (R) are the input variables which permit the calculation of thresholds or bins to which each pixel is assigned. By iteratively performing the analysis of existing pixel intensities and bin thresholds, the number of pixels in each bin may be optimized to form an equalized histogram. Another implementation of the histogram equalization system utilizes software to optimize a hardware-based histogram collector. An N bit/pixel rasterized input image is processed by an N to n bit mapper, where N>n. A dual rank map logic subroutine creates a first set of coarse histogram bins or thresholds and a second set of fine thresholds or nibbles, each of the fine nibbles being sixteen equally spaced bins residing within a single coarse threshold or bin. A histogram equalization function adjustment algorithm progressively examines the distribution of coarse thresholds and adjusts the breakpoints to create an optimized histogram.
Claims
1. An apparatus for collecting histogram data for an output image to be presented on a display device, comprising:
- an input image, the input image containing N bits per image pixel,
- a mapper, the mapper converting the input image into the output image, the output image having n bits per pixel, where N>n,
- a histogram collector, the histogram collector forming a histogram of the output image by storing a pixel intensity distribution of the output image; and
- a histogram equalization function adjustment subroutine, the function adjustment subroutine redefining boundaries of output image pixel intensity distribution present in the histogram such that existing output image pixel intensities are substantially evenly distributed across a range of intensities available to the display device.
2. The apparatus of claim 1 wherein the histogram comprises a plurality of pixel intensity bins, each intensity bin being defined by an upper and a lower boundary, the histogram equalization function adjustment subroutine adjusting the upper and lower boundary of each bin to cause a substantially equal number of output image pixels to reside in each pixel intensity bin.
3. The apparatus of claim 2, wherein the output image contains a finite number of pixel intensities, the histogram having only as many bins as the finite number of pixel intensities.
4. The apparatus of claim 3 further comprising:
- at least a first and second successive input image;
- at least a first and second successive histogram, the histogram collector forming the second successive histogram using intensity bin boundaries as redefined by the histogram equalization function adjustment subroutine for the first successive histogram.
5. The apparatus of claim 4 wherein the histogram equalization function adjustment subroutine operates at least once for each new histogram produced by the histogram collector.
6. The apparatus of claim 3 wherein the initial upper and lower boundary of each intensity bin
- is defined by a default value when no previous output image has been processed by the mapper; and
- is substantially equal to an upper and lower boundary created in response to a previous output image when a previous output image has been processed by the mapper.
7. The apparatus of claim 6 wherein the histogram equalization function adjustment subroutine operates only once for each new histogram produced by the histogram collector.
8. The apparatus of claim 7 wherein the mapper creates the output image and the histogram collector creates the histogram of the output image substantially simultaneously.
9. The apparatus of claim 8 wherein the histogram collector creates a histogram having a desired programmable histogram shape.
10. The apparatus of claim 9 further comprising a histogram grading protocol, the histogram grading protocol requiring recalculation of the histogram whenever a selected histogram parameter criterion is not met.
11. A system for creating and progressively adjusting a histogram produced for an image to be displayed on an oscilloscope, comprising:
- a rasterized input image;
- a microprocessor capable of delivering and receiving data from components of the system,
- a memory, the memory storing the rasterized input image as a raster plane;
- a mapper, the mapper converting image data contained in the raster plane into image data stored in the memory as a map plane;
- a histogram collector, the histogram collector creating a histogram of the image data stored in the map plane; and
- a histogram equalization function adjustment subroutine, the subroutine adjusting histogram characteristics such that map plane pixel intensities are substantially equally distributed within the histogram.
12. The system of claim 11, wherein the histogram further comprises a plurality of pixel intensity bins, the mapper causing each bin to contain a substantially equal number of map plane pixels.
13. The system of claim 12, wherein the mapper further comprises a coarse nibble transfer function, the coarse nibble transfer function having map plane image data as an input and a corresponding location within a pixel intensity bin as an output.
14. The system of claim 13 wherein each pixel intensity bin comprises an upper and a lower boundary, the histogram equalization function adjustment subroutine altering the upper and lower boundaries of at least some of the pixel intensity bins so as to cause each bin to contain a substantially equal number of map plane pixels.
15. The system of claim 14 wherein the mapper further comprises a fine nibble transfer function, the fine nibble transfer function dividing each pixel intensity bin of the coarse nibble transfer function into an equal number of equally spaced pixel intensity regions.
16. The system of claim 15 wherein the upper and lower boundaries of each pixel intensity bin are initially derived from the upper and lower boundaries produced in response to a previous image processed by the mapper.
17. The system of claim 16 wherein the histogram equalization function subroutine is applied iteratively to each map plane image until predetermined histogram parameters are achieved.
18. A method of equalizing a histogram produced in response to rasterized image data, comprising the steps of:
- determining the maximum pixel intensity present in the image data,
- selecting the maximum number of possible pixel display intensities,
- selecting the desired resolution of each histogram intensity bin;
- selecting the desired number of histogram intensity bins; and
- placing a substantially equal number of pixels in each intensity bin.
19. The method of claim 18, further comprising the step of calculating the total number of nonzero intensities present in the rasterized image data.
20. The method of claim 19, further comprising the step of calculating E, the expected number of intensities to map per displayable intensity level, according to the formula
- E=Z/M, where
- Z is the number of nonzero intensities present in the rasterized image data, and
- M is the maximum desired number of intensity bins.
Type: Grant
Filed: Jan 7, 2003
Date of Patent: Nov 21, 2006
Patent Publication Number: 20030152266
Assignee: Tektronix, Inc. (Beaverton, OR)
Inventors: Kevin T. Ivers (Woodland, WA), Paul M. Gerlach (Beaverton, OR), Daniel E. Taylor (Beaverton, OR)
Primary Examiner: Phuoc Tran
Attorney: David N. Caracappa
Application Number: 10/338,206
International Classification: G06K 9/00 (20060101);