Parallel Image Convolution Using SVD Kernel Decomposition

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveconvolution processing speedVSAvoidalgorithm complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

2Loss of time

If multi-thread programming is employed to reduce computation cost, then processing time decreases, but implementation complexity and overhead increase

Engineering Contradiction:
Improveprocessing timeVSAvoidimplementation complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

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.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

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

Engineering Contradiction:
Improvealgorithm complexityVSAvoidkernel applicability
Core Design Contradiction:
Device complexityVSAdaptability or versatility

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.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8917952B2Parallel image convolution processing with SVD kernel data
Publication Date: 2014.12.23 SIEMENS MEDICAL SOLUTIONS USA INC
  • US8917952B2 patent drawing
  • US8917952B2 patent drawing
  • US8917952B2 patent drawing

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.