DIGITAL FILTER

Information

  • Patent Application
  • 20070287218
  • Publication Number
    20070287218
  • Date Filed
    June 11, 2007
    17 years ago
  • Date Published
    December 13, 2007
    16 years ago
Abstract
A method is for filtering data output from an array of pixels in an image sensor. The method may include filtering noise from variation in pixel response across the array. An electronic device may have a device for filtering data output from an array of pixels in an image sensor. The device may include a noise filter for removing variation in pixel response across the array.
Description

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention may now be described, by way of example only, with reference to the accompanying drawings, in which:



FIG. 1 illustrates an image sensor pixel array wherein readout circuitry is shared between rows, according to the prior art;



FIG. 2 illustrates the Bayer pattern color filter array, according to the prior art;



FIG. 3 illustrates the operation of a coring filter according to the present invention;



FIG. 4 schematically illustrates a digital filter according to a first embodiment of the present invention;



FIG. 5 schematically illustrates a digital filter according to a second embodiment of the present invention; and



FIG. 6 illustrates the process of an aspect of a filtering step according to the present invention.





DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

As mentioned above, noise caused by variation of pixel response across the array of pixels may be a drawback of known image sensors. Because the NFV is narrowband, a first possible approach would be to deploy a fixed notch-filter at the frequency of variation of response, which in most cases may be the nyquist frequency. It can also be set at a chosen other frequency for special case image sensors.


While this approach may be the preferred option for some implementations, there may be some problems associated with it. In the world of video and stills imaging, an effective notch-filter is expensive, and loss of high-frequency data (blurring) is the inevitable result of a practical filter design. For color image processing, if notch-filtering is performed before the demosaic step, the Nyquist region is relatively smaller and blurring is intensified. If performed after demosaic, any prior noise reduction is compromised as described earlier.


A further possible option that may mitigate the blurring effect is the use of an adaptive filter. Again, this approach may be preferred for some applications but in general presents some difficulties: it is difficult to separate noise and data in regions of high luminance activity. It is difficult to develop a model on which adaptation can occur, other than in regions of low textural activity where the notch-filter would bring good results anyway. Thus, the NFV tends to survive around object edges in the scene, and cancellation is only partially effective.


A further weakness of the adaptive filtering approach may be that the notch-filter may be minimum-phase, to allow fade-in and fade-out without phase-shifting. A minimum-phase notch-filter at Nyquist is difficult to achieve (the fixed-response filter does not suffer from this restriction, as a phase-shift by a fixed distance is perfectly acceptable over an entire image).


A more advanced option that avoids these problems is the use of coring. Coring is a technique, which in itself is well known. It is applied to signal differences to drive differences by a certain amount towards, but not beyond, zero. The operation of a coring function is shown in FIG. 3, which shows how an input value plotted on the x-axis is changed to an output value, plotted on the y-axis. The line 50 represents an unchanged signal, where the output is equal to the input, while the line 52 illustrates the operation of a coring function. In the illustrated example, input signals with a value above 1 are driven by a value of 1 towards zero. The values between −1 and 1 are removed. The amount by which values are driven towards zero is herein termed the “coring level”. It is also sometimes known as the coring depth.


Coring does not involve neighboring pixel data, although neighboring data may have contributed to the formation of either or both of the two signals whose difference is subject to coring. Thus coring may be only applicable to minimum phase (co-sited) signal pairs. The function of coring is to drive differences by a certain amount towards, but not beyond, zero.


A common example of coring can be found in the peaking, or sharpening, of images. This signal processing step may be usually performed late in the image reconstruction chain giving a bandpass or highpass boost to image data, compensating for upstream lowpass mechanisms. As residual noise is also boosted by this process, coring can act as an effective late-stage noise reduction process, while still passing the larger signal swings which serve to sharpen image detail. Level settings may be subtle if visible image degradation is to be avoided, thus coring is not usually deployed in normal (low-noise) operation.


Cored peaking is only employed part of the time during operation of existing image sensors, and under normal operating conditions is only employed with subtle coring levels. Furthermore, peaking comes after noise-reduction and demosaic in the reconstruction chain, by which time the damage is done.


The use of peaked coring for NFV suppression has not previously been considered because the actual problem of how to remove noise caused by variation of pixel response across the array of pixels has not previously been considered. Furthermore, the coring levels for NFV suppression are much higher than that of cored peaking and may always be deployed. So the use of cored peaking for NFV suppression would be seen as too little, too late.


However, Applicant has realized that a coring method can in fact be applied to the NFV problem. This may hereafter be referred to as “nyquist coring”. In this case, the model of NFV is a gain error, and the coring level is made level-dependent, i.e. it is expressed as a percentage of the signal value. We may refer to this percentage value as the “adaptive coring level”. It can be varied within an image with no loss of generality. The adaptive coring level can further be modulated by the co-sited signal estimate to produce a “weighted coring level” used in the coring process.


This coring process may now be discussed with reference to FIGS. 4 and 5. As a first step, data is co-sited, so that the minimum phase signal pairs are generated. The example shown in FIG. 4 shows an application to neighboring green pixels in a Bayer pattern. The central pixel 54 has four neighbors (ring pixels), which for convenience are labeled as north-west, north-east, south-west and south-east neighbors 56, 58, 60, 62, respectively. Note that if the center pixel is sited on an even row, the neighbors are sited on odd row and vice-versa, the same applies to columns. The values of the ring pixels are output to a cositing filter 64, which operates on them to output an estimate of the central pixel value in the absence of NFV.


The estimate and the actual value from the central pixel site are input to a nyquist coring module 66. The difference between this estimate and the actual value at the site then represents the NFV, and is cored-out if below the set coring level.


The scope of the invention is not limited to any particular cositing filter design. One possible option is to simply calculate the average of the neighbors. However, an improved version can make use of an adaptive gradient analysis, which is illustrated in FIG. 5. An example gradient analysis means or a gradient analyzer 68 is shown in FIG. 5. The sum of each diagonal and the sum of all the ring pixels are calculated. An orthogonal stripe value is calculated, which is defined as the absolute value of {(4*central pixel value)−(the ring sum)}. This value may be small if the central pixel value 54 is close to the average of its neighboring pixels 56-62. The orthogonal stripe value is orthogonal and normalized.


A “stripe” in the north east direction is then calculated, defined as the absolute value of {(2*central pixel value)+(sum of north east pixel 58 and south west pixel 60)−(sum of north west pixel 56 and south east pixel 60)} and a “stripe” in the south east direction is calculated, defined as the absolute value of {(2*central pixel value)+(sum of north west pixel 56 and south east pixel 60)−(sum of north east pixel 58 and south west pixel 60)).


It can be seen that if the sum of the north-east and south-west pixels 58, 60 is greater than the sum of the north-west and south-east pixels 56,62, then the value of the north-east stripe may be greater than the value of the south-east stripe. Alternatively, if the sum of the north-east and south-west pixels 58,60 is less than the sum of the north-west and south-east pixels 56, 62, then the value of the north-east stripe may be less than the value of the south-east stripe.


Furthermore, a null stripe value is also defined based on a predetermined stripe threshold. This determines the sensitivity of the gradient analysis by setting an arbitrary level for the stripe detectors, above which it is considered a stripe to be detected. The orthogonal stripe, north-east stripe, south-east stripe and the stripe threshold are then sorted by magnitude. If the maximum value is the north-east stripe, the gradient analysis means 68 outputs a “NE” angle signal, while if the maximum value is the south-east stripe, the gradient analysis means 68 outputs a “SE” angle signal. Otherwise, the angle signal is output as a null value, indicating that no discernable gradient is present.


The output angle signal is then input to an adaptive cositing filter means or a cositing filter (70 in FIG. 5). If an “NE” angle is input, the adaptive cositing filter 70 uses the average of the north east and south west pixels 58,60 as the estimate to be output, while if a “SE” angle is input, the adaptive cositing filter 70 uses the average of the north-west and south-east pixels 56, 62 as the estimate to be output. However, if the angle is a null value, the estimate is calculated as the average value of the ring pixels 56-62.


It is to be appreciated that the above is only an example, and that the gradient analysis is not limited to comparison of only two diagonals. The stripe value in any determined direction can be found by comparison with any other direction, termed as a comparison direction. The comparison direction may usually be normal to the determined direction, but it does not need to be so. Also, as well as diagonal stripes that include the central pixel value, the stripes could be off-diagonal angles that include the central pixel value, other directions that do not include the central pixel value, and horizontal and/or vertical directions.


Next, the scale of the problem (how great is the maximum expected NFV at a given point) may be estimated throughout the image. As stated earlier, this is a complicated function of spatial index and of scene data. In a simple configuration a coring level 72, representing the envisaged worst-case NFV, can be set externally. However, this may inevitably result in over-attenuation of scene detail at the Nyquist frequency. Another approach is to maintain an internal estimate of NFV which maintains a running estimate of NFV magnitude and adjusts the coring level in response to different NFV conditions, as might be encountered in different regions of an image as described earlier. This allows an acceptable margin to be maintained between transmission of NFV and attenuation of scene detail.


An alternative and possibly simpler means to the same end is to use a “roughness” measure, derived from neighboring data (e.g. the difference between the brightest and darkest pixel) to inhibit coring in highly-textured regions. Here NFV is less noticeable, for example, “out in the open” (blue sky), where suppression is mandatory. A roughness measurement means or a roughness measurer 74 is illustrated in FIG. 5. It has the ring pixel values 56-62 and an adjustable ceiling level 76 as its inputs, in order to give the above-mentioned “roughness” output. The roughness measure is defined as the difference between the maximum and minimum pixel values, which can for example be determined after the values are sorted. If the roughness is found to be greater than the ceiling value, the ceiling value is output. Otherwise, the calculated roughness value is output.


The nyquist coring is carried out by coring means 66, on the basis of the cosited pixel data compared with the central pixel value 54. As mentioned above, the coring level 72 can further be modulated by the co-sited signal estimate to produce a “weighted coring level” used in the coring process.


An example coring process is illustrated in FIG. 6. A weighted coring level can be defined as the {(estimate obtained from the cosited data) divided by (the maximum signal for a given system reapproach)* coring level}. A “difference” is then defined as the (estimate)−(the central pixel value). The cored difference is then set to either the “difference” or the weighted coring level, in accordance with the flow chart illustrated in FIG. 6. The nyquist cored value for the central pixel is then set at the center pixel value + the cored difference. Finally, a soft switch means or a soft switch 78 (FIG. 5) operates to output a weighted sum of the original central pixel value and the nyquist cored central pixel value, the relative weights based on inputs from the roughness measurement 74, gradient analysis 68, central pixel and the nyquist cored central pixel output.


The filter of this invention can be implemented in an image sensor and in any device incorporating the image sensor, for example, a digital still image camera, mobile communications device, optical pointing device such as an optical mouse, or a webcam, among others. Various improvements and modifications may be made to the above without departing from the scope of the invention. For example, the various “means” for performing the functions of the invention may typically comprise electrical circuits that are either programmed or programmable to implement digital filtering and signal processing algorithms. Any combination of hardware, firmware or software may be chosen as convenient. However, it may also be appreciated that the physical mechanisms may comprise other types of circuit or other types of transmission, in well known manners.

Claims
  • 1-44. (canceled)
  • 45. A method of filtering data output from an array of pixels in an image sensor comprising: filtering noise from a variation in pixel response across the array.
  • 46. The method of claim 45 wherein the variation comprises Nyquist Frequency Variation (NFV).
  • 47. The method of claim 45 wherein filtering noise from variations in pixel response comprises: obtaining a central pixel value and a plurality of neighboring pixel values;combining the plurality of neighboring pixel values to obtain an estimated pixel value co-sited with the central pixel value;comparing the central pixel value with the estimated pixel value to provide a difference signal; andcoring the difference signal.
  • 48. The method of claim 47 wherein coring the difference signal is performed according to a coring level, the coring level defining an amount by which difference values are driven towards and not beyond zero.
  • 49. The method of claim 48 wherein the coring level is adjustable.
  • 50. The method of claim 49 wherein coring the difference signal comprises maintaining a running estimate of NFV magnitude and adjusting the coring level in response to different NFV magnitudes.
  • 51. The method of claim 48 wherein the coring level is modulated by a ratio of the estimated pixel value to a maximum signal measurable by a digital processing system that performs the filtering to produce a weighted coring level.
  • 52. The method of claim 47 wherein combining the plurality of neighboring pixel values comprises calculating an average value of the plurality of neighboring values.
  • 53. The method of claim 47 wherein combining the plurality of neighboring pixel values comprises: summing a plurality of groups of pixel values to produce at least a first and second summed group of pixel values, each summed group of pixel values comprising pixels aligned in different directions; andcomparing at least the first and the second summed group of pixel values to determine at least one directional stripe value representing an image striped in a determined direction.
  • 54. The method of claim 53 wherein comparing at least the first and the second summed group of pixel values comprises subtracting the first summed group of pixel values comprising pixels aligned in the determined direction from the second summed group of pixel values taken from pixels aligned in at least one comparison directions.
  • 55. The method of claim 54 wherein the comparison direction comprises a direction normal to the determined direction.
  • 56. The method of claim 54 wherein an angle signal to be output is determined based upon choosing a maximum value from at least: at least one directional stripe values;at least one predetermined stripe threshold value corresponding to a difference in signal level above which two signals are considered as belonging to different stripes; anda normalized stripe value based on comparison of the central pixel value with a sum of the neighboring pixels.
  • 57. The method of claim 56 wherein if an output image angle is a directional stripe value, the pixel values in the corresponding direction are combined in the calculation of the estimated pixel value; and wherein if an output image angle is not the directional stripe value, all the neighboring pixels are combined in a calculation of the estimated pixel value.
  • 58. The method of claim 53 wherein each summed group of pixel values comprises pixels aligned in opposing diagonals.
  • 59. The method of claim 58 wherein the opposing diagonals are orthogonal and centered on and including the central pixel.
  • 60. The method of claim 53 wherein each summed group of pixel values comprises pixels aligned in horizontal or vertical directions.
  • 61. The method of claim 47 wherein coring the difference signal comprises selectively coring based upon a roughness measure, being a difference between maximum and minimum pixel values of the neighboring pixels.
  • 62. The method of claim 61 wherein coring the difference signal comprises coring the difference signal when the roughness measure is within a set threshold.
  • 63. The method of claim 47 wherein the neighboring pixel values comprise neighboring pixel values in a given color plane.
  • 64. The method of claim 45 wherein filtering noise from variations in pixel response comprises applying a notch filter.
  • 65. The method of claim 64 wherein the notch filter acts to filter out signals at a Nyquist frequency of the image sensor.
  • 66. The method of claim 45 wherein filtering noise from variations in pixel response comprises applying an adaptive filter.
  • 67. An electronic device having a device for filtering data output from an array of pixels in an image sensor, the device comprising: a noise filter for removing variation in pixel response across the array.
  • 68. The electronic device of claim 67 wherein the variation comprises Nyquist Frequency Variation (NFV).
  • 69. The electronic device of claim 67 further comprising: a readout circuit for obtaining a central pixel value and a plurality of neighboring pixel values;a calculator for combining the plurality of neighboring pixel values to obtain an estimated pixel value co-sited with the central pixel value; anda coring module comprising a first comparator for comparing the central pixel value with the estimated pixel value to produce a difference signal, anda coring processor for coring the difference signal.
  • 70. The electronic device of claim 69 wherein said coring processor is adjustable to operate according to a coring level, defining an amount by which difference values are driven towards and not beyond zero.
  • 71. The electronic device of claim 70 further comprising a monitor for maintaining a running estimate of NFV magnitude and adjusting the coring level in response to different NFV magnitudes.
  • 72. The electronic device of claim 71 wherein the coring level can be modulated by the ratio of the estimated pixel value to a maximum signal measurable by a digital processing system that comprises the filtering electronic device to produce a weighted coring level.
  • 73. The electronic device of claim 69 wherein said calculator comprises an average calculator for providing an average value of the plurality of neighboring pixel values.
  • 74. The electronic device of claim 69 wherein said calculator comprises: a summer for summing a plurality of groups of pixel values to produce at least a first and second summed group of pixel values, each summed group of pixel values comprising pixels aligned in different directions; anda second comparator for comparing at least the first and the second summed group of pixel values to determine at least one directional stripe value representing an image striped in a determined direction.
  • 75. The electronic device of claim 74 wherein said second comparator comprises a subtractor for subtracting the first summed group of pixel values comprising pixels aligned in the determined direction from the second summed group of pixel values taken from pixels aligned in at least one comparison directions.
  • 76. The electronic device of claim 75 wherein the at least one comparison direction comprises a direction normal to the determined direction.
  • 77. The electronic device of claim 76 further comprising: an angle determiner having a rank sorter adapted to sort at least the at least one directional stripe values;at least one predetermined stripe threshold value corresponding to a difference in signal level above which two signals are considered as belonging to different stripes; anda normalized stripe value based on comparison of the central pixel value with a sum of the neighboring pixels; anda selector for selecting a maximum value and outputting the maximum value as a determined angle value.
  • 78. The electronic device of claim 77 further comprising a logic device for selecting a method of calculating the estimated pixel value; and wherein if an output image angle is a directional stripe value, the pixel values in the corresponding direction only are combined in the calculation of the estimated pixel value; and wherein if the output image angle is not the directional stripe value, all the neighboring pixels are combined in a calculation of the estimated pixel value.
  • 79. The electronic device of claim 74 wherein each summed group of pixel values comprises pixels aligned in opposing diagonals.
  • 80. The electronic device of claim 79 wherein the opposing diagonals are orthogonal and centered on and including the central pixel.
  • 81. The electronic device of claim 74 wherein each summed group of pixel values comprises pixels aligned in horizontal or vertical directions.
  • 82. The electronic device of claim 69 further comprising: a signal roughness measurer to determine a difference between maximum and minimum pixel values of the plurality of neighboring pixels; anda switch for selectively ignoring an output of said coring processor based on a measured roughness.
  • 83. The electronic device of claim 69 wherein the plurality of neighboring pixel values comprises neighbors in a given color plane.
  • 84. The electronic device of claim 67 wherein said noise filter comprises a notch filter.
  • 85. The electronic device of claim 84 wherein said notch filter filters out signals at a Nyquist frequency of the image sensor.
  • 86. The electronic device of claim 67 wherein said noise filter comprises an adaptive filter.
  • 87. The electronic device of claim 67 wherein the electronic device comprises at least one of a mobile communications device, an optical pointing device, and a web cam.
  • 88. An image sensor comprising a device for filtering data output from an array of pixels in the image sensor, the device comprising: a noise filter for removing variations in pixel response across the array;a readout circuit for obtaining a central pixel value and a plurality of neighboring pixel values;a calculator for combining the plurality of neighboring pixel values to obtain an estimated pixel value co-sited with the central pixel value; anda coring module comprising a first comparator for comparing the central pixel value with the estimated pixel value to produce a difference signal, anda coring processor for coring the difference signal.
  • 89. The image sensor of claim 88 wherein said coring processor is adjustable to operate according to a coring level, defining an amount by which difference values are driven towards and not beyond zero.
  • 90. The image sensor of claim 89 further comprising a monitor for maintaining a running estimate of Nyquist Frequency Variation (NFV) magnitude and adjusting the coring level in response to different NFV magnitudes.
  • 91. The image sensor of claim 88 wherein said noise filter comprises a notch filter.
  • 92. A mobile communications device having an image sensor and a device for filtering data output from an array of pixels in the image sensor, the device comprising: a noise filter for removing variations in pixel response across the array;a readout circuit for obtaining a central pixel value and a plurality of neighboring pixel values;a calculator for combining the plurality of neighboring pixel values to obtain an estimated pixel value co-sited with the central pixel value; anda coring module comprising a first comparator for comparing the central pixel value with the estimated pixel value to produce a difference signal, anda coring processor for coring the difference signal.
  • 93. The mobile communications device of claim 92 wherein said coring processor is adjustable to operate according to a coring level, defining an amount by which difference values are driven towards and not beyond zero.
  • 94. The mobile communications device of claim 93 further comprising a monitor for maintaining a running estimate of Nyquist Frequency Variation (NFV) magnitude and adjusting the coring level in response to different NFV magnitudes.
  • 95. An optical pointing device having an image sensor and a device for filtering data output from an array of pixels in the image sensor, the device comprising: a noise filter for removing variations in pixel response across the array;a readout circuit for obtaining a central pixel value and a plurality of neighboring pixel values; a calculator for combining the plurality of neighboring pixel values to obtain an estimated pixel value co-sited with the central pixel value; anda coring module comprisinga first comparator for comparing the central pixel value with the estimated pixel value to produce a difference signal, anda coring processor for coring the difference signal.
  • 96. The optical pointing device of claim 95 wherein said coring processor is adjustable to operate according to a coring level, defining an amount by which difference values are driven towards and not beyond zero.
  • 97. The optical pointing device of claim 96 further comprising a monitor for maintaining a running estimate of Nyquist Frequency Variation (NFV) magnitude and adjusting the coring level in response to different NFV magnitudes.
  • 98. A web cam having an image sensor and a device for filtering data output from an array of pixels in the image sensor, the device comprising: a noise filter for removing variations in pixel response across the array;a readout circuit for obtaining a central pixel value and a plurality of neighboring pixel values;a calculator for combining the plurality of neighboring pixel values to obtain an estimated pixel value co-sited with the central pixel value; anda coring module comprising a first comparator for comparing the central pixel value with the estimated pixel value to produce a difference signal, anda coring processor for coring the difference signal.
  • 99. The web cam of claim 98 wherein said coring processor is adjustable to operate according to a coring level, defining an amount by which difference values are driven towards and not beyond zero.
  • 100. The web cam of claim 99 further comprising a monitor for maintaining a running estimate of Nyquist Frequency Variation (NFV) magnitude and adjusting the coring level in response to different NFV magnitudes.
Priority Claims (1)
Number Date Country Kind
06270057.0 Jun 2006 EP regional