专利名称:用流水线方式单步实现图形图像缩放、旋转的5阶滤波器的设计方法
技术领域:
本发明涉及一种实现图形图像缩放、旋转的图像处理IC设计领域,更具体地说涉及一种用流水线方式单步实现图形图像缩放、旋转的5阶滤波器的设计方法。
背景技术:
在现有技术中,二维图像缩放滤波器可以在水平和垂直两个方向对原始图像进行缩放。传统上有以下几种实现方式
第一种方法是两步实现二维缩放,第一步做第一维缩放处理,第二步做第二维缩放处理。具体地说是先从源内存中读取原始图像的像素信息,对原始图像的像素信息进行第一维滤波处理,将处理结果写入片外内存空间,Resultl =Pl*coefl+P2*coef2+P3*corf3……,然后从片外内存空间读取第一维处理结果,重复前述步骤,进行第二维处理。这种方法实现比较简单,但是它需要进行两次数据的读操作和两次的数据写操作。如果同时需要进行图像混合,就需要三次数据读操作和三次数据写操作。由于这些读写是对片外内存进行操作的,例如DDR SDRAM,因此多次的读写操作会消耗更多的系统带宽,同时也会消耗更多的功耗,降低系统和滤波器图像处理的性能。第二种方法是一步实现二维滤波操作,这种方法需要很多的行缓冲器来存储滤波器所需要的原始图像像素信息,以图像分辨率为1920*1080,以5*5阶滤波器为例,就需要37500字节片上内存。而且随着垂直滤波器阶数的增加,行缓冲器也要增加,例如9*9阶滤波器就需要67500字节片上内存。如此多的片上内存是任何设计者都不能接受的。行缓冲器的另外一个缺点是行缓冲器的大小是固定的,会限制缩放图像的分辨率。行缓冲器的控制方法也不能实现90度和270度图像旋转。另一种双线性插值滤波器可以实现旋转,但是双线性插值在图像质量方面的损失很大,因为它的滤波器阶数为二阶,无法很好地保留源图像信息,输出图像失真严重。目前图形图像处理对滤波器的应用不仅仅局限于缩放,还包括图像的旋转,镜像以及图像混合。如何利用更少的资源一次完成这些操作,成为了图形图像IC设计领域的一个难点和重要课题。因此发明一种可以实现高性能,高图像质量,低带宽,二维缩放和旋转单步完成的多阶图形图像滤波器,成为图形图像处理IC设计领域发展的重点。
发明内容
本发明的目的是针对现有技术不足之处而提供一种用流水线方式单步实现图形图像缩放、旋转的5阶滤波器的设计方法。该方法可以一步完成图像二维缩放,90度/270度/180度旋转,水平/垂直镜像和图像混合,在提高滤波器性能的同时节约SOC系统的带宽。本发明的目的是通过以下措施来实现一种用流水线方式单步实现图形图像缩放、旋转的5阶滤波器的设计方法,其特征在于,步骤如下步骤一、微控制器通过源图像转为目的图像的缩放倍数、图像像素格式、旋转角度决定宏块的大小以及光栅化操作的运行方向,进行光栅化操作,输出坐标信息给下一级流水线旋转模块;
步骤二、旋转模块按旋转角度对光栅化结果坐标进行旋转操作,设置旋转坐标,实现90度旋转、或180度旋转、或270度旋转,将旋转结果传送给下一级流水线镜像模块;
步骤三、镜像模块对旋转结果坐标进行镜像操作,设置水平镜像和垂直镜像坐标,将镜像结果传送给下一级滤波模块;
步骤四、第一维缩放模块根据坐标操作运算结果从高速缓冲存储器中读取原始图像的像素信息进行滤波操作,实现第一维图像缩放,并输出缩放结果给第二维缩放模块;
步骤五、第二维缩放模块根据第一维缩放结果以及坐标信息进行第二次滤波操作,实现第二维图像缩放。并输出缩放结果给图像混合模块;
步骤六、图像混合模块从高速缓冲存储器中读取目的图像的像素信息,将其与第二维滤波操作的结果进行图像混合运算,并将混合结果写回高速缓冲存储器;
步骤七、当高速缓冲存储器中的一缓冲行写满以后,高速缓冲存储器自动将其写入内存,并将该缓冲行重新分配,直到所有的目的像素都通过流水线处理结束为止。所述步骤一中的旋转角度为O度、180度时,在宏块内部光栅化操作的运行方向是先从上到下,然后从左到右,在宏块间光栅化操作的方向是先左到右,然后从上到下;宏块的宽度根据一个缓冲行可以存储的像素大小或图像像素格式来决定;宏块高度根据如下公式计算
垂直纖倍数宏块高度i+2x垂IW ο所述上步骤中的旋转角度为90度、270度时,在宏块内部光栅化操作的方向是先从左到右,然后从上到下;在宏块间光栅化操作的方向是先从上到下,然后从左到右;宏块的宽度根据一个缓冲行可以存储的像素大小或图像像素格式来决定;宏块高度根据如下公式计算
機放倍宏块高度O所述步骤二中按旋转角度设置旋转坐标
90度旋转
新X坐标=目的图像宽度-光栅化后y坐标-1 新4标=光棚化后X坐标;
180度旋转
新X坐标=目的图像宽度-光極化后X坐标-I 新y坐标=目的图像高度-光棚化后#标-I ;
270度旋转
新X坐标=光極化后y坐标 新r坐标=目的图像高度-光循化后X坐标-I。
所述步骤三设置水平镜像和垂直镜像坐标,分别为
水平镜像
新X坐标=目的图像右边缘坐标-旋转后X坐标+目的图像左边緣坐标 新A标=旋转后标;
垂直镜像
权利要求
1.一种用流水线方式单步实现图形图像缩放、旋转的5阶滤波器的设计方法,其特征在于,步骤如下 步骤一、微控制器通过源图像转为目的图像的缩放倍数、图像像素格式、旋转角度决定宏块的大小以及光栅化操作的运行方向,进行光栅化操作,输出坐标信息给下一级流水线旋转模块; 步骤二、旋转模块按旋转角度对光栅化结果坐标进行旋转操作,设置旋转坐标,实现90度旋转、或180度旋转、或270度旋转,将旋转结果传送给下一级流水线镜像模块; 步骤三、镜像模块对旋转结果坐标进行镜像操作,设置水平镜像和垂直镜像坐标,将镜像结果传送给下一级滤波模块; 步骤四、第一维缩放模块根据坐标操作运算结果从高速缓冲存储器中读取原始图像的像素信息进行滤波操作,实现第一维图像缩放,并输出缩放结果给第二维缩放模块; 步骤五、第二维缩放模块根据第一维缩放结果以及坐标信息进行第二次滤波操作,实现第二维图像缩放。
2.并输出缩放结果给图像混合模块; 步骤六、图像混合模块从高速缓冲存储器中读取目的图像的像素信息,将其与第二维滤波操作的结果进行图像混合运算,并将混合结果写回高速缓冲存储器; 步骤七、当高速缓冲存储器中的一缓冲行写满以后,高速缓冲存储器自动将其写入内存,并将该缓冲行重新分配,直到所有的目的像素都通过流水线处理结束为止。
3.根据权利要求I所述的用流水线方式单步实现图形图像缩放、旋转的5阶滤波器的设计方法,其特征在于,所述步骤一中的旋转角度为0度、180度时,在宏块内部光栅化操作的运行方向是先从上到下,然后从左到右,在宏块间光栅化操作的方向是先左到右,然后从上到下;宏块的宽度根据一个缓冲行可以存储的像素大小或图像像素格式来决定;宏块高度根据如下公式计算
4.根据权利要求I所述的用流水线方式单步实现图形图像缩放、旋转的5阶滤波器的设计方法,其特征在于,所述上步骤中的旋转角度为90度、270度时,在宏块内部光栅化操作的方向是先从左到右,然后从上到下;在宏块间光栅化操作的方向是先从上到下,然后从左到右;宏块的宽度根据一个缓冲行可以存储的像素大小或图像像素格式来决定;宏块高度根据如下公式计算
5.根据权利要求I所述的用流水线方式单步实现图形图像缩放、旋转的5阶滤波器的设计方法,其特征在于,所述步骤二中按旋转角度设置旋转坐标 90度旋转 180度旋转 270度旋转根据权利要求I所述的用流水线方式单步实现图形图像缩放、旋转的5阶滤波器的设计方法,其特征在于,所述步骤三设置水平镜像和垂直镜像坐标,分别为 水平镜像 垂直镜像 根据权利要求I所述的用流水线方式单步实现图形图像缩放、旋转的5阶滤波器的设计方法,其特征在于,所述步骤四中的像素信息为镜像中心点坐标信息,从高速缓冲存储器中读取中心点像素信息以及中心点左边两个点和右边两个点的像素信息,同时从滤波器系数缓冲器中读取5个滤波器系数。
6.高速缓冲存储器为64*64字节,共消耗片上内存4096字节 根据权利要求I所述的用流水线方式单步实现图形图像缩放、旋转的5阶滤波器的设计方法,其特征在于,所述步骤四中的滤波操作为 按公式计算目的图像水平方向中心点坐标,取整数部分,公式如下 按前述计算小数部分选取滤波数,将水平中心点第I到第5位小数位通过以下公式换算为滤波器系数组数,通过这个组数选取3 2组滤波器系数中的一组,公式如下 以水平和垂直方向的初始中心点为(0,0),通过初始中心点和以上公式,计算得到所有的中心点坐标后按如下公式进行滤波处理Resultl = Pl*coefl+P2*coef2+P3*corf3+ P4*corf4+ P5*corf5。
7.根据权利要求I所述的用流水线方式单步实现图形图像缩放、旋转的5阶滤波器的设计方法,其特征在于,所述步骤五中的第二次滤波操作包括 1)将第一维运算结果存贮在寄存器中,在流水线开始阶段,收到5个结果以后开始第二维滤波处理; 2)当流水线内的数据开始传输以后,第二维滤波模块每收到N个数据进行一次滤波处理,N为源图像转为目的图像的缩放倍数,当放大处理,N为1,当缩小处理N为缩放倍数,其中缩小倍数大于5,取5 ; 3)通过垂直方向中心点计算公式,选取滤波器系数,目的图像垂直中心点坐标取垂直中心点计算结果的整数部分。
8.小数部分用于选取滤波器系数。
9.垂直方向中心点计算公式如下 4)按前述计算小数部分选取滤波数,将水平中心点第I到第5位小数位通过以下公式换算为滤波器系数组数,通过这个组数选取3 2组滤波器系数中的一组,公式如下5)以水平和垂直方向的初始中心点为(0,0),通过初始中心点和以上公式,计算得到所有的中心点坐标后按如下公式进行滤波处理 Resultl = Pl*coefl+P2*coef2+P3*corf3+ P4*corf4+ P5*corf5。
全文摘要
本发明涉及一种用流水线方式单步实现图形图像缩放、旋转的5阶滤波器的设计方法,该方法可以一步完成图像二维缩放,90度、或270度、或180度旋转,水平/垂直镜像和图像混合,在提高滤波器性能的同时节约SOC系统的带宽。其实现方法是根据二维图像缩放倍数,旋转角度来调节微控制单元内部宏块运行顺序以及宏块的大小,保证中间运算数据重用的最大化,从而提高滤波器的性能。利用流水线的实现方式将二维缩放,旋转,镜像和图像混合一步完成,不需要将中间结果写入内存,从而节省了系统带宽,使用高速缓冲存储器存储源图像数据,降低了硬件资源的消耗。
文档编号G06T3/00GK102831571SQ201110153340
公开日2012年12月19日 申请日期2011年7月8日 优先权日2011年7月8日
发明者张慧明, 迈克蔡 申请人:图芯芯片技术(上海)有限公司