High order filtering in a graphics processing unit
AssigneeQUALCOMM Incorporated
InventorsLiang Li, Guofang Jiao, Yunshan Kong, Javier Ignacio Girado
Life of this patent
Estimating the term…
Abstract
This disclosure describes techniques for performing high order filtering in a graphics processing unit (GPU). In examples of the disclosure, high order filtering may be implemented on a modified texture engine of a GPU using a single shader instruction. The modified texture engine may be configured to fetch all source pixels needed for the high order filtering and blend them together with pre-loaded filtering weights.
Claims22
A method for performing high ordering filtering in a graphics processing unit (GPU), the method comprising:
- receiving, by the GPU, a single shader instruction to filter a source pixel, wherein the single shader instruction identifies the source pixel to be filtered;
- determining, by a texture engine of the GPU, a filter in response to the single shader instruction by accessing filter information in a weight table register accessible by the texture engine of the GPU, the filter information comprising one or more control bits indicating a filter type, one or more control bits indicating a filter kernel size, and pre-computed filter weights, wherein determining the filter comprises:
- retrieving the one or more control bits indicating the filter type from the weight table register;
- determining the filter type using the one or more control bits indicating the filter type;
- retrieving the one or more control bits indicating the filter kernel size from the weight table register;
- determining the filter kernel size using the one or more control bits indicating the filter kernel size;
- and
- retrieving the pre-computed filter weights from the weight table register based on the determined filter type and the determined filter kernel size;
- retrieving, by the texture engine of the GPU, neighboring pixels based on the determined filter;
- and
- filtering, by the texture engine of the GPU, the source pixel using the determined filter, the source pixel, and the retrieved neighboring pixels.
An apparatus configured to perform high ordering filtering, the apparatus comprising:
- a memory configured to store graphics data;
- and
- a graphics processing unit (GPU) configured to perform high order filtering on the graphics data in response to a single shader instruction that instructs the GPU to filter a source pixel, wherein the single shader instruction identifies the source pixel to be filtered, the GPU further comprising:
- a weight table register configured to store filter information, the filter information comprising one or more control bits indicating a filter type, one or more control bits indicating a filter kernel size, and pre-computed filter weights;
- and
- a texture engine configured to determine a filter in response to the single shader instruction, retrieve neighboring pixels based on the determined filter, and filter the source pixel using the determined filter, the source pixel, and the retrieved neighboring pixels, wherein, to determine the filter, the texture engine is configured to:
- retrieve the one or more control bits indicating the filter type from the weight table register;
- determine the filter type using the one or more control bits indicating the filter type;
- retrieve the one or more control bits indicating the filter kernel size from the weight table register;
- determine the filter kernel size using the one or more control bits indicating the filter kernel size;
- and
- retrieve the pre-computed filter weights from the weight table register based on the determined filter type and the determined filter kernel size.
An apparatus configured to perform high ordering filtering in a graphics processing unit (GPU), the apparatus comprising:
- means for receiving a single shader instruction to filter a source pixel, wherein the single shader instruction identifies the source pixel to be filtered;
- means for determining, by a texture engine of the GPU, a filter in response to the single shader instruction by accessing filter information in a weight table register accessible by the texture engine of the GPU, the filter information comprising one or more control bits indicating a filter type, one or more control bits indicating a filter kernel size, and pre-computed filter weights, wherein the means for determining the filter comprises:
- means for retrieving the one or more control bits indicating the filter type from the weight table register;
- means for determining the filter type using the one or more control bits indicating the filter type;
- means for retrieving the one or more control bits indicating the filter kernel size from the weight table register;
- means for determining the filter kernel size using the one or more control bits indicating the filter kernel size;
- and
- means for retrieving the pre-computed filter weights from the weight table register based on the determined filter type and the determined filter kernel size;
- means for retrieving, by the texture engine of the GPU, neighboring pixels based on the determined filter;
- and
- means for filtering, by the texture engine of the GPU, the source pixel using the determined filter, the source pixel, and the retrieved neighboring pixels.
A graphics processing unit (GPU) configured to perform high ordering filtering in response to a single shader instruction, the GPU comprising:
- a memory configured to store graphics data;
- a weight table register configured to store filter information, the filter information comprising one or more control bits indicating a filter type, one or more control bits indicating a filter kernel size, and pre-computed filter weights;
- and
- a texture engine configured to determine a filter in response to receiving the single shader instruction, wherein the single shader instruction identifies a source pixel to be filtered, retrieve neighboring pixels from the memory based on the determined filter, and filter the source pixel using the determined filter, the source pixel, and the retrieved neighboring pixels, wherein, to determine the filter, the texture engine is further configured to:
- retrieve the one or more control bits indicating the filter type from the weight table register;
- determine the filter type using the one or more control bits indicating the filter type;
- retrieve the one or more control bits indicating the filter kernel size from the weight table register;
- determine the filter kernel size using the one or more control bits indicating the filter kernel size;
- and
- retrieve the pre-computed filter weights from the weight table register based on the determined filter type and the determined filter kernel size.
Dependencies are inferred from the claim text.