数据处理系统及方法

文档序号:6608819阅读:203来源:国知局
专利名称:数据处理系统及方法
技术领域
本发明涉及微电子领域,更具体地涉及一种数据处理系统及方法。
背景技术
在软件开发中,很多地方都会用到“图(Map)”的结构,用以描述事物之间比较复杂的互联关系。例如,C model软件(也称为Puma)中就用“图”来描述各个图像处理算法模块之间的关系。
在Puma中,将图像处理算法模块称为box,将box之间的数据流通道称为边。如图1所示,Puma软件对数据的处理过程为输入数据依次经由不同图像处理算法模块的处理而最终得到输出。
图2示出了Puma软件的结构框图。其中,在Puma运行时,用户通过用户界面发出命令(例如,增添新的算法box、删除已有的算法box、连接两个box、或运行当前图结构等的命令),这些命令经过用户命令(GUI command)模块的解释发送给“图结构管理器”,后者再具体执行对算法实体的操作。同时也把当前Map的状态通过实时刷新显示(GUI Display)模块实时显示在用户界面上,从而使得用户能够看到当前的Map状态。
下面以图3所示的实例来说明图2所示的软件结构存在的问题。在图3中,每一个box都代表了对图像数据的一种处理算法。由图3可见,数据从U2的输入端(Inport)输入,经过诸多处理后从U6、U0的输出端(Outport)输出。其中,U0代表使用者添加的第一个图像处理算法模块,U1、U2、...、U6表示使用者依次添加的六个图像处理算法模块。程序内部使用一个链表来完成对这些图像处理算法模块的存储,这些图像处理算法模块进入链表的顺序和使用者通过用户界面上添加的顺序一致,即软件使用者首先添加U0,接着添加U1、U2...直到U6。此时,软件内部是按照这个顺序以链表的方式依次存储这7种数据处理算法模块的。这种链表存储的顺序反映到用户界面上,就是图3中的U0至U6的顺序。
在通过如图2所示的软件结构按照图3所示的图结构对数据进行处理时,需要对图结构进行遍历,以分别调用各个图像算法处理模块中的处理算法。最直观的做法就是通过顺序搜索链表来调用对应的图像算法处理模块中的函数,其流程用伪代码表示如下Main_Process(){While(还有待处理的数据可输入并且还有数据没输出完){向输入端口U2Input port输入待处理数据;调用图遍历处理函数Map_Process()进行数据处理;从输出端口U6,U0Output port取得处理结果;}}Map_Process(){获取总的结点数目TotNodeNum;for(i=0;i<TotNodeNum;i++)循环遍历每一个结点{访问box链表,调用每个结点的处理函数。
}}
从上述伪代码可以看出,在Map_Process()函数中,我们按照从0到总边数(TotNodeNum)的顺序来对图结构进行遍历,具体到图3的例子,其访问顺序就是U0→U1→U2→U3→U4→U5→U6。每调用一次Map_Process()函数,就按上面的次序完成一次对图结构的所有图像处理算法模块的遍历。
仔细分析一下运行的过程,可知第一次遍历时,只有U2、U4、U5、和U6有输入数据,而其他图像数据算法模块都没有输入数据,因而除了U2、U4、U5、和U6以外的其他图像处理算法模块都是“空载”运行的;第二次遍历时,U0仍然无法运行,因为它的第二、三个输入端仍然没有输入数据到来。后面的遍历依次类推。
从上面的例子我们看到,这样的遍历顺序造成了初始和结束两个阶段都会有图像处理算法模块空载运行,因而效率比较低。尤其当图像处理算法模块增多,图结构的互联关系更复杂时,这一现象就更为突出。

发明内容
鉴于以上所述的一个或多个问题,本发明提供了一种新的数据处理系统及方法,以提高数据处理效率。
根据本发明的数据处理系统包括数据输入装置,用于输入待处理数据;算法排序装置,用于对数据处理装置中的至少两个算法存储单元的存储位置进行调整;以及数据处理装置,用于利用经过存储位置调整的至少两个算法存储单元中的算法对待处理数据进行处理。
根据本发明的数据处理方法包括以下步骤S802,对数据处理装置中的至少两个算法存储单元的存储位置进行调整;以及S804,利用经过存储位置调整的至少两个算法存储单元中的算法对待处理数据进行处理。通过本发明,可以提高数据处理效率。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是相关技术中的Puma软件的概念框图;图2是相关技术中的Puma软件的结构框图;图3是相关技术中的Puma软件的图结构的一个实例示意图;图4是根据本发明的数据处理系统的框图;图5是根据本发明实施例的数据处理系统(Puma软件)的结构图;图6是采用图5所示的Puma软件进行排序后的图结构的示意图;图7是根据本发明实施例的图结构排序器进行排序的流程图;以及图8是根据本发明实施例的数据处理方法的流程图。
具体实施例方式
下面参考附图,详细说明本发明的具体实施方式

参考图4,说明根据本发明的数据处理系统。如图4所示,该数据处理系统包括数据输入装置402,用于输入待处理数据;算法排序装置404,用于对数据处理装置中的至少两个算法存储单元的存储位置进行调整;以及数据处理装置406,用于利用经过存储位置调整的至少两个算法存储单元中的算法对待处理数据进行处理。
其中,算法排序装置404包括顺序比较单元4042,用于对至少两个算法存储单元中的互相连接的两个算法存储单元的存储顺序进行比较;位置交换单元4044,用于在互相连接的两个算法存储单元中的数据流出的算法存储单元的存储顺序晚于数据流入的算法存储单元的存储顺序时,对互相连接的两个算法存储单元的存储位置进行交换。
其中,数据处理装置406包括算法调用单元4062,用于调用至少两个算法存储单元中的算法对待处理数据进行处理;至少两个算法存储单元4064,用于存储用于对待处理数据进行处理的算法。
根据本发明的数据处理系统还包括算法增减装置408,用于向数据处理装置中添加一个或多个新算法存储单元,以及用于从数据存储装置中删除至少两个算法存储单元中的一个或多个;结构调整装置410,用于调整至少两个算法存储单元中的任意两个算法存储单元之间的连接关系;以及结构显示装置412,用于实时显示至少两个算法存储单元中的任意两个算法存储单元之间的连接结构。
参考图5,说明根据本发明的数据处理系统的具体实施例Puma软件的结构。如图5所示,根据本发明实施例的Puma软件在原有结构(如图2所示)的基础上,增加了一个“图结构排序器(即,算法排序装置)”。其作用是对图中的图像处理算法模块进行排序,以使排序后的图结构能够消除“空载”运行的现象。
当用户发送的命令是添加、删除、连接等对图结构进行修改的命令时,用户命令模块(即,算法增减装置、结构调整装置的组合)会直接发送命令给结构管理器(即,数据处理装置)。如图5中的用户命令模块的右侧分支所示,此时图5和图2是没有区别的。
当用户发送的是运行当前图结构的命令时,用户命令模块则会走左侧通道,先调用图结构排序器对当前图中的图像处理算法模块进行排序,之后再传递命令给图结构管理器,进入运行状态。和图2相比,运行之前加入了排序的环节,以提高运行效率。
其中,图5中的用户界面用作为图4中的数据输入装置,并与用户命令模块一起组成算法增减装置和结构调整装置。图5中的实时刷新显示模块用作为图4中的结构显示装置。图5中的图结构管理器(即,算法调用单元)和算法实体模块(即,算法存储单元)组成了图4中的数据处理装置。
下面就图3的例子,说明本发明实施例中添加的图结构排序器的作用。图3中所示的Puma软件的图结构经过图结构排序器的调整后,排列次序变为如图6中所示。
在图6中,U0处理完的数据会输出给U1的输入,U1处理完的数据会输出给U2、U3、U4的输入,U2处理完的数据会输出给U5的输入,U3处理完的数据也会输出给U5的输入,而U4处理完的数据会输出给U5、U6的输入,从而在第一次遍历中,所有的图像处理算法模块都能进行有效的数据处理,进而消除了“空载”现象,提高了软件的运行效率。
参考图7,说明根据本发明实施例的图结构排序器进行排序的流程。其中,图结构排序器所起的作用对于程序内部而言,就是把链表的存储顺序由图3改为图6。(前面已经描述过内部链表存储顺序和显示一致,都是以U0开头,依次递增)。
在图3所示的图结构中,总共存在8条边,也就是TolEdgeNum=8。这里,采取两重循环来完成调整的过程,每一重循环的次数都是TolEdgeNum次,循环次数用变量i和j表示。其中,每一重循环都以图3中的从上到下、从左到右的顺序对图像处理算法模块进行遍历。用类C语言的伪代码表示图6的过程如下for(i=0;i<TolEdgeNum;i++){for(j=0;j<TolEdgeNum;j++){调换或不调换第j条边两侧的box的位置}}也就是说,例如在i或j=0时,可以得到连接图3中的U2和U4的边(在Puma软件中,数据流是单向流动的,在这里把流出单向数据流的一端称为源端,流入单向数据流的一端称为目的端)。接下来比较这条边两端的box编号,如果源端的box编号比目的端的box编号小,则不做调整;如果源端的box编号比目的端的box编号大,则交换源端的box和目的端的box在链表中的存储位置。从而使得源端在运行时先进行数据处理,以保证目的端的box在运行时已经有数据可以使用。
为明确起见,我们可以简单描述一下对于i=0,j=0到4的大致运行过程,其中,初始态就是图3所示的状态i=0,j=0,U2、U4不交换位置;i=0,j=1,U4、U5不交换位置;
i=0,j=2,U4、U3要交换位置;i=0,j=3,此时这条边连接的已经是U3和U1了,故U3和U1要交换位置;i=7,j=7,最后一次判断是否需要交换位置,至此运行完毕。
其中,对于n个图像处理算法模块的最坏情况是U0处于最后一个位置,在这种情况下,最多需要n-1次对换就能将U0换到第一个位置,而图7中的外层循环为n次,故能满足要求。
综上所述,在图5至图7所示的实施例中,对数据进行处理的过程包括以下步骤(如图8所示)S802,对数据处理装置中的至少两个算法存储单元进行位置调整;以及S804,利用经过位置调整的至少两个算法存储单元中的算法对待处理数据进行处理。
其中,步骤S802包括以下步骤S8022,对至少两个算法存储单元中的互相连接的两个算法存储单元的存储顺序进行比较;S8024,在互相连接的两个算法存储单元中的数据流出的算法存储单元的存储顺序晚于数据流入的算法存储单元的存储顺序时,对互相连接的两个算法存储单元的存储位置进行交换。
其中,步骤S804包括以下步骤S8042,调用经过位置调整的至少两个算法存储单元中的算法;S8044,利用所调用的算法存储单元中的算法对待处理数据进行处理。
以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
权利要求
1.一种数据处理系统,其特征在于,包括数据输入装置,用于输入待处理数据;算法排序装置,用于对数据处理装置中的至少两个算法存储单元的存储位置进行调整;以及所述数据处理装置,用于利用经过存储位置调整的所述至少两个算法存储单元中的算法对所述待处理数据进行处理。
2.根据权利要求1所述的数据处理系统,其特征在于,所述算法排序装置包括顺序比较单元,用于对所述至少两个算法存储单元中的互相连接的两个算法存储单元的存储顺序进行比较;位置交换单元,用于在互相连接的两个算法存储单元中的数据流出的算法存储单元的存储顺序晚于数据流入的算法存储单元的存储顺序时,对互相连接的两个算法存储单元的存储位置进行交换。
3.根据权利要求2所述的数据处理系统,其特征在于,所述数据处理装置包括算法调用单元,用于调用所述至少两个算法存储单元中的算法对所述待处理数据进行处理;所述至少两个算法存储单元,用于存储用于对所述待处理数据进行处理的算法。
4.根据权利要求3所述的数据处理系统,其特征在于,还包括算法增减装置,用于向所述数据处理装置中添加一个或多个新算法存储单元,以及用于从所述数据存储装置中删除所述至少两个算法存储单元中的一个或多个。
5.根据权利要求4所述的数据处理系统,其特征在于,还包括结构调整装置,用于调整所述至少两个算法存储单元中的任意两个算法存储单元之间的连接关系。
6.根据权利要求5所述的数据处理系统,其特征在于,还包括结构显示装置,用于实时显示所述至少两个算法存储单元中的任意两个算法存储单元之间的连接结构。
7.一种数据处理方法,其特征在于,包括以下步骤S802,对数据处理装置中的至少两个算法存储单元的存储位置进行调整;以及S804,利用经过存储位置调整的所述至少两个算法存储单元中的算法对待处理数据进行处理。
8.根据权利要求7所述的数据处理方法,其特征在于,所述步骤S802包括以下步骤S8022,对所述至少两个算法存储单元中的互相连接的两个算法存储单元的存储顺序进行比较;S8024,在互相连接的两个算法存储单元中的数据流出的算法存储单元的存储顺序晚于数据流入的算法存储单元的存储顺序时,对互相连接的两个算法存储单元的存储位置进行交换。
9.根据权利要求8所述的数据处理方法,其特征在于,所述步骤S804包括以下步骤S8042,调用经过存储位置调整的所述至少两个算法存储单元中的算法;S8044,利用所述算法对所述待处理数据进行处理。
全文摘要
本发明公开了一种数据处理系统及方法。其中,该数据处理系统包括数据输入装置,用于输入待处理数据;算法排序装置,用于对数据处理装置中的至少两个算法存储单元的存储位置进行调整;以及数据处理装置,用于利用经过存储位置调整的至少两个算法存储单元中的算法对待处理数据进行处理。通过本发明,可以提高数据处理效率。
文档编号G06F9/44GK101075193SQ20071009980
公开日2007年11月21日 申请日期2007年5月30日 优先权日2007年5月30日
发明者谢韬, 游明琦 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1