This application is based upon and claims the benefits of priority from the prior Japanese Patent Application No. 2007-144331, filed on May 31, 2007, the entire contents of which are incorporated herein by reference.
1. Field
The embodiments discussed herein are directed to a solid-state imaging device and a pixel correction method. The embodiment may relate to a solid-state imaging device with the function of correcting defective pixels in a picture, as well as to a method of correcting defective pixels in a picture.
2. Description of the Related Art
Solid-state imaging devices such as complementary metal-oxide semiconductor (CMOS) image sensors have a color filter placed over their photo diode array to capture color images. Incoming light passes through the color filter and reaches each photo diode, where the optical image is converted to electric signals. The output of such imaging devices may, however, contain some defects or noise disturbance. The output signal is therefore subjected to a defect correction and noise suppression process, which replaces a defective pixel signal with a signal of another pixel preceding or succeeding that pixel in question. See, for example, Japanese Unexamined Patent Application Publication Nos. 2001-307079 and 2002-300404.
It is an aspect of the embodiments discussed herein to provide a solid-state imaging device capable of correcting defective pixel signals, the device including: a line memory that provides values of a pixel currently selected for correction and surrounding pixels thereof, the surrounding pixels including corrected pixels preceding the selected pixel and uncorrected pixels succeeding the selected pixel; an extreme value remover that removes effectively a maximum pixel value and a minimum pixel value from the values of the corrected pixels read out of the line memory; an average calculator that receives the remaining values of the uncorrected pixels from the extreme value remover, as well as the values of the corrected pixels from the line memory, and calculates an average value of all the pixel values received; and a comparison processor that compares the value of the currently selected pixel with the average value calculated by the average calculator and, if a difference therebetween exceeds a predetermined threshold, replaces the value of the currently selected pixel with the average value.
The above and other objects, features and advantages of the present invention will become apparent from the following description when taken in conjunction with the accompanying drawings which illustrate preferred embodiments of the present invention by way of example.
Preferred embodiments will now be described in detail below with reference to the accompanying drawings, wherein like reference numerals refer to like elements throughout. The description begins with an overview and then proceeds to a more specific embodiment of the invention.
The line memory 2 outputs the values of a pixel currently selected for correction and its surrounding pixels. Here, the surrounding pixels are divided into two groups: (a) corrected pixels preceding the selected pixel, and (b) uncorrected pixels succeeding the selected pixel.
The signal processor 3 processes digital image signals supplied from an image sensor through an analog-to-digital (A/D) converter (both not shown). To this end, the signal processor 3 is formed from an extreme value remover 4, an average calculator 5, and a comparison processor 6.
Specifically, the extreme value remover 4 removes effectively a maximum pixel value and a minimum pixel value (i.e., extreme values) from the group of corrected pixel values read out of the line memory 2. In the example shown in
To facilitate the reader's understanding,
The average calculator 5 receives the remaining values of uncorrected pixels from the extreme value remover 4, as well as the corrected pixel values read out of the line memory 2. The average calculator 5 then calculates the average of all those received pixels.
To realize the above averaging function, the average calculator 5 contains three adders 5a, 5b, and 5c and a divider 5d as depicted in
The comparison processor 6 compares the original value of the selected pixel C with the average pixel value calculated by the average calculator 5. If their difference exceeds a predetermined threshold, the comparison processor 6 replaces the value of the selected pixel C with the average pixel value.
To realize the above function, the comparison processor 6 shown in
The above-described solid-state imaging device 1 operates as follows, assuming that a specific pixel C is selected for correction. The value of the selected pixel is read out of the line memory 2, along with those of its surrounding pixels. The surrounding pixels include those preceding the selected pixel and those succeeding the selected pixel. From the latter group of pixels, the extreme value remover 4 removes both maximum-valued and minimum-valued pixels effectively. The average calculator 5 calculates the average value of such surrounding pixels, excluding maximum-valued and minimum-valued pixels succeeding the currently selected pixel. The comparison processor 6 compares the selected pixel value with the average pixel value calculated by the average calculator 5. If their difference exceeds a predetermined threshold, the comparison processor 6 substitutes the average pixel value for the selected pixel.
Referring now to the block diagram of
The pixel array 11 is an array of pixels arranged in the form of a two-dimensional matrix, each pixel having a photo sensing element formed from a photodiode and MOS transistors. The timing generator 12 provides pulse signals for use in the vertical scanning circuit 13 and horizontal scanning circuit 14. The vertical scanning circuit 13 selects pixels sequentially in the column direction, while the horizontal scanning circuit 14 selects pixels sequentially in the row direction.
The reference voltage generator 15 generates reference voltages for use in several sections of the device. The column CDS 16 rejects amplifier noise and reset noise produced in the pixel array 11. The column AMP 17 adjusts the sensor output level such that it falls within an input dynamic range of the column ADC 18. The column ADC 18 converts a given analog voltage to a digital value. The column counter 19 counts digital values for output of the column ADC 18. The ramp wave generator 20 produces a ramp wave increasing at a constant rate for use in the column ADC 18.
The line memory 21 is a semiconductor memory used as temporary storage of output image signals from the column counter 19 and logic circuit 22. This line memory 21 offers a memory area for each different line of the pixel array 11. The stored image signals are supplied to the logic circuit 22. The register 23 stores various user-defined parameters for use in the logic circuit 22.
Referring to the flowchart of
The RGB processor 224 begins its task with reading pixel values from the column ADC 18 and line memory 21 for one selected pixel for correction and its surrounding pixels with the same color on one line (step S1). Some of those surrounding pixels have already been corrected by the RGB processor 224, and others have not. The RGB processor 224 adds up the values of the former group of surrounding pixels (i.e., corrected pixels), thus producing a sum ak (step S2). The RGB processor 224 then adds up the other group of surrounding pixels (i.e., uncorrected pixels) after effectively removing the maximum and minimum ones, thus producing another sum bk (step S3). The RGB processor 224 calculates the sum of ak and bk (step S4). The RGB processor 224 then adds some appropriate value to the result of step S4 to compensate for the two removed pixels (step S5). The RGB processor 224 calculates an average pixel value PAVE from the result of step S5 (step S6). That is, PAVE represents the average of surrounding pixels with the same color as the selected pixel, excluding both maximum and minimum extremes from those read out of the line memory 2 at step S1.
The RGB processor 224 now turns to the currently selected pixel. This pixel has a value of P, which has been obtained at step S1. The RGB processor 224 determines whether the absolute difference between P and PAVE is greater than a defect detection threshold Th (step S7). If the absolute difference is greater than Th (i.e., if Yes at step S7), then the selected pixel takes the average PAVE as its new corrected value P1 (step S8). If the absolute difference is equal to or smaller than Th, then the selected pixel maintains its original value P (step S9), meaning that P1 equals P.
The logic circuit 22 determines whether all pixels on the current line have undergone steps S1 to S9 (step S10). In other words, it determines whether the entire line is finished. If there are uncorrected pixels on the current line (i.e., if No at step S10), the RGB processor 224 returns to step S1 to repeat the foregoing steps to correct the next uncorrected pixel on the current line.
If the entire line is finished (or if Yes at step S10), the logic circuit 22 then determines whether the entire frame is finished (step S11). If there are uncorrected lines (or if No at step S11), the line memory 21 is updated with the finished line (step S12), and the process returns to step S1 to repeat the foregoing steps to correct the next uncorrected line. If the entire frame is finished (or if Yes at step S11), the process is terminated.
The process described in
The RGB processor 224 shown in
The MAX/MIN remover 31 receives values of uncorrected pixels b1 to b4 from the line memory 21. The MAX/MIN remover 31 removes a maximum value and a minimum value from those received pixel values, and the first adder 32 adds up the remaining two pixels. The second adder 33, on the other hand, adds up the values of four corrected pixels a1 to a4 supplied from the line memory 21. The third adder 34 further adds up the outputs of the first and second adders 32 and 33.
The first divider 35 divides the output of the second adder 33 (i.e., the sum of four corrected pixel values) by two. Then the first selector 36 selects either the output of the first adder 32 (i.e., the sum of two remaining pixel values) or the output of the first divider 35 (which is equivalent to two average corrected pixel values). The user may explicitly specify which to select. Or alternatively, the first selector 36 may follow a factory-default selection.
The fourth adder 37 adds up the six-pixel sum output of the third adder 34 and the two-pixel sum output of the first selector 36. The second divider 38 divides the eight-pixel sum output of the fourth adder 37 by eight, thereby producing what has been described in
The comparator 39 compares the division result of the second divider 38 with the value of the selected pixel c0, which is supplied from the line memory 21. More specifically, the comparator 39 calculates the difference between the value of the selected pixel c0 and the average of its surrounding pixels. If the difference exceeds a predetermined threshold (specifically, defect detection threshold Th), the comparator 39 activates its output from low to high, for example.
The second selector 40 chooses either the original value of the selected pixel c0 or the average of its surrounding pixels, based on the comparison result of the comparator 39. This output of the second selector 40 is used to correct the currently selected pixel c0. Specifically, if the comparator 39 activates its output, the second selector 40 selects the average value and writes it in the line memory 21 as a corrected value of the selected pixel c0. If the output of the comparator 39 stays inactive, the second selector 40 selects the original value of pixel c0 and writes it in the line memory 21. This pixel c0 will be referenced later as a corrected pixel a1, a2, a3, or a4 since it has undergone a correction process.
The above-described circuit of
This section describes a second specific example of the RGB processor 224. Since the second specific example is mostly similar to the foregoing first specific example, the description will focus on their differences without repeating the explanation for their shared features.
The second specific example differs from the first specific example in the way of creating input values for the adder 34.
The MAX/MIN extractor 41 receives values of uncorrected pixels b1 to b4 from the line memory 21. The MAX/MIN extractor 41 extracts maximum and minimum values out of those received pixel values. One adder 42 adds up those two extreme pixel values, while the other adder 43 adds up all four pixels b1 to b4. The subtractor 44 subtracts the two-pixel sum output of the adder 42 from the four-pixel sum output of the adder 43. As a result, the output of the subtractor 44 excludes the maximum and minimum pixel values, and that value is supplied to the next adder 34. The rest of the processing goes in the same way as in the foregoing first specific example.
This section describes a third specific example of the RGB processor 224. Since the third example is mostly similar to the foregoing second example, the description will focus on their differences without repeating the explanation for their shared features. More specifically, the third specific example differs from the second specific example in the number of surrounding pixels referenced during the course of correction processing.
According to the third specific example, the RGB processor 224c is formed from the following elements: a MAX/MIN extractor 41a, five adders 42a, 43a, 33a, 34a, and 37a, a subtractor 44a, three dividers 35a, 35b, and 38a, two selectors 36 and 40, and a comparator 39.
The RGB processor 224c removes maximum and minimum values from the group of succeeding pixels and compensates for them with appropriate alternatives as in the second specific example. That is, the subtractor 44a outputs the sum of ten remaining pixels values. The divider 35b divides this sum by five, thus producing an average two-pixel sum for selection at the subsequent selector 36. Other elements of the RGB processor 224c operate in the same way as in the foregoing second specific example; this section does not repeat the explanation for such elements.
As can be seen from the above-described example, the RGB processor 224c can handle an increased number of pixels just in the same way as in the case of fewer pixels.
To summarize the above discussion, the proposed solid-state imaging device and pixel correction method are designed to correct pixel values using the average of their surrounding pixels with the same color. For precise correction, the proposed device and method reject maximum and minimum pixel values found in the uncorrected pixels preceding the currently selected pixel, thereby protecting average values from being contaminated by undesired defects or noises.
The present invention should not be limited to the specific embodiments described with reference to accompanying drawings. Each element of the proposed solid-state imaging device and pixel correction method may be replaced with any other element that performs equivalent functions. For example, the present invention can be applied not only to images in RGB Bayer pattern, but also to those in other format, such as pictures taken with a complimentary color mosaic filter. The present invention may also be modified to remove not only the maximum and minimum pixel values, but also the second to the maximum value and the second to the minimum value, and compensate later for all those removed values.
The foregoing is considered as illustrative only of the principles. Further, since numerous modifications and changes will readily occur to those skilled in the art, it is not desired to limit the invention to the exact construction and applications shown and described, and accordingly, all suitable modifications and equivalents may be regarded as falling within the scope of the invention in the appended claims and their equivalents.
Number | Date | Country | Kind |
---|---|---|---|
2007-144331 | May 2007 | JP | national |