CN108053361B - 多互连视觉处理器及采用其的图像处理方法 - Google Patents
多互连视觉处理器及采用其的图像处理方法 Download PDFInfo
- Publication number
- CN108053361B CN108053361B CN201711498263.XA CN201711498263A CN108053361B CN 108053361 B CN108053361 B CN 108053361B CN 201711498263 A CN201711498263 A CN 201711498263A CN 108053361 B CN108053361 B CN 108053361B
- Authority
- CN
- China
- Prior art keywords
- processor
- pixel
- module
- array module
- row
- 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
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
一种多互连视觉处理器及其处理方法,该视觉处理器包括精简指令集(RISC)处理器模块、系统总线模块、图像数据存储器模块、像素单元(PE)处理器阵列模块、行处理器(RP)阵列模块。其中,所有模块都与系统总线模块连接,精简指令集处理器模块可以通过系统总线模块控制其它模块的工作;图像数据存储器模块、像素单元处理器阵列模块和行处理器阵列模块依次连接;特别地,像素单元处理器阵列和行处理器阵列进行了多互连的设计,有利于加速图像统计特征的计算,最大限度地提高图像直方图的统计速度。本发明结构简单,可广泛应用于需要进行高速图像处理的场合。
Description
技术领域
本发明涉及可编程视觉芯片、并行视觉图像处理器等视觉图像处理技术领域,尤其涉及一种多互连视觉处理器及采用其的图像处理方法。
背景技术
传统的视觉图像处理系统包括分立的数据源和通用处理器,数据源用于获取图像原始数据,让通用处理器进行相应的处理。通用处理器一般为CPU,对图像进行处理往往是逐个像素串行进行的,实际应用中,在图像处理操作较多的情况下不能达到实时处理的要求;为了能够提高处理速度,往往使用GPU代替CPU进行图像处理,但是带有GPU的视觉图像处理系统不够便携,不适合在需要便携的场合下应用。多级并行视觉处理器的出现有效满足了高速实时处理同时便携的要求。由于许多图像处理涉及重复性的、可相互独立的操作,多级并行视觉处理器通过使用多个简单处理器并将处理器排列成二维,来对图像进行较简单二维并行处理(如滤波、图像灰度反转等),对于较高级的图像处理,并行视觉处理器则使用一维的、含有多个复杂处理器阵列进行并行处理,对于不规则的图像处理,则使用功能强大的串行处理器进行处理。但是这种多级并行视觉处理器只是简单地通过堆砌硬件来加速计算,很多图像处理中都涉及计算统计特征,这种多级并行视觉处理器在计算统计直方图时,虽然进行了二维的硬件加速,但是统计直方图仍然占用了图像处理的大部分时间。
发明内容
有鉴于此,本发明的主要目的在于提出一种多互连视觉处理器及其处理方法,以期至少部分地解决上述技术问题中的至少之一。
为实现上述目的,作为本发明的一个方面,提出了一种多互连视觉处理器,其特征在于,所述多互连视觉处理器包括精简指令集处理器模块1、系统总线模块2、图像数据存储器模块3、像素单元处理器阵列模块4和行处理器阵列模块5;其中,精简指令集处理器模块1、图像数据存储器模块3、像素单元处理器阵列模块4和行处理器阵列模块5均与所述系统总线模块2连接,同时图像数据存储器模块3、像素单元处理器阵列模块4、行处理器阵列模块5依次连接。
作为本发明的另一个方面,还提出了一种采用如上所述的多互连视觉处理器进行与统计图像直方图相关的处理方法,包括以下步骤:
图像数据存储器模块3对外部输入的图像数据进行缓存,并输入到像素单元处理器阵列模块4,使每个像素单元处理器阵列模块4存储一个像素值;
像素单元处理器阵列模块4中的每一个像素单元处理器41含有多路选择器,通过指令控制多路选择器选择其中一个其它像素单元或者自身的数据进行某一灰度值的统计;其中,每一个像素单元处理器41依次访问其行方向第20个相邻像素单元处理器进行21像素操作、第21个相邻像素单元处理器进行22像素操作、第22个相邻像素单元处理器进行23像素操作、……、第2n-1个相邻像素单元处理器进行2n像素操作;每一个像素单元处理器41依次访问其列方向第20个相邻像素单元处理器进行21像素操作、第21个相邻像素单元处理器进行22像素操作、第22个相邻像素单元处理器进行23像素操作、……、第2n-1个相邻像素单元处理器进行2n像素操作;其中行方向和列方向不分先后顺序;对于大于2n的阵列位置,则访问的返回数据设置为0;
经过上述操作之后可以得到2n×2n范围内某个灰度值的个数,对不同灰度值进行上述操作,即可得到灰度值的直方图;像素单元处理器阵列模块4将上述操作的结果输入到行处理器阵列模块5,使得每个行处理器阵列模块5存储一个或者多个灰度值直方图的bin值;
行处理器阵列模块5中的每一个行处理器51含有多路选择器,能够通过指令控制多路选择器选择其中一个其它行处理器或者自身的数据进行运算;其中,每一个行处理器51通过行互连线52依次访问其列方向第2n个相邻的行处理器51的数据;当访问范围超出阵列范围,则访问的返回数据设置为0。可根据具体算法需要对行处理器阵列模块5中的灰度值直方图的bin值进行相应的操作。
作为本发明的再一个方面,还提出了一种采用如上所述的多互连视觉处理器的图像处理方法,其特征在于,包括以下步骤:
图像数据存储器模块(3)对外部输入的图像数据进行缓存,并输入到像素单元处理器阵列模块(4),使每个像素单元处理器阵列模块(4)存储一个像素值;
像素单元处理器阵列模块(4)中的每一个像素单元处理器(41)含有多路选择器,通过指令控制多路选择器分多次在行或列的某个方向上能够访问的像素单元中选择一个像素单元进行一像素值的运算,具体步骤包括:
第一次,满足1+2×(m-1)位的每一个像素单元处理器(41)依次访问其行方向第20个相邻像素单元处理器进行21像素操作;其中,m为自然数,且m小于等于所述像素单元处理器阵列模块(4)处理的每一行的像素单元的最大数除以2第几次执行的次数;
第二次,满足1+4×(m-1)位的每一个像素单元处理器(41)依次访问其行方向第21个相邻像素单元处理器进行22像素操作;
第三次,满足1+8×(m-1)位的每一个像素单元处理器(41)依次访问其行方向第22个相邻像素单元处理器进行23像素操作;
……
第n次,满足1+2n×(m-1)位的每一个像素单元处理器(41)依次访问其行方向第2n -1个相邻像素单元处理器进行2n像素操作;
其中,所述能够访问的像素单元包括所述像素单元处理器对应的像素单元,以及与该像素单元相邻的第1个、第2个、直到第n个像素单元;
其中,上述操作先在一个方向执行所有步骤,再在另一个方向执行所有步骤,行方向和列方向不分先后顺序;
其中,对于大于等于2n的阵列位置,则访问的返回数据设置为0;
经过上述操作之后得到2n×2n范围内的像素值的综合运算结果;像素单元处理器阵列模块(4)将上述操作的结果输入到行处理器阵列模块(5),使得每个行处理器阵列模块(5)存储一个或多个所述像素值的综合运算结果;
行处理器阵列模块(5)中的每一个行处理器(51)含有多路选择器,能够通过指令控制多路选择器在能够访问的行处理器中选择一行处理器进行运算,具体步骤包括:
每一个行处理器(51)通过行互连线(52)依次访问其列方向第2n个相邻的行处理器(51)的数据,并根据具体算法需要对行处理器阵列模块(5)中的像素值的综合运算结果进行相应操作;当访问范围超出阵列范围,则访问的返回数据设置为0。
从上述技术方案中可以看出,本发明具有以下有益效果:
a.本发明提供的一种多互连视觉处理器架构,可以对低级可并行图像算法进行二维并行处理,对高级可并行图像算法进行一维并行处理;
b.本发明提供的一种多互连视觉处理器架构,可以最大限度(指数级)地对图像直方图统计进行加速;
c.本发明提供的一种多互连视觉处理器架构,两个相邻最远(最远相隔n个像素)的像素单元处理器(行处理器)访问只要log2N个步骤;
d.本发明提供的一种多互连视觉处理器架构,可以在FPGA上实现,使整个系统具有便携性。
附图说明
图1为依照本发明一实施例的一种多互连视觉处理器的结构示意图;
图2为一个像素单元处理器(加粗黑框)访问其它像素单元处理器的示意图;
图3为一个行处理器(加粗黑框)访问其它行处理器的示意图。
图4为依照本发明另一实施例的一种多互连图像处理方法中像素单元处理器分多次访问相邻像素单元的步骤示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
本发明公开了一种多互连视觉处理器及其处理方法,该视觉处理器包括精简指令集(RISC)处理器模块、系统总线模块、像素单元(PE)处理器阵列模块、行处理器(RP)阵列模块。其中,所有模块都与系统总线模块连接,精简指令集处理器模块可以通过系统总线模块控制其它模块的工作;像素单元处理器阵列模块和行处理器阵列模块依次连接;特别地,像素单元处理器阵列和行处理器阵列进行了多互连的设计,有利于加速图像统计特征的计算,最大限度地提高图像直方图的统计速度。本发明结构简单,可广泛应用于需要进行高速图像处理的场合。
具体地,本发明公开了一种多互连视觉处理器,所述多互连视觉处理器包括精简指令集处理器模块1、系统总线模块2、图像数据存储器模块3、像素单元处理器阵列模块4和行处理器阵列模块5;其中,精简指令集处理器模块1、图像数据存储器模块3、像素单元处理器阵列模块4和行处理器阵列模块5均与所述系统总线模块2连接,同时图像数据存储器模块3、像素单元处理器阵列模块4、行处理器阵列模块5依次连接。
其中,所述精简指令集处理器模块1包括ARM或MIPS精简指令集处理器,用于通过系统总线模块2控制图像数据存储器模块3、像素单元处理器阵列模块4和行处理器阵列模块5,同时读取所述图像数据存储器模块3、像素单元处理器阵列模块4和行处理器阵列模块5的状态。
其中,所述系统总线模块2包含有地址总线和数据总线,用于精简指令集处理器模块1与图像数据存储器模块3、像素单元处理器阵列模块4和/或行处理器阵列模块5交互时传输地址与数据。
其中,所述图像数据存储器模块3用于缓存从外部输入的图像数据。
其中,所述像素单元处理器阵列模块4包括若干个像素单元处理器41和像素单元处理器41之间的像素单元互连线42,其中:
所述像素单元处理器41为1位处理器,能够进行“与”、“或”、“+”三种运算,每一个像素单元处理器41配置1比特的寄存器和64比特的存储器,所述64比特的存储器用于存储图像原始数据及中间计算结果;
像素单元处理器41之间的像素单元互连线42用于像素单元处理器41的互连;每个像素单元处理器41通过像素单元互连线42能够访问到其行方向和列方向第2n个相邻的像素单元处理器41的数据,其中n为预先设定的正整数;当访问范围超出阵列范围,则访问的返回数据设置为0。
其中,所述行处理器阵列模块5包括若干个行处理器51和行处理器之间的行互连线52,其中:
所述行处理器51为m位处理器,能够进行基本数学计算和逻辑运算,每一个所述行处理器51配置p个m位寄存器和k个m位存储器,其中所述k个m位存储器用于存储数据及中间计算结果;其中m为预先设定的正整数,且满足m=2N,N为大于等于2的自然数,p和k为自然数;
行处理器51之间的行互连线52用于行处理器51的互连;每个行处理器51通过行互连线52能够访问到其列方向第2n个相邻的行处理器51的数据,其中n为预先设定的正整数;当访问范围超出阵列范围,则访问的返回数据设置为0。
本发明还公开了一种采用如上所述的多互连视觉处理器进行与统计图像直方图相关的处理方法,其特征在于,包括以下步骤:
图像数据存储器模块3对外部输入的图像数据进行缓存,并输入到像素单元处理器阵列模块4,使每个像素单元处理器阵列模块4存储一个像素值;
像素单元处理器阵列模块4中的每一个像素单元处理器41含有多路选择器,通过指令控制多路选择器选择其中一个其它像素单元或者自身的数据进行某一灰度值的统计;其中,每一个像素单元处理器41依次访问其行方向第20个相邻像素单元处理器进行21像素操作、第21个相邻像素单元处理器进行22像素操作、第22个相邻像素单元处理器进行23像素操作、……、第2n-1个相邻像素单元处理器进行2n像素操作;每一个像素单元处理器41依次访问其列方向第20个相邻像素单元处理器进行21像素操作、第21个相邻像素单元处理器进行22像素操作、第22个相邻像素单元处理器进行23像素操作、……、第2n-1个相邻像素单元处理器进行2n像素操作;其中行方向和列方向不分先后顺序;对于大于2n的阵列位置,则访问的返回数据设置为0;
经过上述操作之后可以得到2n*2n范围内某个灰度值的个数,对不同灰度值进行上述操作,即可得到灰度值的直方图;像素单元处理器阵列模块4将上述操作的结果输入到行处理器阵列模块5,使得每个行处理器阵列模块5存储一个或者多个灰度值直方图的bin值;
行处理器阵列模块5中的每一个行处理器51含有多路选择器,能够通过指令控制多路选择器选择其中一个其它行处理器或者自身的数据进行运算;其中,每一个行处理器51通过行互连线52依次访问其列方向第2n个相邻的行处理器51的数据,并根据具体算法需要对行处理器阵列模块5中的灰度值直方图的bin值进行相应操作;当访问范围超出阵列范围,则访问的返回数据设置为0。
作为优选,本发明还公开了一种采用如上所述的多互连视觉处理器的图像处理方法,其特征在于,包括以下步骤:
图像数据存储器模块(3)对外部输入的图像数据进行缓存,并输入到像素单元处理器阵列模块(4),使每个像素单元处理器阵列模块(4)存储一个像素值;
像素单元处理器阵列模块(4)中的每一个像素单元处理器(41)含有多路选择器,通过指令控制多路选择器分多次在行或列的某个方向上能够访问的像素单元中选择一个像素单元进行一像素值的运算,具体步骤包括:
第一次,满足1+2×(m-1)位的每一个像素单元处理器(41)依次访问其行方向第20个相邻像素单元处理器进行21像素操作;其中,m为自然数,且m小于等于所述像素单元处理器阵列模块(4)处理的每一行的像素单元的最大数除以2第几次执行的次数;
第二次,满足1+4×(m-1)位的每一个像素单元处理器(41)依次访问其行方向第21个相邻像素单元处理器进行22像素操作;
第三次,满足1+8×(m-1)位的每一个像素单元处理器(41)依次访问其行方向第22个相邻像素单元处理器进行23像素操作;
……
第n次,满足1+2n×(m-1)位的每一个像素单元处理器(41)依次访问其行方向第2n -1个相邻像素单元处理器进行2n像素操作;
其中,所述能够访问的像素单元包括所述像素单元处理器对应的像素单元,以及与该像素单元相邻的第1个、第2个、直到第n个像素单元;
其中,上述操作先在一个方向执行所有步骤,再在另一个方向执行所有步骤,行方向和列方向不分先后顺序;
其中,对于大于等于2n的阵列位置,则访问的返回数据设置为0;
经过上述操作之后得到2n×2n范围内的像素值的综合运算结果;像素单元处理器阵列模块(4)将上述操作的结果输入到行处理器阵列模块(5),使得每个行处理器阵列模块(5)存储一个或多个所述像素值的综合运算结果;
行处理器阵列模块(5)中的每一个行处理器(51)含有多路选择器,能够通过指令控制多路选择器在能够访问的行处理器中选择一行处理器进行运算,具体步骤包括:
每一个行处理器(51)通过行互连线(52)依次访问其列方向第2n个相邻的行处理器(51)的数据,并根据具体算法需要对行处理器阵列模块(5)中的像素值的综合运算结果进行相应操作;当访问范围超出阵列范围,则访问的返回数据设置为0。
其中,所述像素值的运算为像素灰度值的统计,所述像素值的综合运算结果为所述像素灰度值的统计和,即所述灰度值直方图的bin值。
在一个优选实施方式中,本发明的视觉处理器包括精简指令集处理器模块1、系统总线模块2、图像数据存储器模块3、像素单元处理器阵列模块4和行处理器阵列模块5。其中,所有其它模块1、3、4、5均与系统总线模块2连接,同时图像数据存储器模块3、像素单元处理器阵列模块4、行处理器阵列模块5依次连接。
上述方案中,所述精简指令集处理器模块1可用ARM或MIPS等32-bit精简指令集处理器来实现,可通过系统总线模块2控制其它模块,同时读取其它模块的状态。
上述方案中,所述系统总线模块2与所有其它模块1、3、4、5连接,包含有地址总线和数据总线,用于精简指令集处理器模块1与其它模块交互时传输地址与数据。
上述方案中,所述图像数据存储器模块3与系统总线模块2和像素单元处理器阵列模块4连接;图像数据存储器模块3用于缓存从外部传进来的图像数据。
上述方案中,所述像素单元处理器阵列模块4包括像素单元处理器41和像素单元处理器之间的互连线42,其中:
像素单元处理器41为1-bit处理器,可以进行“and”、“or”、“+”三种运算、每个处理器配置1比特的寄存器和64比特的存储器,存储器用于存储图像原始数据及中间计算结果;
像素单元处理器之间的互连线42用于像素单元处理器41的互连;每个像素单元处理器41通过像素互连线42可以访问到其西边(南边)第2n(1、2、4、8、16...)近邻的像素单元处理器41的数据,当访问范围超出阵列范围,则访问的返回数据设置为0。
上述方案中,所述行处理器阵列模块5包括行处理器51和行处理器之间的互连线52,其中:
行处理器51为16-bit处理器,可以进行基本的数学计算和逻辑运算、每个处理器配置16*16-bit寄存器和256*16-bit存储器,存储器用于存储数据及中间计算结果;
行处理器之间的互连线52用于行处理器51的互连;每个行处理器51通过行互连线52可以访问到其南边第2n(1、2、4、8、16...)近邻的行处理器51的数据,当访问范围超出阵列范围,则访问的返回数据设置为0。
下面结合附图和优选实施例对本发明的技术方案作进一步阐述说明。
图1为依照本发明一实施例的一种多互连视觉处理器架构的结构示意图。如图1所示,该视觉处理器架构包括精简指令集处理器模块1、系统总线模块2、图像数据存储器模块3、像素单元处理器阵列模块4和行处理器阵列模块5。其中,所有其它模块1、3、4、5均与系统总线模块2连接,同时图像数据存储器模块3、像素单元处理器阵列模块4、行处理器阵列模块5依次连接。
精简指令集处理器模块1用ARM或MIPS等32-bit精简指令集处理器来实现,通过系统总线模块2对其它模块的控制寄存器进行读写,从而控制图像数据流在图像数据存储器模块3、像素单元处理器阵列模块4和行处理器阵列模块5之间流动,最终通过系统总线模块2读取处理结果。
系统总线模块2与所有其它模块1、3、4、5连接,包含有地址总线和数据总线,用于精简指令集处理器模块1与其它模块交互时传输地址与数据。如果有需要,系统总线模块2还可以挂载其它功能模块:如定时器模块,用于计算整个视觉处理器的算法运行时间。
图像数据存储器模块3与系统总线模块2和像素单元处理器阵列模块4连接;当精简指令集处理器模块1通过系统总线模块2对图像数据存储器模块3的启动寄存器设置为启动状态,并且外部有图像传输进来,图像数据存储器模块3开始缓存从外部传进来的图像数据。
像素单元处理器阵列模块和行处理器阵列模块是设计重点,以下详细说明其实现:
像素单元处理器阵列模块4包括像素单元处理器41和像素单元处理器之间的互连线42,其中:
像素单元处理器41为1-bit处理器,可以进行“and”、“or”、“+”三种运算、每个处理器配置1比特的寄存器和64比特的存储器,存储器用于存储图像原始数据及中间计算结果;
像素单元处理器之间的互连线42用于像素单元处理器41的互连;如图2所示,每个像素单元处理器41通过像素互连线42可以访问到其行方向/列方向(西边/南边)第2n(1、2、4、8、16…)近邻的像素单元处理器41的数据,当访问范围超出阵列范围,则访问的返回数据设置为0,每个像素单元处理器41含有多路选择器,可以通过指令控制多路选择器选择其中一个其它像素单元或者自身的数据进行运算。以128*128像素单元处理器阵列做统计直方图为例:首先每一个像素单元处理器41访问其西边第一近邻像素单元处理器做一个2像素的统计直方图,然后访问其西边第二近邻像素单元处理器做一个4像素的统计直方图,一直保持类似的7次操作就可以得到一个128像素的统计直方图;最终在南边这个方向上进行与西边方向上一样的操作,就可以得到一个128*128的统计直方图,总的步骤为2*7步。同理,对于一个N*N的像素阵列,则只需要2*log2N步就可以完成直方图统计。同时每个像素单元处理器对西或南方向上最远像素单元处理器(相隔M个单元)的访问只需要log2M量级的步骤。
行处理器51为16-bit处理器,可以进行基本的数学计算和逻辑运算、每个处理器配置16*16-bit寄存器和256*16-bit存储器,存储器用于存储数据及中间计算结果;
行处理器之间的互连线52用于行处理器51的互连;每个行处理器51通过行互连线52可以访问到其列方向(南边)第2n(1、2、4、8、16...)近邻的行处理器51的数据,当访问范围超出阵列范围,则访问的返回数据设置为0。每个行处理器51含有多路选择器,可以通过指令控制多路选择器选择其中一个其它行处理器或者自身的数据进行运算。每个行处理器对南方向上最远行处理器(相隔K个单元)的访问只需要log2K量级的步骤。
图4为依照本发明另一实施例的一种多互连图像处理方法中像素单元处理器分多次访问相邻像素单元的步骤示意图。从图4上可以看出,每一个PE第一次均访问自己及相邻一位的像素单元,第二次均访问自己及相邻一、二、三位的像素单元,……,第n-1次均访问自己及相邻一、二、三、……、n位的像素单元,其中由于存在大量的重复,可以通过减少PE的个数来实现简化计算的目的,即第一次只需要处于奇数位的PE进行运算,第二次只需要处于1、5、9、13、17、……的PE进行运算,第三次只需要处于1、9、17、25、33、……的PE进行运算,第四次只需要处于1、17、33、49、65、……的PE进行运算,……,由此第七次只需要第一个PE进行运算就可以得到相邻128位的运算结果,从而实现快速简化运算,便于在FPGA等设备上实现的有益效果。
上述程序可以在各种可编程设备上实现,例如单片机、可编程逻辑控制器PLA、FPGA、图像处理器芯片、台式机、服务器等。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种多互连视觉处理器,其特征在于,所述多互连视觉处理器包括精简指令集处理器模块(1)、系统总线模块(2)、像素单元处理器阵列模块(4)和行处理器阵列模块(5);其中,精简指令集处理器模块(1)、像素单元处理器阵列模块(4)和行处理器阵列模块(5)均与所述系统总线模块(2)连接,同时像素单元处理器阵列模块(4)和行处理器阵列模块(5)依次连接;
所述行处理器阵列模块(5)包括若干个行处理器(51)和行处理器之间的行互连线(52),其中:
所述行处理器(51)为m位处理器,能够进行基本数学计算和逻辑运算,每一个所述行处理器(51)配置p个m位寄存器和k个m位存储器,其中所述k个m位存储器用于存储数据及中间计算结果;其中m为预先设定的正整数,且满足m=2N,N为大于等于2的自然数,p和k为自然数;
行处理器(51)之间的行互连线(52)用于行处理器(51)的互连;每个行处理器(51)通过行互连线(52)能够访问到其列方向第2n个相邻的行处理器(51)的数据,其中n为预先设定的正整数;当访问范围超出阵列范围,则访问的返回数据设置为0。
2.根据权利要求1所述的多互连视觉处理器,其特征在于,所述精简指令集处理器模块(1)包括ARM或MIPS精简指令集处理器,用于通过系统总线模块(2)控制像素单元处理器阵列模块(4)和行处理器阵列模块(5),同时读取所述像素单元处理器阵列模块(4)和行处理器阵列模块(5)的状态。
3.根据权利要求1所述的多互连视觉处理器,其特征在于,所述系统总线模块(2)包含有地址总线和数据总线,用于精简指令集处理器模块(1)与像素单元处理器阵列模块(4)和/或行处理器阵列模块(5)交互时传输地址与数据。
4.根据权利要求1所述的多互连视觉处理器,其特征在于,所述多互连视觉处理器还包括图像数据存储器模块(3),所述图像数据存储器模块(3)用于缓存从外部输入的图像数据,并将其输入到所述像素单元处理器阵列模块(4)。
5.根据权利要求1所述的多互连视觉处理器,其特征在于,所述像素单元处理器阵列模块(4)包括若干个像素单元处理器(41)和像素单元处理器(41)之间的像素单元互连线(42),其中:
所述像素单元处理器(41)为1位处理器,能够进行“与”、“或”、“+”三种运算,每一个像素单元处理器(41)配置1比特的寄存器和64比特的存储器,所述64比特的存储器用于存储图像原始数据及中间计算结果。
6.根据权利要求5所述的多互连视觉处理器,其特征在于,所述像素单元处理器(41)之间的像素单元互连线(42)用于像素单元处理器(41)的互连;每个像素单元处理器(41)通过像素单元互连线(42)能够访问到其行方向和列方向第2n个相邻的像素单元处理器(41)的数据,其中n为预先设定的正整数;当访问范围超出阵列范围,则访问的返回数据设置为0。
7.一种采用如权利要求1至6任意一项所述的多互连视觉处理器的图像处理方法,其特征在于,包括以下步骤:
图像数据存储器模块(3)对外部输入的图像数据进行缓存,并输入到像素单元处理器阵列模块(4),使每个像素单元处理器阵列模块(4)存储一个像素值;
像素单元处理器阵列模块(4)中的每一个像素单元处理器(41)含有多路选择器,通过指令控制多路选择器选择其中一个其它像素单元或者自身的数据进行某一灰度值的统计;其中,每一个像素单元处理器(41)依次访问其行方向第20个相邻像素单元处理器进行21像素操作、第21个相邻像素单元处理器进行22像素操作、第22个相邻像素单元处理器进行23像素操作、……、第2n-1个相邻像素单元处理器进行2n像素操作;每一个像素单元处理器(41)依次访问其列方向第20个相邻像素单元处理器进行21像素操作、第21个相邻像素单元处理器进行22像素操作、第22个相邻像素单元处理器进行23像素操作、……、第2n-1个相邻像素单元处理器进行2n像素操作;其中行方向和列方向不分先后顺序;对于大于2n的阵列位置,则访问的返回数据设置为0;
经过上述操作之后可以得到2n×2n范围内某个灰度值的个数,对不同灰度值进行上述操作,即可得到灰度值的直方图;像素单元处理器阵列模块(4)将上述操作的结果输入到行处理器阵列模块(5),使得每个行处理器阵列模块(5)存储一个或者多个灰度值直方图的bin值;
行处理器阵列模块(5)中的每一个行处理器(51)含有多路选择器,能够通过指令控制多路选择器选择其中一个其它行处理器或者自身的数据进行运算;其中,每一个行处理器(51)通过行互连线(52)依次访问其列方向第2n个相邻的行处理器(51)的数据;当访问范围超出阵列范围,则访问的返回数据设置为0。
8.一种采用如权利要求1至6任意一项所述的多互连视觉处理器的图像处理方法,其特征在于,包括以下步骤:
图像数据存储器模块(3)对外部输入的图像数据进行缓存,并输入到像素单元处理器阵列模块(4),使每个像素单元处理器阵列模块(4)存储一个像素值;
像素单元处理器阵列模块(4)中的每一个像素单元处理器(41)含有多路选择器,通过指令控制多路选择器分多次在行或列的某个方向上能够访问的像素单元中选择一个像素单元进行一像素值的运算,具体步骤包括:
第一次,满足1+2×(m-1)位的每一个像素单元处理器(41)依次访问其行方向第20个相邻像素单元处理器进行21像素操作;其中,m为自然数,且m小于等于所述像素单元处理器阵列模块(4)处理的每一行的像素单元的最大数除以2第几次执行的次数;
第二次,满足1+4×(m-1)位的每一个像素单元处理器(41)依次访问其行方向第21个相邻像素单元处理器进行22像素操作;
第三次,满足1+8×(m-1)位的每一个像素单元处理器(41)依次访问其行方向第22个相邻像素单元处理器进行23像素操作;
……
第n次,满足1+2n×(m-1)位的每一个像素单元处理器(41)依次访问其行方向第2n-1个相邻像素单元处理器进行2n像素操作;
其中,所述能够访问的像素单元包括所述像素单元处理器对应的像素单元,以及与该像素单元相邻的第1个、第2个、直到第n个像素单元;
其中,上述操作先在一个方向执行所有步骤,再在另一个方向执行所有步骤,行方向和列方向不分先后顺序;
其中,对于大于等于2n的阵列位置,则访问的返回数据设置为0;
经过上述操作之后得到2n×2n范围内的像素值的综合运算结果;像素单元处理器阵列模块(4)将上述操作的结果输入到行处理器阵列模块(5),使得每个行处理器阵列模块(5)存储一个或多个所述像素值的综合运算结果;
行处理器阵列模块(5)中的每一个行处理器(51)含有多路选择器,能够通过指令控制多路选择器在能够访问的行处理器中选择一行处理器进行运算,具体步骤包括:
每一个行处理器(51)通过行互连线(52)依次访问其列方向第2n个相邻的行处理器(51)的数据,并根据具体算法需要对行处理器阵列模块(5)中的像素值的综合运算结果进行相应操作;当访问范围超出阵列范围,则访问的返回数据设置为0。
9.根据权利要求8所述的图像处理方法,其特征在于,所述像素值的运算为像素灰度值的统计,所述像素值的综合运算结果为所述像素灰度值的统计和,即灰度值直方图的bin值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711498263.XA CN108053361B (zh) | 2017-12-29 | 2017-12-29 | 多互连视觉处理器及采用其的图像处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711498263.XA CN108053361B (zh) | 2017-12-29 | 2017-12-29 | 多互连视觉处理器及采用其的图像处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108053361A CN108053361A (zh) | 2018-05-18 |
CN108053361B true CN108053361B (zh) | 2021-08-03 |
Family
ID=62129858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711498263.XA Active CN108053361B (zh) | 2017-12-29 | 2017-12-29 | 多互连视觉处理器及采用其的图像处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108053361B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111866069A (zh) * | 2020-06-04 | 2020-10-30 | 西安万像电子科技有限公司 | 数据处理方法及装置 |
US11921668B2 (en) | 2020-09-30 | 2024-03-05 | Beijing Tsingmicro Intelligent Technology Co., Ltd. | Processor array and multiple-core processor |
CN112328536B (zh) * | 2020-09-30 | 2024-04-19 | 北京清微智能科技有限公司 | 一种多核处理器阵列的核间结构和多核处理器 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11120340A (ja) * | 1997-10-08 | 1999-04-30 | Ricoh Co Ltd | 画像処理装置 |
US6757761B1 (en) * | 2001-05-08 | 2004-06-29 | Tera Force Technology Corp. | Multi-processor architecture for parallel signal and image processing |
CN102665049B (zh) * | 2012-03-29 | 2014-09-17 | 中国科学院半导体研究所 | 基于可编程视觉芯片的视觉图像处理系统 |
CN103020890B (zh) * | 2012-12-17 | 2015-11-04 | 中国科学院半导体研究所 | 基于多层次并行处理的视觉处理装置 |
US10521874B2 (en) * | 2014-09-26 | 2019-12-31 | Intel Corporation | Method and apparatus for a highly efficient graphics processing unit (GPU) execution model |
CN106250348B (zh) * | 2016-07-19 | 2019-02-12 | 北京工业大学 | 一种基于gpu访存特性的异构多核架构缓存管理方法 |
-
2017
- 2017-12-29 CN CN201711498263.XA patent/CN108053361B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108053361A (zh) | 2018-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108133270B (zh) | 卷积神经网络加速方法及装置 | |
CN107832082B (zh) | 一种用于执行人工神经网络正向运算的装置和方法 | |
CN108053361B (zh) | 多互连视觉处理器及采用其的图像处理方法 | |
KR100503094B1 (ko) | 넓은 메모리 밴드위스를 갖는 디지털 신호 처리 장치 및그 메모리 맵핑 방법 | |
Gilan et al. | FPGA-based implementation of a real-time object recognition system using convolutional neural network | |
EP3623941B1 (en) | Systems and methods for performing instructions specifying ternary tile logic operations | |
EP3304284B1 (en) | Packed data alignment plus compute instructions, processors, methods, and systems | |
JP2012530966A5 (zh) | ||
US11710213B2 (en) | Application processor including reconfigurable scaler and devices including the processor | |
EP2943875A1 (en) | Data processor and method for data processing | |
US20140253598A1 (en) | Generating scaled images simultaneously using an original image | |
CN105243399A (zh) | 一种实现图像卷积的方法和装置、实现缓存的方法和装置 | |
CN110738317A (zh) | 基于fpga的可变形卷积网络运算方法、装置和系统 | |
US10127040B2 (en) | Processor and method for executing memory access and computing instructions for host matrix operations | |
US6504959B1 (en) | Image processing apparatus using a cascade of poly-point operations | |
CN113781290B (zh) | 一种用于fast角点检测的向量化硬件装置 | |
US9330438B1 (en) | High performance warp correction in two-dimensional images | |
US10623222B2 (en) | Vectorized peak detection for signal processing | |
CN117057403B (zh) | 一种运算模块、基于脉冲神经网络的加速器及方法 | |
CN111507178B (zh) | 数据处理的优化方法及装置、存储介质、计算机设备 | |
CN110147222B (zh) | 运算装置及方法 | |
CN117710188A (zh) | 图像处理的硬件电路实现方法、设备及集成电路 | |
CN111507178A (zh) | 数据处理的优化方法及装置、存储介质、计算机设备 | |
CN116048456A (zh) | 矩阵乘法器、矩阵相乘的方法以及计算设备 | |
US10769746B2 (en) | Data alignment and formatting for graphics processing unit |
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 |