Merging GPU Filters for Single-Pass Image Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for combining multiple filters in image or video processing require extra memory and suffer from performance overhead due to the need for multiple passes, particularly straining mobile devices with limited computational power.

Innovation Solution

A method to merge multiple filters into a single GPU program using a supplemental transformation filter, allowing for a single pass application without intermediate images, reducing memory usage and processing overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple filters are applied using multiple passes with intermediate images, then each filter can be implemented independently, but extra memory is required and performance suffers

Engineering Contradiction:
Improvefilter independenceVSAvoidmemory usage
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent merges multiple independent filter implementations into a single GPU program that processes all filters in one pass. The system combines color transformation filters, coordinate transformation filters, and supplemental transformation filters into one unified shader program, eliminating the need for intermediate images and multiple render passes while maintaining the functional independence of each filter type through modular organization within the single program.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent creates a universal GPU program structure that can handle multiple types of filters (color transformations, coordinate transformations, supplemental transformations) within a single pass. This multi-functional approach allows the same program to perform diverse filter operations by selectively applying different transformation types based on the input parameters, reducing memory requirements while maintaining versatility.

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

2Ease of manufacture

If multiple passes are used to apply filters, then each filter can be processed sequentially, but processing overhead increases and performance decreases

Engineering Contradiction:
Improvefilter processing simplicityVSAvoidprocessing speed
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent implements continuous processing by applying all filter transformations in a single GPU pass without intermediate storage or pipeline flushes. The unified shader program continuously processes pixels through all filter stages (coordinate transformations, color transformations, supplemental transformations) in one uninterrupted operation, eliminating the overhead of multiple passes while maintaining processing simplicity through structured code organization.

Inventive Principle:
Principle #20Continuity of useful action

3Adaptability or versatility

If multiple render passes are performed, then complex filter combinations can be achieved, but GPU pipeline clearing and switching between passes creates overhead

Engineering Contradiction:
Improvefilter combination capabilityVSAvoidpipeline switching overhead
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent merges multiple filter combination operations into a single GPU program that handles all filter types simultaneously. By combining coordinate transformations, color transformations, and supplemental transformations in one unified shader execution, the system achieves complex filter combinations without the time loss associated with pipeline clearing and switching between multiple passes.

Inventive Principle:
Principle #5Merging (Combining)

4Productivity

If a single GPU kernel is used for a specific filter combination, then performance is improved, but the solution becomes very special purpose and difficult to maintain

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidcode maintenance burden
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the unified GPU program into distinct modular sections for different filter types (coordinate transformations, color transformations, supplemental transformations). Each filter type is implemented as a separate functional block within the single program, allowing efficient single-pass execution while maintaining code organization that reduces maintenance burden. This modular segmentation enables the system to achieve both performance and maintainability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a universal program structure that can handle various filter combinations through parameterized inputs and conditional logic. Rather than creating special-purpose kernels for each filter combination, the system uses a multi-functional framework that adapts to different filter types and combinations, improving efficiency while reducing the maintenance burden of managing multiple specialized kernels.

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

Data Source

PatentUS10049425B2Merging filters for a graphic processing unit
Publication Date: 2018.08.14 GOOGLE LLC
  • US10049425B2 patent drawing
  • US10049425B2 patent drawing
  • US10049425B2 patent drawing

AI summary

Techniques for merging multiple filters into a single GPU program is described. The system includes a filtering engine, which receives an input to apply a plurality of filters to a source image. The filtering engine identifies a first type of filter and a second type of filter from the input. The filtering engine identifies a supplemental transformation filter from the input, implements the supplemental transformation filter using a custom function to generate a color value at the source image and merges the first type of filter and the second type of filter based on the supplemental transformation filter. Finally, the filtering engine may apply the merged filter on the source image to generate a destination image.