图形处理器的流水线化归约操作的制作方法

文档序号:6570825阅读:160来源:国知局
专利名称:图形处理器的流水线化归约操作的制作方法
图形处理器的流水线化归约操作
背景技术
图形处理单元(GPU)是可以用在例如个人计算机、工作站或游戏主 机中的专用图形渲染设备。GPU在操作和显示计算机图形方面非常有效率。 GPU包含多个处理单元,这些处理单元同时执行独立的操作(例如,在像 素级上的颜色空间转换)。它们的高并行化结构可以使它们在复杂算法范围 内比普通的中央处理单元(CPU)效率高。GPU可以采用使图形基元操作 运行的比使用主CPU直接在屏幕上绘制快得多的方式,来实现多个图形基 元。
GPU上的通用编程正在成为一种用于加速计算的高效且普遍的方式, 并且结合CPU充当重要的计算单元。在实践中,可以对庞大数量的现有通 用处理内核(例如纹理处理、矩阵和矢量计算)进行优化以便运行在GPU 上。然而,GPU具有某些硬件约束和结构限制。例如,GPU不具有全局变 量的概念,并且不能使用几个全局变量来在运行中保存临时数据。因此, GPU不能有效地处理某些通常使用的归约(reduction)操作(例如,对一 串数据元素进行平均和求和计算)。


根据以下详细描述,各个实施例的特征和优点将会变得显而易见,其

图1示出根据一个实施例的实例视频挖掘应用;
图2A示出根据一个实施例的用于归约操作的实例滤波器循环方法的 流程图2B示出根据一个实施例的滤波器循环方法的实例应用; 图3A示出根据一个实施例的用于归约操作的实例流水线纹理方法的 流程图;以及
图3B示出根据一个实施例的流水线纹理循环方法的实例应用。
具体实施例方式
图1示出了一个实例视频挖掘应用100。该视频挖掘应用IOO包括特征 提取110和拍摄图片(shot)边界检测120。特征提取110包括几个归约操 作。这些归约操作可以包括以下的至少一些子集(1)确定一帧内所有像 素的平均灰度值;(2)提取一个指定区域内的像素的黑值和白值;(3)计 算一帧的每个颜色通道的RGB直方图;以及(4)计算两个连续帧之间的 平均灰度差值。
可以通过以分层形式将一个帧(例如720x576个像素)尺寸縮小为更 小的块并且提取这些块的特征,来执行特征提取。最终将该帧归约为1个 像素,并且该像素是该帧的平均值。
一种块形成方法可以使用大滤波器将帧的尺寸縮小为大块。例如,可 以使用36x32滤波器着色器(shader)将720x576个像素的帧的尺寸縮小为 20x18个像素的图像,随后可以使用20x18的滤波器着色器将该20x18个像 素的图像的尺寸縮小为单个像素。该方法仅需要几个步骤(例如,两个尺 寸縮小事件),但是这些步骤需要大量的内存存取时间。在具有很多独立处 理单元(流水线)的GPU上使用这种方法会造成一个流水线过分占用对存 储器的存取,并造成其他流水线停顿。
滤波器循环方法将一个滤波器着色器使用几次,从而连续地将一个帧 的尺寸縮小到特定量,并且随后一旦该图像被归约到特定尺寸,就使用第 二个滤波器着色器将其归约到1个像素。该方法对每个帧使用多个像素缓 冲器来保存各种尺寸縮小的版本。例如,可以使用2x2滤波器将图像进行 1/4縮小5次,因此将图像归约为22x18个像素。然后可以使用22x18滤波 器着色器将该22x18个像素的图像的尺寸縮小为1个像素。这个实例会需 要5个像素缓冲器来存储各种尺寸縮小的版本(每个进行了 1/4尺寸縮小后 的图像)。
图2A示出用于归约操作的一个实例滤波器循环方法的流程图。初始化 像素缓冲器(例如,5个)(200)。将该帧提供给尺寸縮小循环(210)。该 循环210通过使用2x2滤波器将当前图像的尺寸縮小为1/4尺寸(220)。将 縮小尺寸后的图像绘制到下一个像素缓冲器(230)。在当前图像为22x18
6个像素(例如,在经过5次l/4尺寸縮小之后),该循环210结束。然后使 用22x18滤波器着色器将该22x18个像素的图像归约为1个像素。这个一 个像素的结果就是该帧的期望平均值。
该滤波器循环方法对于每个帧都需要6次尺寸縮小操作,并且需要5 个额外的像素缓冲器来捕获尺寸縮小后的图像。在该滤波器循环方法中的 关键路径是使用22x18滤波器着色器的尺寸縮小。
图2B示出了该滤波器循环方法(例如210)的实例应用。当接收到该 帧时,将其存储在缓冲器250中。将该帧的尺寸縮小到1/4,然后存储在下 一个缓冲器260中。然后对尺寸縮小后的图像再进行尺寸縮小,并依次存 储在缓冲器265-280中。存储在缓冲器280的图像是22x18个像素的图像, 其尺寸被22x18滤波器着色器縮小到1个像素。
流水线纹理方法将各个帧的尺寸縮小操作重叠在一起,从而增加了并 行性。可以将多个滤波步骤合并为单个滤波步骤,从而可以将多个(例如8 个)具有不同尺寸的连续的帧一起进行尺寸缩小。最初,对比一个帧大(例 如2倍)的纹理缓冲器进行初始化。该纹理缓冲器可以包含两侧,第一侧 用于存储新的帧,第二侧用于存储尺寸缩小后的帧。将一个帧读取到该纹 理缓冲器中。然后对该纹理缓冲器进行尺寸縮小,并且偏移尺寸縮小后的 图像。该过程持续进行,从而使滤波操作可以一次对多个帧进行尺寸縮小。 一旦该操作处于稳定状态(该纹理缓冲器是满的),则执行单个尺寸縮小就 足以获得最终结果。
图3A示出了用于归约操作的实例流水线纹理方法的流程图。初始化 2X的像素缓冲器(300)。然后初始化流水线滤波器操作(310)。该流水线 滤波器操作310包括读取一个新的帧,并将其绘制到纹理的左侧(320)。 然后使用2x2滤波器将纹理中的图像尺寸縮小到1/4 (330),并将所有尺寸 縮小后的图像绘制到纹理的右侧(340)。事实上,纹理中的每个图像都被 尺寸縮小,然后向右侧偏移。原始帧(例如720x576个像素)被尺寸縮小 到1/4 (例如360x288个像素)并绘制到纹理缓冲器右侧上的第一个位置处。 纹理的右侧上的图像被尺寸縮小,然后再次绘制到右侧上的下一个位置处。
持续地重复该尺寸縮小处理。每次尺寸縮小操作都对一个新的帧以及 在纹理缓冲器右侧中的尺寸縮小后的图像一起进行尺寸縮小。需要7次1/4
7尺寸缩小操作来将一个帧归约为单个像素。纹理缓冲器的右侧能够保存7 个尺寸縮小后的图像。当纹理缓冲器是满的时,其一共保存了各种尺寸縮 小版本的8个帧,并对这些图像中的各图像同时进行尺寸縮小。在第7次 尺寸縮小操作之后的值后一个像素,并且表示该帧的期望平均值。
图3B示出了流水线纹理循环方法(例如310)的实例应用。纹理缓冲 器350的尺寸是一个帧尺寸的两倍(例如,1440x576个像素),并且包括左 侧355和右侧360。左侧355存储新的帧(帧N) 365。右侧360存储7个 先前帧的尺寸縮小版本。先前帧(帧N-1) 370是1/4尺寸的并且被存储在 右侧360上的第一个槽位(slot)中。帧N-2 375到帧N-7 397存储在右侧 的连续槽位中,并且每一个槽位都是前一个槽位的1/4尺寸。应该注意,帧 N-6和N-7尺寸非常小,以至于不能清楚地观看它们,因此为了简单起见, 将它们一起进行标记。
当执行尺寸縮小操作时,其将7个图像(7个不同帧的不同阶段) 一起 进行归约,并且将图像重新绘制在右侧,然后在左侧绘制一个新的帧。因 此,当流水线纹理方法处于稳定状态中时,每次简约操作都能够得到一个 帧的结果。
在GPU上使用流水线纹理方法能够同时处理多个帧的多个计算。在没 有复杂的编程和SIMD优化的情况下,这种处理是不能在CPU上执行的。
以上所述的纹理缓冲器的实施例讨论了在长度上是一个帧的两倍的缓 冲器(例如,720x576对比1440x576),但是并不局限于此。相反,缓冲器 可以在高度上延长(例如720x1152),而不会脱离本发明的范围。此外,实 施例示出了将一个新的帧绘制到左侧,而将尺寸縮小后的帧绘制到右侧, 但是并不局限于此。相反,可以将新的帧绘制到右侧,而将尺寸縮小后的 帧绘制到左侧,可以将新的帧绘制到上部,而将尺寸縮小后的帧绘制到下 部,或者可以将新的帧绘制到下部,而将尺寸縮小后的帧绘制到上部,而 不会脱离本发明的范围。简单的事实是可以对缓冲器中的所有内容执行一 次尺寸縮小操作,然后将尺寸縮小后的图像重新绘制在缓冲器中的下一个 位置。
虽然本公开内容已经参考具体实施例进行了陈述,但是显而易见的是, 本公开内容并不局限于此,因为在不脱离本发明的范围的情况下可以对具
8体实施例继续各种改变和修改。对"一个实施例"或"实施例"的指代意 思是在此所述的特定的特征、结构或特点包含在至少一个实施例中。因此, 在通篇说明书中的各个位置出现的短语"在一个实施例中"或"在实施例 中"并非必然指代同一实施例。
实施例可以用硬件、软件、固件、微代码或者其任意组合来实现。当 用软件、固件或微代码实现时,实施例的要素是用于执行必要任务的程序 代码或代码段。代码可以是执行操作的实际代码,或者是对操作进行模拟 或仿真的代码。代码段可以表示过程、函数、子程序、程序、例程、子例 程、模块、软件包、类、或者指令、数据结构或程序声明的任意组合。代 码段可以通过传递和/或接收信息、数据、自变量、参数或存储器内容而耦 合到另一代码段或硬件电路。信息、自变量、参数、数据等可以借助于任 何手段,包括存储器共享、消息传递、令牌传递、网络传输等等,进行传 递、转发或发送。程序或代码段可以存储在处理器可读介质中,或者由体 现在载波中的计算机数据信号或由载波调制的信号而通过传输介质进行发 送。"处理器可读或可存取介质"或"机器可读或可存取介质"可以包括任 何能够存储、发送或传递信息的介质。处理器/机器可读/可存取介质的实例
包括电子电路、半导体存储器件、只读存储器(ROM)、闪存存储器、可擦 除ROM (EROM)、软盘、致密盘(CD-ROM)、光盘,硬盘、光纤介质、 无线电频率(RF)链路等等。计算机数据信号可以包括能够在诸如电子网 络信道、光纤、空中、电磁、RF链路等等之类的传输介质上传播的任何信 号。代码段可以经由诸如互联网、内联网等等之类的计算机网络进行下载。 机器可存取介质可以体现为制造品。机器可存取介质可以包括当由机器存 取时使该机器执行以下所述的操作的数据。术语"数据"在此指代能够为 了机器可读的目的而被编码的任何类型的信息。因此,其可以包括程序、 代码、数据、文件等等。
实施例的一部分或者全部可以用软件来实现。软件可以具有彼此耦合 的几个模块。 一个软件模块耦合到另一模块,以接收变量、参数、自变量、 指针等等,和/或产生或传递结果、更新的变量、指针等等。软件模块还可 以是与运行在平台上的操作系统交互的软件驱动器或接口。软件模块还可 以是用于配置、设置、初始化数据以及将数据发送到硬件设备或从硬件设
9备接收数据的硬件驱动器。
实施例可以描述为一个处理,处理通常被绘制为流程图、流程图表、 结构图或框图。虽然流程图可以将操作描述为顺序处理,但是其中的很多 操作可以并行或同时执行。另外,可以重新排列操作的次序。当一个处理 的操作完成时,该处理可以结束。处理可以对应于方法、函数、过程、子 例程、子程序等等。当处理对应于函数时,该处理的结束可以对应于该函 数返回到调用函数或主函数。
各个实施例旨在受到所附权利要求的精神和范围内的最宽泛的保护。
权利要求
1、一种能够对多个图像同时执行归约操作的方法,所述方法包括初始化纹理缓冲器;以及通过利用所述纹理缓冲器,对所述归约操作进行流水线操作。
2、如权利要求l所述的方法,其中,所述流水线操作包括: 将新的帧绘制到所述纹理缓冲器;对在所述纹理缓冲器中的当前图像进行尺寸縮小;以及将尺寸縮小后的图像绘制到所述纹理缓冲器。
3、 如权利要求2所述的方法,其中,对一个帧重复所述流水线操作, 直到将该帧归约到一个像素为止。
4、 如权利要求2所述的方法,其中,所述尺寸縮小将每个图像的尺寸 縮小为1/4尺寸。
5、 如权利要求4所述的方法,其中,所述尺寸縮小同时对7个图像进 行尺寸縮小。
6、 如权利要求2所述的方法,其中,所述纹理缓冲器的尺寸是一个帧 的两倍。
7、 如权利要求2所述的方法,其中,将所述新的帧绘制到所述纹理缓 冲器的第一部分。
8、 如权利要求2所述的方法,其中,将尺寸縮小后的图像绘制到所述 纹理缓冲器的第二部分。
9、 如权利要求2所述的方法,其中,在处于稳定状态中时,每次尺寸縮小操作都会产生对于一个帧的结果。
10、 如权利要求9所述的方法,其中,所述结果是对该帧进行的归约 操作的期望平均值。
11、 一种能够对多个图像同时执行归约操作的图形处理单元,所述图形处理单元包括用于初始化纹理缓冲器的逻辑;以及用于通过利用所述纹理缓冲器对所述归约操作进行流水线操作的逻辑。
12、 如权利要求ll所述的图形处理单元,其中,所述用于流水线操作 的逻辑包括用于将新的帧绘制到所述纹理缓冲器的逻辑;用于对在所述纹理缓冲器中的当前图像进行尺寸縮小的逻辑;以及 用于将尺寸縮小后的图像绘制到所述纹理缓冲器的逻辑。
13、 如权利要求12所述的图形处理单元,其中,对一个帧重复所述用 于流水线操作的逻辑,直到将该帧归约到一个像素为止。
14、 如权利要求12所述的图形处理单元,其中,所述用于尺寸縮小的 逻辑对7个图像同时进行尺寸縮小,并将每个图像的尺寸縮小为1/4尺寸。
15、 如权利要求12所述的图形处理单元,其中,使机器执行流水线操 作的内容在被执行时,在处于稳定状态中时对于每次迭代都会产生对一个 帧的归约操作的期望平均值。
16、 一种能够对多个图像同时执行归约操作的系统,所述系统包括 中央处理器(CPU);图形处理器(GPU);以及存储器,其耦合到所述CPU和所述GPU以存储应用程序,所述应用 程序当被执行时使得所述GPU:初始化纹理缓冲器;以及 连续地将新的帧绘制到所述纹理缓冲器;对在所述纹理缓冲器中的当前图像进行尺寸縮小;以及 将尺寸縮小后的图像绘制到所述纹理缓冲器。
17、 如权利要求16所述的系统,其中,所述应用程序当被执行时,使 得所述GPU对7个图像同时进行尺寸縮小,并将每个图像的尺寸縮小到1/4 尺寸。
18、 如权利要求16所述的系统,其中,所述应用程序当被执行时,使 得所述GPU在处于稳定状态中时对于每次迭代都会产生对一个帧的归约操 作的期望平均值。
全文摘要
通常,在一个方案中,本公开内容描述了一种用于初始化纹理缓冲器以及通过利用该纹理缓冲器对归约操作进行流水线操作的方法。
文档编号G06T1/20GK101542524SQ200680056329
公开日2009年9月23日 申请日期2006年11月8日 优先权日2006年11月8日
发明者E·李, W·李 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1