Methods and system for efficient processing of generic geometric correction engine
Abstract
An apparatus and method for geometrically correcting a distorted input frame and generating an undistorted output frame. The apparatus includes an external memory block that stores the input frame, a counter block to compute output coordinates of the output frame for a region based on a block size of the region, a back mapping block to generate input coordinates corresponding to each of the output coordinates, a bounding module to compute input blocks corresponding to each of the input coordinates, a buffer module to fetch data corresponding to each of the input blocks, an interpolation module to interpolate data from the buffer module and a display module that receives the interpolated data for each of the regions and stitch an output image. The method includes determining the size of the output block based on a magnification data.
Claims
exact text as granted — not AI-modifiedWe claim:
1 . A method for geometrically correcting an input image with a spatially adaptive slicing apparatus and generating an output frame, said method comprising the steps of:
a) allocating a size for an output frame and dividing the output frame into blocks; each of the blocks having a block size; the block size having a width and a height; the width based on the pixels arranged in a line; the height based on the number of lines; b) capturing the input image with an optical device; c) mapping back each of the blocks in the output frame to correspond to blocks in the input image; d) quantifying scaling data of each of the blocks in the output frame; e) generating a histogram from the scaling data of the output frame; f) identifying scaling thresholds from the histogram; g) plotting a spatial domain plot of the output frame with the scaling data and the scaling thresholds; h) dividing the output frame into regions based on the spatial domain plot and the scaling thresholds; i) computing and dividing each of the regions into output blocks based on the scaling thresholds and the scaling data within the region; j) programming the spatially adaptive slicing apparatus with a size for each of the regions and a size for each of the output blocks in each of the regions; and k) correcting the input frame geometrically for each of the regions across the output frame, composing and displaying the output frame on a graphical device.
2 . The method of claim 1 wherein the optical device is selected from a group consisting of: wide angle lens, fish eye lens, and automotive camera lens.
3 . The method of claim 1 wherein the step (b) of capturing the input image further comprises storing the input image in an external memory.
4 . The method of claim 1 wherein the step (c) of mapping back further comprises generating input coordinates corresponding to each of the blocks in the output frame; the input coordinates further comprising pixel information in the input frame.
5 . The method of claim 1 wherein the size of the output frame configured with an output frame height and a output frame width; the output frame height ranges from 8 to 8094; and the output frame width ranges from 8 to 8094;
6 . The method of claim 1 wherein the number of pixels in the line in step (a) ranges from 8 to 8094;
7 . The method of claim 1 wherein the number of lines in the frame in step (a) ranges from 8 to 8094;
8 . The method of claim 1 wherein the step of mapping back further comprises identifying output corners for each of the blocks; performing a perspective transform on each of the corners; with back mapping finding the input corners corresponding to the output corners after the perspective transformation.
9 . The method of claim 1 wherein the step (d) of quantifying scaling data further comprises determining the number of sub input blocks required to be fetched for each of the blocks in the output frame.
10 . The method of claim 1 wherein the step (f) of identifying scaling thresholds is further determined by grouping output blocks with similar scaling data.
11 . The method of claim 1 wherein the step (h) of dividing the output frame into regions further comprises grouping output blocks with identical scaling data such that the size of each of the region is maximized.
12 . The method of claim 1 wherein the step (h) of programming the spatially adaptive slicing apparatus further comprises writing a size of each of the regions and a size of each of the blocks into a register in a register bank; the register bank maintained in an internal memory of the apparatus.
13 . The method of claim 1 wherein the size of each of the regions is determined by a region width and a region height; the region width ranges from 4 to 8094; and the region height ranges from 2 to 8094.
14 . The method of claim 1 wherein the size of each of the output blocks in each of the regions is determined by an output block width and a output block height; the output block width ranges from 4 to 254; and the output block height ranges from 2 to 254.
15 . The method of claim 1 wherein the step (k) of correcting the output frame further comprises correcting each of blocks in a region in a raster scan mode and moving to next region in a raster scan mode.
16 . The method of claim 1 wherein the step (k) of displaying the output frame further comprises fetching the input blocks for each of the output blocks into an internal memory without overflowing the internal memory.
17 . An apparatus for geometrically correcting an input frame and generating an output frame, said apparatus comprising:
a) a counter block configured to compute output coordinates of the output frame for a region based on a size of the output block of the region; b) a transform and back mapping block configured to generate input coordinates corresponding to each of the output coordinates; c) a bounding module configured to compute input blocks corresponding to each of the input coordinates; d) a buffer module configured to fetch data corresponding to each of the input blocks and store in an internal memory; and e) an interpolation module configured interpolate data received from the buffer module;
wherein
the interpolated data for each of the regions is stitched, composed, and displayed on a display module.
18 . The apparatus of claim 17 wherein an external memory block is configured to store the input frame; said external memory external to the apparatus.
19 . The apparatus of claim 17 wherein the input frame is captured with an optical device; the optical device is selected from a group consisting of: wide angle lens, fish eye lens, and automotive camera lens.
20 . The apparatus of claim 17 wherein the output frame is displayed on a display device; the display device selected from a group consisting of: automotive display, LED monitor, television screen, and LCD monitor.
21 . The apparatus of claim 17 wherein the output coordinates comprise the four corners of a block in the output frame.
22 . The apparatus of claim 17 wherein the input coordinates comprise the four corners of a block in the input frame after perspective transform of the output coordinates and back mapping.
23 . The apparatus of claim 17 wherein input parameters to the apparatus comprise output frame width and output frame height, region width and region height; output block width and output block height within a region.
24 . The apparatus of claim 17 wherein the region width ranges from 4 to 8094; and the region height ranges from 2 to 8094.
25 . The apparatus of claim 17 wherein the output block width ranges from 4 to 254; and the output block height ranges from 2 to 254.
26 . The apparatus of claim 17 wherein the bounding module is further configured to add a buffer pixel pad to each of the input blocks increasing the size of the input blocks.
27 . The apparatus of claim 17 wherein the size of the internal memory ranges from 10 KB to 50 KB.
28 . The apparatus of claim 17 wherein interpolation data is interpolated with a bi-cubic or bilinear interpolation.
29 . The apparatus of claim 17 wherein the output frame is processed in a raster scan mode within each block in a region and within each region.
30 . The apparatus of claim 17 wherein the interpolated data is further processed through modules configured to filter, reduce noise, scaled and formatted.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.