Median Value Determination in SIMD Vector Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for computing median values over 3×3, 5×5, and 7×7 blocks of pixels in video and vision processing applications are inefficient, particularly on SIMD processors, due to high comparison requirements and complex memory access patterns, which degrade performance.

Innovation Solution

A method involving vertical and horizontal sorting of 5×5 arrays using a SIMD processor, followed by selecting and sorting a diagonal portion to determine the median value, reducing the number of comparisons needed from 25 to 13, thereby enhancing computational efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If all values in the array are sorted to find the median, then the median value can be determined, but the number of comparisons required is high (25 comparisons for 5×5 array)

Engineering Contradiction:
Improvemedian value accuracyVSAvoidprocessing speed
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent divides the 5×5 array into multiple rows and columns, performing sorting operations row by row and column by column rather than sorting all 25 elements at once. This segmentation reduces the computational complexity and number of comparisons required to find the median value.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transforms the problem from a one-dimensional sorting problem to a two-dimensional approach by sorting rows and columns separately. By exploiting the 2D structure of the array, the method reduces the number of comparisons from 25 to 13 while still accurately determining the median value.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Measurement precision

If traditional sorting methods are used on SIMD processors, then the median can be computed, but complex memory access patterns degrade performance

Engineering Contradiction:
Improvemedian value computationVSAvoidmemory access complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments the array processing into row-wise and column-wise operations that align with SIMD processor architecture. This segmentation creates regular, predictable memory access patterns that are more efficient on vector processors compared to traditional unstructured sorting approaches.

Inventive Principle:
Principle #1Segmentation

3Measurement precision

If the entire array is sorted to find median, then accurate median value is obtained, but the computational complexity increases

Engineering Contradiction:
Improvemedian value accuracyVSAvoidcomputational complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent extracts only the necessary information needed to determine the median value by sorting rows and columns separately and examining the diagonal element, rather than fully sorting the entire array. This extraction approach reduces computational complexity while maintaining median value accuracy.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of performing a complete sort of all 25 elements, the patent performs partial sorting operations on rows and columns only to the extent necessary to identify the median value through the diagonal element, reducing overall computational complexity.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9665542B2Determining median value of an array on vector SIMD architectures
Publication Date: 2017.05.30 TEXAS INSTRUMENTS INC
  • US9665542B2 patent drawing
  • US9665542B2 patent drawing
  • US9665542B2 patent drawing

AI summary

A method for determining a median value of an array of pixels in a vision system may be performed in an efficient manner using the parallel computing capabilities of a SIMD processing engine. Each column of an array may be sorted in ascending (descending) order to form a first sorted array. Each row of the first sorted array may be sorted in ascending (descending) order to form a second sorted array. A pixel may be selected as the median value from a diagonal portion of the second sorted array, wherein the diagonal portion bisects a lower value region and a higher value region of the second sorted array.