发明内容
本发明实施例的目的在于提供一种图像放大方法及装置,以解决现有技术存在的,在实时性要求较高的情况下,进行图像整数倍放大需要硬件放大单元数量较多,导致成本较高的问题。
本发明的实施例是这样实现的,一种图像放大方法,所述方法包括以下步骤:
输入的像素点为第一类像素点时,复制所述像素点作为目标图像的第一行左数第一个像素点,所述第一类像素点为源图像中第一行左起第一个像素点;
每输入一个第二类像素点时,在所述像素点的水平方向插值M个像素点,所述第二类像素点为源图像中第一行左起第二个像素点至第一行第R个像素点,所述R为源图像中水平方向像素点的个数,所述M为图像在水平方向的放大倍数,M为大于1的整数;
每输入一个第三类像素点时,在所述像素点的垂直方向插值N个像素点,所述第二类像素点为源图像中第一列上起第二个像素点至第一列第S个像素点,所述S为源图像中垂直方向像素点的个数,所述N为图像在垂直方向的放大倍数,N为大于1的整数;
每输入一个第四类像素点时,在所述目标图像上插值M×N个像素点的矩形区域,当源图像的所有像素点完成插值后得到第一临时图像;
填充第一临时图像右边(M-1)列和下边(N-1)行,得到目标图像。
本发明的实施例的另一目的在于提供一种图像放大装置,所述装置包括:
第一放大单元,用于输入的像素点为第一类像素点时,复制所述像素点作为目标图像的第一行左数第一个像素点,所述第一类像素点为源图像中第一行左起第一个像素点;
第二放大单元,用于每输入一个第二类像素点时,在所述像素点的水平方向插值M个像素点,所述第二类像素点为源图像中第一行左起第二个像素点至第一行第R个像素点,所述R为源图像中水平方向像素点的个数,所述M为图像在水平方向的放大倍数,M为大于1的整数;
第三放大单元,用于每输入一个第三类像素点时,在所述像素点的垂直方向插值N个像素点,所述第二类像素点为源图像中第一列上起第二个像素点至第一列第S个像素点,所述S为源图像中垂直方向像素点的个数,所述N为图像在垂直方向的放大倍数,N为大于1的整数;
第四放大单元,用于每输入一个第四类像素点时,在所述目标图像上插值M×N个像素点的矩形区域,当源图像的所有像素点完成插值后得到第一临时图像;
填充单元,用于填充第一临时图像右边(M-1)列和下边(N-1)行,得到目标图像。
本发明实施例通过调整图像放大方法,在达到图像同样倍数时,减少了对硬件放大单元的使用,实现了减低成本的有益效果。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
图1示出了本发明实施例提供的图像放大方法实现流程,该方法过程详述如下:
S11、输入的像素点为第一类像素点时,复制所述像素点作为目标图像的第一行左数第一个像素点。
需要说明的是,“第一”在本文中并不指代顺序,而是为了区别不同像素点或者图像,“第二”、“第三”和“第四”都是作为标识;输入像素点的方法可以是读取源图像的像素点,输入至目标图像;源图像像素点的输入顺序为从左到右、从上到下。
在本实施例中,源图像尺寸为R×S,即水平方向有R个像素点,垂直方向有S个像素点,源图像需要放大M×N倍,M和N都为大于1的整数,放大后的目标图像尺寸为P×Q(P=M×R,Q=N×S);第一类像素点为源图像中第一行左起第一个像素点,在本领域中,第一行左起第一个像素点必须首先复制。
S12、每输入一个第二类像素点时,在所述像素点的水平方向插值M个像素点。
在本实施例中,所述第二类像素点为源图像中第一行左起第二个像素点至第一行第R个像素点,所述M为预设图像在水平方向的放大倍数,线性插值是图像处理领域公知的一种计算方法,原理是根据源图像像素点的值、源图像尺寸、目标图像尺寸来计算目标图像的像素点值。
S13、每输入一个第三类像素点时,在所述像素点的垂直方向插值N个像素点。
在本实施例中,所述第三类像素点为源图像中第一列上起第二个像素点至第一列第S个像素点,所述S为源图像中垂直方向像素点的个数,所述N为预设图像在垂直方向的放大倍数,插值的方式与步骤S12中相似,不同的是一个在水平方向上插值,一个是垂直方向上插值。
S14、每输入一个第四类像素点时,在所述目标图像上插值M×N个像素点的矩形区域,当源图像的所有像素点完成插值后得到第一临时图像。
在本实施例中,当一个像素点同时满足非第一行像素点和非第一列像素点这两个条件,即为第四类像素点;当输入一个第四类像素点时,依据该像素点、该像素点上一行并且是上一列的像素点、该像素点上一行并且是同一列的像素点和该像素点同一行并且是上一列的像素点进行插值计算得到M×N个像素点的矩形区域,举例说明如下,当输入一个第四类像素点,假如该像素点为第5行第3列的像素点,那么由该第5行第3列的像素点、第4行第2列的像素点、第5行第2列的像素点和第4行第3列的像素点共同进行插值计算得到M×N个像素点;S11、S12、S13、S14是同时或者交替进行,并不代表步骤的先后顺序。
需要说明的是,插值M×N个像素点同时需要M×N硬件放大单元,而现有技术需要[(P-1)÷(R-1)]×[(Q-1)÷(S-1)]个硬件放大单元,因为M、N为大于1的整数,且P=M×R,Q=N×S,则[(P-1)÷(R-1)]×[(Q-1)÷(S-1)]>((P-1)÷(R-1))×((Q-1)÷(S-1))=((M×R-1)÷(R-1))×((N×S-1)÷(S-1))>((M×R-M)÷(R-1))×((N×S-N)÷(S-1))=M×N,因此本发明提供实施例需要更少的硬件放大单元。
S15、填充第一临时图像右边(M-1)列和下边(N-1)行,得到目标图像。
在本实施例中,S15的实现方法有两种,方法一为复制所述第一临时图像右边的(M-1)列,将复制的(M-1)列填充到所述第一临时图像的右边得到第二临时图像,复制第二临时图像下边的(N-1)行,将复制的(N-1)行填充到第二临时图像的下边得到目标图像;方法二为复制所述第一临时图像下边的(N-1)行,将复制的(N-1)行填充到第一临时图像下边得到第三临时图像,复制第三临时图像的右边的(M-1)列,将复制的(M-1)列填充到所述第三临时图像的右边得到目标图像。
本发明实施例提供的方法可以实现和现有技术同样的图像处理效果,并且减少了硬件放大单元的个数,达到了降低图像处理成本的有益效果。
图2所示为本发明另一实施例提供的图像放大装置的模块结构图,为了便于说明,仅示出与本发明实施例相关的部分。
该图像放大装置包括:
第一放大单元21,用于输入的像素点为第一类像素点时,复制所述像素点作为目标图像的第一行左起第一个像素点,所述第一类像素点为源图像中第一行左起第一个像素点。
第二放大单元22,用于每输入一个第二类像素点时,在所述像素点的水平方向插值M个像素点,所述第二类像素点为源图像中第一行左起第二个像素点至第一行第R个像素点,所述R为源图像中水平方向像素点的个数,所述M为图像在水平方向的放大倍数,M为大于1的整数。
第三放大单元23,用于每输入一个第三类像素点时,在所述像素点的垂直方向插值N个像素点,所述第二类像素点为源图像中第一列上起第二个像素点至第一列第S个像素点,所述S为源图像中垂直方向像素点的个数,所述N为图像在垂直方向的放大倍数,N为大于1的整数。
第四放大单元24,用于每输入一个第四类像素点时,在所述目标图像上插值M×N个像素点的矩形区域,当源图像的所有像素点完成插值后得到第一临时图像。
填充单元25,用于填充第一临时图像右边(M-1)列和下边(N-1)行,得到目标图像。
可选的,所述填充单元25具体用于:
复制所述第一临时图像右边的(M-1)列,将复制的(M-1)列填充到第一临时图像的右边得到第二临时图像,复制所述第二临时图像下边的(N-1)行,将复制的(N-1)行填充到第二临时图像的下边得到目标图像;
或复制所述第一临时图像下边的(N-1)行,将复制的(N-1)行填充到第一临时图像下边得到第三临时图像,复制第三临时图像的右边的(M-1)列,将复制的(M-1)列填充到所述第三临时图像的右边得到目标图像。
本实施例提供的图像放大装置可以使用在前述对应的图像处理方法,详情参见上述方法实施例的相关描述,在此不再赘述。
本领域普通技术人员可以理解为上述实施例所包括的各个模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
本领域普通技术人员还可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于图像放大装置的可读取存储介质中,所述的存储介质,包括ROM/RAM等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。