专利名称:一种数字图像的缩放处理系统的制作方法
技术领域:
本发明涉及图像处理领域,具体地说,是涉及一种用于数字图像的缩放处理系统。
背景技术:
随着计算机、手机等多媒体领域应用产品的迅速发展,人们对图像显示的要求越来越高,由于不同的显示技术对图像的尺寸有不同的要求,需要对图像的尺寸进行灵活的变化。例如,计算机的分辨率有VGA(640×480),SVGA(800×600),XVGA(1600×1200),但对手机来说,通常显示屏的分辨率小于QVGA(320×240)。因此,怎样实现图像在不同的分辨率灵活转变并保持较高的图像质量成为日益迫切的一个问题。
在计算机的图像处理领域中,图像缩放是通过软件来实现的,通常是使用二次线性插值、三次线性插值等算法来处理。软件处理需要占用非常多的CPU资源,对计算机处理器件的要求很高。但对于手机来说,CPU的功能不够强大,对处理视频的缩放来说远远不够,因此通过软件来实现视频缩放是不可能的,这就需要用硬件来解决这个问题。
在一般的视频卡、视频采集卡中,通常使用二次线性插值来实现硬件的图像缩放。这种算法能够带来较好的图像质量,但却需要占用较多的硬件资源(例如乘法器和除法器等)。
发明内容
本发明的目的是为了提供一种图像缩放处理系统,来提高芯片支持图像和视频实现的性能。
为达到上述目的,本发明提供方案如下一种数字图像的缩放处理系统,其接收上位机1发送来的指令和图像预处理模块2发送来的图像数据,根据上位机1发送来的指令对图像数据进行缩放处理,并将缩放处理的图像送给图像后处理模块4,由图像后处理模块4对图像进行压缩或者直接显示。
本发明所述的图像缩放处理系统包括前置滤波器模块4、图像横向尺寸缩放模块5、图像缩放行缓冲器模块6、命令发送模块7、图像缩放系数计算模块8和图像纵向尺寸缩放模块9;由上位机1通过命令发送模块7,将该图像缩放处理系统激活并使之处于正常的工作状态,此时前置滤波器模块4将图像预处理模块送过来的图像进行低通滤波,此低通滤波器的系数由上位机1根据图像缩放比例进行配置,通过命令发送模块7发送给前置滤波器模块4;图像缩放系数计算模块8根据上位机1发送给命令发送模块7的命令,计算缩放的系数并送给图像横向尺寸缩放模块5和图像纵向尺寸缩放模块9使用;图像横向尺寸缩放模块5根据命令发送模块7发送的指令和缩放系数对经前置滤波的图像在横向进行缩放处理,并将处理过的图像储存在图像缩放行缓冲器模块6中,然后图像纵向尺寸缩放模块9再对图像缩放行缓冲器模块6中的图像进行纵向尺度的变换。
本发明所述的前置滤波器模块4包括横向滤波器模块41,滤波器行缓冲器模块42和纵向滤波器模块43;横向滤波器模块41首先在横向尺度上对图像进行滤波,并把横向滤波后的图像储存在滤波器行缓冲器模块42中;由于所述系统采取七阶滤波,滤波器行缓冲器模块42储存了6行的图像数据;纵向滤波器模块43把图像从滤波器行缓冲器模块42取出,并对之进行纵向滤波。
本发明所述的命令发送模块7包括寄存器地址译码模块71、寄存器读写模块72、寄存器模块73,寄存器地址译码模块71将上位机1发送过来的寄存器地址进行译码,找到要操作的寄存器单元;寄存器读写模块72则完成对该寄存器的读写操作;而寄存器模块73则包含了数量众多的控制寄存器。
本发明所述的寄存器模块73包括输入图像宽度寄存器731,输入图像高度寄存器732,输出图像宽度寄存器733,输出图像高度寄存器734,前置滤波器系数寄存器735,图像放大倍数寄存器736和图像缩小倍数寄存器737;在启动图像缩放之前,由上位机1配置好这些寄存器的值,以保证所述系统的正常工作。
与现有技术相比,本发明的优点在于本发明所述的图像缩放处理系统中,不需要较大的图像缓冲区,仅仅需要几条行缓冲器,这样大大节约了存储器的使用;其次,由于该方法是实时操作,输入几行图像数据就可以启动缩放操作,因此延迟极小,仅有几行,不像传统方法需要有一帧的延迟;第三,由于该方法将二维滤波转化为两个一维滤波,将二位图像的缩放转化维两个一位图像缩放,大大减少了乘法器的使用,使芯片的成本大大降低;最后,由于该方法使用查表法代替除法器来计算图像缩放器的系数,使芯片成本进一步降低,而我们都知道除法器不易实现。
本发明目的、特点及优点将参照附图结合实施例作进一步的说明。
图1是本发明的结构框图。
图2是本发明所述前置滤波器模块的结构框图。
图3是本发明所述命令发送模块的结构框图。
图4是本发明所述寄存器模块的结构框图。
图5是本发明所述的寄存器的一个参考配置。
具体实施例方式
参照附图1,是本发明的结构框图。
一种数字图像的缩放处理系统,其接收上位机发送来的指令和图像预处理模块发送来的图像数据,根据上位机发送来的指令对图像数据进行缩放处理,并将缩放处理的图像送给图像后处理模块,由图像后处理模块对图像进行压缩或者直接显示。
本发明所述的图像缩放处理系统包括前置滤波器模块、图像横向尺寸缩放模块、图像缩放行缓冲器模块、命令发送模块、图像缩放系数计算模块和图像纵向尺寸缩放模块;由上位机通过命令发送模块,将该图像缩放处理系统激活并使之处于正常的工作状态,此时前置滤波器模块将图像预处理模块送过来的图像进行低通滤波,此低通滤波器的系数由上位机根据图像缩放比例进行配置,通过命令发送模块发送给前置滤波器模块;图像缩放系数计算模块根据上位机发送给命令发送模块的命令,计算缩放的系数并送给图像横向尺寸缩放模块和图像纵向尺寸缩放模块使用;图像横向尺寸缩放模块根据命令发送模块发送的指令和缩放系数对经前置滤波的图像在横向进行缩放处理,并将处理过的图像储存在图像缩放行缓冲器模块中,然后图像纵向尺寸缩放模块再对图像缩放行缓冲器模块中的图像进行纵向尺度的变换。
参照附图2,是本发明所述前置滤波器模块的结构框图。本发明所述的前置滤波器模块包括横向滤波器模块,滤波器行缓冲器模块和纵向滤波器模块;横向滤波器模块首先在横向尺度上对图像进行滤波,并把横向滤波后的图像储存在滤波器行缓冲器模块中;由于所述系统采取七阶滤波,滤波器行缓冲器模块储存了6行的图像数据;纵向滤波器模块把图像从滤波器行缓冲器模块取出,并对之进行纵向滤波。
参照附图3,是本发明所述命令发送模块的结构框图。本发明所述的命令发送模块包括寄存器地址译码模块、寄存器读写模块、寄存器模块,寄存器地址译码模块将上位机发送过来的寄存器地址进行译码,找到要操作的寄存器单元;寄存器读写模块则完成对该寄存器的读写操作;而寄存器模块则包含了数量众多的控制寄存器。
参照附图4是本发明所述寄存器模块的结构框图。本发明所述的寄存器模块包括输入图像宽度寄存器(IMG_WIDTH),输入图像高度寄存器(IMG_HEIGHT),输出图像宽度寄存器(OUT_WIDTH),输出图像高度寄存器(OUT_HEIGHT),前置滤波器系数寄存器(FIR_COEF),图像放大倍数寄存器(UP_FACTOR)和图像缩小倍数寄存器(DOWN_FACTOR);在启动图像缩放之前,由上位机配置好这些寄存器的值,以保证所述系统的正常工作。
在图像缩放处理之前,上位机首先要完成相关寄存器的配置,以保证该系统能够正常工作。例如,如果该系统输入图像大小为640×480,输出图像大小为352×288,滤波器的系数采取0、1/16、3/16、8/16、3/16、1/16、0,则这些寄存器的配置可以参照附图5。当图像从图像预处理模块到来时,这些相关的配置已经完成。
当图像输入时,首先要由前置滤波器对之进行滤波。该系统采取7×7的二维低通滤波,滤波器系数的选取要根据图像缩放的比例来确定。滤波之后,图像的高频噪声已经被去除,但图像的大小仍为640×480(以上述参考配置为例),这时首先要进行横向尺度的缩放;由于该系统采取双线性差值,差值系数需要由图像缩放系数计算模块计算得到。做完横向缩放后,每行的尺寸变为352,但高都仍为480,图像储存在图像缩放行缓冲器模块,在该模块中储存有三条图像的颜色数值。然后再由纵向图像缩放模块对之进行纵向的缩放。这样图像尺寸就有640×480变为352×288。
参照附图2,对于图像前置低通滤波,该系统采取7×7的线性差值,即滤波后的一个象素的颜色数值由周围7×7个象素点经过线性加权平均得到,这样就需要49个乘法器。根据前述,该方法将二维运算转化为两个一维运算,并采取对称的滤波器系数,这样对于每一个一维滤波器(横向滤波和纵向滤波),仅仅需要4个乘法器。以横向滤波为例,假设要计算的象素为Pn’,它与滤波前的Pn-3,Pn-2,Pn-1,Pn,Pn+1,Pn+2和Pn+3相关,则Pn’的计算公式为Pn’=(Pn-3+Pn+3)*FIR_COEF0+(Pn-2+Pn+2)*FIR_COEF1+(Pn-1+Pn+1)*FIR_COEF2+Pn*FIR_COEF3上述公式中滤波器的系数由上位机来配置。此系数与图像缩放的比例相关,它应保证在缩放之后图像应该没有高频噪声,同时应该具有较清晰的图像质量。
做完横向滤波后,图像存在滤波器行缓冲器模块里。滤波器行缓冲器模块包含了六条行缓冲器,可以储存六行图像的数据。对于七阶纵向滤波需要有七行的图像,缓冲器里存有六条,而第七行则实时的在输入;第七行的数据输入之后不仅提供给纵向滤波器使用,而且会覆盖掉原先第一行数据所占用的缓冲器,所以六条缓冲器就能够满足使用。
对于纵向滤波,其算法通横向滤波完全一样,唯一区别是计算方向的差别。
做完滤波之后,就要对图像进行横向尺度的缩放。缩放比例由寄存器UP_FACTOR和DOWN_FACTOR决定,比如由640×480到352×288,其缩放比例是11/20,则UP_FACTOR=11,DOWN_FACTOR=20。图像缩放涉及到两步,首先根据UP_FACTOR将图像的横向尺寸变为IMG_WIDTH*UP_FACTOR,即7040;然后再在这7040个象素里面每20个抽取一个作为输出图像的象素,这样输出图像宽度就是352。但是,在具体实现的时候可以不储存7040个象素的值,因为这里面绝大多数都是没有用而且要丢掉的;我们只需要储存那些出现在最后输出图像象素的值。在本系统的横向缩放方法中,有两个计数器,其中一个是用以统计输入图像中一行象素的个数(PIXEL_CNT),每到一个象素它自动会增加1;另一个计数器(UPSIZE_COUNT)用以计算每行需要抽取的象素的位置,当新的一帧图像到来或者该帧图像某一行结束时,该计数器清零;以后每到来一个新的象素该计数器的值就加上UP_FACTOR。如果新的象素到来后发现UPSIZE_COUNT>=DOWN_FACTOR,在输出图像中有一个输出象素,同时从UPSIZE_COUNT减取DOWN_FACTOR。由于新的象素必然出现在刚刚到达的两个输入象素的中间,它就由这两个象素的加权平均计算得到。设刚刚到达的两个象素为P1和P2,则新的象素颜色值可以通过以下公式计算得到Pnew=(1-a)*P1+a*P2其中系数a可以根据新的象素Pnew和P1的距离(即UPSIZE_COUNT)求出a=UPSIZE_COUNT/UP_FACTOR由于UP_FACTOR是一个六位二进制数,为避免除法器,在系统中存在一个表储存64个1/UP_FACTOR。
这样一个一个象素依照同样的方法处理,就可以得到经过横向缩放的一行图像,处理过的图像储存在图像缩放行缓冲器模块4中。三条图像缩放行缓冲器可以储存三行横向缩放处理过的图像,其工作方式是这样的当缓冲器里存有两行图像数据就可以进行纵向缩放处理;但是由于在做纵向处理的时候输入图像还有可能继续进来,因此需要第三条缓冲器来储存输入的图像。纵向图像缩放的处理方法与横向几乎一样。这样可以得到一幅完整的经过缩放处理的图像。
本发明所述的一种数字图像的缩放处理系统,并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明之领域,对于熟悉本领域的人员而言可容易地实现另外的优点和进行修改,因此在不背离权利要求及等同范围所限定的一般概念的精神和范围的情况下,本发明并不限于特定的细节、代表性的设备和这里示出与描述的图示示例。
权利要求
1.一种数字图像的缩放处理系统,其接收上位机(1)发送来的指令和图像预处理模块(2)发送来的图像数据,根据上位机(1)发送来的指令对图像数据进行缩放处理,并将缩放处理的图像送给图像后处理模块(4),由图像后处理模块(4)对图像进行压缩或者直接显示;其特征在于所述的图像缩放处理系统包括前置滤波器模块(4)、图像横向尺寸缩放模块(5)、图像缩放行缓冲器模块(6)、命令发送模块(7)、图像缩放系数计算模块(8)和图像纵向尺寸缩放模块(9);由上位机(1)通过命令发送模块(7),将该图像缩放处理系统激活并使之处于正常的工作状态,此时前置滤波器模块(4)将图像预处理模块送过来的图像进行低通滤波,此低通滤波器的系数由上位机(1)根据图像缩放比例进行配置,通过命令发送模块(7)发送给前置滤波器模块(4);图像缩放系数计算模块(8)根据上位机(1)发送给命令发送模块(7)的命令,计算缩放的系数并送给图像横向尺寸缩放模块(5)和图像纵向尺寸缩放模块(9)使用;图像横向尺寸缩放模块(5)根据命令发送模块(7)发送的指令和缩放系数对经前置滤波的图像在横向进行缩放处理,并将处理过的图像储存在图像缩放行缓冲器模块(6)中,然后图像纵向尺寸缩放模块(9)再对图像缩放行缓冲器模块(6)中的图像进行纵向尺度的变换。
2.根据权利要求1所述的图像缩放处理系统,其特征在于所述的前置滤波器模块(4)包括横向滤波器模块(41),滤波器行缓冲器模块(42)和纵向滤波器模块(43);横向滤波器模块(41)首先在横向尺度上对图像进行滤波,并把横向滤波后的图像储存在滤波器行缓冲器模块(42)中;由于所述系统采取七阶滤波,滤波器行缓冲器模块(42)储存了6行的图像数据;纵向滤波器模块(43)把图像从滤波器行缓冲器模块(42)取出,并对之进行纵向滤波。
3.根据权利要求1所述的图像缩放处理系统,其特征在于所述的命令发送模块(7)包括寄存器地址译码模块(71)、寄存器读写模块(72)、寄存器模块(73),寄存器地址译码模块(71)将上位机(1)发送过来的寄存器地址进行译码,找到要操作的寄存器单元;寄存器读写模块(72)则完成对该寄存器的读写操作;而寄存器模块(73)则包含了数量众多的控制寄存器。
4.根据权利要求3所述的图像缩放处理系统,其特征在于所述的寄存器模块(73)包括输入图像宽度寄存器(731),输入图像高度寄存器(732),输出图像宽度寄存器(733),输出图像高度寄存器(734),前置滤波器系数寄存器(735),图像放大倍数寄存器(736)和图像缩小倍数寄存器(737);在启动图像缩放之前,由上位机(1)配置好这些寄存器的值,以保证所述系统的正常工作。
全文摘要
本发明涉及图像处理领域,并具体的公开了一种用于数字图像的缩放处理系统。本发明所述的图像缩放处理系统包括前置滤波器模块、图像横向尺寸缩放模块、图像缩放行缓冲器模块、命令发送模块、图像缩放系数计算模块和图像纵向尺寸缩放模块。按照本发明可以提高芯片支持图像和视频实现的性能。
文档编号G06T1/00GK1719476SQ200410068819
公开日2006年1月11日 申请日期2004年7月8日 优先权日2004年7月8日
发明者李国新, 周芬, 腰建勋, 高晓宇 申请人:北京中星微电子有限公司