Raw scaler with chromatic aberration correction
Abstract
Systems and methods for down-scaling are provided. In one example, a method for processing image data includes determining a plurality of output pixel locations using a position value stored by a position register, using the current position value to select a center input pixel from the image data and selecting an index value, selecting a set of input pixels adjacent to the center input pixel, selecting a set of filtering coefficients from a filter coefficient lookup table using the index value, filtering the set of source input pixels to apply a respective one of the set of filtering coefficients to each of the set of source input pixels to determine an output value for the current output pixel at the current position value, and correcting chromatic aberrations in the set of source input pixels.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method for processing raw image data comprising:
using raw scaler logic of an image signal processor: using a position value stored by a position register to determine a plurality of output pixel locations, wherein each of the plurality of output pixel locations is determined by incrementing the position value using a step value; for each output pixel location corresponding to a current position value stored in the position register:
using the current position value to select a center input pixel from the raw image data and to select an index value, wherein the index value represents a fractional position of a current output pixel at the current position value between two input pixels of the same color, and wherein the raw image data comprises multiple color components in a single plane and corresponds to an image scene captured by a digital image sensor;
selecting a set of input pixels adjacent to the center input pixel, wherein the adjacent input pixels and the center input pixel form a set of source input pixels;
selecting a set of filtering coefficients from a filter coefficient lookup table using the index value;
filtering the set of source input pixels using scaling logic to apply a respective one of the set of filtering coefficients to each of the set of source input pixels to determine an output value for the current output pixel at the current position value;
correcting chromatic aberrations in the set of source input pixels;
processing the output pixels provided by the raw scaler logic to display a visual representation of the image scene on a display device.
2 . The method of claim 1 , wherein selecting the center input pixel comprises:
determining if the current position value corresponds to an even or odd output pixel position; if the current position value corresponds to an even output pixel position, incrementing the current position value by 1 and rounding the result to the nearest even input pixel, wherein the nearest even input pixel is selected as the center input pixel; and if the current position value corresponds to an odd output pixel position, rounding the current position value to the nearest odd input pixel, wherein the nearest odd input pixel is selected as the center input pixel.
3 . The method of claim 2 , wherein determining whether the current position value is even or odd comprises:
determining the value of the least significant bit of the position register, the least significant bit being defined by the step value; identifying the current position value as an even output pixel position if the least significant bit is 0; and identifying the current position value as an odd output pixel position if the least significant bit is 1.
4 . The method of claim 1 , wherein the position register is configured to store a first number of bits corresponding to an integer portion of the current position value, and a second number of bits corresponding to a fraction portion of the current position value.
5 . The method of claim 1 , wherein correcting the chromatic aberrations comprises:
determining green, red, and blue color channel distortions; and warping the red and blue color channel distortions towards the green color channel distortion.
6 . The method of claim 4 , wherein each input pixel of the raw image data is separated from an adjacent input pixel of the same color by a particular number of index steps, and wherein determining the index value comprises:
determining if the current position value corresponds to an even or odd output pixel position; if the current position value corresponds to an even output pixel position, incrementing the current position value by one index step and evaluating the lowest order bit of the integer portion and the two highest order bits of the fraction portion to determine the index value; and if the current position value corresponds to an odd output pixel position, incrementing the current position value by a value equivalent to the sum of 1 and one index step and evaluating the lowest order bit of the integer portion and the two highest order bits of the fraction portion to determine the index value.
7 . The method of claim 6 , wherein the particular number of index steps between adjacent input pixels of the same color is eight.
8 . The method of claim 1 , wherein filtering the set of source input pixels comprises using horizontal and vertical scaling logic.
9 . An image signal processing system comprising:
a raw scaler block comprising:
an input configured to receive raw image data acquired by a digital image sensor; and
a vertical resampler and a horizontal resampler, wherein the vertical resampler and the horizontal resampler are configured to produce X/Y coordinate pairs defining a source of an output sample within a specific color of an input frame and using the X/Y coordinates within the input frame to generate the output sample, the output sample comprising scaled and chromatic aberration corrected raw data.
10 . The image signal processing system of claim 9 , wherein the vertical resampler comprises:
a vertical coordinate generator configured to compute Y coordinates on the sensor for every output sample of the vertical resampler; a Y displacement computation block, configured to compute X and Y displacements of the current vertical resampler output sample; and a vertical sensor to component coordinate translation, configured to translate corrected sensor Y coordinate to the Y coordinate within an appropriate input color frame.
11 . The image signal processing system of claim 10 , wherein the vertical coordinate generator comprises:
a Y digital differential analyzer (YDDA) configured to indicate a position of a current output pixel based upon a step size; and X and Y counters.
12 . The image signal processing system of claim 11 , wherein the Y displacement computation block is configured to:
compute the radius based upon the X counter and the Y coordinates on the sensor; obtain a radial displacement from a lookup table associated with a color of the pixel based upon the radius; and compute a vertical displacement based upon the radial displacement.
13 . The image signal processing system of claim 12 , wherein the vertical sensor to component coordinate translation block is configured to:
add the vertical displacement to the Y coordinates on the sensor to produce a corrected Y coordinate that specifies a vertical position on the sensor corresponding to the output sample.
14 . The image signal processing system of claim 13 , comprising line buffers and a line buffer controller configured to provide up to five vertically adjacent samples from an appropriate color component of the input frame based upon: a color of the sample being generated, the Y coordinates, a horizontal position, a number of vertical filter taps, or a combination thereof
15 . The image signal processing system of claim 14 , comprising a vertical filter configured to produce a weighted sum of the up to five vertically adjacent samples, wherein the weights are based upon a phase input.
16 . The image signal processing system of claim 9 , wherein the horizontal resampler comprises:
a horizontal coordinate generator configured to compute coordinates on the sensor for every output sample; an X displacement computation block configured to compute an X displacement for each output sample; and a horizontal sensor to component coordinate translation block configured to translate a corrected sensor X coordinate to a X coordinate within an appropriate input color frame.
17 . The image signal processing system of claim 16 , wherein the horizontal coordinate generator comprises:
X and Y digital differential analyzers (DDA) configured to indicate a position of a current output pixel based upon a step size; and horizontal and vertical counters configured to count output samples and lines, respectively.
18 . The image signal processing system of claim 16 , wherein the X displacement computation block is configured to:
obtain the X and Y coordinates; compute a radius; retrieve a radial displacement from a lookup table based on the radius; and calculate a horizontal displacement based upon the radial displacement.
19 . The image signal processing system of claim 18 , wherein the horizontal sensor to component coordinate translation block is configured to:
add the horizontal displacement to the X coordinates on the sensor to produce a corrected X coordinate that specifies a horizontal position on the sensor corresponding to the output sample.
20 . The image signal processing system of claim 19 , comprising a shift register and a multiplexer, the shift register and the multiplexer configured to provide nine horizontally adjacent samples from an appropriate color component of a vertically resampled frame, based upon: a color of the sample being generated, the X coordinates, a vertical position, a number of horizontal filter taps, or a combination thereof.
21 . The image signal processing system of claim 20 , comprising a horizontal filter configured to produce a weighted sum of the nine horizontally adjacent samples, wherein the weights are based upon a phase input.
22 . The image signal processing system of claim 9 , comprising:
binning compensation logic configured to select a center input pixel and an index value using the position of the current output pixel; and scaling logic configured to apply multi-tap polyphase filtering to a set of source input pixels selected from the raw image data based upon a set of filtering coefficients selected using the index value, and to determine an output value for the current output pixel based upon the filtering, wherein the center input pixel is positioned at the center of the source input pixels.
23 . An electronic device, comprising:
at least one digital image sensor; at least one lens; an interface configured to communicate with the at least one digital image sensor; a memory device; a display device configured to display a visual representation of one or more image scenes corresponding to raw image data acquired by the at least one digital image sensor; and an imaging signal processing sub-system comprising:
raw scaler logic comprising:
a digital differential analyzer configured to indicate a position of a current output pixel based upon a step size;
an input configured to receive raw image data acquired by a digital image sensor;
scaling logic configured to apply multi-tap polyphase filtering to a set of source input pixels comprising an even number of adjacent input pixels distributed about the center input pixel and having the same color as the center input pixel using a set of filtering coefficients selected using the index value, and to determine an output value for the current output pixel based upon the filtering; and
chromatic aberration correction logic configured to reduce a spatial shift in blue components, red components, or both from a green component caused by chromatic aberrations of the lens.
24 . The electronic device of claim 23 , wherein the at least one digital image sensor comprises at least one of a Bayer color array filter, an RGBW color array filter, a CYGM color array filter, or any combination thereof.
25 . The electronic device of claim 23 , wherein the image signal processing subsystem comprises an image processing pipeline configured to receive the output pixels from the raw scaler logic, to convert the output pixels into a corresponding set of RGB image data, and to convert the RGB image data into a corresponding set of luma and chroma image data;
wherein the image processing pipeline is configured to output the luma and chroma image data to the memory device for storage or to the display device.
26 . The electronic device of claim 23 , wherein the at least one digital image sensor comprises a digital camera integrated with the electronic device, an external digital camera coupled to the electronic device via the interface, or some combination thereof.
27 . The electronic device of claim 23 , comprising at least one of a desktop computer, a laptop computer, a tablet computer, a mobile cellular telephone, a portable media player, or any combination thereof.
28 . The electronic device of claim 23 , wherein the interface comprises a Mobile Industry Processor Interface (MIPI), a Standard Mobile Imaging Architecture (SMIA) interface, or some combination thereof.
29 . The electronic device of claim 23 , wherein the digital differential analyzer is incremented by the step size after the value of the output pixel is determined, and wherein the raw scaler logic determines an output value corresponding to the next output pixel located at a position corresponding to the incremented value stored in the digital differential analyzer.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.