GPU Texture Engine Filter Coefficient Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional techniques for storing filter coefficients in graphics processing units (GPUs) are inflexible and expensive in terms of hardware cost, particularly for filters of large kernel sizes, and require reloading of entire register spaces when switching between filters, limiting flexibility and efficiency in image processing tasks.

Innovation Solution

A GPU is configured to store filter coefficients as a texture memory object in a texture memory, allowing for flexible storage and retrieval of filter coefficients, enabling filtering operations of indefinite size and multiple filter operations simultaneously, using existing texture memory and cache infrastructure.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If filter coefficients are stored in dedicated register spaces, then filtering operations can be performed, but hardware cost and device complexity increase significantly for large kernel sizes

Engineering Contradiction:
Improvefilter kernel size flexibilityVSAvoidhardware cost
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The texture memory is made multi-functional by enabling it to store both texture data and filter coefficients. This allows the same hardware infrastructure to serve multiple purposes, eliminating the need for separate dedicated register spaces for filter coefficients and thereby reducing hardware complexity and cost while maintaining support for various filter kernel sizes

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

Solution Approach 2:

Instead of maintaining separate dedicated storage for filter coefficients, the system copies filter coefficient data into the texture memory structure. This copying approach allows existing texture memory hardware to handle filter coefficient storage, avoiding the need for additional specialized hardware and reducing overall device complexity

Inventive Principle:
Principle #26Copying

2Adaptability or versatility

If entire register spaces are reloaded when switching between filters, then filter switching is supported, but processing time and efficiency decrease

Engineering Contradiction:
Improvefilter switching capabilityVSAvoidfilter switching time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The invention extracts only the necessary filter coefficient data from the full register space and stores it separately in texture memory. This allows the system to load only the required filter coefficients into the texture memory object when switching filters, rather than reloading entire register spaces, thereby reducing switching time and improving processing efficiency

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system performs preliminary action by pre-storing filter coefficients in texture memory before they are needed for filtering operations. This allows filter coefficients to be readily available when filter switching is required, eliminating the need for time-consuming reloading operations during filter transitions

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9646359B2Indefinite texture filter size for graphics processing
Publication Date: 2017.05.09 QUALCOMM INC
  • US9646359B2 patent drawing
  • US9646359B2 patent drawing
  • US9646359B2 patent drawing

AI summary

An example method of filtering in a graphics processing unit (GPU) may include storing, by a texture engine of the GPU, filter coefficients of a filter as a texture memory object (TMO) in a texture cache of the GPU in response to a first instruction. The method may include retrieving, by the texture engine, filter coefficients from the texture cache in response to a second instruction. The method may include storing, by the texture engine, pixel data in the texture cache of the GPU in response to the second instruction. The pixel data may include one or more pixel values. The method may include filtering, by the texture engine, the pixel data stored in the texture cache using the retrieved filter coefficients.