图像插补方法及其相关图像插补装置
技术领域
本发明涉及图像处理,尤其涉及基于梯度的图像插补方法及其相关图像插补装置。
背景技术
图像插补(Image interpolation)是一个普遍使用在图像处理的技术,最常见的应用是为了让图像产生更好的放大或缩小的视觉效果,以便进行图像的显示和打印。近年来,随着消费性多媒体产品的盛行,相关取像或显像的电子装置成为重要的产业项目,例如,平面显示器、数字相机等,而图像插补方法就是其中核心控制的重要功能之一。图像插补方法尤其在需要进行不同像素坐标***的图像尺寸调整或重新映射、图像校正、图像变形,图像缩放等操作时特别有用。
现有的图像插补技术包含不具方向性的双线性插补(bi-linear interpolation)技术和双三次插补(bi-cubic interpolation)技术等线性插补算法,其通过来源图像中关于最邻近的像素点的计算来得到目标图像中新创造的像素值。举例来说,在双线性插补放大算法中,目标图像中新创造的像素值,是由来源图像位置在其附近的2*2区域4个邻近像素的值通过加权平均计算得出的,而在双三次插补放大算法中,目标图像中新创造的像素值,是由来源图像位置在其附近的4*4区域16个邻近像素的值通过加权平均计算得出的。由于线性插补算法只需要关于最邻近的像素点的计算,实现的复杂度非常低,运算成本较低,且线性插补算法放大后的图像质量较高,不会出现像素值不连续的情况,因此应用非常广泛。然而线性插补算法具有低通滤波器的性质,使高频部分受损,插补后的图像细节会出现锯齿状,特别是插补后的图像边缘(edges)与线条特征容易呈现模糊化或过曝之类的伪影效果(artifact),令观看者产生离焦(de-focus)的视觉感受,因此现有的线性插补算法无法在维持较低的运算成本的考虑下,又同时全部消除这些呈现模糊化或过曝之类的伪影效果。
发明内容
有鉴于此,本发明提供一种图像插补方法及其相关图像插补装置。
本发明的一实施例提供一种图像插补方法,用以利用一来源图像插补出一目标图像的一目标像素点,适用于包括一图像插补装置的一图像处理***,包括下列步骤:自来源图像中选取相应目标像素点的多个来源像素点;基于上述多个来源像素点取得一梯度方向以及一梯度幅值;根据上述梯度方向以及上述梯度幅值,决定每一来源像素点的一对应权重;以及根据上述来源像素点的像素值及其对应权重进行一插补运算,以得到上述目标像素点的像素值。
本发明另一实施例提供一种图像插补装置,用以利用一来源图像插补出一目标图像的一目标像素点,其包括一插补坐标计算元件、一插补方向决定元件、一权重系数产生元件、以及一插补运算元件。插补坐标计算元件用以进行一坐标映射,自上述来源图像中选取相应上述目标像素点的多个来源像素点。插补方向决定元件耦接至上述插补坐标计算元件,用以取得上述来源像素点的一梯度方向以及一梯度幅值。权重系数产生元件耦接至上述插补方向决定元件,用以根据上述梯度方向以及上述梯度幅值,决定每一上述来源像素点的一对应权重。插补运算元件耦接至上述插补坐标计算元件以及上述权重系数产生元件,用以根据上述来源像素点的像素值及其对应权重进行一插补运算,以得到上述目标像素点的像素值。
本发明的上述方法可经由本发明的装置或***来实作,其为可执行特定功能的硬件或固件,也可以通过程序代码方式收录于一记录介质中,并结合特定硬件来实作。当程序代码被电子装置、处理器、计算机或机器载入且执行时,电子装置、处理器、计算机或机器变成用以实行本发明的装置或***。
附图说明
图1为根据本发明实施例的图像处理***的示意图。
图2为根据本发明实施例的图像插补装置的示意图。
图3显示本发明一实施例的图像插补方法的流程图。
图4为根据本发明实施例的边缘区域的示意图。
图5A至图5D显示本发明一实施例的梯度方向决定方法的流程图。
图6A为根据本发明实施例的图像坐标***的示意图。
图6B为根据本发明实施例的边缘坐标***的示意图。图7为根据本发明实施例的梯度幅值与调整群组的关系示意图。
图8为根据本发明实施例的滤波器大小的调整结果示意图。
【符号说明】
10~来源图像;
20~目标图像;
100~图像处理***;
110~图像输入装置;
120~图像插补装置;
130~存储装置;
140~显示装置;
210~插补坐标计算元件;
220~插补方向决定元件;
230~权重系数产生元件;
240~插补运算元件;
S302、S304、S306、S308~步骤;
S502、S504、…、S546~步骤;
DiffTh1、DiffTh2、DiffTh3、DiffTh4~阈值;以及
810、820、830~曲线。
具体实施方式
为让本发明的目的、特征、和优点能更明显易懂,特举出下文实施例,并配合附图,作详细说明如下。注意的是,本章节所叙述的实施例目的在于说明本发明的实施方式而非用以限定本发明的保护范围,本领域技术人员在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当视所附权利要求书界定范围为准。应理解下列实施例可经由软件、硬件、固件,或上述任意组合来实现。
本发明实施例中提供了一种使用基于梯度变化的插补滤波器(gradient-basedinterpolation filter)的图像插补方法(image interpolation)及其相关图像插补装置,可根据梯度方向(gradient direction)调整线性插补函数,使沿着梯度方向(directionalong the gradient direction)的插补像素点于插补计算时有较大的权重,而使正交于梯度方向(direction orthogonal to the gradient direction),即边缘方向的插补像素点于插补计算时有较小的权重,藉此可保留梯度方向上的图像高频部分,防止插补后的目标图像的边缘变得模糊,并可有效消除噪声和伪影,从而使插补后的目标图像有更好的质量。
图1显示根据本发明的图像处理***一实施例的示意图。如图1所示,图像处理***100至少包括图像输入装置110、一图像插补装置(image interpolation device)120、一存储装置130以及一显示装置140。图像输入装置110可用以接收或取得一来源图像(sourceimage)10,以提供来源图像10至图像插补装置120进行后续图像分析与插补处理。举例来说,图像处理***100可为膝上型计算机、桌上型计算机、平板装置或其它手持式装置(例如,智能手机)等,但本发明并不限于此。举例来说,在一实施例中,图像输入装置110可为图像提取单元,例如一红外线图像提取装置、一光电耦合元件或一互补式金属氧化物半导体光学感测元件的其中一个或其任意组合,但本发明不限于此。其中,来源图像10可为一图片、一图像或一视频的一画面等等。
图像插补装置120耦接至图像输入装置110与存储装置130,可从存储装置130中载入并执行指令集和/或程序代码,以根据图像输入装置110或存储装置130所提供的来源图像10执行本申请所述的图像插补方法,其细节将于后进行说明。具体来说,图像插补装置120使用线性插补算法如双线性(bi-linear)或双三次(bi-cubic)插补算法等,由来源图像位置在其附近的多个邻近来源像素点(source pixel)的像素值加权平均计算得出目标图像20中新创造的目标像素点(destination pixel)的像素值。
图2显示根据本发明的图像插补装置一实施例的示意图。如图2所示,图像插补装置120包括多个硬件元件,至少包括插补坐标计算元件(Interpolation CoordinateCalculator)210、插补方向决定元件(Interpolation Direction Determination)220、权重系数产生元件(Weighting Coefficient Generator)230以及插补运算元件(Interpolation Unit)240。插补坐标计算元件210用以进行坐标映射,以根据目标像素点在目标图像中的位置选取来源图像10中参与插补计算的多个来源像素点。插补方向决定元件220连接至插补坐标计算元件210,用以根据插补坐标计算元件210所选取的来源像素点,获取局部区域的统计信息。例如,插补方向决定元件220可通过阈值及一系列计算确定图像边缘变化的方向,以确定新坐标。权重系数产生元件230连接至插补方向决定元件220,根据插补方向决定元件220所决定的新坐标以及通过调整插补滤波器(filter)的大小来决定每个参与计算的来源像素点的权重。插补运算元件240连接插补坐标计算元件210以及权重系数产生元件230,用以利用来源图像10中参与计算的来源像素点的像素值与权重系数产生元件230所得到各来源像素点的权重加权求和以进行插补计算,得到目标图像20的目标像素点的像素值。举例来说,插补运算元件240可为通用处理器、微处理器(Micro-ControlUnit,MCU)、图形处理器(Graphics Processing Unit,GPU)或数字信号处理器(DigitalSignal Processor,DSP)等,用以提供图像数据分析、处理及插补运算的功能。
在另一实施例中,图像插补装置200可还包括一后端评估元件(Post Evaluation)(未绘示)用以对插补结果进行后续处理,来进行去除伪影或锯齿等图像优化处理,以进一步提升输出图像的质量。
存储装置130可为非易失性存储介质(例如,只读存储器(Read-Only Memory,ROM)、快闪存储器(Flash memory)、硬盘、光盘等)、易失性存储介质(例如,随机存取存储器(Radom Access Memory,RAM))、或两者的任意组合,用以存储相关数据,例如运算过程中的中间数据及结果数据等。在一些实施例中,存储装置130可事先存储来源图像10,图像插补装置120也可直接由存储装置130中存取来源图像10进行后续处理,而无须通过图像输入装置110。
显示装置140可为任一可用以显示或呈现辨识结果的装置。显示装置140可显示相关数据,例如是文字、图形、接口和/或各种信息如显示或呈现运算结果等。显示装置140可用以呈现插补计算结果的目标图像(包含任一种图像格式,如bmp、jpg、png等)或呈现插补结果的画面,例如液晶显示器(LCD)。应理解的是,在一些实施例中,显示装置140结合触碰感应装置(未绘示)的屏幕。触控感应装置具有一触控表面,其包括至少一维度的传感器以检测靠近或在触控表面上的一输入工具如手指或触控笔等在其表面上的接触及动作。因此,使用者可通过显示装置140来进行触控输入命令或信号。
可理解的是,上述各元件或模块为一具有对应功能的装置,可具有适当的硬件电路或元件以执行对应功能,然而,该装置并不以具有实体为限,其亦得为一虚拟的具有对应功能的程序、软件,或是具有处理、运行该程序、软件能力的装置。而上述各元件运作的方式,可进一步地参阅以下对应的方法的说明。明确来说,图像处理***100可经由图像插补装置120来控制图像输入装置110、存储装置130以及显示装置140的操作来执行本申请的图像插补方法。
图3显示本发明一实施例的图像插补方法的流程图。根据本发明实施例的图像插补方法可以适用于一图像处理***,举例来说,可适用于图1的图像处理***100并由图像插补装置120加以执行。明确来说,图像插补装置120可藉由控制前述插补坐标计算元件210、插补方向决定元件220、权重系数产生元件230以及插补运算元件240的操作来执行本申请的图像插补方法。
首先,如步骤S302,插补坐标计算元件210从来源图像中选取参与插补计算的多个来源像素点(src pixels)。具体来说,插补坐标计算元件210可先由图像输入装置110或存储装置130中取得来源图像10,并根据目标像素点的位置,选取要参与插补计算的来源像素点。在此实施例中,目标图像的每个目标像素点的值是未知的,而来源图像每个来源像素点的值是已知的,且目标图像与来源图像之间的像素点存在坐标变换关系。对于目标图像的某一目标像素点P,假设其在目标图像的坐标为(x_dst,y_dst),则插补坐标计算元件210可先经由坐标变换关系求出目标像素点P在来源图像的坐标(x_src,y_src),之后再取(x_src,y_src)周围nxn个像素点作为参与计算的像素点,其中n的值取决于使用的算法需求。在一实施例中,插补坐标计算元件210会取出来源图像10中最接近目标像素点的位置的5*5个(即,n=5)来源像素点作为要参与插补计算的来源像素点,但本发明不限于此。举例来说,以图像缩放操作为例,假设来源图像的宽度为WidthSrc与高度为HeightSrc且目标图像的宽度为WidthDst与高度为HeightDst时,可经由以下坐标变换关系求出目标像素点P(x_dst,y_dst)在来源图像的坐标(x_src,y_src):
x_src=Ratiox*x_dst;
y_src=Ratioy*y_dst;
其中,Ratiox=WidthSrc/WidthDst且
Ratioy=HeightSrc/HeightDst。
接着,如步骤S304,插补方向决定元件220根据插补坐标计算元件210所选取要进行插补的来源像素点,获取局部区域的局部梯度信息,以确定图像边缘变化的方向。其中局部梯度信息包括一梯度方向以及一梯度幅值,梯度方向可用以表示图像边缘变化的方向,而梯度幅值则表示图像边缘变化的大小。边缘方向可定义为图像边缘的法线方向。更具体而言,梯度方向及梯度幅值可为基于图像灰度值计算出的灰度梯度方向及灰度梯度强度。
在步骤S304中,插补方向决定元件220可先计算梯度方向,并将梯度方向作为插补方向。在一实施例中,计算梯度方向可包括:计算四个方向边缘运算子(direction edgeoperator)的梯度值,分别为水平梯度值edgeH、垂直梯度值edgeV、左斜梯度值edgeL以及右斜梯度值edgeR;并根据计算出的四个方向边缘运算子的梯度值的比例关系来决定梯度方向。其中,四个方向边缘运算子可由预设的水平梯度运算子GH、垂直梯度运算子GV、左斜梯度运算子GL以及右斜梯度运算子GR计算而得。在一实施例中,水平梯度运算子GH、垂直梯度运算子GV、左斜梯度运算子GL以及右斜梯度运算子GR可设置为:
举例来说,假设Srcwindow[5][5]为用于计算目标像素点的来源图像中的5x5个来源像素点,则水平梯度值edgeH可根据以下公式得到:
edgeH=GH*Srcwindow;
其中,*表示卷积运算。
类似地,垂直梯度值edgeV、左斜梯度值edgeL以及右斜梯度值edgeR可分别通过GV、GL、GR与Srcwindow的卷积运算得到,亦即:
edgeV=GV*Srcwindow;
edgeL=GL*Srcwindow;以及
edgeH=GR*Srcwindow。
应注意的是,GH、GV、GL、GR等梯度运算子只是一个实施例,然本发明并不限于此,举例来说,在另一实施例中,梯度运算子GH、GV、GL、GR也可设置为:
在另一实施例中,插补方向决定元件220也可通过以下两个优化后的组合滤波器公式来得到四个不同的方向边缘梯度算子:
接着,插补方向决定元件220根据计算出的四个方向边缘运算子的梯度值的比例关系来决定梯度方向。在一实施例中,决定梯度方向的步骤可包括:将梯度方向依角度分为多个边缘区域(edge region);将边缘区域中边缘区域的方向互相正交的两边缘区域分为同一类别(class),产生多个类别;以及根据方向梯度值的比例关系,选择其中一类别作为梯度方向。
在一实施例中,边缘区域的数量可为8以及类别的数量为4。也就是说,梯度方向划分为8个边缘区域且分为4个类别。应注意的是,分为4个类别只是计算量和图像质量上的权衡的一个实施例,然本发明并不限于此。在另一实施例中,梯度方向也可以存在其他多个类的划分,如6个类别等。
图4为根据本发明实施例的边缘区域的示意图。如图4所示,边缘方向根据角度分成表示8个不同的离散方向的8个边缘区域0~7,例如由角度值为0°与180°的两条线来确定边缘区域0,由角度值为19°与199°的两条线来确定边缘区域1,由角度值为45°与225°的两条线来确定边缘区域2,由角度值为71°与251°的两条线来确定边缘区域3,由角度值为90°与270°的两条线来确定边缘区域4,由角度值为109°与289°的两条线来确定边缘区域5,由角度值为135°与315°的两条线来确定边缘区域6,由角度值为161°与341°的两条线来确定边缘区域7。由图4可知,当像素点的位置属于边缘区域0时,表示此像素点为非边缘像素点(non-edge pixel)或水平边缘像素点(horizontal edge pixel);当像素点的位置属于边缘区域1时,表示此像素点为左侧水平边缘像素点(left horizontal edge pixel);当像素点的位置属于边缘区域2时,表示此像素点为左斜边缘像素点(left oblique edgepixel);当像素点的位置属于边缘区域3时,表示此像素点为左侧垂直边缘像素点(leftvertical edge pixel);当像素点的位置属于边缘区域4时,表示此像素点为垂直边缘像素点(vertical edge pixel);当像素点的位置属于边缘区域5时,表示此像素点为右侧垂直边缘像素点(right vertical edge pixel);当像素点的位置属于边缘区域6时,表示此像素点为右斜边缘像素点(right oblique edge pixel);以及当像素点的位置属于边缘区域7时,表示此像素点为右侧水平边缘像素点(right horizontal edge pixel)。
在此实施例中,将梯度方向分为8种方向且边缘区域中方向互相正交的边缘区域合成同一类别。例如:边缘区域0与边缘区域4相互正交,两者合成第一类别(classI)。类似地,边缘区域2与边缘区域6相互正交,两者合成第二类别(classII)、边缘区域1与边缘区域5相互正交,两者合成第三类别(classIII)以及边缘区域3与边缘区域7相互正交,两者合成第四类别(classIV)。其中,第一类别又称为正向梯度,第二类别又称为斜向梯度,第三类别与第四类别又称为中间梯度。
因此,前述根据方向梯度值的比例关系,决定梯度方向可先利用edgeR与edgeL的比例关系,判断该像素点的梯度方向属于以下类别中的哪一种:正向梯度A、斜向梯度B或中间梯度C。当该像素点的梯度方向属于正向梯度A时,表示该像素点属于第一类别,因此其边缘区域为边缘区域0或边缘区域4。当该像素点的梯度方向属于斜向梯度B时,表示该像素点属于第二类别,因此其边缘区域为边缘区域2或边缘区域6。当该像素点的梯度方向属于中间梯度C时,再利用edgeH与edgeV的比例关系,判断该像素点的梯度方向属于以下类别中的哪一种:第三类别(边缘区域1或边缘区域5)或第四类别(边缘区域3或边缘区域7)。详细的梯度方向决定方法请参见图5A至图5D。
图5A至图5D显示本发明一实施例的梯度方向决定方法的流程图。根据本发明实施例的梯度方向决定方法可以适用于一图像处理***,举例来说,可适用于图1的图像处理***100并由图像插补装置120的插补方向决定元件220加以执行。
首先,插补方向决定元件220先计算出四个方向边缘运算子的梯度值:水平梯度值edgeH、垂直梯度值edgeV、左斜梯度值edgeL、右斜梯度值edgeR(步骤S502)。其中,可分别以前述对应的梯度运算子GH、GV、GL与GR对选取的5x5个来源像素点的像素值进行卷积运算以得到水平梯度值edgeH、垂直梯度值edgeV、左斜梯度值edgeL、右斜梯度值edgeR。
接着,插补方向决定元件220判断水平梯度值edgeH、垂直梯度值edgeV、左斜梯度值edgeL、右斜梯度值edgeR绝对值当中的最大梯度值是否小于预设的一阈值(步骤S504)。若是,则插补方向决定元件220判定此像素点为非边缘像素点(non-edge pixel)(步骤S506),判断流程结束,开始进行下一个像素点(若有)所属类型的判断流程。反之,若最大值大于或等于预设的阈值(步骤S504的否),接着插补方向决定元件220判断edgeR与edgeL是否符合第一比例关系(步骤S508)。举例来说,在一实施例中,第一比例关系可相关于edgeR的绝对值与edgeL的绝对值之间的倍数关系,但本发明不限于此。若是,则表示edgeL与edgeR的值接近,接着插补方向决定元件220判断edgeH与edgeV是否符合第二比例关系(步骤S510)。举例来说,在一实施例中,第二比例关系可相关于edgeH的绝对值与edgeV的绝对值之间的比例关系,但本发明不限于此。若是,插补方向决定元件220判定此像素点为水平边缘像素点,因此判定其梯度方向属于边缘区域0,判断流程结束(步骤S512)。
若否,接着插补方向决定元件220判断edgeV和edgeH是否符合第三比例关系(步骤S514)。举例来说,在一实施例中,第三比例关系可相关于edgeV的绝对值与edgeH的绝对值之间的比例关系,但本发明不限于此。若是,插补方向决定元件220判定此像素点为垂直边缘像素点(vertical edge pixel),因此其梯度方向属于边缘区域4,判断流程结束(步骤S516)。
若否,接着插补方向决定元件220判断edgeR、edgeV、edgeH与edgeL是否符合第四比例关系(步骤S518)。举例来说,在一实施例中,第四比例关系可相关于edgeR的绝对值与edgeL的绝对值之间的大小关系以及edgeV与edgeH的正负号(sign)关系,但本发明不限于此。若是,接着插补方向决定元件220判断edgeH的绝对值是否大于edgeV的绝对值(步骤S520)。若是,插补方向决定元件220判定此像素点为水平右边缘像素点(horizontal-rightedge pixel),因此判定其梯度方向属于边缘区域7,判断流程结束(步骤S522)。若否,插补方向决定元件220判定此像素点为垂直右边缘像素点(vertical-right edge pixel),因此判定其梯度方向属于边缘区域5,判断流程结束(步骤S524)。
回到步骤S518,若edgeR、edgeV、edgeH与edgeL不符合上述第四比例关系(步骤S518的否),接着插补方向决定元件220判断edgeR、edgeV、edgeH与edgeL是否符合第五比例关系(步骤S526)。举例来说,在一实施例中,第五比例关系可相关于edgeL的绝对值与edgeR的绝对值之间的大小关系以及edgeV与edgeH的正负号(sign)关系,但本发明不限于此。若是,接着插补方向决定元件220判断edgeH的绝对值是否大于edgeV的绝对值(步骤S528)。若edgeH的绝对值大于edgeV的绝对值(步骤S528的是),插补方向决定元件220判定此像素点为水平左边缘像素点(horizontal-left edge pixel),因此判定其梯度方向属于边缘区域1,判断流程结束(步骤S530)。若edgeH的绝对值小于或等于edgeV的绝对值(步骤S528的否),插补方向决定元件220判定此像素点为垂直左边缘像素点(vertical-left edgepixel),因此判定其梯度方向属于边缘区域3,判断流程结束(步骤S532)。
回到步骤S526,若edgeR、edgeV、edgeH与edgeL不符合上述第五比例关系(步骤S526的否),接着插补方向决定元件220判断梯度幅值Diff与edgeR、edgeV、edgeH与edgeL绝对值的最大梯度值是否符合第六比例关系(步骤S534)。举例来说,在一实施例中,第六比例关系可相关于梯度幅值Diff与edgeR、edgeV、edgeH与edgeL绝对值的最大梯度值的倍数之间的大小关系,但本发明不限于此。其中,梯度幅值Diff的算法将说明于后。若是(步骤S534的是),插补方向决定元件220判定此像素点为噪声像素点(noise pixel),因此判定其梯度方向属于边缘区域0,判断流程结束(步骤S536);若否(步骤S534的否),判定此像素点为非边缘像素点,因此判定其梯度方向属于边缘区域0,判断流程结束(步骤S538)。
回到步骤S508,若edgeR与edgeL不符合第一比例关系(步骤S508的否),接着插补方向决定元件220判断edgeL的绝对值是否大于4倍的edgeR的绝对值(步骤S540)。若edgeL的绝对值大于4倍的edgeR的绝对值(步骤S540的是),插补方向决定元件220判定此像素点为左斜边缘像素点(left oblique edge pixel),因此判定其梯度方向属于边缘区域2,判断流程结束(步骤S542)。若edgeL的绝对值小于或等于4倍的edgeR的绝对值(步骤S540的否),接着插补方向决定元件220判断edgeR的绝对值是否大于4倍的edgeL的绝对值(步骤S544)。若edgeR的绝对值大于4倍的edgeL的绝对值(步骤S544的是),插补方向决定元件220判定此像素点为右斜边缘像素点(right oblique edge pixel),因此判定其边缘区域属于区域6,判断流程结束(步骤S546)。相反地,若edgeR的绝对值小于或等于4倍的edgeL的绝对值(步骤S544的否),则插补方向决定元件220接着跳到前述步骤S518,并接着执行前述步骤S520至S538的判断以判断出此像素点的位置,进而决定出其梯度方向属于边缘区域0、1、3、5以及7中的那一个(如图5C与图5D所示)。需要注意的是,上述步骤S540和步骤S544中所用的4倍只是基于边缘范围来确定的倍数关系的一种实施方式,在其他实施例中,也可采用其他的倍数关系,如3.5倍。
回到图3,在确定表示图像边缘变化的梯度方向之后,接着,如步骤S306,权重系数产生元件230根据局部区域的局部梯度信息,调整用于插补计算的插补滤波器的大小,以确定要进行插补的各来源像素点的权重。明确来说,各来源像素点的权重是由各来源像素点到中心像素点的距离决定的,亦即,由沿边缘方向与正交边缘方向两个距离共同决定。
在一些实施例中,权重系数产生元件230可根据局部梯度信息,决定每一来源像素点的对应权重,其可包括以下步骤:根据局部梯度信息,得到一边缘方向;进行一坐标转换,将每一来源像素点自一图像坐标***(第一坐标***)下转换至对应边缘方向的一第二坐标***下,其中第二坐标***的横轴(x轴)沿梯度方向且其纵轴(y轴)沿边缘方向,来源像素点有对应于第二坐标***的一第一分量dx以及一第二分量dy,其中第一分量dx表示来源像素点与横轴(沿梯度方向)的距离且第二分量dy表示来源像素点与纵轴(沿边缘方向)的距离;以及根据第一分量dx以及第二分量dy,决定来源像素点的对应权重。
举例来说,在一实施例中,假设来源像素点P的坐标为(x_src,y_src),其沿边缘方向的距离为dx,正交边缘方向的距离为dy,若采用双三次插补算法,则来源像素点P的权重为:Rc(dx)*Rc(dy),
其中Rc(x)可表示为:
其中,Rc()为双三次插补函数,B和C为预设常数。
也就是说,距离dx、dy越小,权重越大。应理解的是,以上计算权重的公式只是本发明一个实施例,然计算权重的公式可替换为其它计算公式,本发明并不限于此。举例来说,在另一实施例中,双线性插补函数Rc(x)也为:
对于边缘方向属于第一类别(Class I)的来源像素点,因为边缘方向是水平或垂直的,其插补与常规双三次(bi-cubic)插补相同,若将参与计算的多个来源像素点以上述多个来源像素点中经过坐标转换后在来源图像上离目标像素点最近的多个来源像素点中位于左上角的一个为一参考像素点形成一具有m行n列的一采样窗(m=0~m-1,n=0~n-1),则其dx与dy可定义如下:
其中,p、q分别表示目标像素点与参考像素点在第一坐标***的一横向距离与一纵向距离,dx(m,n)表示上述采样窗的第m行第n列个来源像素点与上述目标像素点在沿上述横轴方向上的横向距离,dy(m,n)表示第m行第n列个来源像素点与上述目标像素点沿上述纵轴方向上的纵向距离。上述确定离目标像素点最近的多个来源像素点中位于左上角的一个为一参考像素点的具体方式可为:查找出离目标像素点较近的多个(如2x2)来源像素点(若目标像素点的位置与来源像素点所处的位置重合,则目标像素点的位置与来源像素点的位置之间的距离为0,在本实施例中,距离为0也是一种距离,即最小距离);然后,选择位于上述多个来源像素点中的左上角的一来源像素点作为参考像素点。
举例来说,以bi-cubic为例,每一个目标像素点需要计算与4x4个来源像素点(srcpixels)的距离,因此这些来源像素点以其对应中心像素点(center pixel)形成一具有4行4列的一采样窗。其中,p、q表示目标像素点与其对应中心像素点在第一坐标***的距离。目标像素点的对应中心像素点定义为与目标像素点最近且位于左上角的来源像素点。此对应中心像素点即为参考像素点。在本实施例中,假设Pixelout(x_dst,y_dst)表示目标图像坐标为(x_dst,y_dst)的像素点的像素值,Pixelin(x_src,y_src)表示来源图像坐标为(x_src,y_src)像素点的像素值,其中像素点(x_src,y_src)为像素点(x_dst,y_dst)经过坐标映射后在来源图像上离它最近的左上角的像素点,两者横向距离为p,纵向距离为q,取(x_src-1)到(x_src+2)行,(y_src-1)到(y_src+2)列像素点构成4x4的采样窗,m、n分别表示来源像素点在4x4窗内的行位置与列位置,m={0,1,2,3},n={0,1,2,3}。dx(m,n)表示参与计算第m行第n列个来源像素点与目标像素点沿x轴方向上的距离。dy(m,n)表示参与计算第m行第n列个来源像素点与目标像素点沿y轴方向上的距离。在一些实施例中,采样窗的大小也可以不设置为4x4,如采样窗的大小可设置为5x5。在一些实施例中,也可以将与参与计算的多个来源像素点以上述多个来源像素点中经过坐标转换后在来源图像上离目标像素点最近的多个来源像素点中位于右上角的一个作为参考像素点,也可以将与参与计算的多个来源像素点以上述多个来源像素点中经过坐标转换后在来源图像上离目标像素点最近的多个来源像素点中位于右下角或左下角的一个作为参考像素点。
对于边缘方向属于第二类别(ClassII)、第三类别(ClassIII)或第四类别(ClassIV)的来源像素点,假设其插补计算与现有的双三次插补计算方式相同时,由于不沿边缘方向进行内插可能会导致锯齿状像素或锯齿形假影。因此,对于边缘方向属于第二类别(ClassII)、第三类别(ClassIII)或第四类别(ClassIV)的像素点采用以下列公式进行计算:
其中,m、n分别表示上述来源像素点于上述采样窗中的对应行位置与列位置,p、q分别表示上述目标像素点与上述参考像素点在上述第一坐标***的一横向距离与一纵向距离,dx(m,n)表示上述采样窗的第m行第n列个来源像素点与上述目标像素点在上述第二坐标***的一横向距离,dy(m,n)表示上述第m行第n列个来源像素点与上述目标像素点在上述第二坐标***的一纵向距离,i为一边缘区域编号,θi表示上述边缘区域i的角度值。
举例来说,在一实施例中,假设i的数值为0~7且Θ1~Θ7分别表示边缘区域1~边缘区域7的角度值时,则Θ1~Θ7的数值可设为(19°,45°,19°,71°,109°,135°,171°)。
明确来说,权重系数产生元件230可先将每一来源像素点的图像坐标***(第一坐标***)下的距离(p,q)(如图6A所示)分解到边缘坐标***(第二坐标***)下(dx,dy),其中边缘坐标***的x轴沿梯度方向,边缘坐标系的y轴沿边缘方向,梯度方向正交于边缘方向,dx表示坐标转换后的横向(x轴方向)距离值,dy表示坐标转换后的纵向(y轴方向)距离值(如图6B所示)。也就是说,dx表示沿梯度方向的距离,dy表示正交于梯度方向(即,沿边缘方向)的距离。
接着,权重系数产生元件230进行滤波器大小的调整,以调节用于插补运算的插补滤波器(例如双三次滤波器(cubic filter))的大小。在一些实施例中,权重系数产生元件230根据第一分量dx以及第二分量dy,决定来源像素点的对应权重的步骤还包括:根据第一分量dx以及第二分量dy,调整用于插补运算的插补滤波器的大小,并根据调整后的插补滤波器的大小,决定来源像素点的对应权重。
明确来说,滤波器大小的调整可大致包括以下步骤:计算梯度幅值Diff,再根据梯度幅值Diff,分析梯度特性,划分调整群组,并根据调整群组所对应的强度值决定调节幅度adjustsimilarity。
举例来说,假设Srcwindow[M][N]定义为来源图像中对应于目标像素点的MxN个来源像素点,则梯度幅值Diff可根据以下公式得到:
Diff=CombineHV[M][N]*Srcwindow[M][N],
其中,*表示卷积运算,CombineHV[M][N]为一梯度运算子,在一实施例中,若M和N都取值为5,则CombineHV[5][5]可为:
接着,权重系数产生元件230根据梯度幅值Diff与一或多个阈值的比对,分析梯度特性,划分为三组不同调节幅度的调整群组。参见图7,为根据本发明实施例的梯度幅值Diff与调整群组的关系示意图。如图7所示,当梯度幅值Diff小于阈值DiffTh1或梯度幅值Diff大于阈值DiffTh4时,对应的调整群组为第一群组;当梯度幅值Diff介于阈值DiffTh1与阈值DiffTh2之间或梯度幅值Diff介于阈值DiffTh3与阈值DiffTh4之间时,对应的调整群组为第二群组;而当梯度幅值Diff介于阈值DiffTh1与阈值DiffTh2之间或梯度幅值Diff介于阈值DiffTh2与阈值DiffTh3之间时,对应的调整群组为第三群组。在此实施例中,阈值DiffTh1设为2*DiffTh,阈值DiffTh2设为6*DiffTh,阈值DiffTh3设为10*DiffTh,阈值DiffTh4设为12*DiffTh,其中,阈值DiffTh为4。举例来说,若梯度幅值Diff为6,其值小于2倍的DiffTh,因此可得到其对应的调整群组为第一群组。换句话说,权重系数产生元件230可根据梯度幅值Diff与一或多个阈值的比对来选择三个调整群组中的其中一组以便进行滤波器大小的调整。需要注意的是,上述阈值DiffTh1、DiffTh2、DiffTh3、DiffTh4与DiffTh的倍数关系的只是一种实施方式,在其他实施例中,也可采用其他的倍数关系。
接着,权重系数产生元件230按照调整群组决定调节幅度adjustsimilarity。其中第一群组、第二群组以及第三群组的调节幅度分别对应于第一强度Strength1、第二强度Strength2以及第三强度Strength3,且Strength3>Strength2>Strength1。举例来说,Strength3可设为2*strength,Strength2可设为strength,Strength1=0,其中strength可取值为0.15。需要注意的是,上述Strength1、Strength2及Strength3的取值仅为一实施例,也可以取其他值。具体来说,若梯度幅值Diff越大,表示图像处于高频区,需要增大调节幅度。若梯度幅值Diff过大,为了避免锐化出现超调或者放大噪声,应适当减小调节幅度。
权重系数产生元件230再根据梯度幅值调整adjustsimilarity。其中,插补滤波器可包括用以调整沿梯度方向的权重的一第一滤波器以及用以调整沿边缘方向的权重的一第二滤波器,且权重系数产生元件230可通过压缩第一滤波器的大小以及拉伸第二滤波器的大小来调整用于插补运算的插补滤波器的大小。
假设图像沿梯度方向和沿边缘方向的参数分别为dx以及dy且横向缩放参数scalex表示沿横坐标的第一滤波器大小调节幅度,纵向缩放参数scaley表示沿纵坐标的第二滤波器大小调节幅度,则可根据以下公式得到沿梯度方向的缩放参数scalex以及沿边缘方向的缩放参数scaley:
scalex=xBase+adjustx;以及
scaley=yBase+adjusty,
其中,xBase与yBase可为预设值(例如:均为1),adjustx=2*adjustsimilarity以及adjusty=adjustsimilarity。
其中,权重Adjust_bicubic的定义如下:
Adjust_bicubic(m,n)=Rc(adjust_dx)*Rc(adjust_dy),其中,第一滤波器adjust_dx=dx(m,n)/scalex以及第二滤波器adjust_dy=dy(m,n)/scaley。
权重系数产生元件230可藉由调整scalex与scaley,以缩小沿着梯度方向(横坐标)的滤波器的大小并拉伸边缘方向(纵坐标)的滤波器的大小。其中,滤波器大小调整的强度/幅度是基于输入图像中感兴趣区域的噪声统计数据所算出。因此,使用调整后的滤波器大小的插补结果可以保留梯度方向上的高频部分,并通过插补计算时将正交于边缘方向的像素点的权重设小来防止边缘变得模糊。此外,可通过插补计算时将沿着边缘方向的像素点的权重设大来消除噪声和伪影。图8为根据本发明实施例的滤波器大小的调整结果示意图。如图8所示,假设曲线810表示未调整时的插补滤波器大小Rc(dx)/Rc(dy),曲线830表示调整横向(x轴方向)缩放参数scalex后的插补滤波器大小Rc(dx/scalex),曲线820表示调整纵向(y轴方向)缩放参数scaley后的插补滤波器大小Rc(dy/scaley)。由图8的曲线830可知,调节scalex,令scalex大于1,可使插补滤波器(cubic filter)压缩,达到压缩沿梯度方向的插补滤波器的目的。由图8的曲线820可知,调节scaley,令scaley小于1,可使插补滤波器压缩,达到拉伸边缘方向的插补滤波器的目的。
回到图3,计算出各来源像素值的权重之后,接着,如步骤S308所述,插补运算元件240根据前述所计算出的各来源像素值的权重对各来源像素值进行一加权求和运算以进行插补计算得到目标像素点的像素值。在此步骤中,假设Pixelout(x_dst,y_dst)表示目标图像坐标为(x_dst,y_dst)像素点的像素值,Pixelin(x_src,y_src)表示来源图像坐标为(x_src,y_src)像素点的像素值,其中Pixelin(x_src,y_src)为Pixelout(x_dst,y_dst)经过坐标映射后在来源图像上离它最近的左上角的像素点,两者横向距离为p,纵向距离为q,则以bi-cubic为计算权重公式,可藉由下式以根据前述所计算出的各来源像素值的权重对各来源像素值进行一加权求和运算以进行插补得到目标像素点的像素值:
其中,
其中,cubic()为双三次(bi-cubic)插补函数,需要注意的是,上述实施例是采用双三次(bi-cubic)插补函数进行插补得到目标像素点的像素值。在其他实施例中,也可采用其他的插补函数进行插补,如双线性(bi-linear)函数。
应注意的是,在以上实施例中以双三次插补方法作为说明,但本发明并不限于此。举例来说,在另一些实施例中,插补的计算可采用其他线性插补方法,如双线性插补方法(bi-linear interpolation)等。
因此,根据本发明的图像插补方法及其相关图像插补装置,可在插补运算时,根据梯度方向(gradient direction)调整线性插补函数,以图像的梯度方向及与其正交的边缘方向形成的新坐标进行插补且可调整插补滤波器的大小,使沿着梯度方向的插补像素点有较大的权重,而使正交于梯度方向的插补像素点在插补计算时有较小的权重,藉此防止插补后的目标图像的边缘变得模糊以及保留梯度方向上的图像高频部分细节,可同时在维持较低的运算成本的考虑下,又可有效消除噪声和伪影,从而使插补后的目标图像有更好的质量。
本发明的方法,或特定形态或其部分,可以以程序代码的形态存在。程序代码可以包含于物理介质,如软盘、光盘、硬盘、或是任何其他机器可读取(如计算机可读取)存储介质,亦或不限于外在形式的计算机程序产品,其中,当程序代码被机器,如计算机载入且执行时,此机器变成用以参与本发明的装置。程序代码也可通过一些传送介质,如电线或电缆、光纤、或是任何传输形态进行传送,其中,当程序代码被机器,如计算机接收、载入且执行时,此机器变成用以参与本发明的装置。当在一般用途图像插补装置实作时,程序代码结合图像插补装置提供一操作类似于应用特定逻辑电路的独特装置。
虽然本发明已以优选实施例公开如上,然其并非用以限定本发明,本领域技术人员在不脱离本发明的精神和范围内,当可作些许的更动与润饰。举例来说,本发明实施例所述的***以及方法可以硬件、软件或硬件以及软件的组合的实体实施例加以实现。因此本发明的保护范围当视所附权利要求书界定范围为准。