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

文档序号:9308632阅读:来源:国知局
[0039]图5的框图不意图指示有形、非暂时性计算机可读介质500要包括在图5中所示的所有组件。另外,有形、非暂时性计算机可读介质500可以包括在图5中未示出的任何数目的附加组件,这取决于特定实现方式的细节。
[0040]以下示例示出被实现为虚拟函数的集合而不是单个单片函数的正则成像类或模板的C++实现方式,其允许每一个函数被拆开(pick apart)并且合并到合并的成像函数中。
Il
//正则函数在该类中被实现为虚拟函数的集合 //而不是作为单个单片函数.//该方法允许每一个函数被拆开并且合并到复合函数中
//
class CanonicalFunct1n
{
inline virtual void parameterChecker(parameterList_t parameters);inline virtual void memoryAllocator(parameterList_t, parameters);inline virtual void 10pDimens1ns(parameterList_t, parameters);inline virtual void outerLoop (parameterList_t,parameters);inline virtual void dataReadOptimizer(parameterList_t parameters);inline virtual void compute(parameterList_t parameters);inline virtual void dataffriteOptimizer(parameterList_t parameters);inline virtual void memoryDeallocator(parameterList_t parameters);
Il
Il函数statusReporter ()是状态码的列表或阵列Il所有函数可以将其状态码添加到列表
//
inline virtual void statusReporter(parameterList_t parameters);
}
class CanonicalFunct1n ComposedFunct1n
{
//
//这是从其它函数创建所组成的函数的地方
//
};
class Composer
{
ComposedFunct1n composedFunct1n;
Il
//该函数从正则函数的列表生成合并的代码
//
void generateCode(void 氺code);
Il
//创作器从CanonicalFunct1n (正则函数)的列表生成代码//假设:父函数是funct1nList[0],其定义外循环尺度
//
Composer(CanonicalFunct1n ^funct1nList)
{
enum { PARENT_FUNCT1N = 0};
for (int X = I; funct1nList[x] !=0; x++)
{
generateCode(funct1nList[x] ->parameterChecker());generateCode(funct1nList[x] ->memoryAllocator());
}
//父函数
generateCode (funct1nList[PARENT_FUNCT1N] ->loopRange ());generateCode (funct1nList[PARENT_FUNCT1N] ->outerLoop ());generateCode(funct1nList[PARENT_FUNCT1N] ->dataReadOptimizer()); for (int x=0; funct1nList[x] !=0; x++)
{
generateCode(funct1nList[x]->compute());
}
//父函数
generateCode (funct1nList[PARENT_FUNCT1N]->dataffriteOptimizer());for (int x=0; funct1nList[x] !=0; x++)
{
generateCode(funct1nList[x]->memoryDeallocator ());generateCode(funct1nList[x]->statusReporter());
}
}
};
以下示例示出利用正则成像类或模板140的三个正则成像函数(CONVOLUT1N (卷积),MEDIAN_FILTER (中值滤波器)和C0L0R_FILTER (颜色滤波器))的集合的实现。class CanonicalFunct1n CONVOLUT1N
{
inline void parameterChecker(parameterList_t parameters) {/*...代码氺/
}
inline void memoryAl locator (parameterLi st_t, parameters) { /*...代码氺 /
}
inline void 10pDimens1ns (parameterList_t, parameters) { /*...代码氺/
}
inline void outerLoop (parameterList_t, parameters) { /*...代码氺/ } inline void dataReadOptimizer (parameterList_t parameters) { /*...代码
*/ I
inline void compute (parameterList_t parameters) { /*...代码氺/ } inline void dataffriteOptimizer (parameterList_t parameters) { /*...代码
*/ I
inline void memoryDeal locator (parameterLi st_t parameters) { /*...代码
*/ I
inline void statusReporter (parameterList_t parameters) { /*...代码氺/
}
}
Class Canonical Funct1n MEDIAN_FILTER
{
}
Class Canonical Funct1n C0L0R_FILTER {
}o
[0041 ]示例 I
本文描述了一种用于生成正则成像函数的装置。装置包括提供正则成像函数模板的逻辑和从一个或多个单片成像函数形成正则成像函数的集合的逻辑,所述正则成像函数中的每一个遵循正则成像函数模板。装置还包括将正则成像函数的集合中的一个或多个正则成像函数合并成合并的成像函数的逻辑。
[0042]每一个正则成像函数可以定义为完整函数的一个或多个区段,其中每一个函数区段组合在一起以创建完整函数。此外,正则成像函数的集合中的每一个正则成像函数可以一起组合成群组,作为共享和独特区段的集合。形成正则成像函数的集合可以包括通过使用正则成像函数模板将正则成像函数的集合一起自动编译成单个所组成的函数的逻辑。另夕卜,将一个或多个正则成像函数合并成单个所组成的函数可以包括将合并的成像函数自动编译或转化成可以被执行或以另一高级或中间语言进一步转化或编译或被汇编成用于目标机器的机器代码的新代码的逻辑。正则成像函数模板可以包括:包含来自所组成的正则函数的集合的函数前序的开始函数区段、被配置成包括来自正则成像函数的集合的数据读取、计算和数据写入操作区段的公共循环区段,以及包含来自正则函数区段的集合的函数后文的结尾函数区段。此外,正则成像函数模板还可以包括参数检查器区段、存储器分配器区段、循环尺度区段、存储器解分配器区段、状态报告器区段、被定义在正则函数的集合中的其它函数区段或其任何组合中的至少一个。合并多个正则成像函数可以包括通过利用正则成像模板而组合正则成像函数的集合中的一个或多个正则成像函数。装置可以是打印设备或图像捕获机构。
[0043]示例2
本文描述了一种用于生成正则成像函数的系统。系统包括处理器,并且处理器执行包括成像函数的代码。系统还包括由一个或多个单片成像函数形成的正则成像函数的集合,所述正则成像函数中的每一个遵循正则成像函数模板。将正则成像函数的集合中的一个或多个正则成像函数合并到成像函数中。
[0044]每一个正则成像函数可以定义为完整函数的一个或多个区段,其中每一个函数区段组合在一起以创建完整函数。正则成像函数的集合中的每一个正则成像函数还可以一起组合成群组,作为共享和独特区段的集合。可以通过使用正则成像函数模板将正
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1