公开/公告号CN102831571A
专利类型发明专利
公开/公告日2012-12-19
原文格式PDF
申请/专利权人 图芯芯片技术(上海)有限公司;
申请/专利号CN201110153340.4
申请日2011-07-08
分类号
代理机构上海京沪专利代理事务所(普通合伙);
代理人周志宏
地址 201203 上海市浦东新区张江高科技园区碧波路177号c区二楼
入库时间 2023-12-18 07:46:04
法律状态公告日
法律状态信息
法律状态
2019-03-29
专利权质押合同登记的注销 IPC(主分类):G06T1/20 授权公告日:20141022 登记号:2017990000509 出质人:图芯芯片技术(上海)有限公司 质权人:国家集成电路产业投资基金股份有限公司 解除日:20190306 申请日:20110708
专利权质押合同登记的生效、变更及注销
2017-07-18
专利权质押合同登记的生效 IPC(主分类):G06T1/20 登记号:2017990000509 登记生效日:20170621 出质人:图芯芯片技术(上海)有限公司 质权人:国家集成电路产业投资基金股份有限公司 发明名称:用流水线方式单步实现图形图像缩放、旋转的5阶滤波器的设计方法 授权公告日:20141022 申请日:20110708
专利权质押合同登记的生效、变更及注销
2014-10-22
授权
授权
2013-02-06
实质审查的生效 IPC(主分类):G06T1/20 申请日:20110708
实质审查的生效
2012-12-19
公开
公开
技术领域
本发明涉及一种实现图形图像缩放、旋转的图像处理IC设计领域,更具体地说涉及一种用流水线方式单步实现图形图像缩放、旋转的5阶滤波器的设计方法。
背景技术
在现有技术中,二维图像缩放滤波器可以在水平和垂直两个方向对原始图像进行缩放。传统上有以下几种实现方式:
第一种方法是两步实现二维缩放,第一步做第一维缩放处理,第二步做第二维缩放处理。具体地说是:先从源内存中读取原始图像的像素信息,对原始图像的像素信息进行第一维滤波处理,将处理结果写入片外内存空间,Result1 = P1*coef1+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度旋转,将旋转结果传送给下一级流水线镜像模块;
步骤三、镜像模块对旋转结果坐标进行镜像操作,设置水平镜像和垂直镜像坐标,将镜像结果传送给下一级滤波模块;
步骤四、第一维缩放模块根据坐标操作运算结果从高速缓冲存储器中读取原始图像的像素信息进行滤波操作,实现第一维图像缩放,并输出缩放结果给第二维缩放模块;
步骤五、第二维缩放模块根据第一维缩放结果以及坐标信息进行第二次滤波操作,实现第二维图像缩放。并输出缩放结果给图像混合模块;
步骤六、图像混合模块从高速缓冲存储器中读取目的图像的像素信息,将其与第二维滤波操作的结果进行图像混合运算,并将混合结果写回高速缓冲存储器;
步骤七、当高速缓冲存储器中的一缓冲行写满以后,高速缓冲存储器自动将其写入内存,并将该缓冲行重新分配,直到所有的目的像素都通过流水线处理结束为止。
所述步骤一中的旋转角度为0度、180度时,在宏块内部光栅化操作的运行方向是先从上到下,然后从左到右,在宏块间光栅化操作的方向是先左到右,然后从上到下;宏块的宽度根据一个缓冲行可以存储的像素大小或图像像素格式来决定;宏块高度根据如下公式计算:
。
所述上步骤中的旋转角度为90度、270度时,在宏块内部光栅化操作的方向是先从左到右,然后从上到下;在宏块间光栅化操作的方向是先从上到下,然后从左到右;宏块的宽度根据一个缓冲行可以存储的像素大小或图像像素格式来决定;宏块高度根据如下公式计算:
。
所述步骤二中按旋转角度设置旋转坐标:
90度旋转:
;
180度旋转:
;
270度旋转:
。
所述步骤三设置水平镜像和垂直镜像坐标,分别为:
水平镜像:
;
垂直镜像:
。
所述步骤四中的像素信息为镜像中心点坐标信息,从高速缓冲存储器中读取中心点像素信息以及中心点左边两个点和右边两个点的像素信息,同时从滤波器系数缓冲器中读取5个滤波器系数。高速缓冲存储器为64*64字节,共消耗片上内存4096字节。
所述步骤四中的滤波操作为:
1) 按公式计算目的图像水平方向中心点坐标,取整数部分,公式如下:
2) 按前述计算小数部分选取滤波数,将水平中心点第1到第5位小数位通过以下公式换算为滤波器系数组数,通过这个组数选取32组滤波器系数中的一组,公式如下:
3) 以水平和垂直方向的初始中心点为(0,0),通过初始中心点和以上公式,计算得到所有的中心点坐标后按如下公式进行滤波处理:
Result1 = P1*coef1+P2*coef2+P3*corf3+ P4*corf4+ P5*corf5。
所述步骤五中的第二次滤波操作包括:
1)将第一维运算结果存贮在寄存器中,在流水线开始阶段,收到5个结果以后开始第二维滤波处理;
2)当流水线内的数据开始传输以后,第二维滤波模块每收到N个数据进行一次滤波处理,N为源图像转为目的图像的缩放倍数,当放大处理,N为1,当缩小处理N为缩放倍数,其中缩小倍数大于5,取5;
3)通过垂直方向中心点计算公式,选取滤波器系数,目的图像垂直中心点坐标取垂直中心点计算结果的整数部分。小数部分用于选取滤波器系数。
垂直方向中心点计算公式如下:
4)按前述计算小数部分选取滤波数,将水平中心点第1到第5位小数位通过以下公式换算为滤波器系数组数,通过这个组数选取32组滤波器系数中的一组,公式如下:
5)以水平和垂直方向的初始中心点为(0,0),通过初始中心点和以上公式,计算得到所有的中心点坐标后按如下公式进行滤波处理:
Result1 = P1*coef1+P2*coef2+P3*corf3+ P4*corf4+ P5*corf5。
与现有技术相比,本发明提出的用流水线方式单步实现图形图像缩放、旋转的5阶滤波器的设计方法,具有如下优点:1)本发明针对现有的图形图像多阶缩放滤波器带宽高,不能实现缩放和旋转一步完成,以及性能低的问题,消除了传统上两步实现二维缩放是多次对内存的读写,通过流水线的方式实现图像旋转,镜像,第一维缩放,第二维缩放和图像混合,只需要一次读操作和一次写操作一步完成;2)与传统的用行缓冲器实现的单步滤波器相比,本发明用4096字节的高速缓冲存储器代替行缓冲器,可以减少片上内存89%,既降低了设计的硬件资源消耗,节省了硬件的总面积和功耗,又可以实现图像90度和270度旋转,而且取得更高的性能和更低的带宽。3)本发明在坐标操作的同时进行图像旋转和镜像的运算,根据缩放倍数调整坐标运算顺序和宏块大小,提高了滤波器的整体性能。
附图说明:
图1是本发明一个实施例的二维缩放和旋转一步完成的多阶图像滤波器模块结构框图。
图2是目标图像旋转角度为0度和180度时在宏块内部光栅化操作的方向示意图。
图3是目标图像旋转角度为90度和270度时在宏块内部光栅化操作的方向示意图。
具体实施方式:
下面结合附图对具体实施方式作详细说明:
图1是本发明一个实施例的二维缩放和旋转一步完成的多阶图像滤波器模块结构框图。图中,微控制器、旋转模块、镜像模块,第一维缩放模块、第二维缩放模块、图像混合模块依次连接,高速缓冲存储器与第一缩放模块、图像混合模块连接,第一维缩放模块、第二维缩放模块分别接有系数缓冲器。其中,涉及坐标操作的是微控制器、旋转模块、镜像模块,涉及像素操作的是第一维缩放模块、第二维缩放模块、图像混合模块、高速缓冲存储器、系数缓冲器。
用流水线方式单步实现图形图像缩放、旋转的5阶滤波器的设计方法,过程如下:
实施例1的源图像大小为1920x1080,目的图像为640x480,同时进行90度旋转和水平镜像,图像混合并使用5阶滤波器进行图像缩放。图像的像素格式为ARGB1555。
步骤一,依据微控制器根据图像缩放的倍数和旋转的角度,计算光栅化操作的运行方向以及宏块大小:
在旋转角度为90度的情况下,在宏块内部光栅化操作的方向是先从左到右,然后从上到下;在宏块间光栅化操作的方向是先从上到下,然后从左到右。如图3所示,每个方块表示一个宏块。
宏块的宽度根据一个缓冲行可以存储的像素大小来决定,像素格式为ARGB1555,宏块宽度为32个像素。
宏块高度根据如下公式计算:
计算出宏块大小和光栅化操作方向以后,微控制模按照顺序进行光栅化操作,将坐标信息传送给下一级旋转模块;
步骤二,旋转模块根据如下公式设置旋转坐标,进行旋转:
90度旋转,其中目的图像宽度为640。
以坐标点(1,2)为例,
计算完旋转坐标以后,将旋转结果传送给下一级镜像模块;
步骤三,镜像模块根据如下公式设置水平镜像坐标,进行操作:
水平镜像,其中目的图像右边缘坐标为639,左边缘坐标为0。
以第一个坐标点(1,2)为例,
计算完镜像坐标以后,将镜像结果传送给下一级滤波模块;
步骤四,第一维缩放模块进行第一维滤波处理。以五阶滤波器为例,第一维滤波模块根据镜像模块传送过来的中心点坐标信息,从高速缓冲存储器中读取中心点像素信息以及中心点左边两个点和右边两个点的像素信息,同时从滤波器系数缓冲器中读取5个滤波器系数,滤波器系数选取通过中心点坐标第1到第5位小数位(二进制小数)选取32组滤波器系数中的一组。目的图像中心点坐标去中心点整数部分。小数部分用于选取滤波器系数。以坐标(0,0)为例,
水平方向下一中心点坐标为3。小数部分为0,所以选取第0组滤波器系数。
读取所有信息以后,根据如下公式进行滤波处理:
Result1 = P1*coef1+P2*coef2+P3*corf3+ P4*corf4+ P5*corf5
第一维滤波处理结束以后将运算结果传输给第二维滤波模块;
步骤五,第二维滤波模块将第一维运算结果存贮在寄存器中,在流水线开始阶段,收到5个结果以后开始第二维滤波处理。 当流水线内的数据开始传输以后,第二维滤波模块每收到3个数据进行一次滤波处理。
以坐标(0,0)为例,
水平方向下一中心点坐标为2.25。小数部分为0.25,所已选取第8组滤波器系数。
读取所有信息以后,根据如下公式进行滤波处理:
Result1 = P1*coef1+P2*coef2+P3*corf3+ P4*corf4+ P5*corf5
第二维滤波处理模块会将处理结果传输给图像混合模块;
步骤六,图像混合模块从高速缓冲存储器中读取目的图像的像素信息,同第二维滤波结果进行混合操作。并将最后结果写回高速缓冲存储器。
步骤七,高速缓冲存储器根据微控制器传输的坐标将处理完成的数据写回内存,逐步更新缓冲行 内的数据信息,直到所有的目的像素都通过流水线处理结束为止。
实施例2,当目标图像旋转角度为180时,在宏块内部光栅操作的方向如图2所示,设置的旋转为180度旋转:
其他做法同实施例1。
以上结合实施例作了说明, 上述实施例并不构成对本发明的限制,但凡采用等同替换或等效变换的形式所获得的技术方案,均落在本发明的保护范围之内。
机译: 基于二维有限冲激响应滤波器的视频图像缩放器的设计方法
机译: 对分量值敏感度低的二阶滤波器及其设计方法
机译: 图形处理系统,图形流水线以及用于实现亚像素移位到抗锯齿纹理的方法