图像放大的方法
技术领域
本发明是关于一种图像处理的方法,且特别是关于图像放大的方法。
背景技术
视讯技术已广泛应用于各种电子产品之中。习知视讯技术的压解压缩模式,例如:JPEG、MPEG、MPEG-2、MPEG-4、H.263、H.264等等,在利用标准的视讯编码/译码器处理画面的过程中,需要将图像暂时或永久存放在内存内,以便随后的利用。
然而,对超大画面及高图框率(frame rate)的系统而言,其画面所占的内存空间与系统总线频宽非常大,因此,容易造成系统的负担。举例来说,以高分辨率电视(High-Definition Television,HDTV)而言,每张画面所需要的内存空间为1920×1088×1.5=3.13Mbytes。其中,1920×1088是画面分辨率。
由于HDTV的画面的分辨率可达1920×1088,因此造成两个问题。第一个问题是,系统所需要使用的内存太大。第二个问题是,系统传输资料所消耗的频宽太多。为了在不改变习知译码器之架构的条件下,降低消耗频宽和减少使用内存空间,则可以在资料写入(或资料输入总线)之前将画面数据压缩,并且在读入后(或资料输入MC之前)再还原成原先的大小,则可在不影响其余架构的情况下,将频宽需求缩小,并减少内存的使用,藉由解压缩单元与压缩单元,即可节省内存空间以及传输的频宽。
若对每一个经过译码器(decoder)处理后的画面,进行长宽各1/2的缩小程序后,再将画面资料写入内存,则可减少频宽以及内存的需求。
图1为四点压缩成为一点的示意图。每个2×2的方块都会被转换成一个值,作为缩小后画面上的一个点。以下列出几个在像素域(pixel domain)的简单压缩方法:
1.四点平均:将方块中的四个点取平均值成一个点,作为四个点压缩的值。也就是:
y ( m , n ) = 1 4 Σ k = 0 1 Σ h = 0 1 x ( i + h , j + k ) ]]>
2.取左上角的点:直接取方块中的四个点的左上角作为这四个点压缩的值。亦即:
y(m,n)=x(i,j)
若欲将其还原放大,可利用如下的任一方法来完成。
1.复制成四点:将方块内的四个点都使用其平均值。
2.双线性内插法(Bilinear interpolation):利用相邻两个点作线性内插得到中间点的值。
众所周知,画面压缩与解压缩的方法对于画质的影响很大。设计者需要选择一个合适的方法,以避免画面品质劣化。
发明内容
有鉴于此,本发明的目的就是在提供一种图像放大的方法。此方法可将一个低分辨率的原始图像区域加以放大与补偿,而成为一个高分辨率的目标图像区域。
本发明的再一目的是提供一种图像放大的方法。此方法利用原始图像区域内的原始像素点的周围的相邻像素点来获得复数个像素补强值。
本发明所述的一种图像放大的方法,是将一M×N的原始图像放大为一KM×HN的目标图像,其中,M、N、K与H为整数,该图像放大的方法包括下列步骤:
选取处理像素:是从所述原始图像选取一像素作为一待处理像素;
决定特性式样:是依据所述待处理像素以及所述待处理像素周围的复数个相邻像素值,决定出一特性式样;
产生像素补强值:是使用所述特性式样产生一像素补强值数组;产生K×H个目标像素:是依据所述待处理像素的像素值与对应的所述像素补强值数组,产生K×H个目标像素;以及
当所述原始图像尚有未处理像素时重复上述步骤。
所述选取特性式的步骤中,依据所述待处理像素以及所述待处理像素的相邻像素值,进行一特性分析程序,以决定出所述特性式样。
所述特性分析程序是利用复数个倾斜条件表达式,以判断一特性方向,根据所述特性方向决定一恰当矩阵与一恰当函数。
将所述待处理像素的像素值与所述相邻像素值代入该恰当函数中,以产生复数个纯量值,将所述纯量值个别地乘以该恰当矩阵,以获得所述像素补强值。
所述产生像素补强值中,是将所述待处理像素的像素值与所述相邻像素值代入一恰当函数中,以产生复数个纯量值,将所述纯量值个别地乘以对应的一恰当矩阵,以获得所述像素补强值。
本发明所述的一种图像放大的方法,是将一来源像素放大为复数个目标像素,该方法包括下列步骤:
依据该来源像素与相邻的至少一像素,由复数个已预先决定的样式中,选取出一相对应的像素补偿值;以及
依据该来源像素与该相对应的像素补偿值,产生出该复数个目标像素。
所述的复数个已预先决定的样式分别为一垂直倾斜样式、一水平倾斜样式、一由左向右倾斜样式、一由右向左倾斜样式、以及一平坦样式。
依据该来源像素与相邻的至少一像素,产生复数个加权像素值,并利用该复数个加权像素值与复数个倾斜条件表达式,以决定一恰当矩阵与一恰当函数。
所述待处理像素的像素值与所述相邻像素值代入所述的恰当函数中,以产生复数个纯量值,将所述纯量值个别地乘以该恰当矩阵,以获得所述像素补强值。
所述的来源像素与相邻的至少一像素,代入一恰当函数中,以产生复数个纯量值,将所述纯量值分别地乘以对应的一恰当矩阵,以获得所述像素补偿值。
综合上述,本发明提供一种图像放大地方法。由于此方法仅利用相邻像素点的信息执行一个简易且有效率的特性分析程序,有别于习知的繁复的图像放大运算,所以可有效减少内存的使用量,且大幅降低频宽的消耗。再者,利用本方法的像素补强值对原始像素值进行补偿后,放大的图像不会有分辨率大幅下降的情况,有效地克服了习知技术的重大缺点。
图1所示的是将高分辨率图像上的2×2的点缩小为1点的示意图;
图2所示的是原始像素点P欲放大为2×2的目标图像区域的示意图,其中,原始像素点P周围有8个邻近点(A-H);
图3所示的是本发明的图像放大的方法的流程图;
图4所示的是原始像素点的放大后的5种可能倾斜样式。
为更好的理解本发明所述技术,现特举一实施例不能够配合附图详细说明如下。
图2所示的是本发明的一较佳实施例的低分辨率区域放大示意图。此低分辨率区域为一原始图像区域,P点为一个原始像素点,并定义为一待处理像素。在原始图像区域上,待处理像素P有8个相邻像素点,分别为图2上的8个点(A-H),而其像素值为分别为A、...、H,上述8个值即为相邻像素值。假设此原始图像区域,其长宽要各放大为两倍。本实施例的目的就是要将P点放大成一个2×2方块的目标图像区域。如图4的P[0]至P[3]来表示四个目标像素点。
图3所示的是本发明的图像放大的方法的流程图。参考图3说明本发明图像放大的方法的步骤。
步骤S302:选取一待处理像素。亦即,从原始图像区域中选取一像素作为一待处理像素P。
步骤S304:特性分析并选取一特性式样(characteristic pattern)。根据待处理像素P周围的复数个相邻像素值,执行一特性分析。此特性分析是用来判断该待处理像素P的周围相邻像素值的倾斜方向。一般而言,倾斜方向大致分为垂直方向、水平方向、以及两个对角线方向。亦即,特性分析相当于分析所要放大的目标图像区域的像素值应朝哪个方向倾斜:左右、上下、或是斜角。请参考图4,其中,图4(a)为垂直的倾斜方向,图4(b)为水平的倾斜方向,图4(c)是由左向右的对角线倾斜方向,图4(d)为由右向左的对角线倾斜方向,图4(e)为平坦的样式。
要判断出所要放大的目标图像区域的像素值会符合哪一种特性式样,可利用下列的加权相加程序,计算出8个加权像素值(vA-vH):
vA=2A+B+D
vB=2B+A+C
vC=2C+B+E
vD=2D+A+F
vE=2E+C+H
vF=2F+D+G
vG=2G+F+H
vH=2H+E+G
其中,vA-vH表示以待处理像素P周围八个方向上的点的加权值,例如:vA表示左上方的值。
接着,利用vA-vH决定倾斜方向。通常,倾斜方向上的两边的像素值有很大的差异。亦即,某个方向上像素值相差愈大,其方向就愈可能是斜面的方向。我们可以利用这个性质,以下列的倾斜条件表达式来进行判断倾斜方向:
d0=vD-vE
d1=vB-vG
d2=vC-vF
d3=vA-vH
dir=arg maxi{|di|}
其中,dir是为斜面的方向值。亦即当d0为最大值时,特性式样为水平特性式样;当d1为最大值时,特性式样为垂直特性式样;当d2为最大值时,特性式样为正斜率倾斜特性式样;而当d3为最大值时,特性式样为负斜率倾斜特性式样。所以,可以从方向值dir选择一特性式样。
步骤S306:确认特性式样是否符合原先的假设。由于上述倾斜方向是假设待处理像素P的值会介于斜面高点与低点之间,所以此假设必须正确,以避免错误的倾斜。亦即,可利用上述的倾斜条件表达式检查原始像素值与对应的相邻像素值是否符合倾斜方向的假设。举例来说,根据上述判断得到的斜面方向,斜面上下两点分别为D以及E,则D、E、P须符合以下关系:
D≤P≤E
or
D≥P≥E
若上述关系式不成立,则表示待处理像素P所在位置不符合倾斜方向的假设。此时,可直接假设此2×2的方块为平坦的样式,或选取第二大的方向值dir所对应的倾斜方向作为特性式样,并重复进行确认。对于各个不同的方向值dir的确认判断式如下:
dir=0D≤P≤E or E≤P≤D
dir=1B≤P≤G or G≤P≤B
dir=2C≤P≤F or F≤P≤C
dir=3A≤P≤H or H≤P≤A
步骤S308:计算像素补强值数组。若方向值dir及待处理像素P符合以上述的条件,则代表符合倾斜方向的假设,即可开始进行斜面方向补强值数组的运算。以四点压缩成一点来说,相当于利用A-H以及待处理像素P的值来还原pixel[0:4]。亦即:
p[i]=fi(A,B,...,H,P)+P
P ′ = P [ 0 ] P [ 1 ] P [ 2 ] P [ 3 ] = f 0 ( A , . . , H , P ) f 1 ( A , . . , H , P ) f 2 ( A , . . , H , P ) f 3 ( A , . . , H , P ) + P 1 1 1 1 ]]>
在本实施例中可简化f0-f3的形式,根据倾斜方向决定一个恰当矩阵集合与一个恰当函数集合。首先,选择数个不同的2对2矩阵,其集合称作S,此集合即为恰当矩阵集合。另外,选择数个函数,其集合称作U,此集合即为恰当函数集合。每一个S中的元素,在集合U中都有一个相对应的函数gi(A,..,H,P)。P1是为β中任一元素的倍数,其倍数为gi(A,..,H,P)。亦即,将待处理像素的像素值与对应的相邻像素值代入相对应的恰当函数集合U中,以产生复数个纯量值。之后,将这些纯量值个别地乘以对应的恰当矩阵S,以获得这些像素补强值(即为下列所示的P1)。将:
S = { β 0 , . . . , β N - 1 } , U = { { g 0 ( A , . . . , H , P ) , . . . , g N - 1 ( A , . . . , H , P ) } ]]>
∃ dir , β dir ∈ S , g dir ∈ U ]]>
⇒ P ′ = P 1 + P 2 = g dir ( A , . . . , H , P ) × β dir + P 1 1 1 1 ]]>
= g dir ( A , . . . , H , P ) × β dir , 0 β dir , 1 β dir , 2 β dir , 3 + P 1 1 1 1 ]]>
举例来说,可选择集合S如下:
S = { 1 1 1 1 , 1 1 1 1 , 0 1 - 1 0 , 1 0 0 - 1 } ]]>
对应的函数集合U为:
U={g0,g1,g2,g3}
g 0 = ( B + E ) - ( D + G ) 8 ]]>
g 1 = ( B + D ) - ( E + G ) 8 ]]>
g 2 = ( 2 D + A + F ) - ( 2 E + C + H ) 16 ]]>
g 3 = ( 2 B + A + C ) - ( 2 G + F + H ) 16 ]]>
其中,恰当矩阵集合S与恰当函数集合U为事先定义,之后,根据倾斜方向来选取对应的恰当矩阵与恰当函数。亦即,上述的恰当矩阵集合S与恰当函数集合U可依实际情况找出对应的集合,以便作最佳化的调整。
步骤S310:计算目标像素值。将待处理像素的像素值与对应的像素补强值数组相加,以产生复数个目标像素值。并将目标像素值适当地置入目标图像区域中,即可得到一个目标图像区域。此目标图像区域即为放大后的原始图像区域。
步骤S312:确认是否已完成。当原始图像区域尚有未处理的像素时重复上述步骤。
举例来说,若原始图像区域大小将为(M+2)×(N+2),且目标图像区域KM×HN,则利用长宽压缩K及H倍的图像来传输,再以本发明的方法予以放大,只需要原先的(M+2)×(N+2)/(KM×HN)的频宽。
特别注意的是,本发明的方法并不局限于将图像长宽各放大两倍的应用。利用本发明的方法,可以将长宽各为M、N的图像,各放大K倍及H倍。也就是将M×N的图像放大为KM×HN,并作品质的加强。
综合上述,本发明提供一种图像放大的方法。此方法可以有效减少内存的使用量以及频宽的消耗。若放大后的高分辨率图像为KM×HN(K、H、M、N皆为整数),亦即,将M×N的低分辨率区域长宽各放大K倍以及H倍,则储存于内存中的图像大小只有M×N,仅为未做任何压缩处理的画面(KM×HN)的1/KH。
以上虽以实施例说明本发明,但并不因此限定本发明的范围,本发明的保护范围以权利要求书的限定为准。