Image signal processing involving geometric distortion correction
First Claim
1. An image signal processing system comprising:
- chromatic aberration correction logic configured to at least partially correct for chromatic aberration in image data of a first resolution while the image data is in a Bayer raw format; and
geometric distortion correction logic configured to at least partially correct for geometric distortion in the image data while the image data is in a YCC format and to scale the image data while the image data is in a YCC format, wherein the geometric distortion correction logic comprises;
a first plurality of line buffers configured to store lines of luma component image data;
a vertical luma scaler configured to scale and correct for geometric distortion in a vertical direction using the lines of luma component image data, wherein the vertical luma scaler comprises;
vertical luma coordinate generation logic configured to determine vertically correcting pixel coordinates that, when resampled, would produce vertically geometrically corrected pixels; and
a vertical luma resampling filter configured to resample pixels across a plurality of lines in the line buffers at the vertically correcting pixel coordinates to obtain the vertically geometrically corrected pixels, wherein the vertically geometrically corrected pixels are stored in the line buffers;
a horizontal luma scaler configured to scale and correct for geometric distortion in a horizontal direction using the lines of luma component image data, wherein the horizontal luma scaler comprises;
horizontal luma coordinate generation logic configured to determine horizontally correcting pixel coordinates that, when resampled, would produce horizontally and vertically geometrically corrected pixels; and
a horizontal luma resampling filter configured to resample a plurality of horizontal pixels of a line in the line buffers at the horizontally correcting pixel coordinates to obtain the horizontally and vertically geometrically corrected pixels;
a second plurality of line buffers configured to store lines of chroma component image data;
a vertical chroma scaler configured to scale and correct for geometric distortion in the vertical direction using the lines of chroma component image data, wherein the vertical chroma scaler comprises;
vertical chroma coordinate generation logic configured to determine vertically correcting pixel coordinates that, when resampled, would produce vertically geometrically corrected pixels; and
a vertical chroma resampling filter configured to resample pixels across a plurality of lines in the line buffers at the vertically correcting pixel coordinates to obtain the vertically geometrically corrected pixels, wherein the vertically geometrically corrected pixels are stored in the line buffers; and
a horizontal chroma scaler configured to scale and correct for geometric distortion in the horizontal direction using the lines of chroma component image data, wherein the horizontal chroma scaler comprises;
horizontal chroma coordinate generation logic configured to determine horizontally correcting pixel coordinates that, when resampled, would produce horizontally and vertically geometrically corrected pixels; and
a horizontal chroma resampling filter configured to resample a plurality of horizontal pixels of a line in the line buffers at the horizontally correcting pixel coordinates to obtain the horizontally and vertically geometrically corrected pixels.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods for correcting geometric distortion are provided. In one example, an electronic device may include an imaging device, which may obtain image data of a first resolution, and geometric distortion and scaling logic. The imaging device may include a sensor and a lens that causes some geometric distortion in the image data. The geometric distortion correction and scaling logic may scale and correct for geometric distortion in the image data by determining first pixel coordinates in uncorrected or partially corrected image data that, when resampled, would produce corrected output image data at second pixel coordinates. The geometric distortion correction and scaling logic may resample pixels around the image data at the first pixel coordinates to obtain the corrected output image data at the second pixel coordinates. The corrected output image data may be of a second resolution.
268 Citations
21 Claims
-
1. An image signal processing system comprising:
-
chromatic aberration correction logic configured to at least partially correct for chromatic aberration in image data of a first resolution while the image data is in a Bayer raw format; and geometric distortion correction logic configured to at least partially correct for geometric distortion in the image data while the image data is in a YCC format and to scale the image data while the image data is in a YCC format, wherein the geometric distortion correction logic comprises; a first plurality of line buffers configured to store lines of luma component image data; a vertical luma scaler configured to scale and correct for geometric distortion in a vertical direction using the lines of luma component image data, wherein the vertical luma scaler comprises; vertical luma coordinate generation logic configured to determine vertically correcting pixel coordinates that, when resampled, would produce vertically geometrically corrected pixels; and a vertical luma resampling filter configured to resample pixels across a plurality of lines in the line buffers at the vertically correcting pixel coordinates to obtain the vertically geometrically corrected pixels, wherein the vertically geometrically corrected pixels are stored in the line buffers; a horizontal luma scaler configured to scale and correct for geometric distortion in a horizontal direction using the lines of luma component image data, wherein the horizontal luma scaler comprises; horizontal luma coordinate generation logic configured to determine horizontally correcting pixel coordinates that, when resampled, would produce horizontally and vertically geometrically corrected pixels; and a horizontal luma resampling filter configured to resample a plurality of horizontal pixels of a line in the line buffers at the horizontally correcting pixel coordinates to obtain the horizontally and vertically geometrically corrected pixels; a second plurality of line buffers configured to store lines of chroma component image data; a vertical chroma scaler configured to scale and correct for geometric distortion in the vertical direction using the lines of chroma component image data, wherein the vertical chroma scaler comprises; vertical chroma coordinate generation logic configured to determine vertically correcting pixel coordinates that, when resampled, would produce vertically geometrically corrected pixels; and a vertical chroma resampling filter configured to resample pixels across a plurality of lines in the line buffers at the vertically correcting pixel coordinates to obtain the vertically geometrically corrected pixels, wherein the vertically geometrically corrected pixels are stored in the line buffers; and a horizontal chroma scaler configured to scale and correct for geometric distortion in the horizontal direction using the lines of chroma component image data, wherein the horizontal chroma scaler comprises; horizontal chroma coordinate generation logic configured to determine horizontally correcting pixel coordinates that, when resampled, would produce horizontally and vertically geometrically corrected pixels; and a horizontal chroma resampling filter configured to resample a plurality of horizontal pixels of a line in the line buffers at the horizontally correcting pixel coordinates to obtain the horizontally and vertically geometrically corrected pixels. - View Dependent Claims (2, 3, 4)
-
-
5. An electronic device comprising:
-
an imaging device configured to obtain image data of a first resolution, wherein the imaging device comprises a sensor and a lens that causes some geometric distortion in the image data; and geometric distortion correction and scaling logic configured to scale and correct for geometric distortion in the image data by; storing lines of luma component image data of the uncorrected image frame in a first plurality of line buffers; scaling and correcting for geometric distortion in a vertical direction using the lines of the luma component image data by; using vertical luma coordinate generation logic to determine vertically correcting luma pixel coordinates that when resampled, would produce geometrically corrected luma pixels; using a vertical luma resampling filter to resample pixels across a plurality of lines in the first plurality of line buffers at the vertically correcting luma pixel coordinates to obtain the vertically geometrically corrected luma pixels; and storing the vertically geometrically corrected luma pixels in the first plurality of line buffers; scaling and correcting for geometric distortion in a horizontal direction using the lines of the luma component image data by; using horizontal luma coordinate generation logic to determine horizontally correcting luma pixel coordinates that, when resampled, would produce horizontally and vertically geometrically corrected luma pixels; and using a horizontal luma resampling filter to resample pixels across a plurality of lines in the first plurality of line buffers at the horizontally correcting luma pixel coordinates to obtain the horizontally and vertically geometrically corrected luma component pixels; storing lines of chroma component image data of the uncorrected image frame in a second plurality of line buffers; scaling and correcting for geometric distortion in the vertical direction using the lines of the chroma component image data by; using vertical chroma coordinate generation logic to determine vertically correcting chroma pixel coordinates that, when resampled, would produce vertically geometrically corrected chroma pixels; using a vertical chroma resampling filter to resample pixels across a plurality of lines in the second plurality of line buffers at the vertically correcting chroma pixel coordinates to obtain the vertically geometrically corrected chroma pixels; and storing the vertically geometrically corrected pixels in the second plurality of line buffers; and scaling and correcting for geometric distortion in the horizontal direction using the lines of the chroma component image data by; using horizontal chroma coordinate generation logic to determine horizontally correcting chroma pixel coordinates that, when resampled, would produce horizontally and vertically geometrically corrected chroma pixels; and using a horizontal chroma resampling filter to resample pixels across a plurality of lines in the second plurality of line buffers at the horizontally correcting chroma pixel coordinates to obtain the horizontally and vertically geometrically corrected chroma pixels. - View Dependent Claims (6, 7, 8, 9, 10, 11)
-
-
12. A method comprising:
-
receiving a plurality of pixels of a frame of image data into logic of an image signal processor, wherein the frame of image data has geometric distortion due to a lens through which the image data was obtained; computing a radius of a spatial location of an output pixel from an optical center of the image data aligned with the center of the lens using the logic of the image signal processor; determining a displacement of the spatial location of the output pixel due to geometric distortion based at least in part on the radius, using the logic of the image signal processor; determining correcting pixel coordinates in the uncorrected image frame using the logic of the image signal processor, wherein the correcting pixel coordinates represent a spatial location within the uncorrected image frame that contains image information associated with a corrected version of the output pixel; and resampling the uncorrected frame using a multi-tap filter that includes a pixel closest to the correcting pixel coordinates and other pixels nearby the pixel closest to the correcting pixel coordinates to obtain the output pixel using the logic of the image signal processor, wherein the output pixel is at least partially corrected of geometric distortion; wherein determining the correcting pixel coordinates and resampling the uncorrected frame comprises; storing lines of luma component image data of the uncorrected image frame in a first plurality of line buffers; scaling and correcting for geometric distortion in a vertical direction using the lines of the luma component image data by; using vertical luma coordinate generation logic to determine vertically correcting luma pixel coordinates that when resampled, would produce geometrically corrected luma pixels; using a vertical luma resampling filter to resample pixels across a plurality of lines in the first plurality of line buffers at the vertically correcting luma pixel coordinates to obtain the vertically geometrically corrected luma pixels; and storing the vertically geometrically corrected luma pixels in the first plurality of line buffers; scaling and correcting for geometric distortion in a horizontal direction using the lines of the luma component image data by; using horizontal luma coordinate generation logic to determine horizontally correcting luma pixel coordinates that, when resampled, would produce horizontally and vertically geometrically corrected luma pixels; and using a horizontal luma resampling filter to resample pixels across a plurality of lines in the first plurality of line buffers at the horizontally correcting luma pixel coordinates to obtain the horizontally and vertically geometrically corrected luma component pixels; storing lines of chroma component image data of the uncorrected image frame in a second plurality of line buffers; scaling and correcting for geometric distortion in the vertical direction using the lines of the chroma component image data by; using vertical chroma coordinate generation logic to determine vertically correcting chroma pixel coordinates that, when resampled, would produce vertically geometrically corrected chroma pixels; using a vertical chroma resampling filter to resample pixels across a plurality of lines in the second plurality of line buffers at the vertically correcting chroma pixel coordinates to obtain the vertically geometrically corrected chroma pixels; and storing the vertically geometrically corrected pixels in the second plurality of line buffers; and scaling and correcting for geometric distortion in the horizontal direction using the lines of the chroma component image data by; using horizontal chroma coordinate generation logic to determine horizontally correcting chroma pixel coordinates that, when resampled, would produce horizontally and vertically geometrically corrected chroma pixels; and using a horizontal chroma resampling filter to resample pixels across a plurality of lines in the second plurality of line buffers at the horizontally correcting chroma pixel coordinates to obtain the horizontally and vertically geometrically corrected chroma pixels. - View Dependent Claims (13)
-
-
14. An image signal processing system comprising:
YCC scaling logic configured to scale image data and at least partially correct for geometric distortion in the image data comprising; a first plurality of line buffers configured to store lines of luma component image data; a vertical luma scaler configured to scale and correct for geometric distortion in a vertical direction using the lines of luma component image data, wherein the vertical luma scaler comprises; vertical luma coordinate generation logic configured to determine vertically correcting pixel coordinates that, when resampled, would produce vertically geometrically corrected pixels; and a vertical luma resampling filter configured to resample pixels across a plurality of lines in the line buffers at the vertically correcting pixel coordinates to obtain the vertically geometrically corrected pixels, wherein the vertically geometrically corrected pixels are stored in the line buffers; a horizontal luma scaler configured to scale and correct for geometric distortion in a horizontal direction using the lines of luma component image data, wherein the vertical luma scaler comprises; horizontal luma coordinate generation logic configured to determine horizontally correcting pixel coordinates that, when resampled, would produce horizontally and vertically geometrically corrected pixels; and a horizontal luma resampling filter configured to resample a plurality of horizontal pixels of a line in the line buffers at the horizontally correcting pixel coordinates to obtain the horizontally and vertically geometrically corrected pixels; a second plurality of line buffers configured to store lines of chroma component image data; a vertical chroma scaler configured to scale and correct for geometric distortion in the vertical direction using the lines of chroma component image data, wherein the vertical chroma scaler comprises; vertical chroma coordinate generation logic configured to determine vertically correcting pixel coordinates that, when resampled, would produce vertically geometrically corrected pixels; and a vertical chroma resampling filter configured to resample pixels across a plurality of lines in the line buffers at the vertically correcting pixel coordinates to obtain the vertically geometrically corrected pixels, wherein the vertically geometrically corrected pixels are stored in the line buffers; and a horizontal chroma scaler configured to scale and correct for geometric distortion in the horizontal direction using the lines of chroma component image data, wherein the horizontal chroma scaler comprises; horizontal chroma coordinate generation logic configured to determine horizontally correcting pixel coordinates that, when resampled, would produce horizontally and vertically geometrically corrected pixels; and a horizontal chroma resampling filter configured to resample a plurality of horizontal pixels of a line in the line buffers at the horizontally correcting pixel coordinates to obtain the horizontally and vertically geometrically corrected pixels. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
Specification