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

文档序号:9308632阅读:292来源:国知局
生成正则成像函数的制作方法
【技术领域】
[0001]本技术一般指向图像处理。更具体地,本技术涉及一种用于通过使用正则成像函数来优化图像处理流水线的装置。
【背景技术】
[0002]图像处理流水线典型地包括从跨图像像素的并行执行获益的许多数据并行阶段,但是各阶段通常是存储器带宽受限的,即各阶段可能在存储器访问(加载和存储)操作方面是低效率的。已经通过优化流水线的内循环以尤其消除冗余存储器拷贝并且减少存储器业务而实现了流水线性能中的一些适度增益。然而,这样的优化是要求具有目标计算或处理架构以及要处理的特定成像算法的知识的程序员的技能的手动过程。另外,这样的优化一般不是跨计算或处理架构而可移动的。
【附图说明】
[0003]通过参考附图可以更好地理解以下详细描述,所述附图包含所公开的主题的众多目标和特征的特定示例。
[0004]图1A是依照实施例的单片(monolithic)函数的框图;
图1B是依照实施例的正则(canonical)成像函数模板或类的框图;
图2是依照实施例的合并的正则成像函数的框图;
图3是图示了依照实施例的用于合并正则成像函数的方法的过程流程图;
图4是依照实施例的可以使用的计算设备的框图;以及
图5是依照实施例的存储用于合并正则成像函数的方法的指令的有形、非暂时性计算机可读介质的框图。
【具体实施方式】
[0005]如以上讨论的,图像处理流水线的手动优化是耗时的,并且这样的优化不是跨计算或处理架构可移动的。作为结果,图像处理流水线的优化可能是成本高昂的。
[0006]本技术的实施例提供正则成像函数模板或类。由单片成像函数形成正则成像函数的集合。正则成像函数遵循正则成像函数模板。正则成像函数被合并成经合并的成像函数。
[0007]在以下描述和权利要求中,可以使用术语“耦合的”和“连接的”连同其派生词。应当理解的是,这些术语不意图作为针对彼此的同义词。而是,在特定实施例中,“连接的”可以用于指示两个或更多元件与彼此直接物理或电气接触。“耦合的”可以意指两个或更多元件直接物理或电气接触。然而,“耦合的”也可以意指两个或更多元件不与彼此直接接触,但是还仍与彼此协作或交互。
[0008]一些实施例可以实现在硬件、固件和软件中的一个或组合中。一些实施例还可以实现为存储在机器可读介质上的指令,其可以被计算平台读取和执行以履行本文所描述的操作。机器可读介质可以包括用于以由机器(例如计算机)可读的形式存储或传输信息的任何机制。例如,除其它之外,机器可读介质可以包括只读存储器(ROM)、随机存取存储器(RAM),磁盘存储介质、光学存储介质、闪速存储器设备。
[0009]实施例是实现方式或示例。在说明书中对“实施例”、“一个实施例”、“一些实施例”、“各种实施例”或“其它实施例”的提及意指结合实施例描述的特定特征、结构或特性被包括在至少一些实施例中,但是不一定在本发明的所有实施例中。“实施例”、“一个实施例”或“一些实施例”的各种出现不一定都是指相同的实施例。来自实施例的元件或方面可以与另一实施例的元件或方面组合。
[0010]并非本文所描述和图示的所有组件、特征、结构、特性等都需要被包括在一个或多个特定实施例中。如果说明书陈述了例如“可以”、“可能”、“能够”或“可”包括组件、特征、结构或特性,则不要求包括该特定组件、特征、结构或特性。如果说明书或权利要求提到“一”或“一个”元件,则那不意指存在仅一个元件。如果说明书或权利要求提到“附加”元件,则那不排除存在多于一个的附加元件。
[0011]要指出的是,尽管已经参考特定实现方式描述了一些实施例,但是根据一些实施例,其它实现方式是可能的。此外,在附图中图示和/或在本文描述的电路元件或其它特征的布置和/或次序不需要以所图示和描述的特定方式布置。根据一些实施例,许多其它布置是可能的。
[0012]在图中所示的每一个系统中,一些情况中的元件可以每一个具有相同的参考标号或不同的参考标号以暗示所表示的元件可以是不同和/或类似的。然而,元件可以足够灵活以具有不同的实现方式并且与本文所示或所描述的一些或全部系统一起工作。图中所示的各种元件可以是相同或不同的。哪一个称为第一元件和哪个被称为第二元件是任意的。
[0013]图1A图示了单片成像函数100。函数100被构造为计算机可读代码的单一块或单个片段,所述计算机可读代码在执行时执行多个示例性例程102-120。更具体地,成像函数100包括参数检查器102、存储器分配器104、循环尺度(loop dimens1n) 106和外循环108。外循环108包括数据读取优化器110、计算112和数据写入优化器114。成像函数100还包括存储器解分配器(de-allocator) 116和状态报告器120。
[0014]参数检查器102在执行时读取或以其它方式接收成像函数100所要求的输入数据,并且存储器分配器104分配对于存储成像函数100所要求或创建的数据可能要求的存储器。到成像函数100的输入数据可以包括从输入图像数据缓冲器或其它计算机可读存储器读取的图像数据。循环尺度106可以指示外循环108的参数或尺度。在实施例中,循环尺度106可以指示将由外循环108处理的图像的区或像素的数目。外循环108管理外循环108内的例程的执行,诸如例如通过递增或以其它方式维持计数器和其它外循环控制数据。在实施例中,外循环108记录图像的什么部分(例如哪个像素或区)在被处理或者接下来要在外循环108内被处理。
[0015]在外循环108内,数据读取优化器110执行将由成像函数100的外循环108读取并且在其上进行操作或由其处理的图像数据的缓存和前瞻缓冲。计算112例程在图像数据上执行一个或多个计算。在实施例中,计算112例程可以对图像数据进行滤波、求卷积(convolute)或以其它方式修改或增强。数据写入优化器114优化由外循环108内的操作(包括计算112)引起的写入数据的过程。
[0016]当外循环108完成时,存储器解分配器116在执行时,释放或以其它方式清除之前被分配给成像函数100的存储器以可用于供其它函数使用或用于其它目的。状态报告器120提供与成像函数100的执行有关的状态或其它信息。
[0017]图1B图示了示例性正则成像函数类或模板140。在实施例中,正则成像函数模板140体现在计算机可读代码中,诸如例如源代码、比如C++的高级编程语言,或者其它合适的计算机可读代码或编程语言。正则成像函数模板140定义包括可以从其构造正则成像函数的标准部分的集合的模板或类。通过使用正则成像函数设计每一个成像函数,函数的集合可以容易地被一起组合成经优化的复合函数,因为正则函数的公共区段可以从创建复合函数的组合过程中析出因子(factor out),留下将一起构成单个复合函数的每一个正则函数的独特处理元素。以此方式,每一个函数的公共元素在外循环、函数前序或函数后文(post-amble)中被共享一次。函数前序是函数的开始的一部分,而函数后文是函数的结尾的一部分。这两个部分可以用于设立或协调数据处理。另外,每一个正则函数的独特元素,诸如处理和算法元素,保持在如图2中所示的复合函数中。更具体地,在实施例中,正则成像函数模板140包括参数检查器142、存储器分配器144、循环尺度146、外循环148、数据读取优化器150、计算152、数据写入优化器154、存储器解分配器156和状态报告器160。
[0018]本文所示的当前实施例不反映本发明的所有方法。例如,实施例可以根据在解决的问题的需要而定义附加专用正则区段。例如,图像读取区段、图像颜色修正区段、图像颜色转换区段、图像几何修正区段等等可以被包括在正则成像函数内。正则成像函数可以按需扩展到其它问题领域,并且尤其顺从C++和JAVA编程语言的面向对象的编程方法,其使得正则成像函数模板能够被用作基本类,所述基本类然后可以扩展成包括附加的特定正则区段。
[0019]模板140的参数检查器142被配置成持有或合并代码,所述代码在执行时将检测可以被读取或写入的参数,或者以其它方式接收由合并的正则成像函数使用的输入或输出数据的参数。类似地,模板140的存储器分配器144被配置成持有或合并代码,所述代码在执行时分配可以用于存储由合并的成像函数使用的数据的存储器。输入数据可以包括从输入图像数据缓冲器或其它计算机可读存储器读取的图像数据。循环尺度146被配置成持有或合并代码,所述代码指示合并的成像函数的外循环的参数或尺度。在实施例中,循环尺度146可以包括代码,所述代码指示将由合并的成像函数的外循环处理的图像的区或像素的数目。外循环148被配置成持有或合并代码,所述代码管理合并的成像函数的执行,诸如例如通过递增或以其它方式维持计数器和其它外循环控制数据。在实施例中,外循环148记录在处理或接下来要被处理的图像内的位置(例如哪个像素或区)。数据读取优化器150被配置成持有或合并代码,所述代码在执行时履行将由合并的成像函数的外循环148读取、在其上进行操作或由其处理的图像数据的缓存和前瞻缓冲。计算152被配置成持有或合并代码,所述代码在执行时在图像数据上执行一个或多个计算、处理或算法元素。数据写入优化器154被配置成持有或合并代码,所述代码在执行时优化由合并的成像函数的操作引起的写入数据的过程。存储器解分配器156被配置成持有或合并代码,所述代码在执行时释放或以其它方式清除之前被分配给合并的成像函数的存储器使得这样的存储器可以可用于供其它函数使用或用于其它目的。状态报告器160被配置成持有或合并
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1