Vertical-Stripe Distortion Correction With Precomputed Tile Index
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing image correction methods require significant memory resources and increased latency due to inefficient buffering and tile-based approaches, particularly in correcting geometric distortion in images captured by cameras with wide-angle lenses.
Innovation Solution
A method and system for distortion correction that divides images into vertical stripes and processes tiles on a first-come, first-served basis, using precomputed Source Tile Index (STI) and Look-Up Tables (LUTs) split by vertical stripes, reducing memory requirements and latency by processing data as it becomes available.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Manufacturing precision
If tile-based approach with backward mapping is used for distortion correction, then geometric distortion can be corrected, but memory bandwidth and processing latency significantly increase
Solution Approach 1:
The patent precomputes a Source Tile Index (STI) that stores the correct processing order of source tiles before runtime processing. This preliminary action allows the system to process tiles in the optimal order during runtime without recalculating dependencies, significantly reducing processing latency while maintaining distortion correction accuracy.
Solution Approach 2:
The patent divides the image into multiple source tiles and processes them independently according to the precomputed STI order. This segmentation allows parallel processing of multiple tiles and eliminates the need to wait for entire image lines to be available, reducing overall processing time while maintaining correction quality.
2Reliability
If all image lines are buffered in system RAM to obtain the first image block, then complete image data is available for processing, but local memory requirements significantly increase
Solution Approach 1:
The patent segments the image into multiple source tiles that can be processed independently. Instead of buffering all image lines, the system only buffers individual source tiles or small groups of tiles according to the precomputed STI order, dramatically reducing local memory requirements while ensuring data availability for each processing step.
Solution Approach 2:
The STI is precomputed to identify which source tiles need to be buffered and in what order. This preliminary planning allows the system to allocate minimal local memory for only the necessary tiles at any given time, rather than allocating memory for the entire image.
3Manufacturing precision
If tile-based processing with LUT remapping is used, then distortion correction can be performed, but DRAM bandwidth and system cost increase
Solution Approach 1:
The patent precomputes the Source Tile Index that determines the optimal processing sequence of tiles. This allows the system to read and process tiles in an order that maximizes data reuse and minimizes repeated reads from external DRAM, reducing overall bandwidth requirements while maintaining correction quality through proper interpolation.
Data Source
Figure 1~2
Figure 3
Figure 4
AI summary
A method for distortion correction from a distorted source image to a distortion-corrected target image is described, comprising: dividing a target image into at least two vertical stripes; dividing each vertical stripe of the at least two vertical stripes into a plurality of target tiles, each target tile having a target tile position comprising an x coordinate and a y coordinate within the target image; dividing the distorted source image into a plurality of source tiles; and processing the source tiles to produce a source tile index. The method further comprises; reading target tiles of a distorted image of at least one vertical stripe; buffering a subsection of the read target tiles of the distorted image in a dedicated buffer; and performing distortion correction of source tiles of the distorted source image by mapping the subsection of source tiles to corresponding buffered subsection of target tiles of at least one vertical stripe.