Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
ADAPTIVE IMAGE FILTER FOR FILTERING IMAGE INFORMATION
Document Type and Number:
WIPO Patent Application WO/2007/092937
Kind Code:
A2
Abstract:
This disclosure describes adaptive filtering techniques to improve the quality of captured imagery, such as video or still images. In particular, this disclosure describes adaptive filtering techniques that filter each pixel as a function of a set of surrounding pixels. An adaptive image filter may compare image information associated with a pixel of interest to image information associated with a set of surrounding pixels by, for example, computing differences between the image information associated with the pixel of interest and each of the surrounding pixels of the set. The computed differences can be used in a variety of ways to filter image information of the pixel of interest. In some embodiments, for example, the adaptive image filter may include both a low pass component and high pass component that adjust as a function of the computed differences.

Inventors:
LI HSIANG-TSUN (US)
HUNG SZEPO ROBERT (US)
Application Number:
PCT/US2007/061869
Publication Date:
August 16, 2007
Filing Date:
February 08, 2007
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
QUALCOMM INC (US)
LI HSIANG-TSUN (US)
HUNG SZEPO ROBERT (US)
International Classes:
G06T5/20; H04N5/335; H04N9/07
Foreign References:
EP1594087A22005-11-09
US6545715B12003-04-08
Attorney, Agent or Firm:
OGROD, Gregory D. (5775 Morehouse DriveSan Diego, California, US)
Download PDF:
Claims:
CLAIMS:

1. A method comprising: computing differences between image information associated with a pixel of interest and image information associated with pixels that surround the pixel of interest; determining a low pass component and a high pass component of a filter as a function of the computed differences; and applying the filter to the image information associated with the pixel of interest.

2. The method of claim 1 , wherein determining the low pass component of the filter comprises: comparing each of the computed differences to a low pass threshold; summing computed differences that are less than the low pass threshold to obtain a low pass component value; and determining the low pass component based on the levy pass component value.

3. The method of claim 2, wherein determining the low pass component of the filter further comprises dividing the low pass component value by a programmable value to determine the low pass component of the filter.

4. The method of claim i , wherein determining the high pass component of the filter comprises; comparing each of the computed differences to a high pass threshold; and summing computed differences that are greater than the high pass threshold to obtain a high pass component value; and determining the high pass component based on the high pass component value

5. The method of claim 4, wherein determining the high pass component of the filter further comprises dividing the high pass component value by a programmable value to determine the high pass component of the filter.

IS

6. The method of claim 1, wherein applying the filter to the image information associated with the pixel of interest comprises filtering the image information according to the equation:

OaTpixel ■■■■■ iπ_pixel * (Jpf_,dil>:/<2 A L?F_SHIFT)) - { hpf_diff7<2'WP_SHIFO) f

where outjjixel is a value of the filtered image information, in_pϊxel is a value of the υnfiltered image information, lpf_diff is a sum of computed differences that are less than a iow pass threshold, hρfj.1ifTis & sura of computed differences that are greater than a high pass threshold, and LPFJSHϊPT and HPFJSHϊFT are programmable variables.

7. The method of claim ϊ , further comprising: buffering image information associated with the pixel of interest and the surrounding pixels; and correcting image information associated with one or more defective pixels using the buffered image information, wherein computing the differences between image information associated with the pixel of interest and image information associated with each of the surrounding pixels comprises computing the differences using the buffered image information.

8. The method of claim 1 , wherein computing differences between image information associated with the pixel of interest and image information associated with each of the surrounding pixels comprises com paring differences in Intensity values associated with the pixels.

9. The method of claim I > wherein the image information associated with the pixels represent only a single color.

10. The method of claim 1, wherein the image information associated with the pixels is in one of the RGB domain and the YCbCr domain.

11. The method of claim 1 , wherein identifying the set of pixels that surround the pixel of interest comprises identifying an n by n array of pixels that surround the pixel of interest

12. The method of claim 1 , wherein the pixels that surround the pixel of interest litϊli^e a same color filter.

13. A device comprising: an image sensor array that captures image information, wherein the image sensor array includes a plurality of image sensors that capture image Information associated with a plurality of pixels; and an adaptive image filter that computes differences between image information associated with a pixel of interest and image information associated with pixels that surround the pixel of interest, determines a low pass component and a high pass component of a filter as a function of the computed differences, and applies the filter to the image information associated with the pixel of interest.

14. The device of claim 13, wherein the adaptive image filter compares each of the computed differences to a low pass threshold, sums computed differences that are less than the low pass threshold to obtain a low pass component value, and determines the low pass component based on the low pass component value.

15. The device of claim 16, wherein the adaptive image filter divides the low pass component value by a programmable value to determine the low pass component of the filter.

16. The device of claim 13, wherein the adaptive image filter compares each of the computed differences to a high pass threshold, sums computed differences that are greater than the high pass threshold to obtain a high pass component value, and determines the high pass component based on the high pass component value.

ϊ 7. The device of claim 16, wherein the adaptive image filter divides the high pass component value by a programmable value to determine the high pass component of the filter.

IS. The device of claim 13, wherein the adaptive image filter filters the image information associated with the pixel of interest according to the equation.:

Gatjaxel « injpixel í (ipfjϊiff /<2 λ LPF_SMiFT)) - ( hpr_diff/{2 λ HPF_SHIFT)) f

where out_j>ixel is a value of the filtered image information, injpixel is a value of the imtlltered image information, ipfjJiff is a sum of computed differences that are less than alow pass threshold, hpfjJiff is a sum. of computed differences that are greater than a high pass threshold, and LPFJSHJFT and HPFjSHLFT are programmable variables,

19. The device of claim 13, further comprising a defective pixel correction unit that buffers image information associated with the pixel of interest and the set of surrounding pixels, and corrects image information associated with one or more defective pixels using the buffered image information, wherein the adaptive image filter computes the differences using the buffered image information.

20. The device of claim 13, wherein the adaptive image filter computes differences in intensity values associated with the pixels.

21. The device of claim 13, further comprising a plurality of color filters that cover the image sensors to capture image information, representative of only a single color.

22. The device of claim 13, wherein the image information associated with the pixels is in one of the ROB domain snά the YCbCr domain.

23. The device of claim 13, wherein the adaptive image filter identifies axi n by n array of pixels that surround the pise! of interest.

24. The device of claim .13, wherein the adaptive image filter identifies surrounding pixels that utilize a same color filter.

25. A method comprising: capturing image information, for a plurality of pixels, wherein the image information associated with each of the pixels represents one of a plurality of colors; selecting a pixel of interest and a set. of surrounding pixels from the plurality of pixels, wherein the image information associated with the set of surrounding pixels and the pixel of interest represents the same color; computing differences between image information associated with the pixel of interest and image information associated with each of the surrounding pixels of the set; and filtering the image information associated with the pixel of interest as a function of the computed differences,

26. The method of claim 25, further comprising determining a low pass component and a high pass component of a filter as a function of the computed differences, wherein filtering the image information comprises filtering the image information associated with the pixel of interest in accordance with the filter.

11. The method of claim 25, wherein filtering the image information associated with the pixel of interest comprises filtering the image information according to the equation:

Outjpixd - injpixe! + (ipf .cliff /<2 λ LPF.. SEDFT)) - ( hpfjiϊffl(2 λ Elψ_SHiFr)X

where ouij>ixel is a value of the filtered image information, injaxel is a value of the uϊifϊltered image information, ipfjdifF. ϊs a sum of computed differences that are less than a low pass threshold, hpf_d.ff is a sum of computed differences that are greater than a high pass threshold, and LFF-SHiFT and HPFjSHIFT are programmable variables.

28. A device comprising: an image sensor array with a plurality of image sensors that capture image information associated with a plurality of pixels, wherein the image information associated with each of the pixels represents one of a plurality of colors; and an adaptive image filter that selects a pixel of interest and a set of surrounding pixels from the plurality of pixels, computes differences between image information associated with the pixel of interest and image information associated with each of the surrounding pixels of the set, and filters the image information associated with the pixel of interest as a function of the computed differences, wherein the image information associated with the set of surrounding pixels and the pixei of interest represents the same color.

29. The device of claim 28, wherein the adaptive image filter computes a low pass component and a high pass component of the filter as a function of the computed differences.

30. The device of claim 28, wherein the adaptive image fUter filters the image information associated with the pixel of interest according to the equation:

Outjpix'ei - m_ρixel * Opfjciiff /<2 λ LRF_SHϊ.FT)) - { hj>f_diff/(2 λ HPF_SH !FT)), where outjttxel is a value of the βltered image information, injjixel is a value of the imfϊttered image information, Ipf diff is a sum of computed differences that, are less than a. low pass threshold, hpfjdifFis a sum of computed differences that are greater than a high pass threshold, and LPF__SHϊFT and HPFjSHIFT are programmable variables.

3 L A computer-readable medium comprising instructions to cause a processor to: compute differences between image information associated with a pixel of interest and image information associated with pixels that surround the pixel of interest; determine a low pass component and a. high pass component of a filter as a function of the computed differences; znά apply filter to the image information, associated with the pixel of interest.

32. The coxrtputer-readable medium of claim 31, wherein determining the low pass component of the filter comprises: comparing each of the computed differences to alow pass threshold; summing computed differences that are less than the low pass threshold to obtain alow pass component value; and determining the low pass component based on the low pass component value.

33. The computer-readable medium of c-iasm 32, wherein the instructions cause the processor to divide the low pass component value by a programmable x'alue to determine the low pass component of the filter.

34. The computer-readable medium of claim 32, wherein the instructions cause the processor to: compare each of the computed differences to a high pass threshold; and sum computed differences that are greater titan the high pass threshold to obtain, a high pass component value; and determine the high pass component based on the high pass component value

35. The computer-readable medium of claim 34, wherein the instructions cause the processor to divide the high pass component value by a programmable value to determine the high pass component of the filter.

36. The computer-readable medium of claim 31, wherein the instructions cause the processor to filter the image information according to the equation:

Out_pixei - i&jxxel í (lp.f .diff /(2 λ LPF...SHiFT)) - ( ϊipf .βiu7<2 λ HPF..SHIFT»-

where outjpixel is a value of the filtered image information, injpixel is a value of the imilltered image information, ipf_diff is a sum of computed differences that are less than a low pass threshold, hpf dii? is a sum of computed differences that are greater than a high pass threshold, and LFF .. . SHIFT and HPF . ..SHIFT are programmable variables,

37. The corøputer-readabl e medium of claim 3 i, wherei n the instructions cause the processor to: buffer image information associated with the pixel of interest and the surrounding pixels; and correct image information associated with one or more defective pixels using the buffered image information, wherein computing the differences between image information associated with the pixel of interest and image information associated with each of the surrounding pixels comprises computing the differences using the buffered image information,

38. The computer-readable medium of claim 31, wherein the instructions cause the processor to compute differences in intensity values associated with the pixels to computing differences between image information associated with the pixel of interest and image information associated with each of the surrounding pixels.

39. The computer-readable medium of claim 31 , wherein the image information associated with the pixels represent only a single color.

40. The computer-readable medium of claim 31, wherein the image information associated with the pixels Is in one of the RGB domain and the YCbCr domain.

4 L The computer-readable medium of claim 3.1 , wherein the instructions cause the processor to identify an n by n array of pixels that surround the pixel of interest.

42. The computer-readable medium of c-1 aim 31 , wherein the pixel s that surround the pixel of interest utilize a same color filter.

Description:

ADAFTiVE IMAGE FILTKR FOR FILTERING IMwJsE INFORMATION

TECHNICAL BTBlB fOftβlj This disclosure relates to image capture devices and, more particularly, filtering of image information within image capture de-vices.

BACKGROUND fOB02J Image information captured by image capture devices, such as digital video cameras or digital still photo cameras, are susceptible to corruption or noise as a result of physical limitations of the image sensors, interference from illumination sources, and the like. With the .increased demand for smaller image capture devices comes the need for more compact image sensor modules. The decrease in the size of image sensor modules results m a significant increase in (he amount of nois4 captured wifbrø the image information.

|0003| Image information filtering is a common process used for removing such corruption and noise, and improving the quality of a rendered image. Application of low pass filtering to captured image information reduces the aώiouπt of noise in the image, but also tends to blur the image by destroying sharp ed^es containing high frequency signals. Application of high pass filtering to capturφd image data enhances sharp edges and contrast, but inevitably enhances the noise as well.

SUMMARY

10604] This disclosure describes adaptive filtering techniques to improve the quality of captured imagery, such as video or still images, Jn particular * this disclosure describes adaptive filtering techniques that filter each pixel as a function! of a set of surrounding pixels. For example, an adaptive Image filter compares jraage'mformatioa associated with a pixel of interest to image information associated with a kef of surrounding pixels. The adaptive image filter computes differences between the image information associated with the pixel of interest and the image information associated with each of the surrounding pixels. The adaptive image filter may, for instance, subtract an intetisity value of each of the surrounding pixels from an inienkty value of the pixel of interest to obtain difference values.

f 0005] The adaptive Image filter filters the image information of the pixel of interest as a function of the computed differences. The adaptive image filter may, for example, compute a low pass component, and high pass component of the filter by comparing each of the computed differences to a low pass and high pass threshold value, and summing computed differences that satisfy the threshold requirements. The adaptive image filter then filters the image information associated with the pixel of interest by computing a new pixel value based on the original pixel value, the low pass component of the filter and the high pass component of the filter.

|Oθ06J The adaptive image filter may filter each pixel of the image in this manner. Thus, the image filter adjusts the image information on a pixel -by-pixel basis such. that, each pixel is filtered as a function of its surrounding pixels. Consequently, the low pass component and high pass component, of the adaptive image filter adoptively change for each pixel based on the comparison between image information associated with the pixel of interest and the image information associated with the set of surrounding pixels. I0θ07J In one embodiment, the disclosure provides a method comprising computing differences between image information associated with a pixel of interest and image information associated with pixels that surround the pixel of interest, determining a low pass component and a high pass component of a filter as a function of the computed differences, and applying the filter to the image information associated with the pixel of interest f0808j In another embodiment, the disclosure provides a device comprising an image sensor array that captures image information, xvherein the image sensor array includes a plurality of image sensors that capture image information associated with a plurality of pixels, and an adaptive image filter that computes differences between image information associated with a pixel of interest and image information associated with pixels that surround the pixel of interest, determines a low pass component and a high pass component of a filter as a function of the computed differences, and applies the filter to the image information associated with the pixel of interest |0009| In an additional embodiment, tlie disclosure provides a method comprising capturing image information for a plurality of pixels, wherein the image information associated with each of the pixels represents one of a plurality of colors., selecting a pixel of interest and a set of surrounding pixels from the plurality of pixels, wherein the image information associated with the set of surrounding pixels and the pixel of interest

.represents the same color, computing differences between image information associated with the pixel of interest and image information associated with each of the surrounding pixels of the set, and filtering the image information associated with the pixel of interest as a function of the computed differences. fOθIOJ In a further embodiment, the disclosure provides a device comprising an image sensor array with a plurality of image sensors that capture image information associated with a plurality of pixels, wherein, the image information associated with each of the pixels represents one of a plurality of colors, and an adaptive image filler that selects a pixel of interest and a set of surrounding pixels from the plurality of pixels, computes differences between image information, associated with the pixel of interest, and image .information associated with each of the surrounding pixels of the set, and filters the image information associated with the pixel of interest as a function of the computed differences, wherein the image information associated with the set of surrounding pixels and the pixel of interest represents the same color. fOOllj In another embodiment, the disclosure provides a computer-readable medium comprising instructions to cause a processor to compute differences between image information associated with a pixel of interest and image information associated with pixels that surround the pixel of interest, determine a low pass component and a high pass component of a filter as a function of the computed differences, and apply the tiiter to the image information associated with the pixel of interest. |001 ' 2| The details of one or more embodiments of the disclosure are set forth in the aeco.mpa.nyiag drawings and the description below. Other features, objects, and advantages of the disclosure will be apparent from the description and drawings, and from the claims.

BRIEF DESCRIPTION OF OiUWINGS føø.13J FϊO. ϊ is a block diagram illustrating an exemplary image capture device for capturing image information.

|OOϊ41 FlG. 2 is a. block diagram illustrating the image capture device of FIG. 1 in further detail.

J0015J FlG. 3 is a block diagram illustrating an adaptive linage filter useful with the image capture device of FIG, 1.

10016] FlG. 4 is a flow diagram illustrating a technique for filtering a pixel of interest as a function of surrounding pixels.

|0017| FϊGS. 5A and 5B are schematic diagrams illustrating exemplary filtering techniques for filtering a pixel of interest as a function of surrounding pixels.

DETAILED DESCRIP TION

|001S| FIG, i is a block diagram illustrating an exemplary image capture device 10 for capturing image information. As shown in FIC I 5 image capture device 10 includes an. image sensor array 12, an adaptive image filter 14, an image processor 16, and an image storage device 18. The features illustrated ήi FTG. 1 may be realized by any suitable combination of hardware and/or software components. Depiction of different leatures as units is intended to highlight different functional aspects of image capture device 10, and does not necessarily imply that such units must be realized by separate hardware and/or software components. Rather, functionality associated xvith one or more units may be integrated within common hardware and/or software components. |O0ϊ9] Image capture device 10 may be a digital camera, such as a digital video camera, a digital still image camera, or a combination of both, ϊn addition, image capture device IQ may be a stand-alone device, such as a stand-alone camera, or be integrated in another device, such as a wireless communication device. As an example, image capture device 10 may be integrated in a mobile telephone to form a so-called camera phone or video phone, image capture device 10 preferably is equipped to capture color imagery, black-and-white imagery, or both, ϊn this disclosure, the terms "image, 5 " "imagery/ * "image information," or similar terms may interchangeably refer to either video or still pictures.

|0020| Image sensor array 12 acquires image information for a scene of interest. Image sensor array 12 includes a two-dimensional array of individual image sensors, e.g., arranged in rows and columns. Each of the image sensors of image sensor array 12 may be associated with a single pixel. In other words, there may be a one-to-one correspondence between image sensors and pixels, ϊn some embodiments, however, there may be more than one image sensor associated with each pixel. Image sensor array 12 may comprise, for example, an array of solid state sensors such as

complementary raetal-oxide semiconductor (CMOS) sensors, charge coupled device (CCD) sensors or the like.

|002ϊ| Image sensor army 12 may also include a two-dimensional array of color filters that cover the Image sensors of array 12 to separate out the color components of the scene of interest. Image sensor array 32 may comprise, for example, an array of raά, green and blue filters arranged in a Bayer pattern, i.e.. a repeating arrangement of color filters that, alternates rows of alternating red and green color filters, and alternating blue and green color filters (see FIGS. SA. and 5B). Image sensor array 12 may utilize other color fillers, such as CMYK color filters. Additionally, image sensor array 12 may arrange the color filters into patterns other than the Bayer pattern. |0ø22| The image sensors within image sensor array 12 are exposed to the image scene to capture image information. Each of the image sensors of array 12 may, for example, capture an intensity value representing the intensity of the light of the scene. Each of the image sensors of sensor array 12 may only be sensitive to one color due to the color filters covering the sensors. Thus, each the image sensors of sensor array 12 capture image information (e.g., intensity values) for only one of the three colors, lit the case of the Bayer pattern described above, half of the image sensors capture image information representing the color green, one-quarter of the image sensors capture image information representing the color blue, and one-quarter of the image sensors capture image information representing the color red. Consequently, the image information associated, with each pixel represents only a portion of the color spectrum. Tn this disclosure, the term "Bayer format" data refers to image information that represents only a single color.

|0023| Adaptive image t ' ύier 14 filters the image information captured by image sensor array 12. Adaptive image filter 14 filters the image information associated with each pixel as a function of the image information associated with, surrounding pixels. More specifically, adaptive image βlter 14 compares the image information associated with a pixel of interest to the image information associated with a set of surrounding pixels, and filters the image information of the pixel of interest as a function of this comparison. Adaptive image filter 14 may, for example, include a low pass component and a high pass component that are adjustable as a function of the comparison between the image information associated with the pixel of interest and the image information

associated with the set of surrounding pixels, ϊn this manner, adaptive image filter 14 may smooth out the noise and enhance the image at the same time. |0024| Adaptive image filter 14 fillers the image information on a pixel -by -pixel basis, adaptively changing for each pixel based on the comparison between image information associated with the pixel of interest and the image information associated with the set of surrounding pixels. Thus, the filter applied to image information of a first pixel of interest may vary from the filter applied to image information of a second pixel of interest.

[0025] Adaptive image filter 14 may filter the image information that represents only a single color (Le., Bayer format data). In other words, adaptive image filter 1.4 may filter the image information captured by each image sensor as a function of image information captured by surrounding image sensors utilising the same color filter. For example, adaptive filter 14 filters the image information captured by an image sensor utilizing a blue color filter as a function of the surrounding image sensors thai also utilize blue color filters. Alternatively, adaptive image filter 14 may filter the image information after interpolating the image information into the RGB (red, green, blue) domain or conversion from the RGB domain to the YCbCr (luminance, blue chrominance, red chrominance) domain.

|0026| Image processor 16 receives the filtered image information from adaptive image tiiter 14 and performs any necessary processing on the filtered image information. Image processor 16 may., for example, perforin cropping, compression, image enhancement, or other processing of the image information captured by image sensor array 12. ϊmage processor 16 may be realized by a microprocessor, digital signal processor (DSP), application specification integrated circuit (ASIC), field programmable gate array (FPGA), or any other equivalent discrete or integrated logic circuitry- ϊn some embodiments * image processor 16 may form part of an encoder- decoder (CODEC) thai encodes the image information according to a particular encoding technique or format, such as MPEG*2 > MPEG-4, ITU H.263, ITU B.264, JPEG, or tlie like.

|0027j Image processor 16 stores the image information in image storage device 18. Image processor 16 may store raw image information, processed image information, or encoded information in. image storage device 18. If the image information is accompanied by audio information, the audio also may he stored in image storage

device 18, either independently or in conjunction with the video information. Image storage device 18 may comprise any volatile or non-volatile memory or storage device, such as read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), or FLASH memory, or such as a magnetic data storage device or optical data storage device. føO2S] FIG.2 is a block diagram illustrating image capture device \ϋ in further detail. Image capture device 1.0 incorporates adaptive image filter .14 Into a video front, end (VFE) 22 that performs image processing operations on the raw image information from image sensor array 12. As illustrated in FI<3: 2, VFE 22 includes a defective pixel correction unit 24, adaptive image filter 14 and a deraosaic unit 26. Defective pixel correction unit 24 corrects image information associated with one or more defective pixels, ϊn other words, defective pixel correction unit 24 corrects image information captured by orse or more defective image sensors.

100291 Defective pixel correction ximt 24 may, for example, correct image informal! on captured by image sensors that are locked at either a dark or bright intensity level. Defective pixel correction unit 24 buffers image information captured by image sensor array 12, identifies image information associated with defective pixels, and corrects the image information associated with the defective pixels. Defective pixel correction unit 24 may, for example, replace the buffered Image informal! an associated with the defective pixels with image information interpolated as a function of image information associated with surrounding pixels. f 0030] Adaptive iinage filter 14 uses the image information buffered by defective pixel correction unit 24 to filter the image information associated with each pixel as a function of the image information associated with surrounding pixels. By using the image information buffered by defective pixel correction unit 24, adaptive image filter 1.4 reduces the amount of memory needed for buffering the image information. 10031] Demosaic unit 26 interpolates the missing color values for each pixel. As described above, each of the image sensors of array 1.2 captures image information representative of only a single color, ϊn other words, the image information associated with each pixel includes only a single color component; either red, green or blue. Demosaic urns 26 interpolates the missing color values for each of the pixels. For example, demosaic unit 26 interpolates the blue and green, components for a red pixel. Image Information associated with each of the pixels includes values for each color

component after processing by derαosaic unit 26. In this manner, demosaic unit 26 converts the Bayer format data Into the RGB domain. Demosaϊe unit 26 may interpolate tlie missing color values for each of the pixels υsitig the image information captured by surrounding pixels. Demosaic unit 26 may use any interpolation method, such as nearest neighbor, linear, cubic, cubic spline, and the like. JO032J The embodiment illustrated in. FIG. 2 is for exemplary purposes only. Adaptive image filter 14 need not reside in VTE 22, but instead may reside elsewhere within image capture device ϊ 0. As described above, adaptive image filter 14 may filter the image information after interpolation by demosaic unit 24 into the RGB domain or awn after conversion from the RGB domain to the YCbCr domain. [0033] FIG. 3 is a block diagram illustrating adaptive image filter 14 in further detail. Depiction of different features as units is intended to highlight different functional aspects of adaptive image filter 14, and does not necessarily imply that such units must be realized by separate hardware and/or software components. Rather, functionality associated with one or more units may be integrated within common hardware and/or software components.

|0034| As described above, adaptive image filter 14 compares the image information associated with a pixel of interest to the image information associated with a set of surrounding pixels, and filters the image information of the pixel of interest as a function of this comparison. In one embodiment adaptive image filter 14 filters each pixel of interest according to the following equation:

2L,$>i~pn,J--»( X i~m.}->i ~~ X i()) ∑ 0i -™,;-~A X ii- ~ X i ••«!,/••«))

X(Uy- « » — — ^r 1 + *v •*= — =--; + x(ij)

0)

where x{j,jf" is the filtered pixel value, x(i,j)is the uπflltered value of the pixel of interest, w j} and w t / are normalisation factors, x y is the value of the image information associated with pixel at location (i, j), m and » are positional values of the surrounding pixels, and:

S 1 , ;( - 1 if abs{λ\_^ J→ - X;. ) < LowPtmThreshoid — 0 if ahs{x } .. m ,,..,, — x u ) 5; lowPassJforeshold

S λ ' r - ϊ if ahs{x h .^ f . „ -~ x ϋ ) > HiφPassThmshoid ■■ ■ 0 if tώx{x r .. m r . r> •■■• x u ) ≤ HighPassThreshaM

where LowPassThreshold is a threshold value applicable to a low pass filter component and HlghPassThreshold is a threshold value applicable to a high pass filler component |0835j Equation (1) above may be simplified for implementation ι« hardware as;

(2)

*(/,,/ ' )' is the filtered pixel value. x(i,f) is the unfiltered value of the pixel of interest k «? [-4.4] is an adjustable parameter to control the degree of edge enhancement, aad

S 1 . y — 1 if αbs'(x tλ>r ^ n - ,v y ) < LowPαssThreshnld

~ 0 if α&yfø. „ , ^. fl - λ-,, ) > LonPαsslhrcshoId Sly ~ I if αbi'(x t .. m 3 .. H •■• λ * V ) > HighPαtsTkrexhofd

~ 0 if ^fe(.r ? .. rt 4 .„ ~ λ' ( , > ≤ HighPαsiThfesho/d

|Oθ36| Adaptive image filter 14 of FLG. 3 illustrates one exemplary embodiment for filtering pixels in accordance with Equation (1). Adaptive image filter 14 selecis a pixel of interest and identities a set of surrounding pixels. Adaptive image filter 14 obtains image information associated with the pixel of interest and image information associated with the set of surrounding pixels. Adaptive image filler 14 may obtain the image information from a pixel buffer used for defective pixel correction. Alternatively, adaptive image filter 14 may obtain the image information from image storage device 18. Adaptive image filter 14 may obtain the image information in Bayer formats KGB domain, YCbCr domain or other color domain or format. For exemplary purposes, however, FIG. 3 xvϋl be discussed in terms of Bayer format data. Thus, the image information associated vvilli the surrounding pixel is image information obtained

by image sensors using the same color filter, ϊa general, the image information may be an intensity value.

|0037| As described above, adaptive image filter 1.4 compares the image information associated with a pixel of interest to the image information associated with the set of surrounding pixels, and filters the image information of the pise! of interest as a function of this comparison. Specifically, adaptive image filter 14 computes the differences (30) between the image information of the pfxe! of interest and each of the surrounding pixels of the set For each surrounding pixel, for example, adaptive image filter 14 subtracts an intensity value of the surrounding pixel (labeled "SRNDJPIXEL" in FlG. 3) from the intensity value of the pixel of interest (labeled W ϊN_HXEL" in FϊG. 3) to obtain the difference (labeled "DlFF" in FIG. 3), In the case in which the Bayer format data has been converted to the RGB domain or the YCbCr domain, adaptive image filter 14 may compute the differences using other components of the image information, in the case of YCbCr, for example, adaptive image filter 14 may compute the differeaces by comparing the Y-luminance values of the pixels. |003S| Adaptive image filter 14 determines a low pass component and a high pass component of the filter as a function of the computed differences. Adaptive image filler 14 may, for example, compare the absolute value of the computed differences to threshold values associated with a high pass and low pass component of adaptive image filter 14. Specifically, low pass filter comparator 32 (labeled "LPF COMPARATOR 32" in FTG. 3) compares the absolute value of each of the computed differences to a low pass threshold. The low pass threshold is a. programmable value that depends on image quality requirements selected by a designer or customer and the application. If the absolute value of the computed difference is less than the low pass threshold, low pass filter difference accumulator 34 (labeled "LPF DIFF ACCUMULATOR 34" in FIG. 3) increments a difference value by ihe value of the computed difference. Ih this manner, low pass filter difieren.ce accumulator 34 sums the computed differences that are less than the low pass threshold to determine a difference value associated with the low pass component (labeled "LPFJDIFF" in FIG. 3).

I0θ39J .Likewise, high pass filter comparator 36 (labeled "IiPF COMPARATOR 36* in FlG. 3) compares the absolute value of each of the computed differences to a high pass threshold, if the absolute value of the computed difference is greater than the high pass threshold, high pass filter difference accumulator 38 (labeled "HPF DlFF

ACCUMULATOR 38" in FIG. 3) Increments a difference value by the value of the computed difference. In this manner, high pass filter difference accumulator 38 sums the computed differences that are greater than the high pass threshold to determine a difference value associated with the high pass component (labeled "HPF ^ DIFF * in FlCr. 3).

|004O! The difference value associated with the low pass component (LPFJDIFF) and the difference value associated with the high pass component (HPF_JDϊFF) are multiplied by a shift factor. As illustrated in FIG. 3, adaptive image filter ϊ4 multiplies (40) LPFJDIFF by 1/<2 λ LPFJ3HIFT) and multiplies (42) HPFJMFF by !/<2 λ MPF_SHϊPT). LPFjSHIFT and HFFJSHIFT are programmable values that depend on the application for which image capture device 10 is being used as well as designer or customer preference for image quality. A designer or customer thai prefers a sharper image, for example, may set the value of LPF J5H.JPT to a larger value, thus resulting in a smaller low pass component of the filter. The values of LPF SHIFT and HPFJSHIFT may vary from image to image. LPFJSHDFT and HPFJSHϊFT may, for example, be determined based on image texture information. Thus, for image information -with a clean, smooth texture, LPFJSHIFT may be set to a smaller value. Alternatively, the operator of image capture device 10 may adjust the values of LPF ^ SHJFT and HPF_$HϊFT by, for example, adjusting an image contrast setting on the image capture device 10,

[0041 J Adaptive image filter 14 includes a delay buffer 40 to delay the image information associated with the pixel of interest while the image information of the pixel of interest is compared with the image information of the surrounding pixels, ϊn other words . , delay buffer 40 delays ϊN_PϊXEL while adaptive image filter 14 computes the differences between the image information of the pixel of interest and the surrounding pixels and determines the low pass and high pass components. As an example, delay buffer 40 may delay the image information associated with the pixel of interest while adaptive image filter 14 compares the image information of the pixel of interest with the image information associated with eight surrounding pixels in the case in which the set of surrounding pixels is a 3x3 matrix- of surrounding pixels. |0042| Adaptive image filter 14 calculates a filtered pixel value (labeled "OUT . .PIXEL" in FIG. 3) for the pixel of interest as a function of the low pass and high pass components. Specifically, adaptive image filter 14 filters the image information

associated with the pixel of interest by adding (46) the low pass component to and subtracting (46) the high pass component from the original image information of the pixel of interest. Thus, in the example illustrated in FIG. 3, the filtered pixel value is calculated according to the equation:

OUT. PIXEL - IN. PIXEL * (LPF . DIFF /(2 λ LPF. SHIFT)) - (HPF..DAFP/{2 λ MPF..SKϊFf )),

where IN_JPIXEL is the original value of the image information associated with the pixel of interest LPF ^ DIFF is the value of accumulated differences that are less than the low pass threshold, ϊiFF ^ DϊFI? is the value of accumulated differences that are greater than the high pass threshold, and LPFJSHIFT and HPF ^ SHIFT are programmable values.

|0043| FϊG. 4 is a flow diagram illustrating exemplary operation of adaptive image filter 14 of FϊG. 1 filtering a pixel of interest as a function of surrounding pixels. Initially, adaptive image filter 14 selects a pixel of interest and obtains image information associated with the pixel of interest (50). Adaptive image filter 14 may, for example, obtain the image information from a pixel buffer used for defective pixel correction. Alternatively, adaptive image filter 14 may obtain the image information from image storage device 18.

£08441 Adaptive image filter 14 identities a set of surround pixels and obtains image information associated with a surrounding pixel (52). Adaptive image filter 14 may again obtain this image information from the buffered pixels used by defective pixel correction unit 24, from image storage device 18 or from some other location. In one embodiment, the image information is associated, with a pixel that, uti1k.es the same color filter. Adaptive image filter 14 computes the differences between the image information associated with the pixel of interest and the image Information associated with the selected surrounding pixel (54). As described in detail above, adaptive linage filter 14 may calculate the difference by subtracting intensity values of the two pixels. f 0045J Adaptive image filter 14 compares the computed difference to a low pass threshold (56). If the computed difference is less than the low pass threshold, adaptive image filter 14 increments a difference accumulation (e.g., LPF.. IXlFF of FlG. 3) by the difference value (58). If the computed difference is greater than or equal to the low pass threshold, adaptive image filter 14 compares the calculated gradient to a high, pass

threshold (60). If the computed threshold Is greater than, the high pass threshold, adaptive image filter 14 increments a difference accumulation (e.g., HPFJDIFF of FIG. 3) by the difference value (62),

|0β46} If the computed difference is less than or equal to the high pass threshold, or after incrementing one of the difference accumulations, adaptive image filter 14 determines whether there are other surrounding pixels of the set to compare (64). ϊf there are other surrounding pixels to compare, adaptive image filter 14 computes the differences between the image information associated with the pixel of interest and the image information of the other surrounding pixels, and compares the differences to the threshold values as described above.

|0047] When there are no other surrounding pixels of the set to compare, adaptive image filter 14 determines the low pass and high pass filter compoa ertis (66). Adaptive image filter 14 determines the values of the filter components as a function of the accumulated differences. For example, the values of the low pass and high pass filter components may be LPF_D1FF/{2 A HFF_SHIFT) a«d HPFJD1FF/(2 A HPF_SHIFT) ! respectively.

|0048| Adaptive image filter .14 computes the value of the filtered image information associated with the pixel as a function of the low and high pass filter components (6S), For example, the filtered pixel value is calculated according to the equation OUTJ » D£EL - lN_PiXEL + (LPFJi)IFF /(2 λ U*F ^ SHIFT)) - ( HPF DϊFF/(2 λ BPF SHIFT)). Upon computing the filtered pixel value, the process continues for the next pixel of interest This process continues ileratively until all pixels of interest have been processed.

|0049| FIGS. SA. and 5B are schematic diagrams illustrating exemplary filtering techniques performed by adaptive image filter 14. FIGS. 5A and 5B show pixels arranged in Bayer format; i.e., each representing only a single color of the possible three colors (R, G, B), In FIGS, 5A and 5B, the boxes labeled "R" represent red pixels, the boxes labeled "B" represent blue pixels and boxes labeled "G" represent green pixels. As described above, each of the pixels may correspond to an image sensor of image sensory array 12. For exemplary purposes only a portion of the pixels associated with image capture device i0 are illustrated in FIGS. 5 A and 5B. Typically, image capture device 10 would include many more pixels, likely in the thousands or millions,

fOOSOJ FIG SA illustrates an exemplary filtering scheme for fillering blue- pixels. The same filtering scheme may be used to filter red pixels. FϊG. SB illustrates an exemplary filtering scheme for filtering green pixels. The filtering scheme for filtering the green pixels may be different due to the nature of the Bayer pattern. As described above, there are twice as many green pixels as there are red and blue pixels in the Bayer pattern, ^00511 Referring now to FIG SA, adaptive image filter 14 selects a pixel of interest 72 and a set of surrounding pixels 74 A -H ("surrounding pixels 74"). As illustrated in FIG 5A 5 the pixel of interest 72 and surrounding pixels 74 represent the same color, i.e., blue. The same filtering scheme may also be applied to the red pixels. Adaptive image filter 14 computes the difference between iraage information associated with pixel of interest 72 and image mfomiatioa associated with each of surrounding pixels 74. Thus, in this example, adaptive image filter 14 computes eight, differences, i.e., one for each of surrounding pixel 74.

|00521 Adaptive image filter 14 filters image information associated with pixel of interest 72 as a function of the computed differences as described above. In particular, adaptive image filter 14 compares the differences to low pass and high pass threshold values, and accumulates low pass &xiά high pass differences when the threshold requirements are met. Adaptive image filter 14 computes the output value of the pixel based on the original value of the image information and the low pass asid high pass differences. The following pseudocode illustrates aa exemplary algorithm for filtering a blue or red pixel as a function of a 3x3 (three by three) matrix of surrounding pixels:

for (m~ : 0;iϊi<"- : 7;n-HH-){

// for the eight surrounding pixels difffm] :::: pixel[m] - in_pixel; if ( abs(diffi>φ < ϊpf_threshoid){

// adjust low filtering component' of the filter lpf_diff-i - <diff[m]); > if ( abs(difflm])> hpfjhresho!d){ // adjust low filtering component of the filter hpf diff +- (difttmj);

} )

Outjpixel « injpixel + (Ipf ^ diff >>LPF_SHTFT) - ( hpfjliff» HPFJSHlFT)

£005.->J Referring now to FiG. SB, adaptive image filter 14 selects a pixel of interest 76 and a set of surrounding pixels 78A-G. ("surrounding pixels 78"). As illustrated in FIG. 5B, the pixel of interest 76 and surrounding pixels 78 represent, the same color, i.e., green. As described above, the filtering algorithm for the green pixels is slightly different due to the larger number of green pixels in the Bayer pattern. Adaptive image filter \ 4 computes the difference between image information associated with pixel of interest 76 and image information associated with each of surrounding pixels 78, resulting in computation of seven differences for the green pixel of interest 76. fø0541 Adaptive image filter 14 filters image information associated with pixel of interest 76 as a function of the computed differences as described above. In particular, adaptive image tBler 14 compares the differences to low pass aad high pass threshold values, and accumulates low pass &nd high pass differences when the threshold requirements are met. Adaptive image filter 14 computes the output value of the pixel based on the original value of the image information aiκi ϊh& low pass and high pass differences. The following pseudocode illustrates an exemplary algorithm for filtering a green pixel as a function of a 3x3 matrix of surrounding pixels:

for (m 0;:m<"-"-o;«tf -> ) {

// for the seven surrounding pixels diff [m] " pixei[m] - in_pixel; if ( abs(diff[m]) < lpf .. threshold)!

// adjust low filtering component of the filter lpfjdiff+ « <diff[m3); > if ( abs(d.iff[ra])> hpf_threshoid){ // adjust low filtering component of the filter hp£_diff += » (difϊlm]};

>

>

Otiijpixel - injpixel + (lρf_diff »LPF_SHIFT) - ( hpf diff» HPF-SHtFT)

|00S5| Although the filtering algorithms illustrated m FIGS. 5 A. and 5B use a 3x3 matrix of surrounding pixels, adaptive image filter 14 may use any number of surrounding pixels. Adaptive image filter 1.4 may use a larger matrix of surrounding

pixels (e.g., a 3x5 .matrix or a 7x7 matrix) or only a portion of the pixels of a surrounding matrix. For example, image filter 14 filter pixel of interest 72 as a function of only surrounding pixels 74λ, 74C, 74E and 74G (FlQ. SA). Moreover, adaptive image filter 14 may filter image information in different domains, such as image information in the RGB domain or YCbCr domain. In performing filtering m such domains, adaptive image filter 1.4 may use directly neighboring pixels as the surrounding pixels.

|Oθ56| The techniques described herein may be implemented in hardware, software, firmware, or any combination thereof, ϊf implemented in software, the techniques may be directed to a computer-readable medium comprising program code providing machine-executable instructions, that when executed in a device that captures images, performs one or more of the techniques described herein, ϊtx that case, the computer- readable medium may comprise random access memory (RAM) such as synchronous dynamic random access memory (SDRAM), read-only memory (ROM), non-volatile random access memory (NVRAM), electrically erasable programmable read-only memory (EEPKOM), FLASH memory, and the like.

|Gθ57J The program code may be stored on memory in the form of computer readable instructions. In that case, a processor such as a microprocessor or digital signal processor (DSP) may execute instructions stored in memory in order to carry out. one or more of the techniques described herein, in some cases, the techniques may be executed by a DSP that, invokes various hardxvare components, ϊn other cases, the techniques described in this disclosure may be implemented by a microprocessor, one or more application specific integrated circuits (ASICs), one or more field programmable gate arrays (FPGAs), or some other hardware-software combination. |Gθ58J Various embodiments have been described. These and other embodiments are within the scope of the following claims.