US9892487B1 - Method and apparatus for combining pixel values in array including linear pixels and logarithmic pixels - Google Patents
Method and apparatus for combining pixel values in array including linear pixels and logarithmic pixels Download PDFInfo
- Publication number
- US9892487B1 US9892487B1 US15/361,958 US201615361958A US9892487B1 US 9892487 B1 US9892487 B1 US 9892487B1 US 201615361958 A US201615361958 A US 201615361958A US 9892487 B1 US9892487 B1 US 9892487B1
- Authority
- US
- United States
- Prior art keywords
- pixels
- array
- pixel
- logarithmic
- linear
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- 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/70—Circuitry for compensating brightness variation in the scene
- H04N23/741—Circuitry for compensating brightness variation in the scene by increasing the dynamic range of the image compared to the dynamic range of the electronic image sensors
-
- 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/88—Camera processing pipelines; Components thereof for processing colour signals for colour balance, e.g. white-balance circuits or colour temperature control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N25/00—Circuitry of solid-state image sensors [SSIS]; Control thereof
- H04N25/50—Control of the SSIS exposure
- H04N25/57—Control of the dynamic range
- H04N25/571—Control of the dynamic range involving a non-linear response
- H04N25/573—Control of the dynamic range involving a non-linear response the logarithmic type
-
- H04N5/2355—
-
- H04N5/35518—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/64—Circuits for processing colour signals
- H04N9/646—Circuits for processing colour signals for image enhancement, e.g. vertical detail restoration, cross-colour elimination, contour correction, chrominance trapping filters
-
- H04N9/735—
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/32—Indexing scheme for image data processing or generation, in general involving image mosaicing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10024—Color image
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N25/00—Circuitry of solid-state image sensors [SSIS]; Control thereof
- H04N25/50—Control of the SSIS exposure
- H04N25/57—Control of the dynamic range
- H04N25/571—Control of the dynamic range involving a non-linear response
-
- H04N5/35509—
Definitions
- This application relates to a method and apparatus for combining pixel values from an array of pixels that includes both linear pixels and logarithmic pixels.
- Image sensing devices typically include an image sensor, an array of pixel circuits, signal processing circuitry and associated control circuitry. Within the image sensor itself, charge is collected in a photoelectric conversion device of the pixel circuit as a result of impinging light. Subsequently, the charge in a given pixel circuit is read out as an analog signal, and the analog signal is converted to digital form by an analog-to-digital converter (ADC).
- ADC analog-to-digital converter
- a photodiode As a photoelectric conversion device, a photodiode may be used.
- the photodiodes are limited by well capacity (for example, the maximum amount of charge that may be stored during the exposure to light).
- the analog circuits in the entire image sensor system, including the photodiodes are subject to noise.
- the dynamic range for example, the ratio of the maximum to minimum light level in a single scene that may be captured by the image sensor at a given setting
- Some examples of the conventional methods include the use of sensor elements having non-linear responses to light (for example, piecewise linear response segments with different slopes, or logarithmic pixel elements), capturing multiple frames at different sensor settings and subsequently combining the frames into a single output frame, partitioning pixels within a frame into multiple groups with different sensor settings and reconstructing an output frame with digital signal processing, and the use of individually controlled pixel elements.
- sensor elements having non-linear responses to light for example, piecewise linear response segments with different slopes, or logarithmic pixel elements
- linear pixels Traditional pixel elements have an approximately linear response to light (“linear pixels”) that results in a signal level, and thus a converted digital value, that is approximately linearly proportional to the product of the light level and the exposure time.
- linear pixels may be become saturated or “clipped.” Accordingly, linear pixels may not give values that are consistent with a linear characteristic at high light levels, long exposure times, or combinations thereof.
- Pixel elements may also have an approximately logarithmic response to light (“logarithmic pixels”) that may provide a different or wider dynamic range. Logarithmic pixels, however, may have undesirable characteristics at the lower end. Accordingly, logarithmic pixels may not give values that are consistent with a logarithmic characteristic at low light levels, short exposure times, or combinations thereof.
- Linear and logarithmic pixels operate according to a linear and a logarithmic characteristics, respectively, in different illumination ranges, and are best suited for different ends of a given dynamic range.
- traditional demosaicing algorithms do not produce a suitable output image for a color array including both types of pixels.
- linear pixels may be clipped in a high-light area of the scene while logarithmic pixels may be clipped in a low-light area of the scene.
- Linear pixels and logarithmic pixels may be distributed throughout the pixel array and a significant portion of the pixels may be saturated, which may degrade an image output.
- Various aspects of the present disclosure relate to signal processing circuitry, a method for processing an image, and an imaging device that includes an array of pixels having linear pixels and logarithmic pixels and an image processing circuit.
- the signal processing circuitry may be internal or external with respect to the imaging device that includes an array of pixels.
- a signal processing circuit comprises an image processing circuitry including first circuitry configured to receive a first set of signals corresponding to linear pixels in an array of pixels, second circuitry configured to receive a second set of signals corresponding to logarithmic pixels in the array of pixels, third circuitry configured to perform a linear pixel interpolation using the first set of signals to determine a linear red-green-blue (rgb) value associated with a given pixel in the array of pixels, fourth circuitry configured to perform a logarithmic pixel interpolation using the second set of signals to determine a logarithmic Red-Green-Blue (RGB) value associated with the given pixel in the array of pixels, and responsive to determining the linear rgb value and the logarithmic RGB value associated with the given pixel in the array of pixels, fifth circuitry is configured to combine the linear rgb value and the logarithmic RGB value associated with the given pixel in the array of pixels to generate a combined pixel value associated with the given pixel in the array of
- a method of processing an image includes receiving a first set of signals corresponding to linear pixels in an array of pixels, receiving a second set of signals corresponding to logarithmic pixels in the array of pixels, performing a linear pixel interpolation using the first set of signals to determine a linear red-green-blue (rgb) value associated with a given pixel in the array of pixels, performing a logarithmic pixel interpolation using the second set of signals to determine a logarithmic Red-Green-Blue (RGB) value associated with the given pixel in the array of pixels, and responsive to determining the linear rgb value and the logarithmic RGB value associated with the given pixel in the array of pixels, combining the linear rgb value and the logarithmic RGB value associated with the given pixel in the array of pixels to generate a combined pixel value associated with the given pixel in the array of pixels.
- rgb linear red-green-blue
- an imaging device comprising an array of pixels including linear pixels and logarithmic pixels and an image processing circuit.
- the linear pixels are configured to output a first set of signals based on light incident upon the linear pixels.
- the logarithmic pixels are configured to output a second set of signals based on the light incident upon the logarithmic pixels.
- the image processing circuit is configured to receive the first set of signals and the second set of signals, perform a linear pixel interpolation using the first set of signals to determine a linear red-green-blue (rgb) value associated with a given pixel in the array of pixels, perform a logarithmic pixel interpolation using the second set of signals to determine a logarithmic Red-Green-Blue (RGB) value associated with the given pixel in the array of pixels, and responsive to determining the linear rgb value and the logarithmic RGB value associated with the given pixel in the array of pixels, combine the linear rgb value and the logarithmic RGB value associated with the given pixel in the array of pixels to generate a combined pixel value associated with the given pixel in the array of pixels.
- rgb linear red-green-blue
- RGB logarithmic Red-Green-Blue
- a non-transitory computer-readable medium comprising instructions that, when executed by an electronic processor, perform a set of functions, the set of functions comprising performing a linear pixel interpolation using a first set of signals to determine a linear red-green-blue (rgb) value associated with a given pixel in an array of pixels, performing a logarithmic pixel interpolation using a second set of signals to determine a logarithmic Red-Green-Blue (RGB value associated with the given pixel in the array of pixels, and responsive to determining the linear rgb value and the logarithmic RGB value associated with the given pixel in the array of pixels, combining the linear rgb value and the logarithmic RGB value associated with the given pixel in the array of pixels to generate a combined pixel value associated with the given pixel in the array of pixels.
- rgb linear red-green-blue
- This disclosure may be embodied in various forms, including hardware or circuits controlled by computer-implemented methods, computer program products, computer systems and networks, user interfaces, and application programming interfaces; as well as hardware-implemented methods, signal processing circuits, image sensor circuits, application specific integrated circuits, field programmable gate arrays, and other suitable forms.
- the foregoing summary is intended solely to give a general idea of various aspects of the present disclosure, and does not limit the scope of the present disclosure.
- FIG. 1 illustrates an exemplary image sensor, in accordance with some aspects of the present disclosure.
- FIG. 2 illustrates an exemplary color filter array, in accordance with some aspects of the present disclosure.
- FIG. 3A illustrates the response of linear pixels to light, in accordance with some aspects of the present disclosure.
- FIG. 3B illustrates the response of logarithmic pixels to light, in accordance with some aspects of the present disclosure.
- FIG. 4 illustrates an exemplary method for use with an array of pixels having both linear and logarithmic pixels, in accordance with some aspects of the present disclosure.
- FIG. 5 illustrates an exemplary color correction procedure for use with logarithmic pixels, in accordance with some aspects of the present disclosure.
- FIG. 6 illustrates the result of summing the response of the linear pixels and the response of the logarithmic pixels to produce a combined response, in accordance with some aspects of the present disclosure.
- FIG. 7 illustrates an exemplary process flow for an adaptive demosaic algorithm to determine linear rgb values from an image sensor having both linear and logarithmic pixels.
- FIG. 8 illustrates an exemplary five by five array of pixels and the four directions used in gradient estimation and directional interpolation for adaptive demosaicing.
- FIG. 9 illustrates an exemplary subset of the five by five array of pixels of FIG. 8 in which the linear green component value associated with the output pixel is determined, in accordance with some aspects of the present disclosure.
- FIG. 10 illustrates an exemplary subset of the five by five array of pixels of FIG. 8 used in estimating a gradient strength and directional interpolated result in the vertical direction.
- FIGS. 11A and 11B illustrate exemplary subsets of the five by five array of pixels of FIG. 8 used in estimating a gradient strength and directional interpolated result in the horizontal direction.
- FIG. 12 illustrates an exemplary subset of the five by five array of pixels of FIG. 8 used in estimating a gradient strength and directional interpolated result in the slash direction.
- FIG. 13 illustrates an exemplary subset of the five by five array of pixels of FIG. 8 used in estimating a gradient strength and directional interpolated result in the backslash direction.
- FIG. 14 illustrates another five by five array of pixels for determining the green component value associated with the output pixel, in accordance with various aspects of the present disclosure.
- FIGS. 15A and 15B illustrate exemplary subsets of the five by five array of pixels of FIG. 14 used in estimating a gradient strength and directional interpolated result in the vertical direction.
- FIGS. 16A and 16B illustrate exemplary subsets of the five by five array of pixels of FIG. 14 used in estimating a gradient strength and directional interpolated result in the horizontal direction.
- FIG. 17 illustrates an exemplary seven by seven array of pixels for determining the red and blue component values associated with the output pixel, in accordance with various aspects of the present disclosure.
- FIG. 18 illustrates an exemplary subset of the seven by seven array of pixels of FIG. 16 that may be used in vertical interpolation to calculate the red component value associated with the output pixel.
- FIG. 19 illustrates an exemplary subset of the seven by seven array of pixels of FIG. 16 that may be used in horizontal interpolation to calculate the red component value associated with the output pixel.
- FIG. 20 illustrates an exemplary subset of the seven by seven array of pixels of FIG. 16 that may be used in interpolation in the slash direction to calculate the red component value associated with the output pixel.
- FIG. 21 illustrates an exemplary subset of the seven by seven array of pixels of FIG. 16 that may be used in interpolation in the backslash direction to calculate the red component value associated with the output pixel.
- FIG. 22 illustrates an exemplary process flow for an adaptive demosaic algorithm stored in a non-transitory computer-readable medium and to be utilized with an image sensor having both linear and logarithmic pixels.
- the present disclosure provides improvements in the technical field of signal processing, as well as in the related technical fields of image sensing and image processing.
- FIG. 1 illustrates an exemplary image sensor 100 , in accordance with various aspects of the present disclosure.
- the image sensor 100 includes an array 110 of pixels 111 located at intersections where horizontal signal lines 112 and vertical signal lines 113 cross one another. Each of the pixels 111 may be one of a linear type or a logarithmic type.
- the horizontal signal lines 112 are operatively connected to a vertical driving circuit 120 (for example, a row scanning circuit) at a point outside of the array 110 .
- the horizontal signal lines 112 carry signals from the vertical driving circuit 120 to a particular row of the array 110 of pixels 111 .
- the pixels 111 in a particular column output an analog signal corresponding to an amount of incident light to the pixels in the vertical signal line 113 . For illustration purposes, only a small number of the pixels 111 are actually shown in FIG. 1 .
- the image sensor 100 may have tens of millions of pixels 111 (for example, “megapixels” or MP) or more.
- the vertical signal line 113 conducts the analog signal for a particular column to a column circuit 130 .
- one vertical signal line 113 is used for each column in the array 110 .
- more than one vertical signal line 113 may be provided for each column.
- each vertical signal line 113 may correspond to more than one column in the array 110 .
- the column circuit 130 may include one or more individual analog to digital converters (ADC) 131 and image processing circuits 132 .
- ADC analog to digital converters
- the column circuit 130 includes an ADC 131 and an image processing circuit 132 for each vertical signal line 113 .
- each set of ADC 131 and image processing circuit 132 may correspond to more than one vertical signal line 113 .
- the column circuit 130 is at least partially controlled by a horizontal driving circuit 140 (for example, a column scanning circuit).
- a horizontal driving circuit 140 for example, a column scanning circuit.
- Each of the vertical driving circuit 120 , the column circuit 130 , and the horizontal driving circuit 140 receive one or more clock signals from a controller 150 .
- the controller 150 controls the timing and operation of various image sensor components.
- the controller 150 controls the column circuit 130 to convert analog signals from the array 110 to digital signals.
- the controller 150 may also control the column circuit 130 to output the digital signals via signal lines 160 to an output circuit for additional signal processing, storage, transmission, or the like.
- the controller 150 includes a memory.
- the column circuit 130 may perform various signal processing methods as described in greater detail below.
- one or more of the image processing circuits 132 may be controlled by the controller 150 to perform the various signal processing methods described below and output the processed signals as the digital signals via the signal lines 160 to an output circuit for additional signal processing, storage, transmission, or the like.
- the controller 150 stores the various signal processing methods described below in the memory of the controller 150 .
- the memory of the controller 150 is a non-transitory computer-readable medium that includes computer readable code stored thereon for performing the various signal processing methods described below. Examples of a non-transitory computer-readable medium are described in greater detail below.
- image processing circuits for example, one or more microprocessors, one or more digital signal processors, application specific integrated circuits (ASIC), field programmable gate arrays (FPGA), or other suitable processing devices
- image processing circuits may receive the digital signals and perform the various signal processing methods as described below.
- the image processing circuits that are external to the image sensor 100 may retrieve the digital signals from the memory of the controller 150 that stores the digital signals and perform the various signal processing methods as described below.
- the controller 150 may also include a processing device that performs the various signal processing method described below.
- the array 110 may be overlaid with a color filter array.
- FIG. 2 illustrates an exemplary color filter array 200 , in accordance with some aspects of the present disclosure.
- a portion of the color filter array 200 corresponds to a four by four section of the array 110 , and in some examples, is tiled across the extent of the array 110 as described above.
- the various letters correspond to the primary colors red, green, and blue, and the case of the letter corresponds to one of a linear type pixel or a logarithmic type pixel.
- a lower case “r” represents a red color filter corresponding to a linear pixel or a red linear component value.
- An upper case “R” represents a red color filter corresponding to a logarithmic pixel or a red logarithmic component value.
- a lower case “g” represents a green color filter corresponding to a linear pixel or a green linear component value.
- An upper case “G” represents a green color filter corresponding to a logarithmic pixel or a green logarithmic component value.
- a lower case “b” represents a blue color filter corresponding to a linear pixel or a blue linear component value.
- An upper case “B” represents a blue color filter corresponding to a logarithmic pixel or a blue logarithmic component value.
- the primary colors may include a RGBW (red, green, blue, and white) configuration, a CMY (cyan, magenta, yellow) configuration, a CYGM (cyan, yellow, green, magenta) configuration, or other suitable primary color configuration.
- Each of the pixels 111 in the array 110 receives a particular wavelength range of incident light and converts the incident light to a pixel value that is read from each of the pixels 111 as raw data.
- an output image is generated such that each pixel of the output image comprises all color component values in a standard color space (for example, sRGB, YCbCr, XYZ, CMYK, or other suitable color space). That is, each output pixel in the output image may be represented by multiple color component values in the chosen color space.
- demosaicing The process of converting an image from the sensor raw data (where each pixel is described by a single color component value depending on the array architecture) to a standard color image data (where each pixel is described by multiple color component values) is called demosaicing.
- linear pixels and logarithmic pixels are alternately arranged in both the row and column directions.
- the linear pixels and the logarithmic pixels of different primary colors are spread throughout the array 110 and both types of pixels and each primary color are located in any given section within the pixel array 110 .
- each of the pixels 111 In response to light, each of the pixels 111 produces a voltage response which represents the level of light incident upon each of the pixels 111 .
- one of the pixels 111 Given any fixed light level, one of the pixels 111 generates a specific voltage that depends on the pixel type (for example, linear or logarithmic) and the color.
- the range of normal operation for the linear pixels and the logarithmic pixels are different. That is, the range of light levels at which the output voltages from the linear pixels and the logarithmic pixels are not saturated (for example, not clipped) is different.
- FIGS. 3A and 3B illustrate the response of linear pixels to light and the response of logarithmic pixels to light, respectively. In the example of FIG. 3A , the response is curve 301 .
- FIG. 3A the response is curve 301 .
- the response is curve 302 .
- Both curves 301 and 302 are plotted for a fixed time frame.
- the fixed time frame is thirty frames per second (fps) or thirty-three milliseconds (msec).
- fps frames per second
- msec thirty-three milliseconds
- the horizontal axes represent the light levels and are illustrated in logarithmic scale and the vertical axes represent photodiode voltage levels and are illustrated in linear scale.
- the light response curve 301 illustrates that the linear pixels operate effectively below a certain light level (for example, a threshold light level of two lux and lower). Accordingly, when the light level is below the threshold light level the linear pixels produce voltages that vary with the incoming light level, and when the light level is above the threshold light level the linear pixels clip and the output voltage changes little with respect to further increases in the incoming light level.
- a certain light level for example, a threshold light level of two lux and lower.
- the light response curve 302 illustrates that the logarithmic pixels operate effectively above a certain light level that is different than the certain light level of the linear pixels (for example, a threshold light level of 0.1 lux and higher). Accordingly, when the light level is above a threshold the logarithmic pixels produce voltages that vary with the incoming light level, and when the light level is below the threshold the logarithmic pixels clip and the output voltage changes little with respect to further decreases in the incoming light level.
- a certain light level of the linear pixels for example, a threshold light level of 0.1 lux and higher.
- the two different responses may be combined together in such a way that the combined response (for example, the combined pixel values) gives increasing output with increasing light levels and is continuous.
- the combined pixel values have monotonicity and continuity.
- summing of the linear and logarithmic responses may be done for each of the red, green and blue color channels.
- the light responses 301 and 302 in FIGS. 3A and 3B are summed to give FIG. 6 as described in greater detail below, the summing procedure considers the values in the saturated regions of the light responses 301 and 302 in FIGS. 3A and 3B as valid signal values.
- the two pixel values may be summed similar to the procedure of adding the light responses in FIGS. 3A and 3B to form a combined pixel value.
- a linear pixel value and a logarithmic pixel value may be determined for and associated with a given pixel in the array of pixels, then the two pixel values associated with the given pixel may be summed to form a combined pixel value.
- the combined pixel value associated with the given pixel in the array of pixels may be used to generate an output image having combined pixels.
- the output image having combined pixels is as if the output image is captured by an image sensor having a light response with monotonicity and continuity.
- the linear pixel value associated with the given pixel in the array of pixels may be obtained either directly from the pixel output of the corresponding pixel when the corresponding pixel is a linear pixel or by spatial interpolation from neighboring linear pixel values when the corresponding pixel is a logarithmic pixel.
- the logarithmic pixel value for the given pixel in the array of pixels may be obtained either directly from the pixel output of the corresponding pixel when the corresponding pixel is a logarithmic pixel or by spatial interpolation from neighboring logarithmic pixel values when the corresponding pixel is a linear pixel.
- the method described above may also be applied to a color image sensor having linear pixels and logarithmic pixels (for example, the image sensor 100 as described above). Specifically, the method includes determining a linear rgb value (i.e., a linear red value, a linear green value, and a linear blue value) and a logarithmic RGB value (i.e., a logarithmic red value, a logarithmic green value, and a logarithmic blue value) for a given pixel of the pixels 111 in the array 110 .
- the linear rgb values correspond to a linear sensor and the logarithmic RGB values correspond to a logarithmic sensor.
- the summing method as described above is used independently on each color plane to produce an output color image.
- the linear r value is added to the logarithmic R value to produce the output red value
- the linear g value is added to the logarithmic G value to produce the output green value
- the linear b value is added to the logarithmic B value to produce the output blue value.
- a second spatial interpolation procedure is performed using the logarithmic pixel values read from the logarithmic pixels of the pixels 111 in the array 110 .
- FIG. 4 illustrates an exemplary method for use with a color filter array having both linear and logarithmic pixels.
- the linear pixel values from the linear pixels are processed by white balancing (at block 402 ), demosaicing (at block 404 ), and color correcting (at block 406 ) to produce the linear rgb value associated with a given pixel in array of pixels as described above.
- white balancing at block 402
- demosaicing at block 404
- color correcting at block 406
- the logarithmic pixel values from the logarithmic pixels are processed by white balancing (at block 408 ), demosaicing (at block 410 ), and color correcting (at block 412 ) to produce the logarithmic RGB value associated with the given pixel in the array of pixels as described above.
- white balancing (at blocks 402 and 408 ) the linear pixel values and the logarithmic pixel values is optional.
- the linear pixel values and the logarithmic pixel values may be interpolated (at blocks 404 and 410 ) with or without white balancing (at blocks 402 and 408 ).
- color correcting at blocks 406 and 412 ) the linear rgb values and the logarithmic RGB values is optional.
- the linear rgb values and the logarithmic RGB values may be output (at blocks 404 and 410 ) and combined (at summing operator 414 ) with or without color correction (at blocks 406 and 412 ).
- white balancing at blocks 402 and 408 ) the linear pixel values and the logarithmic pixel values and color correcting (at blocks 406 and 412 ) the linear rgb values and the logarithmic RGB values are both optional.
- the linear pixel values and the logarithmic pixel values may be interpolated (at blocks 404 and 410 ) with or without white balancing (at blocks 402 and 408 ) and the linear rgb values and the logarithmic RGB values may be output (at blocks 404 and 410 ) and combined (at summing operator 414 ) with or without color correction (at blocks 406 and 412 ).
- the white balancing (at blocks 402 and 408 ) and the color correcting (at blocks 406 and 412 ) for the linear pixels and the logarithmic pixels are also different.
- the white balancing (at block 402 ) of the linear pixel values may be implemented using a multiplication step where the r, g, and b values are multiplied by color dependent gain values.
- the color dependent gain values are typically determined by a calibration process, which depends on the color temperature of the illuminant.
- the white balancing of the logarithmic RGB values may be implemented using an additional step where the R, G, and B values are shifted by color dependent offset values.
- the color dependent offset values are found by a calibration process that depends on the color temperature of the illuminant.
- the color correction of the linear rgb values may be performed using a color matrix method.
- the color correction of the linear rgb values may be implemented by having the rgb input colors associated with a linear pixel multiplied by a three by three color matrix to produce the output rgb colors as described in the following expression (1).
- the matrix coefficients a00 . . . a22 may be determined for each color temperature using a calibration method.
- Color correction for the logarithmic pixels is more complicated because the color matrix correction method only works well for signals that are linear.
- a logarithmic pixel is, by definition, non-linear.
- the color correction of the logarithmic RGB values may be implemented by incorporating a color correction procedure.
- FIG. 5 illustrates an exemplary color correction procedure 500 for use with logarithmic pixels.
- the color correction procedure 500 includes mapping the logarithmic response to a linear response (for example, the logarithmic RGB values are linearly mapped) to generate a linear-mapped response (at block 502 ).
- the color correction procedure 500 includes applying a three by three color matrix correction as described above (at block 504 ) to the linear-mapped response to generate a color-corrected and linear-mapped response (for example, color-corrected and linear-mapped values).
- the color correction procedure 500 After applying the three by three color correction matrix to the mapped linear response, the color correction procedure 500 includes mapping the color-corrected and linear-mapped response back to the logarithmic space (at block 506 ) to result in a color-corrected logarithmic response (for example, color-corrected logarithmic RGB values).
- the color-corrected linear rgb values are combined with the corresponding color-corrected logarithmic RGB values (at summing operator 414 ) to generate and output combined pixel values.
- Each of the combined pixel values is associated with one pixel in the array of pixels.
- FIG. 6 illustrates the result of summing the light response of the linear pixels and the light response of the logarithmic pixels to produce a combined light response 601 (for example, the combined pixel values as described above).
- the two different light responses are combined together and the combined light response 601 has monotonicity and continuity.
- Each of the light responses, individually, is monotonic and continuous after the processing described above, and therefore, the summed combined light response is also monotonic and continuous.
- the overall operating range of the image sensor ranges from about 0.001 lux to 10000 lux (for example, the dynamic range of the combined response spans about 140 dB).
- the linear rgb values may be determined by interpolation using the available linear pixel values
- the logarithmic RGB values may be determined by interpolation using the available logarithmic pixel values.
- the following is a description of the interpolation of the linear pixel values to determine the linear rgb values.
- the missing values include the two color components that are missing in a physical linear pixel location (for example, the missing blue “b” and green “g” values in a pixel location with a physical red “r” color pixel) and the three color components in a physical logarithmic pixel location (for example, the missing red “r,” blue “b,” and green “g” color components).
- the missing values for the interpolation of logarithmic pixel values to determine the logarithmic RGB values include the two color components that are missing in a physical logarithmic pixel location (for example, the missing blue “B” and green “G” values in a pixel location with a physical red “R” color pixel), and the three color components in a physical linear pixel location (for example, the missing red “R,” blue “B,” and green “G” color components).
- a demosaic method to determine the pixel values from an image sensor having both the linear type and logarithmic type pixels is more complicated than a demosaic method to determine the pixel values from an image sensor having a single pixel type array.
- Adaptive demosaic algorithms take the structural information of an image into account. As described above, a method is used to process the linear pixels and the logarithmic pixels separately. The approaches to demosaicing to determine the linear rgb values and logarithmic RGB values are similar. In the following description, details of the interpolation for the linear rgb values using the linear pixel values is described. However, interpolation of the logarithmic RGB values may follow a similar process with suitable reference to the logarithmic pixel values.
- Adaptive demosaic algorithms estimate the edges in an image and perform interpolation in the direction that preserves the edges in the image.
- the proportion of green pixels in a color filter array (CFA) is typically higher than red and blue pixels, and the green color plane may be interpolated first. Accordingly, the raw data from the linear pixels is used to estimate the gradient, and interpolation for the green plane is performed while taking the edges into account. After interpolating the green color plane, the red and blue color planes are interpolated. To interpolate the red and blue color planes, the interpolated green color plane, rather than the raw data, may be used to estimate the gradient information. Using the interpolated green plane to estimate edge information in this step is advantageous because the green plane has already been fully interpolated. Alternatively, determination of gradient information from the interpolated green plane can be skipped and interpolation of the red and blue planes may be performed using the raw pixels while taking into account the estimated edge information that was used to interpolate the green plane.
- CFA color filter array
- FIG. 7 illustrates an exemplary process flow for an adaptive demosaic algorithm 700 to determine linear rgb values from an image sensor having both linear and logarithmic pixels.
- the adaptive demosaic algorithm 700 may be stored in a non-transitory computer-readable medium and implemented in a column circuit within an image sensor (for example, column circuit 130 within the image sensor 100 as described above) or in processing by image processing circuits (for example, internal or external image processing circuits as described above) that occurs after the image data has been captured. Stated differently, the adaptive demosaic algorithm 700 may be performed by a processing device that is internal or external with respect to the image sensor 100 as described above.
- the processing device may be may be comprised of one or more generic or specialized processors (or “processing devices”) such as microprocessors, digital signal processors, customized processors, application specific integrated circuits (ASIC) and field programmable gate arrays (FPGAs) and unique stored program instructions (including both software and firmware) that control the one or more processors to implement, in conjunction with certain non-processor circuits, some, most, or all of the functions of the method and/or apparatus described herein.
- the non-transitory computer-readable medium includes computer readable code stored thereon for programming a computer (e.g., comprising a processor) to perform a method as described and claimed herein.
- Examples of a non-transitory computer-readable medium include a hard disk, a CD-ROM, an optical storage device, a magnetic storage device, a ROM (Read Only Memory), a PROM (Programmable Read Only Memory), an EPROM (Erasable Programmable Read Only Memory), an EEPROM (Electrically Erasable Programmable Read Only Memory), a Flash memory, and any other suitable non-transitory computer-readable medium.
- the adaptive demosaic algorithm 700 is initialized at operation 702 .
- the gradient information is estimated from the raw data for the g (green) plane, and directionally-interpolated data values are calculated. These values are compared at operation 706 , whereby a preferred gradient direction and an appropriate interpolated g plane value are selected.
- preferred directions for r (red) and b (blue) planes are selected based on an estimated gradient information from the interpolated g plane.
- the r and b planes are directionally interpolated.
- the adaptive demosaic algorithm 700 terminates.
- Each of the operations 704 - 710 are described in greater detail below.
- operation 708 may be skipped.
- the preferred directions determined in operation 706 for each pixel may be used in operation 710 to interpolate the r and b planes directionally.
- FIG. 8 illustrates an exemplary five by five array of pixels 800 and the four directions used in gradient estimation and directional interpolation for adaptive demosaicing.
- the four directions are a horizontal direction 802 , a vertical direction 804 , a slash direction 806 , and a backslash direction 808 .
- the gradient may be estimated using, for example, a five by five neighborhood of raw pixel values centered at the pixel where the gradient information is estimated.
- FIG. 9 illustrates an exemplary subset of the five by five array of pixels 800 of FIG. 8 in which the linear green component value “g” associated with the output pixel is to be determined.
- the linear pixels are labelled in the five by five array of pixels 800 .
- the pixel to be interpolated is marked by an asterisk (“*”) which corresponds to a position of a logarithmic pixel circuit.
- a raw pixel y(i,j) is identified by the coordinates (i,j) where i is the row index and j is the column index, and y can be r, g, b, R, G or B.
- y can be r, g, b, R, G or B.
- the upper-left pixel is referred to as x(0,0); the central pixel 801 is referred to as x(2,2); and the lower-right pixel is referred to as x(4,4).
- the green component value “g” for the middle pixel (2,2) is to be determined by first estimating the gradient at the vertical, horizontal, slash and backslash directions. The following shows an example of the gradient information estimation and directional interpolation calculations.
- FIG. 10 illustrates an exemplary subset of the five by five array of pixels 800 of FIG. 8 used in estimating a gradient strength and directional interpolated result in the vertical direction.
- the asterisk “*” represents the pixel where the green value is to be computed.
- (2) avg v ( g (1,2)+ g (3,2))/2 (3)
- dv is the vertical gradient strength and avgv is the interpolated value using vertical interpolation.
- the value dv may also be used to determine the preferred interpolation direction.
- the value avgv represents the vertically interpolated value for the green plane. In some examples, when the vertical direction determined later is the preferred direction, then the interpolation output (for example, the green color plane value for the pixel (2,2)) is set to avgv.
- the gradient strength is normalized to allow for a meaningful comparison.
- the vertical gradient strength is calculated by expression (2), which represents a coordinate distance of two pixels multiplied by a factor of four. That is, the vertical gradient strength corresponds to a coordinate distance of eight pixels.
- Gradient strength calculations in the other directions are also “normalized” similarly so that gradient strengths of different directions can be meaningfully compared.
- FIGS. 11A and 11B illustrate exemplary subsets of the five by five array of pixels 800 of FIG. 8 used in estimating a gradient strength and directional interpolated result in the horizontal direction.
- the interpolation procedure is more complex than vertical gradient estimation as described above with respect to FIG. 10 .
- the linear green pixels at the locations (1,0), (1,2), (1,4), (3,0), (3,2) and (3,4) are used for interpolating in the horizontal direction. These pixels are separated into two groups.
- the first group “north” comprises the pixels at the locations (1,0), (1,2) and (1,4) and is illustrated in FIG. 11A .
- the second group “south” comprises the pixels at the locations (3,0), (3,2) and (3,4) and is illustrated in FIG. 11B .
- the first group also include the linear pixels r(0,1), b(0,3), b(2,1), and r(2,3).
- the second group also include the linear pixels b(2,1), r(2,3), r(4,1), and b(4,3).
- Two parameters dn and ds are calculated from the r and b pixels according to the following expressions (4) and (5).
- dn
- ds
- These parameters are used to determine whether the values in the middle row (row 2) are closer to those of the north row (row 0) or to the south row (row 4).
- the middle row is closer to the north row, then the green linear pixels of the “north” group are used for horizontal interpolation.
- the middle row is closer to the south row, then the green linear pixels of the “south” group are used for horizontal interpolation.
- a small quantity “thres” (for example, one percent of the full range 2 b ) is used to ensure that the selection of the “north” group or the “south” group is not ambiguous.
- the first estimate is a horizontal interpolation using the 3 green (g) pixels in row 1 of FIG. 11A , which is one row above the output pixel location of (2,2).
- an adjustment is made to improve the estimate.
- an estimate of the vertical slope is calculated using the r and b pixels in row 0 and row 2 according to expression (8).
- delta_rb 1 2 ⁇ ( b ⁇ ( 2 , 1 ) + r ⁇ ( 2 , 3 ) 2 - r ⁇ ( 0 , 1 ) + b ⁇ ( 0 , 3 ) 2 ) ( 8 )
- delta_rb represents one half of the difference between row 2 and row 0, which may be used as an estimate for the difference between row 2 and row 1.
- the expression (9) defines the “estimate and adjust” method.
- the “south” group is selected for horizontal interpolation, i.e. “when (ds ⁇ (dn ⁇ thres)),” a similar calculation is performed according to expressions (10)-(12) and expression (9).
- dh 2*
- the pixels as shown in FIG. 11B which comprise rows 2, 3 and 4 of FIG. 8 , are used for horizontal interpolation.
- the estimate and adjust method defined by expression (9) is used, and only the pixels used for interpolation are labelled in FIG. 11B .
- the gradient strength is calculated according to expression (13) and the output is calculated from an average of the 6 green pixels at (1,0), (1,2), (1,4), (3,0), (3,2), and (3,4) according to expression (14).
- dh
- avg h ( g (1,0)+2* g (1,2)+ g (1,4)+ g (3,0)+2* g (3,2)+ g (3,4))/8 (14)
- the value avgh is used as the output value for the green plane when the horizontal direction is determined to be the preferred direction.
- FIG. 12 illustrates an exemplary subset of the five by five array of pixels 800 of FIG. 8 used in estimating a gradient strength and directional interpolated result in the slash direction.
- the gradient estimation for the slash direction may be estimated by the subset of pixels in FIG. 12 according to expression (15) and the interpolated value in the slash direction is given according to expression (16).
- the preferred direction is the slash direction
- the value of the green plane for the output pixel is set to avgsl.
- dsl 2*
- (15) avg sl (3* g (1,2)+ g (3,0)+ g (1,4)+3* g (3,2))/8 (16)
- FIG. 13 illustrates an exemplary subset of the five by five array of pixels 800 of FIG. 8 used in estimating a gradient strength and directional interpolated result in the backslash direction.
- the gradient estimation for the backslash direction may be estimated by the subset of pixels in FIG. 13 according to expression (17) and the interpolated value in the backslash direction is given according to expression (18).
- the preferred direction is the backslash direction
- the value of the green plane for the output pixel is set to avgbs.
- dbs 2*
- avg bs ( g (1,0)+3* g (3,2)+3* g (1,2)+ g (3,4))/8 (18)
- FIG. 14 illustrates another exemplary five by five array of pixels 900 for determining the green component value “g” associated with the output pixel, in accordance with various aspects of the present disclosure.
- the example of FIG. 14 shows a pixel configuration where the center pixel at position (2,2) is a red linear pixel. Accordingly, the computation of a green component value “g” for the red linear pixel at (2,2) is performed by interpolation as described in greater detail below.
- FIGS. 15A and 15B illustrate subsets of the five by five array of pixels 900 of FIG. 14 used in estimating a gradient strength and directional interpolated result in the vertical direction.
- the quantities de and dw are calculated according to expressions (19) and (20) and used to determine whether the east “right” side or the west “left” side may be used for interpolation.
- the gradient strength is calculated according to expression (28) and the output is calculated from an average of the four green pixels at (1,1), (3,1), (1,3), and (3,3) according to expression (29).
- dv
- avg v ( g (1,1)+ g (3,1)+ g (1,3)+ g (3,3))/4
- FIGS. 16A and 16B illustrate subsets of the five by five array of pixels 900 of FIG. 14 used in estimating a gradient strength and directional interpolated result in the horizontal direction.
- the horizontal gradient and the corresponding interpolated value is calculated from the configurations of pixels shown in FIGS. 16A and 16B .
- the configuration of pixels shown in FIGS. 16A and 16B is very similar to those in FIGS. 15A and 15B , except that the patterns are rotated by 90 degrees. Accordingly, the calculations for the horizontal gradient strength and the directional interpolated result are also very similar to the vertical gradient and interpolated value calculations described above, except that the pixel locations correspond to the rotated configuration of pixels shown in FIGS. 16A and 16B .
- the slash gradient and interpolated values of the five by five array of pixels 900 may be calculated according to expressions (30) and (31).
- the backslash gradient and interpolated values may be calculated according to expressions (32) and (33).
- dsl
- avg sl ( g (1,3)+ g (3,1))/2
- dbs 12*( g (1,1) ⁇ g (3,3)
- avg bs ( g (1,1)+ g (3,3))/2 (33)
- the strengths (for example, the absolute value) of the gradients in the four directions are compared to each other.
- a strong gradient in a particular direction indicates that there is a strong edge perpendicular to that direction.
- a strong vertical gradient suggests that there is potentially a strong horizontal edge, and as a result interpolation in the vertical direction is not the preferred direction.
- a determination whether there is a direction having a gradient strength significantly lower than the gradient strength in the other directions is performed.
- “significantly lower” is defined by a gradient strength that is lower than the other gradient strengths by more than a pre-determined constant delta ⁇ .
- delta ⁇ may be chosen as a percentage of the lowest gradient strength value, a percentage of the local average pixel value, a percentage of the maximum value according to the bit depth, or other suitable percentage.
- the direction with the significantly lower gradient strength may be considered the preferred direction for directional interpolation for the particular pixel. Accordingly, interpolation for the pixel is advantageously performed in the preferred direction. In other examples, when the determination does not indicate there is a direction with a significantly lower gradient strength than the other directions, then interpolation is performed in a non-directional manner.
- the green plane has been interpolated according to the above expressions.
- the interpolated green plane in some examples, may be used to estimate gradient information for the purpose of interpolating the red and blue planes.
- the raw data may be used to estimate gradient information for the purpose of interpolating the red and blue planes similar to the description above with respect to interpolating the green plane.
- a five by five array of pixels are used for estimating the gradient information in operation 708 . Since the interpolated green plane is fully populated, any method for calculating gradients may be used in this calculation. Accordingly, the specific calculations of gradient estimation are not further described.
- the gradient strengths are similarly given by the absolute value of the gradients.
- a determination is performed to determine one of the four directions which has a gradient strength significantly lower than the other directions.
- the determination indicates there is a direction with a gradient strength significantly lower than the other directions
- the direction with the lowest gradient strength is selected and designated as the preferred direction for interpolation.
- a preferred direction is not assigned and interpolation is performed in a non-directional manner.
- operation 708 may be skipped and the preferred directions selected in operation 706 may be used for the purpose of interpolating the red and blue planes.
- FIG. 17 illustrates an exemplary seven by seven array of pixels 1000 for determining the red and blue component values associated with the output pixel.
- the values for the red and blue color planes “r” and “b” for pixel location (3,3) of the output pixel are found by interpolation.
- the linear green pixels values “g” are available for all pixel locations.
- the linear pixel values that are available for interpolation in the seven by seven array of pixels 1000 are labelled in FIG. 17 .
- the preferred direction determined above is used to select the pixels to be used in interpolation. Additionally, similar to the interpolation calculations described above, the “estimate and adjust” approach (for example, expression (9)) is used in the interpolation calculations. For ease of understanding, the following description is focused on the interpolation of the red plane since the interpolation of the blue plane may be performed in a similar manner.
- the preferred direction is the vertical direction.
- FIG. 18 illustrates a subset of the seven by seven array of pixels 1000 of FIG. 17 that may be used in vertical interpolation to calculate the red component value “r” for the output pixel.
- the interpolated red value red_v is given according to expression (34).
- red_ v (3* r (2,3)+ r (2,6))/4 (34)
- the preferred direction is the horizontal direction.
- (35) ds
- the “north” pixels will be used for interpolation.
- the “south” pixels will be used for interpolation.
- the calculation using the “south” pixels is according to expressions (40)-(42).
- the slash direction is the preferred direction.
- FIG. 20 illustrates a subset of the seven by seven array of pixels 1000 of FIG. 16 that may be used in interpolation in the slash direction to calculate the red component value “r” associated with the output pixel.
- the backslash direction is the preferred direction.
- FIG. 21 illustrates a subset of the seven by seven array of pixels 1000 of FIG. 16 that may be used in interpolation in the backslash direction to calculate the red component value “r” for the output pixel.
- the interpolated value is given by an average of the neighboring pixels.
- the calculations in the interpolation of the red color plane and the blue color plane depends on the pixel location within the color filter array (for example, the color filter array 200 ). However, even though the calculations are dependent on the pixel location, the calculations may be performed using a similar estimate and adjust approach while taking into account the configuration of valid pixel values (for example, the available linear pixel values).
- FIG. 22 illustrates an exemplary flowchart for an adaptive demosaic algorithm 1100 stored in a non-transitory computer-readable medium and executed by a processing device.
- the adaptive demosaic algorithm 1100 of FIG. 22 will be described with respect to the memory and the processing device of the controller 150 .
- the adaptive demosaic algorithm 1100 may be used with a non-transitory computer-readable medium or a processing device that is external to the controller 150 .
- the adaptive demosaic algorithm 1100 executed by the processing device of the controller 150 , performs a linear pixel interpolation using a first set of signals to determine a linear red-green-blue (rgb) value associated with a given pixel in an array of pixels (at block 1102 ).
- the adaptive demosaic algorithm 1100 executed by the processing device of the controller 150 , performs a logarithmic pixel interpolation using a second set of signals to determine a logarithmic Red-Green-Blue (RGB) value associated with the given pixel in the array of pixels (at block 1104 ).
- the adaptive demosaic algorithm 1100 executed by the processing device of the controller 150 , combines the linear rgb value and the logarithmic RGB value associated with the given pixel in the array of pixels to generate a combined pixel value associated with the given pixel in the array of pixels (at block 1106 ).
- a monochrome sensor that comprises both linear and logarithmic pixels.
- a combined pixel value associated with a given pixel may be calculated by summing a linear pixel value and a logarithmic pixel value for the given pixel.
- blocks 402 , 406 , 408 and 412 in FIG. 4 may be omitted.
- the physical pixel is either a linear pixel or a logarithmic pixel.
- the linear pixel value may be directly obtained and the logarithmic pixel value for the given pixel may be calculated by interpolating (i.e., an interpolation operation) the logarithmic pixel values from neighboring physical logarithmic pixels.
- the logarithmic pixel value may be directly obtained and the linear pixel value for the given pixel may be calculated by interpolating (i.e., an interpolation operation) the linear pixel values from neighboring physical linear pixels.
- the interpolating operations may be done adaptively taking edge information into account, which is simpler than the demosaicing procedure described above because there is only one color plane to be interpolated.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Nonlinear Science (AREA)
- Color Television Image Signal Generators (AREA)
Abstract
Description
dv=4*|g(1,2)−g(3,2)| (2)
avgv=(g(1,2)+g(3,2))/2 (3)
dn=|b(2,1)+r(2,3)−r(0,1)−b(0,3)| (4)
ds=|b(2,1)+r(2,3)−r(4,1)−b(4,3)| (5)
dh=2*|g(1,0)—g(1,2)|+2*|g(1,2)−g(1,4)| (6)
avgh=(g(1,0)+2*g(1,2)+g(1,4))/4 (7)
avgh=avgh+delta_rb (9)
dh=2*|g(3,0)−g(3,2)|+2*|g(3,2)−g(3,4)| (10)
avgh=(g(3,0)+2*g(3,2)+g(3,4))/4 (11)
delta_rb=(b(2,1)+r(2,3)−r(4,1)−b(4,3))/4 (12)
avgh=avgh+delta_rb (9)
dh=|g(1,0)−g(1,2)|+|g(1,2)−g(1,4)|+|g(3,0)−g(3,2)|+|g(3,2)−g(3,4)| (13)
avgh=(g(1,0)+2*g(1,2)+g(1,4)+g(3,0)+2*g(3,2)+g(3,4))/8 (14)
dsl=2*|g(1,2)g(3,0)|+2*|g(1,4)g(3,2)| (15)
avgsl=(3*g(1,2)+g(3,0)+g(1,4)+3*g(3,2))/8 (16)
dbs=2*|g(1,0)−g(3,2)|+2*|g(1,2)−g(3,4)| (17)
avgbs=(g(1,0)+3*g(3,2)+3*g(1,2)+g(3,4))/8 (18)
de=|2*r(2,2)−r(0,4)−(4,4)|+|2*b(2,4)−b(0,2)−b(4,2)| (19)
dw=|2*r(2,2)−r(0,0)−(4,0)|+|2*b(2,0)−b(0,2)−b(4,2)| (20)
dv=2*|g(1,3)−g(3,3)| (21)
avgv=(g(1,3)+g(3,3))/2 (22)
delta_rb=(r(2,2)−(r(0,4)+r(4,4))/2)/2 (23)
avgv=avgv+delta_rb (24)
dv=2*|g(1,1)−g(3,1)| (25)
avgv=(g(1,1)+g(3,1))/2 (26)
delta_rb=(r(2,2)−(r(0,0)+r(4,0))/2)/2 (27)
avgv=avgv+delta_rb (24)
dv=|g(1,1)−g(3,1)|+|g(1,3)−g(3,3)| (28)
avgv=(g(1,1)+g(3,1)+g(1,3)+g(3,3))/4 (29)
dsl=|2*(g(1,3)−g(3,1)| (30)
avgsl=(g(1,3)+g(3,1))/2 (31)
dbs=12*(g(1,1)−g(3,3)| (32)
avgbs=(g(1,1)+g(3,3))/2 (33)
red_v=(3*r(2,3)+r(2,6))/4 (34)
dn=|g(3,3)−g(2,3)| (35)
ds=|g(3,3)−g(4,3)| (36)
avgn=r(2,3) (37)
delta_n=g(3,3)−g(2,3) (38)
red_h=avgn+delta_n (39)
avgs=(r(4,1)+r(4,5))/2 (40)
delta_s=g(3,3)−g(4,3) (41)
red_h=avgs+delta_s (42)
red_h=(2*r(2,3)+r(4,1)+r(4,5))/4 (43)
avg=(3*r(2,3)+r(4,1))/4 (44)
delta_g=g(3,3)−(g(2,3)+g(3,2))/2 (45)
red_sl=avg+delta_g (46)
avg=(3*r(2,3)+r(4,5))/4 (47)
delta_g=g(3,3)−(g(2,3)+g(3,4))/2 (48)
red_bs=avg+delta_g (49)
red_nodir=(2*x(2,3)+x(4,1)+x(4,5))/4 (50)
Claims (21)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/361,958 US9892487B1 (en) | 2016-11-28 | 2016-11-28 | Method and apparatus for combining pixel values in array including linear pixels and logarithmic pixels |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/361,958 US9892487B1 (en) | 2016-11-28 | 2016-11-28 | Method and apparatus for combining pixel values in array including linear pixels and logarithmic pixels |
Publications (1)
Publication Number | Publication Date |
---|---|
US9892487B1 true US9892487B1 (en) | 2018-02-13 |
Family
ID=61147985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/361,958 Active US9892487B1 (en) | 2016-11-28 | 2016-11-28 | Method and apparatus for combining pixel values in array including linear pixels and logarithmic pixels |
Country Status (1)
Country | Link |
---|---|
US (1) | US9892487B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180365802A1 (en) * | 2017-06-15 | 2018-12-20 | Olympus Corporation | Image processing apparatus, image processing method, and non-transitory computer-readable recording medium |
US12323718B2 (en) | 2022-10-11 | 2025-06-03 | Samsung Electronics Co., Ltd. | Image sensor, method of operating the image sensor, and image processing device |
Citations (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5189511A (en) * | 1990-03-19 | 1993-02-23 | Eastman Kodak Company | Method and apparatus for improving the color rendition of hardcopy images from electronic cameras |
US5801773A (en) * | 1993-10-29 | 1998-09-01 | Canon Kabushiki Kaisha | Image data processing apparatus for processing combined image signals in order to extend dynamic range |
US6011251A (en) * | 1997-06-04 | 2000-01-04 | Imec | Method for obtaining a high dynamic range read-out signal of a CMOS-based pixel structure and such CMOS-based pixel structure |
US20020021121A1 (en) * | 2000-07-19 | 2002-02-21 | Satoshi Nakamura | Solid-state image sensing apparatus |
US20040196398A1 (en) * | 2001-06-08 | 2004-10-07 | Eiko Doering | Cmos image sensor and method for operating a cmos image sensor with increased dynamic range |
US20040227109A1 (en) * | 2003-05-06 | 2004-11-18 | Stmicroelectronics Ltd. | Combined linear-logarithmic image sensor |
US20050036041A1 (en) * | 2000-07-13 | 2005-02-17 | Eastman Kodak Company | Method and apparatus to extend the effective dynamic range of an image sensing device |
US20050052547A1 (en) * | 2003-09-09 | 2005-03-10 | Konica Minolta Holdings Inc. | Image-sensing apparatus |
US20050099509A1 (en) * | 2003-11-10 | 2005-05-12 | Fuji Photo Film Co., Ltd. | Image taking apparatus |
US20060215908A1 (en) * | 2005-03-24 | 2006-09-28 | Konica Minolta Holdings, Inc. | Image pickup apparatus and image processing method |
US20080159646A1 (en) * | 2006-12-27 | 2008-07-03 | Konica Minolta Holdings, Inc. | Image processing device and image processing method |
US20080179490A1 (en) * | 2007-01-31 | 2008-07-31 | Sanyo Electric Co., Ltd. | Solid-state image pickup device |
US20080219585A1 (en) * | 2007-03-09 | 2008-09-11 | Masanori Kasai | Image Processing Apparatus, Image Apparatus, Image Processing Method, and Computer Program |
US20080251695A1 (en) * | 2007-04-13 | 2008-10-16 | Konica Minolta Holdings, Inc. | Image sensing apparatus and image sensing method |
US20080260298A1 (en) * | 2007-04-19 | 2008-10-23 | Konica Minolta Holdings, Inc. | Image sensing apparatus and image sensing method |
US20090059040A1 (en) * | 2007-08-28 | 2009-03-05 | Konica Minolta Opto, Inc. | Image processing device, image processing method, and image pickup apparatus |
US20090251571A1 (en) * | 2006-06-14 | 2009-10-08 | Konica Minolta Holdings, Inc. | Imaging apparatus |
US20100309333A1 (en) * | 2009-06-08 | 2010-12-09 | Scott Smith | Image sensors and image reconstruction methods for capturing high dynamic range images |
US20110122282A1 (en) * | 2008-07-25 | 2011-05-26 | Konica Minolta Opto, Inc. | Imaging device |
US20120092539A1 (en) * | 2009-06-15 | 2012-04-19 | Tetsuya Katagiri | Image Pickup Apparatus |
US20120280112A1 (en) * | 2009-11-26 | 2012-11-08 | Isis Innovation Limited | High dynamic range pixel |
US20130208117A1 (en) * | 2010-06-07 | 2013-08-15 | Konica Minolta Advanced Layers, Inc. | Imaging Device |
US20130278791A1 (en) * | 2012-04-18 | 2013-10-24 | Clarion Co., Ltd. | Imaging apparatus |
US8830364B2 (en) * | 2011-03-30 | 2014-09-09 | Fujifilm Corporation | Driving method of solid-state imaging device, solid-state imaging device, and imaging apparatus |
US20150207974A1 (en) * | 2014-01-17 | 2015-07-23 | Texas Instruments Incorporated | Methods and apparatus to generate wide dynamic range images |
-
2016
- 2016-11-28 US US15/361,958 patent/US9892487B1/en active Active
Patent Citations (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5189511A (en) * | 1990-03-19 | 1993-02-23 | Eastman Kodak Company | Method and apparatus for improving the color rendition of hardcopy images from electronic cameras |
US5801773A (en) * | 1993-10-29 | 1998-09-01 | Canon Kabushiki Kaisha | Image data processing apparatus for processing combined image signals in order to extend dynamic range |
US6011251A (en) * | 1997-06-04 | 2000-01-04 | Imec | Method for obtaining a high dynamic range read-out signal of a CMOS-based pixel structure and such CMOS-based pixel structure |
US20050036041A1 (en) * | 2000-07-13 | 2005-02-17 | Eastman Kodak Company | Method and apparatus to extend the effective dynamic range of an image sensing device |
US20020021121A1 (en) * | 2000-07-19 | 2002-02-21 | Satoshi Nakamura | Solid-state image sensing apparatus |
US7609299B2 (en) * | 2000-07-19 | 2009-10-27 | Minolta Co., Ltd. | Solid-state image sensing apparatus |
US20040196398A1 (en) * | 2001-06-08 | 2004-10-07 | Eiko Doering | Cmos image sensor and method for operating a cmos image sensor with increased dynamic range |
US20040227109A1 (en) * | 2003-05-06 | 2004-11-18 | Stmicroelectronics Ltd. | Combined linear-logarithmic image sensor |
US20050052547A1 (en) * | 2003-09-09 | 2005-03-10 | Konica Minolta Holdings Inc. | Image-sensing apparatus |
US20050099509A1 (en) * | 2003-11-10 | 2005-05-12 | Fuji Photo Film Co., Ltd. | Image taking apparatus |
US20060215908A1 (en) * | 2005-03-24 | 2006-09-28 | Konica Minolta Holdings, Inc. | Image pickup apparatus and image processing method |
US20090251571A1 (en) * | 2006-06-14 | 2009-10-08 | Konica Minolta Holdings, Inc. | Imaging apparatus |
US20080159646A1 (en) * | 2006-12-27 | 2008-07-03 | Konica Minolta Holdings, Inc. | Image processing device and image processing method |
US20080179490A1 (en) * | 2007-01-31 | 2008-07-31 | Sanyo Electric Co., Ltd. | Solid-state image pickup device |
US20080219585A1 (en) * | 2007-03-09 | 2008-09-11 | Masanori Kasai | Image Processing Apparatus, Image Apparatus, Image Processing Method, and Computer Program |
US7645978B2 (en) * | 2007-04-13 | 2010-01-12 | Konica Minolta Holdings, Inc. | Image sensing apparatus and image sensing method using image sensor having two or more different photoelectric conversion characteristics |
US20080251695A1 (en) * | 2007-04-13 | 2008-10-16 | Konica Minolta Holdings, Inc. | Image sensing apparatus and image sensing method |
US20080260298A1 (en) * | 2007-04-19 | 2008-10-23 | Konica Minolta Holdings, Inc. | Image sensing apparatus and image sensing method |
US8792017B2 (en) * | 2007-08-28 | 2014-07-29 | Konica Minolta Opto, Inc. | Image processing device, image processing method, and image pickup apparatus |
US20090059040A1 (en) * | 2007-08-28 | 2009-03-05 | Konica Minolta Opto, Inc. | Image processing device, image processing method, and image pickup apparatus |
US20110122282A1 (en) * | 2008-07-25 | 2011-05-26 | Konica Minolta Opto, Inc. | Imaging device |
US8576307B2 (en) * | 2008-07-25 | 2013-11-05 | Konica Minolta Opto, Inc. | Imaging device having a characteristic converting section |
US20100309333A1 (en) * | 2009-06-08 | 2010-12-09 | Scott Smith | Image sensors and image reconstruction methods for capturing high dynamic range images |
US8405750B2 (en) * | 2009-06-08 | 2013-03-26 | Aptina Imaging Corporation | Image sensors and image reconstruction methods for capturing high dynamic range images |
US20120092539A1 (en) * | 2009-06-15 | 2012-04-19 | Tetsuya Katagiri | Image Pickup Apparatus |
US20120280112A1 (en) * | 2009-11-26 | 2012-11-08 | Isis Innovation Limited | High dynamic range pixel |
US20130208117A1 (en) * | 2010-06-07 | 2013-08-15 | Konica Minolta Advanced Layers, Inc. | Imaging Device |
US9294740B2 (en) * | 2010-06-07 | 2016-03-22 | Konica Minolta Advanced Layers, Inc. | Imaging device having a color image generator generating a color image using edge data and a fake color suppressing coefficient |
US8830364B2 (en) * | 2011-03-30 | 2014-09-09 | Fujifilm Corporation | Driving method of solid-state imaging device, solid-state imaging device, and imaging apparatus |
US9131199B2 (en) * | 2012-04-18 | 2015-09-08 | Clarion Co., Ltd. | Imaging apparatus capable of generating an appropriate color image |
US20130278791A1 (en) * | 2012-04-18 | 2013-10-24 | Clarion Co., Ltd. | Imaging apparatus |
US20150207974A1 (en) * | 2014-01-17 | 2015-07-23 | Texas Instruments Incorporated | Methods and apparatus to generate wide dynamic range images |
US9538092B2 (en) * | 2014-01-17 | 2017-01-03 | Texas Instruments Incorporated | Methods and apparatus to generate wide dynamic range images |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180365802A1 (en) * | 2017-06-15 | 2018-12-20 | Olympus Corporation | Image processing apparatus, image processing method, and non-transitory computer-readable recording medium |
US10762600B2 (en) * | 2017-06-15 | 2020-09-01 | Olympus Corporation | Image processing apparatus, image processing method, and non-transitory computer-readable recording medium |
US12323718B2 (en) | 2022-10-11 | 2025-06-03 | Samsung Electronics Co., Ltd. | Image sensor, method of operating the image sensor, and image processing device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5672776B2 (en) | Image processing apparatus, image processing method, and program | |
US7580070B2 (en) | System and method for roll-off correction in image processing | |
US8406557B2 (en) | Method and apparatus for correcting lens shading | |
US7683948B2 (en) | System and method for bad pixel replacement in image processing | |
US9092881B2 (en) | Color interpolation apparatus | |
US20060262196A1 (en) | Image processor | |
CN103202022A (en) | Image processing device and control method thereof | |
CN101494795A (en) | Improved solid state image sensing device, method for arranging pixels and processing signals for the same | |
US8611656B2 (en) | Image processing apparatus, image processing method and recording medium for storing program to execute the method | |
US20090009623A1 (en) | Imaging Device, Video Signal Processing Method, And Video Signal Processing Program | |
JP6980492B2 (en) | Imaging device and imaging system | |
US9892487B1 (en) | Method and apparatus for combining pixel values in array including linear pixels and logarithmic pixels | |
US7831092B2 (en) | Color correction method and color correction device applied to color signal vector using correction matrix | |
JP2007325253A (en) | Recursive filter system for video signal | |
US20100134661A1 (en) | Image processing apparatus, image processing method and program | |
US8817137B2 (en) | Image processing device, storage medium storing image processing program, and electronic camera | |
KR20160114374A (en) | Method for interpolating color filter array based on inter-channel correlation | |
CN113068011B (en) | Image sensor, image processing method and system | |
US9894296B1 (en) | Image sensor having combined responses from linear and logarithmic pixel circuits | |
WO2025090608A1 (en) | Color correction matrix generation for imaging | |
JP2015211343A (en) | Image processing apparatus, image processing method, and program | |
US20120154625A1 (en) | Image processing apparatus, image processing method, and program recording medium | |
US8068145B1 (en) | Method, systems, and computer program product for demosaicing images | |
JP2005295244A (en) | Image processing apparatus, image processing method, image processing program, and storage medium storing image processing program | |
US8174592B2 (en) | Color interpolation device and color interpolation method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SONY CORPORATION, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:WONG, PING W;REEL/FRAME:040908/0421 Effective date: 20161128 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |