一种数字图像插值处理方法

文档序号:6425035阅读:116来源:国知局
专利名称:一种数字图像插值处理方法
技术领域
本发明涉及一种压缩储存方法,特别是涉及一种数字图像插值参数的压缩储存方法。
背景技术
插值(Interpolation)就是要确定图像中已知的点之间的空隙点的信息。我们都知道图像是由像素点组成的,当我们放大、缩小或者旋转图像时,原始像素就会重新排列,然后生成一些新的像素点。因此,就需要通过插值来减少图像几何变换后对原有图像的破坏。插值方法是图像重新分布像素时所运用的方法,目的是要确定图像中已知的点之间的空隙点的信息。
传统的数字图像的插值方法有很多种,最常见的两种高分辨率插值方法分别为Bicubic计算法(双三次插值)与Bilinear计算法(双线性插值)。双线性插值算法输出的图像的每个像素都是原图中四个像素(2×2)运算的结果,双三次插值算法是上一种算法的改进算法,它输出图像的每个像素都是原图16个像素(4×4)运算的结果。
这两种算法效果虽好,但却最为费时,属区域运算,运算量比较大,图像缩放需要插值时处理速度都比较低,而且通常参数个数比较多,储存时占用的储存空间非常大。

发明内容
本发明所要解决的技术问题在于提供一种数字图像插值处理方法,以提高插值处理速度的同时,将插值参数压缩储存,极大地降低插值参数所需的储存空间。
为了实现上述目的,本发明提供了一种数字图像插值处理方法,其特点在于,包括如下步骤将像素间的空白区域平均划分为多个方格;根据当前该方格所在位置,确定各方格相对于其采样点的插值参数;将所有方格相对于其采样点的插值参数压缩储存;缩放图像,确定插值点落入的目标方格;根据该目标方格的位置解压缩插值参数,从而计算该方格对应的插值参数;及根据该插值参数以及该采样点的亮度值,计算该插值点的亮度值。
上述数字图像插值处理方法,其特点在于,该将空白区域划分为多个方格的步骤,为等份划分4*4=16个方格。
上述数字图像插值处理方法,其特点在于,该将空白区域划分为多个方格的步骤,为等份划分3*3=9个方格。
上述数字图像插值处理方法,其特点在于,该将空白区域划分为多个方格的步骤,为等份划分2*2=4个方格。
上述数字图像插值处理方法,其特点在于,各方格的插值参数为各方格中心点的插值参数。
上述数字图像插值处理方法,其特点在于,该采样点的个数为4个。
上述数字图像插值处理方法,其特点在于,该采样点的个数为16个。
上述数字图像插值处理方法,其特点在于,将所有方格相对于其采样点的插值参数压缩储存的步骤,还包括如下步骤确定各方格相对于相邻四个采样点的插值参数;及根据该插值参数的坐标,将该插值参数压缩储存。
上述数字图像插值处理方法,其特点在于,其中计算插值点的亮度值为采用双三次算法计算的。
上述数字图像插值处理方法,其特点在于,该计算插值点的亮度值为采用双线性算法计算的。
本发明的功效,在于提高插值处理速度的同时,将插值参数压缩储存,极大地降低插值参数所需的储存空间。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。


图1为本发明所提的数字图像插值处理方法的总体流程图;图2为双线性插值算法的示意图;图3为本发明空白区域的方格划分的示意图;图4为本发明空白区域插值点示意图;
图5为本发明空白区域插值点的坐标示意图;图6为本发明双三次算法划分为4*4个方格的示意图;图7为本发明双三次算法划分为3*3个方格的示意图;图8为本发明双三次算法划分为2*2个方格的示意图;图9为本发明双线性算法划分为4*4个方格的示意图;图10为本发明双线性算法划分为3*3个方格的示意图;及图11为本发明双线性算法划分为2*2个方格的示意图。
其中,附图标记步骤110-将像素间的空白区域平均划分为多个方格步骤120-根据当前该方格所在位置,确定各方格相对于其采样点的插值参数步骤130-将所有方格相对于其采样点的插值参数压缩储存步骤140-缩放图像,确定插值点落入的目标方格步骤150-根据该目标方格的位置解压缩插值参数,从而计算该方格对应的插值参数步骤160-根据该插值参数以及该采样点的亮度值,计算该插值点的亮度值10-像素间空白区域Pt-方格,Pr-插值参数具体实施方式
首先请参见图1,为本发明数字图像插值处理方法的总体流程图。如图所示,本发明采用高速的插值算法,步骤110,首先将原始像素的空白区域等分为多个方格,步骤120,根据方格所在的位置,预先计算该方格中心点所对应的插值参数,将该插值参数作为该方格内所有点的插值参数,步骤130,然后将这些插值参数压缩储存,步骤140,在插值时,只需要判断插值点所落入的方格,步骤150,将该方格的插值参数解压缩后,步骤160,根据该插值参数以及该采样点的亮度值进行插值计算,从而在提高插值速度的同时,降低的插值参数的储存空间。
双线性插值处理方法的推导过程请参见图2,双线性插值利用点(x,y)的四个相邻像素点h1、h2、h3以及h4,假设相邻像素的亮度值函数是线性的。例如,设定hi的值为x,y,空白区域的垂直边界在y方向上可以在h1与h3之间线性的插入ha,可以在h2与h4之间线性的插入hb。,在x方向上可以在ha与hb之间线性的插值。
Bilinear函数类似在该空白方形区域10的四个顶点做一条双曲抛物线,通常写作hi=a00+a10x+a01y+a11xy因此可得出a00=h1a10=h2-h1a01=h3-h1a11=h1-h2-h3+h4因而hi=h1*c1+h2*c2+h3*c3+h4*c4所以插值参数c1=1-x-y+xyc2=x-xyc3=y-xyc4=xy可看出hi的值由其相邻像素h1、h2、h3、h4和对应每个像素的插值参数确定,插值参数c1、c2、c3、c4的值由(x,y)的位置确定。如图3所示,Pt为像素之间的空白区域10划分的多个方格,该方格的插值参数为Pr。为了便于计算,将该空白区域10分为4*4个方格Pt,该4*4个方格Pt的放大图如图4所示。该空白区域10还可以划分为2*2或3*3个方格,每个方格Pt具有相同的插值参数(c1,c2,c3,c4)值。
设定方格中点,即点(1/8,1/8)的插值参数c1、c2、c3、c4为整个该方格的插值参数,分别为C1=49/64、c2=7/64、c3=6/64、c4=1/64。
采用双三次插值时,请参见图,定义(x,y)为从原始图像点到目标图像的映像点,即插值点。并且0≤x<1,0≤y<1,其相邻16个像素点为(i-1,j-1),(i,j-1),(i+1,j-1),(i+2,j-1),(i-1,j),(i,j),(i+1,j),(i+2,j),(i-1,j+1),(i,j+1),(i+1,j+1),(i+2,j+1),(i-1,j+2),(i,j+2),(i+1,j+2),(i+2,j+2),假定h(x,y)是像素(x,y)点的RGB值,则可得出
h(x,y)=h(i-1,j-1)*c00+h(i,j-1)*c01+h(i+1,j-1)c02+h(i+2,j-1)*c03+h(i-1,j)*c10+h(i,j)*c11+h(i+1,j)c12+h(i+2,j-1)*c13+h(i-1,j+1)*c20+h(i,j+1)*c21+h(i+1,j+1)c22+h(i+2,j+1)*c23+h(i-1,j+2)*c30+h(i,j+2)*c31+h(i+1,j+2)c32+h(i+2,j+2)*c33其中cij(0≤i≤3,0≤j≤3)为插值参数。
与双线性插值算法相同,如图所示,将每个空白区域分成4*4个方格,或3*3,或2*2个方格,每个方格具有相同的插值参数。
例如方格Pt中所有点的插值参数cij(0≤i≤3,0≤j≤3)与该方格Pt的中间点(1/8,1/8)的插值参数相同。任意点的亮度值是通过使用这个点的所有16个插值参数对周围16个实际采样点亮度值加权求和进行插值。
如果未经过压缩,则需要储存较多的参数。如图6所示,该图为采用双三次插值算法并选择划分为4*4个方格的示意图。插值参数为相邻16个点的权值(如图中间的空白区域)。这里将空白区域10划分为16个方格Pt,那么每个方格对应于16个相邻像素点(即采样点)具有16个插值参数。那么16个方格就有16*16=256个插值参数需要储存。
如图7所示,该图采用双三次算法并选择划分为3*3个方格的示意图。插值参数是周围16个像素点的权值(图中中间的空白区域所示)。这里将空白区域10划分为3*3个方格Pt。那么每个方格具有16个参数对应16个参样点,那么9个方格具有9*16=144个参数需要储存。
如图8所示,该图采用双三次算法并选择划分为2*2个方格的示意图。插值参数是周围16个像素点的权值(图中中间的空白区域所示)。这里将空白区域10划分为2*2个方格Pt。那么每个方格具有16个参数对应16个参样点,那么4个方格具有4*16=64个参数需要储存。
请参阅图9,当采用双线性插值算法时,将空白区域10划分为4*4个方格,插值参数为相邻4个采样点的权值。每个方格具有相对于4个采样点的4个插值参数。那么16个方格就有4*16=64个参数需要储存。
请参阅图10,当采用双线性插值算法时,将空白区域10划分为3*3个方格,插值参数为相邻4个采样点的权值。每个方格具有相对于4个采样点的4个插值参数。那么9个方格就有4*9=36个参数需要储存。
请参阅图11,当采用双线性插值算法时,将空白区域10划分为2*2个方格,插值参数为相邻4个采样点的权值。每个方格具有相对于4个采样点的4个插值参数。那么4个方格就有4*4=16个参数需要储存。
本发明是将这些需要储存的插值参数压缩,对于图6所示的划分为16个方格的双三次插值算法假设C11为点(1,1)对应的4*4插值参数矩阵,该矩阵为包含有16个插值参数,C11(i,j)(0<=i<=3,0<=j<=3)为点(1,1)对应的第(i,j)个方格的插值参数;假设C21为点(2,1)对应的4*4插值参数矩阵,该矩阵为包含有16个插值参数,C21(i,j)(0<=i<=3,0<=j<=3)为点(2,1)对应的第(i,j)个方格的插值参数;假设C31为点(3,1)对应的4*4插值参数矩阵,该矩阵为包含有16个插值参数,C31(i,j)(0<=i<=3,0<=j<=3)为点(3,1)对应的第(i,j)个方格的插值参数;假设C41为点(4,1)对应的4*4插值参数矩阵,该矩阵为包含有16个插值参数,C41(i,j)(0<=i<=3,0<=j<=3)为点(4,1)对应的第(i,j)个方格的插值参数;假设C12为点(1,2)对应的4*4插值参数矩阵,该矩阵为包含有16个插值参数,C12(i,j)(0<=i<=3,0<=j<=3)为点(1,2)对应的第(i,j)个方格的插值参数;假设C22为点(2,2)对应的4*4插值参数矩阵,该矩阵为包含有16个插值参数,C22(i,j)(0<=i<=3,0<=j<=3)为点(2,2)对应的第(i,j)个方格的插值参数;假设C32为点(3,2)对应的4*4插值参数矩阵,该矩阵为包含有16个插值参数,C32(i,j)(0<=i<=3,0<=j<=3)为点(3,2)对应的第(i,j)个方格的插值参数;假设C42为点(4,2)对应的4*4插值参数矩阵,该矩阵为包含有16个插值参数,C42(i,j)(0<=i<=3,0<=j<=3)为点(4,2)对应的第(i,j)个方格的插值参数;假设C13为点(1,3)对应的4*4插值参数矩阵,该矩阵为包含有16个插值参数,C13(i,j)(0<=i<=3,0<=j<=3)为点(1,3)对应的第(i,j)个方格的插值参数;假设C23为点(2,3)对应的4*4插值参数矩阵,该矩阵为包含有16个插值参数,C23(i,j)(0<=i<=3,0<=j<=3)为点(2,3)对应的第(i,j)个方格的插值参数;假设C33为点(3,3)对应的4*4插值参数矩阵,该矩阵为包含有16个插值参数,C33(i,j)(0<=i<=3,0<=j<=3)为点(3,3)对应的第(i,j)个方格的插值参数;假设C43为点(4,3)对应的4*4插值参数矩阵,该矩阵为包含有16个插值参数,C43(i,j)(0<=i<=3,0<=j<=3)为点(4,3)对应的第(i,j)个方格的插值参数;假设C14为点(1,4)对应的4*4插值参数矩阵,该矩阵为包含有16个插值参数,C14(i,j)(0<=i<=3,0<=j<=3)为点(1,4)对应的第(i,j)个方格的插值参数;假设C24为点(2,4)对应的4*4插值参数矩阵,该矩阵为包含有16个插值参数,C24(i,j)(0<=i<=3,0<=j<=3)为点(2,4)对应的第(i,j)个方格的插值参数;假设C34为点(3,4)对应的4*4插值参数矩阵,该矩阵为包含有16个插值参数,C34(i,j)(0<=i<=3,0<=j<=3)为点(3,4)对应的第(i,j)个方格的插值参数;假设C44为点(4,4)对应的4*4插值参数矩阵,该矩阵为包含有16个插值参数,C44(i,j)(0<=i<=3,0<=j<=3)为点(4,4)对应的第(i,j)个方格的插值参数。
对于划分为4*4个方格的双三次插值算法,需要储存上述16个矩阵参数,该16个矩阵参数有如下规则C31(i,j)=C21(i,3-j);C41(i,j)=C11(i,3-j);C32(i,j)=C22(i,3-j);C42(i,j)=C12(i,3-j);C13(i,j)=C12(3-i,j);
C23(i,j)=C22(3-i,j);C33(i,j)=C22(3-i,3-j);C43(i,j)=C12(3-i,3-j);C14(i,j)=C11(3-i,j);C24(i,j)=C21(3-i,j);C34(i,j)=C21(3-i,3-j);C44(i,j)=C11(3-i,3-j)。
因此C31(i,j),C41(i,j),C32(i,j),C42(i,j),C13(i,j),C23(i,j),C33(i,j),C43(i,j),C14(i,j),C24(i,j),C34(i,j),C44(i,j)都可以由C11(i,j),C21(i,j),C12(i,j),C22(i,j)经过计算得出。
对于C11(I,j),C11(i,j)=C11(j,i)(0<=i<=3,0<=j<=3),因此只需要储存C11部分的一半,另一半可以由储存的部分经过计算得出。
C22(i,j)=C22(j,i)(0<=i<=3,0<=j<=3),因此只需要储存C22部分的一半,另一半可以由储存的部分经过计算得出。
C12(i,j)=C21(j,i)(0<=i<=3,0<=j<=3),因此只需要储存C12,C21可以通过C12得出。
因此可以得出只需要储存C11、C12、C21、C22中元素的一半,即可推出全部的插值参数C11、C21、C31、C41、C12、C22、C32、C42、C13、C23、C33、C43、C14、C24、C34、C44。因此最大的压缩率为8∶1,同样,对于双三次算法,方格的3×3与2×2的划分具有相同的压缩比率。
假定C11是点(1,1)的4*4参数矩阵,其包括有16个参数,C11(i,j)(0<=i<=3,0<=j<=3)为(i,j)方格,点(1,1)的插值参数;假定C21是点(2,1)的4*4参数矩阵,其包括有16个参数,C21(i,j)(0<=i<=3,0<=j<=3)为(i,j)方格,点(2,1)的插值参数;假定C12是点(1,2)的4*4参数矩阵,其包括有16个参数,C12(i,j)(0<=i<=3,0<=j<=3)为(i,j)方格,点(1,2)的插值参数;假定C22是点(2,2)的4*4参数矩阵,其包括有16个参数,C22(i,j)(0<=i<=3,0<=j<=3)为(i,j)方格,点(2,2)的插值参数。
对于双线性插值具有44个方格,因此需要上述参数的4个矩阵。
对于4个矩阵参数,有下列规则
C21(i,j)=C11(3-i,j);C12(i,j)=C11(i,3-j);C22(i,j)=C11(3-i,3-j);因此C21(i,j)、C12(i,j)、C22(i,j)都可以由C11(i,j)得出。
对于C11(I,j),C11(i,j)=C11(j,i)(0<=i<=3,0<=j<=3),因此只需储存C11参数一半,另一半可以通过计算得出。
因此可以得出对于整个插值参数C11、C21、C12、C22,只需要储存C11元素的一半,最大压缩率为8∶1。同理划分为3*3个方格以及2*2个方格具有相同的压缩比率。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明权利要求的保护范围。
权利要求
1.一种数字图像插值处理方法,其特征在于,包括如下步骤将像素间的空白区域等份划分为多个方格;根据当前该方格所在位置,确定各方格相对于其采样点的插值参数;将所有方格相对于其采样点的插值参数压缩储存;缩放图像,确定插值点落入的目标方格;根据该目标方格的位置解压缩插值参数,从而计算该方格对应的插值参数;及根据该插值参数以及该采样点的亮度值,计算该插值点的亮度值。
2.根据权利要求1所述的数字图像插值处理方法,其特征在于,该将空白区域划分为多个方格的步骤,为等份划分4*4=16个方格。
3.根据权利要求1所述的数字图像插值处理方法,其特征在于,该将空白区域划分为多个方格的步骤,为等份划分3*3=9个方格。
4.根据权利要求1所述的数字图像插值处理方法,其特征在于,该将空白区域划分为多个方格的步骤,为等份划分2*2=4个方格。
5.根据权利要求1所述的数字图像插值处理方法,其特征在于,各方格的插值参数为各方格中心点的插值参数。
6.根据权利要求1所述的数字图像插值处理方法,其特征在于,该采样点的个数为4个。
7.根据权利要求1所述的数字图像插值处理方法,其特征在于,该采样点的个数为16个。
8.根据权利要求1所述的数字图像插值处理方法,其特征在于,将所有方格相对于其采样点的插值参数压缩储存的步骤,还包括如下步骤确定各方格相对于相邻四个采样点的插值参数;及根据该插值参数的坐标,将该插值参数压缩储存。
9.根据权利要求1所述的数字图像插值处理方法,其特征在于,其中计算插值点的亮度值为采用双三次算法计算的。
10.根据权利要求1所述的数字图像插值处理方法,其特征在于,该计算插值点的亮度值为采用双线性算法计算的。
全文摘要
本发明涉及一种数字图像插值处理方法,包括如下步骤将像素间的空白区域平均划分为多个方格;根据当前该方格所在位置,确定各方格相对于其采样点的插值参数;将所有方格相对于其采样点的插值参数压缩储存;缩放图像,确定插值点落入的目标方格;根据该目标方格的位置解压缩插值参数,从而计算该方格对应的插值参数;及根据该插值参数以及该采样点的亮度值,计算该插值点的亮度值。本发明可以提高插值处理速度的同时,将插值参数压缩储存,降低插值参数所需的储存空间。
文档编号G06T3/40GK1750042SQ200410074448
公开日2006年3月22日 申请日期2004年9月15日 优先权日2004年9月15日
发明者高月 申请人:德鑫科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1