图形处理器中的连接组件标记的制作方法_2

文档序号:9200209阅读:来源:国知局
说明的框48规定使用图形处理 器中的多个线程来进行多个连接表到针对该图像的全局CCL表中的单级合并。
[0043] 例如,图7例示了每一个线程可以负责合并来自SMD扫描的两个相邻连接表并且 将结果更新到共享存储器(例如,主机存储器、系统存储器)。一旦所有的线程完成了其各 自的合并操作,结果可以是针对整个图像的例如以全局CCL表36 (图2)为例的单个全局 CCL表。更具体地说,在框92处,可以将针对"接缝"的顶连接表和底连接表从共享存储器 装载到本地高速缓存。接缝可以被认为是图像中相邻的片/区域之间的水平边界。所说明 的框94确定两个连接表是否都位于正在被标记的图像内侧。如果为否,则合并过程可以终 止。
[0044] 否则,框96可以从被标记的图像中读取当前接缝区域(例如,接缝框),其中在框 98处可以针对所述区域构建前景遮蔽。此外,在框100,可以使用迭代邻域最小值方法针对 前景遮蔽中的新连接进行搜索。因此,框100可以与已经讨论的关于邻域最小值场景84 (图 6)描述的功能类似。所说明的框102规定使用一个或多个原子操作来使用来自框100的新 连接更新共享存储器中的全局CCL表,其中可以在框104处使用来自共享存储器的当前根 标记更新本地高速缓存表。
[0045] 下面所注释的代码片段示出了进行单级合并的一种方案。
[0046]
[0047] 继续参照图8和图9,示出了更新共享存储器中的全局表的一种方案。例如,所说 明的框106将每一个标记与其本地根进行比较和交换并且在偏移标记处得到旧值。因而, 通过底层硬件可以实现框106,该底层硬件有条件地交换新的根标记。因此,框108可以基 于返回的值确定底层硬件是否已经交换了标记。如果在框108处确定标记的当前值与旧值 相匹配,则该比较和交换原子操作已经设置了新的根标记,并且到共享存储器过程的联合 可以终止。否则,所说明的框110计算要在下一轮中进行设置的地址和标记值,并且可以重 复框106。
[0048] 例如,图8例示了可以涉及具有被链接到根标记(例如,标记"50")的标记(例 如,标记"60"、"70"、"80"、"90")的几个像素的预联合分层场景112。虚线箭头可以代表 由于标记不是根标记而没有修改共享存储器中的全局CCL的原子操作尝试(例如,尝试" 1" 至lj"3"以此顺序)。然而,最后成功的尝试(例如,尝试"4")可以最终统一两个相对应的 标记树,如后联合的分层场景114中示出的。下面所注释的代码片段示出了使用原子操作 来更新共享存储器中的全局CCL表的一种方案。
[0049]
[0050] 有效率的平整
[0051] 现在返回图3,所说明的框50在第一平整阶段期间将全局CCL表中的一个或多个 标记以信号形式发送为根标记,其中,在框52处,在第二平整阶段期间,可以将所标记的根 标记转换为一个或多个全局递增标记。
[0052] 例如,图10的状态图例示了全局CCL表的标记可以在索引状态116中退出单级合 并过程。根标记可以经历将其转换到以信号形式发送的根状态120的第一平整阶段118,而 以信号形式发送的根标记和非根标记可以经历将其转换到全局递增状态124(例如,在根 级别处被连续标记)的第二平整阶段122。
[0053] 图IlA例示了第一平整阶段可以涉及在框126处确定正在被处理的标记是否位于 当前段中,其中段可以被认为是由单一线程处理的连接表的连续部分(例如,如果100个线 程可用,则线程# 1可以处理表段条目0-127,线程# 2可以处理表段条目128-255,等等)。 如果为是,则在框128处可以做出关于该标记是否是根标记的确定。如果该标记是根标记, 则所说明的框130将标记以信号形式发送为根标记(例如,通过向该标记分配唯一且相对 高的偏移值),其中框126处的确定可以重复。在另一方面,如果该标记不是根标记,则框 132可以在标记分层中朝向根标记遍历一个步长。可以在框134处做出关于该标记是处于 索引状态中还是已经被以信号形式发送为根标记的确定。如果为否,则可以在框132处重 复上述遍历。否则,可以重复框126处的确定。如果在框126处确定正在被处理的根不在当 前段中,则所说明的框136存储所识别的唯一根标记的数量并且第一平整阶段可以终止。 所识别的唯一根的数量可以在下文详细讨论的第二平整阶段中使用。下面所注释的代码片 段示出了实现第一平整阶段的一种方案。
[0054]
[0055]
[0056] 图IlB例示了第二平整阶段可以涉及基于在第一平整阶段中识别的唯一根的数 量而在框138处计算积分和,其中可以在框140处做出关于正在被处理的标记是否处于当 前段中的确定。如果为是,则可以在框142处做出关于该标记是否处于索引状态中的确定。 如果为否,则所说明的框144使用全局递增标记来替换该标记并且可以重复在框140处的 确定。否则,在框146处从索引中重新读取该标记的值,其中该重新读取的值应该是被以信 号形式发送的根标记或者全局递增标记。如果在框148处确定该标记处于全局递增状态 中,则可以重复框140处的确定。否则,框144可以使用全局递增标记来替换该标记。如果 在框140处确定正在被处理的标记不在当前段中,则所说明的平整阶段可以终止。下面所 注释的代码片段示出了实现第二平整阶段的一种方案。
[0057]
[0058]
[0059] 现在转到图12,示出了计算系统150,其中,系统150可以是诸如膝上型电脑、可佩 戴式计算机、移动互联网设备(MID)、个人数字助理(PDA)、媒体播放器、成像设备等等的移 动平台,诸如智能电话、平板计算机、智能TV(电视)等等的任意智能设备,或其任意组合的 一部分。系统150也可以是诸如个人计算机(PC)、服务器、工作站等等的一部分。所说明的 系统150包括中央处理单元(CPU、例如,主机处理器)152,其具有提供对系统存储器156进 行存取的集成存储器控制器(iMC) 154,该系统存储器156可以例如包括双数据速率(DDR) 同步动态随机存取存储器(SDRAM,例如DDR3SDRAM JEDEC标准JESD79-3C,2008年4月)模 块。系统存储器156的模块可以例如被并入到单进线存储器模块(SIMM)、双进线存储器模 块(DIMM)、小型 DIMM(SODIMM)等等中。
[0060] CPU 152也可以具有一个或多个处理器核心(未不出),其中每一个核心可以是功 能完善的,其具有指令获取单元、指令解码器、一级(LI)高速缓存、执行单元等等。CPU 152 可以可选地经由互连系统150中的每一个组件的前端总线或点对点结构与也被称为北桥 的iMC 154的片下变化进行通信。CPU 152也可以执行操作系统(OS) 158。
[0061] 所说明的CPU 152经由总线与也被称为南桥的输入/输出(IO)模块160进行通 信。iMC 154/CPU 152和IO模块160有时被称为芯片集。CPU 152也可以经由网络端口 经过IO模块160和各种其它控制器162操作性地连接到网络(未示出)。因而,其它控 制器162可以为诸如有线通信或无线通信的各种目的而提供脱离平台的通信功能,上述 目的包括但不限于蜂窝电话(例如,宽带码分多址、W-CDM(通用移动电信系统/UMTS)、 CDMA2000(IS-856/IS-2000)等等)、Wi-Fi (无线保真,例如,电气与电子工程师协会/IEEE 802. 112007 版)、蓝牙(例如,IEEE 802. 15. 1-2005、无线个域网)、WiMax(例如,IEEE 802. 16-2004)、全球定位系统(GPS)、扩频(例如,900MHz)、以及其它无线射频(RF)技术目 的。IO模块160也可以与显示器164进行通信,以便规定视频、图像等等的视觉输出。其 它控制器162也可以与IO模块160进行通信,以便为诸如键盘、鼠标等等的用户接口设备 (未示出)提供支持,以允许用户与系统150互动并且感知来自系统150的信息。
[0062] IO模块160也可以具有诸如USB (通用串行总线,例如,USB规范2. 0、USB应用者 论坛)、串行ATA(SATA,例如,SATA发布版3. 0规范、2009年5月27日,SATA国际组织/ SATA-I0)、高清音频、以及其它控制器的内部控制器。所说明的IO模块160也耦合到存储 设备,该存储设备可以包括硬驱166、固态盘/SSD、只读存储器(ROM)、光盘、闪存(未示出) 等等。
[0063] 所说明的系统150也包括耦合到专用图形存储器170的专用图形处理单元(GPU, 例如图形处理器)168。专用图形存储器170可以例如包括⑶DR(图形DDR)或DDR SDRAM 模块,或者适合于支持图形渲染的任何其它存储器技术。GPU 168和图形存储器170可以 被安装在图形/视频卡上,其中GPU 168可以经由诸如PCI Express图形(PEG,例如,外围 组件互连/PCI Express xl6图形150W-ATX规范1. 0、PCI特殊利益集团)总线、或者加速 图形端口(例如,AGP V3. 0接口规范,2002年9月)总线的图形总线172与CPU 152进行 通信。图形卡可以被集成到系统母板上、主CPU152裸片中、被配置为母板上的分立卡等等。 GPU 168也可以包括用于存储指令和其它数据的内部高速缓存174。
[0064] 所说明的GPU 168包括被配置为标记图像中的连接组件的逻辑单元 176 (176a-176e)。通常,逻辑单元176的工作负荷可以通常在提供高级别并行性的多个执 行单元(未示出)之间进行分配。在所说明的示例中,数据模块176a被配置为获得与图像 相关联的数据,其中该数据可以包括前景数据、部分标记数据等等,或者其任意组合。扫描 模块176b可以使用GPU168中的多个线程进行数据的SMD扫描,并且本地表模块176c可 以基于SMD扫描生成与多个线程相对应的多个连接标记。
[0065] 而且,扫描模块176b可以包括快速子模块178,针对多个线程中的每一个,如果关 于图像的区域检测到同构情况,则该快速子模块178对该图像的区域使用第一扫描过程。 此外,针对多个线程中的每一个,如果关于该图像的区域没有检测到同构情况,则通用子模 块180可以对该图像的区域使用第二扫描过程。在一个示例中,第一扫描过程比第二扫描 过程要快。
[0066] 逻辑单元17
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1