APP下载

面向多尺度影像的瓦片金字塔技术研究与实现

2013-09-28陈茂霖万幼川杨秋兰

地理空间信息 2013年4期
关键词:分块金字塔内存

陈茂霖,万幼川,杨秋兰,张 文

(1.武汉大学 遥感信息工程学院,湖北 武汉 430079)

随着卫星影像的来源越来越广,在一个影像数据库中往往存在着不同分辨率的多尺度影像,影像库必须能够处理多尺度影像同时调度显示的问题。相对于传统单幅影像金字塔,多尺度影像金字塔可以结合多种卫星影像数据源,为每个尺度选取最合适的影像数据源,很大程度上减少单幅影像由于多次重采样而带来的大量影像信息丢失,同时每层影像也可以得到更好的效果。

目前,很多学者对影像金字塔的生成方法做了研究。谭庆泉[1]、余粉香[2]、张利[3]等在金字塔的构建效率、生成方法上进行了分析和研究,但不涉及多尺度影像金字塔的生成方法。贠建明[4]等对多尺度影像建立金字塔进行了总结,提出了各影像独立建立金字塔和统一层次建立金字塔2种方法;刘升容等[5]提出利用多源影像(SPOT、ALOS、IKONOS、Quick-Bird、资源二号等)建立遥感影像瓦片金字塔的方法和步骤;岳利群等提出了多分辨率数据的组织和编码方式[6]。本文针对多尺度影像金字塔的构建问题,提出了一种基于不规则切片的多尺度影像金字塔构建算法,并对算法进行了开发和实验分析。

1 基于不规则切片的影像分块

1.1 2种切片方式的对比

分块是指将金字塔的每一层影像按照给定宽度分割成标准大小的正方形瓦片来组织存贮[7]。一般使用等长宽图块,这种规则切片方法对于长宽相等的影像完全适用;但在影像长宽不等的情况下,规则切片方式往往会造成不必要的切块数据冗余。

1.2 基于不规则切片的分块

长宽不等的影像构建金字塔时,利用不规则切片对影像进行切块可以减少不必要的数据冗余,加快处理速度。在已知原始影像长宽的情况下,需要实现切块大小和金字塔层级之间的互推。

1)由图块大小计算层级。由于对金字塔进行四叉树编码的原因,每层金字塔中,X方向和Y方向上的图块数都必定为2的整数次幂,使得影像往往不能被整分。因此,在切块时需要对原始影像补0或删除多余像素。这里选择对原始影像补0的处理方式。

若令ImageWidth为原始影像的宽,BlockWidth为分块的宽,则计算过程如下:

首先计算中间值:

然后,用同样的方法在另一影像高的方向上计算Level2,取Level1和Level2中最大值为金字塔层级:

2)由层级计算图块大小。

式中,BlockWidth和BlockHeight分别为分块的宽度和长度;Imagewidth和Imageheight分别为原始影像的宽度和长度;Level为金字塔的层级数。

在获得了合适的切片大小和金字塔层级数之后,便可实现对影像的切块。具体过程为:①根据金字塔层级等参数,得到原始影像分割后的图块的数量;②获取第一个图块;③对当前图块,遍历其各像素。若当前像素在原始影像范围内,则令图块当前像素值等于对应的原始影像像素值,否则令图块当前像素值为0;④当前图块的像素遍历结束后,若已遍历完所有图块,影像分块结束,否则获取下一图块,并进行③中的操作。

2 多尺度影像金字塔的构建方法

2.1 独立金字塔构建

多尺度影像独立构建金字塔,是指各影像按单幅影像的方式生成金字塔后对各个金字塔建立索引,索引中记录各金字塔的参数(金字塔层数、重采样方式以及影像块的大小、原始分辨率)。由于参数差异,不同原始分辨率的影像建成的金字塔在层次、层间采样系数等方面必然各不相同,并且在相同层次上其分辨率也没有任何联系。

2.2 统一金字塔构建

多尺度影像统一构建金字塔,是将不同影像转化到同一金字塔的不同层次上,进而生成统一的影像金字塔,如图1所示。这样,金字塔每层的影像都由与其分辨率最相近的遥感影像采样得到,最大程度上避免了因重采样导致的信息损失。

图1 统一金字塔构建示意图

统一金字塔的构建,首先要确定金字塔层数以及每层的分辨率,对于不同来源的影像根据其分辨率将其映射到此固定的金字塔上。在构建过程中,若出现多张影像在一个区域发生重叠的现象,选取分辨率与该层最相近的影像进行重采样,使影像信息的损失最小。本文采用金字塔统一构建的方式。

2.3 统一金字塔构建的实现算法

多尺度影像金字塔的构建算法是在单一影像金字塔构建算法(见图2)基础上改进而来的。

图2 单一影像金字塔的构建算法

本文多尺度影像金字塔的构建算法主要在影像输入和重采样2个方面进行改进。

1)影像输入。在输入原始影像时,由于存在不同分辨率的多张影像,需要为这些影像的空间范围、长宽、分辨率等信息建立索引,以方便重采样时调用。

2)重采样。与单一尺度影像重采样不同,多尺度影像金字塔构建时,需要在重采样之前判断是否存在其他尺度的影像与重采样范围有重合区域,然后分别进行不同的处理。具体过程为:

①判断分辨率大于当前层次分辨率的其他尺度影像是否与重采样区域有重叠部分。若无,则直接利用上一层影像数据进行重采样;否则得到有重叠范围的影像索引。②通过索引中的影像得到重叠区域,处理过程中可能会得到多块重叠区域。重叠区域之外的影像,利用上一层金字塔影像进行重采样。③在各重叠区域之内,分别提取分辨率与当前分辨率最接近的影像作为重采样的原始影像,完成重采样。④重叠和非重叠区域的重采样结果合并得到利用多尺度影像进行重采样的结果。

3 算法实现及分析

3.1 实验数据选取

本文的实验数据为5 000×5 000的苏州地区QuickBird影像。实验数据为jpg格式,空间信息文件为jgw格式。

3.2 构建算法的实现

在以上算法的基础上,程序的实现还需要考虑一些其他的问题:

1)内存的利用。由于四叉树编码的原因,算法的实现是一个递归循环的过程,中间过程会占用大量内存。本文在C#开发环境中调用Win32动态链接库kernel.dll中的SetProcessWorkingSetSize()函数来限制内存的使用,其原理是将暂时不用的内存放入虚拟内存中,在需要时从虚拟内存中读取。

2)采样密度与采样算法。由于程序中利用四叉树编码为金字塔构建索引,故采样密度为2×2。常用的采样算法包括最近邻元法、双线性内插法和三次卷积。

考虑上述问题后,在VS2008中实现多尺度影像金字塔的程序构建。影像路径、保存路径、图块大小、重采样方法以及金字塔层数等参数都可以在程序界面中选择。

选择蓝、白2个纯色图块作为其他尺度的实验影像,其中蓝色图块分辨率为0.7、白色图块分辨率为0.3,令两者部分重叠,原始图像分辨率为0.2,构建5层金字塔。可以发现,在第4层影像中只有白色图块,而从第3层开始蓝色影像在重叠区域覆盖了白色影像,如图3所示。这样便实现了一个多尺度影像金字塔的构建。

图3 多尺度影像构建金字塔

3.3 算法分析

3.3.1 2种切片方式的对比

本文通过实验对2种切片方式进行了实现和对比。

实验采用1 501×989的不规则影像,按照四叉树的规则对其分层分块,分别采用256×256与256×128以及128×128与128×64两组分块方式进行对比。计算每种分块方式下金字塔构建的平均用时,实验结果见表1。

表1 不同切块方式的对比

图4 不同切块方式的对比

由表1可知,在原始影像不规则的情况下,不规则的切片方式可以提高切块的速度。图4对比了256×256与256×128两种切片方式所得的金字塔顶层影像,可以看出不规则的切片方式在原始影像长宽不等的情况下确实更有优势。

3.3.2 内存限制对构建效率的影响

为了分析内存限制对金字塔构建效率的影响,本文对内存限制与金字塔构建速度进行了实验和分析,实验结果如表2所示。为了使实验结果更加直观,将实验结果绘成折线图,如图5所示。有内存限制的金字塔构建时间只比无内存限制的金字塔构建多1 s左右,同庞大的内存占用相比,可以忽略不记。

此外,从图5中还可以看出,内存限制设置小于14 MB时,构建金字塔所消耗的时间普遍比较多;在内存限制大于14 MB之后,构建时间较短且基本保持稳定。因此,通过合理设置内存限制可以实现内存占用与构建速度的相对平衡。实验程序中,将内存的限制设为20 MB。

表2 内存与金字塔构建时间的关系

图5 内存与构建时间关系图

3.3.3 采样方式对效果和效率的影响

本文实验程序用到了最近邻元法和双线性内插2种重采样方式,它们对金字塔的构建效率和效果有不同的影响。图6是2种采样方式效率的对比,可以看出最近邻元法生成影像金字塔要比双线性内插法平均节省1 s左右的时间。图7是2种采样方式的效果对比,可以看出随着采样次数的增加,最近邻元法会破坏地物的边界,产生大量图斑,而双线性内插法的效果则明显优于最近邻元法。综合来看,最近邻元法微小的效率提升不足以弥补影像效果的不足,因此,双线性内插法更优于最近邻元法,本文实验也采用最近邻元法进行重采样。

图6 采样效率对比图

图7 采样效果对比图

4 结 语

本文在一般的影像金字塔构建算法基础上,实现了一种基于不规则分块的多尺度影像金字塔的构建方法,将多分辨率的遥感影像统一起来,构建金字塔;并通过设置不同的参数,在平衡构建效率和内存占用的基础上,实现了多尺度影像金字塔的构建。与规则切片方式相比,不规则切片的方式可以减少数据冗余并提高切块效率。同时,随着遥感数据来源的增加,利用多尺度影像金字塔对数据进行管理会显得更加重要。本文的算法是对传统金字塔构建算法的补充和完善,对于多源影像的统一管理、网络传输和查询有着很大的帮助。

[1]谭庆泉,毕建涛,池天河.一种灵活高效的遥感影像金字塔构建算法[J].计算机系统应用,2008(4):124-127

[2]余粉香.目标影像数据库的设计与实现[D].郑州:信息工程大学,2006

[3]张利.多尺度海量栅格数据组织与管理的研究[D].郑州:信息工程大学,2005

[4]贠建明,汪汇兵,唐新明.多源影像数据库金字塔结构的研究与实践[J].测绘科学,2011,36(4):53-55

[5]刘升容,刘学锋.全国第二次土地调查中海量遥感影像瓦片金字塔的建立与无缝组织[J].测绘通报,2011(7):37-39

[6]岳利群,夏青,柳佳佳,等.一种全球多分辨率地形数据组织管理的方法[J].测绘通报,2008(4):25-27

[7]宋洪江,赵忠明.图像分块分层结构在海量数据处理中的应用[J].计算机工程与应用, 2004(33):31-34

[8]李建松.地理信息系统原理[M].武汉:武汉大学出版社,2010

猜你喜欢

分块金字塔内存
“金字塔”
钢结构工程分块滑移安装施工方法探讨
Great Vacation Places
分块矩阵在线性代数中的应用
笔记本内存已经在涨价了,但幅度不大,升级扩容无须等待
“春夏秋冬”的内存
海上有座“金字塔”
神秘金字塔
反三角分块矩阵Drazin逆新的表示
内存搭配DDR4、DDR3L还是DDR3?