内插处理系统及其方法
技术领域
本发明涉及一种内插处理系统及其方法,特别是涉及一种应用于一影像数据尺寸缩放时用以进行内插演算的内插处理系统及其方法。
背景技术
随着科技的日新月异,数字相机已取代传统的单眼像机或是傻瓜相机,而成为现代人摄影时的主要工具。由于使用者在拍摄完影像之后,可将数字相机中的影像文件传送到个人计算机中,再利用打印机或是多功能事务机进行影像(纸本)的输出,且影像输出的尺寸还可依据使用者不同的需求,而进行放大或是缩小。因此,利用打印机或是多功能事务机进行影像(纸本)输出的方式,相较于传统冲洗照片时,使用者还需将胶卷拿到照片冲洗店输出的方式,对于使用者而言有相当大的方便性。
以计算机屏幕中的影像文件的尺寸放大为例以作说明,在计算机屏幕上所显示的每一个影像文件都是由一个一个呈矩阵型式排列的像素(pixels)所组成的,而每一个像素皆有其相对应的灰阶值,以代表不同像素的颜色深浅。
以最简单的影像尺寸放大处理而言,其放大处理的过程只需将每一个像素间的间距乘上所需放大的倍率,即可得放大后的影像大小。如图1所示,图中左侧为原本尺寸为2像素×2像素的影像,而如图中右侧所示:当此影像经过放大2倍后,将会成为尺寸为4像素×4像素的影像。
但是,依照上述简单的方法来进行影像尺寸的放大时,会发现:经过尺寸放大后的影像会有空隙产生,而只有符合缩放后位置的像素才会有灰阶值出现,如此一来,则会造成影像放大后的失真。
因此,便有人提出了以内插法(Interpolatio)的方式估计影像放大后不同位置的灰阶值,以避免影像尺寸缩放后产生失真的情形。以最简单的例子来作说明,如图2所示,已知A点、B点、C点和D点的灰阶值大小分别为Pl、P2、P3及P4,若利用线性内插的方法来估计中间任一点P点的灰阶值大小时,则其灰阶值的计算如下所示:
P=dxdyP1+(1-dx)dyP2+dx(1-dy)P3+(1-dx)(1-dy)P4
=[dxdy(1-dx)dy dx(1-dy)(1-dx)(1-dy)][P1 P2 P3 P4]T
=M[P1 P2 P3 P4]T
由上述公式可知:P点的灰阶值会受到距离较近的点的灰阶值的影响较大。而使用者亦可采用其它不同的内插法以进行P点的灰阶值的计算。
在公知内插演算的过程中,所有P点的灰阶值计算过程皆是由硬件架构(如乘法器及加法器)来实现,因此,需耗费庞大的硬件资源以进行上述运算,然而,当使用者所采用的内插法演算公式越复杂时,则硬件架构需花费更多的时间在数学运算上,而延长了整个影像缩放处理所需的时间。
此外,当使用者采用某一种内插法的演算公式以进行影像中不同位置的灰阶值计算时,通常将此逻辑演算过程制作于一特殊应用集成电路(ASIC)上,以进行影像中不同位置像素的灰阶值计算。而当使用者要更换不同的内插法进行像素的灰阶值计算时,则需另外设计新的特殊应用集成电路,才能以不同的内插法进行影像中不同像素的灰阶值的计算。
而每一个特殊应用集成电路只能适用于一种内插法的运算,若要使用其它的内插法进行运算时,则需针对不同的内插法设计新的特殊应用集成电路,如此一来,对于使用者而言将造成非常大的负担,降低了使用上的灵活性。
发明内容
本发明所要解决的技术问题是提供一种内插处理系统及其方法,解决现有技术的计算交由硬件架构来执行,不但耗费了时间,而且只能适用于一种内插法的运算,若要使用其它的内插法进行运算时,则需针对不同的内插法设计新的特殊应用集成电路的技术问题。
为达到上述目的,本发明提供了一种内插处理系统,应用于一经过灰阶转换后的影像数据中一目标像素灰阶值的计算,其特点在于,该目标像素位于四原始像素所呈的一矩形区块内,各该原始像素分别对应于一灰阶值,而该矩形区块划分为多个次区块,各该次区块的中央分别具有一中心参考像素,包含有:
一接收模块,用以接收四该原始像素所分别对应的四该灰阶值及一内插转换矩阵;
一中心像素转换矩阵计算模块,依据所加载的该内插转换矩阵及各该中心参考像素相对于各该原始像素的相对坐标,计算各该中心参考像素分别对应的该内插转换矩阵的四元素值;
一判别模块,依据该目标像素的坐标位置,决定该目标像素所在的一运算区块;及
一运算器,将该目标像素所在的该运算区块中该中心参考像素的该内插转换矩阵内的四该元素值与各该原始像素所分别对应的该灰阶值进行内积运算,以得到该目标像素的灰阶值。
上述的内插处理系统,其特点在于,当采用不同的内插法进行该目标像素的灰阶值计算时,更换不同的该内插转换矩阵以进行运算。
上述的内插处理系统,其特点在于,该运算器包含一乘法器及一加法器。
本发明还提供了一种内插处理方法,应用于一经过灰阶转换后的影像数据中一目标像素灰阶值的计算,其特点在于,该目标像素位于四原始像素所呈的一矩形区块内,各该原始像素分别对应于一灰阶值,而该矩形区块划分为多个次区块,各该次区块的中央分别具有一中心参考像素,包含下列步骤:接收四该原始像素所分别对应的四该灰阶值及一内插转换矩阵;依据所加载的该内插转换矩阵及各该中心参考像素相对于各该原始像素的相对坐标计算各该中心参考像素分别对应的该内插转换矩阵的四元素值;依据该目标像素的坐标位置,决定该目标像素所在的一运算区块;将该目标像素所在的该运算区块中该中心参考像素的该内插转换矩阵内的四该元素值与各该原始像素所分别对应的该灰阶值进行内积运算,以得到该目标像素的灰阶值。
上述的内插处理方法,其特点在于,该将该目标像素所在的该运算区块中该中心参考像素的该内插转换矩阵内的四该元素值与各该原始像素所分别对应的该灰阶值进行内积运算,以得到该目标像素的灰阶值步骤,是由一运算器进行该中心参考像素的该内插转换矩阵内的四该元素值与各该原始像素所分别对应的该灰阶值的内积运算。
本发明又提供了一种内插处理系统,应用于一经过灰阶转换后的影像数据中一目标像素灰阶值的计算,其特点在于,16个原始像素呈4×4矩阵排列,以形成9个区块,各该原始像素分别对应于一灰阶值,该目标像素位于一中央区块,且该中央区块划分为多个次区块,而各该次区块的中央分别具有一中心参考像素,包含有:一接收模块,用以接收16个该原始像素所分别对应的16个该灰阶值及一内插转换矩阵;一中心像素转换矩阵计算模块,依据所加载的该内插转换矩阵及各该中心参考像素相对于各该原始像素的相对坐标,计算各该中心参考像素分别对应的该内插转换矩阵的16个元素值;一判别模块,依据该目标像素的坐标位置,决定该目标像素所在的一运算区块;一运算器,将该目标像素所在的该运算区块中该中心参考像素的该内插转换矩阵内的16个该元素值与各该原始像素所分别对应的该灰阶值进行内积运算,以得到该目标像素的灰阶值。
本发明又提供了一种内插处理方法,应用于一经过灰阶转换后的影像数据中一目标像素灰阶值的计算,其特点在于,16个原始像素呈4×4矩阵排列,以形成9个区块,各该原始像素分别对应于一灰阶值,该目标像素位于一中央区块,且该中央区块划分为多个次区块,而各该次区块的中央分别具有一中心参考像素,包含下列步骤:接收16个该原始像素所分别对应的16个该灰阶值及一内插转换矩阵;依据所加载的该内插转换矩阵及各该中心参考像素相对于各该原始像素的相对坐标计算各该中心参考像素分别对应的该内插转换矩阵的16个元素值;依据该目标像素的坐标位置,决定该目标像素所在的一运算区块;将该目标像素所在的该运算区块中该中心参考像素的该内插转换矩阵内的16个该元素值与各该原始像素所分别对应的该灰阶值进行内积运算,以得到该目标像素的灰阶值。
上述的内插处理方法,其特点在于,该将该目标像素所在的该运算区块中该中心参考像素的该内插转换矩阵内的16个该元素值与各该原始像素所分别对应的该灰阶值进行内积运算,以得到该目标像素的灰阶值步骤,是由一运算器进行该中心参考像素的该内插转换矩阵内的16个该元素值与各该原始像素所分别对应的该灰阶值的内积运算。
具体来说,鉴于公知技术的问题,本发明的内插处理系统及其方法应用于一影像数据的其中一目标像素P(destination pixel)的灰阶值p的计算,此影像数据经过灰阶转换,因此,某些像素的灰阶值为已知,然而,此目标像素P的灰阶值p为未知。因此,本发明的内插处理系统及其方法借由此目标像素P周围的四个原始像素(original pixel)--A点、B点、C点和D点的灰阶值,而求得目标像素P的灰阶值p。本发明的内插处理系统及其方法可适用利用不同的内插算法(只需在使用时加载不同内插法所对应的内插转换矩阵M即可)以求得目标像素P的灰阶值p,而以下的内容将以利用线性内插法求得目标像素P的灰阶值为例以作说明。
在此目标像素P周围的四个原始像素--A点、B点、C点和D点的灰阶值大小分别为P1、P2、P3及P4。而由线性内插法的公式可知:此目标像素P的灰阶值p的计算方法是利用一内插转换矩阵M与A点、B点、C点和D点的灰阶值(P1、P2、P3及P4)进行内积而得,其公式如下所示:
P=dxdyP1+(1-dx)dyP2+dx(1-dy)P3+(1-dx)(1-dy)P4
=[dxdy(1-dx)dy dx(1-dy)(1-dx)(1-dy)][P1 P2 P3 P4]T
=M[P1 P2 P3 P4]T
本发明首先将此A点、B点、C点和D点所构成的一矩形区块划分为16个次区块A11~A44,而每一个次区块A11~A44之中央位置分别具有一个中心参考像素R1~R16。接着,利用线性内插法的公式求得每一个中心参考像素R1~R16所对应的内插转换矩阵M的四个元素(element)值,其公式如下:
M=[dxdy(1-dx)dy dx(1-dy)(1-dx)(1-dy)]
=[m1 m2 m3 m4]
由于每一个中心参考像素R1~R16与A点、B点、C点和D点之距离皆不相同,因此,每一个中心参考像素R1~R16会对应到不同的内插转换矩阵M。
之后,判断此P点是落在16个次区块A11~A44中的哪一个运算区块中,再以此运算区块所对应的内插转换矩阵M与各个原始像素A点、B点、C点和D点所分别对应的四个灰阶值(P1、P2、P3及P4)进行内积运算,如此一来,即可得到此目标像素P之灰阶值p。
本发明的技术效果在于:
本发明的系统将目标像素P的灰阶值p计算过程中较为简单的计算交由硬件架构来执行,而较为复杂的计算则交由软件程序来执行。如此一来,可通过软件程序与硬件架构的分工,以降低公知内插演算过程中进行复杂的内插法计算所需耗费的硬件架构的资源,以节省下影像缩放处理所需花费的时间。此外,当使用者要利用不同的内插法进行灰阶值p的计算时,可直接加载不同的内插法所对应的内插转换矩阵M即可,因此,可不需再另行设计新的特殊应用集成电路,可以大幅增加使用上的灵活性。
下面结合附图进一步详细说明本发明的具体实施例。
附图说明
图1为公知技术的影像放大的示意图;
图2为内插处理的示意图;
图3为将四原始像素A点、B点、C点和D点所构成的一矩形区块划分为16个次区块A11~A44的示意图;
图4为本发明内插处理系统的系统架构图;
图5为当目标像素P落在次区块A23的范围内时,则次区块A23即为所谓的运算区块的示意图;
图6为本发明内插处理方法的方法流程图;
图7将四个原始像素A点、B点、C点和D点所构成的矩形区块划分为64个次区块,以进行目标像素P的灰阶值p的计算;
图8将四个原始像素A点、B点、C点和D点所构成的矩形区块划分为4个次区块,以进行目标像素P的灰阶值p的计算;及
图9为本发明的内插处理系统及其方法可利用此目标像素P周围十六个原始像素以三次内插法进行此目标像素P的灰阶值p的计算。
其中,附图标记说明如下:
10 接收模块
20 中心像素转换矩阵计算模块
30 判别模块
40 运算器
60 区块
61 中央区块
611 次区块
步骤51 接收模块接收四个原始像素所分别对应的四个灰阶值及一内插转换矩阵
步骤52 中心像素转换矩阵计算模块便依据所加载的内插转换矩阵及各个中心参考像素相对于各原始像素的相对坐标,计算各个中心参考像素分别对应的内插转换矩阵的四元素值
步骤53 判别模块会依据此目标像素的坐标位置,决定此目标像素所在的一运算区块
步骤54 利用运算器将目标像素所在的运算区块的中心参考像素的内插转换矩阵内的四个元素值与各个原始像素所分别对应的灰阶值进行内积运算,以得到此目标像素的灰阶值
具体实施方式
请参考图4所示,为本发明内插处理系统的系统架构图,此系统应用于一经过灰阶转换后的影像数据中的一目标像素P的灰阶值p的计算,通过此目标像素P周围的四个原始像素--A点、B点、C点和D点的灰阶值,而求得目标像素P的灰阶值p,而此目标像素P位于四个原始像素--A点、B点、C点和D点所呈的一矩形区块之内。
此内插处理系统包含有:一接收模块10、一中心像素转换矩阵计算模块20、一判别模块30及一运算器40。
首先,如图3所示,将四个原始像素A点、B点、C点和D点所构成的矩形区块划分为16个次区块A11~A44,而每一个次区块A11~A44的中央位置分别具有一个中心参考像素R1~R16。
此接收模块10用以接收四个原始像素A点、B点、C点和D点所分别对应的四个灰阶值P1、P2、P3及P4及一内插转换矩阵M,而此内插转换矩阵M的表示方式如下所示:
M=[dxdy(1-dx)dy dx(1-dy)(1-dx)(1-dy)]
=[m1 m2 m3 m4]
此内插转换矩阵M依据使用者所采用的内插法而有所不同,上述的公式为线性内插法所使用的内插转换矩阵M,而当使用者欲采用不同的内插法进行灰阶值p的计算时,可加载不同的内插转换矩阵M,以进行不同内插法的运算。
由于在上述内插转换矩阵M的公式中,需依据目标像素P与四原始像素--A点、B点、C点和D点的相对坐标,以及代入dx、dy值的多寡,才能计算出内插转换矩阵M其所有元素(element)--m1、m2、m3、m4之值。
因此,中心像素转换矩阵计算模块20会依据所加载的内插转换矩阵M及各个中心参考像素R相对于四个原始像素A点、B点、C点和D点的相对坐标,计算dx、dy值的多寡并代入内插转换矩阵M的公式中,以分别计算出每一个中心参考像素R1~R16所对应的内插转换矩阵M的四个元素值(m1、m2、m3、m4)。
由于此部份的计算较为复杂,因此,是交由软件程序来进行此内插转换矩阵M的运算,以节省下利用硬件架构执行此运算所需花费的时间。
接着,判别模块30会依据此目标像素P的坐标位置,决定此目标像素P所在的运算区块为哪个。如图5所示,当目标像素P落在次区块A23的范围内时,则次区块A23即为所谓的运算区块,并以次区块A23的中心参考像素R7所对应的内插转换矩阵M的四个元素值进行之后的运算。因此,落在同一个次区块中的目标像素P即会对应到相同的灰阶值。
最后,利用运算器40将目标像素P所在的运算区块(即次区块A23)的中心参考像素R7所对应的内插转换矩阵M的四个元素值,与各个原始像素A点、B点、C点和D点所分别对应的四个灰阶值P1、P2、P3及P4进行内积运算,以得到此目标像素P的灰阶值p。
由于此运算器40在进行内积的运算时,将两个矩阵中的元素分别相乘(m1×P1、m2×P2、m3×P3、m4×P4)后再相加(m1×P1+m2×P2+m3×P3+m4×P4),因此,此运算器40需包含乘法器及加法器,以完成此运算。
此外,因运算器40只进行简单的乘法及加法的运算,因此,可降低硬件架构计算时的工作量,同样可节省下影像缩放处理所需花费的时间。
请参考图6所示,为本发明内插处理方法第二实施例的方法流程图,而在此方法的运作过程中提及系统运作架构的部分请参阅图4所示,说明如下:
首先,步骤51,接收模块接收四个原始像素所分别对应的四个灰阶值及一内插转换矩阵。此内插转换矩阵M由使用者自行输入,因此,当使用者变更不同的内插法以进行目标像素P的灰阶值p的计算时,只需加载不同的内插转换矩阵M公式即可。
接着,步骤52,中心像素转换矩阵计算模块便依据所加载的内插转换矩阵及各个中心参考像素相对于各原始像素的相对坐标,计算各个中心参考像素分别对应的内插转换矩阵的四元素值。
由于每一个中心参考像素所对应的内插转换矩阵M的计算与dx、dy值有关,因此,需依据此目标像素P相对于各原始像素A点、B点、C点和D点的相对坐标,以得到此内插转换矩阵M。由于内插转换矩阵M内的四个元素值m1、m2、m3、m4的计算较为复杂,因此,这个步骤便交由软件程序来执行。
之后,步骤53,判别模块会依据此目标像素的坐标位置,决定此目标像素所在的一运算区块。而落在同一个次区块中的目标像素P会对应到同一个内插转换矩阵M。
最后,步骤54,利用运算器将目标像素所在的运算区块的中心参考像素之内插转换矩阵内的四个元素值与各个原始像素所分别对应的灰阶值进行内积运算,以得到此目标像素的灰阶值。由于这个步骤的运算只牵涉简单的乘法及加法运算,因此,此运算器30中需包含一乘法器及一加法器,以进行两矩阵的内积运算,进而求得此目标像素P的灰阶值p。
此矩形区块中所划分的次区块数目的多寡是依据使用者所需的精确度而定,请参考图7所示,是将四个原始像素A点、B点、C点和D点所构成的矩形区块划分为64个次区块,以进行目标像素P的灰阶值p的计算,当次区块的数目越多时,则所得的目标像素P的灰阶值p也会越准确,但相对地,进行内插处理所需花费的时间也越长;相反地,请参考图8所示,是将四个原始像素A点、B点、C点和D点所构成的矩形区块划分为4个次区块,以进行目标像素P的灰阶值p的计算,当次区块的数目越少时,则所得的目标像素P的灰阶值p的精确度较低,但相对地,可节省内插处理所需花费的时间。使用者可依据不同的需求,而选择所需的精确度。
此外,请参考图9所示,本发明的内插处理系统及其方法可利用此目标像素P周围更多的原始像素A~P的灰阶值P1~P16(十六个原始像素),以三次内插法(cubic interpolation)进行此目标像素P的灰阶值p的计算,这16个原始像素A点~P点系呈4×4矩阵排列,以形成九个区块60,而每一个原始像素A点~P点分别对应于一灰阶值P1~P16,此目标像素P是位于一中央区块61的范围内,且中央区块61可依据使用者的需求而划分为数个次区块611,而每一个次区块的中央分别具有一中心参考像素(图中未示)。
此目标像素P的灰阶值p的计算方法则是利用三次内插法的一内插转换矩阵Mnm与A点~P点的灰阶值(P1~P16)进行内积而得,其公式如下所示:
M11=[ma11 mb11 mc11 md11…mq11]1x16
M12=[ma12 mb12 mc12 md12…mq12]1x16
M44=[ma44 mb44 mc44 md44…mq44]1x16
其中,此ma11、mb11、mc11…mq11是代表M11中的16个元素值,ma12、mb12、mc12…mq12是代表M12中的16个元素值,以此类推。
此目标像素P的灰阶值p的计算方法与上述线性内插法雷同,只是原始像素A点~P点的数目增加,而改以三次内插法进行目标像素P的灰阶值p的计算,所以,在此不再赘述。当然,所采用的原始像素的数目越多,则其精确度会越准确,相对地,所需进行运算的时间也越久。因此,使用者可自行选择所需的精确度,而算出所需目标像素P的灰阶值p。
以上所述仅为本发明的较佳实施例,并非用来限定本发明的实施范围;凡是依本发明所作的等效变化与修改,都被本发明的专利范围所涵盖。