Triangle Instruction Lists for Cache-Efficient Distortion Correction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Image distortion correction in wide-angle or fisheye lens images captured by motor vehicle cameras is challenging due to cache misalignment and cache trashing, especially when using high distortion lenses, leading to performance penalties and inefficient memory bandwidth usage.
Innovation Solution
A method for generating an ordered list of instructions, or display list, that maps distorted image triangles from a source coordinate system to a destination coordinate system, optimizing texture cache access by dividing the image into sections, defining boundaries, and generating hit-points and hit-lines to minimize cache trashing, using OpenGL or DirectX commands.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Manufacturing precision
If texture mapping is performed on high distortion lenses without optimization, then image distortion correction can be achieved, but cache trashing occurs and memory bandwidth efficiency deteriorates
Solution Approach 1:
The patent divides the image processing into triangular regions and organizes texture coordinates into ordered lists that map to cache-friendly memory patterns. By segmenting the distorted image into triangles and processing them in a specific order, the system achieves accurate distortion correction while maintaining efficient cache utilization and reducing memory bandwidth consumption.
2Area of stationary object
If polygon strips span multiple image areas mapping to the same cache lines, then complete image coverage is achieved, but cache trashing increases and performance penalities occur
Solution Approach 1:
The patent pre-calculates and stores ordered lists of triangle vertices and texture coordinates before actual image rendering. By preparing the coordinate mappings in advance in a cache-friendly format, the system ensures that when images are rendered, the data is already optimally organized for cache access, eliminating cache trashing while maintaining complete image coverage.
3Adaptability or versatility
If ordered list of instructions is generated online during run-time, then real-time adaptation to lens changes is achieved, but processing time and computational overhead increase
Solution Approach 1:
The patent pre-computes the ordered lists of triangle vertices and texture coordinates offline or during initialization phases. These pre-computed ordered lists are stored and can be quickly applied when lens distortion changes occur, allowing the system to adapt to thermal stress, road influence, and other environmental factors without incurring heavy real-time computational overhead.
4Manufacturing precision
If standard rectilinear projection is used for distortion correction, then lens distortion is removed, but fisheye lens characteristics and wide field of view are lost
Solution Approach 1:
The patent applies different projection methods to different regions of the image based on the lens type and desired output. For fisheye lenses, it can apply equirectangular or other appropriate projections to specific angular regions while maintaining the overall wide field of view. This region-specific approach allows accurate distortion correction for each area while preserving the characteristic wide-angle view that fisheye lenses provide.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A system for and a method of generating an ordered list of instructions comprising a list of pixel coordinates which are vertices (53) of triangles (51) in a strip (50) of a reference input image (33'; Fig. 11) in a source coordinate system (30; Fig. 11) such that transformation of the vertices to a corresponding output image (33; Fig. 10) in a destination coordinate system (32; Fig.11) causes the triangles to be mapped to a block (47) of image data which maps to a block of line memory (or "texture cache"). The method comprises dividing the reference output image into a plurality of tiled sections (35; Fig. 11) in the destination coordinate system. The method comprises, for each section, defining first and second boundaries of an array of strips (50) of pixels (46) in the section by dividing the section into blocks of line memory. The method comprises, for each strip, dividing each set of pixels contained in each strip into a series of ordered triangles, generating a set of destination and source coordinates for each vertex of each triangle in the strip and storing the coordinates of the vertices (53) in source and destination coordinate system (30, 32), in the ordered list of instructions.