一种滤波器及其设计方法

文档序号:141447 发布日期:2021-10-22 浏览:25次 >En<

阅读说明:本技术 一种滤波器及其设计方法 (Filter and design method thereof ) 是由 谷涛 黄源浩 肖振中 于 2021-07-01 设计创作,主要内容包括:本申请适用于数字信号处理技术领域,特别涉及一种滤波器及其设计方法,该方法包括:获取第一滤波器,对所述第一滤波器进行零点计算;依据预设的级联滤波器架构对所述第一滤波器的零点进行分组,根据分组结果获取第二滤波器。本申请实施例可以降低所占芯片面积,降低功耗。(The application is applicable to the technical field of digital signal processing, and particularly relates to a filter and a design method thereof, wherein the method comprises the following steps: acquiring a first filter, and carrying out zero calculation on the first filter; and grouping the zero points of the first filter according to a preset cascade filter architecture, and acquiring a second filter according to a grouping result. The embodiment of the application can reduce the occupied chip area and reduce the power consumption.)

一种滤波器及其设计方法

技术领域

本申请涉及数字信号处理技术领域,尤其涉及一种滤波器及其设计方法。

背景技术

在图像处理中,经常需要对图像进行滤波处理。滤波处理通常是由图像处理类的专用集成电路(application specific integrated circuit,ASIC)芯片中的高斯滤波,均值滤波等二维(2dimension,2D)图像滤波器实现。当处理不同分辨率的图像,往往需要具备不同卷积核(convolution kernel)大小(size)的滤波器,比如对于视频图像配接器(adapter,video graphics,VGA)图像使用5×5的滤波器,对于四分之一尺寸的VGA(quarter VGA,QVGA)图像使用3×3的滤波器,而对于高分辨率(high definition,HD)图像就需要使用9×9的滤波器。

在ASIC芯片设计中,为了同时满足图像分辨率的区别,第一种方案,往往需要同时实现3×3,5×5,7×7和9×9等多种卷积核大小的滤波器;第二种方案,例如设计一个9×9的滤波器,通过滤波器系数的配置,实现3×3、5×5或7×7滤波器的滤波功能。

第一种方案,同时实现几种卷积核大小的滤波器,但是当设计的卷积核的种类越多时,消耗的芯片面积越大。第二种方案,虽然消耗的面积小,但是实际滤波过程中的功耗会较高,特别是当使用大卷积核滤波器只完成小卷积核滤波器功能的时候功耗会更高,比如,使用9×9滤波器完成3×3滤波器的功能,其滤波器权重中有(9×9-3×3)/(9×9)=88.9%的系数都为零,乘累加(Multiply Accumulate,MAC)单元的利用率只有11.1%,效率低下,导致功耗上升。

发明内容

有鉴于此,本申请实施例提供了一种滤波器及其设计方法,能够减小所占芯片面积,降低功耗。

第一方面,本申请一实施例提供了一种滤波器设计方法,包括:

获取第一滤波器,对所述第一滤波器进行零点计算;

依据预设的级联滤波器架构对所述第一滤波器的零点进行分组,根据分组结果获取第二滤波器。

本实施例,根据第一滤波器(或称原始滤波器),在预设的级联滤波器架构中获取到滤波效果等同于原始滤波器的第二滤波器(或称目标滤波器),降低了所占芯片面积,降低了功耗。

作为第一方面的一种实现方式,所述对所述第一滤波器进行零点计算,包括:

若所述第一滤波器为行列可分离滤波器,则对所述第一滤波器进行行列分离,得到列系数向量和行系数向量;

利用所述列系数向量和所述行系数向量分别构建第一子滤波器和第二子滤波器,并进行零点计算。

作为第一方面的一种实现方式,若所述第一滤波器为行列可分离滤波器,则所述依据预设的级联滤波器架构对所述第一滤波器的零点进行分组,根据分组结果获取第二滤波器,包括:

依据预设的级联滤波器架构对所述第一子滤波器和所述第二子滤波器的零点进行分组,构建第三子滤波器和第四子滤波器;

重新组合所述第三子滤波器和所述第四子滤波器,获得第二滤波器组。

作为第一方面的一种实现方式,所述利用所述列系数向量和所述行系数向量分别构建第一子滤波器和第二子滤波器,并进行零点计算,包括:

利用列系数向量和行系数向量分别构建第一子滤波器和第二子滤波器;

分别对所述第一子滤波器和所述第二子滤波器进行零点计算。

作为第一方面的一种实现方式,所述对所述第一滤波器进行零点计算,还包括:

若所述第一滤波器为行列不可分离滤波器,则对所述第一滤波器进行零点计算。

作为第一方面的一种实现方式,所述的预设的级联滤波器架构包括三个滤波单元和选择单元;

所述三个滤波单元包括第一5×5滤波单元、第一3×3滤波单元、第二3×3滤波单元;所述选择单元包括第一多路选择模块和第二多路选择模块;

所述第一多路选择模块包括第一路信号和第二路信号,所述第二多路选择模块包括第三路信号、第四路信号及第五路信号;

所述第一5×5滤波单元的输入端与所述第一路信号连接,所述第一5×5滤波单元的输出端分别与第一3×3滤波单元的输入端及所述第五路信号连接,所述第一3×3滤波单元的输出端与所述第二路信号及所述第四路信号连接,所述第二3×3滤波单元的输入端与所述第一多路选择模块连接,所述第二3×3滤波单元的输出端与所述第三路信号连接。

作为第一方面的一种实现方式,所述的预设的级联滤波器架构包括四个滤波单元和选择单元;

所述四个滤波单元包括第三3×3滤波单元、第四3×3滤波单元、第五3×3滤波单元和第六3×3滤波单元;所述选择单元包括第三多路选择模块;

所述第三多路选择模块包括第六路信号、第七路信号、第八路信号和第九路信号;

所述第三3×3滤波单元的输出端分别与所述第四3×3滤波单元的输入端和所述第九路信号连接;所述第四3×3滤波单元的输出端分别与所述第五3×3滤波单元的输入端和所述第八路信号连接;所述第五3×3滤波单元的输出端分别与所述第六3×3滤波单元的输入端和所述第七路信号连接;所述第六3×3滤波单元的输出端与所述第六路信号连接。

第二方面,本申请一实施例提供了一种滤波器,包括零点计算模块、获取模块、及级联滤波模块,其中:

所述零点计算模块,用于获取第一滤波器,对所述第一滤波器进行零点计算;

所述获取模块,用于依据所述级联滤波模块对所述第一滤波器的零点进行分组,根据分组结果获取级联后的第二滤波器对应的多项式系数矩阵。

所述级联滤波模块,包括至少三个滤波单元和选择单元,所述滤波单元之间根据所述对应的多项式系数矩阵并通过所述选择单元进行级联以获取所述第二滤波器,使其滤波效果等同于所述第一滤波器。

第三方面,本申请实施例提供了一种电子设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面或第一方面任一实现方式所述的滤波器设计方法。

第四方面,本申请一实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面或第一方面任一实现方式所述的滤波器设计方法。

第五方面,本申请一实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行如第一方面或第一方面任一实现方式所述的滤波器设计方法。

可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面的相关描述,在此不再赘述。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一实施例提供的一种滤波器设计方法的实现流程示意图;

图2是本申请一实施例提供的一种滤波器设计方法中步骤S110的具体实现流程示意图;

图3是本申请一实施例提供的一种滤波器设计方法中步骤S113的具体实现流程示意图;

图4是本申请一实施例提供的一种滤波器设计方法中步骤S120的具体实现流程示意图;

图5是本申请一实施例提供的滤波器的级联示意图;

图6是本申请一实施例提供的一种预设的级联滤波器架构的结构示意图;

图7是本申请一实施例提供的另一种预设的级联滤波器架构的结构示意图;

图8是本申请一实施例提供的一种滤波器的结构示意图;

图9是本申请一实施例提供的一种滤波器中零点计算模块的结构示意图;

图10是本申请一实施例提供的另一种滤波器中零点计算模块的结构示意图;

图11是本申请一实施例提供的一种电子设备的结构示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

在本申请说明书中描述的“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。

此外,在本申请的描述中,“多个”的含义是两个或两个以上。术语“第一”、“第二”、“第三”和“第四”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

需要说明的是,本申请实施例中所提供的图示仅以示意方式说明本申请的基本构想,所以图示中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

传统的滤波器设计,通常采取两种方案。第一种方案,假设按卷积核最大为9×9设计滤波器,对于不同卷积核的滤波过程,输出一个像素,滤波器需要的Mac次数为9×9=81,面积比例系数为9×9=81。第二种方案,若分别按照不同卷积核设计多个滤波器,假设分别设计3×3,5×5,7×7和9×9多个滤波器,则进行不同滤波时,该滤波器需要MAC的次数都不同,其面积比例系数为3×3+5×5+7×7+9×9=164,大大增加了芯片的占据面积。实际上,在芯片中,面积比例系数对应面积的大小,越小越好;MAC次数对应芯片的计算功耗,越小越好。

基于上述问题,本申请提出一种滤波器设计方法。图1为本申请一实施例提供的一种滤波器设计方法的实现流程示意图。本实施例中的滤波器设计方法可由电子设备执行。电子设备包括但不限于计算机、平板电脑、服务器、手机、相机或可穿戴设备等。服务器包括但不限于独立服务器或云服务器等。本实施例中的滤波器设计方法适用于需要对数据进行滤波处理的情形。如图1所示,滤波器设计方法可以包括步骤S110至步骤S120。

S110,获取第一滤波器,对第一滤波器进行零点计算。

在本实施例中,第一滤波器为原始滤波器,通常为需使用的滤波器。获取第一滤波器,对第一滤波器进行零点计算。

作为一非限制性示例,假设第一滤波器的传输函数为:

通过对第一滤波器零点的计算和组合,将其分解为多个低阶滤波器的级联形式。在一个实施例中,优选为:

其数学表示形式为:

进而,可根据上述级联形式求出第一滤波器的零点。

S120,依据预设的级联滤波器架构对第一滤波器的零点进行分组,根据分组结果获取第二滤波器。

在本实施例中,电子设备预设有级联滤波器架构,预设的级联滤波器架构可以预先存储在电子设备的处理器上,其表现形式为集成电路,使用时调用即可。预设的级联滤波器架构可以由系统默认设置,也可以由用户自定义设计,本申请对此不予限制。预设的级联滤波器架构包括多个滤波单元和选择单元,滤波单元的卷积核通常比原始滤波器的卷积核小。多个滤波单元可以为不同卷积核大小,也可以为相同卷积核大小。选择单元用于将滤波单元进行级联。

作为非限制性示例,在一些实施例中,预设的级联滤波器架构包括第一5×5滤波单元、第一3×3滤波单元和第二3×3滤波单元这三个滤波单元,以及选择单元。在其他一些实施例中,预设的级联滤波架构包括四个3×3滤波单元以及选择单元,四个滤波单元分别为第三3×3滤波单元、第四3×3滤波单元、第五3×3滤波单元和第六3×3滤波单元。

在步骤S120中,可依据预设级联滤波器架构对第一滤波器的零点进行分组,获取与预设级联滤波器架构匹配的多项式系数矩阵,并利用多项式系数矩阵构建第二滤波器。需要说明的是,第二滤波器的架构即为预设级联滤波器架构。

在一些实施例中,按照预设级联滤波器架构所包括的滤波器类型进行零点分组,根据零点分组后获得的级联结构,在预设级联滤波器架构中获取与该级联结构对应(或匹配)的系数构成多项式系数矩阵,利用多项式系数矩阵构建第二滤波器。

作为一非限制性示例,假设预设级联滤波器架构包括第一5×5滤波单元、第一3×3滤波单元和第二3×3滤波单元这三种类型的滤波器,则按照这三种类型滤波器进行零点分组。

本实施例中,根据原始滤波器的卷积核大小及系数矩阵,在预设的级联滤波器架构中获取到滤波效果等同于原始滤波器的第二滤波器(或称目标滤波器),降低了所占芯片面积,降低了功耗。

在图1所示实施例的基础上,在其他一些实施例中,具体地,如图2所示,步骤S110可包括步骤S111至S113。

S111,获取第一滤波器,判断第一滤波器是否行列可分离。若是,即第一滤波器为行列可分离滤波器,则继续执行步骤S112以及后续步骤;若否,即第一滤波器为行列不可分离滤波器,则对第一滤波器进行零点计算,并继续执行步骤S120。

S112,对可分离的第一滤波器进行行列分离,得到列系数向量和行系数向量。

在一些实施例中,假设可分离的第一滤波器的卷积核为二维高斯卷积核,更具体地,假设二维高斯卷积核函数为f[i,j]表征一幅图像,对图像进行二维高斯滤波,即:

其中,m,n表示滤波器的阶数。忽略常数K的影响,上述式子表示对一个图像进行二维高斯滤波,相当于先对列做一维高斯滤波,gc[j]为列系数向量,再对行作一维高斯滤波,gr[i]为行系数向量,而且行列各自的高斯核的方差同二维高斯核的方差相同。需要说明的是,在其他一些实施例中,亦可先对图像的行进行一维高斯滤波,后对图像的列进行一维高斯滤波,本申请对行列的先后顺序不予限制。第一滤波器的系数矩阵的维度可以设为(2M-1)×(2M-1),系数矩阵的维度还可为其他表达,此处不作限制。

应当理解的是,在其他一些实施例中,行列可分离的二维滤波器除了可以为高斯滤波外,还可为均值滤波器等其他行列可分离的滤波器,本申请对滤波器不作具体限制。

S113,利用列系数向量和行系数向量分别构建第一子滤波器和第二子滤波器,并进行零点计算。

在一些实施例中,更具体地,如图3所示,步骤S113包括步骤S1131至S1132。

S1131,利用列系数向量和行系数向量分别构建第一子滤波器和第二子滤波器。

在一些实施例中,可利用基于步骤S112对第一滤波器进行行列分解获得的列系数向量和行系数向量,分别构建第一子滤波器及第二子滤波器。更具体地,第一滤波器为二维滤波器,其维度为(2M-1)×(2M-1),则第一子滤波器的维度为1×(2M-1),其系数矩阵为列系数向量;第二子滤波器的维度为(2M-1)×1,其系数矩阵为行系数向量。进一步地,第一子滤波器和第二子滤波器进行级联可等效于第一滤波器,也就是说,级联后的第一子滤波器和第二子滤波器,与第一滤波器,两者的滤波结果等同。

需要说明的是,在一些实施例中,第一子滤波器的系数矩阵可为列系数向量,则第二子滤波器的系数矩阵为行系数向量;在其他一些实施例中,第一子滤波器的系数矩阵可为行系数向量,则第二子滤波器的系数矩阵为列系数向量,此处不作限制。

S1132,分别对第一子滤波器和第二子滤波器进行零点计算。

在一些实施例中,基于步骤S112获取的第一子滤波器的行系数向量和第二子滤波器的列系数向量,则第一子滤波器的传递函数Gr(Z)和第二子滤波器的传递函数Gc(Z)分别为:

假设第一子滤波器和第二子滤波器均为高斯滤波器,高斯滤波器为有限长单位冲激响应(finite impulse response,FIR)滤波器,可通过零点的计算和组合,第一子滤波器和第二子滤波器均可分解为多个低阶滤波器的级联形式。在一个实施例中,优选为:

更具体地,假设第一子滤波器和第二子滤波器均为高阶滤波器,可将其分解为多个二阶滤波器的级联架构形式,二阶级联即将上述传递函数分解为二阶多项式连乘的形式,可表示为:

其中,上述每一个二阶多项式控制一对零点。需要说明的是,传递函数还可以分解为多个一阶多项式和二阶多项式的级联形式,此处不作限制。

可依据预设的级联滤波器架构对第一子滤波器及第二子滤波器分别进行分解,根据分解后的级联结构(即多项式)分别计算第一子滤波器及第二子滤波器的零点。

在图3所示实施例的基础上,在一些实施例中,若第一滤波器为可行列分离的滤波器,如图4所示,步骤S120更具体地包括步骤S121至S122。

S121:依据预设的级联滤波器架构对第一子滤波器和第二子滤波器的零点进行分组,构建第三子滤波器和第四子滤波器。

在一些实施例中,若第一子滤波器和第二子滤波器的维度分别为1×(2M-1)及(2M-1)×1,通过对上述零点的计算并对零点进行分组,分别重新构建第一子滤波器及第二子滤波器,获取第三子滤波器及第四子滤波器,可将第三子滤波器和第四子滤波器的维度均变换为M×M;进一步地,可循环利用上述方法将第三子滤波器和第四子滤波器进行零点计算并分组以进一步分别分解为两个级联的[(M+1)/2]×[(M+1)/2]滤波器,此处不作限制。作为一示例,滤波器的级联结构可以如图5所示。

更具体地,若利用同一多项式求出零点的为一级子滤波器,则由多个多项式获取零点即为多级子滤波器。第一子滤波器和第二子滤波器可分解由多个多项式级联形式,即第一子滤波器分为多个多项式级联,而由同一多项式求出的零点为一级子滤波器,则可得到一个多级第三子滤波器;第二子滤波器与第一子滤波器相同,亦可得到多级第四子滤波器,此处不再赘述。

基于步骤S1132中的将第一子滤波器及第二子滤波器依据预设级联滤波器架构分解的级联架构计算的多项式中的零点,并根据零点所在的分解级联架构中的位置,重新构建第一子滤波器和第二子滤波器,获取第三子滤波器及第四子滤波器;其中,预设的级联滤波器架构需要满足所有滤波器组合需求,若预设滤波器架构优选为一个5×5滤波器和两个3×3滤波器的级联组合或四个3×3滤波器级联组合,则对应的第三子滤波器及第四子滤波器亦被分解为一个5×5滤波单元和两个3×3滤波单元的级联组合或四个3×3滤波单元级联组合,此处不作限制。

S122,重新组合第三子滤波器和第四子滤波器,获取第二滤波器组。

在一些实施例中,基于步骤S121中获取的第三子滤波器和第四子滤波器由第一子滤波器和第二子滤波分解得到,又第一子滤波器为行系数向量构成,第二子滤波器为列系数向量构成,利用重新构建后的第一子滤波器及第二子滤波器,即第三子滤波器和第四子滤波器依据预设级联滤波器架构进行组合,即将行系数向量和列系数向量相乘获取多个二维滤波器,将多个二维滤波器组合得到第二滤波器组,其滤波效果等价于第一滤波器。

基于上述滤波器级联分解方法,可将行列可分离的二维(2M-1)×(2M-1)滤波器,通过上述方法将其转变为两个级联的M×M子滤波器,其滤波结果和二维滤波器等价;进一步,还可以将M×M滤波器进一步转变为两个级联的[(M+1)/2]×[(M+1)/2]滤波器,以减少占据面积,降低功耗。

本实施例中,根据原始滤波器的卷积核大小及系数矩阵,在预设的级联滤波器架构中选择满足原始滤波器的滤波单元进行组合,以获取滤波效果等同于原始滤波器的目标滤波器,降低了所占芯片面积,降低了功耗。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

下面通过具体应用场景对本申请实施例提供的滤波器设计方法所产生的有益效果进行说明。应理解,具体地应用场景不能解释为对本申请的限制。

在一些实施例中,预设的级联滤波器架构包括三个滤波单元(或滤波器)和选择单元。三个滤波单元分别为第一5×5滤波单元、第一3×3滤波单元及第二3×3滤波单元。选择单元包括第一多路选择模块和第二多路选择模块,其中,第一多路选择模块包括第一路信号和第二路信号,第二多路选择模块包括第三路信号、第四路信号及第五路信号。

如图6所示,三个滤波单元分别为第一5×5滤波单元、第一3×3滤波单元A及第二3×3滤波单元B。第一多路选择模块包括第一输入选择管脚Mux Sel0,第一输入选择管脚MuxSel0包括第一路信号0和第二路信号1。第二多路选择模块包括第二输入选择管脚MuxSel1,第二输入选择管脚Mux Sel1包括第三路信号0、第四路信号1和第五路信号2。

具体地,第一5×5滤波单元的输入端与第一多路选择模块Mux Sel0中的第一路信号0连接,第一5×5滤波单元的输出端可分别与第一3×3滤波单元A的输入端及第二多路选择模块Mux Sel1的第五路信号2连接;第一3×3滤波单元A的输出端与第一多路选择模块Mux Sel0中的第二路信号1及第二多路选择模块Mux Sel1的第四路信号连接;第二3×3滤波单元B的输入端与第一多路选择模块Mux Sel0连接,第二3×3滤波单元B的输出端与第二多路选择模块Mux Sel1的第三路信号0连接。

基于上述实施例提供的滤波器设计方法,在预设的级联滤波器架构内,确定第二滤波器或第二滤波器组,第二滤波器或第二滤波器组为与原始滤波器(或称为第一滤波器)等价的滤波器或滤波器组合。通过选择单元可以将预设的级联滤波器架构内合适的滤波单元,即第二滤波器或第二滤波器组进行级联,以实现与原始滤波器等价的滤波器。

作为一示例,继续参见图6所示。若原始滤波器的卷积核为9×9,基于上述实施例提供的滤波器设计方法,可以将9×9的滤波器分解为一个5×5和两个3×3的滤波器的组合。通过第一多路选择模块Mux Sel0的第二路信号1及第二多路选择模块Mux Sel1的第三路信号0选择一个5×5和两个3×3的滤波单元A和B进行组合,获取与9×9的原始滤波器等价的滤波单元组合。若原始滤波器的卷积核为7×7,基于上述实施例提供的滤波器设计方法,可以将7×7的滤波器分解为一个5×5和一个3×3的滤波器的组合。通过第一多路选择模块Mux Sel0的第二路信号1及第二多路选择模块Mux Sel1的第四路信号1选择一个5×5和一个3×3的滤波单元A进行组合,获取与7×7的原始滤波器等价的滤波单元组合。

需要说明的是,在图6所示示例中,原始滤波器为9×9的滤波器,若利用传统方法按滤波器卷积核为9×9设计滤波器,其输出一个像素,需要的MAC次数为81次,其面积比例系数为81。而采用本申请一实施例提供的滤波器设计方法,将原始滤波器分解后,得到与原始滤波器等价的滤波器组合,该滤波器组合输出一个像素需要的MAC次数为5×5+3×3+3×3=43,即面积比例系数为43。可见,采用本申请实施例提供的滤波器设计方法在减少芯片面积的同时,亦降低了功耗。

如下表一所示为在图6所示的预设的级联滤波器架构,即预设的级联滤波器架构包括1个5×5以及2个3×3滤波单元(Filter)A和B的情形下,采用本申请一实施例提供的滤波器设计方法,在该预设的级联滤波器架构内分别实现3×3Filter、5×5Filter、7×7Filter以及9×9Filter的结果比较。其中,ON表示需级联的Filter,OFF表示无需级联的Filter。“-”表示多路选择模块未选择信号。

表一

由表一可以看出,采用本申请实施例的滤波方案后,对于9×9滤波器一个输出像素的计算,需要的MAC次数为5×5+3×3+3×3=43。

对于7×7滤波器输出一个像素的计算,需要的MAC次数为5×5+3×3=34。

对于5×5滤波器输出一个像素的计算,需要的MAC次数为5×5=25。

对于3×3滤波器输出一个像素的计算,需要的MAC次数为3×3=9。

图6所示的预设的级联滤波器架构,其面积比例系数为5×5+3×3+3×3=43。

在另一些实施例中,如图7所示,预设的级联滤波器架构包括四个滤波单元和选择单元。四个滤波单元为四个3×3滤波单元,分别为第三3×3滤波单元A、第四3×3滤波单元B、第五3×3滤波单元C和第六3×3滤波单元D。选择单元包括第三多路选择模块,第三多路选择模块包括第三输入选择管脚Mux Sel。其中,第三多路选择模块包括第六路信号0、第七路信号1、第八路信号2及第九路信号3。优选地,第三3×3滤波单元A的输出端分别与第四3×3滤波单元B的输入端及第三多路选择模块Mux Sel的第九路信号3连接,经过第九路信号3可输出3×3滤波组合;第四3×3滤波单元B的输出端分别与第五3×3滤波单元C的输入端与第三多路选择模块Mux Sel的第八路信号2连接,经过第八路信号2可输出3×3+3×3的滤波组合,即2个级联的3×3滤波器组合,其滤波效果等效于5×5滤波器;第五3×3滤波单元C的输出端分别与第六3×3滤波单元D的输入端及第三多路选择模块Mux Sel的第七路信号1连接,经过第七路信号1可输出3×3×3的滤波组合,即3个级联的3×3滤波器组合,其滤波效果等同于7×7滤波器;第六3×3滤波单元D的输出端与第三多路选择模块Mux Sel的第六路信号0连接,经过第六路信号0可输出4×3×3的滤波组合,即4个级联的3×3滤波器组合,其滤波效果等效于9×9滤波器。

如下表二所示为在图7所示的预设的级联滤波器架构,即预设的级联滤波器架构包括4个3×3滤波单元(Filter)A、B、C和D的情形下,采用本申请一实施例提供的滤波器设计方法,在该预设的级联滤波器架构内分别实现3×3Filter、5×5Filter、7×7Filter以及9×9Filter的结果比较。其中,ON表示需级联的Filter,OFF表示无需级联的Filter。

表二

由表二可以看出,采用本申请实施例的滤波方案后,对于9×9滤波器输出一个像素的计算,需要的MAC次数为4×3×3=36。

对于7×7滤波器一个输出像素的计算,需要的MAC次数为3×3×3=27。

对于5×5滤波器输出一个像素的计算,需要的MAC次数为2×3×3=18。

对于3×3滤波器输出一个像素的计算,需要的MAC次数为3×3=9。

图7所示的预设的级联滤波器架构,其面积比例系数为4×3×3=36。

应当理解的是,预设的级联滤波器架构还可以采用其他形式,基本可以满足所有种类的滤波器需求即可,此处不作限制。

而采用传统的滤波器设计中的第一种方案,假设按卷积核最大为9×9设计滤波器的情形下。对于9×9滤波器输出一个像素的计算,需要的MAC次数为9×9=81。对于7×7滤波器输出一个像素的计算,需要的MAC次数为9×9=81。对于5×5滤波器输出一个像素的计算,需要的MAC次数为9×9=81。对于3×3滤波器输出一个像素的计算,需要的MAC次数为9×9=81。此架构的面积比例系数为9×9=81。

而采用传统的滤波器设计中的第二种方案,分别设计3×3,5×5,7×7和9×9多个滤波器。对于9×9滤波器输出一个像素的计算,需要的MAC次数为9×9=81。对于7×7滤波器输出一个像素的计算,需要的MAC次数为7×7=49。对于5×5滤波器输出一个像素的计算,需要的MAC次数为5×5=25。对于3×3滤波器输出一个像素的计算,需要的MAC次数为3×3=9。此架构的面积比例系数为3×3+5×5+7×7+9×9=164。

如下表三所示为在四种不同的实现架构下分别实现3×3Filter、5×5Filter、7×7Filter以及9×9Filter时所需的MAC次数和面积比例系数的比较表格。

表三

可见,与传统设计方法相比,本申请实施例实现了一种行列可分离2D滤波器多Kernel Size实现的统一解决方案,包括滤波器系数转换算法和芯片硬件实现架构,在满足滤波器Kernel Size灵活性可配置的同时,保证面积小、功耗低,其效果等同于分别设计多个不同Kernel Size的滤波器,对于任意M×M大小的行列可分离2D滤波器,只要在设计规范和架构支持的范围内,就可以使用多种滤波器的级联组合实现,同时芯片实现的面积小、功耗低。

本申请一实施例还提供一种滤波器设计装置。该滤波器设计装置中未详细描述之处请详见前述方法实施例中的描述。

参见图8,图8是本申请一实施例提供的一种滤波器的示意框图。所述滤波器包括:零点计算模块71、获取模块72及级联滤波模块73。

其中,零点计算模块71,用于获取第一滤波器,对所述第一滤波器进行零点计算。

获取模块72,用于依据级联滤波模块73对所述第一滤波器的零点进行分组,根据分组结果获取级联后的第二滤波器对应的多项式系数矩阵。

级联滤波模块73,包括至少三个滤波单元和选择单元,滤波单元之间根据对应的多项式系数矩阵并通过选择单元进行级联以获取第二滤波器,使其滤波效果等同于第一滤波器。

在一些实施例中,如图9所示,所述零点计算模块71包括分离子模块711和第一计算子模块712。

其中,分离子模块711,用于若所述第一滤波器为行列可分离滤波器,则对所述第一滤波器进行行列分离,得到列系数向量和行系数向量;

第一计算子模块712,用于利用所述列系数向量和所述行系数向量分别构建第一子滤波器和第二子滤波器,并进行零点计算。

在一些实施例中,若所述第一滤波器为行列可分离滤波器,则所述获取模块72,具体用于:

依据预设的级联滤波器架构对所述第一子滤波器和所述第二子滤波器的零点进行分组,构建第三子滤波器和第四子滤波器;

重新组合所述第三子滤波器和所述第四子滤波器,获得级联后的第二滤波器对应的多项式系数矩阵。

在一些实施例中,所述第一计算子模块712,具体用于:

利用列系数向量和行系数向量分别构建第一子滤波器和第二子滤波器;

分别对所述第一子滤波器和所述第二子滤波器进行零点计算。

在一些实施例中,如图10所示,在图9所示基础上,所述零点计算模块71还包括第二计算子模块713。

所述第二计算子模块713用于若所述第一滤波器为行列不可分离滤波器,则对所述第一滤波器进行零点计算。

在一些实施例中,所述的级联滤波模块73包括三个滤波单元和选择单元;

所述三个滤波单元包括第一5×5滤波单元、第一3×3滤波单元、第二3×3滤波单元;所述选择单元包括第一多路选择模块和第二多路选择模块;

所述第一多路选择模块包括第一路信号和第二路信号,所述第二多路选择模块包括第三路信号、第四路信号及第五路信号;

所述第一5×5滤波单元的输入端与所述第一路信号连接,所述第一5×5滤波单元的输出端分别与第一3×3滤波单元的输入端及所述第五路信号连接,所述第一3×3滤波单元的输出端与所述第二路信号及所述第四路信号连接,所述第二3×3滤波单元的输入端与所述第一多路选择模块连接,所述第二3×3滤波单元的输出端与所述第三路信号连接。

在一些实施例中,所述的级联滤波模块73包括四个滤波单元和选择单元;

所述四个滤波单元包括第三3×3滤波单元、第四3×3滤波单元、第五3×3滤波单元和第六3×3滤波单元;所述选择单元包括第三多路选择模块;

所述第三多路选择模块包括第六路信号、第七路信号、第八路信号和第九路信号;

所述第三3×3滤波单元的输出端分别与所述第四3×3滤波单元的输入端和所述第九路信号连接;所述第四3×3滤波单元的输出端分别与所述第五3×3滤波单元的输入端和所述第八路信号连接;所述第五3×3滤波单元的输出端分别与所述第六3×3滤波单元的输入端和所述第七路信号连接;所述第六3×3滤波单元的输出端与所述第六路信号连接。

本申请一实施例还提供了一种电子设备,如图11所示,电子设备可以包括一个或多个处理器90(图11中仅示出一个),存储器91以及存储在存储器91中并可在一个或多个处理器90上运行的计算机程序92,例如,进行滤波处理的程序。一个或多个处理器90执行计算机程序92时可以实现滤波器设计方法实施例中的各个步骤。或者,一个或多个处理器90执行计算机程序92时可以实现滤波器设计装置实施例中各模块/单元的功能,此处不作限制。

本领域技术人员可以理解,图11仅仅是电子设备的示例,并不构成对电子设备的限定。电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如电子设备还可以包括输入输出设备、网络接入设备、总线等。

在一个实施例中,所称处理器90可以是中央处理单元(Central ProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

在一个实施例中,存储器91可以是电子设备的内部存储单元,例如电子设备的硬盘或内存。存储器91也可以是电子设备的外部存储设备,例如电子设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,存储器91还可以既包括电子设备的内部存储单元也包括外部存储设备。存储器91用于存储计算机程序以及电子设备所需的其他程序和数据。存储器91还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本申请一实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现滤波器设计方法实施例中的步骤。

本申请一实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备可实现滤波器设计方法实施例中的步骤。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的实施例中,应该理解到,所揭露的装置/电子设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/电子设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述方法实施例中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

22页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于频域滤波的优化方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!