US20200184598A1 - System and method for image demosaicing - Google Patents
System and method for image demosaicing Download PDFInfo
- Publication number
- US20200184598A1 US20200184598A1 US16/789,668 US202016789668A US2020184598A1 US 20200184598 A1 US20200184598 A1 US 20200184598A1 US 202016789668 A US202016789668 A US 202016789668A US 2020184598 A1 US2020184598 A1 US 2020184598A1
- Authority
- US
- United States
- Prior art keywords
- color
- image
- values
- demosaicing
- pixels
- 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.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims abstract description 84
- 230000003044 adaptive effect Effects 0.000 claims abstract description 25
- 230000004044 response Effects 0.000 claims abstract description 6
- 238000005457 optimization Methods 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 10
- 230000000694 effects Effects 0.000 description 7
- 238000003384 imaging method Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 5
- 239000003086 colorant Substances 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000004040 coloring Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 241001481760 Erethizon dorsatum Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004042 decolorization Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000011514 reflex Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000001429 visible spectrum Methods 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4015—Image demosaicing, e.g. colour filter arrays [CFA] or Bayer patterns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/20—Image enhancement or restoration using local operators
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/63—Control of cameras or camera modules by using electronic viewfinders
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/80—Camera processing pipelines; Components thereof
- H04N23/84—Camera processing pipelines; Components thereof for processing colour signals
- H04N23/843—Demosaicing, e.g. interpolating colour pixel values
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N25/00—Circuitry of solid-state image sensors [SSIS]; Control thereof
- H04N25/10—Circuitry of solid-state image sensors [SSIS]; Control thereof for transforming different wavelengths into image signals
- H04N25/11—Arrangement of colour filter arrays [CFA]; Filter mosaics
- H04N25/13—Arrangement of colour filter arrays [CFA]; Filter mosaics characterised by the spectral characteristics of the filter elements
- H04N25/134—Arrangement of colour filter arrays [CFA]; Filter mosaics characterised by the spectral characteristics of the filter elements based on three different wavelength filter elements
-
- H04N5/23293—
-
- H04N9/045—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/20024—Filtering details
- G06T2207/20032—Median filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N2209/00—Details of colour television systems
- H04N2209/04—Picture signal generators
- H04N2209/041—Picture signal generators using solid-state devices
- H04N2209/042—Picture signal generators using solid-state devices having a single pick-up sensor
- H04N2209/045—Picture signal generators using solid-state devices having a single pick-up sensor using mosaic colour filter
- H04N2209/046—Colour interpolation to calculate the missing colour values
Definitions
- the present disclosure relates generally to imaging and image processing and more particularly, but not exclusively, to systems and methods for image demosaicing.
- demosaicing methods exist in the art; however, many of these methods result in undesirable effects in the converted image including false color artifacts, such as chromatic aliases, zippering effects (abrupt unnatural changes of intensity over a number of neighboring pixels), purple fringing and loss of image resolution.
- demosaicing methods fail to provide adequate image conversion for images that range from high to low noise. Accordingly, such demosaicing methods are not robust enough to be used on a variety of images.
- a method of adaptive demosaicing of a mosaiced image comprising receiving the mosaiced image having a mosaic pattern with a first, second and third color, and demosaicing the mosaiced image to generate an adaptively demosaiced image.
- the adaptive demosaicing comprises interpolating values of a portion of unknown pixels of the first color in a horizontal or vertical direction, interpolating values of a portion of unknown pixels of the second color in a horizontal or vertical direction, and interpolating values of a portion of unknown pixels of the third color in a horizontal or vertical direction.
- a method of adaptive demosaicing of a mosaiced image comprising receiving the mosaiced image having a mosaic pattern with a first, second and third color, obtaining a noise level index for the mosaiced image; determining whether the noise level index is greater than a threshold value, if the noise level index is not greater than the threshold value, then performing a bilinear demosaicing on the mosaiced image to generate a bilinearly demosaiced image, and if the noise level index is greater than the threshold value, then performing an adaptive demosaicing on the mosaiced image to generate an adaptively demosaiced image.
- the adaptive demosaicing comprises interpolating values of a portion of unknown pixels of the first color in a horizontal or vertical direction, interpolating values of a portion of unknown pixels of the second color in a horizontal or vertical direction, and interpolating values of a portion of unknown pixels of the third color in a horizontal or vertical direction.
- a camera system comprising a lens, a mosaicing filter, an image sensor array configured to generate a mosaiced image comprising a mosaic pattern having a first, second and third color and based on sensed light that passes through the lens and the mosaicing filter, and a processing module configured to demosaic the mosaiced image via interpolation of unknown pixels and generate a demosaiced image by interpolating values of a portion of unknown pixels of the first color in a horizontal or vertical direction, interpolating values of a portion of unknown pixels of the second color in a horizontal or vertical direction, and interpolating values of a portion of unknown pixels of the third color in a horizontal or vertical direction.
- a camera system comprising a lens, a mosaicing filter, an image sensor array operable to generate a mosaiced image comprising a mosaic pattern having a first, second and third color and based on sensed light that passes through the lens and mosaicing filter, and a processing module configured to demosaic the mosaiced image via interpolation of unknown pixel values and configured to generate a demosaiced image by determining a noise level index for the mosaiced image, determining whether the noise level index is greater than a threshold value, if the noise level index is not greater than the threshold value, then performing a bilinear demosaicing on the mosaiced image to generate a bilinearly demosaiced image, and if the noise level index is greater than the threshold value, then performing an adaptive demosaicing on the mosaiced image to generate an adaptively demosaiced image.
- the adaptive demosaicing comprises interpolating values of a portion of unknown pixels of the first color in a horizontal or vertical direction, interpolating values of a portion of unknown pixels of the second color in a horizontal or vertical direction, and interpolating values of a portion of unknown pixels of the third color in a horizontal or vertical direction.
- FIG. 1 a is an exemplary drawing illustrating an embodiment of a digital camera system for capturing a digital image, wherein the digital camera system includes a lens, a mosaicing filter, a sensor array and a camera device.
- FIG. 1 b is an exemplary drawing illustrating exemplary mosaiced RGB image data being converted into triplet RGB image data through interpolation demosaicing.
- FIG. 2 is an exemplary drawing illustrating an example portion of a mosaiced RGB image.
- FIG. 3 a is a flow chart of a method for generating, processing and presenting a digital image.
- FIG. 3 b is a flow chart of a sub-method for obtaining a mosaiced digital image, which is a portion of the method depicted in FIG. 3 a.
- FIG. 4 is a flow chart of a sub-method for adaptive demosaicing an image, which is a portion of the method depicted in FIG. 3 a.
- FIG. 5 is a flow chart of a sub-method for adaptive demosaicing of an image, which is a portion of the method depicted in FIG. 4 .
- FIG. 6 a depicts a graph of the Signal to Noise Ratio (SNR) of a plurality of mosaiced images compared to the Peak Signal to Noise Ratio (PSNR) of the demosaiced images.
- SNR Signal to Noise Ratio
- PSNR Peak Signal to Noise Ratio
- FIG. 6 b shows a table of the results depicted in the graph of FIG. 6 a.
- demosaicing systems and methods Since currently-available demosaicing systems and methods fail to provide for optimal image interpolation and require large software or hardware overhead, improved demosaicing systems and methods that provide for high quality image processing while operating at various Signal to Noise Ratios (SNRs), and requiring minimal computational time and overhead, can prove desirable and provide a basis for a wide range of digital imaging applications, such as digital camera systems, and the like. This result can be achieved, according to one embodiment disclosed herein, by a digital camera system 100 as illustrated in FIG. 1 a.
- SNRs Signal to Noise Ratios
- the digital RGB camera system 100 is abstractly shown including a lens 105 , a mosaicing filter 110 , a sensor array 115 and a camera device 120 .
- the camera device 120 is operably connected to the sensor array 115 , and comprises a processor 121 (or processing module), a memory 122 and a display 123 .
- the RGB camera system 100 can be disposed in a suitable camera housing (not shown).
- the mosaicing filter 110 can comprise a plurality of translucent red pixels, green pixels and blue pixels 111 R, 111 G, 111 B that are arranged in a matrix.
- the light 101 passes through the mosaicing filter 110 and onto the sensor array 115 having a plurality of corresponding sensor pixels 116 that convert the received light into a digital signal.
- the sensor array 115 generates a mosaiced digital image 130 as depicted in FIG. 1 b .
- the mosaicing filter 110 includes a pattern of translucent red pixels, green pixels and blue pixels 111 R, 111 G, 111 B to substantially filter out all other wavelengths of light such that each sensor pixel 116 only records a value for red, blue or green light.
- This mosaiced digital image 130 can be converted to a conventional RGB triplet image 140 through interpolation as described herein.
- each pixel in a conventional RGB image comprises red, green and blue components that are combined to define the color of that pixel from a full spectrum of visible light.
- a conventional RGB triplet image 140 comprises a red portion 141 , a green portion 142 , and a blue portion 143 , that collectively define a full-color RGB image.
- the mosaiced digital image 130 To convert the mosaiced digital image 130 to a RGB triplet image 140 , missing information can be added through a process of interpolation. Stated another way, the mosaiced digital image 130 only has one-third of the total information that will be present in the RGB triplet image 140 when formed, and therefore this missing information can added by inferring its value based on the pixels around it. For example, as shown in FIG. 1 b , the mosaiced digital image 130 comprises a 9 ⁇ 9 array of pixels where values of each pixel are known for either a red, green or blue value.
- a 9 ⁇ 9 image for each of the red, green and blue portions 141 , 142 , 143 can be generated.
- the red portion 141 many of the red values for a given pixel location are already known 141 K (pixels 141 K signified by the ‘R’ in a given location in the red portion 141 ) from the value being present in the mosaiced digital image 130 .
- the remaining pixel values pixels 1411 signified by the blank pixel in a given location in the red portion 141
- the green portion 142 includes known pixels 142 K and includes unknown pixels 1421 that can be interpolated.
- the blue portion 143 includes known pixels 143 K and includes unknown pixels 1431 that can be interpolated.
- FIGS. 1 a and 1 b depict the mosaicing filter 110 and captured mosaiced digital image 130 as being in a Bayer filter pattern, where there are two green pixels 111 G for every red or blue pixel 111 R, 111 B, with offset alternating rows of R-G and B-G alternating pixels.
- FIG. 2 also depicts a mosaiced digital image having a Bayer filter pattern, and FIG. 2 is referenced in more detail in in various examples throughout the following disclosure.
- Such a Bayer filter pattern is used conventionally in digital imaging; however, in some embodiments, the methods of demosaicing and/or interpolation can be applied to other filter patterns that comprise two or more pixel colors in various suitable pattern arrangements.
- CMYK complementary metal-oxide-semiconductor
- the abstracted digital RGB camera system 100 is depicted including a processor 121 , memory 122 and display 123 ; however, further embodiments can include any suitable set of components and any of the processor 121 , memory 122 and/or display 123 can be present in plurality or absent in some embodiments.
- the memory 122 can store instructions for performing any of the methods described herein and can store digital images 130 , 140 as discussed herein.
- the display 123 can be configured to display digital images 130 , 140 , and in various embodiments, and can comprise a Liquid Crystal Display (LCD); Light Emitting Diode (LED) display, Organic Light Emitting Diode (OLED) display, Digital Light Projection (DLP) display, or the like.
- LCD Liquid Crystal Display
- LED Light Emitting Diode
- OLED Organic Light Emitting Diode
- DLP Digital Light Projection
- the abstracted digital RGB camera system 100 is depicted using a Single-Lens Reflex (SLR) lens; however, in various embodiments, any suitable lens system can be used, including a pin-hole lens, a biological lens, a simple convex glass lens, or the like. Additionally, lenses in accordance with various embodiments can be configured with certain imaging properties including a macro lens, zoom lens, telephoto lens, fisheye lens, wide-angle lens, or the like.
- SLR Single-Lens Reflex
- the digital RGB camera system 100 can be used to detect light in the visible spectrum and generate images therefrom, in some embodiments, the digital RGB camera system 100 can be adapted to detect light of other wavelengths including, gamma rays, X-rays, ultraviolet rays, infrared light, micro waves, radio waves, or the like. Additionally, a digital RGB camera system 100 can be adapted for still images, video images, and three-dimensional images, or the like. Accordingly, the present disclosure should not be construed to be limiting to the example digital RGB camera system 100 shown and described herein.
- FIG. 3 a is a flow chart of a method 300 for generating, processing and presenting a digital image in accordance with an embodiment.
- the method begins at sub-method 305 , where a mosaiced image 130 (shown in FIG. 1 a ) is obtained.
- the mosaiced image 130 is demosaiced to generate an RGB triplet image 140 (shown in FIG. 1 b ), and this RGB triplet image 140 is stored, at block 335 .
- the demosaiced image is presented, which can comprise presentation on the display 123 of the camera device 120 or presentation on any other suitable display or screen, via any suitable rendering, or the like.
- FIG. 3 b is a flow chart of a sub-method 305 A for generating a mosaiced digital image 130 .
- the method 305 A begins, at block 310 , where light 101 (shown in FIG. 1 a ) is received through lens 105 (shown in FIG. 1 a ).
- light 101 is received through mosaicing filter 110 (shown in FIG. 1 a ), and, at block 320 , light 101 is received at image sensor array 115 (shown in FIG. 1 a ).
- a mosaiced image 130 is generated and stored.
- the mosaiced image 130 can be stored in the memory 122 , which can include a buffer or other suitable memory device.
- a mosaiced image 130 may be obtained from a memory, downloaded from the Internet, received from a server, or the like.
- FIG. 4 is a flow chart of a sub-method 400 A for demosaicing an image.
- the sub-method 400 A is depicted as sub-method block 400 in FIG. 3 a .
- the method 400 A begins, at block 410 , where a noise level index is obtained.
- the noise level index can be an external parameter that is calculated based on a totality of a digital camera's ISO sensitivity value (International Organization for Standardization, Geneva, Switzerland), the camera's Automatic Gain Control (AGC) indexes, the camera's Digital Gain Control (DGC)index, or the like.
- ISO sensitivity value International Organization for Standardization, Geneva, Switzerland
- AGC Automatic Gain Control
- DGC Digital Gain Control
- a threshold value can be determined manually based on a specific hardware and settings configurations. For example, a user can test a given configuration of a digital camera with images having different noise levels and visually or analytically determine a threshold where bilinear demosaicing is preferable over adaptive demosaicing and set a threshold level where one demosaicing method is chosen over another.
- an optimal threshold value can be calculated by mass qualitative and quantitative experiments on a given camera. For example, one determined optimal threshold value can be 0.76.
- sub-method 400 A continues to sub-method block 500 , where adaptive demosaicing is performed.
- An example of such a method 500 is shown and described in more detail herein in relation to FIG. 5 .
- the method 400 A continues to block 430 , where bilinear demosaicing is performed.
- Bilinear demosaicing can be performed in any suitable way.
- bilinear demosaicing uses correlations with neighboring pixels to obtain the color intensities of the other colors.
- the following interpolation method can be used that relies on the values of green pixels that are nearest neighbors in vertical and/or horizontal directions.
- interpolation can be based on surrounding values. Accordingly, calculating a horizontal gradient ⁇ H and a vertical gradient ⁇ V can be used to select the interpolation direction. For example, pixel R 5 of FIG. 2 can have different slopes in these different directions:
- the vertical interpolation values can be selected.
- the green value at R 5 can be calculated using vertical interpolation by averaging the values of the nearest neighbors in the vertical direction or by calculating (G 4 +G 6 )/2.
- the horizontal interpolation values can be selected.
- the green value at R 5 can be calculated using horizontal interpolation by averaging the values of the nearest neighbors in the horizontal direction or by calculating (G 2 +G 8 )/2.
- the four nearest neighbors can be averaged and used as the interpolation value.
- the four nearest neighbor values can be averaged to obtain the green value at R 5 by calculating (G 2 +G 8 +G 4 +G 6 )/4.
- FIG. 5 is a flow chart of a sub-method 500 for adaptive demosaicing of an image, which is a portion of the method depicted in FIG. 4 .
- the sub-method 500 begins, at loop block 505 , for all pixel locations 130 (see FIG. 1 b ).
- ⁇ V and ⁇ H values for the given pixel location 130 are determined based on the known color for that pixel location, and at block 515 an interpolation direction for the pixel location 130 is selected.
- computing the ⁇ V and ⁇ H values for known-red pixel location R 5 can be performed as follows.
- other suitable methods of determining whether to use vertical or horizontal interpolation can be used, and such methods can be simple or complex.
- the method described above uses one nearest-neighbor pixel in each direction.
- two or more nearest neighbors in each direction can be used. Multiple methods may be used at the same time or combined in some embodiments.
- computing ⁇ V and ⁇ H values for pixel R 5 can be performed as follows.
- ⁇ V and ⁇ H values for pixel R 5 can be performed as follows.
- the selection method can be based on weighing time and internal storage costs relative to the capabilities of the camera device 120 (see FIG. 1 a ), or other device that may be processing images.
- a loop begins for all unknown green pixels 1421 .
- the vertical or horizontal interpolation values for the given unknown green pixel 1421 are determined based on the selected direction, and at loop block 530 , the loop for all unknown green pixels 1421 ends.
- the loop for all pixel locations 130 ends in block 535 .
- the horizontal green interpolation values can be determined as follows. Let R(•), G(•), and B(•) respectively represent the red, green, and blue pixels on the Bayer map. Suppose that G(x) ⁇ R(x) changes gradually; in other words, the high frequency portion of this differential image changes more rapidly than G(x).
- a horizontal interpolation value RGRG respective rows in the Bayer map (e.g., the row of pixels [R 1 , G 2 , R 5 , G 8 , R 9 ] labeled 205 in FIG. 2 ) are used. In row 205 , for example, the even numbered green pixels and odd numbered red pixels are all given quantities.
- a random signal be represented as P(x), and let P 0 (x) and P 1 (x) be the even and odd values of the known signals respectively.
- G 0 (x) and G 1 (x) are the even and odd signals respectively of G(x)
- G 0 (x) is known and can be directly obtained from the Bayer data, but G 1 (x) cannot.
- G 2 and G 8 are known because these pixels already exclusively contain green pixel data.
- pixels R 1 , R 5 and R 9 only contain red values, and therefore green values are unknown at these pixel locations.
- G(x) G 0 (x)+G 1 (x), where all G 0 (x) values are already known (e.g., ‘G’ labeled pixels 142 K in green portion 142 , shown in FIG. 1 b ).
- G 1 (x) values e.g., blank pixels 1421 in green portion 142 , shown in FIG. 1 b
- this is approximately a lazy wavelet structure.
- G(x) has passed through a linear filter h.
- G(x) h(x)*G(x).
- G(x) is a band-limited signal and that h(x) is an ideal low-pass filter, the following can be derived.
- G ( x ) h 0 ( x )* G 0 ( x )+ h 1 ( x )* G 0 ( x )+ h 0 ( x )* G 1 ( x )+ h 1 ( x )* G 1 ( x )
- low-pass filter h(x) has the following properties:
- G ⁇ ( x ) ⁇ G 0 ⁇ ( x ) , ⁇ for ⁇ ⁇ x ⁇ ⁇ is ⁇ ⁇ even h 1 ⁇ ( x ) * G 0 ⁇ ( x ) + h 0 ⁇ ( x ) * G 1 ⁇ ( x ) for ⁇ ⁇ x ⁇ ⁇ is ⁇ ⁇ odd ⁇
- interpolation of unknown pixel values G 1 (x) in an RGRGR row can be done using known values from the adjacent green pixels G 0 (x) and from the known red pixel values R 1 (x).
- interpolation of GBGBG rows can similarly be done using known values from the adjacent green pixels G 1 (x) and from the known blue pixel values B 0 (x). This same analysis can be applied to RGRGR columns or GBGBG columns to determine vertical green pixel interpolation values.
- ⁇ circumflex over ( ) ⁇ represents the Fourier transform and w(•) is the weighting function.
- Such optimization to obtain a set value of filter h(x) can be done in various suitable ways, including but not limited to using the Matlab optimization toolbox (The MathWorks, Inc., Natick, Mass.), or the like.
- impact factor ⁇ is set to 1, however, in further embodiments, impact factor ⁇ can take any other suitable value.
- loop block 540 begins a loop for all unknown red and blue pixel values 1411 , 1431 , and in block 545 the horizontal or vertical interpolation values for unknown red and/or blue values 1411 , 1431 are calculated based on the selected interpolation direction for the pixel location 130 .
- the loop for all unknown red and blue pixel values 1411 , 1431 ends.
- the method 500 continues by finding vertical or horizontal interpolation values for each of the unknown blue and/or red values.
- many values for the red and blue portions 141 , 143 of the RGB triple image 140 are still unknown (i.e., pixels 1411 and 1431 ), and therefore can be interpolated.
- pixels 141 K marked with an ‘R’ are known from the mosaiced image 130
- the blank pixels 1411 are not known and can be interpolated.
- pixels 143 K marked with a ‘B’ are known from the mosaiced image 130
- the blank pixels 1431 are not known and can be interpolated.
- interpolation of the unknown red and/or blue pixel values 1411 , 1431 can be performed as follows. For example, as discussed above an assumption is made that the differential image R-G is band limited and has a frequency substantially less than the Nyquist sampling rate. Accordingly, the differential image R-G can be reconstructed through the already-known differential image R S ⁇ G S . Similarly, differential image B-G can be reconstructed through the already-known differential image B S ⁇ G S . Accordingly, the following equations can respectively be used to calculate R-G and B-G, where L is a low-pass filter.
- L can be any suitable low-pass filter, or other type of filter.
- a median filter can be applied to the completed triplet RGB image 140 .
- the method 500 is done.
- the interpolation method discussed above can produce some false-coloring or other undesirable effects.
- a median filter can be applied to remove or remediate false-coloring or other undesirable effects.
- application of a median filter can provide the benefit of suppressing small changes in the image while preserving details.
- a median filter can be applied iteratively any number of desirable times to produce a desired effect on the image.
- the adaptive demosaicing methods described herein were used on a color porcupine moire test target image and compared to other demosaicing methods used on the same test target image. For example, tests were performed using bilinear demosaicing; Variable Number of Gradients (VNG) demosaicing; Patterned Pixel Grouping (PPG) demosaicing; DCB demosaicing (www.linuxphoto.org); Adaptive Filtered Demosaicing (AFD); and Variance of Color Differences (VCD) demosaicing.
- VNG Variable Number of Gradients
- PPG Patterned Pixel Grouping
- DCB demosaicing www.linuxphoto.org
- AFD Adaptive Filtered Demosaicing
- VCD Variance of Color Differences
- module 1 included steps of G interpolation in the horizontal and vertical directions and R and B interpolation in only the horizontal direction; module 2 included interpolation of R and B in the vertical direction; module 3 included selection of horizontal or vertical interpolation based on calculated ⁇ H and ⁇ V values; and module 4 included preparation for median filtering.
- the table below shows the results and illustrates that the present example embodiments described herein can be performed with relatively minimal computational overhead. This can be desirable regardless of whether the present methods are performed via hardware and/or software.
- Module 1 Module 2
- Module 3 Module 4 (not do) Additions 14*64*64 2*64*62 1*64*64 0
- FIG. 6 a depicts a graph 600 of the SNR of each mosaiced image compared to the Peak Signal to Noise Ratio (PSNR) of the demosaiced image and
- FIG. 6 b shows a table 605 of the results depicted in the graph 600 of FIG. 6 a .
- the images and data indicate that the presently described embodiments provide for robust demosaicing at various SNR levels.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Color Television Image Signal Generators (AREA)
Abstract
A method of adaptive demosaicing of a mosaiced image includes receiving the mosaiced image having a mosaic pattern with a first color, a second color, and a third color, obtaining a noise level index for the mosaiced image, determining whether the noise level index is greater than a threshold value, and, in response to the noise level index being greater than the threshold value, performing an adaptive demosaicing on the mosaiced image to generate an adaptively demosaiced image. The adaptive demosaicing includes interpolating values of a portion of unknown pixels of the first color in a horizontal or vertical direction, interpolating values of a portion of unknown pixels of the second color in a horizontal or vertical direction, and interpolating values of a portion of unknown pixels of the third color in a horizontal or vertical direction.
Description
- This application is a continuation application of application Ser. No. 15/446,033, filed on Mar. 1, 2017, which is a continuation application of International Application No. PCT/CN2014/086558, filed on Sep. 15, 2014, the entire contents of both of which are incorporated herein by reference.
- The present disclosure relates generally to imaging and image processing and more particularly, but not exclusively, to systems and methods for image demosaicing.
- Conventional digital cameras acquire images by using light image sensor arrays. However, prior to light entering these sensor arrays, the light first passes through a color filter array (CFA), allowing only one wavelength of the light to enter any given sensor pixel of the sensor array. This results in a mosaic image where each pixel only contains one color—typically only red, green or blue. The process of converting this mosaic image to a full-color image is called “demosaicing.”
- Various demosaicing methods exist in the art; however, many of these methods result in undesirable effects in the converted image including false color artifacts, such as chromatic aliases, zippering effects (abrupt unnatural changes of intensity over a number of neighboring pixels), purple fringing and loss of image resolution.
- Additionally, most conventional demosaicing methods fail to provide adequate image conversion for images that range from high to low noise. Accordingly, such demosaicing methods are not robust enough to be used on a variety of images.
- Other conventional demosaicing methods have large computational complexity, which results in undesirably slow image processing speeds and inability for fast processing using hardware and/or software available on a conventional portable camera system.
- In view of the foregoing, a need exists for an improved image demosaicing system and method in an effort to overcome the aforementioned obstacles and deficiencies of conventional image demosaicing systems and methods.
- In accordance with the present disclosure, there is provided a method of adaptive demosaicing of a mosaiced image, comprising receiving the mosaiced image having a mosaic pattern with a first, second and third color, and demosaicing the mosaiced image to generate an adaptively demosaiced image. The adaptive demosaicing comprises interpolating values of a portion of unknown pixels of the first color in a horizontal or vertical direction, interpolating values of a portion of unknown pixels of the second color in a horizontal or vertical direction, and interpolating values of a portion of unknown pixels of the third color in a horizontal or vertical direction.
- Also in accordance with the present disclosure, there is provided a method of adaptive demosaicing of a mosaiced image, comprising receiving the mosaiced image having a mosaic pattern with a first, second and third color, obtaining a noise level index for the mosaiced image; determining whether the noise level index is greater than a threshold value, if the noise level index is not greater than the threshold value, then performing a bilinear demosaicing on the mosaiced image to generate a bilinearly demosaiced image, and if the noise level index is greater than the threshold value, then performing an adaptive demosaicing on the mosaiced image to generate an adaptively demosaiced image. The adaptive demosaicing comprises interpolating values of a portion of unknown pixels of the first color in a horizontal or vertical direction, interpolating values of a portion of unknown pixels of the second color in a horizontal or vertical direction, and interpolating values of a portion of unknown pixels of the third color in a horizontal or vertical direction.
- Also in accordance with the present disclosure, there is provided a camera system, comprising a lens, a mosaicing filter, an image sensor array configured to generate a mosaiced image comprising a mosaic pattern having a first, second and third color and based on sensed light that passes through the lens and the mosaicing filter, and a processing module configured to demosaic the mosaiced image via interpolation of unknown pixels and generate a demosaiced image by interpolating values of a portion of unknown pixels of the first color in a horizontal or vertical direction, interpolating values of a portion of unknown pixels of the second color in a horizontal or vertical direction, and interpolating values of a portion of unknown pixels of the third color in a horizontal or vertical direction.
- Also in accordance with the present disclosure, there is provided a camera system comprising a lens, a mosaicing filter, an image sensor array operable to generate a mosaiced image comprising a mosaic pattern having a first, second and third color and based on sensed light that passes through the lens and mosaicing filter, and a processing module configured to demosaic the mosaiced image via interpolation of unknown pixel values and configured to generate a demosaiced image by determining a noise level index for the mosaiced image, determining whether the noise level index is greater than a threshold value, if the noise level index is not greater than the threshold value, then performing a bilinear demosaicing on the mosaiced image to generate a bilinearly demosaiced image, and if the noise level index is greater than the threshold value, then performing an adaptive demosaicing on the mosaiced image to generate an adaptively demosaiced image. The adaptive demosaicing comprises interpolating values of a portion of unknown pixels of the first color in a horizontal or vertical direction, interpolating values of a portion of unknown pixels of the second color in a horizontal or vertical direction, and interpolating values of a portion of unknown pixels of the third color in a horizontal or vertical direction.
-
FIG. 1a is an exemplary drawing illustrating an embodiment of a digital camera system for capturing a digital image, wherein the digital camera system includes a lens, a mosaicing filter, a sensor array and a camera device. -
FIG. 1b is an exemplary drawing illustrating exemplary mosaiced RGB image data being converted into triplet RGB image data through interpolation demosaicing. -
FIG. 2 is an exemplary drawing illustrating an example portion of a mosaiced RGB image. -
FIG. 3a is a flow chart of a method for generating, processing and presenting a digital image. -
FIG. 3b is a flow chart of a sub-method for obtaining a mosaiced digital image, which is a portion of the method depicted inFIG. 3 a. -
FIG. 4 is a flow chart of a sub-method for adaptive demosaicing an image, which is a portion of the method depicted inFIG. 3 a. -
FIG. 5 is a flow chart of a sub-method for adaptive demosaicing of an image, which is a portion of the method depicted inFIG. 4 . -
FIG. 6a depicts a graph of the Signal to Noise Ratio (SNR) of a plurality of mosaiced images compared to the Peak Signal to Noise Ratio (PSNR) of the demosaiced images. -
FIG. 6b shows a table of the results depicted in the graph ofFIG. 6 a. - It should be noted that the figures are not drawn to scale and that elements of similar structures or functions are generally represented by like reference numerals for illustrative purposes throughout the figures. It also should be noted that the figures are only intended to facilitate the description of the exemplary embodiments. The figures do not illustrate every aspect of the described embodiments and do not limit the scope of the present disclosure.
- Since currently-available demosaicing systems and methods fail to provide for optimal image interpolation and require large software or hardware overhead, improved demosaicing systems and methods that provide for high quality image processing while operating at various Signal to Noise Ratios (SNRs), and requiring minimal computational time and overhead, can prove desirable and provide a basis for a wide range of digital imaging applications, such as digital camera systems, and the like. This result can be achieved, according to one embodiment disclosed herein, by a
digital camera system 100 as illustrated inFIG. 1 a. - Turning to
FIG. 1a , the digitalRGB camera system 100 is abstractly shown including alens 105, a mosaicing filter 110, asensor array 115 and acamera device 120. Thecamera device 120 is operably connected to thesensor array 115, and comprises a processor 121 (or processing module), amemory 122 and adisplay 123. In various embodiments, theRGB camera system 100 can be disposed in a suitable camera housing (not shown). - As illustrated in
FIG. 1a ,light 101 enters thelens 105, which focuses thelight 101 on the mosaicing filter 110. The mosaicing filter 110 can comprise a plurality of translucent red pixels, green pixels and blue pixels 111R, 111G, 111B that are arranged in a matrix. Thelight 101 passes through the mosaicing filter 110 and onto thesensor array 115 having a plurality of corresponding sensor pixels 116 that convert the received light into a digital signal. Thesensor array 115 generates a mosaiceddigital image 130 as depicted inFIG. 1b . Staying withFIG. 1a , the mosaicing filter 110 includes a pattern of translucent red pixels, green pixels and blue pixels 111R, 111G, 111B to substantially filter out all other wavelengths of light such that each sensor pixel 116 only records a value for red, blue or green light. - This mosaiced
digital image 130 can be converted to a conventionalRGB triplet image 140 through interpolation as described herein. For example, each pixel in a conventional RGB image comprises red, green and blue components that are combined to define the color of that pixel from a full spectrum of visible light. Accordingly, a conventionalRGB triplet image 140 comprises a red portion 141, agreen portion 142, and ablue portion 143, that collectively define a full-color RGB image. - To convert the mosaiced
digital image 130 to aRGB triplet image 140, missing information can be added through a process of interpolation. Stated another way, the mosaiceddigital image 130 only has one-third of the total information that will be present in theRGB triplet image 140 when formed, and therefore this missing information can added by inferring its value based on the pixels around it. For example, as shown inFIG. 1b , the mosaiceddigital image 130 comprises a 9×9 array of pixels where values of each pixel are known for either a red, green or blue value. - When converting to the
RGB triplet image 140, however, a 9×9 image for each of the red, green andblue portions pixels 141K signified by the ‘R’ in a given location in the red portion 141) from the value being present in the mosaiceddigital image 130. However, the remaining pixel values (pixels 1411 signified by the blank pixel in a given location in the red portion 141) can be interpolated so that a full 9×9 array of red values can be present for the red portion 141. Similarly, such interpolation can also occur for thegreen portion 142 and theblue portion 143. Thegreen portion 142 includes knownpixels 142K and includesunknown pixels 1421 that can be interpolated. Theblue portion 143 includes knownpixels 143K and includes unknown pixels 1431 that can be interpolated. -
FIGS. 1a and 1b depict the mosaicing filter 110 and captured mosaiceddigital image 130 as being in a Bayer filter pattern, where there are two green pixels 111G for every red or blue pixel 111R, 111B, with offset alternating rows of R-G and B-G alternating pixels.FIG. 2 also depicts a mosaiced digital image having a Bayer filter pattern, andFIG. 2 is referenced in more detail in in various examples throughout the following disclosure. Such a Bayer filter pattern is used conventionally in digital imaging; however, in some embodiments, the methods of demosaicing and/or interpolation can be applied to other filter patterns that comprise two or more pixel colors in various suitable pattern arrangements. For example, in some embodiments, it may be desirable to capture images with a filter where there are two red pixels 111R for every green or blue pixel 111G, 111B or where there are four pixel colors (e.g., CMYK). Accordingly, the present disclosure is not limited to only RGB imaging, and can instead be applied to various imaging methods, systems and protocols. - The abstracted digital
RGB camera system 100 is depicted including aprocessor 121,memory 122 anddisplay 123; however, further embodiments can include any suitable set of components and any of theprocessor 121,memory 122 and/or display 123 can be present in plurality or absent in some embodiments. In one embodiment, thememory 122 can store instructions for performing any of the methods described herein and can storedigital images display 123 can be configured to displaydigital images - The abstracted digital
RGB camera system 100 is depicted using a Single-Lens Reflex (SLR) lens; however, in various embodiments, any suitable lens system can be used, including a pin-hole lens, a biological lens, a simple convex glass lens, or the like. Additionally, lenses in accordance with various embodiments can be configured with certain imaging properties including a macro lens, zoom lens, telephoto lens, fisheye lens, wide-angle lens, or the like. - Additionally, while the digital
RGB camera system 100 can be used to detect light in the visible spectrum and generate images therefrom, in some embodiments, the digitalRGB camera system 100 can be adapted to detect light of other wavelengths including, gamma rays, X-rays, ultraviolet rays, infrared light, micro waves, radio waves, or the like. Additionally, a digitalRGB camera system 100 can be adapted for still images, video images, and three-dimensional images, or the like. Accordingly, the present disclosure should not be construed to be limiting to the example digitalRGB camera system 100 shown and described herein. -
FIG. 3a is a flow chart of amethod 300 for generating, processing and presenting a digital image in accordance with an embodiment. The method begins atsub-method 305, where a mosaiced image 130 (shown inFIG. 1a ) is obtained. Atsub-method block 400, themosaiced image 130 is demosaiced to generate an RGB triplet image 140 (shown inFIG. 1b ), and thisRGB triplet image 140 is stored, at block 335. Atblock 340, the demosaiced image is presented, which can comprise presentation on thedisplay 123 of thecamera device 120 or presentation on any other suitable display or screen, via any suitable rendering, or the like. -
FIG. 3b is a flow chart of a sub-method 305A for generating a mosaiceddigital image 130. Themethod 305A begins, atblock 310, where light 101 (shown inFIG. 1a ) is received through lens 105 (shown inFIG. 1a ). Atblock 315, light 101 is received through mosaicing filter 110 (shown inFIG. 1a ), and, atblock 320, light 101 is received at image sensor array 115 (shown inFIG. 1a ). Atblock 325, amosaiced image 130 is generated and stored. For example, themosaiced image 130 can be stored in thememory 122, which can include a buffer or other suitable memory device. In further embodiments, there may be various othersuitable methods 300 for obtaining amosaiced image 130. For example, amosaiced image 130 may be obtained from a memory, downloaded from the Internet, received from a server, or the like. -
FIG. 4 is a flow chart of a sub-method 400A for demosaicing an image. The sub-method 400A is depicted assub-method block 400 inFIG. 3a . Themethod 400A begins, atblock 410, where a noise level index is obtained. In various embodiments, the noise level index can be an external parameter that is calculated based on a totality of a digital camera's ISO sensitivity value (International Organization for Standardization, Geneva, Switzerland), the camera's Automatic Gain Control (AGC) indexes, the camera's Digital Gain Control (DGC)index, or the like. - In
decision block 420, a determination is made whether the noise level index is greater than a threshold value. In some embodiments, such a threshold value can be determined manually based on a specific hardware and settings configurations. For example, a user can test a given configuration of a digital camera with images having different noise levels and visually or analytically determine a threshold where bilinear demosaicing is preferable over adaptive demosaicing and set a threshold level where one demosaicing method is chosen over another. In some embodiments, an optimal threshold value can be calculated by mass qualitative and quantitative experiments on a given camera. For example, one determined optimal threshold value can be 0.76. - If the noise level is greater than the threshold value, the sub-method 400A continues to
sub-method block 500, where adaptive demosaicing is performed. An example of such amethod 500 is shown and described in more detail herein in relation toFIG. 5 . However, if the noise level is less than the threshold value, themethod 400A continues to block 430, where bilinear demosaicing is performed. - Bilinear demosaicing can be performed in any suitable way. For example, in one embodiment, bilinear demosaicing uses correlations with neighboring pixels to obtain the color intensities of the other colors. Referring again to
FIG. 2 , to obtain a green color value at position R5, the following interpolation method can be used that relies on the values of green pixels that are nearest neighbors in vertical and/or horizontal directions. -
- For example, given that the three color channels R, G, B have correlations, and given that neighboring pixel intensities often change smoothly, interpolation can be based on surrounding values. Accordingly, calculating a horizontal gradient ΔH and a vertical gradient ΔV can be used to select the interpolation direction. For example, pixel R5 of
FIG. 2 can have different slopes in these different directions: -
- In the embodiment discussed above, where ΔH>ΔV the vertical interpolation values can be selected. For example, referring to
FIG. 2 , the green value at R5 can be calculated using vertical interpolation by averaging the values of the nearest neighbors in the vertical direction or by calculating (G4+G6)/2. - On the other hand, where ΔH<ΔV the horizontal interpolation values can be selected. For example, referring to
FIG. 2 , the green value at R5 can be calculated using horizontal interpolation by averaging the values of the nearest neighbors in the horizontal direction or by calculating (G2+G8)/2. - However, where ΔH=ΔV the four nearest neighbors can be averaged and used as the interpolation value. For example, referring to
FIG. 2 , the four nearest neighbor values can be averaged to obtain the green value at R5 by calculating (G2+G8+G4+G6)/4. -
FIG. 5 is a flow chart of a sub-method 500 for adaptive demosaicing of an image, which is a portion of the method depicted inFIG. 4 . The sub-method 500 begins, atloop block 505, for all pixel locations 130 (seeFIG. 1b ). Inblock 510, ΔV and ΔH values for the givenpixel location 130 are determined based on the known color for that pixel location, and atblock 515 an interpolation direction for thepixel location 130 is selected. - For example, and referring to
FIG. 2 , computing the ΔV and ΔH values for known-red pixel location R5, can be performed as follows. -
ΔH=|(R 1 +R 9)/2−R 5)| -
ΔV=|(R 3 +R 7)/2−R 5)| - Obtaining ΔV and ΔH values for each pixel can be used to determine if horizontal or vertical interpolation should be used. For example, in some embodiments, a determination is made that horizontal interpolation should be selected if ΔH<ΔV. On the other hand, a determination is made that vertical interpolation should be selected if ΔH>ΔV. Where ΔH=ΔV an arbitrary selection can be made or the four nearest neighbor values can be averaged to obtain the value.
- In further embodiments, other suitable methods of determining whether to use vertical or horizontal interpolation can be used, and such methods can be simple or complex. For example, the method described above uses one nearest-neighbor pixel in each direction. However, in some embodiments, two or more nearest neighbors in each direction can be used. Multiple methods may be used at the same time or combined in some embodiments.
- In some embodiments, it may be desirable to estimate and identify potential edges so as to avoid interpolating across such edged. For example, referring to
FIG. 2 , computing ΔV and ΔH values for pixel R5, can be performed as follows. -
ΔH=|(G 2 −G 8)| -
ΔV=|(G 4 −G 6)| - In some embodiments, it may be desirable to use a Laplacian operator for edge detection and/or detection of rapid intensity changes. For example, referring to
FIG. 2 , computing ΔV and ΔH values for pixel R5, can be performed as follows. -
ΔH=|(G 2 −G 8)|+|R 5 −R 1 +R 5 −R 9| -
ΔV=|(G 4 −G 6)|+|R 5 −R 3 +R 5 −R 7| - In various embodiments, the selection method can be based on weighing time and internal storage costs relative to the capabilities of the camera device 120 (see
FIG. 1a ), or other device that may be processing images. - At
block 520, a loop begins for all unknowngreen pixels 1421. Atblock 525, the vertical or horizontal interpolation values for the given unknowngreen pixel 1421 are determined based on the selected direction, and atloop block 530, the loop for all unknowngreen pixels 1421 ends. The loop for allpixel locations 130 ends in block 535. - For example, in some embodiments, the horizontal green interpolation values can be determined as follows. Let R(•), G(•), and B(•) respectively represent the red, green, and blue pixels on the Bayer map. Suppose that G(x)−R(x) changes gradually; in other words, the high frequency portion of this differential image changes more rapidly than G(x). For computation of a horizontal interpolation value RGRG, respective rows in the Bayer map (e.g., the row of pixels [R1, G2, R5, G8, R9] labeled 205 in
FIG. 2 ) are used. Inrow 205, for example, the even numbered green pixels and odd numbered red pixels are all given quantities. Let a random signal be represented as P(x), and let P0(x) and P1(x) be the even and odd values of the known signals respectively. -
- Where G0(x) and G1(x) are the even and odd signals respectively of G(x), then G0(x) is known and can be directly obtained from the Bayer data, but G1(x) cannot. For example, referring to
FIG. 2 , androw 205, the green values of pixels G2 and G8 are known because these pixels already exclusively contain green pixel data. On the other hand, pixels R1, R5 and R9 only contain red values, and therefore green values are unknown at these pixel locations. - Accordingly, G(x)=G0(x)+G1(x), where all G0(x) values are already known (e.g., ‘G’ labeled
pixels 142K ingreen portion 142, shown inFIG. 1b ). However, G1(x) values (e.g.,blank pixels 1421 ingreen portion 142, shown inFIG. 1b ) are initially unknown and can be interpolated. Accordingly, this is approximately a lazy wavelet structure. - To obtain currently unknown values G1(x), assume that G(x) has passed through a linear filter h. In other words, G(x)=h(x)*G(x). Assuming G(x) is a band-limited signal and that h(x) is an ideal low-pass filter, the following can be derived.
-
G(x)=h 0(x)*G 0(x)+h 1(x)*G 0(x)+h 0(x)*G 1(x)+h 1(x)*G 1(x) - Accordingly low-pass filter h(x) has the following properties:
-
h 1(x)*G 0(x)=0, where x is even; -
h 0(x)*G 1(x)=0, where x is even; -
h 0(x)*G 0(x)=0, where x is odd; and -
h 1(x)*G 1(x)=0, where x is odd. - The above equations can therefore be rewritten as follows.
-
- Using this formula, it is therefore possible to interpolate all missing green pixel values using G0(x) and R1(x). In other words, interpolation of unknown pixel values G1(x) in an RGRGR row can be done using known values from the adjacent green pixels G0(x) and from the known red pixel values R1(x). For interpolation of GBGBG rows can similarly be done using known values from the adjacent green pixels G1(x) and from the known blue pixel values B0(x). This same analysis can be applied to RGRGR columns or GBGBG columns to determine vertical green pixel interpolation values.
- Obtaining a zero phase Finite Impulse Response (FIR) filter h(x) that fulfills the constraints discussed above can be done by solving the following optimization problem:
- Where {circumflex over ( )} represents the Fourier transform and w(•) is the weighting function. Such optimization to obtain a set value of filter h(x) can be done in various suitable ways, including but not limited to using the Matlab optimization toolbox (The MathWorks, Inc., Natick, Mass.), or the like.
- To consider the effects of adjacent red and green pixels on the interpolated green value, it is possible to introduce impact factor δ to determine h as follows.
-
h=[0,0.5,0,0.5,0]+[−0.25,0,0.5,0,−0.25]*6 - In some embodiments, impact factor δ is set to 1, however, in further embodiments, impact factor δ can take any other suitable value.
- Returning to the
method 500 ofFIG. 5 ,loop block 540 begins a loop for all unknown red and blue pixel values 1411, 1431, and inblock 545 the horizontal or vertical interpolation values for unknown red and/or blue values 1411, 1431 are calculated based on the selected interpolation direction for thepixel location 130. Atloop block 550, the loop for all unknown red and blue pixel values 1411, 1431 ends. - For example, with all green values previously known or interpolated in a horizontal or vertical direction, the
method 500 continues by finding vertical or horizontal interpolation values for each of the unknown blue and/or red values. Referring toFIG. 1b many values for the red andblue portions 141, 143 of the RGBtriple image 140 are still unknown (i.e., pixels 1411 and 1431), and therefore can be interpolated. For example, in the red portion 141pixels 141K marked with an ‘R’ are known from themosaiced image 130, whereas the blank pixels 1411 are not known and can be interpolated. Similarly, in theblue portion 143,pixels 143K marked with a ‘B’ are known from themosaiced image 130, whereas the blank pixels 1431 are not known and can be interpolated. - In various embodiments, interpolation of the unknown red and/or blue pixel values 1411, 1431 can be performed as follows. For example, as discussed above an assumption is made that the differential image R-G is band limited and has a frequency substantially less than the Nyquist sampling rate. Accordingly, the differential image R-G can be reconstructed through the already-known differential image RS−GS. Similarly, differential image B-G can be reconstructed through the already-known differential image BS−GS. Accordingly, the following equations can respectively be used to calculate R-G and B-G, where L is a low-pass filter.
-
R−G=L*(R S −G S) -
B−G=L*(B S −G S) - Accordingly the unknown red and/or blue values for a given
pixel location 130 can be interpolated in a horizontal or vertical direction. In one embodiment, L can be a low-pass filter, L=[¼ ½ ¼; ½ 1½; ¼ ½ ¼]. However in further embodiments, L can be any suitable low-pass filter, or other type of filter. - Returning again to the
method 500 ofFIG. 5 , inblock 555, a median filter can be applied to the completedtriplet RGB image 140. Inblock 599, themethod 500 is done. For example, in various embodiments the interpolation method discussed above can produce some false-coloring or other undesirable effects. Given an assumption of gradual rate of change in R-G and B-G differential images, a median filter can be applied to remove or remediate false-coloring or other undesirable effects. For example in some embodiments, application of a median filter can provide the benefit of suppressing small changes in the image while preserving details. In some embodiments, a median filter can be applied iteratively any number of desirable times to produce a desired effect on the image. - The following examples are included to demonstrate exemplary embodiments. Those skilled in the art, however, should in light of the disclosure, appreciate that many changes can be made in the specific embodiments which are disclosed and still obtain a like or similar result without departing from the spirit and scope of the disclosure.
- The adaptive demosaicing methods described herein were used on a color porcupine moire test target image and compared to other demosaicing methods used on the same test target image. For example, tests were performed using bilinear demosaicing; Variable Number of Gradients (VNG) demosaicing; Patterned Pixel Grouping (PPG) demosaicing; DCB demosaicing (www.linuxphoto.org); Adaptive Filtered Demosaicing (AFD); and Variance of Color Differences (VCD) demosaicing. The test target images processed using adaptive demosaicing methods described herein showed better color restoration effects and better false color removal abilities compared to the other methods.
- The computational costs of the example embodiments discussed above were calculated (not including median filtering) in an example of analyzing a 64×64 signal block, giving statistics about the number of addition and multiplication operations for modules embodying various steps of the present methods. For example, module 1 included steps of G interpolation in the horizontal and vertical directions and R and B interpolation in only the horizontal direction; module 2 included interpolation of R and B in the vertical direction; module 3 included selection of horizontal or vertical interpolation based on calculated ΔH and ΔV values; and module 4 included preparation for median filtering. The table below (without median filtering) shows the results and illustrates that the present example embodiments described herein can be performed with relatively minimal computational overhead. This can be desirable regardless of whether the present methods are performed via hardware and/or software.
-
Module 1 Module 2 Module 3 Module 4 (not do) Additions 14*64*64 2*64*62 1*64*64 0 Multiplications 14*64*64 0 0 0 - Mosaiced images of the exterior of a building at five different noise levels were demosaiced using the example embodiments described herein. The Signal to Noise Ratio (SNR) of the five mosaiced images was 10, 20, 40, 60 and 100 respectively.
FIG. 6a depicts agraph 600 of the SNR of each mosaiced image compared to the Peak Signal to Noise Ratio (PSNR) of the demosaiced image andFIG. 6b shows a table 605 of the results depicted in thegraph 600 ofFIG. 6a . The images and data indicate that the presently described embodiments provide for robust demosaicing at various SNR levels. - The described embodiments are susceptible to various modifications and alternative forms, and specific examples thereof have been shown by way of example in the drawings and are herein described in detail. It should be understood, however, that the described embodiments are not to be limited to the particular forms or methods disclosed, but to the contrary, the present disclosure is to cover all modifications, equivalents, and alternatives.
Claims (20)
1. A method of adaptive demosaicing of a mosaiced image comprising:
receiving the mosaiced image having a mosaic pattern with a first color, a second color, and a third color;
obtaining a noise level index for the mosaiced image;
determining whether the noise level index is greater than a threshold value; and
in response to the noise level index being greater than the threshold value, performing an adaptive demosaicing on the mosaiced image to generate an adaptively demosaiced image, the adaptive demosaicing including:
interpolating values of a portion of unknown pixels of the first color in a horizontal or vertical direction;
interpolating values of a portion of unknown pixels of the second color in a horizontal or vertical direction; and
interpolating values of a portion of unknown pixels of the third color in a horizontal or vertical direction.
2. The method of claim 1 , wherein interpolating the values of the portion of unknown pixels of the second color and interpolating the values of the portion of unknown pixels of the third color are based on interpolating the values of the portion of unknown pixels of the first color.
3. The method of claim 1 , wherein interpolating the values of the portion of unknown pixels of the second color and interpolating the values of the portion of unknown pixels of the third color occurs after interpolating the values of the portion of unknown pixels of the first color.
4. The method of claim 1 , wherein the mosaiced image includes red, green, and blue pixels in a Bayer pattern.
5. The method of claim 1 , wherein the first color is green, the second color is red, and the third color is blue.
6. The method of claim 1 , wherein horizontal or vertical interpolation is selected based on known color data of a pixel location.
7. The method of claim 6 , wherein the horizontal or vertical interpolation is selected based on a respective vertical and horizontal nearest neighbor pixel comparison.
8. The method of claim 6 , wherein selecting one of the horizontal interpolation and the vertical interpolation includes calculating a horizontal gradient and calculating a vertical gradient.
9. The method of claim 1 , wherein one of a horizontal interpolation and a vertical interpolation is selected for each given pixel location and interpolation of the unknown pixels of the first, second, and third color is performed for that pixel location using the selected interpolation direction.
10. The method of claim 9 , wherein selection of the horizontal interpolation or the vertical interpolation for a given pixel location is based on identifying an interpolation direction at that pixel location that has the least change among similar neighboring pixel color values.
11. The method of claim 1 , wherein the adaptive demosaicing further includes applying a median filter to the demosaiced image.
12. The method of claim 1 , further comprising displaying the demosaiced image on a display.
13. The method of claim 1 , wherein receiving the mosaiced image includes receiving the mosaiced image from an image sensor array.
14. The method of claim 1 , further comprising generating the mosaiced image based on sensed light that passes through a lens and a mosaicing filter.
15. The method of claim 1 , wherein interpolating the values of the portion of unknown pixels of the first color includes interpolating a value of an unknown pixel of the first color based on a low-pass filter, a known value of one of the second color and the third color at the pixel, and known values of the first color at neighboring pixels.
16. The method of claim 15 , further comprising obtaining a zero phase finite impulse response filter as the low-pass filter by solving an optimization problem.
17. A method of adaptive demosaicing of a mosaiced image comprising:
receiving the mosaiced image having a mosaic pattern with at least one color;
obtaining a noise level index for the mosaiced image;
determining whether the noise level index is greater than a threshold value;
in response to the noise level index being not greater than the threshold value, performing a bilinear demosaicing on the mosaiced image to generate a bilinearly demosaiced image; and
in response to the noise level index being greater than the threshold value, performing an adaptive demosaicing on the mosaiced image to generate an adaptively demosaiced image, the adaptive demosaicing including interpolating values of a portion of unknown pixels of the at least one color in a horizontal or vertical direction.
18. A method of demosaicing a mosaiced image comprising:
receiving the mosaiced image having a mosaic pattern with a first, second and third color;
selecting, from a plurality of demosaicing methods, a demosaicing method to be performed on the mosaiced image based on a comparison between a noise level index of the mosaiced image and at least one threshold value; and
demosaicing the mosaiced image using the selected demosaicing method to generate a demosaiced image.
19. The method of claim 18 , wherein the mosaiced image comprises red, green and blue pixels in a Bayer pattern.
20. The method of claim 18 , further comprising applying a median filter to the demosaiced image.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/789,668 US20200184598A1 (en) | 2014-09-15 | 2020-02-13 | System and method for image demosaicing |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2014/086558 WO2016041133A1 (en) | 2014-09-15 | 2014-09-15 | System and method for image demosaicing |
US15/446,033 US10565681B2 (en) | 2014-09-15 | 2017-03-01 | System and method for image demosaicing |
US16/789,668 US20200184598A1 (en) | 2014-09-15 | 2020-02-13 | System and method for image demosaicing |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/446,033 Continuation US10565681B2 (en) | 2014-09-15 | 2017-03-01 | System and method for image demosaicing |
Publications (1)
Publication Number | Publication Date |
---|---|
US20200184598A1 true US20200184598A1 (en) | 2020-06-11 |
Family
ID=55532424
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/446,033 Expired - Fee Related US10565681B2 (en) | 2014-09-15 | 2017-03-01 | System and method for image demosaicing |
US16/789,668 Abandoned US20200184598A1 (en) | 2014-09-15 | 2020-02-13 | System and method for image demosaicing |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/446,033 Expired - Fee Related US10565681B2 (en) | 2014-09-15 | 2017-03-01 | System and method for image demosaicing |
Country Status (4)
Country | Link |
---|---|
US (2) | US10565681B2 (en) |
JP (1) | JP6080190B2 (en) |
CN (1) | CN105993169B (en) |
WO (1) | WO2016041133A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113259636A (en) * | 2021-07-14 | 2021-08-13 | 贝壳找房(北京)科技有限公司 | Method and device for demosaicing image, electronic device and medium |
WO2022108061A1 (en) * | 2020-11-23 | 2022-05-27 | Samsung Electronics Co., Ltd. | Method and device for joint denoising and demosaicing using neural network |
US11889240B2 (en) | 2020-12-04 | 2024-01-30 | Samsung Electronics Co., Ltd. | Image device and operation method of image device |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3214600B1 (en) * | 2016-03-04 | 2019-02-06 | Aptiv Technologies Limited | Method for processing high dynamic range (hdr) data from a nonlinear camera |
US10262399B2 (en) * | 2017-01-09 | 2019-04-16 | Samsung Electronics Co., Ltd. | Image denoising with color-edge contrast preserving |
CN107274371A (en) * | 2017-06-19 | 2017-10-20 | 信利光电股份有限公司 | A kind of display screen and terminal device |
US10337923B2 (en) * | 2017-09-13 | 2019-07-02 | Qualcomm Incorporated | Directional interpolation and cross-band filtering for hyperspectral imaging |
CN107767352A (en) * | 2017-11-16 | 2018-03-06 | 北京经纬恒润科技有限公司 | A kind of ADAS image colors method for reconstructing and device |
EP3522106A1 (en) * | 2018-01-31 | 2019-08-07 | InterDigital CE Patent Holdings | A filter array enabling easy demosaicing |
US10567724B2 (en) * | 2018-04-10 | 2020-02-18 | GM Global Technology Operations LLC | Dynamic demosaicing of camera pixels |
CN110858894B (en) * | 2018-08-23 | 2021-11-26 | 瑞昱半导体股份有限公司 | Color reconstruction device and method |
KR102669938B1 (en) | 2019-01-09 | 2024-05-27 | 삼성전자주식회사 | Image signal processor, image processing system, and operating method of image signal processor |
WO2020177123A1 (en) * | 2019-03-07 | 2020-09-10 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Color imaging system |
TWI703872B (en) | 2019-05-15 | 2020-09-01 | 瑞昱半導體股份有限公司 | Circuitry for image demosaicing and enhancement |
CN110634103A (en) * | 2019-08-28 | 2019-12-31 | 天津大学 | Image demosaicing method based on generation of countermeasure network |
US11776088B2 (en) * | 2020-03-11 | 2023-10-03 | Samsung Electronics Co., Ltd. | Electronic device generating image data and converting the generated image data and operating method of the electronic device |
US11790487B2 (en) | 2020-04-06 | 2023-10-17 | Boston Scientific Scimed, Inc. | Image processing systems and methods of using the same |
KR20220010285A (en) | 2020-07-17 | 2022-01-25 | 에스케이하이닉스 주식회사 | Demosaic operation circuit, image sensing device and operation method thereof |
TWI760993B (en) * | 2020-12-24 | 2022-04-11 | 鴻海精密工業股份有限公司 | Image processing device, method and lens module with the same |
CN114666469B (en) * | 2020-12-24 | 2023-11-14 | 富泰华工业(深圳)有限公司 | Image processing device, method and lens module with image processing device |
JP2023010159A (en) * | 2021-07-09 | 2023-01-20 | 株式会社ソシオネクスト | Image processing device and image processing method |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020167602A1 (en) * | 2001-03-20 | 2002-11-14 | Truong-Thao Nguyen | System and method for asymmetrically demosaicing raw data images using color discontinuity equalization |
US7502505B2 (en) * | 2004-03-15 | 2009-03-10 | Microsoft Corporation | High-quality gradient-corrected linear interpolation for demosaicing of color images |
US7418130B2 (en) * | 2004-04-29 | 2008-08-26 | Hewlett-Packard Development Company, L.P. | Edge-sensitive denoising and color interpolation of digital images |
GB2426881B (en) * | 2005-06-01 | 2010-12-29 | Snell & Wilcox Ltd | Method and apparatus for spatial interpolation of colour images |
KR100700017B1 (en) * | 2005-12-29 | 2007-03-26 | 엠텍비젼 주식회사 | Apparatus for color interpolation by using adjustable threshold |
CN101867832B (en) * | 2005-12-29 | 2011-09-07 | 安泰科技有限公司 | Apparatus and method for determining threshold value |
US8108211B2 (en) * | 2007-03-29 | 2012-01-31 | Sony Corporation | Method of and apparatus for analyzing noise in a signal processing system |
US7859580B2 (en) * | 2007-10-16 | 2010-12-28 | Aptina Imaging Corporation | Method and apparatus for anisotropic demosaicing of image data |
US8564680B1 (en) * | 2007-12-13 | 2013-10-22 | Marvell International Ltd. | Method and apparatus for noise management for color data synthesis in digital image and video capture systems |
US8422771B2 (en) * | 2008-10-24 | 2013-04-16 | Sharp Laboratories Of America, Inc. | Methods and systems for demosaicing |
US8638342B2 (en) * | 2009-10-20 | 2014-01-28 | Apple Inc. | System and method for demosaicing image data using weighted gradients |
US8482636B2 (en) * | 2010-05-05 | 2013-07-09 | DigitalOptics Corporation Europe Limited | Digital zoom on bayer |
JP5672941B2 (en) * | 2010-10-21 | 2015-02-18 | ソニー株式会社 | Image processing apparatus, image processing method, and program |
US20130002936A1 (en) * | 2011-06-30 | 2013-01-03 | Nikon Corporation | Image pickup apparatus, image processing apparatus, and storage medium storing image processing program |
JP2013066146A (en) * | 2011-08-31 | 2013-04-11 | Sony Corp | Image processing device, image processing method, and program |
US10210599B2 (en) * | 2013-08-09 | 2019-02-19 | Intuitive Surgical Operations, Inc. | Efficient image demosaicing and local contrast enhancement |
CN104038746B (en) * | 2014-06-12 | 2016-06-08 | 北京英泰智软件技术发展有限公司 | A kind of BAYER form view data interpolation method |
-
2014
- 2014-09-15 JP JP2016542953A patent/JP6080190B2/en not_active Expired - Fee Related
- 2014-09-15 CN CN201480075164.9A patent/CN105993169B/en not_active Expired - Fee Related
- 2014-09-15 WO PCT/CN2014/086558 patent/WO2016041133A1/en active Application Filing
-
2017
- 2017-03-01 US US15/446,033 patent/US10565681B2/en not_active Expired - Fee Related
-
2020
- 2020-02-13 US US16/789,668 patent/US20200184598A1/en not_active Abandoned
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022108061A1 (en) * | 2020-11-23 | 2022-05-27 | Samsung Electronics Co., Ltd. | Method and device for joint denoising and demosaicing using neural network |
US11948279B2 (en) | 2020-11-23 | 2024-04-02 | Samsung Electronics Co., Ltd. | Method and device for joint denoising and demosaicing using neural network |
US11889240B2 (en) | 2020-12-04 | 2024-01-30 | Samsung Electronics Co., Ltd. | Image device and operation method of image device |
CN113259636A (en) * | 2021-07-14 | 2021-08-13 | 贝壳找房(北京)科技有限公司 | Method and device for demosaicing image, electronic device and medium |
Also Published As
Publication number | Publication date |
---|---|
US10565681B2 (en) | 2020-02-18 |
US20170178292A1 (en) | 2017-06-22 |
JP6080190B2 (en) | 2017-02-15 |
JP2017502598A (en) | 2017-01-19 |
CN105993169B (en) | 2019-07-26 |
CN105993169A (en) | 2016-10-05 |
WO2016041133A1 (en) | 2016-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200184598A1 (en) | System and method for image demosaicing | |
US8314863B2 (en) | Image processing device, image processing method, and program pertaining to image correction | |
KR101143147B1 (en) | High-Quality Gradient-Corrected Linear Interpolation for Demosaicing of Color Images | |
US9582863B2 (en) | Image processing apparatus, image processing method, and program | |
US6181376B1 (en) | Method of determining missing color values for pixels in a color filter array | |
US8704922B2 (en) | Mosaic image processing method | |
US7652700B2 (en) | Interpolation method for captured color image data | |
US8073246B2 (en) | Modifying color and panchromatic channel CFA image | |
JP4253655B2 (en) | Color interpolation method for digital camera | |
US20100104209A1 (en) | Defective color and panchromatic cfa image | |
JP5306563B2 (en) | Imaging apparatus and image generation method | |
US20110043670A1 (en) | Imaging processor | |
US20110141321A1 (en) | Method and apparatus for transforming a lens-distorted image to a perspective image in bayer space | |
JP2013066157A (en) | Image processing apparatus, image processing method, and program | |
US20110032269A1 (en) | Automatically Resizing Demosaicked Full-Color Images Using Edge-Orientation Maps Formed In The Demosaicking Process | |
US20100253817A1 (en) | Orientation-based approach for forming a demosaiced image, and for color correcting and zooming the demosaiced image | |
US20020158979A1 (en) | Contour filter for image sensor output signals | |
US8666162B1 (en) | Advanced sensor binning correction | |
CN114881904A (en) | Image processing method, image processing device and chip | |
KR101327790B1 (en) | Image interpolation method and apparatus | |
CN107517367B (en) | Baeyer area image interpolation method, device, picture processing chip and storage device | |
JP2013055622A (en) | Image processing apparatus, image processing method, information recording medium, and program | |
KR20150094350A (en) | Method and apparatus for executing demosaicking using edge information | |
JP2013223208A (en) | Image pickup processing device | |
CN116091651A (en) | Processing method and device for nonstandard sparse color filter array image |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SZ DJI TECHNOLOGY CO., LTD., CHINA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:JIANG, CAIGAO;CAO, ZISHENG;WANG, MINGYU;SIGNING DATES FROM 20170124 TO 20170216;REEL/FRAME:051809/0583 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |