CN101226629A - 一种采用小数累加步长计算双线性插值的方法 - Google Patents
一种采用小数累加步长计算双线性插值的方法 Download PDFInfo
- Publication number
- CN101226629A CN101226629A CNA2007100365227A CN200710036522A CN101226629A CN 101226629 A CN101226629 A CN 101226629A CN A2007100365227 A CNA2007100365227 A CN A2007100365227A CN 200710036522 A CN200710036522 A CN 200710036522A CN 101226629 A CN101226629 A CN 101226629A
- Authority
- CN
- China
- Prior art keywords
- decimal
- alpha
- resolution
- former
- target
- 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.)
- Pending
Links
Images
Landscapes
- Image Processing (AREA)
Abstract
本发明涉及信息图像处理方法技术领域,具体涉及一种采用小数累加步长计算双线性插值的方法。该方法包括下列步骤组成:(1)设置原图分辨率为M,原图分辨率M与目标分辨率N的比值M/N;(2)累加小数比例尺M/N;(3)扣除整数,得小数alpha,直接寄存小数形式的偏移,计算目标像素。本发明提供的方法使用加法器取代乘法器可节省大量的硬件资源,本发明提供的方法同样适合用于“选择最近点”的插值计算方式。
Description
技术领域
本发明涉及信息图像处理方法技术领域,具体涉及一种采用小数累加步长计算双线性插值的方法。本发明提供的方法同样适合用于“选择最近点”的插值计算方式。
背景技术
双线性插值(Bilinear interpolation)在图像处理等领域得到了广泛应用。然而,理论公式中存在大量的乘法运算,对于硬件实现代价高昂。通常,为了避免“跨点”(二维情况则是“跨格”)错误的发生,目标像素位置的步长计算采用分数方式(分子累加),而偏移量的计算则需要再乘以目标分辨率的倒数。这样在计算结果之前仅为计算一个偏移量已经用到了一个乘法器。考虑到放大的情况,可能的像素点数增加,偏移量的个数增加,乘法器也必须增加,因此需要大量的硬件资源。
发明内容
本发明的目的主要是解决上述图像偏移计算时存在的问题,提供了一种采用小数累加步长计算双线性插值的方法。
为此,本发明提供的技术方案是采用小数累加步长计算偏移的方法,从而用加法器完成了偏移计算。虽然有可能“跨格”,但数学分析可以证明,合适的小数位数可以保证不逊于已有方法的精度,而且考虑到累计误差后,本方法同样可用于“选择最近点”(Nearest)的插值计算方式。
本发明提供的一种采用小数累加步长计算双线性插值的方法,该方法包括下列步骤组成:
(1)设置原图分辨率为M,原图分辨率M与目标分辨率N的比值M/N;
(2)累加小数比例尺M/N;
(3)扣除整数,得小数alpha,直接寄存小数形式的偏移,计算目标像素。
所谓步长,即原图分辨率与目标图分辨率之比。本发明提供的方法在原图上,以步长累加,即得到目标图在原图上的坐标偏移,偏移的反比即权重,对原图上两相邻像素的值加权即可计算双线性插值的目标像素。
所谓“选择最近点”的算法,本发明提供的方法计算偏移与上相同。但无须计算权重,只需检测偏移是否大于一半,若是则目标像素以右方或下方的值输出,否则以左方或上方的值输出,无需加权计算。
传统上计算偏移时是采用累加M,再扣除N整数倍得到偏移,但此时得到的偏移尚属分数形式k/N(0<=k<N),无法直接进行加权运算,为此需先由软件输入1/N作种子,乘以k(乘法器),得到小数值,之后方可加权。
本发明提出的一种采用小数累加步长计算双线性插值的方法则由软件事先计算M/N结果,例如从原图分辨率M=640缩小到目标图分辨率N=352,M/N=1.818181...以此为步长直接累加得到偏移,进行加权或选择最近点。与传统方法比,本发明无需设置N和1/N的值,可以节省用于偏移计算的乘法器。本发明提供的方法使用加法器取代乘法器可节省大量的硬件资源,同时在寄存器的设置上由原来的源分辨率、目标分辨率及目标分辨率的倒数转变为源分辨率和源分辨率与目标分辨率的比值,这样还大大简化了软件的工作。
下面,结合附图和实施例详细说明依据本发明提出的方法具体工作情况。
附图说明
图1是本发明提供的图像双线性插值的原理图;
图2是一维情况下计算图像偏移发生“跨点”错误的示意图;
图3是二维情况下计算图像偏移发生“跨格”错误的示意图;
图4是一维小数累加步长计算双线性插值的示意图;
图5是传统插值方法的工作流程方框图;
图6为本发明提出的采用小数累加步长方法的工作流程方框图。
具体实施方式
如附图所示,图1是双线性插值的原理图,数学计算公式为(以横纵边长为1单位,小数表示Sx,Sy):
P=(1-Sx)*(1-Sy)*P1+Sx*(1-Sy)*P2+(1-Sx)*Sy*P3+Sx*Sy*P4 (1)
其中,Sx,Sy代表目标像素点分别与原图像素点的横向和纵向距离,原图像素间距为1单位,所以上述距离均为小数,也即下文中提到的alpha。P代表像素分量值,分量通常为Y,U,V或R,G,B(不同分量分别计算)。P1,P2,P3,P4为原图像素分量值,P为计算出的目标像素分量值。
如果直接采用上式计算,需要8个乘法器和3个加法器。考虑到放大的情况,可能输出的像素个数比输入更多,以及每个像素都包含Y,U,V3个分量,通常会采用在水平或者垂直方向先计算中间结果,再由中间结果得到最后结果。所以二维插值可以分解为两次一维插值。
首先考虑一维的情况。计算的要点在于,确定目标像素落在哪两个原图像素之间,以及偏移量的多少,然后根据如下公式计算如附图图2所示;
P=P1*(1-alpha(t))+P2*alpha(t) (2)
由上式可见,目标像素值完全取决于它映射到原图上的位置。位置以偏移代表,偏移的误差即最终结果产生误差的原因。
所谓“跨点”,是指计算偏移量时累计误差过大,以至于从理论位置P(t)“漂移”到实际位置P(a),因而图2中原本应由P1,P2,alpha(t)得到的结果被替代为用P2,P3,alpha(a)计算。由于不能确定P3与P1之间有任何关系,所以这种情况被认为是一个错误。在二维情况下,错误会表现为“跨格”,即图3中从正确的4个原图像素组成的方格{P1,P2,P3,P4}“漂移”到另一个错误的方格{P4,P5,P6,P7},一般认为这种情况下的结果不能接受,因为是错误而不是误差。
横或纵任一方向“跨点”都会引起“跨格”。
为避免以上错误,通常计算偏移时分为两个步骤。假设源分辨率为M点,而目标分辨率为N点,则累加M,并不断扣除N的整数倍,直至得到余量k,0<=k<N(分子累加)。这样可以保证得到正确的目标图像素的位置。此时
alpha=k/N (3)
为了避免除法器,通常会事先由软件输入1/N的值,用乘法器得到alpha。所以仅为计算偏移,就已经用了乘法器。
可以证明,无论输入的1/N精确到多少位,以上方法的结果和理论值都可能存在±1的误差。这是因为无论精度多高,硬件位数总是有限的。有限位数必然涉及舍入的问题。以最常见的四舍五入为例,假定理论值为99.5,无论实际值与其误差多小,只要比理论值小,则理论值四舍五入得100,而实际最后结果四舍五入得99,误差为1。如果要得到完全精确的结果,只能分别计算分子分母,最后再做除法。大量的乘法器,除法器对硬件实现过于昂贵,而效果上则显得并无必要。
本发明提供的一种采用小数累加步长计算双线性插值的方法则采用小数累加步长计算偏移。这样的确可能产生“跨点”或者“跨格”的情况,然而经仔细分析可得(图2),此种情况下,目标像素实际位置P(a)和原图像素P2均位于目标像素理论位置P(t)的正负误差范围内,即P2与P(a)距离非常近。如果误差足够小,代表P2权重将远远高于P1或P3,所以无论落在正确的P1-P2区间或者错误的P2-P3区间,都不会导致最后结果误差超过1(不逊于已有方法的精度)。
图4说明了本发明提供的一种单方向计算偏移的过程。其中X,Y,Z是原图像素,而P,A,B是目标图像素。以原图像素间距为1单位,则目标图像素间距为原图分辨率M/目标图分辨率N,即步长(h_step)。步长累加的结果在原图每一格内(如YZ区间)的余量(如YA),即偏移(h_alpha1)。B点代表放大时可能原图1个区间内可能有多于1个目标像素。
本发明提供的方法在二维图像的处理上,首先在横向上处理,请参见图4,设最右端的Z点为最新像素,而Y点之前的目标像素为P点,偏移量累加值为H_OFFSET,则新目标像素A点的偏移量为
H_ALPHA1=H_OFFSET+H_STEP-1 (6)
其中H_STEP即源分辨率与目标分辨率的比值(小数),H_OFFSET初值为0,即累加到P点的剩余量。
由于H_OFFSET和H_STEP均为小数,所以可直接相加取和,直接用结果作为式(2)中的alpha进行乘法计算。否则整数累加只能得到式(3)中的k,然后需要先做乘法(乘以1/N),乘积才是式(2)中的alpha。
图4中B点是考虑到放大的情况,即用H_STEP累加两次仍未超过Z点,所以B点同样是有效目标像素。操作类似于A点。
然后在纵向上同样操作。
图5-6比较了传统方法与本发明提出方法的区别。其中M为原图分辨率,N为目标图分辨率,alpha为偏移。最后一步中,左边是双线性插值的情况,右边是选择最近点的情况。
本文提供的方法和传统方法主要区别在于如何得到偏移alpha值,之后的步骤二者相同。
传统上,需要三个输入,原图分辨率M,目标分辨率N,及1/N以小数形式表达的值。设第i-1个目标像素偏移的分子为h,计算用到的原图像素为(m-1)点和m点,即原图像素区间(m-1,m),则计算第i个目标像素时,如图5第一步,首先判断
h+M>N?
如成立,则说明原图像素区间需换到(m,m+1),k=h+M-N;
否则原图像素区间仍为(m-1,m),k=h+M。(即图5第二步)用乘法器:
alpha=k*(1/N),即图5第三步。
之后可用式(2)计算,即图5第四步左选项,如采用选择最近点则进行图5第四步右选项
本发明提供的一种采用小数累加步长计算双线性插值的方法,需两个输入,原图分辨率M,比例尺(M/N)的小数值。直接寄存小数形式的偏移。计算目标像素:
第1点,原图和目标图重合,alpha1=0;原图像素区间为(1,2);
第2点,alpha2=alpha1+(M/N)=(M/N),即图6第一步。
判断
alpha2>1?
是则alpha2=alpha2-1,原图像素区间更新为(2,3);
否则alpha2不用-1,原图像素区间仍为(1,2)
即图6第二步。
第3点,alpha3=alpha2+(M/N),重复类似alpha2的判断及更
新步骤
第4点, ...
重复直至原图的边界,目标图输出完毕。
本文方法中计算alpha没有乘法器,小数累加的值经判断处理后即直接用于式(2)的计算。类似图5最后一步处理。
本发明提供的小数步长需要的精度取决于几个条件,包括像素值的位数,目标尺寸的大小,以及要求的最后结果的精度等等。
设输入的步长误差为delta,则对目标分辨率N,目标像素最大的误差范围是N*delta。因理论步长的分母为目标分辨率N(见式3),即两个可能的目标像素理论位置间距最小为1/N。故为确保目标像素的可能范围均不混叠,应保证前一目标像素的上界小于后一目标像素的下界
x+N*delta<x+1/N-N*delta (4)
其中x代表前一像素的理论位置。由上式可得delta上限,其倒数即为输入步长至少需要的精度。
类似于通信采样中的最小采样频率,虽然每个点都可能存在误差,但精度足够高的时候,它们都不会发生混叠(或者说,虽然不能确定目标像素的精确位置,但可以确定它的位置可能的“范围”,并且每个“范围”都是互不混叠的),因而可以保证最后结果的精度。考虑到累计误差造成的影响后,
本发明提供的方法也可用于“选择最近点”的插值方式。
在“选择最近点”的算法下,需要判断是否偏移大于0.5。由上述分析,大于0.5的最小偏移应为0.5+1/N,它的下界为
Judge_threshold=0.5+1/N-N*delta (5)
只需累加得到的偏移比上式大,即可确定应选择下方或右方的原像素值(即原图像素区间的上边界),否则应选左方或上方(即原图像素区间的下边界)。
Claims (8)
1.一种采用小数累加步长计算双线性插值的方法,其特征在于该方法包括下列步骤组成:
(1)设置原图分辨率为M,原图分辨率M与目标分辨率N的比值M/N;
(2)累加小数比例尺M/N;
(3)扣除整数,得小数alpha,直接寄存小数形式的偏移,计算目标像素。
2.根据权利要求书1所述的一种采用小数累加步长计算双线性插值的方法,其特征在于该方法包括下列步骤组成:
(1)设置原图分辨率为M,原图分辨率M与目标分辨率N的比值M/N;
(2)累加小数比例尺M/N;
(3)扣除整数,得小数alpha,直接寄存小数形式的偏移,计算目标像素:
第1点,原图和目标图重合,alpha1=0;原图像素区间为(1,2),
第2点,alpha2=alpha1+(M/N)=(M/N),判断alpha2>1?
是则alpha2=alpha2-1,原图像素区间更新为(2,3);
否则alpha2不用-1,原图像素区间仍为(1,2),
第3点,alpha3=alpha2+(M/N),重复类似alpha2的判及更新步骤,
第4点, ……;
如此重复上述步骤直至原图的边界,目标图输出完毕。
3.根据权利要求书1所述的一种采用小数累加步长计算双线性插值的方法,其特征在于该方法在原图上,以原图分辨率与目标图分辨率之比为步长累加,即得到目标图在原图上的坐标偏移,偏移的反比即权重,对原图上两相邻像素的值加权即可计算双线性插值的目标像素。
4.根据权利要求书1所述的一种采用小数累加步长计算双线性插值的方法,其特征在于该方法适合用于“选择最近点”的插值计算方法。
5.根据权利要求书4所述的一种采用小数累加步长计算双线性插值的方法,其特征在于该“选择最近点”的插值计算方法在原图上,以原图分辨率与目标图分辨率之比步长累加,但无须计算权重,只需检测偏移是否大于一半,若是则目标像素以右方或下方的值输出,否则以左方或上方的值输出即可。
6.根据权利要求书1所述的一种采用小数累加步长计算双线性插值的方法,其特征在于该方法的精度取决于几个条件,包括像素值的位数,目标尺寸的大小,以及要求的最后结果的精度;设输入的步长误差为delta,则对目标分辨率N,目标像素最大的误差范围是N*delta,因理论步长的分母为目标分辨率N,即两个可能的目标像素理论位置间距最小为1/N;故为确保目标像素的可能范围均不混叠,应保证前一目标像素的上界小于后一目标像素的下界x+N*delta<x+1/N-N*delta其中,x代表前一像素的理论位置,由上式可得delta上限,其倒数即为输入步长至少需要的精度。
7.根据权利要求书1所述的一种采用小数累加步长计算双线性插值的方法,其特征在于该方法使用“选择最近点”的插值方式时的精度取决于几个条件,包括像素值的位数,目标尺寸的大小,以及要求的最后结果的精度;在“选择最近点”的算法下,需要判断是否偏移大于0.5,大于0.5的最小偏移应为0.5+1/N,它的下界为Judge_threshold=0.5+1/N-N*delta;只需累加得到的偏移比上式大,即可确定应选择下方或右方的原像素值,即原图像素区间的上边界,否则应选左方或上方,即原图像素区间的下边界。
8.根据权利要求书1所述的一种采用小数累加步长计算双线性插值的方法,其特征在于该方法由软件事先计算M/N的结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007100365227A CN101226629A (zh) | 2007-01-17 | 2007-01-17 | 一种采用小数累加步长计算双线性插值的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007100365227A CN101226629A (zh) | 2007-01-17 | 2007-01-17 | 一种采用小数累加步长计算双线性插值的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101226629A true CN101226629A (zh) | 2008-07-23 |
Family
ID=39858609
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007100365227A Pending CN101226629A (zh) | 2007-01-17 | 2007-01-17 | 一种采用小数累加步长计算双线性插值的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101226629A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853488A (zh) * | 2010-06-03 | 2010-10-06 | 昆山龙腾光电有限公司 | 一种图像放大方法及装置 |
CN102186044A (zh) * | 2010-06-22 | 2011-09-14 | 上海盈方微电子有限公司 | 一种边缘相关性图像无极缩放算法及其硬件实现装置 |
CN102497549A (zh) * | 2011-12-02 | 2012-06-13 | 北京瀚景锦河科技有限公司 | 一种基于选择器的双线性插值方法和装置 |
CN102622107A (zh) * | 2010-12-27 | 2012-08-01 | 申金坡 | 鼠标偏转姿态使用求取正向位移的方法及鼠标 |
CN104869284A (zh) * | 2015-05-14 | 2015-08-26 | 北京邮电大学 | 一种双线性插值放大算法的高效率fpga实现方法和装置 |
CN111105353A (zh) * | 2019-12-16 | 2020-05-05 | 苏州瑞特纳电子科技有限公司 | 一种基于fpga的图像放大方法 |
CN111127323A (zh) * | 2019-12-25 | 2020-05-08 | 苏州瑞特纳电子科技有限公司 | 一种基于fpga的图像缩小方法 |
CN113541563A (zh) * | 2021-07-23 | 2021-10-22 | 义乌吉利自动变速器有限公司 | 电机的角度位置确定方法、检测设备及存储介质 |
-
2007
- 2007-01-17 CN CNA2007100365227A patent/CN101226629A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853488A (zh) * | 2010-06-03 | 2010-10-06 | 昆山龙腾光电有限公司 | 一种图像放大方法及装置 |
CN102186044A (zh) * | 2010-06-22 | 2011-09-14 | 上海盈方微电子有限公司 | 一种边缘相关性图像无极缩放算法及其硬件实现装置 |
CN102622107A (zh) * | 2010-12-27 | 2012-08-01 | 申金坡 | 鼠标偏转姿态使用求取正向位移的方法及鼠标 |
CN102622107B (zh) * | 2010-12-27 | 2017-05-17 | 申金坡 | 鼠标偏转姿态使用求取正向位移的方法及鼠标 |
CN102497549A (zh) * | 2011-12-02 | 2012-06-13 | 北京瀚景锦河科技有限公司 | 一种基于选择器的双线性插值方法和装置 |
CN104869284A (zh) * | 2015-05-14 | 2015-08-26 | 北京邮电大学 | 一种双线性插值放大算法的高效率fpga实现方法和装置 |
CN104869284B (zh) * | 2015-05-14 | 2018-05-04 | 北京邮电大学 | 一种双线性插值放大算法的高效率fpga实现方法和装置 |
CN111105353A (zh) * | 2019-12-16 | 2020-05-05 | 苏州瑞特纳电子科技有限公司 | 一种基于fpga的图像放大方法 |
CN111127323A (zh) * | 2019-12-25 | 2020-05-08 | 苏州瑞特纳电子科技有限公司 | 一种基于fpga的图像缩小方法 |
CN113541563A (zh) * | 2021-07-23 | 2021-10-22 | 义乌吉利自动变速器有限公司 | 电机的角度位置确定方法、检测设备及存储介质 |
CN113541563B (zh) * | 2021-07-23 | 2023-04-28 | 义乌吉利自动变速器有限公司 | 电机的角度位置确定方法、检测设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101226629A (zh) | 一种采用小数累加步长计算双线性插值的方法 | |
US10439594B2 (en) | Actually-measured marine environment data assimilation method based on sequence recursive filtering three-dimensional variation | |
CN102903134B (zh) | 快速绘制多次曲线的方法 | |
CN103473472A (zh) | 一种基于四分位图的数据质量检测方法及系统 | |
CN102968788B (zh) | 一种基于规则格网面元的波段配准方法 | |
CN107084662A (zh) | 基于fpga的正交信号实时处理方法 | |
CN102375721A (zh) | 一种矩阵乘法运算方法、图形处理器和电子设备 | |
CN110084439A (zh) | 一种基于nesma功能点估算的软件成本度量方法及云系统 | |
CN103268342A (zh) | 基于cuda的dem动态可视化加速系统和方法 | |
CN109829195A (zh) | 基于bim的土方工程量计算方法 | |
CN102768019B (zh) | 一种地下工程岩体位移的反馈分析系统 | |
CN112013757B (zh) | 一种高精度农机作业面积计算方法、装置及电子设备 | |
CN112507536B (zh) | 露天矿的采剥工程量计算方法、装置及电子设备 | |
CN111931272B (zh) | 任意尺度边坡等精度安全系数计算方法及网格划分方法 | |
CN102800128A (zh) | 利用散点图矩阵和回归分析建立地形描述精度模型的方法 | |
CN105444708A (zh) | 用于在位置测量装置中修正误差的方法 | |
CN104599061A (zh) | 路桥工程项目中工程量的计算方法 | |
CN103345769A (zh) | 全路径遥感影像专题制图法 | |
CN113947628B (zh) | 一种基于不同比尺河道地形图计算冲淤量的方法 | |
CN101997540B (zh) | 一种基于fpga实现的分数分频方法以及分数分频器 | |
CN101825970A (zh) | 触控点的追踪方法及追踪系统 | |
CN115688619A (zh) | 一种水环境容量的计算方法、装置、电子设备及存储介质 | |
CN103761012A (zh) | 一种适用于大尺寸红外触摸屏的快速算法 | |
JP6046937B2 (ja) | 積算システム及び積算プログラム | |
CN102798839B (zh) | 利用同步天线阵来实时定位有源待测物的装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20080723 |