Separable Sorting Networks for Fast Median Filtering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional median filter systems are slow, inefficient, and inflexible, particularly when handling large filter sizes or floating-point data types, due to their inability to scale effectively and require extensive memory operations, making them impractical for real-time applications.

Innovation Solution

A separable sorting network approach that shares computations among nearby pixels by precomputing sorted columns and generating output tiles in small tiles, using an interpreter to apply median filters at runtime, allowing for efficient computation and adaptation to varying filter sizes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional sorting networks are used for median filters, then the filter can be applied to specific sizes, but the system becomes slow and cannot scale to large filter sizes

Engineering Contradiction:
Improvefiltering speedVSAvoidfilter size scalability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent divides the sorting network into separable components that can be independently applied to different regions of the image. This allows the same sorting network structure to handle various filter sizes by applying it to overlapping regions, achieving both speed and scalability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a dynamic sorting network that can adapt its behavior based on the required filter size. The network uses a set of primitive operations that can be composed in different ways to handle arbitrary filter sizes, making the system flexible and scalable.

Inventive Principle:
Principle #15Dynamics

2Reliability

If separate code is compiled for each filter size, then the median filter can be optimized for specific sizes, but the system becomes infeasible for arbitrary filter sizes due to excessive memory operations

Engineering Contradiction:
Improvefilter performance for specific sizesVSAvoidcode compilation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent creates a universal sorting network that can handle any filter size by using a fixed set of primitive operations. This single universal network replaces the need for multiple specialized networks, reducing complexity while maintaining performance across all filter sizes.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent uses a template-based approach where a small primitive sorting network is replicated and applied to multiple regions. This copying strategy allows the same efficient primitive operations to be reused for different filter sizes without requiring separate compiled code for each size.

Inventive Principle:
Principle #26Copying

3Productivity

If the number of swap operations is reduced, then the computational burden decreases, but the number of memory operations increases excessively

Engineering Contradiction:
Improvecomputational efficiencyVSAvoidmemory operation time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent combines multiple operations into unified primitive operations that can be executed more efficiently. By merging similar operations and using a separable sorting network approach, the system reduces the total number of memory operations while maintaining computational efficiency.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11756175B2Fast median filters utilizing separable sorting networks
Publication Date: 2023.09.12 ADOBE INC
  • US11756175B2 patent drawing
  • US11756175B2 patent drawing
  • US11756175B2 patent drawing

AI summary

The present disclosure relates to systems, methods, and non-transitory computer readable media for efficiently, quickly, and flexibly applying median filters to digital image utilizing a separable sorting network approach for computation sharing. For example, the disclosed systems generate a modified digital image by determining pixel values for a number of output tiles in applying a median filter. To generate output tiles, in some implementations, the disclosed systems utilize different forms of separability to precompute sorted columns of pixels to reduce the size of per-pixel tasks required to generate output pixels and to share computations among nearby pixels of an input tile captured from a digital image in generating output tiles. In some implementations, the disclosed systems utilize an interpreter to generate and apply a median filter to a digital image at runtime based on a user-selected filter size.