GPU Texture Engine Filter Coefficient Storage
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
2Adaptability or versatility
If entire register spaces are reloaded when switching between filters, then filter switching is supported, but processing time and efficiency decrease
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
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
Data Source
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.


