一种并行滤波方法及相应的装置制造方法及图纸

技术编号:8981795 阅读:167 留言:0更新日期:2013-07-31 23:46
本发明专利技术公开了一种并行滤波方法及相应的装置。该装置包括:多粒度存储器、数据缓存装置、系数缓冲广播装置、向量运算装置和命令队列装置,多粒度存储器用于存储待滤波数据和滤波系数以及滤波结果数据;数据缓存装置用于缓存、读取和更新取出的待滤波数据;系数缓冲广播装置用于缓存和广播取出的滤波系数;命令队列装置用于存放并输出并行滤波运算操作命令;向量运算装置用于基于待滤波数据和输出系数数据进行向量运算,并将运算结果写入多粒度存储器中。本发明专利技术还公开了一种并行滤波方法。本发明专利技术滤波速度快、减少了访存次数、提高了数据的使用效率、降低了功耗、适用范围广。

【技术实现步骤摘要】

本专利技术属于信号处理
,尤其涉及一种并行滤波方法及其在集成电路设计中的电路实现结构。
技术介绍
在比如图像处理等信号处理系统中,对于获得的信噪比较低的图像,图像滤波是个不可或缺的处理操作。现有的解决方案中,主要有两类方法来实现滤波:第一类方法是利用可编程器件,比如FPGA、CPLD等,针对不同的应用场合,设计特定的滤波器,该方法具有一定的实时性,但是由于可编程器件存在固有的弱点,因此使得该方法不能达到一个高的主频,相对功能单一。比如,申请号为200310105132的专利讨论了如何使用CPLD和单片机来实现一个二维滤波,该方法基于一个5*5的滤波模板,其具有一定的实时性特点,但是当滤波模板的大小发生改变时,整个结构需要重新设计,不具有灵活和模块化的特点,另外IOM的工作频率也是一个较低的频率。第二类方法是利用专用DSP或者ASIC芯片,此时图像以数据阵列的形式放在存储器中,芯片通过处理存储器中的数据阵列来对图像进行滤波。由于传统的信号处理器需要重复加载待滤波数据,因此该方法会造成较大的访问开销,并且滤波效率低下。本专利技术是在第二类方法的范畴下,提出了一种优化的并行滤波方法,并且根据该方法设计了一种利用向量运算部件实现滤波运算的结构。
技术实现思路
为了解决上述现有 技术中的一个或多个问题,本专利技术提出了一种并行滤波方法及相应的装置。本专利技术适用于多种不同的滤波运算,通过“数据缓存,系数广播”的机制,结合一个并行、运算模式多样的运算部件,使得滤波运算充分并行进行。根据本专利技术的一个方面,提出一种并行滤波装置,该装置包括:多粒度存储器10、数据缓存装置20、系数缓冲广播装置30、向量运算装置40和命令队列装置50,其中:所述多粒度存储器10用于存储分别从待滤波数据矩阵和滤波系数矩阵中读取的、参与并行滤波运算的待滤波数据和滤波系数,以及滤波之后得到的滤波结果数据;所述多粒度存储器10包括:多粒度待滤波数据存储单元101,多粒度滤波系数存储单元102,多粒度滤波结果存储单元103 ;所述多粒度待滤波数据存储单元101、多粒度滤波系数存储单元102的读写位宽与所述向量运算装置40的运算尺寸一致,记为BS ;所述数据缓存装置20,用于缓存从所述多粒度待滤波数据存储单元101中取出的待滤波数据,并对缓存数据进行读取和更新;所述数据缓存装置20包括数据缓存体201和数据缓冲控制单元202 ;所述系数缓冲广播装置30,用于缓存从所述多粒度滤波系数存储单元102中取出的滤波系数,并对缓存数据进行广播,即将所述缓存数据复制BS份,得到宽度为BS个数据元素的输出系数数据3001 ;所述系数缓冲广播装置30包括系数缓冲区实体301和多个系数缓冲区控制单元:读控制逻辑单元302,初始化逻辑单元303和更新逻辑单元304 ;所述命令队列装置50用于存放并向所述向量运算装置40输出并行滤波运算的操作命令队列;所述向量运算装置40用于基于从所述数据缓存装置20中读取得到的待滤波数据和从所述系数缓冲广播装置30中读取得到的输出系数数据3001进行向量运算,并将运算结果写入所述多粒度滤波结果存储单元103中。根据本专利技术的另一个方面,还提出一种并行滤波方法,该方法包括以下步骤:步骤I,读取并获得数据缓存装置20中的BS个待滤波数据和系数缓冲广播装置30中的BS个输出系数数据,所述BS个待滤波数据为待滤波数据矩阵中的前BS行的第一个数据;同时,向量乘累加装置40的信号组4004中的读数据缓冲区使能信号有效,读数据缓冲区列号信号中的列号对应应读取的数据列号,读数据缓冲区列内偏移信号、以及读系数缓冲区使能信号4007有效;所述向量乘累加装置40的输入端读取到待滤波数据4001和输出系数4002 ;步骤2,通过向量乘法单元401将读取得到的输出系数与待滤波数据分别进行相乘; 步骤3-1,将所述步骤2得到的相乘结果与向量累加寄存单元403中的当前值进行相加,之后进入步骤4;步骤3-2,执行所述步骤3-1的同时,判断当前从所述系数缓冲广播装置30中所读取的输出系数是否是最后一个输出系数,如果是,则对所述系数缓冲广播装置30进行更新,然后进入步骤4 ;如果否,则直接进入步骤4 ;步骤4,判断当前的运算次数与滤波系数矩阵的大小是否相等,如果相等,进入步骤6 ;如果不相等,则进入步骤5 ; 步骤5,将计算读取所述数据缓存装置20或者系数缓冲广播装置30次数的计数器加I,然后重新执行步骤I ;步骤6,所述向量乘累加装置40的运算控制逻辑单元404控制将当前获得的BS个滤波结果写回多粒度滤波结果存储单元103,同时向所述数据缓冲广播装置30发送移位信号;步骤7,按照与所述步骤1-6类似的步骤,对所述待滤波数据矩阵前BS行的其他数据进行处理;步骤8,对所述数据缓存装置20和系数缓冲广播装置30进行初始化,按照与所述步骤1-7类似的步骤,对所述待滤波数据矩阵的其他数据进行处理,直到处理完毕所述待滤波数据矩阵中的所有数据。本专利技术加大了滤波算法中所需运算的并行尺寸,同时可以进行BS个运算,即每次使用一个滤波系数,经系数广播后与BS个滤波数据进行运算,当经过K*K次运算后,本专利技术可以得到BS个滤波结果。而采用传统的方法,此时才能够得到一个滤波结果。本专利技术还具有以下有益效果:1、滤波速度快。由于采用了运算尺寸为BS的向量乘累加装置40,故每进行K2次运算,可以得出BS个二维滤波结果矩阵数据,比传统的实现结果快BS倍。2、减少访存次数,提高数据的使用效率。本专利技术所使用的数据缓存装置20和系数缓冲广播装置30用于缓冲从多粒度待滤波数据存储单元101、多粒度滤波系数存储单元102中所取得的数据,从而减少存储访问的次数,降低了功耗,提高了数据的使用率。3、适用范围广。通过扩展向量运算装置40的功能,可以支持多种不同模式的滤波,从而扩展了本专利技术的适用范围。附图说明图1为二维滤波算法原理示意图。图2为根据本专利技术一实施例的并行滤波装置。图3为根据本专利技术一实施例的待滤波数据矩阵D在多粒度待滤波数据存储单元101中的数据分布图。图4为根据本专利技术一实施例的滤波系数矩阵T在多粒度滤波系数存储单元102中的数据分布图。图5为根据本专利技术一实施例的系数缓冲广播装置30的结构图及滤波系数在缓冲区实体301中的数据分布图。图6为根据本专利技术一实施例的待滤波数据矩阵D的部分元素在数据缓存装置20中的分布图。 图7为根据本专利技术一实施例的向量乘累加装置40的结构示意图。图8为根据本专利技术一实施例的BS个滤波结果的计算流程图。具体实施例方式为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术进一步详细说明。首先以二维滤波为例,介绍一下本专利技术滤波运算的基本理论。在二维滤波运算中,一般情况下,假设滤波模板矩阵为H(其尺寸为K*K,K =2a+l),对于Μ*Ν大小的输入矩阵X,运算结果矩阵的每个元素Y(i,j)按照下式计算:Y(i,j) = ΣΙ= -aXt=-aH(s, t)X(i + s,j +1) (I)其中,a 一般取值为1,2或5,即滤波模板矩阵的大小为3*3,5*5或7*7。图1为二维滤波算法原理示意图,如图1所示,若要得到所述运算结果矩阵Y中的某一个点,需要将输入矩阵本文档来自技高网...

【技术保护点】
一种并行滤波装置,其特征在于,该装置包括:多粒度存储器(10、数据缓存装置(20)、系数缓冲广播装置(30)、向量运算装置(40)和命令队列装置(50),其中:所述多粒度存储器(10)用于存储分别从待滤波数据矩阵和滤波系数矩阵中读取的、参与并行滤波运算的待滤波数据和滤波系数,以及滤波之后得到的滤波结果数据;所述多粒度存储器(10)包括:多粒度待滤波数据存储单元(101),多粒度滤波系数存储单元(102),多粒度滤波结果存储单元(103);所述多粒度待滤波数据存储单元(101)、多粒度滤波系数存储单元(102)的读写位宽与所述向量运算装置(40)的运算尺寸一致,记为BS;所述数据缓存装置(20),用于缓存从所述多粒度待滤波数据存储单元(101)中取出的待滤波数据,并对缓存数据进行读取和更新;所述数据缓存装置(20)包括数据缓存体(201)和数据缓冲控制单元(202);所述系数缓冲广播装置(30),用于缓存从所述多粒度滤波系数存储单元(102)中取出的滤波系数,并对缓存数据进行广播,即将所述缓存数据复制BS份,得到宽度为BS个数据元素的输出系数数据(3001);所述系数缓冲广播装置(30)包括系数缓冲区实体(301)和多个系数缓冲区控制单元:读控制逻辑单元(302),初始化逻辑单元(303)和更新逻辑单元(304);所述命令队列装置(50)用于存放并向所述向量运算装置(40)输出并行滤波运算的操作命令队列;所述向量运算装置(40)用于基于从所述数据缓存装置(20)中读取得到的待滤波数据和从所述系数缓冲广播装置(30)中读取得到的输出系数数据(3001)进行向量运算,并将运算结果写入所述多粒度滤波结果存储单元(103)中。...

【技术特征摘要】
1.一种并行滤波装置,其特征在于,该装置包括:多粒度存储器(10、数据缓存装置(20)、系数缓冲广播装置(30)、向量运算装置(40)和命令队列装置(50),其中: 所述多粒度存储器(10)用于存储分别从待滤波数据矩阵和滤波系数矩阵中读取的、参与并行滤波运算的待滤波数据和滤波系数,以及滤波之后得到的滤波结果数据;所述多粒度存储器(10)包括:多粒度待滤波数据存储单元(101),多粒度滤波系数存储单元(102),多粒度滤波结果存储单元(103); 所述多粒度待滤波数据存储单元(101)、多粒度滤波系数存储单元(102)的读写位宽与所述向量运算装置(40)的运算尺寸一致,记为BS; 所述数据缓存装置(20),用于缓存从所述多粒度待滤波数据存储单元(101)中取出的待滤波数据,并对缓存数据进行读取和更新;所述数据缓存装置(20)包括数据缓存体(201)和数据缓冲控制单元(202); 所述系数缓冲广播装置(30),用于缓存从所述多粒度滤波系数存储单元(102)中取出的滤波系数,并对缓存数据进行广播,即将所述缓存数据复制BS份,得到宽度为BS个数据元素的输出系数数据(3001);所述系数缓冲广播装置(30)包括系数缓冲区实体(301)和多个系数缓冲区控制单元:读控制逻辑单元(302),初始化逻辑单元(303)和更新逻辑单元(304); 所述命令队列装置(50)用于存放并向所述向量运算装置(40)输出并行滤波运算的操作命令队列; 所述向量运算装置(40)用于基于从所述数据缓存装置(20)中读取得到的待滤波数据和从所述系数缓冲广播装置(30)中读取得到的输出系数数据(3001)进行向量运算,并将运算结果写入所述多粒度滤波结果存储单元(103)中。2.根据权利要求1所述的装置,其特征在于,所述并行滤波装置工作时,先将待滤波数据矩阵中的待滤波数据按列从多粒度待滤波数据存储单元(101)中取出,缓存到数据缓存装置(20)中;同时将滤波系数矩阵中的滤波系数按列从多粒度滤波系数存储单元(102)中取出,缓冲到系数缓冲广播装置(30)中;向量运算装置(40)通过读取数据缓存装置(20)来获得待滤波数据,通过读取系数缓冲广播装置(30)来获得经过广播处理的输出系数数据(3001),之后根据命令队列装置(50)发送的运算命令,基于所得到的数据进行滤波运算,并将运算结果写入多粒度滤波结果存储单元(103)中。3.根据权利要求1所述的装置,其特征在于,所述数据缓存体(201)包括上区(211)、下区(213)以及主区(212),所述待滤波数据分布在所述主区(212)中,所述上区(211)、下区(213)以及主区(212)的第一列为滤波运算时对特定点滤波所需要的边界元素。4.根据权利要求1所述的装置,其特征在于,所述系数缓冲区实体(301)用于缓存所述滤波系数矩阵中的滤波系数; 所述读控制逻辑单元(302)用于对所述系数缓冲区实体(301)的读操作进行控制; 所述初始化逻辑单元(303)用于在所述系数缓冲广播装置(30)的输入信号一初始化开始信号(3007)有效时,将所述系数缓冲区实体(301初始化; 所述更新逻辑单元(304)用于当所述缓冲区实体(301)不足以放下所述多粒度滤波系数存储单元(102)中的所有滤波系数时,从所述多粒度滤波系数存储单元(102)中取出其余的滤波系数存到所述缓冲区实体(301)中。5.根据权利要求4所述的装置,其特征在于,所述系数缓冲广播装置(30)的输入信号包括:读使能信号(3002)、滤波系数数目指示信号(3003)、所述初始化逻辑单元(303)或所述更新逻辑单元(304)从所述多粒度待滤波数据存储单元(101)中取得的数据(3005)、向量乘累加装置(40)发送给所述系数缓冲广播装置(30)的更新信号(3006)和初始化开始信号(3007); 输出...

【专利技术属性】
技术研发人员:王东琳尹磊祖杨勇勇谢少林汪涛
申请(专利权)人:中国科学院自动化研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1