发明内容
本发明解决的问题是现有技术图像缩放方法的计算量大,同时缩放后图像质量不高的问题。
为解决上述问题,本发明提供一种图像缩放方法,包括如下步骤:
获取目标图像中像素点的坐标在源图像中对应的虚拟像素点的坐标,所述坐标为水平坐标或竖直坐标;
根据所述虚拟像素点的坐标获取源图像中在所述虚拟像素点坐标方向的M个实际像素点的像素值;
利用多相位滤波器及所述M个实际像素点的像素值获得第一像素值和第二像素值,其中,M为多相位滤波器的抽头个数;
对所述第一像素值和第二像素值进行线性插值获得所述目标图像中像素点的像素值。
可选的,所述多相位滤波器的相位为两相位。
可选的,所述获取目标图像中像素点的水平坐标在源图像中对应的虚拟像素点的水平坐标通过如下方式获得:
mx(n)=n×Sx+Pix(n≥0,n∈Z)
其中,n为目标图像中的第n个像素点的水平坐标,S
x为水平缩放系数,
I
x为源图像水平尺寸,T
x为目标图像水平尺寸,P
ix为预设的初始相位值,m
x(n)为所述目标图像中的第n个像素点的水平坐标在源图像中对应的虚拟像素点的水平坐标。
可选的,所述利用多相位滤波器及所述M个水平方向实际像素点的像素值获得水平方向第一像素值和第二像素值具体通过如下方式获得:
当rx<0.5时
当rx≥0.5时
且满足:
其中,X1为水平方向第一像素值,X2为水平方向第二像素值,rx=mx(n)-ix,且ix=[mx(n)]含义为不超过mx(n)的最大整数;
A
10,A
11,...,
...,A
11,A
10,0为第一相位滤波器的M个系数;
A
20,A
21,...,
...,A
21,A
20为第二相位滤波器的M个系数;
x[k-(M-1)],x[k-(M-2)],...,
,...,x(k-2),x(k-1),x(k)为水平方向的实际像素点位置在k-(M-1),k-(M-2),...,
...,k-2,k-1,k的M个像素值;M为多相位滤波器抽头的个数,
可选的,所述对所述水平方向第一像素值和第二像素值进行线性插值获得目标图像水平方向像素点的像素值,具体通过如下方式获得:
X(n)=(1-α)×X1+α×X2=X1+α×(X2-X1)
其中,X(n)为目标图像中水平方向第n个像素点的像素值,X1为水平方向第一像素值,X2为水平方向第二像素值,α通过如下方式获得:
当rx<0.5时,α=rx;当rx≥0.5时,α=rx-0.5。
可选的,所述获取目标图像中像素点竖直坐标在源图像中对应的虚拟像素点的竖直坐标通过如下方式获得:
my(n)=n×Sy+Piy(n>0,n∈Z)
其中,n为目标图像中的第n个像素点的竖直坐标,S
y为竖直缩放系数,
I
y为源图像竖直尺寸,T
y为目标图像竖直尺寸,P
iy为预设的初始相位值,m
y(n)为所述目标图像中的第n个像素点的竖直坐标在源图像中对应的虚拟像素点的竖直坐标。
可选的,所述利用多相位滤波器及所述M个竖直方向实际像素点的像素值获得竖直方向第一像素值和第二像素值具体通过如下方式获得:
当ry<0.5时
当ry≥0.5时
且满足:
其中,Y1为竖直方向第一像素值,Y2为竖直方向第二像素值,ry=my(n)-iy,且iy=[my(n)]含义为不超过my(n)的最大整数;
A10,A11...,...,A11,A10,0为第一相位滤波器的M个系数;
A
20,A
21,...,
...,A
21,A
20为第二相位滤波器的M个系数;
y[k-(M-1)],y[k-(M-2)],...,
...,y(k-2),y(k-1),y(k)为竖直方向的实际像素点位置在k-(M-1),k-(M-2),...,
...,k-2,k-1,k的M个像素值;M为多相位滤波器抽头的个数,
可选的,所述对所述竖直方向第一像素值和第二像素值进行线性插值获得目标图像竖直方向像素点的像素值,具体通过如下方式获得:
Y(n)=(1-α)×Y1+α×Y2=Y1+α×(Y2-Y1)
其中,Y(n)为目标图像中竖直方向第n个像素点的像素值,Y1为竖直方向第一像素值,Y2为竖直方向第二像素值,α通过如下方式获得:
当ry<0.5时,α=ry;当ry≥0.5时,α=ry-0.5。
可选的,所述像素值为亮度值或色度值。
为解决上述问题,本发明还提供一种对应于上述图像缩放方法的图像缩放装置,包括:
像素点生成单元,获取目标图像中像素点的坐标在源图像中对应的虚拟像素点的坐标,所述坐标为水平坐标或竖直坐标;
像素值生成单元,用于根据所述虚拟像素点的坐标获取源图像中在所述虚拟像素点坐标方向的M个实际像素点的像素值;
缩放单元,用于利用多相位滤波器及所述M个实际像素点的像素值获得第一像素值和第二像素值,其中,M为多相位滤波器的抽头个数;
插值单元,用于对所述缩放单元获得的所述第一像素值和第二像素值进行线性插值获得所述目标图像中像素点的像素值。
与现有技术相比,本发明具有以下优点:
采用多相位滤波器对源图像进行缩放,可以有效地去除频谱混叠或反射镜像,同时由于多相位滤波器的系数对称,减少了实际缩放过程中乘法器的数量和滤波器系数的数量,降低了计算量和存储量。
采用基于多相位滤波结果的高相位精度插值,有效地保证了所需的相位精度,获得高质量的缩放图像。
通过对水平缩放和竖直缩放采用可调的初始相位值,满足了不同视频图像格式之间的转换。
具体实施方式
本发明的具体实施方式提供一种图像缩放方法和装置,采用系数对称的多相位滤波器对源图像进行缩放,在去除了频谱混叠及反射镜像的同时有效地减少了实际缩放过程中乘法器的数量和滤波器系数的数量,降低了计算量和存储量。采用基于多相位滤波结果的高相位精度插值,有效地保证了所需的相位精度,获得高质量的缩放图像。通过对水平缩放和竖直缩放采用可调的初始相位值,满足了不同视频图像格式之间的转换。
为了能够更好地说明本发明具体实施方式的图像缩放方法,以下结合附图和实施例,对YUV、YCrCb或HIS色彩空间图像的水平缩放、竖直缩放分别进行详细的说明。而且,对于上述空间的图像的缩放,是对其三个色彩分量同时进行缩放的。此外,本实施方式中除另有说明外,第n个像素点同时也代表了该像素点在水平/竖直方向的水平/竖直坐标。
在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面公开的具体实施方式的限制。
参见图1,图1为本发明具体实施方式图像缩放方法的流程图,如图1所示,本发明具体实施方式的图像缩放方法包括如下步骤:
S11:获取目标图像中像素点的坐标在源图像中对应的虚拟像素点的坐标,所述坐标为水平坐标或竖直坐标。
对于水平缩放而言,即获取目标图像中像素点的水平坐标在源图像中对应的虚拟像素点的水平坐标,具体为:
mx(n)=n×Sx+Pix(n≥0,n∈Z)
其中,n为目标图像中的第n个像素点的水平坐标,Sx为水平缩放系数,其由目标图像和源图像的尺寸决定,也即,Ix为源图像水平尺寸,Tx为目标图像水平尺寸,Pix为一预设的初始相位值。由于本实施例中是针对YUV或YCrCb色彩空间的图像进行缩放,因此对于亮度和色度而言其预设的初始相位值并不相同,具体由源图像和目标图像的视频格式决定。例如:对于视频格式为480i,720p,1080i及1080p等,其既涉及视频图像的大小,也涉及了隔行或逐行的扫描格式,同时还涉及色度的采样方式(如4:4:4,4:2:2等),故,可以通过预设初始相位值来正确设置各种视频格式转换时亮度和色度的相对位置。
例如:对于源图像的亮度而言,其水平方向尺寸为1920,目标图像的亮度而言,其水平方向尺寸为1280,则亮度初始相位值可以选为
对4:4:4或4:2:2的色度的采样方式而言,色度初始相位值也可以选为
m
x(n)为所述目标图像中的第n个像素点的水平坐标在源图像中对应的虚拟像素点的水平坐标。例如:若目标图像中的第15个像素点的水平坐标15经过上述计算得到其在源图像中的水平坐标为5.8,而对于一副数字图像而言是不存在像素点水平坐标为5.8的像素点,则该点即为虚拟像素点。
S12:根据所述虚拟像素点的坐标获取在所述虚拟像素点坐标方向的M个实际像素点的像素值。
由上述可知,根据上述公式可以获取目标图像中像素点的水平坐标在源图像中对应的虚拟像素点的水平坐标,而在源图像中所述虚拟像素点是不存在的,因此根据虚拟像素点的水平坐标来选取其水平坐标方向的M个实际像素点,由于源图像已知,进而可以获得所述M个水平方向实际像素点的像素值。
本实施例中所述M由后续选择的多相位滤波器抽头的个数决定。对于进行水平缩放的亮度和色度而言,所选用的多相位滤波器的抽头个数并不相同,例如:对于高清电视图像而言,其亮度的缩放,可以选择10抽头的多相位滤波器,而其色度的缩放,则可以选择6抽头的多相位滤波器。
也即对于高清电视图像的亮度缩放,需要获取根据上述步骤S11所得到的虚拟像素点水平坐标方向的10个实际像素点的像素值,而对于色度的缩放,则只需要获得所述虚拟像素点水平坐标方向的6个实际像素点的像素值即可。具体如何选择虚拟像素点水平坐标方向的M个实际像素点,将在步骤S13中进行相应的说明。
需要说明的是,在实际的图像缩放过程中,图像的缩放还可以根据缩放质量的需要,来决定多相位滤波器的抽头个数,因此,多相位滤波器的抽头个数不应作为对本发明的限定。
S13:利用多相位滤波器及所述M个实际像素点的像素值获得第一像素值和第二像素值,其中,M为多相位滤波器的抽头个数。
对于水平缩放而言,即利用多相位滤波器及所述M个水平方向实际像素点的像素值获得水平方向第一像素值和第二像素值,具体地:
当rx<0.5时
当rx≥0.5时
且满足:
其中,X1为水平方向第一像素值,X2为水平方向第二像素值,rx=mx(n)-ix,且ix=[mx(n)]含义为不超过mx(n)的最大整数。
A
10,A
11,...,
...,A
11,A
10,0为第一相位滤波器的M个系数;
A
20,A
21,...,
...,A
21,A
20为第二相位滤波器的M个系数;
x[k-(M-1)],x[k-(M-2)],...,
...,x(k-2),x(k-1),x(k)为水平方向的实际像素点位置在k-(M-1),k-(M-2),...,
...,k-2,k-1,k的M个像素值;M为多相位滤波器抽头的个数,
以下对亮度信号采用两相位10抽头的多相位滤波器进行水平缩放获得水平方向第一像素值和第二像素值进行说明。
由步骤S11可知,对于目标图像中的第n个像素点的水平坐标n,其所对应的源图像中的虚拟像素点的水平坐标为mx(n),由于在实际的缩放过程中,对于目标图像中的第n个像素点的水平坐标n,与其对应的源图像的中的像素点的位置mx(n)不一定为整数,如为一浮点数,故本实施例中定义水平像素坐标mx(n)的整数部分为ix,即对mx(n)取整,ix=[mx(n)],其含义为不超过mx(n)的最大整数。例如,如上所述的目标图像中水平方向的第15个像素点(也即其的水平坐标为15)所对应于源图像中虚拟像素点的水平坐标mx(15)=5.8则ix=[mx(15)]=[5.8]=5。
同时定义mx(n)的小数部分为rx,即rx=mx(n)-ix,由上述可以看出rx属于[0,1]之间。
对于rx取值范围的不同,虚拟像素点水平方向所取的M个实际像素点以及第一像素值与第二像素值的获取也有所不同。
请参见图2,图2是本发明具体实施方式亮度信号水平缩放时目标图像中像素点位置对应于源图像中虚拟像素点的位置示意图,如图2所示,mx(n)代表了目标图像中水平方向第n个像素点在源图像中所对应的虚拟像素点的水平坐标,其像素值即为目标图像水平方向第n个像素点的亮度值。
图2中圆圈表示源图像在水平方向的源像素点或对源图像在水平方向的源像素点采用第一相位滤波器进行滤波所获得的像素点,第一相位滤波器不改变源像素点的相位,也即采用第一相位滤波器在水平方向滤波得到的像素点与源图像中水平方向的源像素点位置相同。
图2中三角表示对源图像在水平方向采用第二相位滤波器进行滤波所获得的像素点,第二相位滤波器改变了像素点的相位,使得经过滤波后所获得的像素点位于两个源像素点的正中间;图2中x1为在水平方向经过第一相位滤波器滤波所获得的第一像素点,其对应的像素值即为第一像素值X1(本实施例中所述第一像素点x1即为源图像中的第k-5个实际像素点),x2为在水平方向经过第二相位滤波器滤波所获得的第二像素点,其对应的像素值即为第二像素值X2。由图2可知,虚拟像素点mx(n)恰好落在了第k-5个实际像素点和第二像素点x2之间,且图2中第k-5个像素点即为不超过虚拟像素点mx(n)坐标的源图像中的实际像素点,故由虚拟像素点mx(n)所在的位置可以知道rx<0.5。
请参见图3,图3是本发明具体实施方式亮度信号水平缩放时目标图像中像素点位置对应于源图像中虚拟像素点的另一位置示意图,如图3所示,mx(n)代表了目标图像中水平方向第n个像素点在源图像中所对应的虚拟像素点的水平坐标,其像素值即为目标图像水平方向第n个像素点的亮度值。
图3中圆圈表示源图像在水平方向的源像素点或对源图像在水平方向的源像素点采用第一相位滤波器进行滤波所获得的像素点,第一相位滤波器不改变源像素点的相位,也即采用第一相位滤波器在水平方向滤波得到的像素点与源图像中水平方向的源像素点位置相同。
图3中三角表示对源图像在水平方向采用第二相位滤波器进行滤波所获得的像素点,第二相位滤波器改变了源像素点的相位,使得经过滤波后所获得的像素点位于两个源像素点的正中间;图3中x1为在水平方向经过第二相位滤波器滤波所获得的第一像素点,其对应的像素值即为第一像素值X1,x2为在水平方向经过第一相位滤波器滤波所获得的第二像素点,其对应的像素值即为第二像素值X2(本实施例中所述第二像素点x2即为源图像中的第k-4个实际像素点),由图3可知,虚拟像素点mx(n)恰好落在了第一像素点x1和第k-4个实际像素点之间,且图3中第k-5个像素点即为不超过虚拟像素点mx(n)坐标的源图像中的实际像素点,故由虚拟像素点mx(n)所在的位置可以知道rx≥0.5。
对于亮度信号的水平缩放而言,将M=10带入上述第一相位和第二相位滤波器系数之中,则第一相位滤波器的系数为以
奇对称,第二相位滤波器的系数为以
偶对称,故本实施例中所采用的两相位10抽头的滤波器(即多相位滤波器的阶数为20)的系数分别如下:
第一相位滤波器的系数为:l10,l11,l12,l13,l14,l13,l12,l11,l10,0;
第二相位滤波器的系数为:l20,l21,l22,l23,l24,l24,l23,l22,l21,l20;
且满足:
即:l14+2×(l10+l11+l12+l13)=1;2×(l20+l21+l22+l23+l24)=1,由上述可知所述第一相位滤波器的系数关于系数l14奇对称。所述第二相位滤波器的系数关于系数l24偶对称。因此在实际缩放过程中仅需要5个乘法器来计算水平方向第一像素值和第二像素值,减少了乘法器的数量,降低了计算量。同时,由于滤波器系数的对称性,也降低了对滤波器系数进行存储的需求。
由于
故k=i
x+5,取源像素点k及其之前的M-1个像素点的像素值,即:x(k-9),x(k-8),x(k-7),x(k-6),x(k-5),x(k-4),x(k-3),x(k-2),x(k-1),x(k)。
对于图2中所示的情况,即rx<0.5时,将上述10个源像素点中9个像素点的像素值分别与第一相位滤波器的系数相乘并求和获得水平方向的第一像素值X1:
X1=l10×x(k-9)+l11×x(k-8)+l12×x(k-7)+l13×x(k-6)+l14×x(k-5)+l13×x(k-4)
+l12×x(k-3)+l11×x(k-2)+l10×x(k-1)
=l10×[x(k-9)+x(k-1)]+l11×[x(k-8)+x(k-2)]+l12×[x(k-7)+x(k-3)]+
l13×[x(k-6)+x(k-4)]+l14×x(k-5)
同样地,将上述10个源像素点的像素值分别与第二相位滤波器的系数相乘并求和获得水平方向的第二像素值X2:
X2=l20×x(k-9)+l21×x(k-8)+l22×x(k-7)+l23×x(k-6)+l24×x(k-5)+l24×x(k-4)+
l23×x(k-3)+l22×x(k-2)+l21×x(k-1)+l20×x(k)
=l20×[x(k-9)+x(k)]+l21×[x(k-8)+x(k-1)]+l22×[x(k-7)+x(k-2)]+
l23×[x(k-6)+x(k-3)]+l24×[x(k-5)+x(k-4)]
对于图3中所示的情况,即rx≥0.5时,将上述10个源像素点的像素值分别与第二相位滤波器的系数相乘并求和获得水平方向第一像素值X1:
X1=l20×x(k-9)+l21×x(k-8)+l22×x(k-7)++l23×x(k-6)+l24×x(k-5)+
l24×x(k-4)+l23×x(k-3)+l22×x(k-2)+l21×x(k-1)+l20×x(k)
=l20×[x(k-9)+x(k)]+l21×[x(k-8)+x(k-1)]+l22×[x(k-7)+x(k-2)]+
l23×[x(k-6)+x(k-3)]+l24×[x(k-5)+x(k-4)]
将上述10个源像素点中9个点的像素值分别与第一相位滤波器的系数相乘并求和获得水平方向第二像素值X2:
X2=l10×x(k-8)+l11×x(k-7)+l12×x(k-6)++l13×x(k-5)+l14×x(k-4)+l13×x(k-3)+
l12×x(k-2)+l11×x(k-1)+l10×x(k)
=l10×[x(k-8)+x(k)]+l11×[x(k-7)+x(k-1)]+l12×[x(k-6)+x(k-2)]+
l13×[x(k-5)+x(k-3)]+l14×x(k-4)
需要说明的是,对于上述的亮度缩放,当rx属于不同的范围时,采用第一相位滤波器获取水平方向的第一像素值或第二像素值时,所选取的源像素点有所不同,具体地:当rx<0.5时,采用第一相位滤波器获取水平方向的第一像素值时选取源像素点k之前的M-1个像素点的像素值,本实施例中为x(k-9),x(k-8),x(k-7),x(k-6),x(k-5),x(k-4),x(k-3),x(k-2),x(k-1)。当rx≥0.5时,采用第一相位滤波器获取水平方向的第二像素值时选取源像素点k及其之前的M-2个像素点的像素值,本实施例中为x(k-8),x(k-7),x(k-6),x(k-5),x(k-4),x(k-3),x(k-2),x(k-1),x(k)。
此外,需要说明的是对于亮度缩放,若所选取的源图像中水平方向的10个实际像素点中,有的像素点超过了源图像的像素点的范围,例如当像素点的水平坐标为负值或超出图像宽度时,则使用源图像边界点的像素点来代替这些像素点。
以下对色度信号采用两相位6抽头的多相位滤波器进行水平缩放获得第一像素值和第二像素值进行说明。
同样地,本实施例中对于获取目标图像中色度信号在水平方向第n个像素点的坐标对应于源图像中虚拟像素点的坐标的方法与上述亮度缩放过程中获取目标图像中亮度信号在水平方向第n个像素点的坐标对应于源图像中虚拟像素点的坐标的方法相似,此处不再赘述。
对于目标图像中的第n个像素点而言,其对应于源图像中虚拟像素点的水平坐标mx(n)的整数部分为ix,即对mx(n)取整,ix=[mx(n)],其含义为不超过mx(n)的最大整数。同时定义mx(n)的小数部分为rx,即rx=mx(n)-ix,故,rx属于[0,1]之间。
对于rx取值范围的不同,虚拟像素点水平方向所取的M个实际像素点以及第一像素值与第二像素值的获取也有所不同。
请参见图4,图4是本发明具体实施方式色度信号水平缩放时目标图像中像素点位置对应于源图像中虚拟像素点的位置示意图,如图4所示,mx(n)代表了目标图像中水平方向第n个像素点在源图像中所对应的虚拟像素点的水平坐标,其像素值即为目标图像水平方向第n个像素点的色度值。
图4中圆圈表示源图像在水平方向的源像素点或对源图像在水平方向的源像素点采用第一相位滤波器进行滤波所获得的像素点,第一相位滤波器不改变源像素点的相位,也即采用第一相位滤波器在水平方向滤波得到的像素点与源图像中水平方向的源像素点位置相同。
图4中三角表示对源图像在水平方向采用第二相位滤波器进行滤波所获得的像素点,第二相位滤波器改变了源像素点的相位,使得经过滤波后所获得的像素点位于两个源像素点的正中间;图4中x1为在水平方向经过第一相位滤波器滤波所获得的第一像素点,其对应的像素值即为第一像素值X1(本实施例中所述第一像素点x1即为源图像中的第k-3个实际像素点),x2为在水平方向经过第二相位滤波器滤波所获得的第二像素点,其对应的像素值即为第二像素值X2。由图4可知,虚拟像素点mx(n)恰好落在了第k-3个实际像素点和第二像素点x2之间,且图2中第k-3个像素点即为不超过虚拟像素点mx(n)坐标的源图像中的实际像素点,故由虚拟像素点mx(n)所在的位置可以知道rx<0.5。
请参见图5,图5是本发明具体实施方式色度信号水平缩放时目标图像中像素点位置对应于源图像中虚拟像素点的另一位置示意图,如图5所示,mx(n)代表了目标图像中水平方向第n个像素点在源图像中所对应的虚拟像素点的水平坐标,其像素值即为目标图像水平方向第n个像素点的色度值。
图5中圆圈表示源图像在水平方向的源像素点或对源图像在水平方向的源像素点采用第一相位滤波器进行滤波所获得的像素点,第一相位滤波器不改变源像素点的相位,也即采用第一相位滤波器在水平方向滤波得到的像素点与源图像中水平方向的源像素点位置相同。
图5中三角表示对源图像在水平方向采用第二相位滤波器进行滤波所获得的像素点,第二相位滤波器改变了源像素点的相位,使得经过滤波后所获得的像素点位于两个源像素点的正中间;图3中x1为在水平方向经过第二相位滤波器滤波所获得的第一像素点,其对应的像素值即为第一像素值X1,x2为在水平方向经过第一相位滤波器滤波所获得的第二像素点,其对应的像素值即为第二像素值X2(本实施例中所述第二像素点x2即为源图像中的第k-2个实际像素点),由图5可知,虚拟像素点mx(n)恰好落在了第一像素点x1和第k-2个实际像素点之间,且图5中第k-2个像素点即为不超过虚拟像素点mx(n)坐标的源图像中的实际像素点,故由虚拟像素点mx(n)所在的位置可以知道rx≥0.5。
对于色度信号而言,将M=6带入上述第一相位和第二相位滤波器系数之中,则第一相位滤波器的系数为以
奇对称,第二相位滤波器的系数为以
偶对称,故本实施例中所采用的两相位6抽头的多相位滤波器(即多相滤波器的阶数为12)的系数分别如下:
第一相位滤波器的系数为:c10,c11,c12,,c11,c10,0;
第二相位滤波器的系数为:c20,c21,c22,c22,c21,c20;
且满足:
即:c12+2×(c10+c11)=1;2×(c20+c21+c22)=1,由上述可知所述第一相位滤波器的系数关于系数c12奇对称。所述第二相位滤波器的系数关于系数c22偶对称。因此在实际缩放过程中,一方面采用多相位滤波器可以有效地去除频谱混叠,另一方面仅需要3个乘法器来计算水平方向的第一像素值和第二像素值,减少了乘法器的数量,降低了计算量。同时,由于滤波器系数的对称性,也降低了对其进行存储的需求。
由于
故k=i
x+3,取源像素点k及其之前的M-1个像素点的像素值,即:x(k-5),x(k-4),x(k-3),x(k-2),x(k-1),x(k)。
对于图4中所示的情况,即rx<0.5时,将上述6个源像素点中的5个像素点的像素值分别与第一相位滤波器的系数相乘并求和获得第一像素值X1:
X1=c10×x(k-5)+c11×x(k-4)+c12×x(k-3)+c11×x(k-2)+c10×x(k-1)
=c10×[x(k-5)+x(k-1)]+c11×[x(k-4)+x(k-2)]+c12×x(k-3)
同样地,将上述6个源像素点的像素值分别与第二相位滤波器的系数相乘并求和获得第二像素值X2:
X2=c20×x(k-5)+c21×x(k-4)+c22×x(k-3)+c22×x(k-2)+c21×x(k-1)+c20×x(k)
=c20×[x(k-5)+x(k)]+c21×[x(k-4)+x(k-1)]+c22×[x(k-3)+x(k-2)]
对于图5中所示的情况,即rx≥0.5时,将上述6个源像素点的像素值分别与第二相位滤波器的系数相乘并求和获得第一像素值X1:
X1=c20×x(k-5)+c21×x(k-4)+c22×x(k-3)+c22×x(k-2)+c21×x(k-1)+c20×x(k)
=c20×[x(k-5)+x(k)]+c21×[x(k-4)+x(k-1)]+c22×[x(k-3)+x(k-2)]
将上述6个源像素点中的5个像素点的像素值分别与第一相位滤波器的系数相乘并求和获得第二像素值X2:
X2=c10×x(k-4)+c11×x(k-3)+c12×x(k-2)+c11×x(k-1)+c10×x(k)
=c10×[x(k-4)+x(k)]+c11×[x(k-3)+x(k-1)]+c12×x(k-2)
需要说明的是,对于上述的色彩缩放,当rx属于不同的范围时,采用第一相位滤波器获取水平方向的第一像素值或第二像素值时,所选取的源像素点有所不同,具体地,当rx<0.5时,采用第一相位滤波器获取水平方向的第一像素值时选取源像素点k之前的M-1个像素点的像素值,本实施例中为x(k-5),x(k-4),x(k-3),x(k-2),x(k-1)。当rx≥0.5时,采用第一相位滤波器获取水平方向的第二像素值时选取源像素点k及其之前的M-2个像素点的像素值,本实施例中为x(k-4),x(k-3),x(k-2),x(k-1),x(k)。
此外,需要说明的是对于色彩缩放,若所选取的源图像中水平方向的6个实际像素点中,有的像素点超过了源图像的像素点的范围,例如当像素点的水平坐标为负值或超出图像宽度时,则使用源图像边界点的像素点来代替这些像素点。
S14:对所述第一像素值和第二像素值进行线性插值获得所述目标图像中像素点的像素值。
即对水平方向的第一像素值和第二像素值进行线性插值获得所述目标图像中像素点的像素值。具体地,
X(n)=(1-α)×X1+α×X2=X1+α×(X2-X1)
其中,X(n)为目标图像中水平方向第n个像素点的像素值,X1为水平方向第一像素值,X2为水平方向第二像素值,α通过如下方式获得:当rx<0.5时,α=rx;当rx≥0.5时,α=rx-0.5。
本实施例中对于上述步骤S13中所获得的亮度信号在水平方向的第一像素值和第二像素值,将其带入上述公式(此时上述公式中的α由亮度信号的rx来获取)即可获得目标图像中水平方向第n个像素点的亮度值,同样地对于上述步骤S13中所获得的色度信号在水平方向的第一像素值和第二像素值,将其带入上述公式(此时上述公式中的α由色度信号的rx来获取),即可获得目标图像中水平方向第n个像素点的色度值。
至此,通过上述步骤获得了目标图像中水平方向第n个像素点的像素值,对目标图像中所有像素点均采用上述方法求其目标图像中水平方向像素点的像素值,即可以完成对一幅源图像在水平方向的缩放。
需要说明的是:上述多相位滤波器抽头个数的选择,取决于实际的应用。例如:滤波器抽头越多,成本越高。多相位滤波器的相位数也取决于实际的应用,只是当相位数大于2时,某些相位的系数不能再保持对称性,这也意味着成本增加。因此,对于多相位滤波器相位及抽头个数的选择并不能作为对本发明的限定。
请继续参考图1,以下对YUV、YCrCb或HIS色彩空间图像的竖直缩放进行详细的说明。
S11:获取目标图像中像素点的坐标在源图像中对应的虚拟像素点的坐标,所述坐标为水平坐标或竖直坐标。
对于竖直缩放而言,即获取目标图像中像素点的水平坐标在源图像中对应的虚拟像素点的水平坐标,具体为:
my(n)=n×Sy+Piy (n>0,n∈Z)
其中,n为目标图像中的第n个像素点的竖直坐标,S
y为竖直缩放系数,
I
y为源图像竖直尺寸,T
y为目标图像竖直尺寸,P
iy为预设的初始相位值。由于本实施例中是针对YUV或YCrCb色彩空间的图像进行缩放,因此对于亮度和色度而言其预设的初始相位值有时并不相同,具体由源图像和目标图像的视频格式决定。
my(n)为所述目标图像中的第n个像素点的竖直坐标在源图像中对应的虚拟像素点的竖直坐标。例如:若目标图像中的第15个像素点的竖直坐标15经过上述计算得到其在源图像中的竖直坐标为5.8,而对于一副数字图像而言是不存在像素点竖直坐标为5.8的像素点,则该点即为虚拟像素点。
S12:根据所述虚拟像素点的坐标获取在所述虚拟像素点的坐标方向的M个实际像素点的像素值。
由上述可知,根据上述公式可以获取目标图像中像素点的竖直坐标在源图像中对应的虚拟像素点的竖直坐标,而在源图像中所述虚拟像素点是不存在的,因此根据虚拟像素点的竖直坐标来选取其竖直坐标方向的M个实际像素点,由于源图像已知,进而可以获得所述M个竖直方向实际像素点的像素值。本实施例中所述M由后续选择的多相位滤波器抽头的个数决定。本实施例中对于进行竖直缩放的亮度和色度而言,所选用的多相位滤波器的抽头个数并不相同,例如:对于高清电视图像而言,为不使复杂性太高,其亮度的缩放,可以选择8抽头的多相位滤波器,而其色度的缩放,也可以选择8抽头甚至更少抽头例如6抽头的多相位滤波器。故,抽头个数不应作为对本发明的限定。
也即对于高清电视图像的亮度缩放,需要获取根据上述步骤S11所得到的虚拟像素点竖直坐标方向的8个实际像素点的像素值,而对于色度的缩放,当选择6抽头的多相位滤波器时,则只需要获得所述虚拟像素点竖直坐标方向的6个实际像素点的像素值即可。具体如何选择虚拟像素点竖直坐标方向的M个实际像素点,将在步骤S13中进行相应的说明。
需要说明的是,在实际的图像缩放过程中,图像的缩放还可以根据缩放质量的需要,来决定多相位滤波器的抽头个数,因此,多相位滤波器的抽头个数不应作为对本发明的限定。
S13:利用多相位滤波器及所述M个实际像素点的像素值获得第一像素值和第二像素值,其中,M为多相位滤波器的抽头个数。
对于竖直缩放而言,即利用多相位滤波器及所述M个竖直方向实际像素点的像素值获得竖直方向第一像素值和第二像素值,具体地:
当ry<0.5时
当ry≥0.5时
且满足:
其中,Y1为竖直方向第一像素值,Y2为竖直方向第二像素值,ry=my(n)-iy,且iy=[my(n)]含义为不超过my(n)的最大整数;
A10,A11...,...,A11,A10,0为第一相位滤波器的M个系数;
A
20,A
21...,
...,A
21,A
20为第二相位滤波器的M个系数;
y[k-(M-1)],y[k-(M-2)],...,
...,y(k-2),y(k-1),y(k)为竖直方向的实际像素点位置在k-(M-1),k-(M-2),...,
...,k-2,k-1,k的M个像素值;M为多相位滤波器抽头的个数,
以下对亮度信号采用两相位8抽头的多相位滤波器进行竖直缩放获得竖直方向第一像素值和第二像素值进行说明。
由步骤S11可知,对于目标图像中的第n个像素点的竖直坐标n,其所对应的源图像中的虚拟像素点的竖直坐标为my(n),由于在实际的缩放过程中,对于目标图像中的第n个像素点的竖直坐标n,与其对应的源图像的中的像素位置my(n)不一定为整数,如为一浮点数,故本实施例中定义水平像素坐标my(n)的整数部分为iy,即对my(n)取整,iy=[my(n)],其含义为不超过my(n)的最大整数。例如,如上所述的目标图像中竖直方向的第15个像素点(也即其的竖直坐标为15)所对应于源图像中虚拟像素点的竖直坐标my(15)=5.8则iy=[my(15)]=[5.8]=5。
同时定义my(n)的小数部分为ry,即ry=my(n)-iy,由上述可以看出ry属于[0,1]之间。
对于ry取值范围的不同,虚拟像素点竖直方向所取的M个实际像素点以及第一像素值与第二像素值的获取也有所不同。
请参见图6,图6是本发明具体实施方式亮度信号竖直缩放时目标图像中像素点位置对应于源图像中虚拟像素点的位置示意图,如图6所示,my(n)代表了目标图像中竖直方向第n个像素点在源图像中所对应的虚拟像素点的竖直坐标,其像素值即为目标图像竖直方向第n个像素点的亮度值。
图6中圆圈表示源图像在竖直方向的源像素点或对源图像在竖直方向的源像素点采用第一相位滤波器进行滤波所获得的像素点,第一相位滤波器不改变源像素点的相位,也即采用第一相位滤波器在竖直方向滤波得到的像素点与源图像中竖直方向的源像素点位置相同。
图6中三角表示对源图像在竖直方向采用第二相位滤波器进行滤波所获得的像素点,第二相位滤波器改变了像素点的相位,使得经过滤波后所获得的像素点位于两个源像素点的正中间;图6中y1为在竖直方向经过第一相位滤波器滤波所获得的第一像素点,其对应的像素值即为第一像素值Y1(本实施例中所述第一像素点y1即为源图像中的第k-4个实际像素点),y2为在竖直方向经过第二相位滤波器滤波所获得的第二像素点,其对应的像素值即为第二像素值Y2。由图6可知,虚拟像素点my(n)恰好落在了第k-4个实际像素点和第二像素点y2之间,且图6中第k-4个像素点即为不超过虚拟像素点my(n)坐标的源图像中的实际像素点,故由虚拟像素点my(n)所在的位置可以知道ry<0.5。
请参见图7,图7是本发明具体实施方式亮度信号竖直缩放时目标图像中像素点位置对应于源图像中虚拟像素点的另一位置示意图,如图7所示,my(n)代表了目标图像中竖直方向第n个像素点在源图像中所对应的虚拟像素点的竖直坐标,其像素值即为目标图像竖直方向第n个像素点的亮度值。
图7中圆圈表示源图像在竖直方向的源像素点或对源图像在竖直方向的源像素点采用第一相位滤波器进行滤波所获得的像素点,第一相位滤波器不改变源像素点的相位,也即采用第一相位滤波器在竖直方向滤波得到的像素点与源图像中竖直方向的源像素点位置相同。
图7中三角表示对源图像在竖直方向采用第二相位滤波器进行滤波所获得的像素点,第二相位滤波器改变了源像素点的相位,使得经过滤波后所获得的像素点位于两个源像素点的正中间;图7中y1为在竖直方向经过第二相位滤波器滤波所获得的第一像素点,其对应的像素值即为第一像素值Y1,y2为在竖直方向经过第一相位滤波器滤波所获得的第二像素点,其对应的像素值即为第二像素值Y2(本实施例中所述第二像素点y2即为源图像中的第k-3个实际像素点),由图7可知,虚拟像素点my(n)恰好落在了第一像素点y1和第k-3个实际像素点之间,且图7中第k-3个像素点即为不超过虚拟像素点my(n)坐标的源图像中的实际像素点,故由虚拟像素点my(n)所在的位置可以知道ry≥05。
对于亮度信号的竖直缩放而言,将M=8带入上述第一相位和第二相位滤波器系数之中,则第一相位滤波器的系数为以
奇对称,第二相位滤波器的系数为以
偶对称,故本实施例中所采用的两相位8抽头的滤波器(即多相位滤波器的阶数为16)的系数分别如下:
第一相位滤波器的系数为:l10,l11,l12,l13,l12,l11,l10,0;
第二相位滤波器的系数为:l20,l21,l22,l23,l23,l22,l21,l20;
且满足:
即:l13+2×(l10+l11+l12)=1;2×(l20+l21+l22+l23)=1,由上述可知所述第一相位滤波器的系数关于系数l13奇对称。所述第二相位滤波器的系数关于系数l22偶对称。因此在实际缩放过程中仅需要4个乘法器来计算竖直方向第一像素值和第二像素值,减少了乘法器的数量,降低了计算量。同时,由于滤波器系数的对称性,也降低了对其进行存储的需求。
由于
故k=i
y+4,取源像素点k及其之前的M-1个像素点的像素值,即:y(k-7),y(k-6),y(k-5),y(k-4),y(k-3),y(k-2),y(k-1),y(k)。
对于图6中所示的情况,即ry<0.5时,将上述8个源像素点中7个像素点的像素值分别与第一相位滤波器的系数相乘并求和获得竖直方向的第一像素值Y1:
Y1=l10×y(k-7)+l11×y(k-6)+l12×y(k-5)+l13×y(k-4)+l12×y(k-3)+l11×y(k-2)
+l10×y(k-1)
=l10×[y(k-7)+y(k-1)]+l11×[y(k-6)+y(k-2)]+l12×[y(k-5)+y(k-3)]+l13×y(k-4)
同样地,将上述8个源像素点的像素值分别与第二相位滤波器的系数相乘并求和获得竖直方向的第二像素值Y2:
Y2=l20×y(k-7)+l21×y(k-6)+l22×y(k-5)+l23×y(k-4)+l23×y(k-3)+l22×y(k-2)+
l21×y(k-1)+l20×y(k)
=l20×[y(k-7)+y(k)]+l21×[y(k-6)+y(k-1)]+l22×[y(k-5)+y(k-2)]+
l23×[y(k-4)+y(k-3)]
对于图7中所示的情况,即ry≥0.5时,将上述8个源像素点的像素值分别与第二相位滤波器的系数相乘并求和获得竖直方向的第一像素值Y1:
Y1=l20×y(k-7)+l21×y(k-6)+l22×y(k-5)++l23×y(k-4)+l23×y(k-3)+
l22×y(k-2)+l21×y(k-1)+l20×y(k)
=l20×[y(k-7)+y(k)]+l21×[y(k-6)+y(k-1)]+l22×[y(k-5)+y(k-2)]+
l23×[y(k-4)+y(k-3)]
将上述8个源像素点中7个点的像素值分别与第一相位滤波器的系数相乘并求和获得竖直方向的第二像素值Y2:
Y2=l10×y(k-6)+l11×y(k-5)+l12×y(k-4)++l13×y(k-3)+l12×y(k-2)+l11×y(k-1)+
l10×y(k)
=l10×[y(k-6)+y(k)]+l11×[y(k-5)+y(k-1)]+l12×[y(k-4)+y(k-2)]+l13×y(k-3)]
需要说明的是,对于上述的亮度缩放,当ry属于不同的范围时,采用第一相位滤波器获取竖直方向的第一像素值或第二像素值时,所选取的源像素点有所不同,具体地:当ry<0.5时,采用第一相位滤波器获取竖直方向的第一像素值时选取源像素点k之前的M-1个像素点的像素值,本实施例中为y(k-7),y(k-6),y(k-5),y(k-4),y(k-3),y(k-2),y(k-1)。当ry≥0.5时,采用第一相位滤波器获取竖直方向的第二像素值时选取源像素点k及其之前的M-2个像素点的像素值,本实施例中为y(k-6),y(k-5),y(k-4),y(k-3),y(k-2),y(k-1),y(k)。
此外,需要说明的是对于亮度缩放,若所选取的源图像中竖直方向的8个实际像素点中,有的像素点超过了源图像的像素点的范围,例如当像素点的竖直坐标为负值或超出图像高度时,则使用源图像边界点的像素点来代替这些像素点。
以下对色度信号采用两相位6抽头的多相位滤波器进行竖直缩放获得第一像素值和第二像素值进行说明。本实施例中色度信号的ry的获取过程以及目标图像中色度信号竖直方向第n个像素点的位置对应于源图像中虚拟像素点的位置与上述亮度缩放过程中ry的获取过程以及目标图像中色度信号竖直方向第n个像素点的位置对应于源图像中虚拟像素点的位置相似,此处不再赘述。
对于色度信号而言,将M=6带入上述第一相位和第二相位滤波器系数之中,则第一相位滤波器的系数为以
奇对称,第二相位滤波器的系数为以
偶对称,故本实施例中所采用的两相位6抽头的多相位滤波器(即多相滤波器的阶数为12)的系数分别如下:
第一相位滤波器的系数为:c10,c11,c12,,c11,c10,0;
第二相位滤波器的系数为:c20,c21,c22,c22,c21,c20;
且满足:
即:c12+2×(c10+c11)=1;2×(c20+c21+c22)=1,由上述可知所述第一相位滤波器的系数关于系数c12奇对称。所述第二相位滤波器的系数关于系数c12偶对称。因此在实际缩放过程中,一方面采用多相位滤波器可以有效地去除频谱混叠,另一方面仅需要3个乘法器来计算竖直方向的第一像素值和第二像素值,减少了乘法器的数量,降低了计算量。同时,由于滤波器系数的对称性,也降低了对其进行存储的需求。
由于
故k=i
y+3,取源像素点k及其之前的M-1个像素点的像素值,即:x(k-5),x(k-4),x(k-3),x(k-2),x(k-1),x(k)。
当ry<0.5时,将上述6个源像素点中的5个像素点的像素值分别与第一相位滤波器的系数相乘并求和获得竖直方向的第一像素值Y1:
Y1=c10×y(k-5)+c11×y(k-4)+c12×y(k-3)+c11×y(k-2)+c10×y(k-1)
=c10×[y(k-5)+y(k-1)]+c11×[y(k-4)+y(k-2)]+c12×y(k-3)
同样地,将上述6个源像素点的像素值分别与第二相位滤波器的系数相乘并求和获得竖直方向的第二像素值Y2:
Y2=c20×y(k-5)+c21×y(k-4)+c22×y(k-3)+c22×y(k-2)+c21×y(k-1)+c20×y(k)
=c20×[y(k-5)+y(k)]+c21×[y(k-4)+y(k-1)]+c22×[y(k-3)+y(k-2)]
当ry≥0.5时,将上述6个源像素点的像素值分别与第二相位滤波器的系数相乘并求和获得竖直方向的第一像素值Y1:
Y1=c20×y(k-5)+c21×y(k-4)+c22×y(k-3)+c22×y(k-2)+c21×y(k-1)+c20×y(k)
=c20×[y(k-5)+y(k)]+c21×[y(k-4)+y(k-1)]+c22×[y(k-3)+y(k-2)]
将上述6个源像素点中的5个像素点的像素值分别与第一相位滤波器的系数相乘并求和获得竖直方向的第二像素值Y2:
Y2=c10×y(k-4)+c11×y(k-3)+c12×y(k-2)+c11×y(k-1)+c10×y(k)
=c10×[y(k-4)+y(k)]+c11×[y(k-3)+y(k-1)]+c12×y(k-2)
需要说明的是,对于上述的色彩缩放,当ry属于不同的范围时,采用第一相位滤波器获取竖直方向的第一像素值或第二像素值时,所选取的源像素点有所不同,具体地,当ry<0.5时,采用第一相位滤波器获取竖直方向的第一像素值时选取源像素点k之前的M-1个像素点的像素值,本实施例中为y(k-5),y(k-4),y(k-3),y(k-2),y(k-1)。当ry≥0.5时,采用第一相位滤波器获取竖直方向的第二像素值时选取源像素点k及其之前的M-2个像素点的像素值,本实施例中为y(k-4),y(k-3),y(k-2),y(k-1),y(k)。
此外,需要说明的是对于色彩缩放,若所选取的源图像中竖直方向的6个实际像素点中,有的像素点超过了源图像的像素点的范围,例如当像素点的竖直坐标为负值或超出图像高度时,则使用源图像边界点的像素点来代替这些像素点。
S14:对所述第一像素值和第二像素值进行线性插值获得所述目标图像中像素点的像素值。
即对竖直方向的第一像素值和第二像素值进行线性插值获得所述目标图像中像素点的像素值。具体地,
Y(n)=(1-α)×Y1+α×Y2=Y1+α×(Y2-Y1)
其中,Y(n)为目标图像中竖直方向第n个像素点的像素值,Y1为竖直方向第一像素值,Y2为竖直方向第二像素值,α通过如下方式获得:当ry<0.5时,α=ry;当ry≥0.5时,α=ry-0.5。
本实施例中对于上述步骤S13中所获得的亮度信号在竖直方向的第一像素值和第二像素值,将其带入上述公式(此时上述公式中的α由亮度信号的ry来获取)即可获得目标图像中竖直方向的第n个像素点的亮度值,同样地对于上述步骤S13中所获得的色度信号在竖直方向的第一像素值和第二像素值,将其带入上述公式(此时上述公式中的α由色度信号的ry来获取),即可获得目标图像中竖直方向的第n个像素点的色度值。
至此,通过上述步骤获得了目标图像中竖直方向第n个像素点的像素值,对目标图像中所有像素点均采用上述方法求其目标图像中竖直方向像素点的像素值,即可以完成对一幅源图像在竖直方向的缩放。
需要说明的是,在上述实施方式中对色度信号的水平缩放和竖直缩放过程中,其采用的多相位滤波器的抽头数相同,对亮度信号的水平缩放和竖直缩放过程中,其采用的多相位滤波器的抽头数不同,在其他实施方式中对色度信号的水平缩放和竖直缩放过程中,其采用的多相位滤波器的抽头数也可以不同,而对亮度信号的水平缩放和竖直缩放过程中,其采用的多相位滤波器的抽头数也可以相同,具体由实际的应用决定。
上述对亮度信号的水平缩放和竖直缩放过程中,水平缩放所采用的初始相位Pix与竖直缩放所采用的初始相位Piy可以相同也可以不同。同样地对色度信号的水平缩放和竖直缩放过程中,水平缩放所采用的初始相位Pix与竖直缩放所采用的初始相位Piy可以相同也可以不同。具体由源图像和目标图像的视频格式决定。
对应于上述的图像缩放方法,本发明的实施方式还提供一种图像缩放装置,如图8所示,所述图像缩放装置包括:
像素点生成单元101,获取目标图像中像素点的坐标在源图像中对应的虚拟像素点的坐标,所述坐标为水平坐标或竖直坐标;
像素值生成单元103,用于根据所述虚拟像素点的坐标获取源图像中在所述虚拟像素点的坐标方向的M个实际像素点的像素值;
缩放单元105,用于利用多相位滤波器及所述M个实际像素点的像素值获得第一像素值和第二像素值,其中,M为多相位滤波器的抽头个数;
插值单元107,用于对所述缩放单元105获得所述第一像素值和第二像素值进行线性插值获得所述目标图像中像素点的像素值。
综上所述,本发明提供的图像缩放方法和图像缩放装置采用多相位滤波器对源图像进行缩放,可以有效地去除频谱混叠或反射镜像,同时由于多相位滤波器的系数对称,有效地减少了实际缩放过程中乘法器的数量和滤波器系数的数量,降低了计算量和存储量。
采用基于多相位滤波结果的高相位精度插值,有效地保证了所需的相位精度,获得高质量的缩放图像。
通过对水平缩放和竖直缩放采用可调的初始相位值,满足了不同视频图像格式之间的转换要求。
本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。