WO2008014055A2 - Adaptive noise filtering for reducing imager noise in digital image applications - Google Patents
Adaptive noise filtering for reducing imager noise in digital image applications Download PDFInfo
- Publication number
- WO2008014055A2 WO2008014055A2 PCT/US2007/070704 US2007070704W WO2008014055A2 WO 2008014055 A2 WO2008014055 A2 WO 2008014055A2 US 2007070704 W US2007070704 W US 2007070704W WO 2008014055 A2 WO2008014055 A2 WO 2008014055A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- determination
- value
- digital image
- under evaluation
- phase element
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/30—Noise filtering
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20004—Adaptive image processing
- G06T2207/20012—Locally adaptive
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20172—Image enhancement details
- G06T2207/20192—Edge enhancement; Edge preservation
Definitions
- the present invention relates to filtering digital images and specifically to providing filtering for reducing image noise in a digital camera.
- Digital image acquisition devices inherently introduce noise into an acquired image.
- the introduction of noise is especially enhanced by the digital acquisition device sensor.
- Noise not only degrades image quality but reduces efficiency for any subsequent encoding or compression steps .
- Encoding or compression typically operates in accordance with, for example, an MPEG or JPEG standard or one of a plurality of international standards promulgated by the International Telecommunications Union (ITU) such as the H.263 standard common in videoconferencing.
- ITU International Telecommunications Union
- the MPEG, JPEG, and ITU standards are all widely employed in digital imaging devices in contemporary commercial and industrial usage.
- One class of noise reduction spatial filters applies a non-linear localized spatial filtering technique directly to a digital image.
- noise reduction filter is a simple sigma filter, described by Jong Sen Lee in the journal article "Digital Image Smoothing and the Sigma Filter,” Computer Vision, Graphics, and Image Processing Vol. 24, p. 255-269, 1983.
- the sigma noise reduction filter uses a non-linear pixel averaging technique sampled from a rectangular window.
- the window is comprised of neighboring pixels surrounding a center pixel .
- Neighboring pixels are either included or excluded from the numerical averaging process based on a difference between one or more neighboring pixels and the center pixel .
- the small local neighborhood of pixels used by the sigma filter make it simple to implement and relatively effective at removing high spatial frequency components of noise.
- many noise sources such as Gaussian sources, contain broadband frequency components .
- Gaussian noise sources exhibit random noise fluctuations over a large range of spatial frequencies.
- the sigma filter is generally capable of only removing high spatial frequency components of noise and thus has difficulty removing low spatial frequency components associated with Gaussian noise.
- the low-pass filtering effect of the sigma filter is largely due to the filter operating on only a small local neighborhood of pixels. Therefore, lower spatial frequency components of noise are not removed.
- a resultant digital image processed with the sigma filter can thus have a mottled appearance, particularly noticeable for sky regions or other continuous-tone regions that have little image structure.
- Most advanced filters also filter images as a function of spatial resolution.
- One method of representing a digital image by a series of residual images and a base digital image is described in a journal article entitled, "The Laplacian Pyramid as a Compact Image Code," IEEE Transactions on Communications, Vol. Com-3 1, No. 4, April 1983.
- the multiresolution method was primarily designed for image compression methodologies, the method has been used in applications for noise reduction filtering.
- the multiresolution method generally relies on removing noise from a digital image by determining a series of calculation-intensive Discrete Cosine Transform (DCT) coefficients for an image.
- the calculated DCT coefficients are filtered with a Wiener noise filter and a reduced noise digital image is reconstructed.
- DCT Discrete Cosine Transform
- the multiresolution method thus removes noise from the digital image at different spatial frequencies by operating on calculation-intensive DCT coefficients (i.e., residual images) .
- a wavelet spatial frequency decomposition method has also been employed for the use of removing noise from digital images.
- U.S. Pat. No. 5,526,446 to Adelson et al discloses a technique which converts an image into a set of coefficients in a multi-scale image decomposition process followed by a modification of each coefficient based on its value and a value of coefficients of related orientation, position, or scale. While the method disclosed by Adelson et al . is capable of removing both low frequency and high frequency noise, the described method must be applied to a set of multi-scale coefficients and cannot be directly applied to a digital image .
- the present invention is a noise filtering engine for enhancing an applied digital image source.
- the noise filtering engine includes a data collection phase element, a determination phase element, and an application phase element.
- the data collection phase element accepts an image from the applied digital image source and determines characteristics of a pixel under evaluation within the digital image source .
- a determination phase element is coupled to an output of the data collection phase element and determines whether the pixel under evaluation requires filtering. After the determination phase element is completed, a determination is made whether to apply filtering. If so, the image processing continues onto an application phase.
- An application phase element receives output data from the determination phase element and applies a smoothing function based upon characteristics of the pixel under evaluation. Alternatively, a value of the pixel under evaluation may be replaced by another value, previously calculated. An output of the application phase element is an enhanced digital image.
- Fig. 1 shows an exemplary kernel containing a pixel under evaluation and neighboring pixels.
- Fig. 2A is an exemplary noise filtering engine which accepts as the kernel of Fig. 1 from a digital image source as an input and produces an enhanced digital image as an output .
- Fig. 2B is an exemplary embodiment of a data collection phase element of the noise filtering engine of Fig. 2A.
- Fig. 2C is an exemplary embodiment of a determination phase element of the noise filtering engine of Fig. 2A.
- Fig. 2D is an exemplary embodiment of an application phase element of the noise filtering engine of Fig. 2A.
- a noise filtering engine that removes fixed and random pattern noise from a digital image source.
- the engine may be implemented, for example, as a subsystem of a hardware-based pipeline for digital image processing.
- the noise reduction engine may consist of one or more hardware blocks to facilitate high throughput and high-performance operations.
- the engine has a significant degree of flexibility and programmability allowing, for example, digital camera manufacturers to implement the noise reduction engine in medium to high-end cameras operating with various types of imagers including charge-coupled devices (CCDs) and complimentary metal-oxide semiconductor (CMOS) image sensors .
- CCDs charge-coupled devices
- CMOS complimentary metal-oxide semiconductor
- an exemplary kernel 100 of a pixilated image includes nine pixels of the image comprised of a pixel under evaluation A 0 , surrounded by eight nearest -neighbor pixels B 0 - B 7 .
- the kernel 100 is not limited to a 3 X 3 matrix of nine pixels.
- the nine-pixel kernel 100 is merely included as an example of how neighboring pixels B 0 - B 7 may influence or affect filtering of a pixel under evaluation A 0 .
- a noise filter and method incorporating a series of steps, calculation elements, or algorithms for filtering the pixel under evaluation A 0 is described herein. The noise filter and method can be readily adapted for use into or with microcontroller and microprocessor devices .
- a digital image source 201 such as acquired directly from a sensor (e.g., a CCD array or CMOS sensor) or from an image file, may be spatially filtered to remove or minimize noise.
- the digital source image is input to a noise filtering engine 203.
- the noise filtering engine 203 includes a data collection phase element 205 and a determination phase element 207. After the determination phase element 207, a query 209 is made whether to apply filtering a given pixel under evaluation. If the determination is made to apply filtering, the noise filtering engine 203 continues with an application phase element 211. If either the determination is made not to apply filtering or filtering is applied to the pixel in the application phase element 211, an enhanced digital image 213 is output.
- a series of filtering algorithms and smoothing filters within the noise filtering engine 203 removes noise without affecting edges or other characteristics that are important contributors to an overall quality of the image.
- Each of the three main tasks of the noise filtering engine 203, the data collection phase element 205, the determination phase element 207, and the application phase element 211, are discussed separately in detail, infra.
- various values are computed within the noise filtering engine 203 based on measurements of the eight nearest -neighbor pixels B 0 - B 7 in the kernel 100 (Fig. 1) surrounding the pixel under evaluation A 0 and combined with measurements of A 0 .
- Various values are also computed based on a measurement of the pixel under evaluation A 0 , independent of measurements of the eight nearest-neighbor pixels B 0 - B 7 . These computed values may be applied to other portions of the algorithm to determine where noise filtering should be applied and where filtering should not apply.
- measurements and computed values of the eight nearest- neighbor pixels, B 0 - B 7 are compared with the measurement and computed values of the pixel under evaluation A 0 .
- computed values from the digital image source 201 include determinations of mean (x) 205A, median (Md) 205C, edge presence (Edge) 205F, largest (MaxPix) and smallest
- MinPix values 205G, and determination of an initial threshold value 205H of one or more pixels within the kernel 100.
- Each of the determinations may be implemented by combinations or independent applications of hardware, software, or firmware.
- the various elements of the noise filter may thus be considered to be a circuit, function, or algorithm.
- Each determination of a computed value is realizable by a skilled artisan applying the equations and relative structure described herein .
- determination of variance (v) 205B may be accomplished. Also, determination of a target value 205D may be calculated from either the mean or median values. A determination of a weighted measurement value 205E may then be calculated based on the target value. Calculation or determination of each of these values is discussed in detail, infra.
- Calculation of the mean value, x is accomplished by considering a value, xi, for each pixel in the kernel 100 divided by the number of total samples, n.
- the mean is simply the arithmetic average
- M d For a median value, M d/ if the sample (e.g., the kernel 100) under consideration is arranged in order of ascending magnitude, the median, M d , is given by the value
- median value is simply the middle value of a set of ordered data; when n is even, the median may be taken as the mean of the two central values of the set of ordered data .
- the edge presence which includes strength and presence of edges, may be implemented by various algorithms and methods known to a person of skill in the art .
- the largest and smallest values are simply the largest and smallest magnitude values of the pixels within the kernel 100. In a degenerate case where the largest and smallest magnitude values are the same, the difference is zero. In this case, filtering will not occur .
- the threshold value (Th) is a value used in the determination phase element 207 to calculate an amount of filtering, if any, to apply to a given pixel.
- the threshold value is a linear modification of an existing pixel value using two programmable coefficients, ⁇ and ⁇ . Values for both coefficients are calculated by higher level application software taking into consideration parameters such as lighting conditions, sensor sensitivity, and user-defined settings.
- the threshold, Th 0 is determined as
- Th 0 ⁇ + ⁇ • (pixel value)
- Th 0 becomes relevant in the determination phase element 207, infra, as a second threshold value is then determined.
- a variance, v is simply the square of a standard deviation value where the standard deviation and variance are calculated as
- the additional calculations and/or determinations include a target value 205D, a weighted measurement value 205E, and any ancillary information (not shown) that may be needed for a given pixel.
- a determination of the target value (target) 205D may simply be chosen to be either the mean or median value. Calculation of both the mean and the median values are described supra. The choice of whether to use the mean value or the median value is user-selectable depending upon application.
- the weighted measurement value (Meas) is calculated as a weighted difference between the absolute difference between the target value and the current pixel value
- Meas ⁇ • target — pixel value
- weighting coefficient ⁇ is another programmable constant.
- the weighting coefficient ⁇ is calculated by higher level application software taking into consideration parameters such as lighting conditions, sensor sensitivity, and user-defined settings.
- the ancillary information includes any special information to guide a correct application of filtering and/or smoothing in subsequent steps and defines exclusions for when filtering should not be applied. If the noise filter is applied, the ancillary information also defines how the filter should be applied and which parameters should be applied to the noise filter.
- a determination 207A is made whether the pixel under evaluation A 0 requires filtering. If filtering should apply, a second determination 207B is then made whether any special provisions for the pixel under evaluation require special application.
- criteria applied during the special provisions process include : (a) a uniform application of filtering independently of characteristics (Unif) ⁇ b) whether any edges exist on the kernel under examination (Edge)
- Th n Th 0 • [l + (Edge • d)] • [l + (j Var - e
- variables d, e, and f refer to results from the steps (d) , (e) , and (f) given supra.
- the variables d, e, and f are calculated by higher level application software taking into consideration parameters such as lighting conditions, sensor sensitivity, and user-defined settings. Experimentation is required for various system setups to optimize performance under various conditions.
- a result from the new threshold value determination 207D, Th n , is determined for each pixel under evaluation
- results from the data collection phase element 205 and the determination phase element 207 are used in the application phase element 211 to filter individual pixels which have been selected as candidates for noise filtering.
- the application phase element 211 is thus an application of a filtering function that will be applied on the pixel under evaluation.
- a function magnitude e.g., strong filtering or weak filtering within a given function
- pixels other than the current pixel under evaluation requiring noise reduction are also filtered. Implementation of various filter types is addressed infra.
- the application phase element 211 includes the following steps or determinations :
- a smoothing function is applied 211D that takes into account a distance between the current pixel and the target value .
- the smoothing function can take several forms, such as: i . simple pixel replacement
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Image Processing (AREA)
Abstract
A noise filtering engine (203) and method that removes fixed and random pattern noise from a digital image source (201). The engine (203) may be implemented, for example, as a subsystem of a hardware -based pipeline for digital image processing or in software or a combination of hardware and software. The noise reduction engine (203) consists of one or more hardware blocks (205, 207, 211) to facilitate high throughput and high-performance operations. The engine has a significant degree of flexibility and programmability allowing, for example, digital camera manufacturers to implement the noise reduction engine (203) in medium to high-end cameras operating with various types of imagers including CCD and CMOS image sensors.
Description
Description
ADAPTIVE NOISE FILTERING FOR REDUCING IMAGER NOISE IN
DIGITAL IMAGE APPLICATIONS
TECHNICAL FIELD
The present invention relates to filtering digital images and specifically to providing filtering for reducing image noise in a digital camera.
BACKGROUND ART
Digital image acquisition devices inherently introduce noise into an acquired image. The introduction of noise is especially enhanced by the digital acquisition device sensor. Noise not only degrades image quality but reduces efficiency for any subsequent encoding or compression steps . Encoding or compression typically operates in accordance with, for example, an MPEG or JPEG standard or one of a plurality of international standards promulgated by the International Telecommunications Union (ITU) such as the H.263 standard common in videoconferencing. The MPEG, JPEG, and ITU standards are all widely employed in digital imaging devices in contemporary commercial and industrial usage. Various approaches exist to remove noise from digital images; however, most methods make use of spatial filtering techniques. One class of noise reduction spatial filters applies a non-linear localized spatial filtering technique directly to a digital image. An example of such a noise reduction filter is a simple sigma filter, described by Jong Sen Lee in the journal article "Digital Image Smoothing and the Sigma Filter," Computer Vision, Graphics, and Image Processing Vol. 24,
p. 255-269, 1983. The sigma noise reduction filter uses a non-linear pixel averaging technique sampled from a rectangular window. The window is comprised of neighboring pixels surrounding a center pixel . Neighboring pixels are either included or excluded from the numerical averaging process based on a difference between one or more neighboring pixels and the center pixel . The small local neighborhood of pixels used by the sigma filter make it simple to implement and relatively effective at removing high spatial frequency components of noise. However, many noise sources, such as Gaussian sources, contain broadband frequency components .
Gaussian noise sources exhibit random noise fluctuations over a large range of spatial frequencies. The sigma filter is generally capable of only removing high spatial frequency components of noise and thus has difficulty removing low spatial frequency components associated with Gaussian noise. The low-pass filtering effect of the sigma filter is largely due to the filter operating on only a small local neighborhood of pixels. Therefore, lower spatial frequency components of noise are not removed. A resultant digital image processed with the sigma filter can thus have a mottled appearance, particularly noticeable for sky regions or other continuous-tone regions that have little image structure.
Most advanced filters, such as multiresolution or pyramid methods, also filter images as a function of spatial resolution. One method of representing a digital image by a series of residual images and a base digital image is described in a journal article entitled, "The Laplacian Pyramid as a Compact Image Code," IEEE Transactions on Communications, Vol. Com-3 1, No. 4,
April 1983. Although the multiresolution method was primarily designed for image compression methodologies, the method has been used in applications for noise reduction filtering. The multiresolution method generally relies on removing noise from a digital image by determining a series of calculation-intensive Discrete Cosine Transform (DCT) coefficients for an image. The calculated DCT coefficients are filtered with a Wiener noise filter and a reduced noise digital image is reconstructed. The multiresolution method thus removes noise from the digital image at different spatial frequencies by operating on calculation-intensive DCT coefficients (i.e., residual images) . A wavelet spatial frequency decomposition method has also been employed for the use of removing noise from digital images. U.S. Pat. No. 5,526,446 to Adelson et al . discloses a technique which converts an image into a set of coefficients in a multi-scale image decomposition process followed by a modification of each coefficient based on its value and a value of coefficients of related orientation, position, or scale. While the method disclosed by Adelson et al . is capable of removing both low frequency and high frequency noise, the described method must be applied to a set of multi-scale coefficients and cannot be directly applied to a digital image .
Overall, digital image noise is generally exhibited throughout a broad range of spatial frequencies. The sigma filter can effectively remove only the highest spatial frequency components of noise. Other methods may be more effective at removing broadband noise but are computationalIy-intensive and, consequently, slow.
Though the known techniques for reducing noise in image sequences are satisfactory in many respects, they are also associated with numerous drawbacks and problems that are bound up with, for example, inadequate performance, processing complexity, and excessive processing costs that make employment of such techniques difficult, especially in portable image acquisition devices such as digital cameras.
SUMMARY OF THE INVENTION
In an exemplary embodiment, the present invention is a noise filtering engine for enhancing an applied digital image source. The noise filtering engine includes a data collection phase element, a determination phase element, and an application phase element.
The data collection phase element accepts an image from the applied digital image source and determines characteristics of a pixel under evaluation within the digital image source . A determination phase element is coupled to an output of the data collection phase element and determines whether the pixel under evaluation requires filtering. After the determination phase element is completed, a determination is made whether to apply filtering. If so, the image processing continues onto an application phase.
An application phase element receives output data from the determination phase element and applies a smoothing function based upon characteristics of the pixel under evaluation. Alternatively, a value of the pixel under evaluation may be replaced by another value, previously calculated. An output of the application phase element is an enhanced digital image.
BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 shows an exemplary kernel containing a pixel under evaluation and neighboring pixels.
Fig. 2A is an exemplary noise filtering engine which accepts as the kernel of Fig. 1 from a digital image source as an input and produces an enhanced digital image as an output .
Fig. 2B is an exemplary embodiment of a data collection phase element of the noise filtering engine of Fig. 2A.
Fig. 2C is an exemplary embodiment of a determination phase element of the noise filtering engine of Fig. 2A.
Fig. 2D is an exemplary embodiment of an application phase element of the noise filtering engine of Fig. 2A.
DETAILED DESCRIPTION OF THE INVENTION
Described herein is a noise filtering engine that removes fixed and random pattern noise from a digital image source. The engine may be implemented, for example, as a subsystem of a hardware-based pipeline for digital image processing. The noise reduction engine may consist of one or more hardware blocks to facilitate high throughput and high-performance operations. The engine has a significant degree of flexibility and programmability allowing, for example, digital camera manufacturers to implement the noise reduction engine in medium to high-end cameras operating with various types of imagers including charge-coupled devices (CCDs) and complimentary metal-oxide semiconductor (CMOS) image sensors .
With reference to Fig. 1, an exemplary kernel 100 of a pixilated image includes nine pixels of the image
comprised of a pixel under evaluation A0, surrounded by eight nearest -neighbor pixels B0 - B7. A skilled artisan will recognize that the kernel 100 is not limited to a 3 X 3 matrix of nine pixels. The nine-pixel kernel 100 is merely included as an example of how neighboring pixels B0 - B7 may influence or affect filtering of a pixel under evaluation A0. A noise filter and method incorporating a series of steps, calculation elements, or algorithms for filtering the pixel under evaluation A0 is described herein. The noise filter and method can be readily adapted for use into or with microcontroller and microprocessor devices .
With reference to Fig. 2A, a digital image source 201, such as acquired directly from a sensor (e.g., a CCD array or CMOS sensor) or from an image file, may be spatially filtered to remove or minimize noise. The digital source image is input to a noise filtering engine 203. The noise filtering engine 203 includes a data collection phase element 205 and a determination phase element 207. After the determination phase element 207, a query 209 is made whether to apply filtering a given pixel under evaluation. If the determination is made to apply filtering, the noise filtering engine 203 continues with an application phase element 211. If either the determination is made not to apply filtering or filtering is applied to the pixel in the application phase element 211, an enhanced digital image 213 is output. A series of filtering algorithms and smoothing filters within the noise filtering engine 203 removes noise without affecting edges or other characteristics that are important contributors to an overall quality of the image. Each of the three main tasks of the noise filtering engine 203, the data collection phase element
205, the determination phase element 207, and the application phase element 211, are discussed separately in detail, infra.
The Data. Collection Phase Element
In an exemplary embodiment, various values (discussed in detail below) are computed within the noise filtering engine 203 based on measurements of the eight nearest -neighbor pixels B0 - B7 in the kernel 100 (Fig. 1) surrounding the pixel under evaluation A0 and combined with measurements of A0. Various values are also computed based on a measurement of the pixel under evaluation A0, independent of measurements of the eight nearest-neighbor pixels B0 - B7. These computed values may be applied to other portions of the algorithm to determine where noise filtering should be applied and where filtering should not apply. In the data collection phase element 205, measurements and computed values of the eight nearest- neighbor pixels, B0 - B7, are compared with the measurement and computed values of the pixel under evaluation A0.
In this embodiment and with reference to Fig. 2B, computed values from the digital image source 201 include determinations of mean (x) 205A, median (Md) 205C, edge presence (Edge) 205F, largest (MaxPix) and smallest
(MinPix) values 205G, and determination of an initial threshold value 205H of one or more pixels within the kernel 100. Each of the determinations may be implemented by combinations or independent applications of hardware, software, or firmware. The various elements of the noise filter may thus be considered to be a circuit, function, or algorithm. Each determination of a computed value is realizable by a skilled artisan
applying the equations and relative structure described herein .
Once the mean value has been calculated, as discussed below, determination of variance (v) 205B may be accomplished. Also, determination of a target value 205D may be calculated from either the mean or median values. A determination of a weighted measurement value 205E may then be calculated based on the target value. Calculation or determination of each of these values is discussed in detail, infra.
Calculation of the mean value, x, is accomplished by considering a value, xi, for each pixel in the kernel 100 divided by the number of total samples, n. Thus, in the case of evaluating the mean of the nine values within the kernel 100, the mean is simply the arithmetic average
i 8
X = -9 ∑^x± i=0
For a median value, Md/ if the sample (e.g., the kernel 100) under consideration is arranged in order of ascending magnitude, the median, Md, is given by the value
located at a position of . When n is odd, the
2 median value is simply the middle value of a set of ordered data; when n is even, the median may be taken as the mean of the two central values of the set of ordered data .
The edge presence, which includes strength and presence of edges, may be implemented by various
algorithms and methods known to a person of skill in the art .
The largest and smallest values are simply the largest and smallest magnitude values of the pixels within the kernel 100. In a degenerate case where the largest and smallest magnitude values are the same, the difference is zero. In this case, filtering will not occur .
The threshold value (Th) is a value used in the determination phase element 207 to calculate an amount of filtering, if any, to apply to a given pixel. The threshold value is a linear modification of an existing pixel value using two programmable coefficients, α and β . Values for both coefficients are calculated by higher level application software taking into consideration parameters such as lighting conditions, sensor sensitivity, and user-defined settings. Thus, the threshold, Th0, is determined as
Th0 = α + β • (pixel value)
The subscript on Th0 becomes relevant in the determination phase element 207, infra, as a second threshold value is then determined. Once the mean value, x, is determined, a variance, v, is simply the square of a standard deviation value where the standard deviation and variance are calculated as
Alternatively, for computational purposes, v can be more
readily determined by either of the following equations
nn —2 nx v = i = l n - 1
Once calculations and determinations are made for values of average, median, edge presence, variance, and largest and smallest values of pixels in the kernel 100, additional calculations and/or determinations are made using results from those calculations. The additional calculations and/or determinations include a target value 205D, a weighted measurement value 205E, and any ancillary information (not shown) that may be needed for a given pixel.
A determination of the target value (target) 205D may simply be chosen to be either the mean or median value. Calculation of both the mean and the median values are described supra. The choice of whether to use the mean value or the median value is user-selectable depending upon application.
The weighted measurement value (Meas) is calculated as a weighted difference between the absolute difference between the target value and the current pixel value
Meas = γ • target — pixel value |
where the weighting coefficient γ is another programmable constant. The weighting coefficient γ is calculated by higher level application software taking into consideration parameters such as lighting conditions,
sensor sensitivity, and user-defined settings.
The ancillary information (not shown) includes any special information to guide a correct application of filtering and/or smoothing in subsequent steps and defines exclusions for when filtering should not be applied. If the noise filter is applied, the ancillary information also defines how the filter should be applied and which parameters should be applied to the noise filter.
The Determination Phase Element
With reference to Fig. 2C, a determination 207A is made whether the pixel under evaluation A0 requires filtering. If filtering should apply, a second determination 207B is then made whether any special provisions for the pixel under evaluation require special application. In a specific exemplary embodiment, criteria applied during the special provisions process include : (a) a uniform application of filtering independently of characteristics (Unif) <b) whether any edges exist on the kernel under examination (Edge)
(c) whether the pixel under evaluation is part of an edge (Edge)
(d) whether the variance of the kernel exceeds or is below a certain level (Var)
(e) whether a difference between the target and a value of the pixel under evaluation is either larger or smaller than a certain value; and
(f) what is the relationship of the pixel under evaluation with neighboring pixels
An overall result of the process is a binary value which indicates whether the pixel will be filtered or not. Factors determined above are used in determining 207D a new threshold value, Thn
Thn = Th0 • [l + (Edge • d)] • [l + (j Var - e | • d)] • [l + {(MaxPix - MinPix
where the variables d, e, and f refer to results from the steps (d) , (e) , and (f) given supra. A uniform value is applied when d = f = 0. The variables d, e, and f are calculated by higher level application software taking into consideration parameters such as lighting conditions, sensor sensitivity, and user-defined settings. Experimentation is required for various system setups to optimize performance under various conditions.
Methods for experimentation are known to one of skill in the art .
A result from the new threshold value determination 207D, Thn, is determined for each pixel under evaluation
(e.g., in an iterative process, not shown explicitly) .
These results are then used in the application phase element 211.
The Application Phase Element
With continued reference to Fig. 2A, results from the data collection phase element 205 and the determination phase element 207 are used in the application phase element 211 to filter individual pixels which have been selected as candidates for noise filtering. The application phase element 211 is thus an application of a filtering function that will be applied on the pixel under evaluation. In addition to selecting a particular filtering function, a function magnitude
(e.g., strong filtering or weak filtering within a given function) is selected as well. In subsequent iterations of the application phase element 211, pixels other than the current pixel under evaluation requiring noise reduction are also filtered. Implementation of various filter types is addressed infra.
With reference to a specific exemplary embodiment of the application phase element 211 of Fig. 2D, if filtering is determined 209 to apply, the application phase element 211 includes the following steps or determinations :
(a) if a value of the current pixel under evaluation is close ("close" is defined by the interpolation equations defined herein) to the target value 211A, the current value is considered noise and the current pixel value is replaced by the target value 2 HB;
(b) if the current pixel value is much different than the target value 211C, the pixel is considered as having "high-information content" (e.g., such as an edge or another strong part of the image) and the current pixel value is preserved; and
(c) for any current pixel value in between those defined by steps (a) and (b) , a smoothing function is applied 211D that takes into account a distance between the current pixel and the target value . The smoothing function can take several forms, such as: i . simple pixel replacement
FilteredPixel = Target
ii . linear interpolation
( Meas i [ Meas |
FilteredPixel = I1 ThnJ ■ Targyet + tτhnj • Pxxel
iii . quadratic interpolation
IV. n-th degree polynomial approximation
In the quadratic interpolation and the polynomial approximation, "p" may take on any integer value. After the application phase element 211, an enhanced digital image 213 is output.
Claims
1. A method for filtering noise from an applied digital image source, the method comprising: providing a plurality of pixels from the applied digital image source; sorting groups of the plurality of pixels into one or more input kernels, the one or more input kernels each comprising a pixel under evaluation and surrounding pixels in the kernel; determining characteristics of the pixel under evaluation based on a comparison of the pixel with one or more surrounding pixels comprising at least part of a first of the one or more kernels; determining a mean value of the first kernel; determining a median value of first kernel ; determining a target value based partially on the mean value and the median value of the first kernel; determining an initial threshold value to calculate a magnitude of filtering if a determination is made to apply filtering; determining whether the pixel under evaluation requires filtering; and apply a smoothing function to the pixel under evaluation if a determination is made the pixel requires filtering .
2. The method of claim 1 further comprising: determining whether the pixel under evaluation is part of an image edge,- and determining a maximum pixel value and a minimum pixel value from the first kernel .
3. The method of claim 1 further comprising: determining a variance value based on the mean value of the first kernel; and determining a weighted measurement value based partially on the target value.
4. The method of claim 1 further comprising: calculating a smoothing function; and applying the smoothing function to the pixel under evaluation.
5. The method of claiml further comprising determining whether a value of the pixel under evaluation should be replaced with the target value.
6. A noise filtering engine to enhance an applied digital image source, the engine comprising: a data collection phase element, the data collection phase element configured to accept the applied digital image source and determine characteristics of a pixel under evaluation, the pixel under evaluation being located within the digital image source; a determination phase element coupled to an output of the data collection phase element and configured to determine whether the pixel under evaluation requires filtering; and an application phase element coupled to an output of the determination phase element, the application phase element configured to apply a smoothing function based upon characteristics of the pixel under evaluation, an output of the application phase element being an enhanced digital image.
7. The noise filtering engine of claim 6 wherein the data collection phase element comprises : a mean determination element adapted to receive the applied digital image source and determine a mean value of an input kernel, the input kernel being selected from the applied digital image source and comprising the pixel under evaluation and neighboring pixels; and a median determination element adapted to receive the digital image source and determine a median value of the input kernel.
8. The noise filtering engine of claim 7 wherein the data collection phase element further comprises: a variance determination element coupled to receive an output from the mean determination element and supply a calculated variance value as an input to the determination phase element; a target determination element coupled to receive an output from both the mean determination element and the median determination element; and a weighted measurement value determination element coupled to receive as an input the applied digital image source and an output from the target determination element and supply a weighted measurement value as an input to the determination phase element.
9. The noise filtering engine of claim 6 wherein the data collection phase element comprises: an edge determination element coupled to receive the applied digital image source and to determine whether the pixel under evaluation is part of an edge from an image contained within the digital image source, the edge determination element configured to supply an edge determination value to the determination phase element; a minimum and maximum pixel determination element coupled to receive the applied digital image source and to determine a largest value and a smallest value of pixels contained in the kernel, the minimum and maximum pixel determination element configured to supply the largest value and the smallest value of pixels to the determination phase element; and an initial threshold value determination element coupled to receive the applied digital image source and to determine an initial threshold value of the pixel under evaluation, the initial threshold value determination element configured to supply the initial threshold value to the determination phase element .
10. The noise filtering engine of claim 6 wherein the determination phase element comprises: a special provisions element coupled to an output of the data collection phase; and a determination phase threshold value determination element coupled both to an output of the data collection phase element and to an output of the special provisions element, the determination phase threshold value determination element configured to determine a threshold value of the pixel under evaluation, the determination phase threshold value determination element coupled to supply the initial threshold value to the application phase element .
11. The noise filtering engine of claim 6 wherein the application phase element comprises: a smoothing function element coupled to an output of the determination phase element; and a replacement element to replace a current value of the pixel under evaluation with a target value.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/460,759 | 2006-07-28 | ||
| US11/460,759 US20080025630A1 (en) | 2006-07-28 | 2006-07-28 | Adaptive noise filtering for reducing imager noise in digital image applications |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| WO2008014055A2 true WO2008014055A2 (en) | 2008-01-31 |
| WO2008014055A3 WO2008014055A3 (en) | 2008-06-26 |
Family
ID=38982165
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2007/070704 Ceased WO2008014055A2 (en) | 2006-07-28 | 2007-06-08 | Adaptive noise filtering for reducing imager noise in digital image applications |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20080025630A1 (en) |
| TW (1) | TW200821955A (en) |
| WO (1) | WO2008014055A2 (en) |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7495806B2 (en) * | 2003-03-24 | 2009-02-24 | Hewlett-Packard Development Company, L.P. | System and method for compensating for noise in a captured image |
| KR100866277B1 (en) * | 2007-05-02 | 2008-10-31 | 주식회사 코아로직 | A system and method for removing image noise by edge tracking, and a computer-readable recording medium that includes the program and the method. |
| KR101168968B1 (en) * | 2009-09-14 | 2012-07-26 | 순환엔지니어링 주식회사 | Detecting and filtering method of random noise signal |
| CN102170519A (en) * | 2010-06-22 | 2011-08-31 | 上海盈方微电子有限公司 | High-efficient image denoising algorithm and hardware realization apparatus of algorithm |
| TWI488484B (en) * | 2010-08-18 | 2015-06-11 | Silicon Motion Inc | Method and apparatus for performing de-noise processing |
| CN104620282B (en) * | 2012-07-16 | 2018-01-12 | 菲力尔系统公司 | For suppressing the method and system of the noise in image |
| US9811884B2 (en) | 2012-07-16 | 2017-11-07 | Flir Systems, Inc. | Methods and systems for suppressing atmospheric turbulence in images |
| US11113791B2 (en) | 2017-01-03 | 2021-09-07 | Flir Systems, Inc. | Image noise reduction using spectral transforms |
| US20240242315A1 (en) * | 2023-01-12 | 2024-07-18 | Teledyne Flir Surveillance, Inc. | Anomalous pixel processing using adaptive decision-based filter systems and methods |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5526446A (en) * | 1991-09-24 | 1996-06-11 | Massachusetts Institute Of Technology | Noise reduction system |
| JP3203290B2 (en) * | 1994-03-31 | 2001-08-27 | 富士写真フイルム株式会社 | Digital electronic still camera and recording method on memory card |
| US5845017A (en) * | 1996-12-17 | 1998-12-01 | Eastman Kodak Company | Digital image processing method for degraining of film images using distance weighted averaging of target pixel code values |
| US6453074B1 (en) * | 1997-03-31 | 2002-09-17 | Canon Kabushiki Kaisha | System for image decimation including selective filtering |
| US6181376B1 (en) * | 1997-10-14 | 2001-01-30 | Intel Corporation | Method of determining missing color values for pixels in a color filter array |
| US6151415A (en) * | 1998-12-14 | 2000-11-21 | Intel Corporation | Auto-focusing algorithm using discrete wavelet transform |
| JP2002142149A (en) * | 2000-11-06 | 2002-05-17 | Mega Chips Corp | Image processing circuit |
| US20030222998A1 (en) * | 2000-12-20 | 2003-12-04 | Satoru Yamauchi | Digital still camera system and method |
| US7319487B2 (en) * | 2002-04-10 | 2008-01-15 | Olympus Optical Co., Ltd. | Focusing apparatus, camera and focus position detecting method |
| US7236190B2 (en) * | 2002-10-31 | 2007-06-26 | Freescale Semiconductor, Inc. | Digital image processing using white balance and gamma correction |
| US7173663B2 (en) * | 2002-10-31 | 2007-02-06 | Freescale Semiconductor, Inc. | Automatic exposure control system for a digital camera |
-
2006
- 2006-07-28 US US11/460,759 patent/US20080025630A1/en not_active Abandoned
-
2007
- 2007-06-08 WO PCT/US2007/070704 patent/WO2008014055A2/en not_active Ceased
- 2007-07-03 TW TW096124168A patent/TW200821955A/en unknown
Also Published As
| Publication number | Publication date |
|---|---|
| WO2008014055A3 (en) | 2008-06-26 |
| US20080025630A1 (en) | 2008-01-31 |
| TW200821955A (en) | 2008-05-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2008014055A2 (en) | Adaptive noise filtering for reducing imager noise in digital image applications | |
| Wang et al. | Progressive retinex: Mutually reinforced illumination-noise perception network for low-light image enhancement | |
| US7181082B2 (en) | Blur detection system | |
| Cai et al. | Linearized Bregman iterations for frame-based image deblurring | |
| Foi et al. | Practical Poissonian-Gaussian noise modeling and fitting for single-image raw-data | |
| EP1227437B1 (en) | A multiresolution based method for removing noise from digital images | |
| US6937775B2 (en) | Method of enhancing the tone scale of a digital image to extend the linear response range without amplifying noise | |
| US7856150B2 (en) | Denoise method on image pyramid | |
| Saxena et al. | Noises and image denoising techniques: a brief survey | |
| KR101901602B1 (en) | Apparatus and method for noise removal in a digital photograph | |
| Ben Abdallah et al. | Adaptive noise-reducing anisotropic diffusion filter | |
| Ulbeh et al. | Gray image reconstruction | |
| US8131104B2 (en) | Method and apparatus for adjusting the contrast of an input image | |
| US20030228064A1 (en) | Multiresolution method of spatially filtering a digital image | |
| JP2012256202A (en) | Image processing apparatus and method, and program | |
| Sada et al. | Image deblurring techniques—a detail review | |
| US20060226337A1 (en) | Digital image denoising | |
| JP2010193199A (en) | Image processor and image processing method | |
| US7269295B2 (en) | Digital image processing methods, digital image devices, and articles of manufacture | |
| US7430334B2 (en) | Digital imaging systems, articles of manufacture, and digital image processing methods | |
| JP2010226719A (en) | Multifocal plane image acquisition and compression | |
| Mredhula et al. | An effective filtering technique for image denoising using probabilistic principal component analysis (PPCA) | |
| Kaur et al. | Study of Image Denoising and Its Techniques | |
| Takkar et al. | Non Linear Image Enhancement | |
| Bundela et al. | Restoration of Single Blur Image Using Blind Deconvolution Method |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 07798282 Country of ref document: EP Kind code of ref document: A2 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| NENP | Non-entry into the national phase |
Ref country code: RU |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 07798282 Country of ref document: EP Kind code of ref document: A2 |




