生成正则成像函数的制作方法_2

文档序号:9308632阅读:来源:国知局
代码,所述代码在执行时提供与合并的成像函数的执行有关的状态或其它信息。
[0020]正则成像函数模板140是可以从其构造单独正则成像函数或者正则成像函数集合的类。如此构造的单独的正则成像函数因此是正则成像函数类的实例。因此,正则成像函数类的实例可以分离地执行,很像是单片函数,或者可以一起组合成合并的成像函数,如以下更加具体地描述的那样。
[0021]图2图示了通过组合示例性正则成像函数210A、210B和210C(其中的每一个是正则成像函数类140的实例)而形成的示例性合并的成像函数200。更具体地,合并的函数200部分地通过将函数210A-C的参数检查器212A-C合并到合并的函数200中而形成。类似地,合并的函数200另外部分地通过将函数210A-C的存储器分配器214A-C合并到合并的函数200中而形成。函数210A-C的循环尺度216A-C同样被合并到合并的函数200中作为循环尺度父代236。函数210A-C的外循环218A-C也被合并到合并的函数200中以形成外循环父代238。外循环父代238包括数据读取优化器父代240,其将函数210A-C的数据读取优化器220A-C和计算操作222A-C组合到合并的函数200中,外循环父代例程238还包括数据写入优化器父代244,其将函数210A-C的数据写入优化器224A-C组合到合并的函数200中。合并的函数200还包括函数210A-C的存储器解分配器226A-C和状态报告器230A-C。因此,在所描绘的实施例中,三个示例性正则函数组合成一个示例性合并的函数200。
[0022]当示例性函数210A-C中的每一个如本文所描述的那样合并到合并的函数200中时,可以实现相对于对应的单独(未合并的)单片函数的效率和/或性能的在效率和/或性能方面的相当大增益。更具体地,通过合并的函数200实现的性能中的增加和/或效率至少部分地起因于仅遍历一次外循环父代238,而相比之下,分离的函数的相应外循环必须各自被遍历,包括每一个函数的相应数据读取和数据写入操作。因此,冗余地访问和/或在函数之间传递数据的需要通过利用合并的函数200而相当大地降低。
[0023]图3是用于依照实施例的合并正则成像函数的方法300的过程流程图。在块310处,创建正则成像函数的集合。在实施例中,正则成像函数类或模板140可以用于构造正则成像函数的集合,非常像以上关于图2所描述的。
[0024]在块320处,在块310处创建的正则成像函数的期望的集合或子集被合并以从而形成合并的成像函数,所述合并的成像函数在实施例中非常像以上关于合并的成像函数200所描述的。应当指出的是,将正则成像函数的集合一起合并成合并的成像函数的过程在实施例中可以由例如函数创作器(composer)自动执行而不需要由程序员或其他人员手动干预。在实施例中,在块320处的合并可以使用编译器来执行以确定正则成像函数的各种属性中的哪些应当在合并的成像函数的编译期间被合并在一起。在该示例中,编译器可以推断正则成像函数的给定集合的哪些属性对应于彼此并且因此应当合并在一起。而且,在实施例中,程序员可以指定将合并在一起的正则成像函数的属性。
[0025]在实施例中,可以利用正则成像模板或类140创建一个或多个合并的成像函数来编写增强现实库,以创建相对于诸如被包含在常规库中的单片函数之类的单片成像函数的对应库具有相当大增加的效率和性能的经优化的成像流水线,所述常规库诸如是视觉计算加速器(VCA)库或英特尔的Integrated Performance Primitives (IPP)(集成性能原件)库。合并的成像函数的这样的库可以用在各种成像应用中,包括计算机视觉、打印和/或相机成像和图形处理。
[0026]而且,在实施例中,本文所描述的技术可以用于将代码编译或转化成合并的且正则的成像函数。具体地,正则成像函数模板使得编译器或转化器能够汇编经组合的正则成像函数并且生成新的代码以根据成像函数处置数据预取出、读取或写入。在实施例中,代码可以是高级语言,其中程序员可以将正则成像函数组合成高级代码。此外,在实施例中,代码可以是中间级代码,其中编译器自动将成像函数合并成代码(在它被编译时)。编译器可以使用正则成像函数模板以自动合并成像函数。另外,在实施例中,代码可以是汇编级或原生代码,其中成像函数在运行时被合并成汇编级或原生代码。尽管使用成像函数描述了本技术,以及类型的函数可以用于生成正则函数。
[0027]图4是依照实施例的可以使用的计算设备400的框图。除其它之外,计算设备400可以例如是膝上型计算机、台式计算机、平板计算机、移动设备或服务器。计算设备400可以包括被配置成执行所存储的指令的中央处理单元(CPU) 402以及存储由CPU 402可执行的指令的存储器设备404。CPU可以通过总线406耦合到存储器设备404。CPU还包括缓存(cache) 408ο在实施例中,自动流水线组成可以根据CPU缓存408的大小来优化。此外,CPU 402可以是单核处理器、多核处理器、计算集群或任何数目的其它配置。另外,计算设备400可以包括多于一个CPU 402。由CPU 402执行的指令可以用于使得能够实现如本文所描述的自动流水线组成。
[0028]计算设备400还可以包括图形处理单元(GPU) 408。如所示,CPU 402可以通过总线406耦合到GPU 408。GPU 408可以被配置成执行计算设备400内的任何数目的图形操作。例如,GPU 408可以被配置成渲染或操纵图形图像、图形帧、视频等等以向计算设备400的用户显示。在一些实施例中,GPU 408包括多个图形引擎(未示出),其中,每一个图形引擎被配置成执行特定图形任务,或者执行特定类型的工作负载。GPU还包括缓存410。在实施例中,自动流水线组成可以根据CPU缓存410的大小进行优化。
[0029]存储器设备404可以包括随机存取存储器(RAM)、只读存储器(R0M)、闪速存储器或任何其它合适的存储器系统。例如,存储器设备404可以包括动态随机存取存储器(DRAM)0依照实施例,存储器设备404可以包括应用编程接口(API) 412,所述应用编程接口(API) 412被配置成使得用户能够构造正则成像模板或类并且使用正则成像类进一步构造正则成像函数的集合。
[0030]计算设备400包括图像捕获机构414。在实施例中,图像捕获机构414是相机、立体相机、红外传感器等。图像捕获机构414被用于捕获图像信息以被处理。因此,计算设备400还可以包括一个或多个传感器。
[0031]CPU 402可以通过总线406连接到被配置成将计算设备400连接到一个或多个I/O设备418的输入/输出(I/O)设备接口 416。I/O设备418可以包括例如键盘和定点设备,其中除其它之外,定点设备可以包括触摸板或触摸屏。I/O设备418可以是计算设备400的内置组件,或者可以是外部连接到计算设备400的设备。
[0032]CPU 402还可以通过总线406链接到被配置成将计算设备400连接到显示设备422的显示接口 420。显示设备422可以包括作为计算设备400的内置组件的显示屏。除其它之外,显示设备422还可以包括计算机监视器、电视或投影仪,其外部连接到计算设备400。
[0033]计算设备还包括存储设备424。存储设备424是诸如硬驱动装置、光学驱动装置、拇指驱动装置、驱动装置的阵列或其任何组合之类的物理存储器。存储设备424还可以包括远程存储驱动装置。存储设备424包括被配置成运行在计算设备400上的任何数目的应用426。应用426可以用于组合媒体和图形,包括用于立体显示的3D立体相机图像和3D图形。在示例中,依照实施例,应用426可以用于使用正则成像模板或类(诸如正则成像模板140)构造正则成像函数的集合,并且构造合并的成像函数,诸如合并的成像函数200。
[0034]计算设备400还可以包括可以被配置成通过总线406将计算设备400连接到网络430的网络接口控制器(NIC)428。除其它之外,网络430可以是广域网(WAN)、局域网(LAN)或因特网。
[0035]在一些实施例中,应用426可以处理图像数据并且向打印引擎432发送经处理的数据。打印引擎432可以处理图像数据并且向打印设备434发送图像数据。打印设备434可以包括打印机、传真机和可以使用打印对象模块436打印图像数据的其它打印设备。在实施例中,打印引擎432可以跨网络430向打印设备434发送数据。
[0036]图4的框图不意图指示计算设备400要包括图4中所示的所有组件。另外,计算设备400可以包括在图4中未示出的任何数目的附加组件,这取决于特定实现方式的细节。
[0037]图5是示出依照实施例的存储用于使用正则成像模板或类(诸如正则成像模板140)自动创建正则成像函数的集合并且构造合并的成像函数(诸如合并的成像函数200)的代码的有形、非暂时性计算机可读介质500的框图。有形、非暂时性计算机可读介质500可以由处理器502通过计算机总线504来访问。另外,有形、非暂时性计算机可读介质500可以包括被配置成指引处理器502执行本文所描述的方法(包括方法300)的代码。
[0038]本文所讨论的各种软件组件可以存储在有形、非暂时性计算机可读介质500上,如图5中所指示的那样。例如,模块510可以被配置成使用正则成像类或模板140来创建正则成像函数的集合。模块520可以被配置成将由模块510创建的正则成像函数的集合或集合的子集自动合并成合并的成像函数,诸如合并的成像函数200。模块530可以被配置成执行合并的成像函数。
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1