CN101331523B - 用于二进制图像分类及分割的方法和设备 - Google Patents
用于二进制图像分类及分割的方法和设备 Download PDFInfo
- Publication number
- CN101331523B CN101331523B CN200680046816.1A CN200680046816A CN101331523B CN 101331523 B CN101331523 B CN 101331523B CN 200680046816 A CN200680046816 A CN 200680046816A CN 101331523 B CN101331523 B CN 101331523B
- Authority
- CN
- China
- Prior art keywords
- group
- parts
- ray
- groups
- row
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
用于二进制分类的方法和装置包括:使用浮点值的符号来检测不同的小组,检测组中的所有条目是否属于同一个小组,将原始小组分为一致的小组,以及使用浮点值的阵列来对小组分类。通过生成射线组、确定组中各射线的始发点和方向、确定射线组的相干性,以及当射线组中的所有射线被确定为对于各坐标x、y和z以相同方向传播时,将射线组确定为相干的,否则将射线组确定为不相干并以与相干射线组不同的方式来遍历不相干射线组,来检测射线组中的相干性。
Description
技术领域
要求权益的本发明的实现一般可涉及用于二进制图像分类和分割的方案,特别是涉及射线跟踪期间射线的分类。
背景技术
二进制分类任务可包括将给定对象分离成两组,一组处理某些性质,而另一组则不是。一些典型的应用可包括决策、图像分割、数据压缩、计算机视觉、医疗测试和质量控制。存在二进制分类的多种方法,包括但不限于决策树、贝叶斯网络、支持向量机和神经网络。在一些应用中,多次、有时数百万次执行分类,并且二进制判定包括选择两个可能性其中之一:1)组中的所有对象具有某种性质;以及2)组中存在具有不同性质的至少两个对象。在一些实现中,图像处理问题可要求判定一组像素是否具有某种性质。例如,一组像素是否具有相似颜色或者属于同一个对象。
用于解决全局照明问题的一种技术涉及跟踪射线、即确定射线与给定几何形状之间的交点。射线跟踪是一种用于对与各种介质中的波传播相关的各种物理现象建模的常规方式。例如,可将它用于在真实性计算机图形学中计算照明解决方案、用于无线通信中的复杂环境信道建模、高级音频应用中的傲锐(aureal)渲染等。
在全局照明任务中,可将场景的三维描述(包括几何对象、材料性质、光等)转换成适合在计算机监视器上显示或者进行硬拷贝(打印或镀膜)的二维表示。可能有利的是,共同处理射线组,从而利用现代计算机的单指令多数据(SIMD)能力。根据给定的射线组的某个二进制分类,可使用不同的处理方法。在一些实现中,二进制分类可以是射线跟踪射线束中的初始步骤。为了实现全局照明的大量应用所需的实时性能,优选地极快执行该分类步骤。
附图说明
结合在本说明中并构成其组成部分的附图示出符合本发明的原理的一个或多个实现,并且与描述一起用于说明这类实现。附图不一定按照比例绘制,重点是在于说明本发明的原理。附图包括:
图1示出从照相机通过屏幕像素到场景中的对象所跟踪的示范性的多条射线;
图2示出射线跟踪的一个示范性过程;
图3示出分离不相干射线组的一个示范性过程;
图4在概念上示出对于各坐标(x、y和z)具有不同射线方向的示范性的一组4×4像素;
图5示出使用流式SIMD扩展(S.S.E.)指令来分离不相干射线组的一个示范性过程;
图6示出检测给定的射线组中的相干性的一个示范性过程;
图7示出在S.S.E.实现中分离不相干射线组以便进行进一步处理的一个示范性过程;
图8示出一种包括图像分类和分割逻辑的示范性计算机系统。
具体实施方式
以下详细描述参照附图。在不同附图中可使用相同的参考标号来标识相同或相似的要素。为了便于说明而不是进行限制,以下描述中阐述了诸如特定结构、体系结构、接口、技术等具体细节,以便提供对要求权益的本发明的各个方面的充分理解。然而,获益于本公开的本领域的技术人员将会清楚地知道,也可在背离这些具体细节的其它示例中实施要求权益的本发明的各个方面。在某些情况下,省略对公知的设备、电路和方法的描述,以免不必要的细节妨碍对本发明的描述。
在一些实现中,并且为了便于本文进行说明,使用射线跟踪术语和示例来论述本发明的实施例。本发明的实施例不限于射线跟踪。任何特定SIMD实现也不是唯一可行的。本领域的技术人员可对不同的SIMD体系结构实现所描述的算法。射线投射
本文所使用的“射线投射”又称作射线跟踪,可将它理解为表示一种用于确定从沿特定视线的所选点什么是可见的技术。在一些配置中,射线可以是在由位置向量所描述的空间中的点上始发的无限长的半直线,它沿方向向量从所述点传播。通过从射线的位置向量描述的有利点、沿射线的方向向量描述的视线引导一条或多条射线,在计算机图形学中可使用射线跟踪来确定可见性。确定沿那个视线的最近可见表面的位置要求对于与虚拟场景中的所有几何形状的交点来有效地测试该射线并保留最近的交点。
图1示出从照相机102通过屏幕像素104到场景106中的对象所跟踪的多条射线的一个示范性实施例100。如图所示,九组4×4射线108表示为在几何上是分离的。虽然为了便于说明而表示为以某种方式来配置,但是,可通过其它配置来实现图1的实施例。在一些实现中,根据算法的复杂度,在初级眼射线撞击场景中的某些对象之后,可生成次级射线。次级射线可包括但不限于阴影射线(场景中的光的方向上发射的)、反射射线、折射射线以及其它某些类型的射线。在一些实现中,通过从沿计算轨迹的命中点生成次级射线,可使用射线跟踪来计算光学上正确的阴影、反射或折射。因此,典型场景的渲染可包括跟踪数百万条射线,并且可同时处理多个数据流。为了利用这些能力,共同处理射线组可能是有利的。处理器特定指令、如流式单指令/多数据(SIMD)扩展(S.S.E.)指令可允许同时处理四个浮点或整数。
图2示出射线跟踪的一个示例过程200。虽然为了便于清楚地进行说明,可针对图1的实施例100来描述图2,但是应当理解,可通过其它硬件和/或软件实现来执行过程200。
最初可生成射线组(射线投射)(动作202)。在一些实现中,如同图1中那样,可将通过相邻像素的射线集中在一起。当射线大部分一起通过场景时,可以更有效地执行遍历算法。但是,在几个交互作用之后,这些射线可使相干性变得松散,特别是在组中的射线与不同对象相交时。
可确定各射线的始发点(眼位)和方向(动作204)。在一些实现中,始发点可表示为 并且方向可表示为 眼射线可在照相机的投影中心始发,并通过图像平面的像素。可使用数字下标来区分不同的坐标(代替x、y和z)。例如,射线方向可表示为 还将使用下标i来指明组中的不同射线(例如,对于4×4射线组中的所有射线,i=1...16)。
可确定射线组的相干性(动作206)。在一些实施例中,可按照下式(1)来确定相干性:(所有dxi>0或所有dxi<0)与(所有dyi>0或所有dyi<0)与(所有dzi>0或所有dzi<0) 等式(1)其中,i从1到N,N=分组中的射线数量
如果确定所有射线对于各坐标x、y和z以相同方向(正或者负)传播(动作208),则可确定该组相干(动作210)。如果所有射线对于各坐标x、y和z不是以相同方向传播(动作208),则可认为该组不相干(动作212)。在一些实现中,可通过与相干的射线组不同的方式来遍历不相干的射线组。在等式(1)中不可定义精确的等同性。例如,可将其中某些方向坐标为零的一组作为不相干组来处理。分离算法
在一些实现中,在全局照明任务中创建的射线分组的大部分将会是相干的。但是,当分组中存在大量射线时,分组中的射线的一部分可能在不同方向上传播,也就是不相干的。如图1所示,可利用分为四行、每行四个像素的大小十六的分组。为了进行说明,图3示出使用这个分组配置来分离不相干射线组的一个示例过程300。虽然为了便于清楚地进行说明,可针对图1的实施例100来描述图3,但是应当理解,可通过其它硬件和/或软件实现来执行过程100。
最初确定一组是否相干(动作302)。在一些实现中,这可按照上式(1)或其它某种方式来确定。
如果确定该组是相干的(动作302),则可将该组作为整体来处理(动作304)。
如果确定该组是不相干的(动作302),则可根据相干性质将该组分成小组(动作306)。由于示例中的各坐标可产生两个分离的方向,所以可能具有八个不同的小组。
对于各小组(动作308),可独立执行射线跟踪算法(动作310)。
然后合并结果(动作310)。这个步骤包括将相交数据从各个小组复制到原始组,其中相交数据可包括到交点的距离以及各射线的相交对象的标识符。
本领域的技术人员会知道,可通过任何高级语言以及通过支持射线跟踪期间所处理的数据量的方式来实现算法300的实施例。S.S.E.实现
图4在概念上示出对于各坐标(x、y和z)具有不同射线方向的示范性的一组400的4×4像素(402)。具体来说,示出4×4射线组的方向符号及其紧凑S.S.E布局404。区域406表示正方向,区域408表示负方向。
图5示出将射线方向数据重组为适合S.S.E.指令的格式的一个示例过程500。虽然为了便于清楚地进行说明,可针对图4的实施例400来描述图5,但是应当理解,可通过其它硬件和/或软件实现来执行过程500。例如,除了加速射线跟踪之外,需要处理大量数据的其它应用、例如图像分割和分类问题也可从中获益。
最初可通过不适合于S.S.E实现的格式来存储数据(动作502)。在一些实现中,可将各原点和方向向量表示为三个浮点数(每个坐标一个)。基于此,可依次存储所有向量(动作502),如下面所示:
dx1 | dy1 | dz1 | dx2 | dy2 | dz2 | dx3 | dy3 | dz3 | dx4 | dy4 | dz4 |
在这个实现中,该布局表示存储4个方向向量 和(4×4组中的第一行)。但是,在一些实现中,这种格式对于四向SIMD处理可能不是理想的,因为各S.S.E.数可包含不同向量的元素(第一个中的(dx1,dy1,dz1,dx2),依此类推)。为了充分利用S.S.E.单元的处理能力,可按照以下方式重新排列数据(动作504):
以上示出三个同质S.S.E.向量dir[0][0]、dir[0][1]和dir[0][2]。具体来说,在dir[i][j]中,指数i表示行(从0到3),而指数j表示坐标(x、y和z)。
在一个实现中,可将图4中16条射线的数据404连续存储在存储器中,因此dir[0][2]之后紧接dir[1][0],依此类推。各dir[i][j]数可占用16个字节(4×32位),因此,可能需要总共16×3×4=192个字节来存储整个4×4组的方向向量。根据上述过程300且如图3所示,最初确定分组中的所有射线是否相干。参照图4,这将对应于具有区域406或者408的所有x、y和z扇区。
图6示出使用S.S.E.指令来测试射线组的相干性的一个示例过程600,并实现图2的实施例206。虽然为了便于清楚地进行说明,可针对图4的实施例400来描述图6,但是应当理解,可通过其它硬件和/或软件实现来执行过程600。例如,该过程可使用各种操作来实现,其中包括但不限于MOVMSKPS(创建符号位的四位掩码)操作。为了进行说明,可使用例如IA-32 Intel架构软件开发人员手册(http://www.intel.com/design/Pentium4/manuals/25366513.pdf)中公开的S.S.E.固有指令。
过程600检查给定分组中所有射线的x、y和z方向。为了便于清楚地说明,对于包含4行、每行4个射线的分组来描述这个方面。应当理解,可对于更大或更小的射线组来实现过程600。
最初可计算四位掩码cm[0],它存储第一行射线的x方向的符号(动作610)。这可实现为:cm[0]=_mm_movemask_ps(dir[0][0])
然后可测试掩码cm[0],以便检测x方向的相干性(实施例612)。如果所有x方向为正(在这种情况下,cm[0]等于0)或者负(cm[0]为15),则控制转到动作620。否则,可将整个射线组作为不相干组来处理(动作660,它对应于图2的实施例212)。
类似地,在动作620,y方向的掩码可计算为cm[1]=_mm_movemask_ps(dir[0][1])并且可在动作622执行相干性测试。
对于z方向,在动作630,掩码可计算为cm[2]=_mm_movemask_ps(dir[0][2])并且可在动作632执行相干性测试。
对于其它所有行(例如由dir[1]、dir[2]和dir[3]表示),可将方向掩码与第一行已经发现的掩码cm[j]进行比较。为了使整组是相干的,各方向的这些掩码必须是相同的。可采用以下测试(对于x方向)来实现:if(cm[0]!=_mm_movemask_ps(dir[1][0]))gotoprocess_incoherent_group;//660if(cm[0]!=_mm_movemask_ps(dir[2][0]))gotoprocess_incoherent_group;//660if(cm[0]!=_mm_movemask_ps(dir[3][0]))gotoprocess_incoherent_group;//660可对于y方向(使用cm[1])和z方向(cm[2])来执行类似测试。可在动作640进行这些计算。如果发现组是不相干的,则执行继续进行到动作660,否则,在动作650,将组作为相干组来处理。
图7示出在S.S.E.实现中使用S.S.E.指令来分离不相干射线组以便在S.S.E.实现中进行进一步处理的一个示例过程700。这对应于图6的实施例660。虽然为了便于清楚地进行说明,可针对图4的实施例400来描述图7,但是应当理解,可通过其它硬件和/或软件实现来执行过程700。为了进行示范,对于例如图4所示的4×4射线分组之类的射线分组的各行来执行这个过程。
可根据逐行过程来执行过程700。可将各行分为相干小组。这可通过创建掩码(逻辑S.S.E.值)来实现,其中掩码对于属于当前小组的射线包含1,而对于其它射线包含0。可能的是,该行中的全部4个射线以不同方向前进,因而需要创建4个小组。还可能的是,某个行中的全部射线将是相干的,因此仅可创建一个小组。一种常见情况是当该行中存在一个或两个小组时的情况。以下描述并且图7所示的过程可针对这个常见情况。参照图4,行0和1是相干的(对于行0为全部正方向,对于行1为匹配方向),行2具有两个小组,而行3包含三个小组。
对于各行,在动作702,确定哪些射线以与该行(对应于指数0)的第一射线相同的方向前进。这可通过将各坐标x、y和z的各个掩码与第一射线的适当掩码(通过使用下面的重排运算符(shufflingoperator)来获得)进行比较来实现。返回四个相同的值,然后可将它们与整个掩码进行比较。这可通过执行以下6个操作来实现:m[0]=_mm_cmpge_ps(dir[i][0],_mm_setzero_ps());//xm[1]=_mm_cmpge_ps(dir[i][1],_mm_setzero_ps());//ym[2]=_mm_cmpge_ps(dir[i][2],_mm_setzero_ps());//zm[0]=_mm_xor_ps(m[0],_mm_shuffle_ps(m[0],m[0],0))m[1]=_mm_xor_ps(m[1],_mm_shuffle_ps(m[1],m[1],0))m[2]=_mm xor_ps(m[2],_mm_shuffle_ps(m[2],m[2],0))因此,对于匹配第一射线的方向的所有方向,逻辑变量中的适当条目(对于x方向为m[0],对于y为m[1],以及对于z为m[2])将完全为零(包含全0)。
在动作704,可处理在动作702确定为以与第一射线相同的方向前进的所有射线。这可对于变量mact对其保持为1的所有射线来执行:mall=_mm_or_ps(_mm_or_ps(m[0],m[1]),m[2]);//如果与第一个不同,则为1mact=_mm_andnot_ps(mall,sse_true);//sse_true包含全1
如果如动作706所确定的、在该行中不存在不相干射线,则可取下一行(动作720)。这可通过将_mm_movemask_ps(mall)与0进行比较而测试上述变量mall的符号位来确定。如果为真,则给定行中不存在不相干射线。
否则,如果在动作706确定存在不相干射线,则确定在该行中是否正好存在仅在一个方向上不同的2个小组(动作708)。这可通过检验对于j=1,2,3、只有一个_mm_movemask_ps(m[j])值是非零值来实现。
如果在动作708检测到正好存在两个小组,则在动作710处理第二小组。例如,这可对于变量mall对其保持为1的所有射线来执行。
否则(动作712),可识别和处理给定行中的所有可能的小组。这可通过使用值m[0]、m[1]和m[2]构成各种掩码、并在处理给定行时使用这些掩码来实现,但是仅当掩码中存在非零成分时进行。这些是7个掩码值,从而产生所有可能的小组(除了以上定义的一个之外):mact=_mm_and_ps(_mm_and_ps(m[0],m[1]),m[2])mact=_mm_and_ps(_mm_andnot_ps(m[0],m[1]),m[2])mact=_mm_and_ps(_mm_andnot_ps(m[1],m[0]),m[2])mact=_mm_and_ps(_mm_andnot_ps(m[2],m[0]),m[1])mact=_mm_andnot_ps(m[0],_mm_andnot_ps(m[2],m[1]))mact=_mm_andnot_ps(m[0],_mm_andnot_ps(m[1],m[2]))mact=_mm_andnot_ps(m[1],_mm_andnot_ps(m[2],m[0]))产生所有可能小组的其它逻辑表达式也是可行的。
在典型实现中,过程700有效地处理最普遍情况中的两种:1)行中的所有4个射线是相干的(仅需要处理一个小组)。2)只有一个坐标(x、y或z)产生不相干值。在这种情况下,将处理两个小组,但是将避免[0050]中由掩码所定义的穷举计算。系统
图8示出一种包括图像分类和分割逻辑802的示范性计算机系统800。图像分类和分割逻辑802可以是上述过程其中之一。代表性地,计算机系统800包括用于在处理器(CPU)820与芯片组806之间传递信息的处理器系统总线804。如本文所述,可使用术语“芯片组”来总括性地描述耦合到CPU 820以便执行预期系统功能性的各种设备。在一些实现中,CPU 820可以是多核芯片多处理器(CMP)。
代表性地,芯片组806包括其中包含集成图形控制器810的存储控制器808。在一些实现中,图形控制器810可耦合到显示器812。在其它实现中,图形控制器810可耦合到芯片组806,并与存储控制器808分离,使得芯片组806包括与图形控制器分离的存储控制器。图形控制器可以处于分立配置中。代表性地,存储控制器808还耦合到主存储器814。在一些实现中,主存储器814可包括但不限于随机存取存储器(RAM)、动态RAM(DRAM)、静态RAM(SRAM)、同步DRAM(SDRAM)、双倍数据速率(DDR)SDRAM(DDR-SDRAM)、存储器总线(Rambus)DRAM(RDRAM)或者能够支持数据的高速缓冲的任何设备。
如进一步所述,芯片组806可包括输入/输出(I/O)控制器816。虽然在一个实施例中,将芯片组806表示为包括独立图形控制器810和I/O控制器816,但可将图形控制器810集成在CPU 820中,以便例如提供片上系统(SOC)。在一备选实施例中,将图形控制器810和I/O控制器816的功能性集成在芯片组806中。
在一个实施例中,可在包括集成在CPU中的存储控制器、集成在芯片组中的存储控制器和I/O控制器以及片上系统的计算机系统中实现图像分类和分割逻辑802。因此,本领域的技术人员会认识到,提供图8以便说明一个实施例,而不应当以限制方式对它进行理解。在一个实施例中,图形控制器810包括渲染引擎818,以便渲染从图像分类和分割逻辑802中接收的数据,从而实现这种数据的显示。
前面对一个或多个实现的描述提供说明和描述,而不是要穷举本发明的范围或者将本发明的范围限于所公开的精确形式。根据上述教导,修改和变更是可行的,或者从实施本发明的各种实现中可获得修改和变更。
虽然将系统说明为包括分立组件,但是,这些组件可通过硬件、软件/固件或者它们的某种结合来实现。在通过硬件来实现时,可将系统的部分组件结合到某个芯片或设备中。虽然论述了若干示范实现,但是,要求权益的本发明不应被限于明确提到的那些方面,而是应当包含任何设备或接口,其中包括多于一个能够处理、发送、输出或存储信息的处理器。例如可通过可由处理器或本地系统的另一个部分运行的软件来实现这些过程。
例如,图2、图3、图5、图6和图7中的动作的至少一部分可实现为在机器可读介质中实现的指令、指令组。不应当将本申请的描述中使用的元件、动作或指令理解为对于本发明是关键或必不可少的,除非明确进行这样的说明。本文所使用的冠词“一”也包括一项或多项。可在不实质上背离本发明的精神和原理的前提下,对要求权益的本发明的上述实现进行变更和修改。在本文中,所有这类修改和变更都要包含在本公开的范围之内并且为以下权利要求所保护。
Claims (1)
1.一种用于二进制分类的方法,包括:
使用浮点值的符号来检测不同的小组;
检测所述组中的所有条目是否属于同一个小组;
将原始小组分为一致的小组;以及
使用浮点值的阵列来对小组分类,
其中检测所述组中的所有条目是否属于同一个小组的步骤进一步包括:
检测射线组中的相干性,
其中,检测射线组中的相干性进一步包括:
生成射线组;
确定所述组中的各射线的始发点和方向;
确定所述射线组的相干性;以及
当射线组中的所有射线被确定为对于各坐标x、y和z以相同方向传播时,将射线组确定为相干的;以及
否则将射线组确定为不相干的,并以与相干射线组不同的方式来遍历不相干射线组,
其中,将原始小组分为一致的小组的步骤进一步包括:
使用流式SIMD扩展指令来分离不相干组,
其中,使用流式SIMD扩展指令将原始小组分为一致的小组进一步包括:
逐行地处理组;
确定所述行中的哪些条目与所述行中的第一条目属于相同的小组;
将与所述行中的第一条目属于相同的小组的所有条目作为一个小组来处理;
检测在所述行中是否存在一个、两个或多于两个小组;
如果仅存在两个小组,则处理第二小组;以及
如果存在多于两个小组,则使用逻辑掩码来指定所述组中所有可能的小组。
2. 如权利要求1所述的方法,其中,提供SIMD指令用于二进制分类。
3. 如权利要求1所述的方法,其中,检测所述组中的所有条目是否属于同一个小组进一步包括:
检测所述组中的所有条目是否具有相同符号。
4. 如权利要求1所述的方法,其中,确定所述射线组的相干性进一步包括:
根据(所有dxi>0or所有dxi<0)and(所有dyi>0or所有dyi<0)and(所有dzi>0or所有dzi<0)来确定所述射线组的相干性,其中i从1到N,其中N=分组中的射线数量,其中dxi、dyi和dzi为向量的元素。
5. 如权利要求1所述的方法,其中,否则将射线组确定为不相干的并以与相干射线组不同的方式来遍历所述不相干射线组进一步包括:
如果在所述组中某些方向坐标为零,则将射线组确定为不相干的,并以与相干射线组不同的方式来遍历所述不相干射线组。
6. 如权利要求1所述的方法,其中,否则将射线组确定为不相干的并以与相干射线组不同的方式来遍历所述不相干射线组进一步包括:
根据相干性质将所述组分成小组。
7. 如权利要求1所述的方法,其中,将射线组确定为不相干的并以与相干射线组不同的方式来遍历所述不相干射线组进一步包括:
合并不同小组的结果。
8. 如权利要求1所述的方法,其中,确定所述组中的各射线的始发点和方向进一步包括:
将数据重组为用于流式SIMD扩展实现的格式,其中,对于每四个射线,可将各原点和方向向量表示为三个流式SIMD扩展数。
9. 如权利要求3所述的方法,其中,使用浮点值的符号来检测所述组中的所有条目是否属于同一个小组进一步包括:
检测包含多个行的所述组中的第一行的所有符号位对于各条目是否相同;
将所述组中的其它行的符号位与所述第一行的符号位进行比较;以及
使用比较结果来检测相干组。
10. 如权利要求1所述的方法,其中,使用流式SIMD扩展指令将原始小组分为一致的小组进一步包括:
识别最普遍的情况,并对算法进行优化以便有效地对所述情况进行处理。
11. 如权利要求1所述的方法,其中,使用流式SIMD扩展逻辑掩码将原始小组分为一致的小组以便指定所述组中所有可能的小组进一步包括:
使用流式SIMD扩展值的阵列来查找所有可能的逻辑掩码;以及
仅将流式SIMD扩展操作用于计算逻辑掩码。
12. 一种装置:
使用浮点值的符号来检测不同的小组的部件;
检测所述组中的所有条目是否属于同一个小组的部件;
将原始小组分为一致的小组的部件;以及
使用浮点值的阵列来对小组分类的部件,其中,检测所述组中的所有条目是否属于同一个小组的部件进一步包括:检测射线组中的相干性的部件,其中,检测射线组中的相干性的部件进一步包括:
生成射线组的部件;
确定所述组中的各射线的始发点和方向的部件;
确定所述射线组的相干性的部件;以及
当射线组中的所有射线被确定为对于各坐标x、y和z以相同方向传播时,将射线组确定为相干的,否则将射线组确定为不相干的,并以与相干射线组不同的方式来遍历不相干射线组的部件,
其中,将原始小组分为一致的小组的部件进一步包括:
使用流式SIMD扩展指令来分离不相干组的部件,
其中,使用流式SIMD扩展指令将原始小组分为一致的小组的部件进一步包括:
逐行地处理组的部件;
确定所述行中的哪些条目与所述行中的第一条目属于相同的小组的部件;
将与所述行中的第一条目属于相同的小组的所有条目作为一个小组来处理的部件;
检测在所述行中是否存在一个、两个或多于两个小组的部件;
如果仅存在两个小组,则处理第二小组的部件;以及
如果存在多于两个小组,则使用逻辑掩码来指定所述组中所有可能的小组的部件。
13. 一种系统,包括:
图形控制器,包括二进制图像分类和分割逻辑单元,所述逻辑单元包括:
使用浮点值的符号来检测不同的小组的部件,检测所述组中的所有条目是否属于同一个小组的部件,将原始小组分为一致的小组的部件,以及使用浮点值的阵列来对小组分类的部件,其中,检测所述组中的所有条目是否属于同一个小组的部件进一步包括检测射线组中的相干性的部件,所述检测射线组中的相干性的部件包括生成射线组的部件、确定所述组中的各射线的始发点和方向的部件、确定所述射线组的相干性的部件,以及当射线组中的所有射线被确定为对于各坐标x、y和z以相同方向传播时将射线组确定为相干的,否则将射线组确定为不相干的,并以与相干射线组不同的方式来遍历不相干射线组的部件,
其中,将原始小组分为一致的小组的部件进一步包括:
使用流式SIMD扩展指令来分离不相干组的部件,
其中,使用流式SIMD扩展指令将原始小组分为一致的小组的部件进一步包括:
逐行地处理组的部件;
确定所述行中的哪些条目与所述行中的第一条目属于相同的小组的部件;
将与所述行中的第一条目属于相同的小组的所有条目作为一个小组来处理的部件;
检测在所述行中是否存在一个、两个或多于两个小组的部件;
如果仅存在两个小组,则处理第二小组的部件;以及
如果存在多于两个小组,则使用逻辑掩码来指定所述组中所有可能的小组的部件。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/301,699 | 2005-12-12 | ||
US11/301,699 US20070132754A1 (en) | 2005-12-12 | 2005-12-12 | Method and apparatus for binary image classification and segmentation |
PCT/US2006/047137 WO2007070456A2 (en) | 2005-12-12 | 2006-12-06 | Method and apparatus for binary image classification and segmentation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101331523A CN101331523A (zh) | 2008-12-24 |
CN101331523B true CN101331523B (zh) | 2014-10-01 |
Family
ID=38138817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680046816.1A Expired - Fee Related CN101331523B (zh) | 2005-12-12 | 2006-12-06 | 用于二进制图像分类及分割的方法和设备 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20070132754A1 (zh) |
EP (1) | EP1960969A2 (zh) |
JP (1) | JP4778561B2 (zh) |
KR (1) | KR100964408B1 (zh) |
CN (1) | CN101331523B (zh) |
TW (1) | TWI395155B (zh) |
WO (1) | WO2007070456A2 (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7969434B2 (en) * | 2006-09-19 | 2011-06-28 | Caustic Graphics, Inc. | Method, apparatus, and computer readable medium for accelerating intersection testing in ray-tracing rendering |
US8674987B2 (en) * | 2006-09-19 | 2014-03-18 | Caustic Graphics, Inc. | Dynamic ray population control |
US7830379B2 (en) * | 2006-09-19 | 2010-11-09 | Caustic Graphics, Inc. | Architectures for parallelized intersection testing and shading for ray-tracing rendering |
US8018457B2 (en) * | 2006-09-19 | 2011-09-13 | Caustic Graphics, Inc. | Ray tracing system architectures and methods |
US9478062B2 (en) | 2006-09-19 | 2016-10-25 | Imagination Technologies Limited | Memory allocation in distributed memories for multiprocessing |
US9665970B2 (en) | 2006-09-19 | 2017-05-30 | Imagination Technologies Limited | Variable-sized concurrent grouping for multiprocessing |
US8237711B2 (en) * | 2007-11-19 | 2012-08-07 | Caustic Graphics, Inc. | Tracing of shader-generated ray groups using coupled intersection testing |
US8390618B2 (en) * | 2008-03-03 | 2013-03-05 | Intel Corporation | Technique for improving ray tracing performance |
US8217935B2 (en) | 2008-03-31 | 2012-07-10 | Caustic Graphics, Inc. | Apparatus and method for ray tracing with block floating point data |
US8421801B2 (en) * | 2008-09-09 | 2013-04-16 | Caustic Graphics, Inc. | Ray tracing using ray-specific clipping |
JP5244977B2 (ja) * | 2008-09-22 | 2013-07-24 | コースティック グラフィックス インコーポレイテッド | レイトレーシングシェーダapiのためのシステム及び方法 |
US8379022B2 (en) * | 2008-09-26 | 2013-02-19 | Nvidia Corporation | Fragment shader for a hybrid raytracing system and method of operation |
KR101610194B1 (ko) * | 2008-10-15 | 2016-04-07 | 삼성전자주식회사 | 영상처리를 위한 데이터 처리 장치 및 방법 |
CN102800050B (zh) * | 2011-05-25 | 2016-04-20 | 国基电子(上海)有限公司 | N维特征空间连通性计算方法 |
US10061618B2 (en) | 2011-06-16 | 2018-08-28 | Imagination Technologies Limited | Scheduling heterogenous computation on multithreaded processors |
GB2529075A (en) | 2011-06-16 | 2016-02-10 | Imagination Tech Ltd | Graphics processor with non-blocking concurrent architecture |
US9424685B2 (en) | 2012-07-31 | 2016-08-23 | Imagination Technologies Limited | Unified rasterization and ray tracing rendering environments |
GB2541084B (en) | 2013-03-15 | 2017-05-17 | Imagination Tech Ltd | Rendering with point sampling and pre-computed light transport information |
US8842117B1 (en) | 2014-02-13 | 2014-09-23 | Raycast Systems, Inc. | Computer hardware architecture and data structures for lookahead flags to support incoherent ray traversal |
US10019342B2 (en) * | 2015-12-24 | 2018-07-10 | Intel Corporation | Data flow programming of computing apparatus with vector estimation-based graph partitioning |
US9990691B2 (en) * | 2016-02-17 | 2018-06-05 | Intel Corporation | Ray compression for efficient processing of graphics data at computing devices |
US11276224B2 (en) * | 2020-04-17 | 2022-03-15 | Samsung Electronics Co., Ltd. | Method for ray intersection sorting |
US11295509B2 (en) * | 2020-06-29 | 2022-04-05 | Imagination Technologies Limited | Intersection testing in a ray tracing system using multiple ray bundle intersection tests |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1491404A (zh) * | 2001-02-16 | 2004-04-21 | ����˹�ش�ѧ | 使用一个或多个微处理器的快速并行锥形线束重建系统和方法 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6104540A (en) * | 1996-11-05 | 2000-08-15 | Olympus Optical Co., Ltd. | Decentered optical system |
US6092059A (en) * | 1996-12-27 | 2000-07-18 | Cognex Corporation | Automatic classifier for real time inspection and classification |
US6389377B1 (en) * | 1997-12-01 | 2002-05-14 | The Johns Hopkins University | Methods and apparatus for acoustic transient processing |
US6313841B1 (en) * | 1998-04-13 | 2001-11-06 | Terarecon, Inc. | Parallel volume rendering system with a resampling module for parallel and perspective projections |
US6502086B2 (en) * | 1999-01-04 | 2002-12-31 | International Business Machines Corporation | Mapping binary objects in extended relational database management systems with relational registry |
US6556200B1 (en) * | 1999-09-01 | 2003-04-29 | Mitsubishi Electric Research Laboratories, Inc. | Temporal and spatial coherent ray tracing for rendering scenes with sampled and geometry data |
JP2001092992A (ja) * | 1999-09-24 | 2001-04-06 | Ricoh Co Ltd | 3次元形状処理方法およびその方法を実行するためのプログラムを記録した記録媒体 |
JP4018300B2 (ja) * | 1999-09-27 | 2007-12-05 | ザイオソフト株式会社 | 画像処理装置 |
US20020190984A1 (en) * | 1999-10-01 | 2002-12-19 | Larry D. Seiler | Voxel and sample pruning in a parallel pipelined volume rendering system |
US6819793B1 (en) * | 2000-06-30 | 2004-11-16 | Intel Corporation | Color distribution for texture and image compression |
US7102636B2 (en) * | 2001-03-31 | 2006-09-05 | Intel Corporation | Spatial patches for graphics rendering |
US20030152897A1 (en) * | 2001-12-20 | 2003-08-14 | Bernhard Geiger | Automatic navigation for virtual endoscopy |
US20030206184A1 (en) * | 2002-05-06 | 2003-11-06 | Reshetov Alexander V. | Displaying content in different resolutions |
US7098907B2 (en) * | 2003-01-30 | 2006-08-29 | Frantic Films Corporation | Method for converting explicitly represented geometric surfaces into accurate level sets |
US20050143965A1 (en) * | 2003-03-14 | 2005-06-30 | Failla Gregory A. | Deterministic computation of radiation doses delivered to tissues and organs of a living organism |
WO2004110309A2 (en) * | 2003-06-11 | 2004-12-23 | Case Western Reserve University | Computer-aided-design of skeletal implants |
US7349563B2 (en) * | 2003-06-25 | 2008-03-25 | Siemens Medical Solutions Usa, Inc. | System and method for polyp visualization |
US7372552B2 (en) * | 2003-12-22 | 2008-05-13 | American Gem Society | Methods, apparatus, and systems for evaluating gemstones |
WO2005103921A2 (en) * | 2004-04-15 | 2005-11-03 | Edda Technology, Inc. | Interactive 3d data editing via 2d graphical drawing tools |
US7990380B2 (en) * | 2004-09-30 | 2011-08-02 | Intel Corporation | Diffuse photon map decomposition for parallelization of global illumination algorithm |
US7627620B2 (en) * | 2004-12-16 | 2009-12-01 | Oracle International Corporation | Data-centric automatic data mining |
KR100655491B1 (ko) * | 2004-12-21 | 2006-12-11 | 한국전자통신연구원 | 음성인식 시스템에서의 2단계 발화 검증 방법 및 장치 |
US7348975B2 (en) * | 2004-12-28 | 2008-03-25 | Intel Corporation | Applications of interval arithmetic for reduction of number of computations in ray tracing problems |
US7969437B2 (en) * | 2004-12-28 | 2011-06-28 | Intel Corporation | Method and apparatus for triangle representation |
US7414624B2 (en) * | 2005-10-28 | 2008-08-19 | Intel Corporation | Apparatus and method for a frustum culling algorithm suitable for hardware implementation |
US8064694B2 (en) * | 2006-06-21 | 2011-11-22 | Hewlett-Packard Development Company, L.P. | Nonhuman animal integument pixel classification |
-
2005
- 2005-12-12 US US11/301,699 patent/US20070132754A1/en not_active Abandoned
-
2006
- 2006-12-06 WO PCT/US2006/047137 patent/WO2007070456A2/en active Application Filing
- 2006-12-06 KR KR1020087014176A patent/KR100964408B1/ko not_active IP Right Cessation
- 2006-12-06 JP JP2008539132A patent/JP4778561B2/ja not_active Expired - Fee Related
- 2006-12-06 EP EP06845162A patent/EP1960969A2/en not_active Withdrawn
- 2006-12-06 CN CN200680046816.1A patent/CN101331523B/zh not_active Expired - Fee Related
- 2006-12-11 TW TW095146255A patent/TWI395155B/zh not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1491404A (zh) * | 2001-02-16 | 2004-04-21 | ����˹�ش�ѧ | 使用一个或多个微处理器的快速并行锥形线束重建系统和方法 |
Non-Patent Citations (1)
Title |
---|
Marc Levoy.Efficient Ray Tracing of Volume Data.《ACM Transactions on Graphics》.1990,第9卷(第3期),245-261. * |
Also Published As
Publication number | Publication date |
---|---|
KR100964408B1 (ko) | 2010-06-15 |
WO2007070456A2 (en) | 2007-06-21 |
US20070132754A1 (en) | 2007-06-14 |
KR20080069681A (ko) | 2008-07-28 |
TW200745992A (en) | 2007-12-16 |
JP4778561B2 (ja) | 2011-09-21 |
CN101331523A (zh) | 2008-12-24 |
TWI395155B (zh) | 2013-05-01 |
WO2007070456A3 (en) | 2007-11-01 |
EP1960969A2 (en) | 2008-08-27 |
JP2009515261A (ja) | 2009-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101331523B (zh) | 用于二进制图像分类及分割的方法和设备 | |
US10986325B2 (en) | Scene flow estimation using shared features | |
US11631239B2 (en) | Iterative spatio-temporal action detection in video | |
US11074717B2 (en) | Detecting and estimating the pose of an object using a neural network model | |
US11393157B2 (en) | Robust ray-triangle in intersection | |
CN111210498B (zh) | 降低多边形网格的细节水平以减少被渲染几何的复杂度 | |
CN110766778B (zh) | 使用散列执行并行路径空间滤波的方法和系统 | |
CN112149795A (zh) | 用于自监督事件学习与异常检测的神经架构 | |
CN111143174A (zh) | 在共享功率/热约束下操作的硬件的最佳操作点估计器 | |
CN111667542B (zh) | 适用于人工神经网络的用于处理压缩数据的解压缩技术 | |
US10872394B2 (en) | Frequent pattern mining method and apparatus | |
Lee et al. | Instance-wise occlusion and depth orders in natural scenes | |
CN104461862A (zh) | 数据处理系统以及线程崩溃后的资源恢复方法和装置 | |
CN115797543A (zh) | 单个图像逆向渲染 | |
Xiao et al. | Comparative investigation of GPU-accelerated triangle-triangle intersection algorithms for collision detection | |
Burstedde et al. | Coarse mesh partitioning for tree-based amr | |
CN111191784A (zh) | 转置的稀疏矩阵乘以稠密矩阵用于神经网络训练 | |
US10002432B2 (en) | Method and apparatus for rendering target fluid | |
CN116108952A (zh) | 用于组合优化的并行处理 | |
CN116127685A (zh) | 使用机器学习执行模拟 | |
CN113709094A (zh) | 用于网络地址标识符的用户可感知的标记 | |
JP2006338293A (ja) | 画像データ割当て方法、画像処理制御装置および画像処理システム | |
US20240104790A1 (en) | Optimizing grid-based compute graphs | |
US20230289190A1 (en) | Programmatically controlled data multicasting across multiple compute engines | |
Borah et al. | GPU-based Parallel Computing for VANETs: Current State and Future Prospects |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141001 Termination date: 20171206 |
|
CF01 | Termination of patent right due to non-payment of annual fee |