Abstract:
A dithered offset correction method wherein, according to a first embodiment, updates are made of the offset correction during each iteration and, after four iterations, the offset for each pixel or detector element is updated from all of its neighbors to provide faster convergence than is obtainable by the prior art. In accordance with a second embodiment, the offset for each detector element is updated for every iteration and, for each update, the update is made with information from an entire row or an entire column of data. After four iterations, each offset has been updated with information from every detector element in the focal plane array. This provides even more rapid convergence compared to the prior art.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     This application claims priority under 35 USC § 119 of provisional application No. 60/032,142 filed Dec. 9, 1996. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     This invention relates to offset correction for use in conjunction with detectors and primarily infrared detectors. 
     2. Brief Description of the Prior Art 
     Detector systems generally include a plurality of detector elements, generally arranged in a column or a matrix, which scan or stare at a scene and generate a signal from each detector element (generally referred to as a &#34;pixel&#34;) indicative of the portion of the scene detected by that detector element at a particular point in time. The full scene is a composite of the signals received from all or a portion of the detectors elements. In order for the full scene to be depicted accurately, it is necessary that each of the detector elements provide an identical output for the same input. This is generally not the case because most detectors have a different response to the same input thereto. This requires that each detector element be calibrated and that its output be adjusted to normalize the system, hence the use of offset correction to calibrate each of the detector elements. This calibration takes place while the detector array is operating in a system and is a part of the circuitry of the system. 
     Offset correction takes many forms, one such form involving the use of a thermal source and a chopper whereby the thermal source is used as the common scene for all of the detector elements for calibration. Since all of the detector elements are provided with an identical scene, any differences from detector element to detector element can be measured and an offset provided to each detector element to compensate for the differences and normalize the output of the system. A problem with this technique is that the detector system cannot view the scene continually because recalibration is required periodically, at which time the thermal source is substituted for the scene. Furthermore, the use of the thermal source and chopper adds substantial bulk and cost to the system. A yet further problem is that the outputs of one or more of the detector elements can change after initial calibration for various reasons, thereby making the existing factory installed offset inaccurate. In addition, calibration takes place at an artificial flux level rather than at the true scene flux level, so calibration is not necessarily taking place under the same conditions as the actual operation. It is therefore apparent that other types of detector calibration would be desirable. 
     In this regard, dither offset has been developed. Prior art systems of this type are set forth in a paper entitled &#34;Dithered Scan Detector Compensation&#34; by William F. O&#39;Neil, Proc. IRIS Passive Sensors, 1992, Vol. 1, pp. 123-134, the contents of which are incorporated herein by reference. This reference sets forth systems for sensing images using a detector array and correcting errors in the image signals caused by gain and offset variations from detector to detector in the array. To correct gain and offset errors, the detector array is dithered by moving the detector line of sight between consecutive frames according to a predetermined pattern. This dithering causes different detectors to image the same location in the scene during different frames and causes two adjacent detectors to scan between the same two points in the scene during a cycle of the dither pattern. Image data generated from the dithering is used to remove gain and offset errors from the sensed images and to generate gain and offset correction values to be stored in a table and applied to the sensed images. The system continually recalibrates and maintains the correction immune to scene changes when the detector array is installed on a moving platform. 
     The above described approach of O&#39;Neil updates the offsets every four frames using information only from four neighboring detectors to update the offset correction for a given pixel. This approach provides relatively slow correction for two reasons, these being (1) correction is only updated every four frames and, more important, (2) only a small amount of the available information is used in computing the correction. 
     SUMMARY OF THE INVENTION 
     In accordance with the present invention, there is provided a dithered offset correction system which improves the offset correction relative to O&#39;Neil. The system assumes that the gain of each detector element will not vary excessively from its originally determined state with time and that any small variation will be essentially compensated for by the offset provided in accordance with the present invention. In accordance with one form of the present invention, the offset correction for each pixel is updated every frame and, after a predetermined number of frames, has been updated with information from all of the neighboring pixels and, indirectly, from all of the neighbors of the neighboring pixels, ultimately including all of the pixels. This provides much faster convergence than is available by the techniques described by O&#39;Neil. In accordance with a second form of the present invention, the offset correction for each pixel is updated every frame and uses, for each update, information from an entire row or an entire column of data. After a predetermined number of iterations, each offset has been updated with information from every detector in the focal plane array. This provides for extremely rapid convergence compared to the prior art. It should be noted that it is possible to construct other dithered offset correction variants that exchange convergence speed and implementation cost. This is accomplished by limiting the number of detectors actually used in each dithered offset correction iteration. 
     Briefly, the above is accomplished in accordance with a first embodiment of the invention by measuring the flux from a scene with each detector element S n  of a detector array at a first point in time t 1  and then dithering or shifting each detector element relative to the scene so that another detector element S n+1  in the array now sees the same scene during a later second iteration as was seen during the first iteration, this dithering or shifting taking place for all of the detector elements in the detector array. Accordingly, each detector element is moved in the same direction along the x-axis (left or right) or in the same direction along the y-axis (up or down) or according to some other pattern at a second point in time t 2 . Ignoring temporal noise and gain variations, the differences between the outputs of detector elements S n  and S n+1  under equal flux conditions will be due to an offset difference. Using the output differences between the two adjacent detector elements S n  and S n+1 , an offset correction O n  is formed for each detector element. This correction will preferably be one half the difference between the two detector elements (though other portions of the difference or functions of the difference are contemplated herein) and the one half of the difference is subtracted from the larger detector output value and added to the smaller detector output value. The same procedure is followed concurrently for detector elements S n+1  and S n+2  . . . in all directions until a complete loop is made and the sequence starts over. At this time, every detector element S n  will thereby be corrected twice for each iteration, once by the function of the difference between the detector element output viewing the same scene portion on the prior iteration S n-1  and once by the function of the difference between the detector element now viewing the portion of the scene viewed by detector element S n  during the prior iteration. The correction takes the form: 
     
         O.sub.n =[S.sub.n (t.sub.n)-S.sub.n+1 (t.sub.n+1)]/2+[S.sub.n-1 (t.sub.n)-S.sub.n (t.sub.n+1)]/2. 
    
     Each detector element output can be thought of as a flux dependent term plus a constant offset which varies, or S n  =F(.o slashed.)+b n . With the above stated assumptions, all scene dependence cancels, leaving O n  =-[(b n  -b n+1 )]/2+[(b n-1  +b n+1 )]/2. Considering the offset array to be the offsets on each detector element, the partial correction row contains the partial corrections derived from adjacent detector elements. The correction row is the sum of the corresponding partial corrections. The corrected row is the initial offset added to the correction. The second and further iterations are effected in the same fashion, starting with the corrected values. 
     In accordance with a second embodiment of the invention, the above described procedure is utilized except that each correction is provided with the full comprehension of the previous corrections. Whereas in the above described embodiment, partial corrections are computed based solely upon the initial offset values, in this embodiment, S n  is corrected by the difference between S n  and S n+1  before the difference between S n  and S n+1  is provided. This changes the above equations to read: 
     
         O.sub.n =[S.sub.n (t.sub.n)-S.sub.n+1 (t.sub.n+1)]/2+[S.sub.n-1 (t.sub.n)+O.sub.i-1 S.sub.n (t.sub.n+1)]/2. 
    
     The term O n  has become recursive and the offsets now become smoothed according to the equation: ##EQU1## As is apparent from the preceding equation, each new correction is based upon offsets of all prior corrections. This accounts for the rapid convergence. 
     Both of the above described procedures can be performed on two dimensional arrays by dithering in a one-detector sized square. By doing so, correction takes place from, for example, left to right, from top to bottom, from right to left and then from bottom to top. The offsets converge to the mean offset of the array, even in the presence of white temporal noise. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIGS. 1a and 1b are schematic diagrams of frames detected by a detector array before and after dithering respectively; 
     FIG. 2 is a block diagram of circuitry for providing an output for each detector element of the array in accordance with the present invention; and 
     FIG. 3 is a schematic diagram of the operation of the correction processor of FIG. 2. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Referring first to FIGS. 1a and 1b, there is shown a simulation of a scene which has arbitrarily been broken down into forty-two (6×7) sections or pixels arranged in a matrix. The numbers in each section correspond to row and then column in the matrix. A bank of detector elements corresponds to the matrix, there being one detector element for each matrix section. Referring to each pixel of the matrix by row number and then column number (i.e., D rc  is the detector at row r and column c), during a first iteration, each detector element or pixel D rc  will detect a Portion of a scene and provide an output for each pixel. It can be seen in FIG. 1a that detector elements D 51  to D 57  have detected an infrared scene and the other pixels have detected no infrared radiations. During a second iteration, the scene has moved in the matrix along row 5 so that the pixels D 52  to D 57  now view what was previously seen by pixels D 51  to D 56  respectively and the scene previously viewed by pixel D 57  is out of view of the detector array. It follows that any difference in output from pixels viewing the same scene portion from the first to the second iteration is an offset which is to be corrected. This correction is made by adding half of the offset to the pixel with the lower output and subtracting half of the offset from the pixel with the higher output. It can be seen that all of the pixels in the row are corrected based upon comparison with pixels on both sides thereof. 
     The above described procedure is repeated during a third iteration by moving the scene upward so that it fills pixels D 42  to D 47 , and is repeated during a fourth iteration by moving the scene sideways so that it fills pixels D 41  to D 47  and is repeated during a fifth iteration so that the scene returns to its position in FIG. 1a. 
     Referring to FIG. 2, there is shown a block diagram of circuitry for providing an output for each detector element of the array in accordance with the present invention. There is shown a standard focal plane array with standard associated electronics 1 for detection of a scene in standard manner. Images or scenes detected by the detectors of the focal plane array 1 are stored in the current ping pong image buffers 3 and 5. The correction buffer 9 adds the correction to the raw scene in adder 11 of the matrix of outputs of the matrix of detectors in the focal plane array and provides an output image 13 indicative of the new offset. 
     Referring to FIG. 3, there is shown a schematic diagram of the operation of the correction processor 7. This diagram assumes mechanical dither motion in the j direction. For embodiment 1, a slow clock is used and the offset correction buffer 9 is updated only on a per-frame basis with the updates calculated based upon the buffer 9 contents from the prior frame. For embodiment 2, however, a fast clock is used to update the correction buffer 9 as the updates are computed. In this way, the most current corrections are used for all calculations. In both cases, correction covers every row (or column) in its entirety between new data frames. 
     The above described techniques can be implemented in hardware or software. A hardware implementation is shown. For either embodiment, the overall architecture is the same with only clock rates in the correction processors differing. For the present discussion, it is assumed that induced motion is exactly one pixel from left to right and the index &#34;j&#34; increments to the right. Typically, a one-pixel square pattern is used and motion goes left, down, right, up, but other configurations are possible. 
     The general architecture operates as follows: An image is received from the focal plane array and associated electronics (FPA). One image is stored into ping pong image buffer I A  3. The next image, in which the scene has been offset or dithered, is stored in buffer I B  5. At any instant in time, the output image is formed by adding the most current image to the most current offset correction from correction buffer 9. The images from both image buffers 3 and 5 are received into the correction processor 7 for correction updates. The correction update is effected for the entire array before the new scene arrives from the FPA. The new scene, dithered with respect to the previous scene, is now received back in ping pong buffer I A  3 and the process continues. 
     For either embodiment, the correction for every row (or column, depending upon the direction of dither) is independent of the other rows (or columns), allowing all rows or columns to be corrected simultaneously. In the first embodiment, no corrections are made on a pixel until corrections have been calculated for the entire row. In the second embodiment, however, the pixel corrections are made &#34;on the fly&#34;, allowing the corrections to always be made with the most up-to-date information on every pixel. 
     In accordance with the first embodiment with reference also to FIG. 3, pixels are read from the image buffers 3,5 and are corrected using the correction factors from the correction buffer 9. The difference between these pixels is computed and divided by two to form a correction update. This correction update is then subtracted from the correction factor corresponding to the left-hand pixel and added to the correction factor corresponding to the right hand pixel. These new values are then stored in latches 15 and 17. Index &#34;j&#34; then increments and the entire process repeats. After the entire row has been corrected, a clock strobes the latches 15,17 and the newly formed correction factors are used to update the correction buffer 9. 
     In accordance with the second embodiment, the process is identical to that of the first embodiment except for the clock speed. In this case, a high speed clock updates the correction factors on the current pixel pair before incrementing index &#34;j&#34;. As a result, when the difference between pixel i,j and pixel i,j+1 is formed, it is formed with a comprehension of the correction already made on pixel i,j. The correction on pixel i,j, likewise, was made with comprehension of the correction previously made on pixel i,j-1, and so forth. Since this process continues across an entire row (or down a column), the last pixel in the row is updated with some information from all the prior pixels in the row. This propagation of information is what accounts for the fast convergence. By contrast, embodiment 1 does no update any of the pixels until updates for the entire row are formed. Hence, though easier to implement, embodiment 1 converges more slowly than does embodiment 2. 
     In summary, both of the above described embodiments compute an offset correction matrix which is located in the correction buffer 9, this matrix being applied to the scene. When the difference between neighboring pixels if formed, it is formed with comprehension of the current offset values. In other words S n  =I n  +C n , where I n  is the raw detector value (which, in turn, includes scene and offsets, b) . When the difference between neighboring detectors is formed, the difference continually decreases as the as the data stored in the correction buffer matrix 9 becomes a continually better compensation for the original offset differences. The only difference between the two embodiments is that, in embodiment 1, the correction buffer matrix 9 is not updated until the correction across the entire row has been computed. In embodiment 2, the correction buffer matrix 9 is continually updated. For example, the correction between two pixels, such as S n  -S n+1 , is calculated, however this is actually I n  +C n  -(I n  +C n+1 ). For embodiment 1, C n  has not been updated since the prior frame. For embodiment 2, C n  would already have been partially updated by the prior correction (from the difference S n-1  -S n ). As an example, if there is a 1×3 array with original offsets B=[2,5,7] and a correction matrix in correction buffer 9 with the values [1,0,-1] with the scene being ignored since it falls out in the calculations, it can be shown that the correction in embodiment 1 is a difference of one-half between one pair and one between the other pair of corrected values (for a difference of 1.5 between ends). For embodiment 2, it can be shown that only a difference of one between one pair and a difference of one between ends exists. Embodiment 2 provides a faster correction than embodiment 1. Information from the first element arrives at the third element by way of the first partial correction on the second element. 
     Though the invention has been described with reference to specific preferred embodiments thereof, many variations and modifications will immediately become apparent to those skilled in the art. It is therefore the intention that the appended claims be interpreted as broadly as possible in view of the prior art to include all such variations and modifications.