Parallel Image Convolution Using SVD Kernel Decomposition
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing image convolution methods are inefficient for large images with non-separable kernels, as they require high computational complexity and cannot be easily parallelized, leading to slow processing times.
Innovation Solution
The use of Singular Value Decomposition (SVD) kernel data allows for parallel processing of image convolution operations by decomposing non-separable kernels into separable components, enabling efficient application across multiple subsets of image data using SIMD techniques like Streaming SIMD Extension (SSE) and OpenMP multi-threading.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If direct convolution implementation is used with moving window, then convolution operation is performed, but algorithm complexity increases to O(m×n×l×o) making it inefficient for large images
Solution Approach 1:
The patent applies segmentation by dividing the convolution operation into independent row processing units. Each row can be processed separately using SIMD instructions, allowing parallel execution across multiple rows. This transforms the single complex convolution operation into multiple simpler, parallelizable operations, reducing overall computational complexity while maintaining processing speed.
2Loss of time
If multi-thread programming is employed to reduce computation cost, then processing time decreases, but implementation complexity and overhead increase
Solution Approach 1:
The patent replaces complex multi-thread programming with SIMD (Single Instruction Multiple Data) machine instructions. Instead of using software-based threading mechanisms that require complex synchronization and thread management, the invention uses hardware-level parallel processing capabilities through SIMD instructions, significantly reducing implementation complexity while achieving parallel processing benefits.
3Device complexity
If separable kernel technique is used, then algorithm complexity reduces to O(m×l×n+m×n×o), but not all two-dimensional kernels are separable
Solution Approach 1:
The patent applies parameter changes by transforming the kernel representation from a two-dimensional non-separable form to a set of one-dimensional separable components through Singular Value Decomposition (SVD). This mathematical transformation changes the kernel parameters into a form that enables efficient separable convolution while maintaining the ability to handle any arbitrary two-dimensional kernel, thus resolving the limitation of non-separable kernels.
Data Source
AI summary
A method of image processing includes receiving camera data representative of an object, implementing, with a processor, a convolution operation on the camera data to generate filtered data representative of the object, the convolution operation being configured with singular value decomposition (SVD) kernel data, and storing the filtered data in a memory. Implementing the convolution operation includes applying the SVD kernel data in parallel to a plurality of subsets of the camera data.


