一种垂直滤波器的图像垂直尺寸缩小方法

文档序号:6625502阅读:439来源:国知局
一种垂直滤波器的图像垂直尺寸缩小方法
【专利摘要】本发明公开了一种垂直滤波器的图像垂直尺寸缩小方法。该方法具体包括以下步骤:第一步、确定垂直滤波器需要的行缓存器和选择器数量;第二步、根据第一步中确定的行缓存器数量设计垂直滤波器;第三步、基于第二步中设计出来的垂直滤波器,进行图像垂直尺寸缩小的数据传输。该方法在保证图像缩小质量的前提下,显著的节省行缓存器资源的使用,从而有效的控制图像垂直滤波器设计的成本。该垂直滤波器结构可支持垂直方向上图像尺度的任意比例缩小,在缩小比例较低时滤波计算不丢失任何图像信息,仍然可以保证良好的图像质量。
【专利说明】一种垂直滤波器的图像垂直尺寸缩小方法

【技术领域】
[0001]本发明属于图像处理领域,具体是一种垂直滤波器的图像垂直尺寸缩小方法。

【背景技术】
[0002]无论是在静态图像处理还是视频图像处理中,图像尺寸的缩放都是其中一个十分重要的环节,广泛应用于数字电视、视频监控、卫星成像等领域。在对图像垂直方向尺寸进行缩小时,一般是通过使用一定阶数的低通滤波器对图像每一列的像素点数据进行降采样来完成的。视频图像通常是按照行扫描的顺序按像素点逐个传输的,因此传统的尺度缩小方法必须对垂直滤波所需的每一行像素点数据都进行预先缓存,当满足计算条件时再进行垂直方向的滤波计算。为了在降采样后保持缩小图像的质量,所使用的滤波器需要根据图像缩小的最小比例来确定行缓存器数量,缩小比例越小,需要的行缓存器就越多。如图1所示,若垂直缩小比例为1/8,如果滤波阶数不足(图中以2阶滤波器为例),则会出现图像中某些行的像素无法参与滤波而被直接丢弃,因此在这种情况下,至少需要使用8阶滤波器(8个行缓存器)才能保证垂直方向上的每一个像素点都参与滤波运算,从而保证滤波质量,参见图2。
[0003]目前视频图像尺寸实时缩放滤波器的实现方式主要是通过FPGA或ASIC来设计,而传统的设计方法行缓存器数量占用大、乘法器资源使用多,这两类资源是导致FPGA逻辑资源以及ASIC功耗、面积增加的直接因素,从而导致了设计实现成本的显著增长,尤其是在多路视频数据并行处理领域,产生的成本消耗十分巨大。


【发明内容】

[0004]针对现有技术的不足,本发明拟解决的技术问题是:设计一种垂直滤波器的图像垂直尺寸缩小方法。该方法在保证图像缩小质量的前提下,显著的节省行缓存器资源的使用,从而有效的控制图像垂直滤波器设计的成本。
[0005]本发明解决所述技术问题的技术方案是,设计一种垂直滤波器的图像垂直尺寸缩小方法,该方法具体包括以下步骤:
[0006]第一步、确定垂直滤波器需要的行缓存器和选择器数量:将图像垂直方向尺寸缩小比例划分为有限个分立区间(SRtl, SR1,……SRn),将分立区间的最大值表示为Hiax(SRx),最小值表示为min(SRx),用min(LB_numx)表示所需的行缓存器数量,tap_numx表示不同分立区间使用的滤波阶数;则对不同分立区间进行滤波所需的行缓存器数量可表示为:
[0007]min (LE^num1) = tap—num^max (SR1);
[0008]min (LB_num2) = tap_num2*max (SR2);
[0009]......
[0010]min (LB_numn) = tap_numn*max (SRn).
[0011]将所有分立区间设计统一为一个滤波结构,为满足各个分立区间的滤波需求,行缓存器的数量为 LB_num = max (min (LE^num1), min (LB_num2),......min (LB_numn));选择器数量与行缓存器的数量相同;
[0012]第二步、根据第一步中确定的行缓存器数量设计垂直滤波器:该垂直滤波器包括缓存仲裁模块、缓存管理模块、缓存记录模块、阶数阵列、至少两个选择器、至少两个行缓存器以及输出选择模块;
[0013]第三步、基于第二步中设计出来的垂直滤波器,进行图像垂直尺寸缩小的数据传输:缓存仲裁模块根据图像垂直缩小比例预先计算好每一行像素点数据的采样位置,当新的一行像素点数据到来,缓存仲裁模块判断其属于新组滤波运算还是正在进行中的原组滤波运算,新组滤波运算分配到缓存管理模块,原组滤波运算发送到缓存记录模块;新组滤波运算的起始行像素点数据由缓存仲裁模块发送到缓存管理模块,缓存管理模块发出像素点数据,阶数列阵提供滤波阶数,像素点数据乘以滤波阶数后发送至选择器中的一个,经过所述选择器选择,存储至与之对应的行缓存器;同时缓存管理模块发出所述行缓存器被占用的信号给缓存记录模块;当同一组原组滤波运算的新一行像素点数据到来时,缓存仲裁模块将新一行像素点数据发送至缓存记录模块,阶数列阵提供滤波阶数,像素点数据乘以滤波阶数后,与所述行缓存器回读数据相加后,经过所述选择器选择,再次存储至所述行缓存器;直至完成同一组原组滤波运算的所有像素点数据的乘加运算,缓存记录模块通知输出选择模块将滤波运算结果输出,滤波运算结果通过所述选择器发送至输出选择模块,输出选择模块将滤波运算结果输出,即完成了垂直滤波器的图像垂直尺寸的缩小。
[0014]所述缓存管理模块,主要是根据行缓存器的占用情况来为新组滤波数据选择行缓存器进行数据缓存,且每当使用一个新的行缓存器,缓存管理模块会发出行缓存器占用信号给缓存记录模块,表示新一组滤波数据运算启动。
[0015]所述缓存记录模块负责记录各组滤波数据运算的进行状态和行缓存器的占用情况,每当有新一行的像素点数据进入时都要对迭代次数进行累加,直到一组滤波数据运算完毕,释放相应的行缓存器,同时发出行缓存器释放信号给缓存管理模块,表示一组滤波运算完成。
[0016]所述阶数阵列,为每一行像素点数据选择对应的滤波阶数。滤波数据在进入与之相应的行缓存器之前需要进行滤波阶数计算,阶数阵列中储存所有的滤波阶数,根据滤波数据需要进行选择输出。滤波数据运算分为两种情况:1)数据从缓存管理模块输出后与滤波阶数相乘,并送入对应的行缓存器。2)数据从缓存记录模块输出后与滤波阶数相乘,同时该组滤波已经完成的中间运算结果会从对应的行缓存器中进行回读,与相乘结果进行累力口,最后再次存储于行缓存器中,如此迭代循环,直到一组滤波运算全部完成为止。
[0017]所述选择器,根据缓存仲裁模块对像素点数据的分流结果,为行缓存器选择数据通路。
[0018]所述输出选择模块用于输出最终的滤波数据运算结果。当一组滤波运算全部完成时,缓存记录模块通知输出选择模块将完成滤波数据运算的结构输出。
[0019]本发明的有益效果是:
[0020]1、该垂直滤波器结构可支持垂直方向上图像尺度的任意比例缩小,在缩小比例较低时滤波计算不丢失任何图像信息,仍然可以保证良好的图像质量。
[0021]2、通过对行缓存器的仲裁管理与滤波分级操作机制,有效的利用并节约了行缓存器资源和与其对应的乘法器逻辑资源。
[0022]3、使用本发明设计图像垂直滤波装置,可以使用低成本的FPGA型号进行设计实现,同时也可以降低ASIC的设计实现成本。为降低成本,本发明将所有区间的设计统一为一个滤波结构。

【专利附图】

【附图说明】
[0023]图1是传统1/8缩小比例情况下2阶滤波器滤波信息丢失示意图;
[0024]图2是传统垂直方向滤波器数据缓存结构及滤波原理图;
[0025]图3是本发明垂直滤波器的图像垂直尺寸缩小方法的一种实施例根据图像缩小比例的区间划分示意图;
[0026]图4是本发明垂直滤波器的图像垂直尺寸缩小方法的一种实施例垂直滤波器的工作流程图;
[0027]图5是本发明垂直滤波器的图像垂直尺寸缩小方法的一种实施例迭代型滤波数据运算示意图。

【具体实施方式】
[0028]下面给出本发明的具体实施例,但实施例仅是具体说明本发明,并不限制本发明申请权利要求的保护范围。
[0029]实施例1
[0030]将垂直滤波器的图像最小垂直缩小比例为原尺寸1/8。
[0031]第一步、确定垂直滤波器需要的行缓存器和选择器数量:
[0032]首先将[0,I]的缩小比例范围分为三个区间(参见图3),并且按照保证所有像素点数据都参与滤波的原则,每个区间对应一个特定的滤波阶数,分别为:
[0033]?缩小比:SR2?(1/2,I]对应的滤波阶数为2 ;
[0034]?缩小比=SR1?(1/4,1/2]对应的滤波阶数为4 ;
[0035]?缩小比:SRq?[0,1/4]对应的滤波阶数为8 ;
[0036]min (LB^um1) = tap^um^max (SR1) = 1*2 = 2 ;
[0037]min (LB_num2) = tap_num2*max (SR2) = 1/2*4 = 2 ;
[0038]min (LB_num3) = tap_num3*max (SR3) = 1/4*8 = 2 ;
[0039]因此,LB_num = max (min (LE^num1),min (LB_num2),min (LB_num3)) = 2。
[0040]可知垂直滤波器结构所使用的行缓存器数量为2。
[0041]第二步、根据第一步中确定的行缓存器数量设计垂直滤波器:该垂直滤波器包括缓存仲裁模块、缓存管理模块、缓存记录模块、阶数阵列、两个选择器、两个行缓存器以及输出选择模块。
[0042]第三步、基于第二步中设计出来的垂直滤波器,进行图像垂直尺寸缩小的数据传输(参见图4):缓存仲裁模块根据图像垂直缩小比例预先计算好每一行像素点数据的采样位置,当新的一行像素点数据到来,缓存仲裁模块判断其属于新组滤波运算还是正在进行中的原组滤波运算,新组滤波运算分配到缓存管理模块,原组滤波运算发送到缓存记录模块;新组滤波运算的起始行像素点数据发送时,观察行缓存器的状态,以第一行缓存器空闲为例,缓存管理模块发出像素点数据,阶数列阵提供滤波阶数为8阶,像素点数据乘以滤波阶数后,发送至第一选择器,存储至第一行缓存器,同时缓存管理模块发出第一行缓存器被占用的信号给缓存记录模块;当同一组原组滤波运算的新一行像素点数据到来时,缓存仲裁模块将新一行像素点数据发送至缓存记录模块,阶数列阵提供滤波阶数为8阶,像素点数据乘以滤波阶数后,与第一行缓存器回读数据相加后,经过第一选择器,存储至第一行缓存器;直至完成同一组原组滤波运算的所有像素点数据乘加运算(参见图5),缓存记录模块通知输出选择模块将滤波运算结果输出,滤波运算结果通过第一选择器发送至输出选择模块,输出选择模块将滤波运算结果输出,即完成了基于垂直滤波器的图像垂直尺寸的缩小。
[0043]同理,第二行缓存器空闲,工作过程相同。
[0044]本发明未述及之处适用现有技术。
【权利要求】
1.一种垂直滤波器的图像垂直尺寸缩小方法,其特征在于该方法具体包括以下步骤:第一步、确定垂直滤波器需要的行缓存器和选择器数量:将图像垂直方向尺寸缩小比例划分为有限个分立区间(SRtl, SR1,……SRn),将分立区间的最大值表示为max (SRx),最小值表示为min(SRx),用min(LB_numx)表示所需的行缓存器数量,tap_numx表示不同分立区间使用的滤波阶数;则对不同分立区间进行滤波所需的行缓存器数量可表示为:min (LE^num1) = tap—numfmax (SR1);min (LB_num2) = tap_num2*max (SR2);
min (LB_numn) = tap_numn*max (SRn).将所有分立区间设计统一为一个滤波结构,为满足各个分立区间的滤波需求,行缓存器的数量为 LB_num = max (min (LE^num1), min (LB_num2),......min (LB_numn));选择器数量与行缓存器的数量相同; 第二步、根据第一步中确定的行缓存器数量设计垂直滤波器:该垂直滤波器包括缓存仲裁模块、缓存管理模块、缓存记录模块、阶数阵列、至少两个选择器、至少两个行缓存器以及输出选择模块; 第三步、基于第二步中设计出来的垂直滤波器,进行图像垂直尺寸缩小的数据传输:缓存仲裁模块根据图像垂直缩小比例预先计算好每一行像素点数据的采样位置,当新的一行像素点数据到来,缓存仲裁模块判断其属于新组滤波运算还是正在进行中的原组滤波运算,新组滤波运算分配到缓存管理模块,原组滤波运算发送到缓存记录模块;新组滤波运算的起始行像素点数据由缓存仲裁模块发送到缓存管理模块,缓存管理模块发出像素点数据,阶数列阵提供滤波阶数,像素点数据乘以滤波阶数后发送至选择器中的一个,经过所述选择器选择,存储至与之对应的行缓存器;同时缓存管理模块发出所述行缓存器被占用的信号给缓存记录模块;当同一组原组滤波运算的新一行像素点数据到来时,缓存仲裁模块将新一行像素点数据发送至缓存记录模块,阶数列阵提供滤波阶数,像素点数据乘以滤波阶数后,与所述行缓存器回读数据相加后,经过所述选择器选择,再次存储至所述行缓存器;直至完成同一组原组滤波运算的所有像素点数据的乘加运算,缓存记录模块通知输出选择模块将滤波运算结果输出,滤波运算结果通过所述选择器发送至输出选择模块,输出选择模块将滤波运算结果输出,即完成了垂直滤波器的图像垂直尺寸的缩小。
【文档编号】G06T3/40GK104240181SQ201410439171
【公开日】2014年12月24日 申请日期:2014年8月29日 优先权日:2014年8月29日
【发明者】杨硕, 周津, 杨阳 申请人:中国航天科工集团第三研究院第八三五七研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1