CN111597886B - 一种用于指纹图像处理的硬件加速器、系统及加速方法 - Google Patents
一种用于指纹图像处理的硬件加速器、系统及加速方法 Download PDFInfo
- Publication number
- CN111597886B CN111597886B CN202010268499.XA CN202010268499A CN111597886B CN 111597886 B CN111597886 B CN 111597886B CN 202010268499 A CN202010268499 A CN 202010268499A CN 111597886 B CN111597886 B CN 111597886B
- Authority
- CN
- China
- Prior art keywords
- data
- hardware accelerator
- multiplication
- convolution
- euclidean distance
- 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
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000001133 acceleration Effects 0.000 title claims abstract description 22
- 238000004364 calculation method Methods 0.000 claims description 42
- 238000010606 normalization Methods 0.000 claims description 17
- 238000013500 data storage Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/12—Fingerprints or palmprints
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/781—On-chip cache; Off-chip memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- 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
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/12—Fingerprints or palmprints
- G06V40/1365—Matching; Classification
Abstract
本发明公开了一种用于指纹图像处理的硬件加速器,包括寄存器模块、乘法模块;所述寄存器模块,用于保存硬件加速器的参数配置和寄存配置,以及保存运算结果;所述乘法模块,用于在配置完成后根据已选择的运算方式开启硬件加速器进行运算;以及将运算完成后产生的中断信号传输至中心处理器以中断运算。本发明提供了一种用于指纹图像处理的硬件加速器、系统及加速方法,采用硬件形式实现图像算法,能够提高运算速度。
Description
技术领域
本发明涉及图像处理技术领域,尤其是涉及一种用于指纹图像处理的硬件加速器、系统及加速方法。
背景技术
现有的指纹识别算法,通过对指纹图像进行图像处理帮助识别指纹。卷积是指纹识别算法中一种最基本的图像识别运算。若利用软件方式实现图像识别运算,则需要SOC系统具有较高的运算频率,同时运算的存储空间和时间消耗较为严重。现有的技术方案,更多是使用特定规格的卷积神经网络的卷积算法方案,缺少卷积硬件加速器方案。
发明内容
针对上述技术问题,本发明提供了一种用于指纹图像处理的硬件加速器、系统及加速方法,采用硬件形式实现图像算法,能够提高运算速度。所述技术方案如下:
一种用于指纹图像处理的硬件加速器,包括寄存器模块、乘法模块;所述寄存器模块,用于保存硬件加速器的参数配置和寄存配置,以及保存运算结果;所述乘法模块,用于在配置完成后根据已选择的运算方式开启硬件加速器进行运算,以及将运算完成后产生的中断信号传输至中心处理器以中断运算。
作为优选方案,所述乘法模块还用于执行卷积运算,具体实现如下:
设置图像的尺寸、模板的尺寸和中心点位置、归一化处理的函数、输出数据的位宽和最低位,以及卷积计算的步长、卷积模板的各系数、卷积数据输入的起始地址、卷积计算数据输出的存储基地址;
清除硬件加速器的error&interrupt状态以执行卷积计算。
作为优选方案,所述乘法模块还用于执行欧氏距离运算,具体实现如下:
配置欧氏距离计算数据的深度和欧氏距离数据存储的起始地址;
清除硬件加速器的error&interrupt状态以执行欧氏距离计算;当欧氏距离运算完成后,欧氏距离的开根结果存储于寄存器模块。
作为优选方案,所述乘法模块还用于执行特定乘法运算,具体实现如下:
设置乘法数据的位宽、乘法运算的模式和数据深度、乘法运算输入数据的起始地址、乘法运算输出数据的存储基地址;
清除硬件加速器的error&interrupt状态以执行特定乘法运算。
作为优选方案,所述的用于指纹图像处理的硬件加速器,还包括归一化处理模块;
所述归一化处理模块用于:
先对运算结果进行饱和处理;
再记录本次卷积运算中的最大结果和最小结果;
最后根据输出数据类型配置和输出数据格式配置输出相应的数据。
为了解决相同的技术问题,本发明实施例提供了一种用于指纹图像处理的硬件加速器的系统,包括中心处理器、存储装置以及如上所述的用于指纹图像处理的硬件加速器;
所述用于指纹图像处理的硬件加速器通过寄存器总线与所述中心处理器相连,并且通过AHB总线与所述存储装置相连。
此外,本发明实施例提供了一种用于指纹图像处理的硬件加速方法,步骤包括:
选择一种运算方式对硬件加速器进行参数配置和寄存配置;
配置完成后,根据已选择的运算方式开启硬件加速器进行运算;
将运算完成后产生的中断信号传输至中心处理器以中断运算,并将运算结果保存至寄存器模块或存储装置。
作为优选方案,所述的用于指纹图像处理的硬件加速方法,若选择卷积运算方式对硬件加速器进行参数配置和寄存配置,则:
设置图像的尺寸、模板的尺寸和中心点位置、归一化处理的函数、输出数据的位宽和最低位,以及卷积计算的步长、卷积模板的各系数、卷积数据输入的起始地址、卷积计算数据输出的存储基地址;
清除硬件加速器的error&interrupt状态以执行卷积计算。
作为优选方案,所述的用于指纹图像处理的硬件加速方法,若选择欧氏距离运算方式对硬件加速器进行参数配置和寄存配置,则:
配置欧氏距离计算数据的深度和欧氏距离数据存储的起始地址;
清除硬件加速器的error&interrupt状态以执行欧氏距离计算;当欧氏距离运算完成后,欧氏距离的开根结果存储于寄存器模块。
作为优选方案,所述的用于指纹图像处理的硬件加速方法,若选择特定乘法运算方式对硬件加速器进行参数配置和寄存配置,则:
设置乘法数据的位宽、乘法运算的模式和数据深度、乘法运算输入数据的起始地址、乘法运算输出数据的存储基地址;
清除硬件加速器的error&interrupt状态以执行特定乘法运算。
相比于现有技术,本发明实施例具有如下有益效果:
本发明提供一种用于指纹图像处理的硬件加速器、系统及加速方法,根据运算算法对硬件加速器进行参数配置和寄存配置,让硬件加速器执行运算,从而实现根据图像算法执行图像识别运算,同时将运算完成后产生的中断信号传输至中心处理器以中断运算并将运算结果保存至寄存器,完成中断处理使中心处理器和硬件加速器释放性能,降低图像算法所需的存储空间和运算时间。
另外,本发明的用于指纹图像处理的硬件加速器、系统及加速方法,不但针对于指纹图像的处理,还可以广泛用于小图像的处理。能加快指纹图像的算法处理,采用硬件形式实现算法,相比起软件运算大大提高运算速度,同时在精度方面与软件运算相媲美。
附图说明
图1是本发明实施例中的一种用于指纹图像处理的硬件加速器的模块架构图;
图2是本发明实施例中的一种用于指纹图像处理的硬件加速器的系统的连接关系示意图;
图3是本发明实施例中的一种用于指纹图像处理的硬件加速方法的步骤流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,本发明提供一种示例性实施例,一种用于指纹图像处理的硬件加速器,包括寄存器模块、乘法模块;
所述寄存器模块,用于保存硬件加速器的参数配置和寄存配置,以及保存运算结果;
所述乘法模块,用于在配置完成后根据已选择的运算方式开启硬件加速器进行运算;以及将运算完成后产生的中断信号传输至中心处理器以中断运算。
在本实施例中,所述寄存器储存的配置信息包括图像尺寸配置、模板尺寸配置、模板中心点选择、归一化处理类型、模板步长选择、输入数据类型配置、输出数据类型配置、输出数据格式配置、模板系数配置、卷积运算结果存储地址的配置、卷积计算最大值、卷积计算最小值、硬件加速器中断与异常使能配置、硬件加速器中断与异常状态查询、欧式距离数据深度的配置、欧式距离开根结果的查询、第一种乘法运算数据深度的配置、第二种乘法运算数据深度的配置、乘法运算原始数据存储地址的配置、乘法运算结果存储地址的配置和硬件加速器运行功能配置。
在本实施例中,所述乘法模块具有多个乘法器单元,每个乘法单位为组合逻辑,兼容卷积运算、欧式距离运算和两种乘法运算,但卷积运算、欧式距离运算和两种特定乘法运算在同一时刻只会进行其中一种操作,不会有两种或多种操作同时进行的情况。
所述乘法模块还用于执行卷积运算:
设置图像的尺寸、模板的尺寸和中心点位置、归一化处理的函数、输出数据的位宽和最低位,以及卷积计算的步长、卷积模板的各系数、卷积数据输入的起始地址、卷积计算数据输出的存储基地址;
清除硬件加速器的error&interrupt状态以执行卷积计算。
可以理解的是,对硬件加速器进行配置并且清除硬件加速器的状态,使硬件加速器能完成卷积计算并产生中断信号的动作和配置硬件加速器为卷积计算。
在本实施例中,所述卷积运算,兼容256x256以下的图像运算,每个像素点为8-bit的数据,支持有符号数据输入或无符号数据输入。卷积运算的模板中心点可自由配置,且卷积模板的规格支持7x7、6x6、5x5、4x4、3x3、2x2和1x1的模板,选定中心点后边界自行补0。此外还支持步长为1和步长为2的两种选择。卷积运算结束后的归一化处理包括二值化处理和数据截取处理,输出数据有8-bit和16-bit两种格式,而且支持有符号数据输出或无符号数据输出的选择。
采用硬件方式实现卷积运算,则在存储空间和运算时间上有较大的缩减,能加快指纹识别算法的性能。
所述乘法模块还用于执行欧氏距离运算:
配置欧氏距离计算数据的深度和欧氏距离数据存储的起始地址;
清除硬件加速器的error&interrupt状态以执行欧氏距离计算;当欧氏距离运算完成后,欧氏距离的开根结果存储于寄存器模块。
可以理解的是,当欧氏距离运算完成后,硬件加速器会自动产生中断信号到CPU中,此时软件可以通过寄存器模块总线查询欧式距离的开根结果,欧氏距离的开根结果存储于寄存器模块中。
在本实施例中,可配置的欧式距离运算,支持8-bit有符号数据或8-bit无符号数据的输入,最大计算深度为256个数据,输出数据为16-bit无符号数据,且存在于寄存器模块中,运算数据采用拼接形式存储,即32-bit数据中,bit0到bit7为数据A0,bit8到bit15为数据B0,A0平方和B0平方相减得到C0平方,然后bit16到bit23为数据A1,bit24到bit31为数据B1,A1平方和B1平方相减得到C1平方,以此类推,完成深度为N(1≤N≤256)的N次运算,最后将C0、C1……CN-1相加,然后再开根得出最终结果,32-bit的数据中存放了4个数据,能运算2次。其公式如下:
所述乘法模块还用于执行特定乘法运算:
设置乘法数据的位宽、乘法运算的模式和数据深度、乘法运算输入数据的起始地址、乘法运算输出数据的存储基地址;
清除硬件加速器的error&interrupt状态以执行特定乘法运算。
具体实施时,所述特定乘法运算分为第一种特定乘法运算和第二种特定乘法运算;
所述第一种特定乘法运算,乘数A0和乘数B0相乘后得到结果C0,以此类推,完成深度为N(1≤N≤256)的N次运算,结果C0,C1……CN-1均为独立的运算结果,没有前后关联。该运算支持8-bit、16-bit和32-bit的数据输入,只支持无符号数据输入,输出数据分别为16-bit、32-bit和64-bit的无符号数据,最大计算深度为256个数据,且两个运算数据采用分开存储的形式,即乘数A和乘数B的存放地址是分开的,如数据为8-bit格式,则32-bit中bit7-bit0为A0/B0,bit15-bit8为A1/B1,bit23-bit16为A2/B2,bit31-bit24为A2/B2,下一个存储地址则按顺序存下去,如数据为16-bit格式,则32-bit中bit15-bit0为A0/B0,bit31-bit16为A1/B1,下一个存储地址则按顺序存下去,如数据为32-bit格式,则32-bit中bit31-bit0为A0/B0,下一个存储地址则按顺序存下去。其公式如下:
Cn=An×Bn(n∈[1,256])
所述第二种特定乘法运算,乘数A0和乘数B0相乘后得到结果C00,乘数A0和乘数B1相乘等到C01,乘数A0和乘数B2相乘等到C02,以此类推,完成深度为N(1≤N≤128)的N次运算,得到的结果是C00,C01,C02……C0N-1,以此类推,需要完成M轮(1≤M≤128)的N次运算,结果依次是C10,C11,C12……C1N-1……CM-1N-1,总共有M乘以N个结果,每个结果均为独立的运算结果,没有前后关联。该运算支持8-bit、16-bit和32-bit的数据输入,只支持无符号数据输入,输出数据分别为16-bit、32-bit和64-bit的无符号数据,最大计算深度均为128个数据,且两个运算数据采用分开存储的形式,即乘数A和乘数B的存放地址是分开的,如数据为8-bit格式,则32-bit中bit7-bit0为A0/B0,bit15-bit8为A1/B1,bit23-bit16为A2/B2,bit31-bit24为A2/B2,下一个存储地址则按顺序存下去,如数据为16-bit格式,则32-bit中bit15-bit0为A0/B0,bit31-bit16为A1/B1,下一个存储地址则按顺序存下去,如数据为32-bit格式,则32-bit中bit31-bit0为A0/B0,下一个存储地址则按顺序存下去。器公式如下:
Cnm=An*Bm(n∈[1,128];m∈[1,128])
执行第一种特定乘法运算时,先设置乘法数据的位宽,同时配置乘法的数据深度N,然后再配置硬件加速器的功能寄存器,清除硬件加速器的error&interrupt状态;
当特定距离运算完成后,硬件加速器会自动产生中断信号到CPU中,此时软件需要处理硬件加速器的中断情况,处理完中断后,CPU和硬件加速器释放,可以再进行下一次的操作。
执行第二种特定乘法运算时,先设置乘法数据的位宽,同时配置乘法的数据深度M和N,然后再配置硬件加速器的功能寄存器,清除硬件加速器的error&interrupt状态;
当特定距离运算完成后,硬件加速器会自动产生中断信号到CPU中,此时软件需要处理硬件加速器的中断情况,处理完中断后,CPU和硬件加速器释放,可以再进行下一次的操作。
此外,利用硬件形式实现欧氏距离运算和特定乘法的运算,能大大提高SOC系统的性能,解放大部分CPU的运算能力,让CPU能运行更多其他的程序。
所述用于指纹图像处理的硬件加速器,还包括数据预处理模块;
所述数据预处理模块,用于执行遵从AHB协议的数据读取操作、32-bit数据拆分、边界补0和传输数据至数据移位模块的操作。
所述用于指纹图像处理的硬件加速器,还包括数据移位模块;
所述数据移位模块,用于执行一个时钟周期移位多个8-bit数据至乘法模块的操作,且支持模块内部数据缓存的自动移位操作。
所述用于指纹图像处理的硬件加速器,还包括归一化处理模块;
所述归一化处理模块,用于执行卷积运算结果二值化或数据截取的操作;
所述归一化处理模块,在执行归一化处理前,
先对运算结果进行饱和处理;
再记录本次卷积运算中的最大结果和最小结果;
最后根据输出数据类型配置和输出数据格式配置输出相应的数据。
所述用于指纹图像处理的硬件加速器,还包括数据存储模块;
所述数据存储模块,用于执行遵从AHB协议的数据写入操作、运算数据合并与拆解的操作和产生中断信号的操作。
所述用于指纹图像处理的硬件加速器,还包括时钟控制模块;
所述时钟控制模块,用于控制硬件加速器各模块的时钟使能,起到降低功耗的作用。
请参见图2,本发明提供一种示例性实施例,一种用于指纹图像处理的硬件加速器的系统,包括中心处理器、存储装置以及如上所述的用于指纹图像处理的硬件加速器;
所述用于指纹图像处理的硬件加速器通过寄存器总线与所述中心处理器相连,并且通过AHB总线与所述存储装置相连。
在本实施例中,如图所示,所述中心处理器即CPU,所述存储装置提供存储空间。
在所述用于指纹图像处理的硬件加速器的系统中,接口上包括一组寄存器的读写信号,一组AHB协议的通讯信号和模块的中断信号。
请参见图3,本发明提供一种示例性实施例,一种用于指纹图像处理的硬件加速方法,步骤包括:
选择一种运算方式对硬件加速器进行参数配置和寄存配置;所述运算方式包括通用卷积运算、欧氏距离运算、特定乘法运算;
配置完成后,根据已选择的运算方式开启硬件加速器进行运算;
将运算完成后产生的中断信号传输至中心处理器以中断运算,并将运算结果保存至寄存器模块或存储装置。
所述用于指纹图像处理的硬件加速方法,若选择卷积运算方式对硬件加速器进行参数配置和寄存配置,则:
设置图像的尺寸、模板的尺寸和中心点位置、归一化处理的函数、输出数据的位宽和最低位,以及卷积计算的步长、卷积模板的各系数、卷积数据输入的起始地址、卷积计算数据输出的存储基地址;
清除硬件加速器的error&interrupt状态以执行卷积计算。
可以理解的是,对硬件加速器进行配置并且清除硬件加速器的状态,使硬件加速器能完成卷积计算并产生中断信号的动作和配置硬件加速器为卷积计算。
在本实施例中,所述卷积运算,兼容256x256以下的图像运算,每个像素点为8-bit的数据,支持有符号数据输入或无符号数据输入。卷积运算的模板中心点可自由配置,且卷积模板的规格支持7x7、6x6、5x5、4x4、3x3、2x2和1x1的模板,选定中心点后边界自行补0。此外还支持步长为1和步长为2的两种选择。卷积运算结束后的归一化处理包括二值化处理和数据截取处理,输出数据有8-bit和16-bit两种格式,而且支持有符号数据输出或无符号数据输出的选择。
采用硬件方式实现卷积运算,则在存储空间和运算时间上有较大的缩减,能加快指纹识别算法的性能。
所述用于指纹图像处理的硬件加速方法,若选择欧氏距离运算方式对硬件加速器进行参数配置和寄存配置,则:
配置欧氏距离计算数据的深度和欧氏距离数据存储的起始地址;
清除硬件加速器的error&interrupt状态以执行欧氏距离计算;当欧氏距离运算完成后,欧氏距离的开根结果存储于寄存器模块。
可以理解的是,当欧氏距离运算完成后,硬件加速器会自动产生中断信号到CPU中,此时软件可以通过寄存器模块总线查询欧式距离的开根结果,欧氏距离的开根结果存储于寄存器模块中。
在本实施例中,可配置的欧式距离运算,支持8-bit有符号数据或8-bit无符号数据的输入,最大计算深度为256个数据,输出数据为16-bit无符号数据,且存在于寄存器模块中,运算数据采用拼接形式存储,即32-bit数据中,bit0到bit7为数据A0,bit8到bit15为数据B0,A0平方和B0平方相减得到C0平方,然后bit16到bit23为数据A1,bit24到bit31为数据B1,A1平方和B1平方相减得到C1平方,以此类推,完成深度为N(1≤N≤256)的N次运算,最后将C0、C1……CN-1相加,然后再开根得出最终结果,32-bit的数据中存放了4个数据,能运算2次。其公式如下:
所述用于指纹图像处理的硬件加速方法,若选择特定乘法运算方式对硬件加速器进行参数配置和寄存配置,则:
设置乘法数据的位宽、乘法运算的模式和数据深度、乘法运算输入数据的起始地址、乘法运算输出数据的存储基地址;
清除硬件加速器的error&interrupt状态以执行特定乘法运算。
具体实施时,所述特定乘法运算分为第一种特定乘法运算和第二种特定乘法运算;
所述第一种特定乘法运算,乘数A0和乘数B0相乘后得到结果C0,以此类推,完成深度为N(1≤N≤256)的N次运算,结果C0,C1……CN-1均为独立的运算结果,没有前后关联。该运算支持8-bit、16-bit和32-bit的数据输入,只支持无符号数据输入,输出数据分别为16-bit、32-bit和64-bit的无符号数据,最大计算深度为256个数据,且两个运算数据采用分开存储的形式,即乘数A和乘数B的存放地址是分开的,如数据为8-bit格式,则32-bit中bit7-bit0为A0/B0,bit15-bit8为A1/B1,bit23-bit16为A2/B2,bit31-bit24为A2/B2,下一个存储地址则按顺序存下去,如数据为16-bit格式,则32-bit中bit15-bit0为A0/B0,bit31-bit16为A1/B1,下一个存储地址则按顺序存下去,如数据为32-bit格式,则32-bit中bit31-bit0为A0/B0,下一个存储地址则按顺序存下去。其公式如下:
Cn=An×Bn(n∈[1,256])
所述第二种特定乘法运算,乘数A0和乘数B0相乘后得到结果C00,乘数A0和乘数B1相乘等到C01,乘数A0和乘数B2相乘等到C02,以此类推,完成深度为N(1≤N≤128)的N次运算,得到的结果是C00,C01,C02……C0N-1,以此类推,需要完成M轮(1≤M≤128)的N次运算,结果依次是C10,C11,C12……C1N-1……CM-1N-1,总共有M乘以N个结果,每个结果均为独立的运算结果,没有前后关联。该运算支持8-bit、16-bit和32-bit的数据输入,只支持无符号数据输入,输出数据分别为16-bit、32-bit和64-bit的无符号数据,最大计算深度均为128个数据,且两个运算数据采用分开存储的形式,即乘数A和乘数B的存放地址是分开的,如数据为8-bit格式,则32-bit中bit7-bit0为A0/B0,bit15-bit8为A1/B1,bit23-bit16为A2/B2,bit31-bit24为A2/B2,下一个存储地址则按顺序存下去,如数据为16-bit格式,则32-bit中bit15-bit0为A0/B0,bit31-bit16为A1/B1,下一个存储地址则按顺序存下去,如数据为32-bit格式,则32-bit中bit31-bit0为A0/B0,下一个存储地址则按顺序存下去。器公式如下:
Cnm=An*Bm(n∈[1,128];m∈[1,128])
执行第一种特定乘法运算时,先设置乘法数据的位宽,同时配置乘法的数据深度N,然后再配置硬件加速器的功能寄存器,清除硬件加速器的error&interrupt状态;
当特定距离运算完成后,硬件加速器会自动产生中断信号到CPU中,此时软件需要处理硬件加速器的中断情况,处理完中断后,CPU和硬件加速器释放,可以再进行下一次的操作。
执行第二种特定乘法运算时,先设置乘法数据的位宽,同时配置乘法的数据深度M和N,然后再配置硬件加速器的功能寄存器,清除硬件加速器的error&interrupt状态;
当特定距离运算完成后,硬件加速器会自动产生中断信号到CPU中,此时软件需要处理硬件加速器的中断情况,处理完中断后,CPU和硬件加速器释放,可以再进行下一次的操作。
此外,利用硬件形式实现欧氏距离运算和特定乘法的运算,能大大提高SOC系统的性能,解放大部分CPU的运算能力,让CPU能运行更多其他的程序。
本发明提供一种用于指纹图像处理的硬件加速器、系统及加速方法,根据运算算法对硬件加速器进行参数配置和寄存配置,让硬件加速器执行运算,从而实现根据图像算法执行图像识别运算,同时将运算完成后产生的中断信号传输至中心处理器以中断运算并将运算结果保存至寄存器,完成中断处理使中心处理器和硬件加速器释放性能,降低图像算法所需的存储空间和运算时间。
另外,本发明的用于指纹图像处理的硬件加速器、系统及加速方法,不但针对于指纹图像的处理,还可以广泛用于小图像的处理。能加快指纹图像的算法处理,采用硬件形式实现算法,相比起软件运算大大提高运算速度,同时在精度方面与软件运算相媲美。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (4)
1.一种用于指纹图像处理的硬件加速器,其特征在于,包括寄存器模块和乘法模块;
所述寄存器模块,用于保存硬件加速器的参数配置和寄存配置,以及保存运算结果;
所述乘法模块,用于在配置完成后根据已选择的运算方式开启硬件加速器进行运算,以及将运算完成后产生的中断信号传输至中心处理器以中断运算;
所述乘法模块还用于执行卷积运算,具体实现如下:设置图像的尺寸、模板的尺寸和中心点位置、归一化处理的函数、输出数据的位宽和最低位,以及卷积计算的步长、卷积模板的各系数、卷积数据输入的起始地址、卷积计算数据输出的存储基地址;清除硬件加速器的error interrupt状态以执行卷积计算;
所述乘法模块还用于执行欧氏距离运算,具体实现如下:配置欧氏距离计算数据的深度和欧氏距离数据存储的起始地址;清除硬件加速器的error interrupt状态以执行欧氏距离计算;当欧氏距离运算完成后,欧氏距离的开根号结果存储于寄存器模块;
所述乘法模块还用于执行乘法运算,具体实现如下:设置乘法数据的位宽、乘法运算的模式和数据深度、乘法运算输入数据的起始地址、乘法运算输出数据的存储基地址;清除硬件加速器的error interrupt状态以执行乘法运算。
2.如权利要求1所述的用于指纹图像处理的硬件加速器,其特征在于,还包括归一化处理模块;
所述归一化处理模块用于:
先对运算结果进行饱和处理;
再记录本次卷积运算中的最大结果和最小结果;
最后根据输出数据类型配置和输出数据格式配置输出相应的数据。
3.一种用于指纹图像处理的硬件加速器的系统,其特征在于,包括中心处理器、存储装置以及如权利要求1至2任一所述的用于指纹图像处理的硬件加速器;
所述用于指纹图像处理的硬件加速器通过寄存器总线与所述中心处理器相连,并且通过AHB总线与所述存储装置相连。
4.一种用于指纹图像处理的硬件加速方法,其特征在于,步骤包括:
选择一种运算方式对硬件加速器进行参数配置和寄存配置;
配置完成后,根据已选择的运算方式开启硬件加速器进行运算;
将运算完成后产生的中断信号传输至中心处理器以中断运算,并将运算结果保存至寄存器模块或存储装置;
若选择卷积运算方式对硬件加速器进行参数配置和寄存配置,则:设置图像的尺寸、模板的尺寸和中心点位置、归一化处理的函数、输出数据的位宽和最低位,以及卷积计算的步长、卷积模板的各系数、卷积数据输入的起始地址、卷积计算数据输出的存储基地址;清除硬件加速器的error interrupt状态以执行卷积计算;
若选择欧氏距离运算方式对硬件加速器进行参数配置和寄存配置,则:配置欧氏距离计算数据的深度和欧氏距离数据存储的起始地址;清除硬件加速器的error interrupt状态以执行欧氏距离计算;当欧氏距离运算完成后,欧氏距离的开根号结果存储于寄存器模块;
若选择乘法运算方式对硬件加速器进行参数配置和寄存配置,则:设置乘法数据的位宽、乘法运算的模式和数据深度、乘法运算输入数据的起始地址、乘法运算输出数据的存储基地址;清除硬件加速器的error interrupt状态以执行乘法运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010268499.XA CN111597886B (zh) | 2020-04-07 | 2020-04-07 | 一种用于指纹图像处理的硬件加速器、系统及加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010268499.XA CN111597886B (zh) | 2020-04-07 | 2020-04-07 | 一种用于指纹图像处理的硬件加速器、系统及加速方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111597886A CN111597886A (zh) | 2020-08-28 |
CN111597886B true CN111597886B (zh) | 2023-11-07 |
Family
ID=72188679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010268499.XA Active CN111597886B (zh) | 2020-04-07 | 2020-04-07 | 一种用于指纹图像处理的硬件加速器、系统及加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111597886B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000250895A (ja) * | 1999-03-01 | 2000-09-14 | Sanyo Electric Co Ltd | データ処理装置 |
EP1345168A2 (en) * | 2002-03-12 | 2003-09-17 | Sun Microsystems, Inc. | Dynamically adjusting sample density and/or number of rendering passes in a graphics system |
CN102339386A (zh) * | 2011-08-16 | 2012-02-01 | 杭州晟元芯片技术有限公司 | 一种嵌入式指纹特征提取加速方法 |
CN103777918A (zh) * | 2012-10-18 | 2014-05-07 | 苏州简约纳电子有限公司 | 一种硬件加速器 |
CN108681984A (zh) * | 2018-07-26 | 2018-10-19 | 珠海市微半导体有限公司 | 一种3*3卷积算法的加速电路 |
-
2020
- 2020-04-07 CN CN202010268499.XA patent/CN111597886B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000250895A (ja) * | 1999-03-01 | 2000-09-14 | Sanyo Electric Co Ltd | データ処理装置 |
EP1345168A2 (en) * | 2002-03-12 | 2003-09-17 | Sun Microsystems, Inc. | Dynamically adjusting sample density and/or number of rendering passes in a graphics system |
CN102339386A (zh) * | 2011-08-16 | 2012-02-01 | 杭州晟元芯片技术有限公司 | 一种嵌入式指纹特征提取加速方法 |
CN103777918A (zh) * | 2012-10-18 | 2014-05-07 | 苏州简约纳电子有限公司 | 一种硬件加速器 |
CN108681984A (zh) * | 2018-07-26 | 2018-10-19 | 珠海市微半导体有限公司 | 一种3*3卷积算法的加速电路 |
Also Published As
Publication number | Publication date |
---|---|
CN111597886A (zh) | 2020-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107895191B (zh) | 一种信息处理方法及相关产品 | |
CN107729989B (zh) | 一种用于执行人工神经网络正向运算的装置及方法 | |
US8648621B2 (en) | Counter operation in a state machine lattice | |
TWI515668B (zh) | 用於一狀態機中偵測之方法及系統 | |
JP6154824B2 (ja) | ステートマシンラチスにおけるブール型論理 | |
US8680888B2 (en) | Methods and systems for routing in a state machine | |
CN110163363B (zh) | 一种计算装置及方法 | |
CN111651384B (zh) | 寄存器的读写方法、芯片、子系统、寄存器组及终端 | |
US20220083857A1 (en) | Convolutional neural network operation method and device | |
CN112488908A (zh) | 一种计算装置、计算方法、存储介质及终端 | |
CN112966725A (zh) | 匹配模板图像的方法、装置及终端设备 | |
CN113918233A (zh) | 一种ai芯片控制方法、电子设备及ai芯片 | |
CN111597886B (zh) | 一种用于指纹图像处理的硬件加速器、系统及加速方法 | |
CN111222558A (zh) | 图像处理方法及存储介质 | |
JP2009070226A (ja) | マッチング装置 | |
CN114090466A (zh) | 一种指令处理装置、方法、计算机设备及存储介质 | |
CN111178373B (zh) | 运算方法、装置及相关产品 | |
CN113591031A (zh) | 低功耗矩阵运算方法及装置 | |
CN111260070B (zh) | 运算方法、装置及相关产品 | |
CN112395003A (zh) | 运算方法、装置及相关产品 | |
Ghaffari et al. | A Fully Pipelined FPGA Architecture for Multiscale BRISK Descriptors With a Novel Hardware-Aware Sampling Pattern | |
CN111401536A (zh) | 运算方法、装置及相关产品 | |
CN115600652B (zh) | 卷积神经网络处理装置、高速目标探测方法以及设备 | |
CN112465007B (zh) | 目标识别模型的训练方法、目标识别方法及终端设备 | |
CN110909871B (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 | ||
CB02 | Change of applicant information |
Address after: 510555 No. 107 Bowen Road, Huangpu District, Guangzhou, Guangdong Applicant after: Guangzhou Ankai Microelectronics Co.,Ltd. Address before: Unit 301, 302, 303, 3 / F, C1 area, 182 science Avenue, Science City, Guangzhou hi tech Industrial Development Zone, Guangzhou, Guangdong 510000 Applicant before: ANYKA (GUANGZHOU) MICROELECTRONICS TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |