CN106575429A - 图形处理单元中的高阶滤波 - Google Patents
图形处理单元中的高阶滤波 Download PDFInfo
- Publication number
- CN106575429A CN106575429A CN201580040823.XA CN201580040823A CN106575429A CN 106575429 A CN106575429 A CN 106575429A CN 201580040823 A CN201580040823 A CN 201580040823A CN 106575429 A CN106575429 A CN 106575429A
- Authority
- CN
- China
- Prior art keywords
- filter
- instruction
- pixel
- weight
- gpu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000001914 filtration Methods 0.000 title claims abstract description 79
- 238000012545 processing Methods 0.000 title claims abstract description 35
- 238000000034 method Methods 0.000 claims abstract description 70
- 230000015654 memory Effects 0.000 claims description 53
- 230000004044 response Effects 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000000926 separation method Methods 0.000 claims 2
- 238000007689 inspection Methods 0.000 claims 1
- 239000000203 mixture Substances 0.000 abstract description 5
- 238000005516 engineering process Methods 0.000 description 55
- 238000003860 storage Methods 0.000 description 41
- 230000008569 process Effects 0.000 description 34
- 230000006870 function Effects 0.000 description 11
- 238000006243 chemical reaction Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 238000009877 rendering Methods 0.000 description 6
- 208000031481 Pathologic Constriction Diseases 0.000 description 5
- 210000001215 vagina Anatomy 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000005611 electricity Effects 0.000 description 3
- 238000005286 illumination Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000004040 coloring Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000003595 mist Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 239000002772 conduction electron Substances 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000005039 memory span Effects 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 230000004899 motility Effects 0.000 description 1
- 239000002159 nanocrystal Substances 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/20—Image enhancement or restoration using local operators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Abstract
本发明描述用于在图形处理单元GPU中执行高阶滤波的技术。在本发明的实例中,可在GPU的经修改的纹理引擎上使用单个着色器指令来实施高阶滤波。所述经修改的纹理引擎可经配置以获取所述高阶滤波所需的所有源像素,并将其连同预加载的滤波权重混合。
Description
技术领域
本发明涉及用于图形处理的技术,且更具体来说,涉及用于高阶滤波的技术。
背景技术
用于显示的视觉内容(例如用于图形用户接口和视频游戏的内容)可由图形处理单元(GPU)产生。GPU可将二维或三维(3D)对象转换成可显示的二维(2D)像素表示。将关于3D对象的信息转换成可显示的位图被称为像素渲染,且需要相当大的存储器和处理能力。在过去,3D图形能力仅可用于强大工作站上。然而,现在3D图形加速器常见于个人计算机(PC)中以及嵌入式装置中,例如智能电话、平板计算机、便携式媒体播放器、便携式视频游戏控制台等。通常,嵌入式装置相比于常规PC具有较少计算能力和存储器容量。因而,当在嵌入式系统上实施此类技术时,3D图形渲染技术中增加的复杂性带来困难。GPU所执行的其它任务包含用于图像处理的滤波任务。此类滤波任务通常是硬件和存储器密集型的,特别是针对移动环境下的GPU操作。
发明内容
本发明描述用于在图形处理单元(GPU)中执行高阶滤波的技术。在本发明的实例中,可在GPU的经修改的纹理引擎上使用单个着色器指令来实施高阶滤波。所述经修改的纹理引擎可经配置以获取源像素的高阶滤波所需的所有像素,并将其连同预加载的滤波权重混合。
在本发明的一个实例中,一种用于在图形处理单元(GPU)中执行高阶滤波的方法包括:通过GPU接收着色器指令以对源像素进行滤波;响应于所述着色器指令,通过所述GPU的纹理引擎来确定滤波器;基于所述所确定的滤波器,通过所述GPU的所述纹理引擎来检索相邻像素;以及通过所述GPU的所述纹理引擎,使用所述所确定的滤波器、所述源像素和所述检索到的相邻像素来对所述源像素进行滤波。
在本发明的另一实例中,一种经配置以执行高阶滤波的设备包括:存储器,其经配置以存储图形数据;以及GPU,其经配置以响应于指令GPU对源像素进行滤波的着色器指令而对所述图形数据执行高阶滤波,所述GPU进一步包括纹理引擎,其经配置以响应于所述着色器指令而确定滤波器,基于所述所确定的滤波器来检索相邻像素,且使用所述所确定的滤波器、所述源像素和所述检索到的相邻像素来对所述源像素进行滤波。
在本发明的另一实例中,一种经配置以执行高阶滤波的设备包括:用于接收对源像素进行滤波的着色器指令的装置;用于响应于所述着色器指令来确定滤波器的装置;用于基于所述所确定的滤波器来检索相邻像素的装置;以及用于使用所述所确定的滤波器、所述源像素和所述检索到的相邻像素来对所述源像素进行滤波的装置。
在本发明的另一实例中,一种经配置以响应于着色器指令来执行高阶滤波的GPU包括:存储器,其经配置以存储图形数据;以及纹理引擎,其经配置以响应于所述着色器指令来确定滤波器,基于所述所确定的滤波器来检索相邻像素,且使用所述所确定的滤波器、所述源像素和所述检索到的相邻像素来对所述源像素进行滤波。
在本发明的另一实例中,一种在GPU中进行滤波的方法包括:通过所述GPU来接收对源像素进行滤波的指令;基于所述指令,通过所述GPU来检索相邻像素;通过所述GPU,填充所述源像素以及在RGBA色彩格式数据结构中检索到的相邻像素的亮度值;通过所述GPU,使用RGBA色彩格式数据结构,对所述源像素和所述检索到的相邻像素的亮度值执行滤波,其中针对每一RGBA色彩格式数据结构,对四个亮度值进行滤波。
在本发明的另一实例中,一种经配置以执行滤波的设备包括:存储器,其经配置以存储图形数据;以及GPU,其经配置以对所述图形数据执行滤波,所述GPU进一步经配置以:接收对源像素进行滤波的指令,基于所述指令来检索相邻像素,填充所述源像素和在RGBA色彩格式数据结构中检索到的相邻像素的亮度值,且使用所述RGBA色彩格式数据结构来对所述源像素和所述检索到的相邻像素的亮度值执行滤波,其中针对每一RGBA色彩格式数据结构,对四个亮度值进行滤波。
在本发明的另一实例中,一种经配置以执行滤波的设备包括:用于接收对源像素进行滤波的指令的装置;用于基于所述指令来检索相邻像素的装置;用于填充所述源像素和在RGBA色彩格式数据结构中检索到的相邻像素的亮度值的装置;以及用于使用所述RGBA色彩格式数据结构来对所述源像素和所述检索到的相邻像素的亮度值执行滤波的装置,其中针对每一RGBA色彩格式数据结构,对四个亮度值进行滤波。
在另一实例中,本发明描述一种存储指令的计算机可读存储媒体,所述指令在被执行时,致使经配置以执行滤波的装置的一或多个处理器:接收对源像素进行滤波的指令;基于所述指令来检索相邻像素;填充所述源像素和在RGBA色彩格式数据结构中检索到的相邻像素的亮度值;以及使用所述RGBA色彩格式数据结构来对所述源像素和所述检索到的相邻像素的亮度值执行滤波,其中针对每一RGBA色彩格式数据结构,对四个亮度值进行滤波。
在附图和下文描述中陈述本发明的一或多个实例的细节。本发明的其它特征、目标和优点将从所述描述和图式以及所附权利要求书显而易见。
附图说明
图1是示出经配置以使用本发明的技术的实例计算装置的框图。
图2是更详细地示出图1的组件的框图。
图3是示出经配置以实施本发明的技术的实例纹理引擎的框图。
图4是示出具有子像素偏移的滤波器权重的导出的概念图。
图5是说明镜像滤波器权重的概念图。
图6A和6B是示出对称滤波器的核心中心的概念图。
图7A和7B是示出具有子像素偏移的对称滤波器的核心中心的概念图。
图8是示出本发明的像素获取技术的概念图。
图9是示出本发明的技术的硬件成本优点的概念图。
图10是示出本发明的技术的存储器获取优点的概念图。
图11是示出用于RGBA像素格式的卷积滤波技术的概念图。
图12是示出用于基于亮度的像素格式的卷积滤波技术的概念图。
图13是示出本发明的亮度填充技术的概念图。
图14是示出本发明的亮度重排技术的概念图。
图15是示出使用本发明的亮度填充技术的针对基于亮度的像素格式的卷积滤波技术的概念图。
图16是示出本发明的实例方法的流程图。
图17是示出本发明的实例方法的流程图。
具体实施方式
对高品质和高分辨率数字图像的需求持续增加。由于高品质和高分辨率数字图像通常具有较大的数据大小,因此用于执行图像处理任务的硬件效率变得更重要。一个此类图像处理任务是图像滤波。
一种常见类型的图像滤波是卷积滤波。在卷积滤波中,将二维(2D)滤波器掩码应用于中心像素和周围像素的像素值(例如色彩值)。就是说,滤波器掩码是滤波器权重的2D矩阵,且将所述滤波器掩码中的每一滤波器权重应用于对应像素(例如当前滤波的像素在中心)。通常,滤波器掩码的形状是正方形。滤波器掩码的大小被称作核心大小。
在卷积滤波中,使每一滤波器权重乘以对应的像素色彩值,且将这些乘法中的每一者的结果加在一起,作为当前像素的经滤波值。在一些实例中,经滤波值可被除和/或具有添加到其的偏置值。可通过改变滤波器掩码中的滤波器权重的值来实现不同类型的滤波。实例类型的滤波包含锐化、边缘寻找、模糊、压印等。
高阶滤波(HOF)是对较大核心大小使用一般化滤波公式(例如可为非线性)的卷积滤波。较大核心大小可被定义为大于2×2(例如大于4个滤波器系数)的任何滤波器核心。由此,执行HOF需要相对较大数目的滤波器权重以及当前像素周围的大量像素。另外,HOF可需要子像素分辨率支持。在给定对HOF的这些要求的情况下,现有解决方案的主要问题是硬件性能和电力容量。
本发明提出用于在图形处理单元(GPU)中执行低成本高阶滤波(LCHOF)的裝置和技术。本发明的LCHOF裝置和技术通过单个着色器指令来支持HOF。在本发明的一个实例中,对于待滤波的每一像素,经LCHOF修改的GPU经配置以从本地高速缓冲存储器获取所有所涉及的像素,并通过预加载的权重将其混合在一起。此方法的优点包含最小化的着色器资源占用,最小化的存储器压力、灵活性以及就所需的额外硬件组件来说的低成本。
图1是说明可用于实施本发明的用于图形处理单元(GPU)上的高阶滤波的技术的实例计算装置2的框图。计算装置2可包括(例如)个人计算机、桌上型计算机、膝上型计算机、平板计算机、计算机工作站、视频游戏平台或控制台、移动电话(例如,蜂窝式或卫星电话、陆线电话、因特网电话)、手持式装置(例如,便携式视频游戏装置或个人数字助理(PDA)、个人音乐播放器、视频播放器)、显示装置、电视机、电视机顶盒、服务器、中间网络装置、主机计算机、任何移动装置或处理和/或显示图形数据的任何其它类型的装置。
如图1的实例中所说明,计算装置2可包含用户输入接口4、中央处理单元(CPU)6、存储器控制器8、系统存储器10、GPU 12、图形存储器14、显示接口16、显示器18以及总线20和22。注意,在一些实例中,图形存储器14可与GPU 12“在芯片上”。在一些情况下,图1中所示的CPU 6、存储器控制器8、GPU 12和图形存储器14以及可能显示接口16可在芯片上,例如在芯片上系统(SoC)设计中。用户输入接口4、CPU 6、存储器控制器8、GPU 12和显示接口16可使用总线20彼此通信。存储器控制器8和系统存储器10也可使用总线22彼此通信。总线20、22可为多种总线结构中的任一者,例如第三代总线(例如,超传输(HyperTransport)总线或无限带宽(InfiniBand)总线)、第二代总线(例如,高级图形端口总线、周边组件互连(PCI)高速总线,或高级可扩展接口(AXI)总线)或另一类型的总线或装置互连件。应注意,图1中所示的不同组件之间的总线和通信接口的特定配置仅是示范性的,且具有相同或不同组件的计算装置和/或其它图形处理系统的其它配置可用于实施本发明的技术。
CPU 6可包括控制计算装置2的操作的通用或专用处理器。用户可将输入提供到计算装置2,以致使CPU 6执行一或多个软件应用程序。在CPU 6上执行的软件应用程序可包含(例如)操作系统、字处理器应用程序、电子邮件应用程序、电子表格应用程序、媒体播放器应用程序、视频游戏应用程序、图形用户接口应用程序或另一程序。另外,CPU 6可执行用于控制GPU 12的操作的GPU驱动程序7。用户可经由一或多个输入装置(未图示)(例如,键盘、鼠标、麦克风、触摸垫或经由用户输入接口4耦合到计算装置2的另一输入装置)将输入提供到计算装置2。
在CPU 6上执行的软件应用程序可包含指令CPU 6致使向显示器18渲染图形数据的一或多个图形渲染指令。在一些实例中,软件指令可符合图形应用程序编程接口(API),例如开放式图形库API、开放式图形库嵌入系统(OpenGL ES)API、Direct3DAPI、X3D API、RenderMan API、WebGL API或任何其它公用或专有标准图形API。为了处理图形渲染指令,CPU 6可将一或多个图形渲染命令发布到GPU 12(例如,通过GPU驱动程序7),以致使GPU 12执行渲染图形数据中的一些或全部。在一些实例中,待渲染的图形数据可包含例如点、线、三角形、四边形、三角形带等图形图元的列表。
在其它实例中,在CPU 6上执行的软件指可致使GPU 12执行通用着色器,其用于执行适用于由GPU硬件的高度平行性质执行的更一般计算。此类通用应用程序可为所谓的通用图形处理单元(GPGPU)且可符合通用API,例如OpenCL。
存储器控制器8促进数据进出系统存储器10的传送。举例来说,存储器控制器8可接收存储器读取和写入命令,且服务关于存储器系统10的此类命令,以便为计算装置2中的组件提供存储器服务。存储器控制器8经由存储器总线22以通信方式耦合到系统存储器10。尽管在图1中将存储器控制器8说明为与CPU 6和系统存储器10两者分开的处理模块,但在其它实例中,存储器控制器8的一些或全部功能性可在CPU 6和系统存储器10中的一或两者上实施。
系统存储器10可存储可由CPU 6存取以用于执行的程序模块和/或指令,和/或由在CPU 6上执行的程序使用的数据。举例来说,系统存储器10可存储窗口管理器应用程序,其由CPU 6使用以在显示器18上呈现图形用户接口(GUI)。另外,系统存储器10可存储用户应用程序以及与所述应用程序相关联的应用程序表面数据。系统存储器10可另外存储由计算装置2的其它组件使用和/或产生的信息。举例来说,系统存储器10可充当用于GPU 12的装置存储器,且可存储将在GPU 12上运算的数据以及从GPU 12执行的运算而产生的数据。举例来说,系统存储器10可存储纹理缓冲器、深度缓冲器、模板缓冲器、顶点缓冲器、帧缓冲器等的任何组合。系统存储器10可包含一或多个易失性或非易失性存储器或存储装置,例如随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、只读存储器(ROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、磁性数据媒体或光学存储媒体。
GPU 12可经配置以执行图形操作以向显示器18渲染一或多个图形图元。因此,当在CPU 6上执行的软件应用程序中的一者需要图形处理时,CPU 6可向GPU 12提供图形命令和图形数据以用于向显示器18渲染。图形数据可包含(例如)绘制命令、状态信息、图元信息、纹理信息等。在一些情况下,GPU 12可内置有高度并行的结构,其提供比CPU 6对复杂图形相关操作的更高效的处理。举例来说,GPU 12可包含经配置而以并行方式对多个顶点或像素操作的多个处理元件。在一些情况下,GPU 12的高度并行性质允许GPU 12比使用CPU 6直接将场景绘制到显示器18更快速地将图形图像(例如,GUI和二维(2D)和/或三维(3D)图形场景)绘制到显示器18上。
在一些情况下,可将GPU 12集成到计算装置2的母板中。在其它情况下,GPU 12可存在于图形卡上,所述图形卡安装在计算装置2的母板中的端口中,或可以其它方式并入在经配置以与计算装置2互操作的外围装置内。GPU 12可包含一或多个处理器,例如一或多个微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它等效的集成或离散逻辑电路。
GPU 12可直接耦合到图形存储器14。因此,GPU 12可在无需使用总线20的情况下从图形存储器14读取数据且将数据写入到图形存储器14。换句话说,GPU 12可使用本地存储装置而非芯片外存储器来在本地处理数据。这通过消除GPU 12经由总线20读取和写入数据的需要来允许GPU 12以更高效的方式操作,其中经由总线操作可经历繁重的总线业务。然而,在一些情况下,GPU 12可不包含单独存储器,而是经由总线20利用系统存储器10。图形存储器14可包含一或多个易失性或非易失性存储器或存储装置,例如随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、磁性数据媒体或光学存储媒体。
CPU 6和/或GPU 12可将经渲染图像数据存储于帧缓冲器15中。帧缓冲器15可为独立存储器或可分配在系统存储器10内。显示接口16可从帧缓冲器15检索数据,并配置显示器18以显示由经渲染图像数据表示的图像。在一些实例中,显示接口16可包含经配置以将从帧缓冲器检索的数字值转换为可由显示器18消耗的模拟信号的数/模转换器(DAC)。在其它实例中,显示接口16可将数字值直接传递到显示器18以用于处理。显示器18可包含监视器、电视机、投影装置、液晶显示器(LCD)、等离子显示面板、发光二极管(LED)阵列(例如有机LED(OLED)显示器)、阴极射线管(CRT)显示器、电子纸、表面传导电子发射显示器(SED)、激光电视显示器、纳米晶体显示器或另一类型的显示单元。显示器18可集成在计算装置2内。举例来说,显示器18可为移动电话的屏幕。或者,显示器18可为经由有线或无线通信链路耦合到计算机装置2的独立装置。举例来说,显示器18可为经由电缆或无线链路而连接到个人计算机的计算机监视器或平板显示器。
根据本发明的一个实例,且如将在下文更详细地阐释,GPU 12可经配置以使用着色器指令来执行HOF。举例来说,GPU 12可经配置以接收对源像素进行滤波的着色器指令,响应于所述着色器指令来确定滤波器,基于所述所确定的滤波器来检索相邻像素,且使用所述所确定的滤波器和检索到的相邻像素来对源像素进行滤波。在本发明的一个实例中,所述所确定的滤波器包括存储在寄存器中的预计算的滤波器权重。
图2是进一步详细地说明图1的CPU 6、GPU 12和系统存储器10的实例实施方案的框图。CPU 6可包含至少一个软件应用程序24、图形API 26和GPU驱动程序7,其中的每一者可为在CPU 6上执行的一或多个软件应用或服务。GPU 12可包含图形处理管线30,所述图形处理管线包含一起操作以执行图形处理命令的多个图形处理级。GPU12可经配置以多种渲染模式执行图形处理管线30,包含分格渲染模式和直接渲染模式。如图2中所示,图形处理管线30可包含命令引擎32、几何处理级34、光栅化级36和像素处理管线38。像素处理管线38可包含纹理引擎39。图形处理管线30中的组件中的每一者可实施为固定功能组件、可编程组件(例如,作为在可编程着色器单元上执行的着色器程序的部分),或实施为固定功能与可编程组件的组合。可用于CPU 6和GPU 12的存储器可包含系统存储器10和帧缓冲器15。帧缓冲器15可为系统存储器10的一部分或可与系统存储器10分开。帧缓冲器15可存储经渲染图像数据。
软件应用程序24可为利用GPU 12的功能性的任何应用程序。举例来说,软件应用24可为GUI应用程序、操作系统、便携式制图应用程序、用于工程或艺术应用程序的计算机辅助设计程序、视频游戏应用,或可利用GPU的另一种类型的软件应用程序。
软件应用程序24可包含指示GPU 12渲染图形用户接口(GUI)和/或图形场景的一或多个绘制指令。举例来说,绘图指令可包含定义将由GPU 12渲染的一组一或多个图形图元的指令。在一些实例中,绘图指令可共同地定义用于GUI中的多个开窗表面的全部或部分。在额外实例中,所述绘图指令可共同地定义图形场景的全部或部分,所述图形场景包含在由应用程序定义的模型空间或世界空间内的一或多个图形对象。
软件应用程序24可经由图形API 26调用GPU驱动程序7,以将一或多个命令发布到GPU 12,以用于将一或多个图形图元渲染为可显示的图形图像。举例来说,软件应用程序24可经由图形API 26调用GPU驱动程序7,以将图元定义提供给GPU 12。在一些情况下,可将呈绘制图元(例如,三角形、矩形、三角扇、三角带等)列表形式的图元定义提供给GPU 12。图元定义可包含指定与将渲染的图元相关联的一或多个顶点的顶点规格。所述顶点规格可包含每一顶点的位置坐标,且在一些情况下包含与顶点相关联的其它属性,例如色彩坐标、法向量和纹理坐标。图元定义还可包含图元类型信息(例如,三角形、矩形、三角扇、三角形带等)、按比例缩放信息、旋转信息等。基于由软件应用程序24发布到GPU驱动程序7的指令,GPU驱动程序7可制定指定供GPU 12执行的一或多个操作以便渲染图元的一或多个命令。在GPU 12从CPU 6接收命令时,图形处理管线30解码所述命令,且配置图形处理管线30内的一或多个处理元件以执行所述命令中指定的操作。在执行指定操作之后,图形处理管线30将经渲染的数据输出到与显示装置相关联的帧缓冲器15。图形管线30可经配置以在多个不同的渲染模式中的一者中执行,包含分格渲染模式和直接渲染模式。
GPU驱动程序7可进一步经配置以编译一或多个着色器程序,且将经编译的着色器程序下载到GPU 12内所包含的一或多个可编程着色器单元上。可使用高级着色语言来编写着色器程序,所述语言例如OpenGL着色语言(GLSL)、高级着色语言(HLSL)、用于图形的C(Cg)着色语言等。经编译的着色器程序可包含控制GPU 12内的可编程着色器单元的操作的一或多个指令。举例来说,着色器程序可包含顶点着色器程序和/或像素着色器程序。顶点着色器程序可控制可编程顶点着色器单元或统一着色器单元的执行,且包含指定一或多个每顶点操作的指令。像素着色器程序可包含控制可编程像素着色器单元或统一着色器单元的执行的像素着色器程序,且包含指定一或多个逐像素操作的指令。
图形处理管线30可经配置以经由图形驱动程序7从CPU 6接收一或多个图形处理命令,且执行图形处理命令以产生可显示的图形图像。如上文所论述,图形处理管线30包含一起操作以执行图形处理命令的多个级。然而,应注意,所述级不需要一定在单独的硬件块中实施。举例来说,几何处理级34和像素处理管线38的部分可实施为统一着色器单元的部分。同样,图形管线30可经配置以在多个不同的渲染模式中的一者下执行,包含分格渲染模式及直接渲染模式。
命令引擎32可接收图形处理命令,且配置图形处理管线30内剩余的处理级以执行用于进行图形处理命令的各种操作。图形处理命令可包含(例如)绘图命令和图形状态命令。所述绘图命令可包含顶点规格命令,所述顶点规格命令指定一或多个顶点的位置坐标,并且在一些情况下,指定与所述顶点中的每一者相关联的其它属性值,例如色彩坐标、法向量、纹理坐标和雾坐标。所述图形状态命令可包含图元类型命令、变换命令、照明命令等。所述图元类型命令可指定将要渲染的图元的类型和/或顶点如何组合以形成图元。所述变换命令可指定对顶点执行的变换的类型。所述照明命令可指定图形场景内的不同光的类型、方向和/或放置。命令引擎32可致使几何处理级34相对于与一或多个所接收到的命令相关联的顶点和/或图元而执行几何处理。
几何处理级34可对一或多个顶点执行每顶点操作和/或图元设置操作,以便产生用于光栅化级36的图元数据。每一顶点可与一组属性(例如,位置坐标、色彩值、法向量和纹理坐标)相关联。几何处理级34根据各种每顶点操作来修改这些属性中的一或多者。举例来说,几何处理级34可对顶点位置坐标执行一或多个变换,以产生经修改的顶点位置坐标。几何处理级34可(例如)将模型化变换、观看变换、投影变换、模型视图(ModelView)变换、模型视图投影(ModelViewProjection)变换、视口变换和深度范围按比例缩放变换中的一或多者应用于顶点位置坐标,以产生经修改的顶点位置坐标。在一些情况下,顶点位置坐标可为模型空间坐标,且经修改的顶点位置坐标可为屏幕空间坐标。可在所述模型化、观看、投影和视口变换的应用之后获得屏幕空间坐标。在一些情况下,几何处理级34还可对顶点执行每顶点照明操作,以产生顶点的经修改的色彩坐标。几何处理级34还可执行其它操作,包含(例如)正常变换、正常规格化操作、观看量修剪、均匀划分和/或隐面消除操作。
几何处理级34可产生包含定义将被光栅化的图元的一组一或多个经修改的顶点的图元数据,以及指定顶点如何组合以形成图元的数据。所述经修改的顶点中的每一者可包含(例如)与所述顶点相关联的经修改的顶点位置坐标和经处理的顶点属性值。所述图元数据可共同地对应于将由图形处理管线30的其它级光栅化的图元。在概念上,每一顶点可对应于图元的其中所述图元的两个边缘会合的隅角。几何处理级34可将图元数据提供到光栅化级36以用于进一步处理。
在一些实例中,几何处理级34的全部或部分可由在一或多个着色器单元上执行的一或多个着色器程序实施。举例来说,在此些实例中,几何处理级34可由顶点着色器、几何着色器或其任何组合实施。在其它实例中,可将几何处理级34实施为固定功能硬件处理管线,或实施为固定功能硬件与在一或多个着色器单元上执行的一或多个着色器程序的组合。
光栅化级36经配置以从几何处理级34接收表示将被光栅化的图元的图元数据,且光栅化所述图元以产生对应于光栅化的图元的多个源像素。在一些实例中,光栅化级36可确定哪些屏幕像素位置由将被光栅化的图元覆盖,且产生用于被确定为由图元覆盖的每一屏幕像素位置的源像素。光栅化级36可通过使用所属领域的技术人员已知的技术来去确定哪些屏幕像素位置由图元覆盖,例如边缘遍历技术、评估边缘等式等。光栅化级36可将所得源像素提供到像素处理管线38以用于进一步处理。
由光栅化级36产生的源像素可对应于屏幕像素位置,例如目的地像素,且与一或多个色彩属性相关联。针对特定光栅化的图元所产生的所有源像素可称为与光栅化的图元相关联。由光栅化级36确定的将由图元覆盖的像素可在概念上包含表示图元的顶点的像素、表示图元的边缘的像素以及表示图元的内部的像素。
像素处理管线38经配置以接收与光栅化的图元相关联的源像素,且对所述源像素执行一或多个逐像素操作。可由像素处理管线38执行的逐像素操作包含(例如)α测试、纹理映射、色彩计算、像素着色、逐像素照明、雾处理、混合、像素所有权文本、源α测试、模板测试、深度测试、剪刀测试和/或点刻操作。另外,像素处理管线38可执行一或多个像素着色器程序以执行一或多个逐像素操作。由像素处理管线38产生的所得数据可在本文中被称作目的地像素数据且存储在帧缓冲器15中。所述目的地像素数据可与帧缓冲器15中的具有与被处理的源像素相同的显示位置的目的地像素相关联。目的地像素数据可包含例如色彩值、目的地α值、深度值等的数据。
纹理引擎39可包括作为像素处理管线38的一部分。纹理引擎39可包含设计成将纹理(纹素)应用于像素的可编程和固定函数硬件两者。纹理引擎39可包含用于执行纹理滤波的专用硬件,借此一或多个纹素值乘以一或多个像素值,并累加以产生最终纹理映射像素。如将在下文更详细地阐释,本发明提出对纹理引擎39的修改,使得纹理引擎39可用于使用单个着色器指令来执行LCHOF。
帧缓冲器15存储GPU 12的目的地像素。每一目的地像素可与唯一屏幕像素位置相关联。在一些实例中,帧缓冲器15可存储每一目的地像素的色彩分量和目的地α值。举例来说,帧缓冲器15可存储每一像素的红色、绿色、蓝色、α(RGBA)分量,其中“RGB”分量对应于色彩值,且“A”分量对应于目的地α值。尽管帧缓冲器15和系统存储器10被说明为单独的存储器单元,但在其它实例中,帧缓冲器15可为系统存储器10的部分。
下文描述本发明的LCHOF技术,包含经修改以支持具有单个着色器指令的HOF的GPU所实施的LCHOF技术。在一个实例中,本发明提出通过修改GPU的纹理引擎(例如GPU 12的纹理引擎39)且利用已经存在的纹理引擎硬件(例如具有寻址和倍增样本获取控制单元的本地高速缓冲存储器)来实施HOF。为了对像素执行HOF,本发明的技术提出使用单个着色器指令来致使纹理引擎39循环通过所有所涉及的周围像素,从本地高速缓冲存储器获取所述周围像素,并将所述周围像素连同预加载的/预计算的滤波器权重混合(例如相乘)。
如上文所论述,当前图像处理任务中对高分辨率和高品质的需要要求硬件以子像素分辨率支持和大滤波核心来高效地执行滤波。各种常用HOF技术可由以下等式表示。对于每一像素(x,y),滤波结果f(x,y)如下:
变量m、n是滤波核心大小。滤波中所涉及的总样本是m*n个。函数fu(ⅰ,x)和fv(ⅰ,y)获得当前像素(x,y)的滤波所涉及的样本像素(例如周围像素)的坐标。举例来说,对于简单的3×3核心,fu(ⅰ,x)=x(ⅰ/3)+1,fv(ⅰ,y)=y-(ⅰ/3)+1。就是说,相对于中心(x,y)的偏移为两个维度中的(-1,0,1)。
对于最传统的滤波应用程序,可将函数f权重(ⅰ,x,y)简化为f权重(i)。就是说,每一样本像素的滤波器权重将仅由其在核心内部的位置(i)确定。较高级且一般的f权重(ⅰ,x,y)映射可允许为每一像素指定的不同权重。举例来说,对于子像素分辨率支持,如果当前像素的坐标(x,y)不位于预定义的核心中心,那么相对偏移将确定当前像素的新权重,其可通过线性内插法(或定义滤波的更精确的公式/曲线,如高斯曲线)从原始f权重(i)和(x-核心中心),(y-核心中心)导出。对于各向异性方向支持,不同核心可用于对每一像素进行滤波。举例来说,可根据当前像素的一些预计算的方向信息来选择不同权重。
用于GPU(或其它硬件)上的HOF的先前技术包含可编程(例如GPU着色器)实施方案和固定管线实施方案。两者均具有缺点。举例来说,GPU中的可编程着色器实施方案以低效率处置HOF。为大滤波核心获得周围像素和滤波器权重分解成多个着色器指令。使用单独的数据加载指令来获取滤波中所涉及的每一周围像素。通过一个或两个指令(例如组合相乘指令和相加指令的乘加(muladd)指令)执行每一周围像素的滤波(即,像素值与滤波器权重的相乘)。此解决方案的主要问题是考虑大量的源数据(即,周围像素)所需的硬件性能/电力的量以及HOF所涉及的滤波器权重。最小化GPU着色器执行路径内部的数据事务(计算权重和中间结果)和最小化从GPU到存储器数据路径的数据事务是优选的。
基于着色器的解决方案使用着色器指令来对每一源数据执行滤波(即,使周围像素乘以滤波器权重产生中间结果),且接着使用其它着色器指令来混合所有中间结果。这种解决方案需要许多着色器资源来存储/传送权重和中间结果。基于着色器的解决方案的另一问题是归因于GPU执行次序,在从本地高速缓冲存储器去除之前,无法完全利用源数据。由此,可需要多次获取相同数据。
考虑基于着色器的实施方案的低效,固定管线实施方案是支持HOF的另一常见选择。在固定管线实施方案中,可添加完全新的专用硬件管线(例如添加到GPU)以实施HOF。然而,此类固定设计限于滤波操作,且可能无法灵活地用于其它操作。此外,固定过滤管线中的数据带宽的设计能以调整来获得良好的性能/电力折衷。固定管线实施方案的另一大关注点是成本。对于许多使用情况,难以证明专用硬件需要HOF,因为HOF通常需要较大的高速缓冲存储器和相关存储器存取逻辑单元(例如等待时间隐藏FIFO缓冲器)。线缓冲器广泛用于这种类型的固定管线实施方案,以获得较好的电力和存储器效率,但如果支持较大的滤波核心,此类线缓冲器的成本也较大。
本发明描述用于可由GPU 12实施的低成本高阶滤波(LCHOF)而无需多个着色器指令或无需额外的专用固定功能硬件来进行滤波的技术。在本发明的实例中,LCHOF技术可由GPU 12的一或多个硬件单元(包含着色器处理器和纹理引擎39)实施。本发明的技术可支持使用单个着色器指令而不是增加处理时间的多个指令在GPU 12上执行的高阶滤波。如下文将描述,可通过更改现有的GPU硬件(例如纹理引擎),通过添加少量逻辑电路来结合现有的本地高速缓冲存储器、寻址和循坏控制电路工作,来实施LCHOF技术。以此方式,本发明中描述的LCHOF技术结合GPU 12的现有硬件来起作用,而不需要大量额外专用硬件来进行滤波。在下文将更详细地描述的本发明的实例中,GPU12可经配置以接收识别待滤波的像素的着色器指令,确定待使用的滤波器的类型和大小,为所述滤波器获得预计算的滤波器权重,且基于所述所确定的滤波器的大小来获取所需的任何周围像素。
图3是示出已经配置以根据本发明的技术来实施HOF的GPU 12和纹理引擎39的实例的框图。如图3中所示,纹理引擎39可包含循环控制和寻址单元40、高速缓冲存储器45、滤波单元47和累加器49。根据本发明的技术,循环控制和寻址单元40可进一步修改以包含和/或存取权重表寄存器41。就是说,权重表寄存器可在循环控制和寻址单元40内部或外部。权重表寄存器41表示可添加到典型现有纹理引擎硬件以实施本发明的HOF技术的额外逻辑电路的一部分。
如图3中所示,GPU 12可接收着色器指令51,其指令GPU12执行滤波操作(例如HOF操作)。着色器指令51可包含待滤波的当前像素值(例如源像素值)的指示符(例如虚拟地址或其它指示符)。应注意,本发明将大体描述待滤波的“像素值”。待滤波的“像素值”可为表示将显示的像素的色彩的一或多个色彩分量。可使用任何色彩格式来表示色彩值。
在一个实例中,像素值可由RGBA色彩格式表示,其中R表示像素色彩的红色值,G表示像素色彩的绿色值,B表示像素色彩的蓝色值,且A表示所述像素的α值(即,深度值)在其它实例中,像素色彩值可由一亮度值(Y)和两个色度值(例如U和V,或Cr和Cb)表示。在一些应用中,对所述色彩值中的每一者(例如RGBA中的每一者)进行滤波可能是合意的。在其它应用程序中,可能需要仅对所述色彩值中的一者进行滤波(例如仅YUV或YCrCb色彩格式中的亮度值Y)。
一旦GPU 12接收到着色器指令51,GPU 12的着色器处理器就可将待滤波的当前像素(例如源像素)的地址传递到纹理引擎39的循环控制和寻址单元40。循环控制和寻址单元40可经配置以确定将从权重表寄存器41应用的滤波器。权重表寄存器41可包含指示滤波器类型、滤波器大小(例如核心大小)和预计算的滤波器权重的寄存器条目。权重表寄存器41中指示的核心大小向循环控制和寻址单元40指示当前像素周围的哪些像素将用于对当前像素进行滤波。基于核心大小,循环控制和寻址单元40可逐个获取将用于对源像素进行滤波的所有周围像素值。可从图形存储器14和/或系统存储器10获取所述周围像素。
循环控制和寻址单元40可将所获取的周围像素值以及源像素存储在高速缓冲存储器45中。滤波单元47经配置以使滤波器核心内的像素(即,源像素和周围像素)乘以存储在权重表寄存器41中的对应滤波器权重。将相乘的结果存储在累加器49。将像素值与对应滤波器权重相乘的后续结果与当前存储在累加器49中的结果相加,直到存储在高速缓冲存储器45中的所有像素值已经滤波。接着可存储累加器49中的最终累加的结果(例如存储在图形存储器14中),作为所述源像素的经滤波的值。
如上文所提到,图3中的纹理引擎39表示已经修改来实施本发明的LCHOF技术的纹理引擎。一个此类修改是添加可经配置以存储关于待应用的滤波器的信息的权重表寄存器41,所述信息包含滤波器类型、滤波器大小和预计算的滤波器权重。在一个实例中,权重表寄存器41中的滤波器类型、滤波器大小和预计算的滤波器权重可由图形驱动程序7和/或软件应用程序24来设定。就是说,可通过设定控制位并将滤波器权重存储在权重表寄存器41中来控制待应用的滤波。权重表寄存器41可包含滤波器大小(例如核心大小),作为垂直和水平维度的两个值(例如M×N,其中M是水平维度,且N是垂直维度)。在其它实例中,权重表寄存器41可存储滤波器大小的单个值,其指示所述核心中的滤波器权重的总数(例如存储M×N的乘积的值)。在此实例中,假定总滤波器核心是正方形的。可存储在权重表寄存器41中的滤波器类型控制位的一般实例包含可指示滤波器核心是(1)可分离的或不可分离的,(2)各向同性还是非各向同性的,以及(3)对称或非对称的控制位。
可分离的滤波器是其中核心中的每一位置的滤波器权重值等于M维度中的权重乘以N维度中的权重的滤波器。因此,如果权重表寄存器41中的控制位指示滤波核心是可分离的,那么需要较少的滤波权重存储在权重表寄存器中。就是说,对于大小M*N的滤波器核心,滤波核心是可分离的指示意味着仅存储M+N个滤波器权重,而不是用于不可分离的滤波器的M*N个权重。
如果权重表寄存器41包含指示所述滤波器是可分离滤波器的控制位,那么可使用额外的控制位来指示滤波器是各向同性还是非各向同性的。各向同性滤波器是其中水平和垂直权重是可分离的且相同的滤波器。在其中滤波器是可分离的且各向同性的情况下,需要存储在权重表寄存器中的权重的数目的大小可从M+N(可分离的,但非各向同性的滤波器)减小到M个权重(可分离的且各向同性的)。
类似于各向同性滤波器,如果权重表寄存器41包含指示滤波器是可分离滤波器的控制位,那么可使用额外控制位来指示滤波器是对称的还是不对称的。对称滤波器在中轴线(或水平或垂直)的两侧具有相同的权重。对称滤波器可为各向同性或非各向同性的。对于对称滤波器,需要将仅一半典型数目的滤波器权重存储在权重表寄存器41中。举例来说,非各向同性且对称的可分离滤波器将需要存储(M+N)/2个滤波器权重。各向同性且对称的可分离滤波器将需要存储M/2个滤波器权重。
本发明中另一滤波器权重存储优化是针对子像素分辨率,其中权重表寄存器41仅需要存储一半的权重集合。在使用子像素偏移时,另一半的权重可从所存储的一半导出。图4是示出具有子像素偏移的滤波器权重的导出的概念图。在图4中,曲线的高度表示滤波器权重的值。垂直线表示纹素的位置。可定义子像素偏移值(subpixoffset),其基本上将所述纹素移动到权重曲线的不同部分。多个子像素偏移值可存储在权重表寄存器41中,以基本上提供多组不同的滤波器权重。
如上文所论述,对于一些滤波器类型,不到全部数目的所需滤波器权重可存储在权重表寄存器41中。在此情况下,纹理引擎39可经配置以基于所指示的滤波器类型,从存储在权重表寄存器41中的那些滤波器权重导出所需的额外数目个滤波器权重。图5是说明用于镜像处理或通常为对称滤波器导出滤波器权重的技术的概念图。举例来说,对于关于垂直轴线对称的滤波器,来自区域102和104的滤波器权重可关于垂直轴线镜像。作为另一实例,对于关于水平轴对称的滤波器,区域106、108和110中的滤波器权重可关于水平轴镜像。
根据本发明的HOF技术,纹理引擎39的循环控制和寻址单元40的寻址块可经配置以产生和/或获取对源像素进行滤波所必需的样本(例如周围像素值)。如上文所论述,源像素,或源像素的位置可从着色器指令51提供到纹理引擎39。循环控制和寻址单元40经配置以存取权重表寄存器41,以确定滤波器类型和滤波器大小。基于源像素的位置、所述所确定的滤波器类型和所述所确定的滤波器大小,循环控制和寻址单元40获取执行滤波所需的所有样本(例如周围像素)。每一样本可分解为基本处理单元,其在一个实例中为四个像素。
基于所述所确定的滤波器和滤波器大小,循环控制和寻址单元40基于所确定的核心中心以及权重表寄存器41中指示的任何所指示子像素支持来获取周围像素。对于子像素分辨率滤波(例如如由权重表寄存器41中的控制位指示),循环控制和寻址单元40可经配置以在源样本相对于像素位置的距离归因于源样本坐标扣合到整数坐标而改变时,确定对应于滤波权重的样本像素的位置。举例来说,图6A示出在一个维度中具有偶数个权重的滤波器核心。在此实例中,循环控制和寻址单元40可定义像素P的位置,使得滤波器权重(w0到w3)平均分布在核心中心(在此情况下,在位置4.0处)的两侧。在图6A中,在权重表寄存器41中指示对称滤波器,因此滤波器权重w0到w3镜像在核心中心的两侧。
图6B中示出另一对称情况滤波器实例。在此实例中,核心大小在一个维度中包含九个滤波器权重。图6B中的核心中心在位置4.5,对应于唯一滤波器权重w4。滤波器权重w0到w3镜像在滤波器中心的两侧。对于子像素分辨率支持,可相对于核心中心来定义偏移。在此情况下,滤波器权重可镜像到核心中心的右侧。
如图7A中所示,像素P'处的核心中心向所述核心中心(在位置4.0处)左侧移动子像素偏移值。在图7B中,使像素P'向核心中心4的右侧移动子像素偏移值。图7B中的权重相对于图7A中的权重镜像,因为像素P'的位置相对于位置4.0处的核心中心对称。
综上所述,根据本发明的技术,描述一种用于在GPU 12中执行高阶滤波的方法。所述方法可包含:通过GPU 12接收对源像素进行滤波的着色器指令51;响应于所述着色器指令,通过GPU 12的纹理引擎39来确定滤波器。纹理引擎39可从存储在权重表寄存器41中的控制位确定所述滤波器。纹理引擎39可进一步经配置以基于所述所确定的滤波器来检索相邻像素,且使用所述所确定的滤波器、所述源像素和所述检索到的相邻像素来对源像素进行滤波。
返回到图3,现将描述纹理引擎39的权重表寄存器41的具体实例硬件实施方案。如上文所论述,权重表寄存器41可包含多个寄存器,其包含指示滤波器类型、滤波器大小(例如核心大小)和滤波器权重本身的控制位。权重表寄存器41可由在CPU 6上执行的GPU驱动程序7和/或软件应用程序24填充。在一些实例中,权重表寄存器41可由在GPU 12上执行的着色器程序填充。
在实例实施方案中,权重表寄存器41可包含以下寄存器:
1)滤波器类型寄存器:滤波器类型寄存器包含指示各种类型的滤波器的控制位。举例来说,控制位可指示滤波器是否是可分离的、各向同性的或对称的。滤波器类型寄存器可进一步包含指示是否支持子像素滤波的控制位。如上文所描述,某些滤波器类型可允许存储少于所有的滤波器权重,因为所需的滤波器权重的仅一部分可用于镜像,或通常导出所需的其余滤波器权重。
2)滤波器大小寄存器:滤波器大小寄存器包含指示滤波器核心的大小的控制位。滤波器核心的大小可在两个方向(例如标记为U和V)上指示。由此,滤波器核心不一定是正方形的,而是可为矩形的。另外,通过使某些滤波器权重为零值,其它形状的滤波器核心是可能的。
3)滤波器权重寄存器:滤波器权重寄存器包含滤波器权重本身。
循环控制和寻址单元40可经配置以如下利用权重表寄存器41中的信息。最初,循环控制和寻址单元40可经配置以确定在给定权重表寄存器41中所指示的滤波器类型和滤波器大小的情况下,需要通过纹理引擎39多少遍(循环)。循环控制和寻址单元40还经配置以根据来自权重表寄存器41的滤波器大小和滤波器类型信息,来确定将为每一循环获取哪些像素。
在一个实例中,纹理引擎39可经配置以在每一循环中处理四个像素(即,四个像素基本处理单元)。其它实例纹理发动机可经配置以每循环处理更多或更少的像素。在四像素基本处理单元的实例中,权重表寄存器41所指示的滤波操作中所涉及的所有像素分解为一或多个四像素块。为了改进高速缓冲存储器获取的地点和效率,可以图8中所示的扫描次序来获取四像素块。图8示出四像素块(标记为dp4)的实例获取次序,其中从第1dp4开始获取第一行四像素块。在图8的实例中,核心大小在U方向上的宽度是20个像素。在获取第5个dp4(即,第五个四像素块)之后,待获取的下一四像素块位于第5个dp4正下方的行中。循环控制和寻址单元40将接着在相反方向上(即,从右到左)从下一行获取四像素块。循环控制和寻址单元40所获取的每一四个像素块将存储在高速缓冲存储器45中。存储在高速缓冲存储器45中的四像素块将发送到滤波单元47,以应用相关的滤波器权重,且接着累加器49将使应用于所述四像素块的权重的结果与全部的先前滤波结果相加。
如上文所描述,用于纹理引擎39(例如处理四像素块)的每一循环的权重是选自可从存储在权重表寄存器41中的权重值导出的预定义权重表。为了节约硬件成本,并改进加载那些权重的效率,存储在权重表寄存器41中的权重值可根据滤波器类型(例如对称/可分离/各向同/子像素精度)来压缩。接着,循环控制和寻址单元40可导出特定滤波器类型所需的所有滤波器权重(例如如上文参看图5所论述)。
在一些实例中,为了改进滤波的质量,权重表寄存器41中的预存储滤波器权重可在滤波之前放大。在滤波之后,完成的经滤波值接着可缩小。举例来说,通过对所有所涉及的像素求平均来产生结果的16*16核心将使每一像素的权重除以256(即,1/(16*16)=1/256)。通过利用放大,可将每一权重调整到1,以获得中间结果的较高精度。最终结果将在累加器49中缩小1/256。
在其它实例中,本发明的HOF技术可应用于多样本抗混(MSAA)表面,针对对称滤波器具有轻微定义改变。对于MSAA表面,每一像素值可由多个子样品组成。在此实例中,用于MSAA表面的滤波器权重可为不可分离的,但仍可为对称的。当对MSAA表面应用HOF时,每一滤波器权重对应于MSAA表面中的子样品中的一者。可通过使核心大小乘以MSAA表面中的样本的数目来扩展U维度权重。V维度权重将与非MSAA情况下相同。
图9是示出本发明的用于使用经修改的纹理引擎39来执行高阶滤波的技术的一个优点的概念图。如图9中所示,为了使用完全专用的固定管线来执行高阶滤波,将需要完全新的硬件来用于循环控制、寻址、高速缓冲存储器、滤波和累加。实情为,使用根据本发明的技术的现有经修改纹理引擎,可用最少的额外硬件(即,主要是权重表寄存器41的添加)来实现高阶滤波。
图10是示出本发明的用于使用单个着色器指令和经修改纹理引擎39来执行高阶滤波的技术的另一优点的概念图。在用于高阶滤波的常规基于着色器的解决方案中(即,不使用本发明的HOF技术),需要多个着色器指令来执行每一像素获取、权重确定、像素/权重相乘和累加。由此,存储器存取以获取和存储中间结果(即,像素/权重相乘和累加),在分布广泛的存储器位置中利用大量存储器。然而,使用本发明的HOF技术,存储器存取限于获取相邻像素,其很可能在存储器中接近地存储在一起。这是因为滤波的所有中间最终结果存储在纹理引擎39中的本地高速缓冲存储器中。由此,本发明的技术实现更高效的存储器占用率。
在本发明的另一方面中,可通过将像素的亮度值填充到经配置以对RGBA(红色、蓝色、绿色、α(深度))像素值数据结构的所有四个值进行滤波的滤波器框架中,来为一些使用情况改进滤波通过量。
图11是示出卷积滤波实例(例如高阶卷积滤波)的概念图,借此纹理引擎(例如纹理引擎39)经配置以同时将滤波应用于像素值的R、G、B和A分量。也就是说,纹理引擎39可经配置以使用RGBA色彩格式数据结构来执行高阶滤波。如在图11中可看到,像素P0到P3可各自由R、G、B和A值组成。当将滤波器权重200(WO到W3)应用于P0到P3以执行2×2卷积时,权重W0到W3中的每一者同等地应用于每一像素的相应R、G、B和A值中的每一者。就是说,为了产生R分量的经滤波值(RCONV),将权重W0应用于像素P0的R0,将权重W1应用于像素P1的R1,将权重W2应用于像素P2的R2,且将权重W3应用于像素P3的R3。类似地,为了产生G分量的经滤波值(GCONV),将权重W0应用于像素P0的G0,将权重W1应用于像素P1的G1,将权重W2应用于像素P2的G2,且将权重W3应用于像素P3的G3。重复此过程,以产生每一B(BCONV)和A(ACONV)分量的经滤波值。
图11中所示的技术实现RGBA像素的每一色彩分量的并行处理。此类处理结构在输入像素值和经滤波输出像素值两者均是RGBA色彩格式时作用良好。然而,在一些应用中,例如视频数据,不以RGBA色彩格式来存储像素值,而是以由亮度值(例如表示为Y)和一或多个色度分量(例如表示为U和V,或表示为Cr和Cb)组成的色彩格式来存储。当像素值以此格式存储时,仅对每一像素的亮度分量进行滤波可为合意的。如果仅对每一像素的亮度分量进行滤波,那么纹理引擎39的并行处理结构将不利用指定用于对G、B和A分量进行滤波的硬件(即,假定指定用于对R分量进行滤波的硬件是用于亮度分量)。
在纹理引擎39可经配置以同时对四个色彩分量(例如RGBA)进行滤波的条件下,本发明提出用以通过将四个像素的亮度分量填充到一个RGBA色彩格式数据结构中来增加对以YUV或YCrCb色彩格式存储的像素的亮度分量进行滤波的通过量的技术。以此方式,可同时对四个像素的亮度分量进行滤波。在一些实例中,待滤波的像素已经以包含亮度分量的色彩格式存储。在其它实例中,GPU 12或CPU 6可经配置以将像素值从RGBA格式转换到包含亮度分量(例如YUV或YCrCb)的格式。本发明的填充技术可结合上文所述的HOF技术使用(例如其中基于单个着色器指令从权重表寄存器检索滤波器类型和权重)。然而,本发明的填充技术可与其它滤波技术一起使用,包含其中通过GPU12来计算/导出滤波器权重的那些滤波技术。
图12是示出对亮度值的卷积滤波技术的概念图。如图12中所示,可使用滤波器权重W0到W3 200来将2×2卷积滤波应用于亮度值Y0、Y1、Y2和Y3中的每一者。亮度值Y0到Y3是四个相应源像素的亮度分量。为了产生经滤波值Y0CONV,使用由源像素Y0和相邻像素Y1、Y8和Y9组成的块300。为了产生Y0亮度值的经滤波值(Y0CONV),将权重W0应用于Y0,将权重W1应用于Y1,将权重W2应用于Y8,且将权重W3应用于Y9。类似地,为了产生经滤波值Y1CONV,使用由源像素Y1和相邻像素Y2、Y9和Y10组成的块302。为了产生Y1亮度值的经滤波值(Y1CONV),将权重W0应用于Y1,将权重W1应用于Y2,将权重W2应用于Y9,且将权重W3应用于Y10。
图13是示出本发明的亮度填充技术的概念图。在图13中,将亮度值Y0到Y15的块300填充到RGBA色彩格式数据结构306、308、310、312中。色彩格式数据结构306、308、310、312是可由GPU 12(例如由GPU 12的纹理引擎39)处理的数据结构的实例。通常,RGBA色彩格式数据结构306、308、310、312将含有四个像素的RGBA分量值。使用上文所述的技术,纹理引擎39将经配置以同时对一个像素的所有RGBA色彩分量进行滤波。根据本发明的填充技术,可将四个不同像素的四个亮度值填充到单个RGBA色彩格式数据结构中,使得四个不同像素的亮度值可由纹理引擎39同时滤波。
如图13中所示,由亮度值Y0、Y1、Y8和Y9组成的块300将填充到RGBA色彩格式数据结构306(对应于图11中的像素P0)和RGBA色彩格式数据结构308(对应于图11中的像素P2)中。更具体地说,亮度值Y0将填充到RGBA色彩格式数据结构306的R0存储器位置中,亮度值Y1将填充到RGBA色彩格式数据结构306的G0存储器位置中,亮度值Y8将填充到RGBA色彩格式数据结构308的R2存储器位置中,且亮度值Y9将填充到RGBA色彩格式数据结构308的G2存储器位置中。
然而,如果如图13中所示填充亮度值,那么可导致不正确的卷积滤波。举例来说,如图13中所示,对应于R色彩分量(即,Y0、Y4、Y8、Y12)的四个亮度值将一起滤波。实情为,如图12中所示,亮度分量Y0、Y1、Y8和Y9应一起滤波。
为了对正确的亮度分量进行滤波,可进一步重新布置(还被称作搅和)亮度值,如图14中示出。如图14中所示,并非逐张填充亮度值(如在图13中),逐2×2块填充亮度值。取决于所要的滤波的类型,可使用其它填充和搅和布置。如图14中所示,将亮度分量Y0、Y1、Y8和Y9分别填充到数据结构356、360、358和362的R分量中。同样地,将亮度分量Y1、Y2、Y9和Y10分别填充到数据结构356、360、358和362的G分量中。将亮度分量Y2、Y3、Y10和Y11分别填充到数据结构356、360、358和362的B分量中。将亮度分量Y3、Y4、Y11和Y11分别填充到数据结构356、360、358和362的A分量中。
一旦根据图14中所示的技术来填充亮度值,就可以与图11中所描述相同的方式来将卷积滤波应用于经填充的RGBA色彩格式数据结构356、358、360和362。图15是示出使用本发明的亮度填充技术的针对基于亮度的像素格式的卷积滤波技术的概念图。举例来说,图15类似于图11;然而,图11说明具有RGBA的实例,且图15说明具有亮度值的实例。使用本发明的亮度填充技术,可实现对亮度值进行滤波的四倍通过量。
图16是示出本发明的实例方法的流程图。图16的方法可由GPU 12的一或多个硬件单元(包含纹理引擎39)进行。图16描绘用于在GPU(例如GPU 12)中执行高阶滤波的方法。所述方法包括、通过GPU 12接收对源像素进行滤波的着色器指令(1500)。在本发明的一个实例中,着色器指令是识别待滤波的源像素的单个着色器指令。GPU 12接着可响应于着色器指令来确定滤波器(1510),且基于所述所确定的滤波器来检索相邻像素(1520)。GPU 12的纹理引擎39可经配置以检索相邻像素。纹理引擎39接着可使用所述所确定的滤波器、源像素和检索到的相邻像素来对源像素进行滤波(1530)。
在本发明的一个实例中,GPU 12可经配置以通过从权重表寄存器检索滤波器类型、从权重表寄存器检索滤波器核心大小,且基于所述滤波器核心类型和所述滤波器核心大小从权重表寄存器检索预计算的滤波器权重,来确定滤波器。在本发明的另一实例中,GPU 12可经配置以基于滤波器核心大小来检索相邻像素。
在本发明的一个实例中,权重表寄存器中的滤波器类型可包含可分离滤波器的指示、各向同性滤波器的指示、子像素滤波器的指示和对称滤波器的指示中的一或多者。在本发明的另一实例中,从权重表寄存器检索到的预计算的滤波器权重的总数取决于可分离滤波器的所述指示、各向同性滤波器的所述指示、子像素滤波器的所述指示和对称滤波器的所述指示中的一或多者。在这点上,GPU 12可进一步经配置以在检索到的预计算的滤波器权重的总数小于核心大小的情况下,基于检索到的预计算的滤波器权重和所述所确定的滤波器类型来导出额外的滤波器权重。
在本发明的另一实例中,GPU 12可经配置以将卷积滤波应用于源像素和在RGBA色彩格式数据结构中检索到的相邻像素。另外在这点上,GPU 12可经配置以将源像素和检索到的相邻像素的亮度值填充在RGBA色彩格式数据结构中,其中针对每一RGBA色彩格式数据结构,对四个亮度值进行滤波。在本发明的另一实例中,GPU 12可经配置以将源像素和检索到的相邻像素从RGBA色彩格式转换为使用亮度值的色彩格式。
图17是示出本发明的实例方法的流程图。图17的方法可由GPU 12的一或多个硬件单元(包含纹理引擎39)进行。图17描绘在GPU(例如GPU 12)中进行滤波的方法。GPU12可经配置以接收对源像素进行滤波的指令(1600)。在本发明的一个实例中,所述指令是单个着色器指令。GPU 12可进一步经配置以基于所述指令来检索相邻像素(1610),且将源像素和检索到的相邻像素的亮度值填充在RGBA色彩格式数据结构中(1620)。GPU12(例如具有纹理引擎39)可进一步经配置以使用RGBA色彩格式数据结构对源像素和检索到的相邻像素的亮度值执行滤波(1630),其中针对每一RGBA色彩格式数据结构,对四个亮度值进行滤波。在本发明的一个实例中,执行滤波包括执行卷积滤波。
在本发明的一个实例中,GPU 12进一步经配置以基于所述指令来检索滤波器权重。在本发明的另一实例中,GPU 12经配置以基于所述指令来产生滤波器权重。在本发明的另一实例中,GPU 12经配置以将源像素和检索到的相邻像素从RGBA色彩格式转换为使用亮度值的色彩格式。在本发明的另一实例中,GPU 12经配置以响应于所述单个着色器指令来确定滤波器。在本发明的另一实例中,GPU 12经配置以从权重表寄存器检索滤波器类型,从所述权重表寄存器检索滤波器核心大小,且基于所述滤波器核心类型和所述滤波器核心大小,从所述权重表寄存器检索预计算的滤波器权重。
在一或多个实例中,上文所描述的功能可以硬件、软件、固件或其任何组合实施。如果以软件实施,那么功能可作为一个或一个以上指令或代码存储在包括非暂时性计算机可读媒体的制品上。计算机可读媒体可包含计算机数据存储媒体。数据存储媒体可为可由一或多个计算机或一个或多个处理器存取以检索用于实施本发明中描述的技术的指令、代码和/或数据结构的任何可用媒体。作为实例而非限制,此类计算机可读媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、闪存存储器或可用来携带或存储呈指令或数据结构形式的所要程序代码且可由计算机存取的任何其它媒体。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
代码可由一或多个处理器执行,所述一或多个处理器例如一或多个DSP、通用微处理器、ASIC、FPGA,或其它等效集成或离散逻辑电路。另外,在一些方面中,可在专用硬件和/或软件模块内提供本文中所描述的功能性。而且,所述技术可完全实施于一或多个电路或逻辑元件中。
本发明的技术可在广泛多种装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本发明中描述各种组件、模块或单元是为了强调经配置以执行所揭示的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编码解码器硬件单元中,或者通过互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。
已描述了各种实例。这些和其它实例在所附权利要求书的范围内。
Claims (30)
1.一种用于在图形处理单元GPU中执行高阶滤波的方法,所述方法包括:
通过所述GPU接收对源像素进行滤波的着色器指令;
响应于所述着色器指令,通过所述GPU的纹理引擎来确定滤波器;
通过所述GPU的所述纹理引擎,基于所述所确定的滤波器来检索相邻像素;以及
通过所述GPU的所述纹理引擎,使用所述所确定的滤波器、所述源像素和所述检索到的相邻像素来对所述源像素进行滤波。
2.根据权利要求1所述的方法,其中所述着色器指令是识别待滤波的所述源像素的单个着色器指令。
3.根据权利要求1所述的方法,其中确定所述滤波器包括:
从权重表寄存器检索滤波器类型;
从所述权重表寄存器检索滤波器核心大小;以及
基于所述滤波器核心类型和所述滤波器核心大小,从所述权重表寄存器检索预计算的滤波器权重。
4.根据权利要求3所述的方法,其中基于所述所确定的滤波器来检索所述相邻像素包括:
基于所述滤波器核心大小来检索所述相邻像素。
5.根据权利要求3所述的方法,其中所述权重表寄存器中的所述滤波器类型包含可分离滤波器的指示、各向同性滤波器的指示、子像素滤波器的指示和对称滤波器的指示中的一或多者。
6.根据权利要求5所述的方法,其中从所述权重表寄存器检索到的预计算的滤波器权重的总数取决于可分离滤波器的所述指示、各向同性滤波器的所述指示、子像素滤波器的所述指示和所述对称滤波器的所述指示中的一或多者。
7.根据权利要求6所述的方法,其进一步包括:
在检索到的预计算的滤波器权重的所述总数小于所述核心大小的情况下,基于所述检索到的预计算的滤波器权重和所述所确定的滤波器类型来导出额外滤波器权重。
8.根据权利要求1所述的方法,其中滤波包括将卷积滤波应用于所述源像素和在RGBA色彩格式数据结构中检索到的相邻像素,所述方法进一步包括:
将所述源像素和所述检索到的相邻像素的亮度值填充在所述RGBA色彩格式数据结构中,其中针对每一RGBA色彩格式数据结构,对四个亮度值进行滤波。
9.根据权利要求8所述的方法,其进一步包括:
将所述源像素和检索到的相邻像素从RGBA色彩格式转换为使用所述亮度值的色彩格式。
10.一种经配置以执行高阶滤波的设备,所述设备包括:
存储器,其经配置以存储图形数据;以及
图形处理单元GPU,其经配置以响应于指令所述GPU对源像素进行滤波的着色器指令来对所述图形数据执行高阶滤波,所述GPU进一步包括:
纹理引擎,其经配置以响应于所述着色器指令来确定滤波器,基于所述所确定的滤波器来检索相邻像素,且使用所述所确定的滤波器、所述源像素和所述检索到的相邻像素来对所述源像素进行滤波。
11.根据权利要求10所述的设备,其中所述着色器指令是识别待滤波的所述源像素的单个着色器指令。
12.根据权利要求10所述的设备,其进一步包括权重表寄存器,且其中所述纹理引擎经配置以通过从所述权重表寄存器检索滤波器类型、从所述权重表寄存器检索滤波器核心大小,且基于所述滤波器核心类型和所述滤波器核心大小从所述权重表寄存器检索预计算的滤波器权重,来确定所述滤波器。
13.根据权利要求12所述的设备,其中所述纹理引擎经配置以基于所述滤波器核心大小来检索所述相邻像素。
14.根据权利要求12所述的设备,其中所述权重表寄存器中的所述滤波器类型包含可分离滤波器的指示、各向同性滤波器的指示、子像素滤波器的指示和对称滤波器的指示中的一或多者。
15.根据权利要求14所述的设备,其中从所述权重表寄存器检索到的预计算的滤波器权重的总数取决于可分离滤波器的所述指示、各向同性滤波器的所述指示、子像素滤波器的所述指示和所述对称滤波器的所述指示中的一或多者。
16.根据权利要求15所述的设备,其中所述GPU进一步经配置以在检索到的预计算的滤波器权重的所述总数小于所述核心大小的情况下,基于所述检索到的预计算的滤波器权重和所述所确定的滤波器类型来导出额外滤波器权重。
17.根据权利要求10所述的设备,其中所述GPU经配置以将卷积滤波应用于所述源像素和在RGBA色彩格式数据结构中检索到的相邻像素,且其中所述GPU进一步经配置以将所述源像素和所述检索到的相邻像素的亮度值填充在所述RGBA色彩格式数据结构中,其中针对每一RGBA色彩格式数据结构,对四个亮度值进行滤波。
18.根据权利要求17所述的设备,其中所述GPU进一步经配置以将所述源像素和检索到的相邻像素从RGBA色彩格式转换为使用所述亮度值的色彩格式。
19.一种经配置以执行高阶滤波的设备,所述设备包括:
用于接收对源像素进行滤波的着色器指令的装置;
用于响应于所述着色器指令来确定滤波器的装置;
用于基于所述所确定的滤波器来检索相邻像素的装置;以及
用于使用所述所确定的滤波器、所述源像素和所述检索到的相邻像素来对所述源像素进行滤波的装置。
20.根据权利要求19所述的设备,其中所述着色器指令是识别待滤波的所述源像素的单个着色器指令。
21.根据权利要求19所述的设备,其中所述用于确定所述滤波器的装置包括:
用于从权重表寄存器检索滤波器类型的装置;
用于从所述权重表寄存器检索滤波器核心大小的装置;以及
用于基于所述滤波器核心类型和所述滤波器核心大小从所述权重表寄存器检索预计算的滤波器权重的装置。
22.根据权利要求21所述的设备,其中所述用于基于所述所确定的滤波器来检索所述相邻像素的装置包括:
用于基于所述滤波器核心大小来检索所述相邻像素的装置。
23.根据权利要求21所述的设备,其中所述权重表寄存器中的所述滤波器类型包含可分离滤波器的指示、各向同性滤波器的指示、子像素滤波器的指示和对称滤波器的指示中的一或多者。
24.根据权利要求23所述的设备,其中从所述权重表寄存器检索到的预计算的滤波器权重的总数取决于可分离滤波器的所述指示、各向同性滤波器的所述指示、子像素滤波器的所述指示和对称滤波器的所述指示中的一或多者。
25.根据权利要求24所述的设备,其进一步包括:
用于在检索到的预计算的滤波器权重的所述总数小于所述核心大小的情况下,基于所述检索到的预计算的滤波器权重和所述所确定的滤波器类型来导出额外滤波器权重的装置。
26.根据权利要求19所述的设备,其中所述用于滤波的装置包括用于将卷积滤波应用于所述源像素和在RGBA色彩格式数据结构中检索到的相邻像素的装置,所述设备进一步包括:
用于将所述源像素和所述检索到的相邻像素的亮度值填充在所述RGBA色彩格式数据结构中的装置,其中针对每一RGBA色彩格式数据结构,对四个亮度值进行滤波。
27.根据权利要求26所述的设备,其进一步包括:
用于将所述源像素和检索到的相邻像素从RGBA色彩格式转换为使用所述亮度值的色彩格式的装置。
28.一种经配置以响应于着色器指令来执行高阶滤波的图形处理单元GPU,所述GPU包括:
存储器,其经配置以存储图形数据;以及
纹理引擎,其经配置以响应于所述着色器指令来确定滤波器,基于所述所确定的滤波器来从所述存储器检索相邻像素,且使用所述所确定的滤波器、所述源像素和所述检索到的相邻像素来对所述源像素进行滤波。
29.根据权利要求28所述的GPU,其中所述着色器指令是识别待滤波的所述源像素的单个着色器指令。
30.根据权利要求28所述的GPU,其进一步包括权重表寄存器,且其中所述纹理引擎进一步经配置以通过从所述权重表寄存器检索滤波器类型,从所述权重表寄存器检索滤波器核心大小,且基于所述滤波器核心类型和所述滤波器核心大小从所述权重表寄存器检索预计算的滤波器权重,来确定所述滤波器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/452,281 | 2014-08-05 | ||
US14/452,281 US9852536B2 (en) | 2014-08-05 | 2014-08-05 | High order filtering in a graphics processing unit |
PCT/US2015/041153 WO2016022281A1 (en) | 2014-08-05 | 2015-07-20 | High order filtering in a graphics processing unit |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106575429A true CN106575429A (zh) | 2017-04-19 |
Family
ID=53783976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580040823.XA Pending CN106575429A (zh) | 2014-08-05 | 2015-07-20 | 图形处理单元中的高阶滤波 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9852536B2 (zh) |
EP (1) | EP3178061A1 (zh) |
CN (1) | CN106575429A (zh) |
WO (1) | WO2016022281A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6395000B2 (ja) * | 2016-04-13 | 2018-09-26 | 京セラドキュメントソリューションズ株式会社 | 画像処理装置 |
US10657698B2 (en) * | 2017-06-22 | 2020-05-19 | Microsoft Technology Licensing, Llc | Texture value patch used in GPU-executed program sequence cross-compilation |
US10102015B1 (en) | 2017-06-22 | 2018-10-16 | Microsoft Technology Licensing, Llc | Just in time GPU executed program cross compilation |
US10289393B2 (en) | 2017-06-22 | 2019-05-14 | Microsoft Technology Licensing, Llc | GPU-executed program sequence cross-compilation |
US10241766B2 (en) | 2017-06-22 | 2019-03-26 | Microsoft Technology Licensing, Llc | Application binary interface cross compilation |
CN108537719B (zh) * | 2018-03-26 | 2021-10-19 | 上海交通大学 | 一种提高通用图形处理器性能的系统及方法 |
GB2596104B (en) * | 2020-06-17 | 2022-07-06 | Imagination Tech Ltd | Input/output filter unit for graphics processing unit |
GB2609080B (en) * | 2020-06-17 | 2024-01-24 | Imagination Tech Ltd | Input/output filter unit for graphics processing unit |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050063586A1 (en) * | 2003-08-01 | 2005-03-24 | Microsoft Corporation | Image processing using linear light values and other image processing improvements |
CN101341508A (zh) * | 2005-08-31 | 2009-01-07 | Ati技术公司 | 检索和合并图形信息样本的方法和装置 |
US20090067509A1 (en) * | 2007-09-07 | 2009-03-12 | Eunice Poon | System And Method For Displaying A Digital Video Sequence Modified To Compensate For Perceived Blur |
US7623136B1 (en) * | 2006-12-05 | 2009-11-24 | Nvidia Corporation | Method and system for processing texture samples with programmable filter weights |
CN101867831A (zh) * | 2003-08-01 | 2010-10-20 | 微软公司 | 使用一色彩信息数据结构来处理图像信息的策略 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7274373B1 (en) | 1999-12-06 | 2007-09-25 | Nvidia Corporation | System, method and computer program product for providing arbitrary texture filtering |
BRPI0511474B1 (pt) | 2004-07-29 | 2017-11-21 | Microsoft Technology Licensing, Llc | Method for processing image information in a linear form ?? |
US7623732B1 (en) * | 2005-04-26 | 2009-11-24 | Mercury Computer Systems, Inc. | Method and apparatus for digital image filtering with discrete filter kernels using graphics hardware |
US7782334B1 (en) | 2005-09-13 | 2010-08-24 | Nvidia Corporation | Pixel shader-based data array resizing |
US8675007B2 (en) | 2005-10-06 | 2014-03-18 | Ati Technologies Ulc | System and method for higher level filtering by combination of bilinear results |
US7986325B1 (en) * | 2006-12-12 | 2011-07-26 | Nvidia Corporation | Loading integer-based data into a graphics processing system |
US7970206B2 (en) | 2006-12-13 | 2011-06-28 | Adobe Systems Incorporated | Method and system for dynamic, luminance-based color contrasting in a region of interest in a graphic image |
US8203564B2 (en) | 2007-02-16 | 2012-06-19 | Qualcomm Incorporated | Efficient 2-D and 3-D graphics processing |
KR101574279B1 (ko) | 2008-04-04 | 2015-12-04 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | 앤티 엘리어싱을 위한 필터링 방법 및 장치 |
US8406518B2 (en) | 2009-01-20 | 2013-03-26 | Pixar | Smoothed local histogram filters for computer graphics |
KR101214675B1 (ko) | 2010-03-26 | 2012-12-21 | 삼성전자주식회사 | 휴대용 단말의 영상 처리 방법 및 장치 |
US8610737B2 (en) | 2010-05-27 | 2013-12-17 | National Taiwan University | Graphic processing unit (GPU) with configurable filtering module and operation method thereof |
US8490034B1 (en) * | 2010-07-08 | 2013-07-16 | Gauda, Inc. | Techniques of optical proximity correction using GPU |
US9082180B2 (en) * | 2012-12-28 | 2015-07-14 | Nvidia Corporation | System, method, and computer program product for implementing a spatially varying unsharp mask noise reduction filter |
US10242493B2 (en) * | 2014-06-30 | 2019-03-26 | Intel Corporation | Method and apparatus for filtered coarse pixel shading |
-
2014
- 2014-08-05 US US14/452,281 patent/US9852536B2/en not_active Expired - Fee Related
-
2015
- 2015-07-20 EP EP15747673.0A patent/EP3178061A1/en not_active Withdrawn
- 2015-07-20 WO PCT/US2015/041153 patent/WO2016022281A1/en active Application Filing
- 2015-07-20 CN CN201580040823.XA patent/CN106575429A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050063586A1 (en) * | 2003-08-01 | 2005-03-24 | Microsoft Corporation | Image processing using linear light values and other image processing improvements |
CN101867831A (zh) * | 2003-08-01 | 2010-10-20 | 微软公司 | 使用一色彩信息数据结构来处理图像信息的策略 |
CN101341508A (zh) * | 2005-08-31 | 2009-01-07 | Ati技术公司 | 检索和合并图形信息样本的方法和装置 |
US7623136B1 (en) * | 2006-12-05 | 2009-11-24 | Nvidia Corporation | Method and system for processing texture samples with programmable filter weights |
US20090067509A1 (en) * | 2007-09-07 | 2009-03-12 | Eunice Poon | System And Method For Displaying A Digital Video Sequence Modified To Compensate For Perceived Blur |
Also Published As
Publication number | Publication date |
---|---|
WO2016022281A1 (en) | 2016-02-11 |
US9852536B2 (en) | 2017-12-26 |
US20160042549A1 (en) | 2016-02-11 |
EP3178061A1 (en) | 2017-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106575429A (zh) | 图形处理单元中的高阶滤波 | |
US9747718B2 (en) | System, method, and computer program product for performing object-space shading | |
US9754407B2 (en) | System, method, and computer program product for shading using a dynamic object-space grid | |
US9786091B2 (en) | Gradient adjustment for texture mapping to non-orthonormal grid | |
CN107209923B (zh) | 图形处理中的混合渲染 | |
EP1323131B1 (en) | Method and apparatus for anti-aliasing supersampling | |
US7876332B1 (en) | Shader that conditionally updates a framebuffer in a computer graphics system | |
CN104137152B (zh) | 用于基于目的地阿尔法值减少图形处理系统中的存储器存取带宽的技术 | |
CN110383337A (zh) | 可变速率着色 | |
CN110291563A (zh) | 图形处理中的多个着色器进程 | |
US8547395B1 (en) | Writing coverage information to a framebuffer in a computer graphics system | |
US10410398B2 (en) | Systems and methods for reducing memory bandwidth using low quality tiles | |
CN106233326A (zh) | 图形处理中基于显现目标的灵活显现 | |
US20060103658A1 (en) | Color compression using multiple planes in a multi-sample anti-aliasing scheme | |
CN105122310B (zh) | 用于基于瓦片的渲染的帧内时戳 | |
JP2010165357A (ja) | グラフィックスを処理する方法およびそのための装置 | |
US7817165B1 (en) | Selecting real sample locations for ownership of virtual sample locations in a computer graphics system | |
CN104823220B (zh) | 用于图形处理的图形存储器加载掩模 | |
CN107851330B (zh) | 用于图形处理的零像素剔除 | |
CN106575428A (zh) | 图形处理单元中的高阶滤波 | |
US9646359B2 (en) | Indefinite texture filter size for graphics processing | |
KR20060007054A (ko) | 이미지 데이터의 래스터화를 슈퍼샘플링하는 방법 및시스템 | |
CN110383339A (zh) | 用于图像渲染的索引值混合 | |
US7221368B1 (en) | Stippled lines using direct distance evaluation | |
JP4801088B2 (ja) | 画素サンプリングの方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170419 |