一种图像缩放的方法和装置的制作方法

文档序号:6603023阅读:158来源:国知局
专利名称:一种图像缩放的方法和装置的制作方法
技术领域
本发明属于图像处理领域,尤其涉及一种图像缩放的方法和装置。
背景技术
在通过显示屏显示外部存储器中的原始图像时,通常显示屏的显示区域大小与原始图像的大小存在差异,因此一般需要对原始图像进行缩放处理后再显示。在对原始图像进行缩放处理时,为了保证显示屏的实时性,一般均需要先将全部或者部分原始图像数据从外部存储器中读取到输入缓存,再对输入缓存中的原始图像数据进行插值运算,得到目标图像数据。当需要从外部存储器中读取较多行的原始图像数据进行图像缩放处理时,不仅增大了数据传输量、增加了 DMA带宽的占用,导致系统资源的浪费,而且由于图像缩放处理时间长,导致需要大幅度增加输出缓存的空间才能保证显示屏的实时性需求,从而成本尚ο请参阅图1,为现有技术提供的图像缩放方法的一个示例图,简述如下当进行图像缩放处理时,通过直接内存访问(Direct Memory Access,DMA)方式将外部存储器中存储的原始图像数据逐行依次读取至输入缓冲区,对输入缓冲区中的原始图像数据进行一定的插值处理,并将插值处理后的图像数据传输至输出缓冲区,再通过一定的接口时序将输出缓冲区中的图像数据传输至显示屏进行显示。由于每往输出缓冲区中写一行图像数据,都需要经过从外部存储器读取数据至输入缓冲区、图像插值等多个步骤,而现有技术的缺陷就在于无论原始行数据最终是否参与插值运算,也无论这一行数据最终是否有用,都会把这一行数据读入进来,这样势必会加大数据传输量、增加图像缩放处理时间,与此同时还很容易造成输出缓冲区读空从而导致显示屏显示异常。请参阅图2,现有技术还提供了另一种图像缩放的方法,该方法在对原始图像进行缩放处理前,先通过动态预判断电路,预先判断出图像缩放过程中需要参与插值运算的有效数据行,如图2中的L1、L3、L4、L6、L7、L9、L10、L11、L12。这种方法一定程度上减少了需要传输的数据量,降低了系统中DMA带宽占用。但是由于需要额外增加动态预判断电路进行判断,增加了硬件资源,而且需要读取的数据行也还是比较多,在缩小比例较大时,为了保证显示屏的实时性,还是需要较大的缓冲区空间。

发明内容
本发明实施例的目的在于提供一种图像缩放的方法,旨在解决现有的图像缩放方法数据传输量大、DMA带宽和缓存空间浪费严重的问题。本发明实施例是这样实现的,一种图像缩放的方法,所述方法包括下述步骤根据原始图像与目标图像之间的垂直尺寸关系确定要读取的数据行的间隔行数;根据间隔行数确定要从原始图像中读取的数据行信息,并从原始图像中读取确定的要从原始图像中读取的数据行信息;
对读取的数据行信息进行插值运算,并将插值运算结果存储至输出缓存。本发明实施例的另一目的在于提供一种图像缩放的装置,所述装置包括图像读取控制单元,用于根据原始图像与目标图像之间的垂直尺寸关系确定要读取的数据行的间隔行数;直接内存访问控制单元,用于根据间隔行数确定要从原始图像中读取的数据行信息,并从原始图像中读取确定的要从原始图像中读取的数据行信息;输入缓存,用于存储所述直接内存访问控制单元读取的原始图像的数据行信息;图像插值处理单元,用于对读取的数据行信息进行插值运算;输出缓存,用于存储所述图像插值处理单元的插值运算结果。在本发明实施例中,通过根据原始图像与目标图像之间的垂直尺寸关系确定缩放过程中需要的数据行信息,再从外部存储器中读取确定的数据行信息至输入缓存,然后由图像插值处理单元根据输入缓存中的数据行信息对原始图像进行插值缩放,由于只读取缩放过程中需要的数据行信息,从而最大限度的减少了数据传输量和图像缩放处理时间,进而减少了显示屏控制器的输出缓存,提高了显示屏的实时性。


图1是现有技术提供的图像缩放的方法的示例图;图2是现有技术提供的另一图像缩放的方法的示例图;图3是本发明实施例提供的图像缩放的方法的实现流程图;图4是本发明实施例提供的图像缩放的方法的示例图;图5是本发明实施例提供的图像缩放的装置的结构框图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。在本发明实施例中,在将输入的原始图像缩放处理成目标图像时,先根据原始图像与目标图像之间的垂直尺寸关系确定缩放过程中需要的数据行信息,再从外部存储器中读取确定的数据行信息至输入缓存,然后由图像插值处理单元根据输入缓存中的数据行信息对原始图像进行插值缩放,由于只读取缩放过程中需要的数据行信息,从而最大限度的减少了数据传输量和图像缩放处理时间,进而减少了显示屏控制器的输出缓存,提高了显示屏的实时性。图3示出了本发明实施例提供的图像缩放的方法的实现流程,详述如下在步骤SlOl中,根据原始图像与目标图像之间的垂直尺寸关系确定要读取的数据行的间隔行数。由于导致传输数据占用DMA带宽过多、以及导致图像缩放处理时间过长的主要因素是垂直方向的插值判断和插值运算,因此,本发明主要考虑原始图像与目标图像之间的垂直方向的尺寸关系来确定要读取的数据行的间隔行数。其中根据原始图像与目标图像之间的垂直方向的尺寸关系确定要读取的数据行
5的间隔行数的步骤具体如下A、获取原始图像垂直方向的尺寸Simgv和目标图像垂直方向的尺寸Dimgv。B、根据原始图像垂直方向的尺寸Simgv和目标图像垂直方向的尺寸Dimgv的比值 M确定间隔行数N。其中间隔行数N是指从原始图像中每隔N行选取一行。为了保证经缩放处理后的目标图像的质量,根据Simgv和Dimgv的比值M确定N 的具体方式如下若L<M彡L+1,则N = L,其中 L 为整数,M = Simgv/Dimgv。在本发明实施例中,当原始图像的垂直尺寸大于目标显示的垂直尺寸,即M大于1 时,对原始图像进行一定的抽取,只读取缩放过程中需要的部分行数据信息;当原始图像的垂直尺寸小于或等于目标显示的垂直尺寸,即M小于或等于1 (N = 0)时,此时需要作放大处理,则读取原始图像的每一行数据,不做抽取。在步骤S102中,根据间隔行数确定要从原始图像中读取的数据行信息,并从原始图像中读取确定的要从原始图像中读取的数据行信息。其中根据间隔行数确定要从原始图像中读取的数据行信息的具体过程如下将原始图像中的第一行图像数据确定为要读取的数据行;将原始图像的第一行开始,每间隔间隔行数的数据行确定为要读取的数据行。从原始图像中读取确定的要从原始图像中读取的数据行信息的步骤如下根据间隔行数N、原始图像的各分量的起始地址计算要从原始图像中读取的各数据行的各分量地址,并根据各数据行的各分量地址从原始图像中读取要读取的数据行信肩、ο在本发明实施例中,由于原始图像一般存储在外部存储器中,且一般采用DMA方式从外部存储器中读取要读取的数据行信息,因此,根据间隔行数N以及原始图像的各分量的DMA起始地址计算缩放过程中要读取的各数据行的各分量的DMA地址。当原始图像为YUV420格式时,根据间隔行数N、原始图像的各分量的起始地址计算要从原始图像中读取的各数据行的各分量地址的地址计算公式如下 Y_addr = Y_baddr+(N+1)氺Simgh氺Snum ;U_addr = U_baddr+P氺Simgh/4 ;V_addr = V_baddr+P氺Simgh/4 ;若(N+1)*Snum 为奇数,则 P= (N+1) *Snum_l ;反之,则 P= (N+1) *Snum。当原始图像为YUV422格式时,根据间隔行数N、原始图像的各分量的起始地址计算要从原始图像中读取的各数据行的各分量地址的地址计算公式如下Y_addr = Y_baddr+(N+1)氺Simgh氺Snum ;U_addr = U_baddr+(N+1)氺Simgh氺Snum/2 ;V_addr = V_baddr+(N+1)氺Simgh氺Snum/2 ;当原始图像为YUV444格式时,根据间隔行数N、原始图像的各分量的起始地址计算要从原始图像中读取的各数据行的各分量地址的地址计算公式如下Y_addr = Y_baddr+(N+1)氺Simgh氺Snum ;
U_addr = U_baddr+(N+1)氺Simgh氺Snum ;
V_addr = V_baddr+(N+1)氺Simgh氺Snum ;
6
其中,Y_baddr、U_baddr、V_baddr分别为 Y、U、V 各分量的 DMA 起始地址;Y_addr、 U_addr、V_addr为相应的每行数据各分量的DMA地址;Simgh为原始图像的水平尺寸;Snum 为已经读取的行数,该值由后续图像插值处理单元进行累计。由于已经计算出要读取的数据行的各分量的DMA地址,从而根据对应数据行的各分量的DMA地址即可从用于存储原始图像的外部存储器中读取要读取的数据行。在本发明实施例中,将从原始图像中读取的数据行存储至输入缓存中。在本发明实施例中,当显示屏的控制器需要提供多路输出,对应有多个通道时,将从原始图像中读取的数据行存储至相应通道的输入缓存中。在本发明实施例中,在根据要读取的数据行的各分量地址从外部存储器中存储的原始图像中读取要读取的数据行信息时,由于每个通道只需要从外部存储器中存储的原始图像中读取图像缩放过程中需要的数据行信息,从而极大的降低了各通道中数据的传输量,进而节省了为保证显示屏的实时性而额外增加的缓存空间。在步骤S103中,对读取的数据行信息进行插值运算,并将插值运算结果存储至输出缓存,以备输出。其中对读取的数据行信息进行插值运算的具体过程属于现有技术,故简述如下在本发明实施例中,每从输入缓存中读取一行原始图像数据,先进行指定的水平缩放操作,所得到的数据存入行数据缓冲区,或者将进行了指定的水平缩放操作所得到的数据与行数据缓冲区中已存储的上一行数据进行垂直方向的缩放操作,缩放产生的最终结果传输至输出缓存区,最后通过一定的接口时序传输至显示屏进行显示。在本发明实施例中,输出缓存采用先进先出(First In First Out, FIFO)的输出策略。在本发明实施例中,当需要提供多路输出,对应有多个通道时,分别对与各通道对应的输入缓存中的数据行信息进行插值运算,并将各个通道的插值运算结果进行混合,将混合后的数据存储至输出缓存中。为了进一步理解本发明,以下以一个具体的示例对本发明实施例进行说明请参阅图4,为本发明实施例提供的图像的缩放方法的示例图。假设原始图像垂直方向的尺寸Simgv为12,目标图像垂直方向的尺寸Dimgv为5, 原始图像中共包含12行图像数据,行号分别为L1、L2、……、L12。则M = Simgv/Dimgv = 12/5 = 2. 4。由于 2 < M 彡 2+1,所以间隔行数 N = 2,从而将原始图像的第一行数据Ll确定为要读取的数据,并将原始图像中从第一行Ll开始,每间隔2行的数据行L4、L7、L10确定为要读取的数据。即要从原始图像中读取的数据行包括原始图像中的第Li、L4、L7、LlO行的数据。根据计算得到的要读取的数据行的各分量地址后,即可依次从原始图像中读取第 Li、L4、L7、LlO行的数据至输入缓存中。依次读取输入缓存中的数据行进行插值运算,并将插值运算的结果暂存于输出缓存。即根据Li、L4、L7、LlO行的数据进行插值运算,得到目标图像的5行数据。举例说明如下将Ll直接作为目标图像的第一行数据Dl ;将Ll和L4进行双线性插值运算,得到目标图像的第二行数据D2 ;将L4和L7进行双线性插值运算,得到目标图像的第三行数据D3 ;将L7和LlO进行双线性插值运算,得到目标图像的第四行数据D4 ;同时将L7和LlO进行双线性插值运算,得到目标图像的第五行数据D5。即本发明实施例提供的方法只需要从原始图像中读取L1、L4、L7、L10共四行数据即可将原始图像缩放处理成目标图像。而图1所示的现有技术的方法需要从原始图像中读取所有数据行共12行数据才能将原始图像缩放处理成目标图像。而图2所示的现有技术的方法需要从原始图像中读取Li、L3、L4、L6、L7、L9、L10、Lll、L12共9行数据才能将原始图像缩放处理成目标图像。因此,相对于现有技术,本发明实施例提供的方法可以最大限度的减少数据传输量和图像缩放处理时间,进而减少输出缓存,提高显示屏的实时性。图5示出了本发明实施例提供的图像缩放的装置的结构,为了便于说明仅示出了与本发明实施例相关的部分。该装置可以用于显示屏控制器,例如移动终端的显示屏控制器、手持设备的显示屏控制器等,可以是运行于这些设备内的软件单元、硬件单元或者软硬件相结合的单元,也可以作为独立的挂件集成到这些设备中或者运行于这些设备的应用系统中,其中图像读取控制单元1根据原始图像与目标图像之间的垂直尺寸关系确定要读取的数据行的间隔行数。该图像读取控制单元1包括尺寸获取模块11和间隔行数计算模块12。其中尺寸获取模块11获取原始图像垂直方向的尺寸Simgv和目标图像垂直方向的尺寸 Dimgv0间隔行数计算模块12根据原始图像垂直方向的尺寸Simgv和目标图像垂直方向的尺寸Dimgv的比值M确定间隔行数N。其中间隔行数N是指从原始图像中每间隔N行选取一行。为了保证经缩放处理后的目标图像的质量,根据Simgv和Dimgv的比值M确定N 的具体方式如下若L<M彡L+1,则N = L,其中 L 为整数,M = Simgv/Dimgv。在本发明实施例中,当原始图像的垂直尺寸大于目标显示的垂直尺寸,即M大于1 时,对原始图像进行一定的抽取,只读取缩放过程中需要的部分行数据信息;当原始图像的垂直尺寸小于或等于目标显示的垂直尺寸,即M小于或等于1 (N = 0)时,此时需要作放大处理,则读取原始图像的每一行数据,不做抽取。直接内存访问控制单元2根据间隔行数确定要从原始图像中读取的数据行信息, 并从原始图像中读取确定的要从原始图像中读取的数据行信息。该直接内存访问控制单元2将原始图像中的第一行图像数据确定为要读取的数据行,并将原始图像的第一行开始,每间隔间隔行数的数据行确定为要读取的数据行。从原始图像中读取确定的要从原始图像中读取的数据行信息的步骤如下根据间隔行数N、原始图像的各分量的起始地址计算要从原始图像中读取的各数据行的各分量地址,并根据各数据行的各分量地址从原始图像中读取要读取的数据行信肩、ο在本发明实施例中,由于原始图像一般存储在外部存储器中,且一般采用DMA方式从外部存储器中读取要读取的数据行信息,因此,根据间隔行数N以及原始图像的各分量的DMA起始地址计算缩放过程中要读取的各数据行的各分量的DMA地址。
其中各种格式的原始图像中,要读取的各数据行的各分量的DMA地址计算公式如上所述,在此不再赘述。输入缓存3存储直接内存访问控制单元2读取的原始图像的数据行信息。在本发明另一实施例中,当显示屏控制器需要提供多路输出,对应有多个通道时, 则输入缓存3包括与每个通道对应的输入缓存,且与每个通道对应的输入缓存存储直接内存访问控制单元2读取的与该通道对应的原始图像的数据行信息。举例说明如下当显示屏控制器提供3路输出,分别对应YUVl通道、YUV2通道和RGB通道时,则输入缓存3包括与YUVl通道对应的YUVl输入缓存、与YUV2通道对应的YUV2输入缓存以及与RGB通道对应的RGB输入缓存。图像插值处理单元4对读取的数据行信息进行插值运算,得到插值运算后的图像数据。该图像插值处理单元4包括水平缩放处理模块41、行数据缓冲区42和垂直缩放处理模块43。其中水平缩放处理模块41在输入缓存3中每输入一行原始图像数据时,对原始图像数据进行指定的水平缩放处理,得到水平缩放处理后的图像数据。行数据缓冲区42存储水平缩放处理后的图像数据。垂直缩放处理模块43将水平缩放处理模块41处理后的图像数据与行数据缓冲区 42中已存储的上一行图像数据进行垂直方向的缩放处理。输出缓存5存储图像插值处理单元4得到的插值运算后的图像数据。在本发明实施例中,输出缓存5采用先进先出(First In First Out, FIFO)的输出策略。在本发明另一实施例中,当显示屏控制器需要提供多路输出,对应有多个通道时, 图像插值处理单元4包括与每个通道分别对应的图像插值处理单元,与每个通道分别对应的图像插值处理单元对与其对应的输入缓存中读取的数据行信息进行插值运算。举例说明如下当显示屏控制器提供3路输出,分别对应YUVl通道、YUV2通道和RGB通道时,则输入缓存3包括与YUVl通道对应的YUVl输入缓存、与YUV2通道对应的YUV2输入缓存以及与RGB通道对应的RGB输入缓存。图像插值处理单元4包括与YUVl输入缓存连接的YUVl 图像插值处理单元、与YUV2输入缓存连接的YUV2图像插值处理单元、与RGB输入缓存连接的RGB图像插值处理单元。此时,该装置还包括图像混合单元6。该图像混合单元6对图像插值处理单元4包括的与每个通道对应的各图像插值处理单元得到的插值运算后的图像数据进行混合。此时,输出缓存存储图像混合单元6进行混合处理后的图像数据。本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于计算机可读取存储介质中, 所述的存储介质,如ROM/RAM、磁盘、光盘等。在本发明实施例中,在将输入的原始图像缩放处理成目标图像时,先根据原始图像与目标图像之间的垂直尺寸关系确定缩放过程中需要的数据行信息,再从外部存储器中读取确定的数据行信息至输入缓存,然后由图像插值处理单元根据输入缓存中的数据行信息对原始图像进行插值缩放,由于只读取确定的数据行信息,从而最大限度的减少了数据传输量和图像缩放处理时间,进而减少了显示屏控制器的输出缓存,提高了显示屏的实时性。 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种图像缩放的方法,其特征在于,所述方法包括下述步骤根据原始图像与目标图像之间的垂直尺寸关系确定要读取的数据行的间隔行数; 根据间隔行数确定要从原始图像中读取的数据行信息,并从原始图像中读取确定的要从原始图像中读取的数据行信息;对读取的数据行信息进行插值运算,并将插值运算结果存储至输出缓存。
2.如权利要求1所述的方法,其特征在于,所述根据原始图像与目标图像之间的垂直尺寸关系确定要读取的数据行的间隔行数的步骤具体为获取原始图像垂直方向的尺寸Simgv和目标图像垂直方向的尺寸Dimgv ; 根据原始图像垂直方向的尺寸Simgv和目标图像垂直方向的尺寸Dimgv的比值M确定间隔行数N。
3.如权利要求2所述的方法,其特征在于,所述根据原始图像垂直方向的尺寸Simgv和目标图像垂直方向的尺寸Dimgv的比值M确定间隔行数N的步骤具体为若 L < M 彡 L+1,则 N = L,其中 L 为整数,M = Simgv/Dimgv。
4.如权利要求1所述的方法,其特征在于,所述根据间隔行数确定要从原始图像中读取的数据行信息,并从原始图像中读取确定的要从原始图像中读取的数据行信息的步骤具体为将原始图像中的第一行图像数据确定为要读取的数据行; 将原始图像的第一行开始,每间隔间隔行数的数据行确定为要读取的数据行。
5.如权利要求1所述的方法,其特征在于,当显示屏控制器需要提供多路输出,对应有多路通道时,将从原始图像中读取的数据行存储至相应通道的输入缓存中;此时,所述对读取的数据行信息进行插值运算,并将插值运算结果存储至输出缓存的步骤具体为分别对与各通道对应的输入缓存中的数据行信息进行插值运算,并将各个通道的插值运算结果进行混合,将混合后的数据存储至输出缓存中。
6.一种图像缩放的装置,其特征在于,所述装置包括图像读取控制单元,用于根据原始图像与目标图像之间的垂直尺寸关系确定要读取的数据行的间隔行数;直接内存访问控制单元,用于根据间隔行数确定要从原始图像中读取的数据行信息, 并从原始图像中读取确定的要从原始图像中读取的数据行信息;输入缓存,用于存储所述直接内存访问控制单元读取的原始图像的数据行信息; 图像插值处理单元,用于对读取的数据行信息进行插值运算; 输出缓存,用于存储所述图像插值处理单元的插值运算结果。
7.如权利要求6所述的装置,其特征在于,所述图像读取控制单元包括尺寸获取模块,用于获取原始图像垂直方向的尺寸Simgv和目标图像垂直方向的尺寸 Dimgv ;间隔行数计算模块,用于根据所述原始图像垂直方向的尺寸Simgv和目标图像垂直方向的尺寸Dimgv的比值M确定间隔行数N。
8.如权利要求7所述的装置,其特征在于,所述间隔行数计算模块在L< M < L+1时, 确定N = L,其中L为整数,M = Simgv/Dimgv。
9.如权利要求6所述的装置,其特征在于,所述直接内存访问控制单元将原始图像中的第一行图像数据确定为要读取的数据行,并将原始图像的第一行开始,每间隔间隔行数的数据行确定为要读取的数据行。
10.如权利要求6所述的装置,其特征在于,当显示屏控制器需要提供多路输出,对应有多路通道时,所述输入缓存包括与每个通道对应的输入缓存,且与每个通道对应的输入缓存存储所述直接内存访问控制单元读取的与该通道对应的原始图像的数据行信息;所述图像插值处理单元包括与每个通道分别对应的插值处理单元,与每个通道分别对应的插值处理单元对与其对应的输入缓存中读取的数据行信息进行插值运算;所述装置还包括图像混合单元,用于对所述图像插值处理单元包括的与每个通道对应的各图像插值处理单元得到的插值运算后的图像数据进行混合,并将混合后的图像数据传输至输出缓存。
全文摘要
本发明适用于图像处理领域,提供了图像缩放的方法和装置,所述方法包括下述步骤根据原始图像与目标图像之间的垂直尺寸关系确定要读取的数据行的间隔行数;根据间隔行数确定要从原始图像中读取的数据行信息,并从原始图像中读取确定的要从原始图像中读取的数据行信息;对读取的数据行信息进行插值运算,并将插值运算结果存储至输出缓存。本发明实施例可以最大限度的减少数据传输量和图像缩放处理时间,进而减少显示屏控制器的输出缓存,提高显示屏的实时性。
文档编号G06T3/40GK102263880SQ20101018244
公开日2011年11月30日 申请日期2010年5月25日 优先权日2010年5月25日
发明者李小明, 王强, 胡胜发, 许永永 申请人:安凯(广州)微电子技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1