数据处理方法、装置、数据处理设备及存储介质转让专利

申请号 : CN201910697249.5

文献号 : CN110428453B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 周阳

申请人 : 深圳云天励飞技术有限公司

摘要 :

一种数据处理方法,所述方法包括:通过所述任务调度硬件从第一系统内存中读取调度信息,所述调度信息包括公共配置信息以及任务描述符,所述公共配置信息与所述任务描述符相匹配;通过所述任务调度硬件根据所述公共配置信息,确定所述多个硬件计算模块中需要工作的目标计算模块;通过所述任务调度硬件,向所述目标计算模块分配所述任务描述符中的参数;启动所述目标计算模块;根据所述参数,执行所述目标计算模块的计算操作。本发明还提供一种数据处理装置、数据处理设备及存储介质。本发明能提高定制的硬件计算模块的通用性和灵活性。

权利要求 :

1.一种数据处理方法,应用于数据处理设备,所述数据处理设备设置有任务调度硬件以及多个硬件计算模块,其特征在于,所述方法包括:通过所述任务调度硬件从第一系统内存中读取调度信息,所述调度信息包括公共配置信息以及任务描述符,所述公共配置信息与所述任务描述符相匹配,所述公共配置信息包括任务ID号、一组任务配置信息的长度以及硬件计算模块之间的互联关系,其中,所述任务配置信息包含公共配置信息和任务描述符,所述一组任务配置信息的长度以字节为单位,所述任务描述符用于描述硬件计算模块内部各个模块的计算过程所需的参数;

通过所述任务调度硬件根据所述公共配置信息中的硬件计算模块之间的互联关系,确定所述多个硬件计算模块中需要工作的目标计算模块;

通过所述任务调度硬件,向所述目标计算模块分配所述任务描述符中的参数;

启动所述目标计算模块;

根据所述参数,执行所述目标计算模块的计算操作。

2.根据权利要求1所述的数据处理方法,其特征在于,所述根据所述参数,执行所述目标计算模块的计算操作包括:通过所述目标计算模块,从第二系统内存中读取第一图像数据;

根据所述参数以及所述第一图像数据,执行所述目标计算模块的计算操作,获得第一计算结果;

通过所述目标计算模块,将所述第一计算结果写出至第三系统内存。

3.根据权利要求1所述的数据处理方法,其特征在于,所述目标计算模块包括多个,所述根据所述参数,执行所述目标计算模块的计算操作包括:通过第一目标计算模块,从第四系统内存中读取第二图像数据;

根据为所述第一目标计算模块分配的参数以及所述第二图像数据,执行所述第一目标计算模块的计算操作,获得第二计算结果,并通过所述第一目标计算模块,将所述第二计算结果发送至第二目标计算模块;

根据为所述第二目标计算模块分配的参数以及所述第二计算结果,执行所述第二目标计算模块的计算操作,获得第三计算结果,并通过所述第二目标计算模块,将所述第三计算结果发送至第三目标计算模块;

根据为所述第三目标计算模块分配的参数以及所述第三计算结果,执行所述第三目标计算模块的计算操作,获得第四计算结果;

通过所述第三目标计算模块,将所述第四计算结果写出至第五系统内存。

4.根据权利要求1至3中任一项所述的数据处理方法,其特征在于,所述通过所述任务调度硬件从第一系统内存中读取调度信息之前,所述方法还包括:通过系统控制器生成所述调度信息;

将所述调度信息保存至所述第一系统内存中。

5.根据权利要求4所述的数据处理方法,其特征在于,所述调度信息包括多个,所述将所述调度信息保存至所述第一系统内存中包括:按照所述系统控制器设定的任务执行顺序,将多个所述调度信息保存至所述第一系统内存中,其中,多个所述调度信息的保存顺序与所述任务执行顺序相匹配。

6.一种数据处理装置,运行于数据处理设备中,所述数据处理设备设置有任务调度硬件以及多个硬件计算模块,其特征在于,所述数据处理装置包括:读取模块,用于通过所述任务调度硬件从第一系统内存中读取调度信息,所述调度信息包括公共配置信息以及任务描述符,所述公共配置信息与所述任务描述符相匹配,所述公共配置信息包括任务ID号、一组任务配置信息的长度以及硬件计算模块之间的互联关系,其中,所述任务配置信息包含公共配置信息和任务描述符,所述一组任务配置信息的长度以字节为单位,所述任务描述符用于描述硬件计算模块内部各个模块的计算过程所需的参数;

确定模块,用于通过所述任务调度硬件根据所述公共配置信息中的硬件计算模块之间的互联关系,确定所述多个硬件计算模块中需要工作的目标计算模块;

分配模块,用于通过所述任务调度硬件,向所述目标计算模块分配所述任务描述符中的参数;

启动模块,用于启动所述目标计算模块;

执行模块,用于根据所述参数,执行所述目标计算模块的计算操作。

7.根据权利要求6所述的数据处理装置,其特征在于,所述执行模块根据所述参数,执行所述目标计算模块的计算操作的方式具体为:通过所述目标计算模块,从第二系统内存中读取第一图像数据;

根据所述参数以及所述第一图像数据,执行所述目标计算模块的计算操作,获得第一计算结果;

通过所述目标计算模块,将所述第一计算结果写出至第三系统内存。

8.根据权利要求6所述的数据处理装置,其特征在于,所述目标计算模块包括多个,所述执行模块根据所述参数,执行所述目标计算模块的计算操作的方式具体为:通过第一目标计算模块,从第四系统内存中读取第二图像数据;

根据为所述第一目标计算模块分配的参数以及所述第二图像数据,执行所述第一目标计算模块的计算操作,获得第二计算结果,并通过所述第一目标计算模块,将所述第二计算结果发送至第二目标计算模块;

根据为所述第二目标计算模块分配的参数以及所述第二计算结果,执行所述第二目标计算模块的计算操作,获得第三计算结果,并通过所述第二目标计算模块,将所述第三计算结果发送至第三目标计算模块;

根据为所述第三目标计算模块分配的参数以及所述第三计算结果,执行所述第三目标计算模块的计算操作,获得第四计算结果;

通过所述第三目标计算模块,将所述第四计算结果写出至第五系统内存。

9.一种数据处理设备,其特征在于,所述数据处理设备包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序以实现如权利要求1至5中任意一项所述的数据处理方法。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现如权利要求1至5中任意一项所述的数据处理方法。

说明书 :

数据处理方法、装置、数据处理设备及存储介质

技术领域

[0001] 本发明涉及图像技术领域,尤其涉及一种数据处理方法、装置、数据处理设备及存储介质。

背景技术

[0002] 在很多应用场景中,需要硬件计算模块来执行相关算法的计算操作,从而实现信息的提取,比如在图像目标跟踪器中,需要根据KCF(Kernelized Correlation Filters,核相关滤波器)算法在追踪过程中训练一个图像目标跟踪器,使用图像目标跟踪器去检测下一帧预测位置是否是目标,然后再使用新检测结果去更新训练集进而更新图像目标跟踪器。这需要专门为图像目标跟踪器定制多个硬件计算模块。
[0003] 然而,针对其他算法,比如人脸识别算法,由于算法不同,可能仅仅用到了上述多个硬件计算模块中的某几个,为上述KCF算法定制的硬件计算模块就没法在人脸识别算法中重用了,而针对人脸识别算法就需要重新定制,上述定制的多个硬件计算模块的通用性较差。

发明内容

[0004] 鉴于以上内容,有必要提供一种数据处理方法、装置、数据处理设备及存储介质,能够提高定制的硬件计算模块的通用性和灵活性。
[0005] 本发明的第一方面提供一种数据处理方法,应用于数据处理设备,所述数据处理设备设置有任务调度硬件以及多个硬件计算模块,所述方法包括:
[0006] 通过所述任务调度硬件从第一系统内存中读取调度信息,所述调度信息包括公共配置信息以及任务描述符,所述公共配置信息与所述任务描述符相匹配;
[0007] 通过所述任务调度硬件根据所述公共配置信息,确定所述多个硬件计算模块中需要工作的目标计算模块;
[0008] 通过所述任务调度硬件,向所述目标计算模块分配所述任务描述符中的参数;
[0009] 启动所述目标计算模块;
[0010] 根据所述参数,执行所述目标计算模块的计算操作。
[0011] 在一种可能的实现方式中,所述根据所述参数,执行所述目标计算模块的计算操作包括:
[0012] 通过所述目标计算模块,从第二系统内存中读取第一图像数据;
[0013] 根据所述参数以及所述第一图像数据,执行所述目标计算模块的计算操作,获得第一计算结果;
[0014] 通过所述目标计算模块,将所述第一计算结果写出至第三系统内存。
[0015] 在一种可能的实现方式中,所述目标计算模块包括多个,所述根据所述参数,执行所述目标计算模块的计算操作包括:
[0016] 通过第一目标计算模块,从第四系统内存中读取第二图像数据;
[0017] 根据为所述第一目标计算模块分配的参数以及所述第二图像数据,执行所述第一目标计算模块的计算操作,获得第二计算结果,并通过所述第一目标计算模块,将所述第二计算结果发送至第二目标计算模块;
[0018] 根据为所述第二目标计算模块分配的参数以及所述第二计算结果,执行所述第二目标计算模块的计算操作,获得第三计算结果,并通过所述第二目标计算模块,将所述第三计算结果发送至第三目标计算模块;
[0019] 根据为所述第三目标计算模块分配的参数以及所述第三计算结果,执行所述第三目标计算模块的计算操作,获得第四计算结果;
[0020] 通过所述第三目标计算模块,将所述第四计算结果写出至第五系统内存。
[0021] 在一种可能的实现方式中,所述通过所述任务调度硬件从第一系统内存中读取调度信息之前,所述方法还包括:
[0022] 通过系统控制器生成所述调度信息;
[0023] 将所述调度信息保存至所述第一系统内存中。
[0024] 在一种可能的实现方式中,所述调度信息包括多个,所述将所述调度信息保存至所述第一系统内存中包括:
[0025] 按照所述系统控制器设定的任务执行顺序,将多个所述调度信息保存至所述第一系统内存中,其中,多个所述调度信息的保存顺序与所述任务执行顺序相匹配。
[0026] 本发明的第二方面提供一种数据处理装置,运行于数据处理设备中,所述数据处理设备设置有任务调度硬件以及多个硬件计算模块,所述数据处理装置包括:
[0027] 读取模块,用于通过所述任务调度硬件从第一系统内存中读取调度信息,所述调度信息包括公共配置信息以及任务描述符,所述公共配置信息与所述任务描述符相匹配;
[0028] 确定模块,用于通过所述任务调度硬件根据所述公共配置信息,确定所述多个硬件计算模块中需要工作的目标计算模块;
[0029] 分配模块,用于通过所述任务调度硬件,向所述目标计算模块分配所述任务描述符中的参数;
[0030] 启动模块,用于启动所述目标计算模块;
[0031] 执行模块,用于根据所述参数,执行所述目标计算模块的计算操作。
[0032] 在一种可能的实现方式中,所述执行模块根据所述参数,执行所述目标计算模块的计算操作的方式具体为:
[0033] 通过所述目标计算模块,从第二系统内存中读取第一图像数据;
[0034] 根据所述参数以及所述第一图像数据,执行所述目标计算模块的计算操作,获得第一计算结果;
[0035] 通过所述目标计算模块,将所述第一计算结果写出至第三系统内存。
[0036] 在一种可能的实现方式中,所述目标计算模块包括多个,所述执行模块根据所述参数,执行所述目标计算模块的计算操作的方式具体为:
[0037] 通过第一目标计算模块,从第四系统内存中读取第二图像数据;
[0038] 根据为所述第一目标计算模块分配的参数以及所述第二图像数据,执行所述第一目标计算模块的计算操作,获得第二计算结果,并通过所述第一目标计算模块,将所述第二计算结果发送至第二目标计算模块;
[0039] 根据为所述第二目标计算模块分配的参数以及所述第二计算结果,执行所述第二目标计算模块的计算操作,获得第三计算结果,并通过所述第二目标计算模块,将所述第三计算结果发送至第三目标计算模块;
[0040] 根据为所述第三目标计算模块分配的参数以及所述第三计算结果,执行所述第三目标计算模块的计算操作,获得第四计算结果;
[0041] 通过所述第三目标计算模块,将所述第四计算结果写出至第五系统内存。
[0042] 本发明的第三方面提供一种数据处理设备,所述数据处理设备包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现所述的数据处理方法。
[0043] 本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的数据处理方法。
[0044] 由以上技术方案,本发明中,可以先通过所述任务调度硬件从第一系统内存中读取调度信息,所述调度信息包括公共配置信息以及任务描述符,所述公共配置信息与所述任务描述符相匹配;进一步地,通过所述任务调度硬件根据所述公共配置信息,确定所述多个硬件计算模块中需要工作的目标计算模块,通过所述任务调度硬件,向所述目标计算模块分配所述任务描述符中的参数;更进一步地,即可启动所述目标计算模块,并根据所述参数,执行所述目标计算模块的计算操作。可见,本发明中,在数据处理设备中设置任务调度硬件以及多个硬件计算模块,所述多个硬件计算模块是公共的,而不同算法需要的硬件计算模块是不同的,本发明可以通过任务调度硬件来统一控制所述多个硬件计算模块,即可以通过任务调度硬件来读取公共配置信息,以确定哪些硬件计算模块需要单独工作,哪些硬件计算模块需要组合工作,哪些硬件计算模块不需要工作,并通过所述任务调度硬件对需要工作的硬件计算模块统一分配参数,实现了对所述多个硬件计算模块的统一调配,以便定制的所述多个硬件计算模块能够更好的适用不同算法的需求,从而使得定制的多个硬件计算模块具有较强的通用性和灵活性。

附图说明

[0045] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0046] 图1是本发明公开的一种数据处理设备的系统架构图。
[0047] 图2是本发明公开的一种数据处理方法的较佳实施例的流程图。
[0048] 图3是本发明公开的一种数据处理装置的较佳实施例的功能模块图。
[0049] 图4是本发明实现数据处理方法的较佳实施例的数据处理设备的结构示意图。

具体实施方式

[0050] 为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
[0051] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0052] 除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
[0053] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0054] 请参见图1,图1是本发明公开的一种数据处理设备的系统架构图。如图1所示,该数据处理设备包括任务调度硬件、多个硬件计算模块(比如图像色彩空间转换计算模块、图像分辨率缩放计算模块、图像像素点梯度计算模块、图像方向梯度直方图计算模块以及二维快速傅里叶变换计算模块)以及多个系统内存(比如系统内存1、系统内存2、系统内存3)。需要说明的是,图1所示的只是一个示例,可以包括但不限于图1所示的部件,比如,系统内存可以包括比图1所示的更多或更少,硬件计算模块还可以包括其他的模块等等。
[0055] 其中,任务调度硬件包括至少一个调度信息,比如调度信息1、调度信息2、调度信息3……调度信息n,其中,这些调度信息可以由系统控制器生成,该系统控制器比如中央处理器(CPU,Central Processing Unit),数字信号处理器(Digital Signal Processing,DSP),其中,调度信息主要包含两个部分:公共配置信息以及任务描述符。任务调度硬件主要用于从系统内存1中读取调度信息,解析这些调度信息,以确定需要工作的硬件计算模块,并将任务描述符中的参数分配至需要工作的硬件计算模块,以实现对数据处理设备的多个硬件计算模块的统一调控。
[0056] 每个调度信息代表一个需要执行的任务,多个调度信息的执行顺序可以由系统控制器来控制,多个调度信息按照所述系统控制器设定的任务执行顺序,在系统内存中紧密相连存储,其中,多个所述调度信息的保存顺序与所述任务执行顺序相匹配,即多个调度信息按照所述任务执行顺序的先后在系统内存中从前往后进行保存,也即任务执行顺序在先的调度信息就保存在前面的位置。其中,系统内存比如DDR(Double Data Rate,双倍速率同步动态随机存储器)、SDRAM(synchronous dynamic random-access memory,同步动态随机存取内存)。
[0057] 其中,公共配置信息可以包括但不限于任务ID号、一组任务配置信息的长度(含公共配置信息和任务描述符,一般以字节为单位)、硬件计算模块之间的互联关系(称为WorkMode);其中,硬件计算模块之间的互联关系可以使用5比特表示,比如:00000表示全部不工作;又比如:00001表示图像色彩空间转换计算模块CVT工作,图像分辨率缩放计算模块Resize不工作,图像像素点梯度计算模块Grad不工作,图像方向梯度直方图计算模块HOG不工作,二维快速傅里叶变换计算模块2D-FFT不工作,CVT将数据从系统内存2读入,经过CVT计算后,CVT将计算结果写出到系统内存3;又比如:11111表示CVT工作,Resize工作,Grad工作,HOG工作,2D-FFT工作,CVT将数据从系统内存2读入,经过CVT+Resize+Grad+HOG+2D-FFT计算后,2D-FFT将计算结果写出到系统内存3。需要说明的是,上述的5比特表示方式仅仅是一种编码方式,本发明实施例不限于上述编码方式,还可以是别的编码方式,本发明实施例不做限定。
[0058] 其中,任务描述符主要描述了硬件计算模块内部各个模块的计算过程所需的参数,可以包括但不限于如下内容:图像分辨率(高度方向像素点个数和宽度方向像素点个数);图像格式信息(YUV420/YUV422/RGB等),CVT读内存地址、CVT写内存地址、CVT计算参数(如:CVT色彩空间转换的插值系数);Resize读内存地址、Resize写内存地址、Resize计算参数(如Resize高度方向缩放比例、Resize宽度方向缩放比例);Grad读内存地址、Grad写内存地址、Grad计算参数(如Grad梯度计算x方向卷积内核参数、Grad梯度计算y方向卷积内核参数等);HOG读内存地址、HOG写内存地址、HOG计算参数(如选择双线性插值算法或者三线性插值算法、Cell分辨率参数等);2D-FFT读内存地址、2D-FFT写内存地址、2D-FFT计算参数(如FFT点数等)。
[0059] 其中,每个硬件计算模块可以包括读内存模块、写内存模块、前级接收模块以及后级发送模块,对于CVT不包含前级接收模块,对于2D-FFT不包含后级发送模块,而每个硬件计算模块的上述模块是否工作,完全取决于公共配置信息的配置,比如:WorkMode=00010,表示CVT读内存模块不工作、CVT写内存模块不工作、CVT后级发送模块不工作;Resize读内存模块工作、Resize写内存模块工作、Resize前级接收模块不工作、Resize后级发送模块不工作;Grad读内存模块不工作、Grad写内存模块不工作、Grad前级接收模块不工作、Grad后级发送模块不工作;HOG读内存模块不工作、HOG写内存模块不工作、HOG前级接收模块不工作、HOG后级发送模块不工作;2D-FFT读内存模块不工作、2D-FFT写内存模块不工作、2D-FFT前级接收模块不工作;又比如WorkMode=01010,表示CVT读内存模块不工作、CVT写内存模块不工作、CVT后级发送模块不工作;Resize读内存模块工作、Resize写内存模块不工作、Resize前级接收模块不工作、Resize后级发送模块工作(数据发送给HOG前级接收模块);Grad读内存模块不工作、Grad写内存模块不工作、Grad前级接收模块不工作、Grad后级发送模块不工作;HOG读内存模块不工作、HOG写内存模块工作、HOG前级接收模块工作(数据来自Resize的后级发送模块)、HOG后级发送模块不工作;2D-FFT读内存模块不工作、2D-FFT写内存模块不工作、2D-FFT前级接收模块不工作。
[0060] 在图1所示的数据处理设备中,任务调度硬件先将调度信息1通过读引擎(Read Engine)从系统内存1中读进来,接着任务调度硬件根据调度信息,向需要工作的硬件计算模块分配参数,完成参数分配后,启动硬件计算模块工作,硬件计算模块从系统内存2中读取图像数据(比如图片数据、视频数据),经过计算后,将计算结果写出至系统内存3,硬件计算模块工作完成后,任务调度硬件再将调度信息2通过Read Engine从系统内存1读进来,然后按照类似方式持续进行下去,直到所有的调度信息全部读取完。
[0061] 请参见图2,图2是本发明公开的一种数据处理方法的较佳实施例的流程图。其中,所述数据处理方法应用于数据处理设备,所述数据处理设备设置有任务调度硬件以及多个硬件计算模块,其中,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
[0062] S21、数据处理设备通过所述任务调度硬件从第一系统内存中读取调度信息。
[0063] 其中,所述调度信息包括公共配置信息以及任务描述符,所述公共配置信息与所述任务描述符相匹配,即每个公共配置信息均有与之对应的任务描述符,比如公共配置信息中配置的硬件计算模块之间的互联关系WorkMode=00001,则相应的,任务描述符中只有图像色彩空间转换计算模块CVT具有参数配置,而其他硬件计算模块没有参数配置。
[0064] 其中,公共配置信息可以包括但不限于任务ID号、一组任务配置信息的长度(含公共配置信息和任务描述符,一般以字节为单位)、硬件计算模块之间的互联关系(称为WorkMode)。其中,任务描述符主要描述了硬件计算模块内部各个模块的计算过程所需的参数,可以包括但不限于如下内容:图像分辨率(高度方向像素点个数和宽度方向像素点个数);图像格式信息(YUV420/YUV422/RGB等),CVT读内存地址、CVT写内存地址、CVT计算参数(如:CVT色彩空间转换的插值系数);Resize读内存地址、Resize写内存地址、Resize计算参数(如Resize高度方向缩放比例、Resize宽度方向缩放比例);Grad读内存地址、Grad写内存地址、Grad计算参数(如Grad梯度计算x方向卷积内核参数、Grad梯度计算y方向卷积内核参数等);HOG读内存地址、HOG写内存地址、HOG计算参数(如选择双线性插值算法或者三线性插值算法、Cell分辨率参数等);2D-FFT读内存地址、2D-FFT写内存地址、2D-FFT计算参数(如FFT点数等)。
[0065] 具体的,可以参照图1中的相关描述,在此不再赘述。
[0066] S22、数据处理设备通过所述任务调度硬件根据所述公共配置信息,确定所述多个硬件计算模块中需要工作的目标计算模块。
[0067] 具体的,可以根据所述公共配置信息中的硬件计算模块之间的互联关系WorkMode的配置来确定哪个或哪些硬件计算模块需要工作,即目标计算模块可以是一个也可以是多个。其中,每个硬件计算模块可以单独工作,也可以与其他硬件计算模块组合在一起工作,具体根据不同的场景需要的不同算法来配置不同的WorkMode,这有利于提高各个硬件计算模块的通用性和灵活性。
[0068] 比如:在图像目标跟踪器中采用的是KCF算法,KCF算法需要配置的WorkMode=11111,表示CVT工作,Resize工作,Grad工作,HOG工作,2D-FFT工作,而其他的场景,需要的算法不同,配置的WorkMode也不同,比如:在人脸识别算法中,需要对人脸做色彩空间转换和图像缩放操作,此时配置WorkMode=00011,表示CVT工作,Resize工作,Grad不工作,HOG不工作,2D-FFT不工作。
[0069] 其中,典型的组合方式可以包括但不限于以下几种:WorkMode=00011,表示CVT从系统内存读入图像数据、经过CVT计算和Resize计算,从Resize模块将计算结果存入系统内存;WorkMode=00111,表示CVT从系统内存读入图像数据、经过CVT计算、Resize计算和Grad计算,从Grad模块将计算结果存入系统内存,WorkMode=01111,表示CVT从系统内存读入图像数据、经过CVT计算、Resize计算、Grad计算和HOG计算,从HOG模块将计算结果存入系统内存;WorkMode=01101,表示CVT从系统内存读入图像数据、经过CVT计算、Grad计算和HOG计算(跳过Resize),从HOG模块将计算结果存入系统内存;WorkMode=11010,表示Resize从系统内存读入图像数据、经过Resize计算、HOG计算和2D-FFT计算(跳过Grad),从2D-FFT模块将计算结果存入系统内存。
[0070] S23、数据处理设备通过所述任务调度硬件,向所述目标计算模块分配所述任务描述符中的参数。
[0071] 其中,在确定目标计算模块后,即可从所述任务描述符中提取所述目标计算模块的参数,并将所述参数分配至所述目标计算模块。比如:
[0072] S24、数据处理设备启动所述目标计算模块。
[0073] 其中,在参数分配完成后,数据处理设备即可启动所述目标计算模块,即让所述目标计算模块开始运行。
[0074] S25、数据处理设备根据所述参数,执行所述目标计算模块的计算操作。
[0075] 其中,每个目标计算模块均有自己的计算规则,在分配好参数后,即可根据参数执行所述目标计算模块的计算操作。比如所述目标计算模块为图像色彩空间转换计算模块CVT,则需要根据CVT的图像色彩空间转换的计算规则来执行计算操作。
[0076] 具体的,所述根据所述参数,执行所述目标计算模块的计算操作包括:
[0077] 通过所述目标计算模块,从第二系统内存中读取第一图像数据;
[0078] 根据所述参数以及所述第一图像数据,执行所述目标计算模块的计算操作,获得第一计算结果;
[0079] 通过所述目标计算模块,将所述第一计算结果写出至第三系统内存。
[0080] 在该可选的实施方式中,所述目标计算模块为单独的一个硬件计算模块,在执行计算操作时,具体的,可以先通过所述目标计算模块,从第二系统内存中读取第一图像数据,即需要进行处理的图片数据或视频数据,之后,即可根据所述参数以及所述第一图像数据,执行所述目标计算模块的计算操作,获得第一计算结果,最后,通过所述目标计算模块,将所述第一计算结果写出至第三系统内存。即整个计算过程,从第一图像数据读取,计算,到最后第一计算结果的写出都是由所述目标计算模块单独来完成的。
[0081] 具体的,所述目标计算模块包括多个,所述根据所述参数,执行所述目标计算模块的计算操作包括:
[0082] 通过第一目标计算模块,从第四系统内存中读取第二图像数据;
[0083] 根据为所述第一目标计算模块分配的参数以及所述第二图像数据,执行所述第一目标计算模块的计算操作,获得第二计算结果,并通过所述第一目标计算模块,将所述第二计算结果发送至第二目标计算模块;
[0084] 根据为所述第二目标计算模块分配的参数以及所述第二计算结果,执行所述第二目标计算模块的计算操作,获得第三计算结果,并通过所述第二目标计算模块,将所述第三计算结果发送至第三目标计算模块;
[0085] 根据为所述第三目标计算模块分配的参数以及所述第三计算结果,执行所述第三目标计算模块的计算操作,获得第四计算结果;
[0086] 通过所述第三目标计算模块,将所述第四计算结果写出至第五系统内存。
[0087] 在该可选的实施方式中,所述目标计算模块为组合的多个硬件计算模块(比如第一目标计算模块、第二目标计算模块、第三目标计算模块),在执行计算操作时,具体的,可以先通过第一目标计算模块,从第四系统内存中读取第二图像数据,即需要进行处理的图片数据或视频数据,之后,即可分别执行每个目标计算模块的计算操作,并将前一个目标计算模块的计算结果输入至后一个目标计算模块中作为参数进行计算,具体的,针对所述第一目标计算模块,可以根据为所述第一目标计算模块分配的参数以及所述第二图像数据,执行所述第一目标计算模块的计算操作,获得第二计算结果,并通过所述第一目标计算模块,将所述第二计算结果发送至第二目标计算模块;针对所述第二目标计算模块,可以根据为所述第二目标计算模块分配的参数以及所述第二计算结果,执行所述第二目标计算模块的计算操作,获得第三计算结果,并通过所述第二目标计算模块,将所述第三计算结果发送至第三目标计算模块;针对所述第三目标计算模块,可以根据为所述第三目标计算模块分配的参数以及所述第三计算结果,执行所述第三目标计算模块的计算操作,获得第四计算结果;最后,即可通过所述第三目标计算模块,将所述第四计算结果写出至第五系统内存。其中,为每个所述目标计算模块分配的参数是不同的。
[0088] 在该实施例方式中,上述多个目标计算模块之间不存在系统内存,在整个计算过程中,前级目标计算模块的计算结果不需要经过系统内存,而是直接发送给下一个后级目标计算模块,这相对于通用CPU或DSP而言(前级的计算模块的计算结果需要存放在系统内存,后级的计算模块再从系统内存中获取计算结果,以此类推),计算速度更快,性能更高。
[0089] 需要说明的是,上述组合的三个目标计算模块(第一目标计算模块、第二目标计算模块、第三目标计算模块)仅仅是一个示例,目标计算模块的组合还可以包括其他的,比如任意两个目标计算模块组合,任意四个目标计算模块组合等,本发明实施例不做限定。
[0090] 作为一种可选的实施方式,所述通过所述任务调度硬件从第一系统内存中读取调度信息之前,所述方法还包括:
[0091] 通过系统控制器生成所述调度信息;
[0092] 将所述调度信息保存至所述第一系统内存中。
[0093] 在该可选的实施方式中,系统控制器比如中央处理器(CPU,Central Processing Unit),数字信号处理器(Digital Signal Processing,DSP),根据不同的用户场景不同的算法,可以由系统控制器来生成不同的调度信息,比如,在目标图像追踪器中,采用的是KCF(Kernelized Correlation Filters,核相关滤波器)算法,系统控制器根据当前需要跟踪的目标数量以及各个目标的大小,并结合当前系统的带宽等因素,来确定接下来跟踪哪些目标,进而生成相应的调度信息。
[0094] 其中,调度信息可以有多个,多个调度信息在第一系统内存中可以紧密相连存储。
[0095] 作为一种可选的实施方式,所述调度信息包括多个,所述将所述调度信息保存至所述第一系统内存中包括:
[0096] 按照所述系统控制器设定的任务执行顺序,将多个所述调度信息保存至所述第一系统内存中,其中,多个所述调度信息的保存顺序与所述任务执行顺序相匹配。
[0097] 在该可选的实施方式中,每个调度信息代表一个需要执行的任务,多个调度信息的执行顺序可以由系统控制器来控制,多个调度信息按照所述系统控制器设定的任务执行顺序,在系统内存中紧密相连存储,其中,多个所述调度信息的保存顺序与所述任务执行顺序相匹配,即多个调度信息按照所述任务执行顺序的先后在系统内存中从前往后进行保存,也即任务执行顺序在先的调度信息就保存在前面的位置。
[0098] 需要说明的是,上述的“第一、第二、第三、第四、第五”仅用于区分不同的对象,并不代表限定,或其他的含义。
[0099] 在图2所描述的方法流程中,可以先通过所述任务调度硬件从第一系统内存中读取调度信息,所述调度信息包括公共配置信息以及任务描述符,所述公共配置信息与所述任务描述符相匹配;进一步地,通过所述任务调度硬件根据所述公共配置信息,确定所述多个硬件计算模块中需要工作的目标计算模块,通过所述任务调度硬件,向所述目标计算模块分配所述任务描述符中的参数;更进一步地,即可启动所述目标计算模块,并根据所述参数,执行所述目标计算模块的计算操作。可见,本发明中,在数据处理设备中设置任务调度硬件以及多个硬件计算模块,所述多个硬件计算模块是公共的,而不同算法需要的硬件计算模块是不同的,本发明可以通过任务调度硬件来统一控制所述多个硬件计算模块,即可以通过任务调度硬件来读取公共配置信息,以确定哪些硬件计算模块需要单独工作,哪些硬件计算模块需要组合工作,哪些硬件计算模块不需要工作,并通过所述任务调度硬件对需要工作的硬件计算模块统一分配参数,实现了对所述多个硬件计算模块的统一调配,以便定制的所述多个硬件计算模块能够更好的适用不同算法的需求,从而使得定制的多个硬件计算模块具有较强的通用性和灵活性。
[0100] 以上所述,仅是本发明的具体实施方式,但本发明的保护范围并不局限于此,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出改进,但这些均属于本发明的保护范围。
[0101] 请参见图3,图3是本发明公开的一种数据处理装置的较佳实施例的功能模块图。
[0102] 在一些实施例中,所述数据处理装置运行于数据处理设备中,所述数据处理设备设置有任务调度硬件以及多个硬件计算模块。所述数据处理装置可以包括多个由程序代码段所组成的功能模块。所述数据处理装置中的各个程序段的程序代码可以存储于存储器中,并由至少一个处理器所执行,以执行图2所描述的数据处理方法中的部分或全部步骤。
[0103] 本实施例中,所述数据处理装置根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:读取模块301、确定模块302、分配模块303、启动模块304及执行模块305。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在一些实施例中,关于各模块的功能将在后续的实施例中详述。
[0104] 读取模块301,用于通过所述任务调度硬件从第一系统内存中读取调度信息,所述调度信息包括公共配置信息以及任务描述符,所述公共配置信息与所述任务描述符相匹配;
[0105] 其中,所述调度信息包括公共配置信息以及任务描述符,所述公共配置信息与所述任务描述符相匹配,即每个公共配置信息均有与之对应的任务描述符,比如公共配置信息中配置的硬件计算模块之间的互联关系WorkMode=00001,则相应的,任务描述符中只有图像色彩空间转换计算模块CVT具有参数配置,而其他硬件计算模块没有参数配置。
[0106] 其中,公共配置信息可以包括但不限于任务ID号、一组任务配置信息的长度(含公共配置信息和任务描述符,一般以字节为单位)、硬件计算模块之间的互联关系(称为WorkMode)。其中,任务描述符主要描述了硬件计算模块内部各个模块的计算过程所需的参数,可以包括但不限于如下内容:图像分辨率(高度方向像素点个数和宽度方向像素点个数);图像格式信息(YUV420/YUV422/RGB等),CVT读内存地址、CVT写内存地址、CVT计算参数(如:CVT色彩空间转换的插值系数);Resize读内存地址、Resize写内存地址、Resize计算参数(如Resize高度方向缩放比例、Resize宽度方向缩放比例);Grad读内存地址、Grad写内存地址、Grad计算参数(如Grad梯度计算x方向卷积内核参数、Grad梯度计算y方向卷积内核参数等);HOG读内存地址、HOG写内存地址、HOG计算参数(如选择双线性插值算法或者三线性插值算法、Cell分辨率参数等);2D-FFT读内存地址、2D-FFT写内存地址、2D-FFT计算参数(如FFT点数等)。
[0107] 具体的,可以参照图1中的相关描述,在此不再赘述。
[0108] 确定模块302,用于通过所述任务调度硬件根据所述公共配置信息,确定所述多个硬件计算模块中需要工作的目标计算模块;
[0109] 具体的,可以根据所述公共配置信息中的硬件计算模块之间的互联关系WorkMode的配置来确定哪个或哪些硬件计算模块需要工作,即目标计算模块可以是一个也可以是多个。其中,每个硬件计算模块可以单独工作,也可以与其他硬件计算模块组合在一起工作,具体根据不同的场景需要的不同算法来配置不同的WorkMode。比如:在图像目标跟踪器中采用的是KCF算法,KCF算法需要配置的WorkMode=11111,表示CVT工作,Resize工作,Grad工作,HOG工作,2D-FFT工作,而其他的场景,需要的算法不同,配置的WorkMode也不同,比如:在人脸识别算法中,需要对人脸做色彩空间转换和图像缩放操作,此时配置WorkMode=00011,表示CVT工作,Resize工作,Grad不工作,HOG不工作,2D-FFT不工作。
[0110] 其中,典型的组合方式可以包括但不限于以下几种:WorkMode=00011,表示CVT从系统内存读入图像数据、经过CVT计算和Resize计算,从Resize模块将计算结果存入系统内存;WorkMode=00111,表示CVT从系统内存读入图像数据、经过CVT计算、Resize计算和Grad计算,从Grad模块将计算结果存入系统内存,WorkMode=01111,表示CVT从系统内存读入图像数据、经过CVT计算、Resize计算、Grad计算和HOG计算,从HOG模块将计算结果存入系统内存;WorkMode=01101,表示CVT从系统内存读入图像数据、经过CVT计算、Grad计算和HOG计算(跳过Resize),从HOG模块将计算结果存入系统内存;WorkMode=11010,表示Resize从系统内存读入图像数据、经过Resize计算、HOG计算和2D-FFT计算(跳过Grad),从2D-FFT模块将计算结果存入系统内存。
[0111] 分配模块303,用于通过所述任务调度硬件,向所述目标计算模块分配所述任务描述符中的参数;
[0112] 其中,在确定目标计算模块后,即可从所述任务描述符中提取所述目标计算模块的参数,并将所述参数分配至所述目标计算模块。
[0113] 启动模块304,用于启动所述目标计算模块;
[0114] 其中,在参数分配完成后,数据处理设备即可启动所述目标计算模块,即让所述目标计算模块开始运行。
[0115] 执行模块305,用于根据所述参数,执行所述目标计算模块的计算操作。
[0116] 其中,每个目标计算模块均有自己的计算规则,在分配好参数后,即可根据参数执行所述目标计算模块的计算操作。比如所述目标计算模块为图像色彩空间转换计算模块CVT,则需要根据CVT的图像色彩空间转换的计算规则来执行计算操作。
[0117] 具体的,所述执行模块305根据所述参数,执行所述目标计算模块的计算操作的方式具体为:
[0118] 通过所述目标计算模块,从第二系统内存中读取第一图像数据;
[0119] 根据所述参数以及所述第一图像数据,执行所述目标计算模块的计算操作,获得第一计算结果;
[0120] 通过所述目标计算模块,将所述第一计算结果写出至第三系统内存。
[0121] 在该可选的实施方式中,所述目标计算模块为单独的一个硬件计算模块,在执行计算操作时,具体的,可以先通过所述目标计算模块,从第二系统内存中读取第一图像数据,即需要进行处理的图片数据或视频数据,之后,即可根据所述参数以及所述第一图像数据,执行所述目标计算模块的计算操作,获得第一计算结果,最后,通过所述目标计算模块,将所述第一计算结果写出至第三系统内存。即整个计算过程,从第一图像数据读取,计算,到最后第一计算结果的写出都是由所述目标计算模块单独来完成的。
[0122] 具体的,所述目标计算模块包括多个,所述执行模块305根据所述参数,执行所述目标计算模块的计算操作的方式具体为:
[0123] 通过第一目标计算模块,从第四系统内存中读取第二图像数据;
[0124] 根据为所述第一目标计算模块分配的参数以及所述第二图像数据,执行所述第一目标计算模块的计算操作,获得第二计算结果,并通过所述第一目标计算模块,将所述第二计算结果发送至第二目标计算模块;
[0125] 根据为所述第二目标计算模块分配的参数以及所述第二计算结果,执行所述第二目标计算模块的计算操作,获得第三计算结果,并通过所述第二目标计算模块,将所述第三计算结果发送至第三目标计算模块;
[0126] 根据为所述第三目标计算模块分配的参数以及所述第三计算结果,执行所述第三目标计算模块的计算操作,获得第四计算结果;
[0127] 通过所述第三目标计算模块,将所述第四计算结果写出至第五系统内存。
[0128] 在该可选的实施方式中,所述目标计算模块为组合的多个硬件计算模块(比如第一目标计算模块、第二目标计算模块、第三目标计算模块),在执行计算操作时,具体的,可以先通过第一目标计算模块,从第四系统内存中读取第二图像数据,即需要进行处理的图片数据或视频数据,之后,即可分别执行每个目标计算模块的计算操作,并将前一个目标计算模块的计算结果输入至后一个目标计算模块中作为参数进行计算,具体的,针对所述第一目标计算模块,可以根据为所述第一目标计算模块分配的参数以及所述第二图像数据,执行所述第一目标计算模块的计算操作,获得第二计算结果,并通过所述第一目标计算模块,将所述第二计算结果发送至第二目标计算模块;针对所述第二目标计算模块,可以根据为所述第二目标计算模块分配的参数以及所述第二计算结果,执行所述第二目标计算模块的计算操作,获得第三计算结果,并通过所述第二目标计算模块,将所述第三计算结果发送至第三目标计算模块;针对所述第三目标计算模块,可以根据为所述第三目标计算模块分配的参数以及所述第三计算结果,执行所述第三目标计算模块的计算操作,获得第四计算结果;最后,即可通过所述第三目标计算模块,将所述第四计算结果写出至第五系统内存。其中,为每个所述目标计算模块分配的参数是不同的。
[0129] 在该实施例方式中,上述多个目标计算模块之间不存在系统内存,在整个计算过程中,前级目标计算模块的计算结果不需要经过系统内存,而是直接发送给下一个后级目标计算模块,这相对于通用CPU或DSP而言(前级的计算模块的计算结果需要存放在系统内存,后级的计算模块再从系统内存中获取计算结果,以此类推),计算速度更快,性能更高。
[0130] 需要说明的是,上述组合的三个目标计算模块(第一目标计算模块、第二目标计算模块、第三目标计算模块)仅仅是一个示例,目标计算模块的组合还可以包括其他的,比如任意两个目标计算模块组合,任意四个目标计算模块组合等,本发明实施例不做限定。
[0131] 可选的,所述数据处理装置还包括:
[0132] 生成模块,用于在所述读取模块301通过所述任务调度硬件从第一系统内存中读取调度信息之前,通过系统控制器生成所述调度信息;
[0133] 保存模块,用于将所述调度信息保存至所述第一系统内存中。
[0134] 具体的,所述调度信息包括多个,所述保存模块将所述调度信息保存至所述第一系统内存中包括:
[0135] 按照所述系统控制器设定的任务执行顺序,将多个所述调度信息保存至所述第一系统内存中,其中,多个所述调度信息的保存顺序与所述任务执行顺序相匹配。
[0136] 在图3所描述的数据处理装置中,在数据处理设备中设置任务调度硬件以及多个硬件计算模块,所述多个硬件计算模块是公共的,而不同算法需要的硬件计算模块是不同的,本发明可以通过任务调度硬件来统一控制所述多个硬件计算模块,即可以通过任务调度硬件来读取公共配置信息,以确定哪些硬件计算模块需要单独工作,哪些硬件计算模块需要组合工作,哪些硬件计算模块不需要工作,并通过所述任务调度硬件对需要工作的硬件计算模块统一分配参数,实现了对所述多个硬件计算模块的统一调配,以便定制的所述多个硬件计算模块能够更好的适用不同算法的需求,从而使得定制的多个硬件计算模块具有较强的通用性和灵活性。
[0137] 如图4所示,图4是本发明实现数据处理方法的较佳实施例的数据处理设备的结构示意图。所述数据处理设备4包括存储器41、至少一个处理器42、任务调度硬件43、硬件计算模块44,存储在所述存储器41中并可在所述至少一个处理器42上运行的计算机程序45及至少一条通讯总线46。
[0138] 本领域技术人员可以理解,图4所示的示意图仅仅是所述数据处理设备4的示例,并不构成对所述数据处理设备4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述数据处理设备4还可以包括输入输出设备、网络接入设备等。
[0139] 所述数据处理设备4还包括但不限于任何一种可与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)、游戏机、交互式网络电视(Internet Protocol Television,IPTV)、智能式穿戴式设备等。所述数据处理设备4所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。
[0140] 所述至少一个处理器42可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。该处理器42可以是微处理器或者该处理器42也可以是任何常规的处理器等,所述处理器42是所述数据处理设备4的控制中心,利用各种接口和线路连接整个数据处理设备4的各个部分。
[0141] 所述存储器41可用于存储所述计算机程序45和/或模块/单元,所述处理器42通过运行或执行存储在所述存储器41内的计算机程序和/或模块/单元,以及调用存储在存储器41内的数据,实现所述数据处理设备4的各种功能。所述存储器41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据数据处理设备4的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0142] 结合图2,所述数据处理设备4中的所述存储器41存储多个指令以实现一种数据处理方法,所述处理器42可执行所述多个指令从而实现:
[0143] 通过所述任务调度硬件从第一系统内存中读取调度信息,所述调度信息包括公共配置信息以及任务描述符,所述公共配置信息与所述任务描述符相匹配;
[0144] 通过所述任务调度硬件根据所述公共配置信息,确定所述多个硬件计算模块中需要工作的目标计算模块;
[0145] 通过所述任务调度硬件,向所述目标计算模块分配所述任务描述符中的参数;
[0146] 启动所述目标计算模块;
[0147] 根据所述参数,执行所述目标计算模块的计算操作。
[0148] 在一种可选的实施方式中,所述根据所述参数,执行所述目标计算模块的计算操作包括:
[0149] 通过所述目标计算模块,从第二系统内存中读取第一图像数据;
[0150] 根据所述参数以及所述第一图像数据,执行所述目标计算模块的计算操作,获得第一计算结果;
[0151] 通过所述目标计算模块,将所述第一计算结果写出至第三系统内存。
[0152] 在一种可选的实施方式中,所述目标计算模块包括多个,所述根据所述参数,执行所述目标计算模块的计算操作包括:
[0153] 通过第一目标计算模块,从第四系统内存中读取第二图像数据;
[0154] 根据为所述第一目标计算模块分配的参数以及所述第二图像数据,执行所述第一目标计算模块的计算操作,获得第二计算结果,并通过所述第一目标计算模块,将所述第二计算结果发送至第二目标计算模块;
[0155] 根据为所述第二目标计算模块分配的参数以及所述第二计算结果,执行所述第二目标计算模块的计算操作,获得第三计算结果,并通过所述第二目标计算模块,将所述第三计算结果发送至第三目标计算模块;
[0156] 根据为所述第三目标计算模块分配的参数以及所述第三计算结果,执行所述第三目标计算模块的计算操作,获得第四计算结果;
[0157] 通过所述第三目标计算模块,将所述第四计算结果写出至第五系统内存。
[0158] 在一种可选的实施方式中,所述通过所述任务调度硬件从第一系统内存中读取调度信息之前,所述处理器42可执行所述多个指令从而实现:
[0159] 通过系统控制器生成所述调度信息;
[0160] 将所述调度信息保存至所述第一系统内存中。
[0161] 在一种可选的实施方式中,所述调度信息包括多个,所述将所述调度信息保存至所述第一系统内存中包括:
[0162] 按照所述系统控制器设定的任务执行顺序,将多个所述调度信息保存至所述第一系统内存中,其中,多个所述调度信息的保存顺序与所述任务执行顺序相匹配。
[0163] 具体地,所述处理器42对上述指令的具体实现方法可参考图2对应实施例中相关步骤的描述,在此不赘述。
[0164] 在图4所描述的数据处理设备4中,可以先通过所述任务调度硬件从第一系统内存中读取调度信息,所述调度信息包括公共配置信息以及任务描述符,所述公共配置信息与所述任务描述符相匹配;进一步地,通过所述任务调度硬件根据所述公共配置信息,确定所述多个硬件计算模块中需要工作的目标计算模块,通过所述任务调度硬件,向所述目标计算模块分配所述任务描述符中的参数;更进一步地,即可启动所述目标计算模块,并根据所述参数,执行所述目标计算模块的计算操作。可见,本发明中,在数据处理设备中设置任务调度硬件以及多个硬件计算模块,所述多个硬件计算模块是公共的,而不同算法需要的硬件计算模块是不同的,本发明可以通过任务调度硬件来统一控制所述多个硬件计算模块,即可以通过任务调度硬件来读取公共配置信息,以确定哪些硬件计算模块需要单独工作,哪些硬件计算模块需要组合工作,哪些硬件计算模块不需要工作,并通过所述任务调度硬件对需要工作的硬件计算模块统一分配参数,实现了对所述多个硬件计算模块的统一调配,以便定制的所述多个硬件计算模块能够更好的适用不同算法的需求,从而使得定制的多个硬件计算模块具有较强的通用性和灵活性。
[0165] 所述数据处理设备4集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0166] 在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0167] 所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0168] 另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
[0169] 对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
[0170] 最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。