Sparse Histogram Merging for Image Filtering Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing image processing methods using histogram-based convolution operations are inefficient due to the high cost of generating and maintaining histograms, especially for large images or kernels, as they require extensive computations and memory management.

Innovation Solution

The implementation of a sparse histogram merging method using an acceleration data structure that tracks empty and non-zero histogram entries, allowing for efficient merging and updating of histograms, thereby reducing computational complexity and memory requirements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional histogram-based convolution is used for image filtering, then filtering operations can be performed, but the computational cost and memory requirements become excessively high for large images or kernels

Engineering Contradiction:
Improvefiltering accuracyVSAvoidcomputational efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts and processes only the non-zero elements of histograms, separating them from the zero elements. This is achieved by maintaining sorted lists of non-zero elements and their positions, allowing the system to ignore vast portions of the histogram data that would otherwise require processing, thereby dramatically reducing computational cost while preserving filtering accuracy.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent segments the histogram data structure into non-zero elements and zero elements, processing only the non-zero segments. By organizing histogram data as sorted lists of non-zero elements with their positions, the system divides the computational task into manageable segments that can be processed efficiently through merging operations.

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If complete histograms are generated and maintained for all pixel values, then accurate filtering results are obtained, but memory usage and processing time increase significantly

Engineering Contradiction:
Improvehistogram accuracyVSAvoidmemory consumption
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent extracts only the essential non-zero elements from complete histograms, storing them in compact sorted lists along with their positions. This extraction approach maintains the accuracy needed for filtering operations while eliminating the need to store and process all zero elements, thereby significantly reducing memory consumption.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies partial action by processing only the necessary portion of histogram data (non-zero elements) rather than the complete histogram. The sorted list structure allows the system to work with a subset of the full histogram data that is sufficient for accurate filtering, avoiding the excessive memory requirements of maintaining complete histograms.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS7889923B1System and method for sparse histogram merging
Publication Date: 2011.02.15 ADOBE INC
  • US7889923B1 patent drawing
  • US7889923B1 patent drawing
  • US7889923B1 patent drawing

AI summary

A method for merging histograms may include generating a histogram for a region of an image, the histogram including bucket values representing a count of pixels having the same pixel value or a weighting dependent on the pixels. The method may include maintaining an array of values indicating non-zero histogram entries for a group of bucket values (e.g., a count of non-zero bucket values in the group or a bitmask indicating if each bucket value is non-zero). A sparse histogram for which such an array exists may be merged with a second histogram. Merging the histograms may include not merging any bucket values in the group if the associated array value is zero, and merging some or all of the bucket values if it is non-zero. The methods disclosed may be implemented by program instructions executing in parallel on CPU(s) or GPUs.