CN111145075B - 数据处理系统 - Google Patents
数据处理系统 Download PDFInfo
- Publication number
- CN111145075B CN111145075B CN201911296752.6A CN201911296752A CN111145075B CN 111145075 B CN111145075 B CN 111145075B CN 201911296752 A CN201911296752 A CN 201911296752A CN 111145075 B CN111145075 B CN 111145075B
- Authority
- CN
- China
- Prior art keywords
- data
- register
- module
- result
- results
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
- G06T7/248—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/262—Analysis of motion using transform domain methods, e.g. Fourier domain methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20048—Transform domain processing
- G06T2207/20056—Discrete and fast Fourier transform, [DFT, FFT]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Complex Calculations (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开一种数据处理系统,其中该数据处理系统包括:数据传输模块、控制模块、运算模块、存储控制模块及存储模块;该数据传输模块用于接收第一特征值和第二特征值,控制模块用于控制运算模块对第一特征值和第二特征值的数据进行运算,存储控制模块用于进行共轭相乘运算以及进行第一特征值和第二特征值相关度的计算,存储模块用于存储计算结果。采用本申请实施例,通过多个硬件模块之间相互协作,完成相关度的计算,计算效率高。
Description
技术领域
本发明涉及图像处理技术领域,尤其涉及一种数据处理系统。
背景技术
在进行目标跟踪时,通常需要通过当前帧的图像和下一帧的图像之间的相关性,来检测下一帧图像的预测位置是否存在目标。而计算当前帧图像的特征值和下一帧图像的特征值之间的相关度成为一个关键步骤,目前,两帧图像特征值之间相关度的计算通常由软件实现(即通过通用处理器ARM或者数字信号处理器DSP来执行软件程序指令实现),然而,由纯软件计算两帧图像特征值之间的相关度时,计算效率较低。
发明内容
本发明实施例提供一种数据处理系统,该系统通过多个硬件模块之间的协作来提高计算第一特征值和第二特征值的相关度的效率。
本发明实施例提供了一种数据处理系统,所述数据处理系统包括数据传输模块、控制模块、运算模块、存储控制模块及存储模块;
所述数据传输模块用于接收第一特征值以及第二特征值,所述第一特征值及所述第二特征值包括D×W×H个特征向量,其中,D代表维度,W代表宽度,H代表高度,D、W、H均为正整数;
所述控制模块用于将获取到的所述第一特征值的第i个维度的W×H个特征向量作为第一运算值,并控制所述运算模块对所述第一运算值的每一行特征向量作快速傅立叶变换得到W×H个第一结果,且控制所述运算模块对所述第一结果的每一列作快速傅立叶变换得到H×W个第二结果,其中,1≤i≤D;
所述控制模块还用于将获取到的所述第二特征值的第i个维度的W×H个特征向量作为第二运算值,并控制所述运算模块对所述第二运算值的每一行特征向量作快速傅立叶变换得到W×H个第三结果,且控制所述运算模块对所述第三结果的每一列作快速傅立叶变换得到H×W个第四结果;
所述存储控制模块用于对所述第二结果和所述第四结果做共轭相乘运算得到W×H个第五结果;
所述控制模块还用于控制所述运算模块对所述第五结果的每一行特征向量作快速傅立叶逆变换得到W×H个第六结果,并控制所述运算模块对所述第六结果的每一列作快速傅立叶逆变换得到H×W个第七结果;
所述存储控制模块还用于将所述D个维度中每个维度的第七结果中相同行和相同列的实部进行累加,得到W×H个第八结果,将所述第八结果作为所述第一特征值和所述第二特征值的相关度;
所述存储控制模块还用于控制所述存储模块存储所述第一至第七结果以及所述相关度。
在一种可能的设计中,所述运算模块包括M个蝶形运算单元,每个蝶形运算单元对接收到的数据进行快速傅立叶变换或者快速傅立叶逆变换。
在一种可能的设计中,所述控制模块包括运算控制器、寄存单元和数据选择单元,所述寄存单元用于寄存即将进行运算的数据,所述运算控制器用于根据W与M或H与M的大小关系控制所述数据选择单元从所述寄存单元中选取相应的数据,并将选取的数据输出给所述M个蝶形运算单元。
在一种可能的设计中,所述运算控制器还用于若所述W小于2M,控制所述数据选择单元从所述寄存单元中选取W个数据,并将选取的数据输出给所述M个蝶形运算单元;
所述运算控制器还用于若所述W大于或者等于2M,控制所述数据选择单元每次从所述寄存单元中选取2M个数据,并将选取的数据输出给所述M个蝶形运算单元;
所述运算控制器还用于若所述H小于2M,控制所述数据选择单元从所述寄存单元中选取H个数据,并将选取的数据输出给所述M个蝶形运算单元;
所述运算控制器还用于若所述H大于或者等于2M,控制所述数据选择单元每次从所述寄存单元中选取2M个数据,并将选取的数据输出给所述M个蝶形运算单元。
在一种可能的设计中,所述数据选择单元包括数据选择仲裁逻辑和数据选择逻辑;
所述数据选择仲裁逻辑根据每次从寄存单元中选取的数据的个数,以及所述蝶形运算单元进行快速傅立叶变换或者快速傅立叶逆变换当前所处的级数,确定旋转因子;
所述数据选择逻辑根据所述旋转因子,确定输入所述M个蝶形运算单元中每个蝶形运算单元的两个数据的序号。
在一种可能的设计中,所述寄存单元包括两个寄存器集合,每个所述寄存器集合包含X个寄存器组,一个寄存器组包括P个寄存器,一个寄存器组中的P个寄存器用于存储一行或一列特征向量,所述X和P均为正整数;
所述运算控制器用于向所述两个寄存器集合中的一个寄存器集合存储X行或列特征向量;
所述运算控制器还用于控制所述数据选择单元从所述一个寄存器集合中选取相应的数据,并将选取的数据输出给所述M个蝶形运算单元,同时所述运算控制器向所述两个寄存器集合中的另一个寄存器集合存储除所述X行或列特征向量外的特征向量。
在一种可能的设计中,所述系统还包括寄存器接口;
所述寄存器接口用于获取寄存器配置信息,并将所述寄存器配置信息传输至所述运算控制器;
所述运算控制器用于根据所述寄存器配置信息,向所述M个寄存器集合存储特征向量。
在一种可能的设计中,所述存储模块包括第一存储器、第二存储器以及第三存储器;
所述第一存储器用于存储所述第一结果、所述第三结果、所述第六结果;
所述第二存储器用于存储所述第二结果、第四结果、所述第五结果以及所述第七结果;
所述第三存储器用于存储所述第八结果。
在一种可能的设计中,所述系统还包括任务控制器,所述任务控制器用于在检测到相关度计算指令时,向所述运算控制器发送任务启动信号,所述任务启动信号用于指示所述运算控制器对输入数据进行快速傅立叶变换或者快速傅立叶逆变换。
本发明实施例中,数据处理系统包括数据传输模块、控制模块、运算模块、存储控制模块及存储模块,这五个模块均为硬件模块,通过该数据处理系统中这五个硬件模块之间的相互协作实现相关度的计算,且计算过程中都是以行或者列为单位进行计算的,因此,相较于纯软件计算,该数据处理系统的计算效率较高。
附图说明
为了说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的一种数据处理系统的原理框图。
图2为本发明实施例提供的第一特征值及第二特征值的示意图。
图3为本发明实施例提供的一种运算模块的原理框图。
图4为本发明实施例提供的一种蝶形运算单元的示意图。
图5为本发明实施例提供的另一种数据处理系统的原理框图。
图6为本发明实施例提供的一种FFT运算的示意图。
图7为本发明实施例提供的一种寄存单元的示意图。
图8为本发明实施例提供的存储模块中每个存储单元的示意图。
图9为本发明实施例提供的一种流水线处理的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
下面对本发明实施例提供的数据处理系统进行详细介绍。
请参阅图1,图1为本发明实施例提供的一种数据处理系统的原理框图。
如图1所示,所述数据处理系统可以包括数据传输模块、控制模块、运算模块、存储控制模块及存储控制模块。所述数据传输模块、所述控制模块、所述运算模块、所述存储控制模块及所述存储模块均为硬件模块。
请一并参阅图1及图2,所述数据传输模块用于接收第一特征值F1以及第二特征值F2,所述第一特征值F1及所述第二特征值F2包括D×W×H个特征向量,其中,D代表维度,W代表宽度,H代表高度,D、W、H均为正整数。
所述控制模块用于将获取到的所述第一特征值F1的第i个维度的W×H个特征向量作为第一运算值,并控制所述运算模块对所述第一运算值的每一行特征向量作快速傅立叶变换得到W×H个第一结果,且控制所述运算模块对所述第一结果的每一列作快速傅立叶变换得到H×W个第二结果,其中,1≤i≤D。
具体可选的,控制模块针对第一特征值F1的每个维度的W×H个特征向量,均是先对每一行特征向量作快速傅里叶变换得到W×H个第一结果,然后对第一结果的每一列做快速傅里叶变换得到H×W个第二结果。
所述控制模块还用于将获取到的所述第二特征值F2的第i个维度的W×H个特征向量作为第二运算值,并控制所述运算模块对所述第二运算值的每一行特征向量作快速傅立叶变换得到W×H个第三结果,且控制所述运算模块对所述第三结果的每一列作快速傅立叶变换得到H×W个第四结果;
具体可选的,控制模块针对第二特征值F2的每个维度的W×H个特征向量,均是先对每一行特征向量作快速傅里叶变换得到W×H个第三结果,然后对第一结果的每一列做快速傅里叶变换得到H×W个第四结果。
所述存储控制模块用于对所述第二结果和所述第四结果做共轭相乘运算得到W×H个第五结果。
所述控制模块还用于控制所述运算模块对所述第五结果的每一行特征向量作快速傅立叶逆变换得到W×H个第六结果,并控制所述运算模块对所述第六结果的每一列作快速傅立叶逆变换得到H×W个第七结果。
所述存储控制模块还用于将所述D个维度中每个维度的第七结果中相同行和相同列的实部进行累加,得到W×H个第八结果,将所述第八结果作为所述第一特征值和所述第二特征值的相关度。
所述存储控制模块还用于控制所述存储模块存储所述第一至第七结果以及所述相关度。
请参阅图3,所述运算模块可以包括M个蝶形运算单元,M为正整数。每个蝶形运算单元用于对接收到的数据进行快速傅里叶变换或者快速傅里叶逆变换。
请参阅图4,每个蝶形运算单元包括两个输入接口,分别用于接收输入的数据输入1和输入2。输入2与旋转因子通过乘法器相乘,得到旋转后的输入2,输入1与旋转后的输入2通过加法器相加得到结果1,可选的,若是IFFT运算,则还需要将输入1与旋转后的输入2通过加法器相加后的结果除2,得到结果1。输入1与旋转后的输入2通过减法器相减得到结果2,可选的,若是IFFT运算,则还需要将输入1与旋转后的输入2通过减法器相减得到的结果除2,得到结果2。
M个蝶形运算单元包括2M个输入接口,可以在一个时钟周期处理完一级的2M点的FFT(Fast Fourier Transform,快速傅立叶变换)或者IFFT(Inverse Fast FourierTransform,快速傅立叶逆变换)运算。对于X点FFT或IFFT运算,当X≤2M时,所述运算模块的可以在一个时钟周期处理完一级的X点的FFT或IFFT运算;当X>2M且是2M的Y倍时,所述运算模块的可以在Y个时钟周期处理完一级的X点的FFT或IFFT运算。需要说明的是,上述的2M点是指该运算模块可以输入的特征向量的个数为2M个。
具体的,当M=8,且X=8时,所述运算模块可以在一个时钟周期处理完一级的8点的FFT或IFFT运算。当M=8,且X=16时,所述运算模块可以在一个时钟周期处理完一级的16点的FFT或IFFT运算。当M=8,且X=32时,所述运算模块可以在两个时钟周期处理完一级的32点的FFT或IFFT运算。当M=8,且X=64时,所述运算模块可以在四个时钟周期处理完一级的32点的FFT或IFFT运算。
请参阅图5,图5为本发明实施例提供的另一种数据处理系统的原理框图。
如图5所示,所述数据处理系统可以包括数据传输模块、控制模块、运算模块、存储控制模块及存储模块。所述数据传输模块、所述控制模块、所述运算模块、所述存储控制模块及所述存储模块功能与图1提供的实施例的数据传输模块、控制模块、运算模块、存储控制模块及存储模块的功能类似,再此不在赘述。
数据传输模块可以与外部存储器相连,以将外部存储器中存储的图像特征值传输给控制模块,其中,图像特征值可以包括第一图像的第一特征值F1和第二图像的第二特征值F2。第一特征值F1和第二特征值F2中每个特征值可以包括多个特征向量,如图2所示,每个特征值可以包括D×W×H个特征向量,其中,D代表维度,W代表宽度,H代表高度。数据传输模块将第一特征值和第二特征值从外部存储器传输至控制模块,可以方便后续的运算,从而大大提高运算效率。
所述控制模块可以包括运算控制器、寄存单元和数据选择单元。
所述寄存单元用于寄存即将进行运算的数据,所述运算控制器用于根据W与M或H与M的大小关系控制所述数据选择单元从所述寄存单元中选取相应的数据,并将选取的数据输出给所述M个蝶形运算单元。比如,若W小于2M,控制所述数据选择单元从所述寄存单元中选取W个数据,并将选取的数据输出给所述M个蝶形运算单元。例如,W为4,运算模块集成了4个蝶形运算单元,即可以同时处理8点FFT,而W小于8,那么一个时间周期就可以处理完成,将4个特征向量直接输入运算模块进行运算,可以理解的是,输入运算模块的特征向量只占用了两个蝶形运算单元。
又比如,若所述W大于或者等于2M,控制所述数据选择单元每次从所述寄存单元中选取2M个数据,并将选取的数据输出给所述M个蝶形运算单元。例如,W为16,运算模块集成了4个蝶形运算单元,即可以同时处理8点FFT,而W大于2M,不能将W个数据全部输入,只能一次输入2M个特征向量至运算模块进行运算。
所述数据选择单元包括数据选择仲裁逻辑和数据选择逻辑。所述数据选择仲裁逻辑根据每次从寄存单元中选取的数据的个数,以及所述蝶形运算单元进行快速傅立叶变换或者快速傅立叶逆变换当前所处的级数,确定旋转因子。
所述数据选择逻辑根据所述旋转因子,确定输入所述M个蝶形运算单元中每个蝶形运算单元的两个数据的序号,并根据序号输入相应的蝶形运算单元。
如图6所示,旋转因子Wk N中的W表示权重,N表示FFT或者IFFT的点数(一般是4点、8点、16点等等)k表示第几个权重。从该蝶形运算过程示意图可见,旋转因子Wk N中N和k的取值与参与该次FFT运算的点数(N的值)以及蝶形运算单元进行快速傅立叶变换或者快速傅立叶逆变换当前所处的级数有关,比如,八点FFT运算时,在第一级运算时,N=8,k=0、1、2以及3,第二级运算时,N=8,k=0或者2,第三级运算时,N=8,k=0。
因此,数据选择仲裁逻辑根据每次从寄存单元中选取的数据的个数(即参与该次FFT运算的点数),以及蝶形运算单元进行快速傅立叶变换或者快速傅立叶逆变换当前所处的级数确定旋转因子,即确定N和k的大小。
该数据选择逻辑根据旋转因子,即可以确定输入M个蝶形运算单元中每个蝶形运算单元的两个数据的序号,其中,该序号可以是从寄存单元中取出数据时,依次进行编号得到的序号。或者,若是FFT运算的中间结果,该序号可以是第一级运算后得到的中间结果的顺序依次编号得到的。例如,若是8点FFT运算,则编号为0-7,若是16点FFT运算,则编号为0-15。根据序号确定输入蝶形运算单元的数据,比如,进行8点FFT运算,且为第一级运算,N=8,k=0、1、2以及3,则输入同一个蝶形运算单元的数据点的间距为4(其中,k有四种取值),即选择序号0和序号4,序号1和序号5,序号2和序号6,序号3和序号7。又比如,8点FFT运算,进行第二级运算时,N=8,k=0或者2,则输入同一个蝶形运算单元的数据点的间距为2(其中,k有两种取值),即选择序号0和序号2、序号1和序号3、序号4和序号6以及序号5和序号7。又比如,8点FFT运算,进行第三级运算时,N=8,k=0,则输入同一个蝶形运算单元的数据点的间距为1(其中,k有一种取值),即选择序号0和序号1、序号2和序号3、序号4和序号5、序号6和序号7。
可以理解,不同的点数可以对应不同的级数,例如,包含X点,所分的级数为log2X。
可选的,上述寄存单元可以包括第一寄存器集合和第二寄存器集合,该第一寄存器集合和第二寄存器集合均包含X个寄存器组,一个寄存器组包括P个寄存器,X和P均为正整数,一个寄存器组中的P个寄存器用于存储一行或一列特征向量,那么一个寄存器集合就可以存储X行或列特征向量。
所述运算控制器用于控制所述第一寄存器集合存储X行或列特征向量;
所述运算控制器还用于控制所述数据选择单元从所述第一寄存器集合中选取相应的数据,并将选取的数据输出给所述M个蝶形运算单元,同时所述运算控制器控制所述第二寄存器集合存储除所述X行或列特征向量外的特征向量,比如,第一寄存器集合中存储1至X行或列特征向量,则第二寄存器集合存储X+1至2X行或列特征向量。
在一个实施例中,如图7所示,寄存单元可以包括两个寄存器集合,第一寄存器集合包含寄存器组1-4,第二寄存器集合包含寄存器组5-8。一个寄存组可以用于存储一行特征向量,比如寄存组1-4用于存储特征值F1的第1-4行,寄存组5-8用于存储特征值F1中的第5-8行。为了提高数据处理效率,寄存器组1-4和寄存器组5-8可以采取乒乓操作,即可以在对第1-4行的特征值进行处理的同时,将第5-8行的特征值存储在第二寄存器集合中,当完成对第1-4行的特征值的处理后,第5-8行的特征值已经存储在第二寄存器集合中,可以直接对第二寄存器集合中的特征值进行处理,减少了第5-8行的特征值存储进第二寄存器集合的等待时间,从而大大提高处理效率。
需要说明的是,寄存器组1-4还可以继续用于存储9-12行,17-20行等等,寄存组5-8还可以继续用于存储13-16行,21-24行等等,以此类推。
可以理解的是,寄存组1-4和寄存组5-8存储特征值F2的存储方式同存储特征值F1相同,在此不再赘述。
可选的,所述存储控制模块用于对上述计算得到的第二结果和第四结果做共轭相乘运算得到W×H个第五结果。
所述控制模块还用于控制所述运算模块对所述第五结果的每一行特征向量作快速傅立叶逆变换得到W×H个第六结果,并控制所述运算模块对所述第六结果的每一列作快速傅立叶逆变换得到H×W个第七结果。
其中,运算模块对W×H个第五结果的每一行特征向量作快速傅里叶逆变换的方法,以及对W×H个第六结果的每一列作快速傅立叶逆变换得到H×W个第七结果的方法请参照前述实施例行方向快速傅里叶变换过程和列方向快速傅里叶变换过程的描述,在此不再赘述。
所述存储控制模块还用于将所述D个维度中每个维度的第七结果中相同行和相同列的实部进行累加,得到W×H个第八结果,将所述第八结果作为所述第一特征值和所述第二特征值的相关度;该相关度可以用于核相关滤波算法(Kernel Correlation Filter,KCF)中的计算,即计算当前图像帧和上一个图像帧之间的相关度。
可选的,每计算出一个维度的H×W个第七结果,即将该维度的H×W个第七结果中与已经存储的累加结果中的相同行和相同列进行累加,当计算出所有维度的H×W个第七结果,即可得到W×H个第八结果,将所述第八结果作为所述第一特征值和所述第二特征值的相关度。
所述存储控制模块还用于控制所述存储模块存储所述第一至第七结果以及所述相关度。
可选的,存储模块包括第一存储器、第二存储器以及第三存储器。
所述第一存储器用于存储所述第一结果、所述第三结果、所述第六结果。
所述第二存储器用于存储所述第二结果、第四结果、所述第五结果以及所述第七结果。
所述第三存储器用于存储所述第八结果。
具体可选的,在对第一特征值F1的每行特征向量进行傅里叶变换后得到的第一结果存储至第一存储器,进一步,运算控制器从第一存储器读出该第一结果,运算控制器控制运算模块对第一结果的每列进行快速傅里叶变换得到第二结果,将该第二结果存储至第二存储器。
由于第一存储器所存储的第一结果已经用于列方向的快速傅里叶变换,因此为了节省存储器,可以将对第二特征值的每行进行快速傅里叶变换得到的第三结果存储至第一存储器,需要说明的是,可以是覆盖存储,即将第三结果覆盖掉第一结果,也可以不用覆盖存储。
进一步运算控制器从第一存储器读出第三结果,并控制运算模块对第三结果的每列进行快速傅里叶变换,得到第四结果,可以将第四结果存在第二存储器,这里不能是覆盖存储,因为第二存储器中所存储的第二结果需要进行共轭相乘运算。
进一步从第二存储器读出第二结果和第四结果,存储控制模块控制对第二结果和第四结果进行共轭相乘,得到第五结果,将第五结果存储在第二存储器中。
进一步从第二存储器读出第五结果,对第五结果的每行进行快速傅里叶逆变换,得到第六结果。将第六结果存储至第一存储器。
进一步从第一存储器读出第六结果,并对第六结果的每列进行快速傅里叶逆变换,得到第七结果。
将第七结果存储至第二存储器,进一步从第二存储器读出第七结果,将所有维度第七结果的相同行和相同列的实部相加,即得到第八结果,即相关度,将相关度存储至第三存储器。比如是两个维度,两行两列的特征值,则将两个维度中第一行第一列的两个第二快速傅里叶逆变换结果的实部相加,将两个维度中第一行第二列的两个第二快速傅里叶逆变换结果的实部相加,以此类推,得到两行两列的实部相加的值。
如图8所示,在一个实施例中,存储模块中的每个存储器(如第一存储器、第二存储器及第三存储器)都可以包括多个存储单元(如Bank0-Bank31)。每个存储单元具有一个地址编号,每个存储单元且用于存储一行或者一列的数据(图7以行为例进行说明)。每个存储器包括的存储单元的数量可以相同也可以不同,且每个存储器中存储单元的地址编号可以相同也可以不同。
在一个实施例中,每个存储器包括的存储单元的数量相同且每个存储器中存储单元的地址编号也相同,比如每个存储器包括的32个存储单元,且32个存储单元的地址编号是地址0-地址31。一个存储单元依次存储一行中的各个结果,当对每列数据进行快速傅里叶变换时,将多个存储单元中地址编号相同的结果取出来即构成一列数据。比如,都取地址0的数据,就构成第一列数据。
在一个实施例中,上述计算每行数据的快速傅里叶变换,或者每列数据的快速傅里叶变换,以及每行数据的快速傅里叶逆变换,或者每列数据的快速傅里叶逆变换,均需要经历以下四个处理过程:
数据载入:运算控制器将数据传输模块传输的第一特征值F1及第一特征值F2,或运算模块输出的中间结果,或存储模块输出的第一结果及第三结果载入寄存单元;
数据选择:数据选择单元对载入寄存单元的数据进行选择,并将选择的数据传输给运算模块;
数据运算:运算模块对选择的数据进行快速傅里叶变换或者快速傅里叶逆变换,并将计算结果传输给存储模块;
数据存储:存储模块存储接收到的计算结果(如第一至第七结果)。
由此可见,上述四个处理过程需按先后顺序依次执行,即,先进行数据载入,再进行数据选择,接着进行数据运算,最后进行数据存储。亦即,上述四个处理过程是按流水线处理的。
图9是本发明实施例提供的一种流水线处理的示意图,如图9所示,一个周期包括四个子周期,每个子周期对应一个上述的处理过程。在第一个子周期,运算控制器将相应的数据载入寄存器组1;在第二个子周期,数据选择单元对载入寄存组1的数据进行选择,同时运算控制器将相应的数据载入寄存器组2;在第三个子周期,运算模块对选择的寄存组1的数据进行FFT或者IFFT运算,同时数据选择单元对载入寄存组2的数据进行选择,且运算控制器将相应的数据载入寄存器组3;在第四个子周期,存储模块存储运算模块输出的对寄存组1的数据进行运算的结果,同时运算模块对选择的寄存组2的数据进行FFT或者IFFT运算,数据选择单元对载入寄存组3的数据进行选择,运算控制器将相应的数据载入寄存器组4。依次类推,每个周期完成一行或一列数据的FFT或者IFFT运算,且每个周期有4个寄存组的参与,可以对4行或4列数据进行处理。一直到4个时间周期完成对4行特征值的快速傅里叶变换结果的计算,得到4行特征值的快速傅里叶变换结果。需要说明的是,为了避免对第5-8行的特征值从外部读入的等待时间,可以在对第1-4行的特征值进行快速傅里叶变换计算的同时,读入数据到第二寄存组集合中进行存储。
在一个实施例中,计算一行或一列数据的FFT或者IFFT运算需要经历的处理过程的数量,与一个周期包括的子周期的数量,以及一个寄存器集合包括的寄存器组的数量相同。例如,当计算一行或一列数据的FFT或者IFFT运算需要经历四个处理过程时,一个周期包括四个子周期,且一个寄存器集合包括四个寄存器组。
请再次参阅图5,数据处理系统还可以包括寄存器接口。所述寄存器接口用于获取寄存器配置信息,并将所述寄存器配置信息传输至所述运算控制器。所述运算控制器用于根据所述寄存器配置信息,向所述第一寄存器集合和所述第二寄存器集合存储特征向量。
比如,寄存器配置信息指示先向第一寄存器集合存储数据,然后在对第一寄存器集合中存储的数据进行处理时,向第二寄存器集合存储数据。
请再次参阅图5,数据处理系统还可以包括任务控制器,所述任务控制器用于在检测到相关度计算指令时,向所述运算控制器发送任务启动信号,所述任务启动信号用于指示所述运算控制器对输入数据进行快速傅立叶变换或者快速傅立叶逆变换。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
Claims (9)
1.一种数据处理系统,其特征在于,所述数据处理系统包括数据传输模块、控制模块、运算模块、存储控制模块及存储模块;
所述数据传输模块用于接收第一特征值以及第二特征值,所述第一特征值及所述第二特征值包括D×W×H个特征向量,其中,D代表维度,W代表宽度,H代表高度,D、W、H均为正整数;
所述控制模块用于将获取到的所述第一特征值的第i个维度的W×H个特征向量作为第一运算值,并控制所述运算模块对所述第一运算值的每一行特征向量作快速傅立叶变换得到W×H个第一结果,且控制所述运算模块对所述第一结果的每一列作快速傅立叶变换得到H×W个第二结果,其中,1≤i≤D;
所述控制模块还用于将获取到的所述第二特征值的第i个维度的W×H个特征向量作为第二运算值,并控制所述运算模块对所述第二运算值的每一行特征向量作快速傅立叶变换得到W×H个第三结果,且控制所述运算模块对所述第三结果的每一列作快速傅立叶变换得到H×W个第四结果;
所述存储控制模块用于对所述第二结果和所述第四结果做共轭相乘运算得到W×H个第五结果;
所述控制模块还用于控制所述运算模块对所述第五结果的每一行特征向量作快速傅立叶逆变换得到W×H个第六结果,并控制所述运算模块对所述第六结果的每一列作快速傅立叶逆变换得到H×W个第七结果;
所述存储控制模块还用于将所述D个维度中每个维度的第七结果中相同行和相同列的实部进行累加,得到W×H个第八结果,将所述第八结果作为所述第一特征值和所述第二特征值的相关度;
所述存储控制模块还用于控制所述存储模块存储所述第一至第七结果以及所述相关度。
2.如权利要求1所述的数据处理系统,其特征在于,所述运算模块包括M个蝶形运算单元,M为正整数,每个蝶形运算单元对接收到的数据进行快速傅立叶变换或者快速傅立叶逆变换。
3.如权利要求2所述的数据处理系统,其特征在于,所述控制模块包括运算控制器、寄存单元和数据选择单元,所述寄存单元用于寄存即将进行运算的数据,所述运算控制器用于根据W与M或H与M的大小关系控制所述数据选择单元从所述寄存单元中选取相应的数据,并将选取的数据输出给所述M个蝶形运算单元。
4.如权利要求3所述的数据处理系统,其特征在于,所述运算控制器还用于若所述W小于2M,控制所述数据选择单元从所述寄存单元中选取W个数据,并将选取的数据输出给所述M个蝶形运算单元;
所述运算控制器还用于若所述W大于或者等于2M,控制所述数据选择单元每次从所述寄存单元中选取2M个数据,并将选取的数据输出给所述M个蝶形运算单元;
所述运算控制器还用于若所述H小于2M,控制所述数据选择单元从所述寄存单元中选取H个数据,并将选取的数据输出给所述M个蝶形运算单元;
所述运算控制器还用于若所述H大于或者等于2M,控制所述数据选择单元每次从所述寄存单元中选取2M个数据,并将选取的数据输出给所述M个蝶形运算单元。
5.如权利要求4所述的数据处理系统,其特征在于,所述数据选择单元包括数据选择仲裁逻辑和数据选择逻辑;
所述数据选择仲裁逻辑根据每次从所述寄存单元中选取的数据的个数,以及所述蝶形运算单元进行快速傅立叶变换或者快速傅立叶逆变换当前所处的级数,确定旋转因子;
所述数据选择逻辑根据所述旋转因子,确定输入所述M个蝶形运算单元中每个蝶形运算单元的两个数据的序号。
6.如权利要求3所述的数据处理系统,其特征在于,所述寄存单元包括第一寄存器集合和第二寄存器集合,所述第一寄存器集合和所述第二寄存器集合均包含X个寄存器组,一个寄存器组包括P个寄存器,一个寄存器组中的P个寄存器用于存储一行或一列特征向量,所述X和P均为正整数;
所述运算控制器用于向所述第一寄存器集合中存储X行或列特征向量;
所述运算控制器还用于控制所述数据选择单元从所述第一寄存器集合中选取相应的数据,并将选取的数据输出给所述M个蝶形运算单元,同时所述运算控制器向所述第二寄存器集合中存储除所述X行或列特征向量外的特征向量。
7.如权利要求6所述的数据处理系统,所述系统还包括寄存器接口;
所述寄存器接口用于获取寄存器配置信息,并将所述寄存器配置信息传输至所述运算控制器;
所述运算控制器用于根据所述寄存器配置信息,向所述第一寄存器集合和所述第二寄存器集合存储特征向量。
8.如权利要求1所述的数据处理系统,所述存储模块包括第一存储器、第二存储器以及第三存储器;
所述第一存储器用于存储所述第一结果、所述第三结果、所述第六结果;
所述第二存储器用于存储所述第二结果、第四结果、所述第五结果以及所述第七结果;
所述第三存储器用于存储所述第八结果。
9.如权利要求3所述的数据处理系统,所述系统还包括任务控制器,所述任务控制器用于在检测到相关度计算指令时,向所述运算控制器发送任务启动信号,所述任务启动信号用于指示所述运算控制器对输入数据进行快速傅立叶变换或者快速傅立叶逆变换。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911296752.6A CN111145075B (zh) | 2019-12-16 | 2019-12-16 | 数据处理系统 |
PCT/CN2020/108985 WO2021120646A1 (zh) | 2019-12-16 | 2020-08-13 | 一种数据处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911296752.6A CN111145075B (zh) | 2019-12-16 | 2019-12-16 | 数据处理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111145075A CN111145075A (zh) | 2020-05-12 |
CN111145075B true CN111145075B (zh) | 2023-05-12 |
Family
ID=70518468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911296752.6A Active CN111145075B (zh) | 2019-12-16 | 2019-12-16 | 数据处理系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111145075B (zh) |
WO (1) | WO2021120646A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111145075B (zh) * | 2019-12-16 | 2023-05-12 | 深圳云天励飞技术有限公司 | 数据处理系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103955447A (zh) * | 2014-04-28 | 2014-07-30 | 中国人民解放军国防科学技术大学 | 基于dsp芯片的fft加速器 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729463A (zh) * | 2008-10-24 | 2010-06-09 | 中兴通讯股份有限公司 | 一种实现快速傅立叶变换、反变换的硬件装置及方法 |
CN103714531A (zh) * | 2013-12-05 | 2014-04-09 | 南京理工大学 | 基于fpga的相位相关法图像配准系统及方法 |
EP3326082A4 (en) * | 2015-07-20 | 2018-10-17 | Okinawa Institute of Science and Technology School Corporation | 2d discrete fourier transform with simultaneous edge artifact removal for real-time applications |
CN108335330B (zh) * | 2017-12-31 | 2019-05-14 | 华中科技大学 | 一种图谱协同实时处理系统 |
CN109859178B (zh) * | 2019-01-18 | 2020-11-03 | 北京航空航天大学 | 一种基于fpga的红外遥感图像实时目标检测方法 |
CN111145075B (zh) * | 2019-12-16 | 2023-05-12 | 深圳云天励飞技术有限公司 | 数据处理系统 |
-
2019
- 2019-12-16 CN CN201911296752.6A patent/CN111145075B/zh active Active
-
2020
- 2020-08-13 WO PCT/CN2020/108985 patent/WO2021120646A1/zh active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103955447A (zh) * | 2014-04-28 | 2014-07-30 | 中国人民解放军国防科学技术大学 | 基于dsp芯片的fft加速器 |
Non-Patent Citations (1)
Title |
---|
王银花 ; 柴晓冬 ; 周成鹏 ; 冯兆艳 ; 左言胜 ; .基于分数傅里叶变换的混沌图像加密方法.计算机工程.(第12期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111145075A (zh) | 2020-05-12 |
WO2021120646A1 (zh) | 2021-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170116495A1 (en) | Convolution operation apparatus | |
US20080028013A1 (en) | Two-dimensional fast fourier transform calculation method and apparatus | |
US20170337129A1 (en) | Method for generating row transposed architecture based on two-dimensional fft processor | |
WO2019135873A1 (en) | Systems and methods for hardware-based pooling | |
JPH0738217B2 (ja) | 空間積和演算装置 | |
CN110796236B (zh) | 多样本多通道卷积神经网络池化的向量化实现方法 | |
CN111581595B (zh) | 一种矩阵乘法计算方法及计算电路 | |
CN111832718A (zh) | 芯片架构 | |
US6189021B1 (en) | Method for forming two-dimensional discrete cosine transform and its inverse involving a reduced number of multiplication operations | |
CN107680028B (zh) | 用于缩放图像的处理器和方法 | |
EP3835949A1 (en) | Hardware accelerated matrix manipulation operations using processor instructions | |
CN111145075B (zh) | 数据处理系统 | |
US11669733B2 (en) | Processing unit and method for computing a convolution using a hardware-implemented spiral algorithm | |
CN111028136B (zh) | 一种人工智能处理器处理二维复数矩阵的方法和设备 | |
CN112765540B (zh) | 数据处理方法、装置及相关产品 | |
CN112784951B (zh) | Winograd卷积运算方法及相关产品 | |
CN112116071A (zh) | 神经网络计算方法、装置、可读存储介质以及电子设备 | |
CN112639836A (zh) | 数据处理装置、电子设备和数据处理方法 | |
JPH09259115A (ja) | ビット−シリアルマトリックス転置のための超大規模集積回路 | |
CN116090518A (zh) | 基于脉动运算阵列的特征图处理方法、装置以及存储介质 | |
JP3277399B2 (ja) | 画像処理用汎用プロセッサ | |
US8503793B2 (en) | Correlation processing apparatus and medium readable by correlation processing apparatus | |
CN111831207A (zh) | 一种数据处理方法、装置及其设备 | |
US4987557A (en) | System for calculation of sum of products by repetitive input of data | |
CN113469333B (zh) | 执行神经网络模型的人工智能处理器、方法及相关产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |