CN103366342B - 应用于视频图像放大的分段线性插值方法 - Google Patents
应用于视频图像放大的分段线性插值方法 Download PDFInfo
- Publication number
- CN103366342B CN103366342B CN201310274637.5A CN201310274637A CN103366342B CN 103366342 B CN103366342 B CN 103366342B CN 201310274637 A CN201310274637 A CN 201310274637A CN 103366342 B CN103366342 B CN 103366342B
- Authority
- CN
- China
- Prior art keywords
- value
- gray
- interpolation
- slope
- scale
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Image Processing (AREA)
Abstract
本发明涉及数字图像处理领域,为提供一种经过大比例的放大后仍能保持图像边缘清晰,并且计算量较小,方便硬件实现的图像放大算法,本发明采用的技术方案是,应用于视频图像放大的分段线性插值方法,包括下列步骤:对每个插值点的计算都包括水平和垂直两个方向,需要邻近四个源像素点的灰度进行加权,先将上方和下方各两个源像素按照与插值点的水平距离进行加权计算,得到两个中间像素点,再将这两个中间像素点按照与插值点的垂直距离进行加权计算,即得到待求插值点的灰度;其中,对插值点进行计算时采用了分情况处理,即根据相邻两源灰度之差的大小,选择相应不同的插值曲线进行计算。本发明主要应用于数字图像处理。
Description
技术领域
本发明涉及数字图像处理领域,具体讲,涉及应用于视频图像放大的分段线性插值方法。
技术背景
数字图像缩放是数字图像处理中的关键技术之一,是其他一些数字图像处理的基础,图像缩放算法的效率和缩放后图像的质量,对于整个系统而言都是至关重要的。
图像插值是利用已知的周边领域像素点,产生目标图像中未知像素点的值,从而由原始图像再生出具有更高分辨率的图像。新图像中像素点的值是将此点投影到源图像(投影得到的点即插值点),由源图像中投影点周围邻近像素点的值进行加权得到的。
根据是否利用图像边缘信息,插值可分为基于图像边缘和不考虑图像边缘两种算法。使用前者缩放后的图像视觉效果好,但其算法复杂,运算时间长,硬件实现难度大。不考虑图像边缘缩放后的视觉效果较前者稍差,但硬件较易于实现,应用比较广泛。
常见的不考虑图像边缘的插值方法有:最近邻域插值,双线性插值,双三次插值等。最近邻域插值是最简单的插值方法,它的本质就是放大象素。新图像的像素点值是源图像中与投影像素位置最接近像素的值。这种方法只是对像素的简单复制,所以会产生严重的锯齿。在双线性插值中,新创造的灰度,是由原图像位置在它附近的(2×2)4个邻近像素的灰度值通过加权平均计算得出的。这种方法具有一定的防锯齿效果。但由于是附近4个灰度的直接线性加权计算,因而新图像的边缘处颜色变化趋缓,边缘不清晰。双三次插值(Bicubic)是一种更加复杂的插值方式,它能创造出比双线性插值更平滑的图像边缘。新像素的灰度,是由它投影到源图像上的点附近的(4×4)16个邻近像素点的值加权计算出来的,因此精度较高。但由于算法较复杂,对硬件的消耗也较大。同时,因为同样是属于线性插值方法,双三次插值也存在一定程度的边缘不清晰情况。
发明内容
为克服现有技术的不足,本发明旨在提供一种经过大比例的放大后仍能保持图像边缘清晰,并且计算量较小,方便硬件实现的图像放大算法,为现今多种多样的多媒体设备提供一种可选的图像放大解决方案,为此,本发明采用的技术方案是,应用于视频图像放大的分段线性插值方法,包括下列步骤:对每个插值点的计算都包括水平和垂直两个方向,需要邻近四个源像素点的灰度进行加权,先将上方和下方各两个源像素按照与插值点的水平距离进行加权计算,得到两个中间像素点,再将这两个中间像素点按照与插值点的垂直距离进行加权计算,即得到待求插值点的灰度;其中,对插值点进行计算时采用了分情况处理,即根据相邻两源灰度之差的大小,选择相应不同的插值曲线进行计算。
所述方法进一步具体为:
1)符号说明:
x1,x2:待插像素点最近邻两源像素点的坐标;
y1,y2:待插像素点最近邻两源像素点的灰度;
x:待插像素点的坐标;
y:待插像素点的灰度值;
M:判断是否采用分段线性缩放算法的阈值,当y2和y1的差值大于阈值M时,采用分段线性缩放算法,否则采用常见的线性插值算法;
k:分段曲线的斜率,根据和的差值来确定;
2)计算流程:
(1)选择计算插值点灰度的算法:
首先根据放大系数计算出插值点在源图像中的水平坐标x,以确定与其相邻的两个源像素点,灰度分别为y1,y2,水平坐标分别为x1,x2,取每两个源像素点之间的间距为单位1,即x2-x1=1;根据相邻两源灰度之差的大小,选择相应不同的插值曲线进行计算具体是,根据这两个源像素点的灰度之差|y2-y1|的大小确定插值点计算采用的算法,这里选取一个适当的阈值M,作为判断算法选择的标准,即判断是否使用分段线性缩放算法,当两个源像素点的灰度值之差的绝对值|y2-y1|的值小于阈值M时,采用双线性插值,当两个源像素点的灰度值之差的绝对值|y2-y1|的值大于阈值M时,选择分段线性插值算法;
(2)灰度值之差的绝对值小于阈值即|y2-y1|<M时对插值点灰度的计算
此时采用普通的双线性插值方法:
插值曲线为从y1到y2的直线,斜率为(y2-y1)/(x2-x1),则插值点x的灰度值为:
即:y=y1+(y2-y1)(x-x1)(公式1)
(3)灰度值之差的绝对值大于阈值即|y2-y1|>M时对插值点灰度的计算
此时采用分段线性算法进行计算:
在进行分段插值计算时,分为两种情况,即插值点位于相邻两源像素点之间的左半部分和右半部分,中点位置归为右半部分,针对不同情况采用不同的计算方法:
①插值点在左半部分,即插值点x在左侧源像素点x1到中点(x2-x1)/2之间时,采用斜率为k的插值曲线,并使用x1点的灰度y1进行计算;
对于插值曲线斜率k的取值,考虑如下:斜率k的值跟随两侧源像素点的灰度值之差的绝对值|y2-y1|的变化而改变,差值越大,则曲线越平缓,斜率k的绝对值越小;差值越小,则曲线越陡峭,斜率k的绝对值越大;
两个极限情况是:
当灰度值之差的绝对值等于阈值即|y2-y1|=M时,斜率绝对值|k|=M/(x2-x1),即斜率绝对值|k|=M;
当灰度值之差的绝对值等于255即|y2-y1|=255时,斜率绝对值|k|=0;
由以上条件得出插值曲线斜率k的计算公式如下:
当灰度值之差大于0即(y2-y1)>0时,斜率值k为
即 (公式2)
当灰度值之差小于0即(y2-y1)<0时,斜率值k为
即 (公式3)
此时插值点的灰度值为
y=y1+k(x-x1)(公式4)
②插值点在右半部分包括中点,即插值点x在中点(x2-x1)/2到右侧源像素点x2之间时,采用斜率为k的插值曲线,并使用x2 点的灰度值y2进行计算:
选用斜率为k的直线作为插值曲线,斜率k的计算方法与之前①所述相同,此时插值点的灰度值为:
y=y2-k(x2-x)(公式5)
(4)若灰度值之差的绝对值大于阈值即|y2-y1|>M,则在步骤(3)计算完成后,再给计算出的插值点灰度y加一个大小为δy的微扰,以减小可能产生的锯齿影响,即公式(2)(3)(4)(5)中给插值点灰度值y的值再加上一个随机的微扰抖动δy(-4,-2,0,2,4),这里的δy只是人为添加的一个值非常小的量,用来减轻锯齿影响。
将两源像素点之间的单位1距离,平均分成64段,即每段长度为1/64,当插值点落在某一小段中时,按照这一段的左端点进行计算,则实际计算时,所有插值点位置只有64种情况,若某个插值点的真实插值位置(x-x1)是3/64+1/65,那么按照3/64来进行后续计算,其余部分的计算依次类推。
所述的双线形插值和分段线形插值两种算法统一为一种实现流程,差别在于斜率k值的不同,对于双线形插值算法,同样按照分段线形的类似方式,分为左侧、右侧两种情况进行计算,由于分段线形插值算法中,斜率k的计算较困难,所以将斜率绝对值的所有可能值计算出来并存储建立查找表,然后在计算中需要斜率的时候,通过灰度值之差的绝对值|y2-y1|的值来查找并取出相应的斜率k值;因为灰度值之差的绝对值|y2-y1|在阈值M=64以上有65到255共191种可能,M为正整数,所以表中共有对应的191个斜率绝对值|k|,考虑到双线形算法也采用同样流程,所以将双线形使用的斜率k值,也按同样的方式存入查找表中,计算时通过查表取值,因为灰度值之差的绝对值小于阈值|y2-y1|<M时才使用双线形,所以只有相应0到64共65个斜率绝对值|k|,这里斜率绝对值|k|=|y2-y1|;
所有在表中存储的斜率均为实际斜率k值得绝对值|k|,在查表取出相应的斜率绝对值|k|值后,根据灰度值之差(y2-y1)的符号来确定斜率k值的符号;
采用查表方式的具体计算步骤流程为:
1)水平方向运算(scale_line):
(1)计算出插值点的位置x值。
(2)判断x的左右,并计算到相邻最近源像素的距离;
若x在左侧,即(x-x1)=sum<1/2,则不需要再进行计算,直接将sum值输出到下一级运算,其中sum为插值点位置差;
若x在右侧,即(x-x1)=sum>1/2,则需要计算(x2-x)=1-sum,将这个值输出到下一级运算,其中sum为插值点位置差;
在(1)找到插值点位置及左右两侧的源像素点后,即可以通过灰度值之差的绝对值|y2-y1|的值对斜率k值进行查表;取出相应的斜率k的绝对值|k|;
由于灰度值之差(y2-y1)有正负两种情况,对应两个绝对值相同,但符号相反的斜率,所以,从表中找出斜率k的绝对值|k|后,要进行符号判断,若x2点的灰度值大于x1点的灰度值(y2>y1),则不需要进行符号变化,若x2点的灰度值小于x1点的灰度值(y2<y1),则对取出的值进行取反,然后将结果输出到下一级进行计算;
(3)用插值点到最近邻源像素点的距离((x-x1)或(x2-x))与斜率k相乘;
(4)若插值点在左侧,则用x1点的灰度值y1加上前一级的输出;
若插值点在右侧,则用x2点的灰度值y2减去前一级的输出。
(5)添加一个随机微扰量δy(-4,-2,0,2,4),计算完毕。
垂直方向运算(scale_hight):
与水平方向运算过程相似,并且所需要的斜率k值查找表也相同,所以可以共用同一个查找表,节省硬件资源。由于每一个新像素的生成都是经过了水平方向及垂直方向两级运算得到的,所以,这里垂直方向运算需要输入的灰度值是前级水平运算后输出的中间像素,并且计算需要使用两行像素数据。同样用水平方向计算流程,因为每一行像素的垂直方向位置都一定,所以计算一行新像素使用的插值曲线的斜率相同,只需要进行一次查表即可。
本发明具备下列技术效果:
本发明在双线性插值的基础上,通过对插值点进行计算时采用分情况处理,即根据相邻两源灰度之差的大小,选择相应不同的插值曲线进行计算,从而在更大程度上保留图像的边缘信息,使得缩放后的图像效果优于一般的插值算法。当曲线的选择较为合理以及硬件计算精度较高时,结果可以非常接近实际值,并且该算法总体计算量不大,硬件实现消耗资源较少。
附图说明
图1图像插值原理。
图2双线性插值原理。
图3分段线性插值原理。
图4分段非线性插值的左半部分插值原理图。
图5分段非线性插值的右半部分插值原理图。
图6分段非线性插值的简单流程。
图7分段非线性插值的计算示意图。
图8分段非线性插值的水平方向计算流程。
具体实施方式
本发明提出的图像放大算法是基于双线性插值,但对插值点进行计算时采用了分情况处理,即根据相邻两源灰度之差的大小,选择相应不同的插值曲线进行计算。从而在一定程度上达到了保留图像边缘信息的效果,使得缩放后的图像效果优于一般的插值算法。当曲线的选择较为合理以及硬件计算精度较高时,结果可以非常接近实际值,并且该算法总体计算量不大,硬件实现消耗资源较少。
对每个插值点的计算都包括水平和垂直两个方向,需要邻近四个源像素点的灰度进行加权。如图1所示,先将上方和下方各两个源像素按照与插值点的水平距离进行加权计算,得到两个中间像素点,再将这两个中间像素点按照与插值点的垂直距离进行加权计算,即得到待求插值点的灰度。
对插值点垂直方向和水平方向的加权计算思路及方法相同,此处仅以水平一维情况为例进行介绍。
1.符号说明:
x1,x2:待插像素点最近邻两源像素点的坐标(本算法中,将任意两相邻源像素点的间距设为单位1,即x2-x1=1);
y1,y2:待插像素点最近邻两源像素点的灰度;
x:待插像素点的坐标;
y:待插像素点的灰度值;
M:判断是否采用分段线性缩放算法的阈值,当最近相邻源像素点的灰度值y2和y1的差值大于阈值M时,采用分段线性缩放算法,否则采用常见的线性插值算法(例如本专利中使用的双线性插值算法);
k:分段曲线的斜率,根据和的差值来确定
2.本发明的主要流程:
(1)选择计算插值点灰度的算法。
首先根据放大系数计算出插值点在源图像中的水平坐标x,以确定与其相邻的两个源像素点,灰度分别为y1,y2,水平坐标分别为x1,x2(注意这里取每两个源像素点之间的间距为单位1,即x2-x1=1)。根据这两个源像素点的灰度之差的绝对值|y2-y1|的大小确定插值点计算采用的算法。这里选取一个适当的域值M,作为判断算法选择的标准,即判断是否使用分段线性缩放算法。当两个源像素点的灰度之差的绝对值|y2-y1|的值小于阈值M时,采用双线性插值,当两个源像素点的灰度之差的绝对值|y2-y1|的值大于阈值M时,选择分段线性插值算法。
(2)当灰度之差的绝对值小于阈值(|y2-y1|<M)时对插值点灰度的计算
此时采用普通的双线性插值方法:
如图2,插值曲线为从y1到y2的直线,斜率为(y2-y1)/(x2-x1),则插值点x的灰度值为:
即:y=y1+(y2-y1)(x-x1)(公式1)
(3)灰度之差的绝对值大于阈值(|y2-y1|>M)时对插值点灰度的计算
此时采用分段线性算法进行计算。
如图3,在进行分段插值计算时,分为两种情况,即插值点位于相邻两源像素点之间的左半部分和右半部分(中点位置归为右半部分),针对不同情况采用不同的计算方法。
①插值点在左半部分,即插值点x在左侧源像素点x1到中点(x2-x1)/2之间时(如图
4),采用斜率为k的插值曲线,并使用左侧源像素点x1点的灰度值y1进行计算。
对于插值曲线斜率k的取值,考虑如下:斜率k的值跟随两侧源像素点的灰度值差值的绝对值|y2-y1|的变化而改变,差值越大,则曲线越平缓,斜率k的绝对值越小;差值越小,则曲线越陡峭,斜率k的绝对值越大。
两个极限情况是:
当灰度值之差的绝对值等于阈值(|y2-y1|=M)时,斜率绝对值|k|=M/(x2-x1),即斜率绝对值|k|=M;
当灰度值之差的绝对值等于255(|y2-y1|=255)时,斜率绝对值|k|=0;
由以上条件得出插值曲线斜率k的计算公式如下:
当灰度值之差大于0((y2-y1)>0)时,
即 (公式2)
当灰度值之差小于0((y2-y1)<0)时,
即 (公式3)
此时插值点的灰度值为
y=y1+k(x-x1)(公式4)
②插值点在右半部分(包括中点),即插值点x在中点(x2-x1)/2到右侧源像素点x2之间时(如图5),采用斜率为k的插值曲线,并使用右侧源像素点x2点的灰度值y2进行计算:
选用斜率为k的直线作为插值曲线,斜率k的计算方法与之前①所述相同,此时插值点的灰度为:
y=y2-k(x2-x)(公式5)
(4)若灰度值之差的绝对值大于阈值(|y2-y1|>M),则在步骤(3)计算完成后,再给计算出的插值点灰度值y加一个δy的微扰,以减小可能产生的锯齿影响。即公式(2)(3)(4)(5)中给插值点x的灰度值y的值再加上一个随机的微扰抖动δy(-4,-2,0,2,4),这里的δy只是人为添加的一个值非常小的量,用来减轻锯齿影响。
在本发明中,当灰度值之差的绝对值|y2-y1|值大于阈值M时,采用分段线性算法求得的值比采用双线性算法更接近其最近邻源像素点的值,当插值|y2-y1|很大,表现为图像中的纹理和边缘时,采用分段线性缩放算法能够更好地保留纹理和边缘信息。
下面结合附图和具体实施例进一步详细说明本发明。
1、综述
采用水平和垂直方向先后两级运算,最终得出新像素点的灰度值。
如图6所示每一个新像素点的灰度值,都是经过水平和垂直两次计算得出的。先进行一次水平计算,得到中间像素点,再对中间像素点进行垂直计算,得到最终像素点。
如图7所示,在水平计算时,每个插值点由水平方向上两个相邻源像素计算得出,在垂直计算时,每个插值点由垂直方向上两个相邻源像素计算出。
由于公式中有较复杂的计算部分,若每次都进行计算,需要消耗大量硬件资源及时间,所以,事先将公式中复杂的部分所有可能值计算出来,并进行存储,然后在计算中通过查表的方式取出相应所需的值。
为降低计算量,提高运算速度,将两源像素点之间的单位1距离,平均分成64段,即每段长度为1/64。当插值点落在某一小段中时,按照这一段的左端点进行计算。则实际计算时,所有插值点位置只有64种情况。例如:若某个插值点的真实插值位置(x-x1)是3/64+1/65,那么按照3/64来进行后续计算。
采用本发明介绍的方法,在对一幅图象进行放大时,会用到线性插值(如双线形插值)和分段线形插值两种算法。考虑到两种算法具有一定的相似性,为了降低实现难度,减少硬件消耗,将两种算法统一为一种实现流程,差别在于斜率k值的不同。对于双线形插值算法,同样按照分段线形的类似方式,分为左侧、右侧两种情况进行计算。采用这种方式,系统在进行插值计算时,省去了判断图像边缘,决定使用双线形还是分段线形算法的过程,两种算法的差别体现在了查找表内对应的k值不同。这样统一流程,简化了计算步骤,降低了运算量,减少了硬件消耗。
由于分段线形插值算法中,斜率k的计算较困难,所以将的所有可能值计算出来并存储建立查找表,然后在计算中需要斜率的时候,通过源像素点灰度值之差的绝对值|y2-y1|的值来查找并取出相应的k值。因为源像素点灰度值之差的绝对值|y2-y1|在阈值M(本专利采取经验值64)以上有65---255共191种可能,所以表中共有对应的191个斜率绝对值|k|值。考虑到双线形算法也采用同样流程,所以将双线形使用的斜率k值,也按同样的方式存入查找表中,计算时通过查表取值。因为源像素点灰度值之差的绝对值小于阈值(|y2-y1|<M)时才使用双线形,所以只有相应0到64共65个|k|值,这里斜率绝对值等于源像素点灰度值之差的绝对值|k|=|y2-y1|。
所有在表中存储的斜率均为实际斜率k值得绝对值|k|,在查表取出相应的斜率绝对值|k|值后,根据源像素点灰度值之差(y2-y1)的符号来确定斜率k值的符号。
2、具体步骤流程
1)水平方向运算(scale_line):
(1)计算出插值点的位置x值。
(2)判断x的左右,并计算到相邻最近源像素的距离;
若x在左侧,即(x-x1)=sum<1/2,则不需要再进行计算,直接将sum值输出到下一级运算,其中sum为插值点位置差;
若x在右侧,即(x-x1)=sum>1/2,则需要计算(x2-x)=1-sum,将这个值输出到下一级运算,其中sum为插值点位置差;
在(1)找到插值点位置及左右两侧的源像素点后,即可以通过灰度值之差的绝对值|y2-y1|的值对斜率k值进行查表;取出相应的斜率k的绝对值|k|;
由于灰度值之差(y2-y1)有正负两种情况,对应两个绝对值相同,但符号相反的斜率,所以,从表中找出斜率k的绝对值|k|后,要进行符号判断,若x2 点的灰度值大于x1点的灰度值(y2>y1),则不需要进行符号变化,若x2 点的灰度值小于x1点的灰度值(y2<y1),则对取出的值进行取反,然后将结果输出到下一级进行计算;
(3)用插值点到最近邻源像素点的距离((x-x1)或(x2-x))与斜率k相乘;
(4)若插值点在左侧,则用x1点的灰度值y1加上前一级的输出;
若插值点在右侧,则用x2点的灰度值y2减去前一级的输出。
(5)添加一个随机微扰量δy(-4,-2,0,2,4),计算完毕。
2)垂直方向运算(scale_hight):
与水平方向运算过程相似,在水平计算的结果的基础上,需要先计算出插值点的位置x′,然后判断x′的左右,计算出其到相邻最近源像素点的距离;根据找到插值点的位置及左右两侧的源像素点,即可以通过灰度值之差的绝对值|y2′-y1′|的值对斜率k′值进行查表;取出相应的斜率k′的绝对值|k′|,并判断斜率k′的符号。将插值点x′与最近相邻源像素点的距离与斜率k′相乘;插值点在左侧,则用x1′点的灰度值y1′加上前一级的输出,插值点在右侧,则用x2′点的灰度值y2′减去前一级的输出,添加随机微扰量δy′(-4,-2,0,2,4),得到垂直方向的插值点x′的灰度值y′。
由于所需要的斜率k值查找表相同,所以水平方向和垂直方向的运算可以共用同一个查找表,节省硬件资源。由于每一个新像素的生成都是经过了水平方向及垂直方向两级运算得到的,所以,这里垂直方向运算需要输入的灰度值是前级水平运算后输出的中间像素,并且计算需要使用两行像素数据。同样用水平方向计算流程,因为每一行像素的垂直方向位置都一定,所以计算一行新像素使用的插值曲线的斜率相同,只需要进行一次查表即可。
Claims (4)
1.一种应用于视频图像放大的分段线性插值方法,其特征是,包括下列步骤:对每个插值点的计算都包括水平和垂直两个方向,需要邻近四个源像素点的灰度进行加权,先将上方和下方各两个源像素按照与插值点的水平距离进行加权计算,得到两个中间像素点,再将这两个中间像素点按照与插值点的垂直距离进行加权计算,即得到待求插值点的灰度;其中,对插值点进行计算时采用了分情况处理,即根据相邻两源灰度之差的大小,选择相应不同的插值曲线进行计算;上述步骤进一步具体为:
1)符号说明:
x1,x2:待插像素点最近邻两源像素点的坐标;
y1,y2:待插像素点最近邻两源像素点的灰度;
x:待插像素点的坐标;
y:待插像素点的灰度值;
M:判断是否采用分段线性缩放算法的阈值,当y2和y1的差值大于阈值M时,采用分段线性缩放算法,否则采用常见的线性插值算法;
k:分段曲线的斜率,根据和的差值来确定;
2)计算流程:
(1)选择计算插值点灰度的算法:
首先根据放大系数计算出插值点在源图像中的水平坐标x,以确定与其相邻的两个源像素点,灰度分别为y1,y2,水平坐标分别为x1,x2,取每两个源像素点之间的间距为单位1,即x2-x1=1;根据相邻两源灰度之差的大小,选择相应不同的插值曲线进行计算具体是,根据这两个源像素点的灰度之差|y2-y1|的大小确定插值点计算采用的算法,这里选取一个适当的阈值M,作为判断算法选择的标准,即判断是否使用分段线性缩放算法,当两个源像素点的灰度值之差的绝对值|y2-y1|的值小于阈值M时,采用双线性插值,当两个源像素点的灰度值之差的绝对值|y2-y1|的值大于阈值M时,选择分段线性插值算法;
(2)灰度值之差的绝对值小于阈值即|y2-y1|<M时对插值点灰度的计算此时采用普通的双线性插值方法:
插值曲线为从y1到y2的直线,斜率为(y2-y1)/(x2-x1),则插值点x的灰度值为:
即:y=y1+(y2-y1)(x-x1)(公式1)
(3)灰度值之差的绝对值大于阈值即|y2-y1|>M时对插值点灰度的计算
此时采用分段线性算法进行计算:
在进行分段插值计算时,分为两种情况,即插值点位于相邻两源像素点之间的左半部分和右半部分,中点位置归为右半部分,针对不同情况采用不同的计算方法:
①插值点在左半部分,即插值点x在左侧源像素点x1到中点(x2-x1)/2之间时,采用斜率为k的插值曲线,并使用x1点的灰度y1进行计算;
对于插值曲线斜率k的取值,考虑如下:斜率k的值跟随两侧源像素点的灰度值之差的绝对值|y2-y1|的变化而改变,差值越大,则曲线越平缓,斜率k的绝对值越小;差值越小,则曲线越陡峭,斜率k的绝对值越大;
两个极限情况是:
当灰度值之差的绝对值等于阈值即|y2-y1|=M时,斜率绝对值|k|=M/(x2-x1),即斜率绝对值|k|=M;
当灰度值之差的绝对值等于255即|y2-y1|=255时,斜率绝对值|k|=0;
由以上条件得出插值曲线斜率k的计算公式如下:
当灰度值之差大于0即(y2-y1)>0时,斜率值k为
即(公式2)
当灰度值之差小于0即(y2-y1)<0时,斜率值k为
即(公式3)
此时插值点的灰度值为
y=y1+k(x-x1)(公式4)
②插值点在右半部分包括中点,即插值点x在中点(x2-x1)/2到右侧源像素点x2之间时,采用斜率为k的插值曲线,并使用x2点的灰度值y2进行计算:
选用斜率为k的直线作为插值曲线,斜率k的计算方法与之前①所述相同,此时插值点的灰度值为:
y=y2-k(x2-x)(公式5)
(4)若灰度值之差的绝对值大于阈值即|y2-y1|>M,则在步骤(3)计算完成后,再给计算出的插值点灰度y加一个大小为δy的微扰,以减小可能产生的锯齿影响,即公式(2)(3)(4)(5)中给插值点灰度值y的值再加上一个随机的微扰抖动δy(-4,-2,0,2,4),这里的δy只是人为添加的一个值非常小的量,用来减轻锯齿影响。
2.根据权利要求1所述的应用于视频图像放大的分段线性插值方法,其特征是,将两源像素点之间的单位1距离,平均分成64段,即每段长度为1/64,当插值点落在某一小段中时,按照这一段的左端点进行计算,则实际计算时,所有插值点位置只有64种情况,若某个插值点的真实插值位置(x-x1)是3/64+1/65,那么按照3/64来进行后续计算,其余部分的计算依次类推。
3.根据权利要求1所述的应用于视频图像放大的分段线性插值方法,其特征是,所述的双线形插值和分段线形插值两种算法统一为一种实现流程,差别在于斜率k值的不同,对于双线形插值算法,同样按照分段线形的类似方式,分为左侧、右侧两种情况进行计算,由于分段线形插值算法中,斜率k的计算较困难,所以将斜率绝对值的所有可能值计算出来并存储建立查找表,然后在计算中需要斜率的时候,通过灰度值之差的绝对值|y2-y1|的值来查找并取出相应的斜率k值;因为灰度值之差的绝对值|y2-y1|在阈值M=64以上有65到255共191种可能,M为正整数,所以表中共有对应的191个斜率绝对值|k|,考虑到双线形算法也采用同样流程,所以将双线形使用的斜率k值,也按同样的方式存入查找表中,计算时通过查表取值,因为灰度值之差的绝对值小于阈值|y2-y1|<M时才使用双线形,所以只有相应0到64共65个斜率绝对值|k|,这里斜率绝对值|k|=|y2-y1|;
所有在表中存储的斜率均为实际斜率k值得绝对值|k|,在查表取出相应的斜率绝对值|k|值后,根据灰度值之差(y2-y1)的符号来确定斜率k值的符号;
采用查表方式的具体计算步骤流程为:
1)水平方向运算(scale_line):
(1)计算出插值点的位置x值;
(2)判断x的左右,并计算到相邻最近源像素的距离;
若x在左侧,即(x-x1)=sum<1/2,则不需要再进行计算,直接将sum值输出到下一级运算,其中sum为插值点位置差;
若x在右侧,即(x-x1)=sum>1/2,则需要计算(x2-x)=1-sum,将这个值输出到下一级运算,其中sum为插值点位置差;
在(1)找到插值点位置及左右两侧的源像素点后,即可以通过灰度值之差的绝对值|y2-y1|的值对斜率k值进行查表;取出相应的斜率k的绝对值|k|;
由于灰度值之差(y2-y1)有正负两种情况,对应两个绝对值相同,但符号相反的斜率,所以,从表中找出斜率k的绝对值|k|后,要进行符号判断,若x2点的灰度值大于x1点的灰度值(y2>y1),则不需要进行符号变化,若x2点的灰度值小于x1点的灰度值(y2<y1),则对取出的值进行取反,然后将结果输出到下一级进行计算;
(3)用插值点到最近邻源像素点的距离((x-x1)或(x2-x))与斜率k相乘;
(4)若插值点在左侧,则用x1点的灰度值y1加上前一级的输出;
若插值点在右侧,则用x2点的灰度值y2减去前一级的输出;
(5)添加一个随机微扰量δy(-4,-2,0,2,4),计算完毕。
4.根据权利要求1所述的应用于视频图像放大的分段线性插值方法,其特征是,垂直方向运算(scale_hight):
与水平方向运算过程相似,并且所需要的斜率k值查找表也相同,所以可以共用同一个查找表,节省硬件资源;由于每一个新像素的生成都是经过了水平方向及垂直方向两级运算得到的,所以,这里垂直方向运算需要输入的灰度值是前级水平运算后输出的中间像素,并且计算需要使用两行像素数据;同样用水平方向计算流程,因为每一行像素的垂直方向位置都一定,所以计算一行新像素使用的插值曲线的斜率相同,只需要进行一次查表即可。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310274637.5A CN103366342B (zh) | 2013-07-02 | 2013-07-02 | 应用于视频图像放大的分段线性插值方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310274637.5A CN103366342B (zh) | 2013-07-02 | 2013-07-02 | 应用于视频图像放大的分段线性插值方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103366342A CN103366342A (zh) | 2013-10-23 |
CN103366342B true CN103366342B (zh) | 2015-12-23 |
Family
ID=49367618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310274637.5A Expired - Fee Related CN103366342B (zh) | 2013-07-02 | 2013-07-02 | 应用于视频图像放大的分段线性插值方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103366342B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103646378A (zh) * | 2013-11-15 | 2014-03-19 | 天津天地伟业数码科技有限公司 | 基于fpga平台的高还原度空域图像缩放方法 |
CN103686028A (zh) * | 2013-11-29 | 2014-03-26 | 浙江大学 | 一种用于大屏幕多投影系统的视频像素交替插值方法 |
CN104134189B (zh) * | 2014-07-31 | 2017-07-28 | 青岛海信电器股份有限公司 | 一种图像放大的方法及装置 |
WO2016154970A1 (zh) * | 2015-04-01 | 2016-10-06 | 中国科学院自动化研究所 | 基于边缘检测的图像插值方法及系统 |
CN105678279A (zh) * | 2016-02-04 | 2016-06-15 | 四川长虹电器股份有限公司 | 高风制冷下智能识别人体的空调系统及其图像处理方法 |
CN106652969B (zh) * | 2017-03-07 | 2019-11-05 | 京东方科技集团股份有限公司 | 像素阵列的驱动方法、驱动电路以及显示装置 |
CN107643684B (zh) * | 2017-08-10 | 2021-01-01 | 国家电网公司 | 一种阀门流量函数优化方法及装置 |
CN107995488B (zh) * | 2017-11-09 | 2019-09-03 | 浙江大学宁波理工学院 | 一种基于直线扩展收缩模式的图像缩放方法 |
CN110536045A (zh) * | 2018-05-23 | 2019-12-03 | Oppo广东移动通信有限公司 | 成像模组、电子设备、图像处理方法和存储介质 |
CN110349089B (zh) * | 2019-07-16 | 2023-03-10 | 安健科技(广东)有限公司 | 改进线性插值效果的图像处理方法及装置 |
CN110363708B (zh) * | 2019-07-16 | 2023-03-24 | 安健科技(广东)有限公司 | 改进斜线方向插值效果的图像处理方法及装置 |
CN112508790B (zh) * | 2020-12-16 | 2023-11-14 | 上海联影医疗科技股份有限公司 | 一种图像插值方法、装置、设备及介质 |
CN113342881B (zh) * | 2021-05-21 | 2023-07-07 | 中广核工程有限公司 | 核电厂仪控系统测试曲线构建方法、装置、设备、介质 |
CN117333373B (zh) * | 2023-12-01 | 2024-02-23 | 武汉宇微光学软件有限公司 | 一种曲线多边形图像缩放方法、系统及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1901602A (zh) * | 2006-07-10 | 2007-01-24 | 宁波大学 | 用于图像放大处理过程中的快速双线性插值方法 |
CN101163190A (zh) * | 2007-11-01 | 2008-04-16 | 四川虹微技术有限公司 | 一种基于线性插值运算中误差估计的图像放大方法 |
CN101815157A (zh) * | 2009-02-24 | 2010-08-25 | 虹软(杭州)科技有限公司 | 图像及视频的放大方法与相关的图像处理装置 |
CN103139525A (zh) * | 2013-02-28 | 2013-06-05 | 天津大学 | 基于兴趣区域检测的视频图像非线性放大方法 |
-
2013
- 2013-07-02 CN CN201310274637.5A patent/CN103366342B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1901602A (zh) * | 2006-07-10 | 2007-01-24 | 宁波大学 | 用于图像放大处理过程中的快速双线性插值方法 |
CN101163190A (zh) * | 2007-11-01 | 2008-04-16 | 四川虹微技术有限公司 | 一种基于线性插值运算中误差估计的图像放大方法 |
CN101815157A (zh) * | 2009-02-24 | 2010-08-25 | 虹软(杭州)科技有限公司 | 图像及视频的放大方法与相关的图像处理装置 |
CN103139525A (zh) * | 2013-02-28 | 2013-06-05 | 天津大学 | 基于兴趣区域检测的视频图像非线性放大方法 |
Non-Patent Citations (4)
Title |
---|
一种基于边缘预测的图像实时放大技术;黄彪;《红外与激光工程》;20130625;第42卷;全文 * |
图像放大算法比较研究;赵海峰;《现代电子技术》;20101215(第24期);全文 * |
基于边缘方向插值的视频缩放算法及电路设计;史再峰;《吉林大学学报(工学版)》;20090715;第39卷(第4期);全文 * |
基于边缘方向的高精度快速图像插值算法研究与应用;党向盈;《中国优秀硕士学位论文全文数据库 信息科技辑》;20090315(第03期);正文第7页倒数第1段,第33页第2段,图2-2,图2-3,图5-2 * |
Also Published As
Publication number | Publication date |
---|---|
CN103366342A (zh) | 2013-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103366342B (zh) | 应用于视频图像放大的分段线性插值方法 | |
CN110223232A (zh) | 一种基于双线性插值算法的视频图像放大方法 | |
WO2023035531A1 (zh) | 文本图像超分辨率重建方法及其相关设备 | |
CN104268840A (zh) | 一种红外图像直方图去冗余的灰度等间距映射的增强方法 | |
CN106780336B (zh) | 一种图像缩小方法及装置 | |
CN112509003B (zh) | 解决目标跟踪框漂移的方法及系统 | |
CN102186044A (zh) | 一种边缘相关性图像无极缩放算法及其硬件实现装置 | |
CN101923704A (zh) | 一种自适应图像缩放方法 | |
CN103226824B (zh) | 维持视觉显著性的视频重定向系统 | |
CN105139338B (zh) | 多维查找表的生成方法及装置、图像缩放处理方法及装置 | |
Park et al. | Real-time stereo vision FPGA chip with low error rate | |
Li et al. | Detail-preserving image super-resolution via recursively dilated residual network | |
CN108280800A (zh) | 一种量子图像卷积方法 | |
CN102800047B (zh) | 一种单帧图像超分辨率重构方法 | |
KR930001689A (ko) | 이미지 버퍼를 이용한 전자 주밍 시스템 | |
CN111093045B (zh) | 一种缩放视频序列分辨率的方法及装置 | |
CN103139525B (zh) | 基于兴趣区域检测的视频图像非线性放大方法 | |
CN102842119A (zh) | 一种基于抠像和边缘增强的快速文本图像超分辨率方法 | |
CN101815165B (zh) | 实时高效的数字图像分数阶积分滤波器 | |
Pyatykh et al. | Salt and pepper noise removal in binary images using image block prior probabilities | |
CN101847252B (zh) | 保持图像光滑性的图像放大方法 | |
Shivakumara et al. | Sliding window based approach for document image mosaicing | |
CN101599260B (zh) | 共享硬件进行影像放大或缩小的方法及装置 | |
US20230196507A1 (en) | Device, method and program for processing image | |
Chu et al. | Resarch of image magnifying algorithm based on cubic spline interpolation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151223 Termination date: 20210702 |