Abstract:
Systems and methods for automatic lens flare compensation may include a non-uniformity detector configured to operate on pixel data for an image in an image sensor color pattern. The non-uniformity detector may detect a non-uniformity in the pixel data in a color channel of the image sensor color pattern. The non-uniformity detector may generate output including location and magnitude values of the non-uniformity. A lens flare detector may determine, based at least on the location and magnitude values, whether the output of the non-uniformity detector corresponds to a lens flare in the image. In some embodiments, the lens flare detector may generate, in response to determining that the output corresponds to the lens flare, a representative map of the lens flare. A lens flare corrector may determine one or more pixel data correction values corresponding to the lens flare and apply the pixel data correction values to the pixel data.
Abstract:
In an embodiment, an electronic device may be configured to capture still frames during video capture, but may capture the still frames in the 4×3 aspect ratio and at higher resolution than the 16×9 aspect ratio video frames. The device may interleave high resolution, 4×3 frames and lower resolution 16×9 frames in the video sequence, and may capture the nearest higher resolution, 4×3 frame when the user indicates the capture of a still frame. Alternatively, the device may display 16×9 frames in the video sequence, and then expand to 4×3 frames when a shutter button is pressed. The device may capture the still frame and return to the 16×9 video frames responsive to a release of the shutter button.
Abstract:
An image signal processor may include a sensor interface that includes a pixel defect preprocessing (PDP) component that performs an initial adjustment of pixel values for patterned defect pixels in raw pixel data captured by an image sensor. To adjust a patterned defect pixel, the PDP component may apply an interpolation technique to values in a gain lookup table according to the pixel's location in the image frame to determine the gain value for the pixel, and then apply the gain value to the pixel. The PDP component may provide the raw pixel data with the adjusted patterned defect pixels to two or more other modules for additional processing. The other modules may include an image processing pipeline that may detect other defective pixels in the raw pixel data and correct the patterned defect pixels and the other defective pixels, for example using a weighted combination of neighboring pixels.
Abstract:
An image processing pipeline may perform temporal filtering on independent color channels in image data. A filter weight may be determined for a given pixel received at a temporal filter. The filter weight may be determined for blending a value of a channel in a full color encoding of the given pixel with a value of the same channel for a corresponding pixel in a previously filtered reference image frame. In some embodiments, the filtering strength for the channel may be determined independent from the filtering strength of another channel in the full color encoding of the given pixel. Spatial filtering may be applied to a filtered version of the given pixel prior to storing the given pixel as part of a new reference image frame.
Abstract:
An image processing pipeline may perform noise filtering and image sharpening utilizing common spatial support. A noise filter may perform a spatial noise filtering technique to determine a filtered value of a given pixel based on spatial support obtained from line buffers. Sharpening may also be performed to generate a sharpened value of the given pixel based on spatial support obtained from the same line buffers. A filtered and sharpened version of the pixel may be generated by combining the filtered value of the given pixel with the sharpened value of the given pixel. In at least some embodiments, the noise filter performs spatial noise filtering and image sharpening on a luminance value of the given pixel, when the given pixel is received in a luminance-chrominance encoding.
Abstract:
A temporal filter in an image processing pipeline may be configured to generate a high dynamic range (HDR) image. Image frames captured to generate an HDR image frame be blended together at a temporal filter. An image frame that is part of a group of image frames capture to generate the HDR image may be received for filtering at the temporal filter module. A reference image frame, which may be a previously filtered image frame or an unfiltered image frame may be obtained. A filtered version of the image frame may then be generated according to an HDR blending scheme that blends the reference image frame with the image frame. If the image frame is the last image frame of the group of image frames to be filtered, then the filtered version of the image frame may be provided as the HDR image frame.
Abstract:
A temporal filter in an image processing pipeline may insert a frame delay when filtering an image frame. A given pixel of a current image frame may be received and a filtered version of the given pixel may be generated, blending the given pixel and a corresponding pixel of a reference image frame to store as part of a filtered version of the current image frame. If a frame delay setting is enabled, the corresponding pixel of the reference image frame may be provided as output for subsequent image processing inserting a frame delay for the current image frame. During the frame delay programming instructions may be received and image processing pipeline components may be configured according to the programming instructions. If the frame delay setting is disabled, then the filtered version of the given pixel may be provided as output for subsequent image processing.
Abstract:
Systems and methods are provided for selectively performing image statistics processing based at least partly on whether a pixel has been clipped. In one example, an image signal processor may include statistics collection logic. The statistics collection logic may include statistics image processing logic and a statistics core. The statistics image processing logic may perform initial image processing on image pixels, at least occasionally causing some of the image pixels to become clipped. The statistics core may obtain image statistics from the image pixels. The statistics core may obtain at least one of the image statistics using only pixels that have not been clipped and excluding pixels that have been clipped.
Abstract:
An input rescale module that performs cross-color correlated downscaling of sensor data in the horizontal and vertical dimensions. The module may perform a first-pass demosaic of sensor data, apply horizontal and vertical scalers to resample and downsize the data in the horizontal and vertical dimensions, and then remosaic the data to provide horizontally and vertically downscaled sensor data as output for additional image processing. The module may, for example, act as a front end scaler for an image signal processor (ISP). The demosaic performed by the module may be a relatively simple demosaic, for example a demosaic function that works on 3×3 blocks of pixels. The front end of module may receive and process sensor data at two pixels per clock (ppc); the horizontal filter component reduces the sensor data down to one ppc for downstream components of the input rescale module and for the ISP pipeline.
Abstract:
Image tone adjustment using local tone curve computation may be utilized to adjust luminance ranges for images. Image tone adjustment using local tone curve computation may reduce the overall contrast of an image, while maintaining local contrast in smaller areas, such as in images capturing brightly lit scenes where the difference in intensity between brightest and darkest areas is large. A desired brightness representation of the image may be generated including target luminance values for corresponding blocks of the image. For each block, one or more tone adjustment values may be computed, that when jointly applied to the respective histograms for the block and neighboring blocks results in the luminance values that match corresponding target values. The tone adjustment values may be determined by solving an under-constrained optimization problem such that optimization constraints are minimized. The image may then be adjusted according to the computed tone adjustment values.