本发明涉及数字图像处理技术领域,具体地说是可变参数的数字图像多尺度卷积处理器及其实现方法。
背景技术:
在数字图像处理的实际应用中,对其进行卷积处理是一种非常重要的数字图像预处理方法。根据卷积参数的不同,它可以用来完成数字图像去噪、增强、边缘提取等底层的图像处理操作。而在对数字图像进行卷积处理时会涉及到大量乘法、加法和除法运算,如何保证卷积处理的实时性是一个非常关键的问题,它将直接影响数字图像处理的后续环节。
现有的数字图像卷积处理的实现方式主要有以下三种:
第一种实现方式是以高性能微处理器为核心,主要以高性能数字信号处理器(dsp)为代表,这种处理方式首先是将接收到的数字图像以数据阵列的方式存储起来,待接收完一幅完整的数字图像数据后再通过软件方式完成数字图像的卷积处理,这种实现方式软件开销较高,延时大,难以适应对数字图像处理实时性要求较高的场合。
第二种实现方式是采用专用的数字图像卷积处理器,这种处理方式通常延时较小,可以适应较高实时性的数字图像处理场合,但是这种处理方式通常卷积参数固定,其灵活性和可扩展性较差。
第三种处理方式是以现场可编程门阵列(fpga)或复杂可编程逻辑器件(cpld)为核心,它在进行卷积处理时无需存储整幅数字图像数据,只需存储符合卷积模板尺寸大小的数字图像数据即可进行相应的卷积处理,延时相对较小,可以适应一些实时的数字图像处理场合,但是这种实现方式在需要修改卷积参数以适应不同的应用场景时或者需要处理同一数字图像不同尺度下的卷积任务时,则需要修改现场可编程门阵列(fpga)或复杂可编程逻辑器件(cpld中的逻辑程序,费时费力。
技术实现要素:
针对现有技术的不足,本发明提供一种可变参数的数字图像多尺度卷积处理器及其实现方法,可以现场修改卷积参数而无需重新编程以适应不同的应用场景,可以同时并行实现同一数字图像在多个尺度下的卷积处理,具有较高的实时性。
本发明为实现上述目的所采用的技术方案是:
一种可变参数的数字图像多尺度卷积处理器,包括:
通讯单元,一端连接主控单元,另一端连接上位机或微处理器,接收上位机或微处理器的指令信息和参数信息,对指令信息和参数信息进行解析,发送到主控单元;
主控单元,连接卷积参数存储单元,更新卷积参数存储单元中的卷积参数,在使能多尺度卷积运算单元中的卷积运算子单元后,读取卷积参数存储单元中的卷积参数并传递给对应的卷积运算子单元;连接数字图像数据缓存单元,发送使能信号给数字图像数据缓存单元;连接多尺度卷积运算单元,发送使能信号给多尺度卷积运算单元,使能多尺度卷积运算单元中的卷积运算子单元;
数字图像数据缓存单元,连接多尺度卷积运算单元,接收到主控单元的使能信号后,接收数字图像数据,生成数据流窗口,发送到多尺度卷积运算单元;
多尺度卷积运算单元,包括若干个卷积运算子单元;所述卷积运算子单元根据接收到主控单元发送的更新后的卷积参数和数字图像数据缓存单元发送的数据流窗口中对应的数字图像数据,进行卷积运算,并将卷积运算后的数字图像数据输出;
卷积参数存储单元,连接主控单元,用于对卷积参数进行存储,在收到调取指令后向主控单元发送卷积参数。
所述数字图像数据缓存单元包括若干个并联的行,每一行串联有若干个且数量相等的触发器,前一个触发器的输出作为后一个触发器的输入;在除了第一行的其余行的首个触发器前设置一个基于随机访问存储器的移位寄存器;输入的数字图像数据作为第一行的首个触发器和第二行的基于随机访问存储器的移位寄存器的输入;每一行基于随机访问存储器的移位寄存器的输出作为该行首个触发器的输入以及下一行基于随机访问存储器的移位寄存器的输入;每一行的各个触发器可以分别输出该行不同缓存深度的数字图像数据。
数据流窗口为数字图像数据缓存单元中每一行中各个触发器输出的数字图像数据所形成的数字图像数据阵列。
所述卷积运算子单元包括:
若干乘法器,由所述若干乘法器组成乘法器阵列,每个乘法器的输入对应为数据流窗口中的数字图像数据和卷积参数中的卷积系数,输出为对应的数字图像数据和卷积系数的乘积结果;
若干列累加器,由若干列累加器组成一行列累加器,每个列累加器与乘法器阵列的中的一列相对应,每个列累加器的输入为其所对应乘法器阵列中各个列的乘积结果,输出为列累加结果;
一行累加器,输入为列累加结果,输出为行并行累加结果;
一除法器,输入为行并行累加结果和被除系数,输出为卷积处理后的结果。
所述卷积运算子单元的个数与卷积运算时需要的尺度个数相同。
所述卷积参数存储单元包括若干同步双端口随机访问存储器,每个同步双端口随机访问存储器负责存储一个卷积尺度所对应的卷积参数,所述同步双端口随机访问存储器的输入包括读地址总线、写地址总线、写数据总线、写使能、写时钟、读时钟和读使能,输出为读数据总线。
所述同步双端口随机访问存储器的个数与卷积运算时需要的尺度个数相同。
所述卷积参数包括使能信息、对应的卷积系数以及对应的卷积系数之和。
所述通讯单元在数据接收过程中,首先进行码流接收,将接收到的码流进行数据解码,再将解码后的数据进行数据校验,输出校验后的数据;所述通讯单元在数据发包过程中,首先进行数据打包,将数据包进行数据编码,再将编码后的数据包进行码流发送,输出码流。
一种数字图像多尺度卷积处理的实现方法,其特征在于,包括:
通讯单元接收上位机或微处理器的指令信息和参数信息,对指令信息和参数信息进行解析,发送到主控单元;主控单元更新卷积参数存储单元中的卷积参数,使能数字图像数据缓存单元,开始接收数字图像数据并生成数据流窗口;读取卷积参数存储单元中的卷积参数传递给对应的卷积运算子单元;使能多尺度卷积运算单元中的卷积运算子单元,进行卷积运算,并将卷积运算后的数字图像数据输出。
本发明具有以下有益效果及优点:
1.本发明能够同时并行实现同一数字图像在多个尺度下的卷积处理并获得相应的卷积结果;
2.本发明中各尺度的卷积参数可以由上位机或微处理器进行动态配置,支持多种卷积模型,无需重新编程就可以适应不同的应用场景,使用灵活方便;
3.本发明的卷积处理延迟很小,可广泛应用于目标识别、目标跟踪等对数字图像处理实时性要求较高的系统中;
4.本发明中的所有组成单元均由现场可编程门阵列(fpga)中的可编程资源实现,具有较高的集成度和较好的可移植性。
附图说明
图1为可变参数的数字图像多尺度卷积处理器的组成框图;
图2为数字图像数据缓存单元的组成框图;
图3为多尺度卷积运算单元的组成框图;
图4为卷积运算子单元的乘法器阵列示意图;
图5为卷积运算子单元的列累加器阵列示意图;
图6为卷积运算子单元的行累加器示意图;
图7为卷积运算子单元的除法器;
图8为卷积参数存储单元的组成框图;
图9为通讯单元的组成框图;
图10为可变参数的数字图像多尺度卷积处理器的工作流程图。
具体实施方式
下面结合附图及实施例对本发明做进一步的详细说明。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明。但本发明能够以很多不同于在此描述的其他方式来实施,本领域技术人员可以在不违背发明内涵的情况下做类似改进,因此本发明不受下面公开的具体实施的限制。
需要说明的是,当元件被称为“设置于”另一个元件,它可能直接在另一个元件上,或也可以存在居中的元件。当一个元件被称为是“连接”另一个元件,它可以直接连接到另一个元件或者可能同时存在居中元件。本文所使用的属于“前”、“后”、“左”、“右”以及类似的标书只是为了说明的目的,并不表示唯一的实施方式。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
图1所示为本发明的组成框图。
按照其功能组成划分为五个单元,其中的主控单元u3通过通讯单元u5与上位机或微处理器相连,它用于完成可变参数的数字图像多尺度卷积处理器的核心控制。首先,它根据通讯单元u5解析得到的上位机或微处理器指令信息和参数信息完成对卷积参数存储单元u4中卷积参数的更新;然后,主控单元u3打开数字图像数据缓存单元u1开始接收数字图像数据并生成数据流窗口;接着,主控单元u3根据接收到的上位机或者微处理器的指令信息使能多尺度卷积运算单元u2中相关的卷积运算子单元,并读取卷积参数存储单元u4中的卷积参数传递给对应的卷积运算子单元;最后各个卷积运算子单元开始运算并将卷积处理后的结果输出给下一级数字图像处理环节,下面详细介绍各个组成单元的具体实施方式。
如图2所示是数字图像数据缓存单元u1的组成框图。
这里按照最大尺度卷积所对应的卷积模板尺寸设计一个m×n的数字图像数据缓冲单元,它由m×n个d触发器矩阵和m-1个基于随机访问存储器(ram)的移位寄存器组成。输入的数字图像数据首先作为d触发器11和基于随机访问存储器(ram)的移位寄存器1的输入,分别完成单个像素点和一行数字图像数据的缓存;然后d触发器11的输出再作为d触发器12的输入,依次类推,完成第一行数字图像数据的缓存;与此同时基于随机访问存储器(ram)的移位寄存器1的输出再作为基于随机访问存储器(ram)的移位寄存器2和d触发器21的输入,然后d触发器21的输出再作为d触发器22的输入,依次类推,完成第二行数字图像数据的缓存;这样,输入的数字图像数据在经过如图2所示的数字图像数据缓存单元u1之后,即可完成对输入数字数据缓存同时生成一个m×n的数据流窗口。
图3所示为多尺度卷积运算单元的组成框图。
它根据卷积运算时的尺度不同划分为多个独立的卷积运算子单元,每个独立的卷积运算单元由若干乘法器、列累加器、行累加器和除法器组成。每个卷积运算子单元在卷积运算时对应一个数据流窗口,在多尺度卷积运算时由主控单元u3根据接收到的指令信息使能相关的卷积运算子单元并负责更新它们的卷积参数;然后被使能的卷积运算子单元在数字图像数据缓存单元u1中抽取各自所需的数据流窗口进行卷积运算,这样数据流窗口中的数字图像数据将按照给定时序进行相对应的乘法、列累加、行累加和除法运算,最后得到卷积处理结果并进行输出。多尺度卷积运算单元中各个卷积运算子单元的构成基本类似,这里以一个尺度为s的卷积运算子单元为例来说明它们的具体构成。这里假设尺度s所对应的卷积模板尺寸为j×k(其中j≤m,k≤n),它由四部分构成,分别如图4、图5、图6和图7所示。
图4所示为卷积运算子单元的乘法器阵列。
它包含有j×k个乘法器。在卷积运算时,从数字图像数据缓存单元u1中按照s尺度所对应的模板尺寸抽取一个j×k数据流窗口,并将抽取到的数据按照给定的时序节拍和相对应的卷积系数进行乘法操作,得到j×k个乘积结果。
图5所示为卷积运算子单元的列累加器阵列。
它包含有k个列累加器。在卷积运算时,这些列累加器将由乘法器阵列得到的j×k个乘积结果分别按照列进行累加,得到k个列累加结果。
图6所示为卷积运算子单元的行累加器。
它包含有1个行累加器。在卷积运算时,行累加器将由列累加器阵列得到的k个列累加结果再按行进行累加,得到1个行累加结果。
图7所示为卷积运算子单元的除法器。
它包含有1个可变参数除法器。在卷积运算时,除法器将行累加结果作为除数,卷积参数中的卷积系数之和作为被除数,得到最终的卷积运算结果。
卷积参数存储单元u4的组成框图如图8所示,它由多个同步双端口随机访问存储器(sdpram)组成,这里设定卷积运算时所需的尺度个数为l,则同步双端口随机访问存储器(sdpram)的数量也为l,每个同步双端口随机访问存储器(sdpram)负责存储一个卷积尺度的所对应的参数,这些参数包括各个尺度的使能信息及其所对应的卷积系数和卷积系数之和,这些同步双端口随机访问存储器(sdpram)除了包含读写地址总线和数据总线外,还包括读写使能和读写时钟。
主控单元u3通过通讯单元u5与上位机或者微处理器相连,通讯单元u5除了提供与上位机或微处理器相匹配的电气接口之外,还需完成主控单元u3与上位机或微处理器之间约定的通讯协议功能,实现两者之间的信息交互。通讯单元u5中的通讯协议功能按其数据流向不同划为数据接收功能和数据发送功能,其组成框图如图9所示,其中的数据接收功能包括码流接收、数据解码和数据校验三个模块,数据发送功能包括数据打包、数据编码和码流发送三个模块,通讯单元u5中的这些模块均由现场可编程门阵列(fpga)中的可编程逻辑资源实现。
本发明的工作流程如图10所示,其具体工作过程如下所述:
首先,由主控单元u3完成可变参数的数字图像多尺度卷积处理器中其它各个处理单元的上电初始化工作。
其次,由上位机或者微处理器根据具体的任务需求,通过通讯单元u5向主控单元u3传递需要进行多尺度卷积运算时所需的相关参数信息,主控单元u3根据通讯协议解析出所需卷积处理的卷积尺度的使能信息及其所对应的卷积系数及卷积系数之和信息,同时将这些参数信息写入卷积参数存储单元u4所对应的同步双端口随机存储器(sdpram)中。
然后,主控单元u3使能数字图像数据缓存单元u1并根据输入数字图像数据的时序信息生成一个最大卷积尺度对应的m×n的数据流窗口;与此同时启动多尺度卷积运算单元u2中相关的卷积运算子单元,并根据参数更新后的卷积系数及卷积系数之和完成相应的卷积运算,最后将卷积运算后的数字图像数据输出,实现同一数字图像在一个或多个尺度下的并行卷积处理。
最后,主控单元u3汇集其它各个处理单元的状态信息并通过通讯单元u5传递给上位机或微处理器,实现对各个处理单元的状态监控。
1.一种可变参数的数字图像多尺度卷积处理器,其特征在于,包括:
通讯单元,一端连接主控单元,另一端连接上位机或微处理器,接收上位机或微处理器的指令信息和参数信息,对指令信息和参数信息进行解析,发送到主控单元;
主控单元,连接卷积参数存储单元,更新卷积参数存储单元中的卷积参数,在使能多尺度卷积运算单元中的卷积运算子单元后,读取卷积参数存储单元中的卷积参数并传递给对应的卷积运算子单元;连接数字图像数据缓存单元,发送使能信号给数字图像数据缓存单元;连接多尺度卷积运算单元,发送使能信号给多尺度卷积运算单元,使能多尺度卷积运算单元中的卷积运算子单元;
数字图像数据缓存单元,连接多尺度卷积运算单元,接收到主控单元的使能信号后,接收数字图像数据,生成数据流窗口,发送到多尺度卷积运算单元;
多尺度卷积运算单元,包括若干个卷积运算子单元;所述卷积运算子单元根据接收到主控单元发送的更新后的卷积参数和数字图像数据缓存单元发送的数据流窗口中对应的数字图像数据,进行卷积运算,并将卷积运算后的数字图像数据输出;
卷积参数存储单元,连接主控单元,用于对卷积参数进行存储,在收到调取指令后向主控单元发送卷积参数。
2.根据权利要求1所述的可变参数的数字图像多尺度卷积处理器,其特征在于:所述数字图像数据缓存单元包括若干个并联的行,每一行串联有若干个且数量相等的触发器,前一个触发器的输出作为后一个触发器的输入;在除了第一行的其余行的首个触发器前设置一个基于随机访问存储器的移位寄存器;输入的数字图像数据作为第一行的首个触发器和第二行的基于随机访问存储器的移位寄存器的输入;每一行基于随机访问存储器的移位寄存器的输出作为该行首个触发器的输入以及下一行基于随机访问存储器的移位寄存器的输入;每一行的各个触发器可以分别输出该行不同缓存深度的数字图像数据。
3.根据权利要求2所述的可变参数的数字图像多尺度卷积处理器,其特征在于:数据流窗口为数字图像数据缓存单元中每一行中各个触发器输出的数字图像数据所形成的数字图像数据阵列。
4.根据权利要求1所述的可变参数的数字图像多尺度卷积处理器,其特征在于:所述卷积运算子单元包括:
若干乘法器,由所述若干乘法器组成乘法器阵列,每个乘法器的输入对应为数据流窗口中的数字图像数据和卷积参数中的卷积系数,输出为对应的数字图像数据和卷积系数的乘积结果;
若干列累加器,由若干列累加器组成一行列累加器,每个列累加器与乘法器阵列的中的一列相对应,每个列累加器的输入为其所对应乘法器阵列中各个列的乘积结果,输出为列累加结果;
一行累加器,输入为列累加结果,输出为行并行累加结果;
一除法器,输入为行并行累加结果和被除系数,输出为卷积处理后的结果。
5.根据权利要求1或4所述的可变参数的数字图像多尺度卷积处理器,其特征在于:所述卷积运算子单元的个数与卷积运算时需要的尺度个数相同。
6.根据权利要求1所述的可变参数的数字图像多尺度卷积处理器,其特征在于:所述卷积参数存储单元包括若干同步双端口随机访问存储器,每个同步双端口随机访问存储器负责存储一个卷积尺度所对应的卷积参数,所述同步双端口随机访问存储器的输入包括读地址总线、写地址总线、写数据总线、写使能、写时钟、读时钟和读使能,输出为读数据总线。
7.根据权利要求6所述的可变参数的数字图像多尺度卷积处理器,其特征在于:所述同步双端口随机访问存储器的个数与卷积运算时需要的尺度个数相同。
8.根据权利要求1或6所述的可变参数的数字图像多尺度卷积处理器,其特征在于:所述卷积参数包括使能信息、对应的卷积系数以及对应的卷积系数之和。
9.根据权利要求1所述的可变参数的数字图像多尺度卷积处理器,其特征在于:所述通讯单元在数据接收过程中,首先进行码流接收,将接收到的码流进行数据解码,再将解码后的数据进行数据校验,输出校验后的数据;所述通讯单元在数据发包过程中,首先进行数据打包,将数据包进行数据编码,再将编码后的数据包进行码流发送,输出码流。
10.一种基于权利要求1~9任一项所述卷积处理器的数字图像多尺度卷积处理的实现方法,其特征在于,包括:
通讯单元接收上位机或微处理器的指令信息和参数信息,对指令信息和参数信息进行解析,发送到主控单元;主控单元更新卷积参数存储单元中的卷积参数,使能数字图像数据缓存单元,开始接收数字图像数据并生成数据流窗口;读取卷积参数存储单元中的卷积参数传递给对应的卷积运算子单元;使能多尺度卷积运算单元中的卷积运算子单元,进行卷积运算,并将卷积运算后的数字图像数据输出。
技术总结