定义
以多分辨率来解释图像的一种有效但概念简单的结构就是影像金字塔。一幅图像的金字塔就是一系列以金字塔形状排列的分辨率逐渐降低的图像集合。金字塔的底部是图像的高分辨率表示,也就是原始图像,而顶部是低分辨率的近似。最底层的分辨率最高,并且数据量最大,随着层数的增加,其分辨率逐渐降低,数据量也按比例减少。理论上,金字塔是一种连续分辨率模型,但在构建金字塔时很难做到分辨率连续变化,并且这样做也没有实际意义1。
金字塔模型最初应用于机器视觉和图像压缩,目前很多商业影像数据库系统都采用了金字塔结构来管理影像,例如 MrSID,TerraServer[TerraServer online],TerraShare [TerraShare online]等。但应用最广泛的是图像金字塔。
深入理解指在同一的空间参照下,根据用户需要以不同分辨率进行存储与显示,形成分辨率由粗到细、数据量由小到大的金字塔结构。影像金字塔结构用于图像编码和渐进式图像传输,是一种典型的分层数据结构形式,适合于栅格数据和影像数据的多分辨率组织,也是一种栅格数据或影像数据的有损压缩方式。 如图所示:
从图中可以看出, 从金字塔的底层开始每四个相邻的像素经过重采样生成一个新的像素, 依此重复进行, 直到金字塔的顶层。重采样的方法一般有以下三种: 双线性插值、最临近像元法、三次卷积法。其中最临近像元法速度最快, 如果对图像的边缘要求不是很高的话,最适合使用该方法。三次卷积由于考虑的参考点数太多、运算较复杂等原因, 速度最慢, 但是重采样后图像的灰度效果较好。
每一层影像金字塔都有其分辨率的,比如说放大(无论是拉框放大、还是固定比例放大)、缩小、漫游(此操作不涉及到影像分辨率的改变)计算出进行该操作后所需的影像分辨率及在当前视图范围内会显示的地理坐标范围,然后根据这个分辨率去和已经建好的影像金字塔分辨率匹配,哪层影像金字塔的分辨率最接近就用哪层的图像来显示,并且根据操作后当前视图应该显示的范围,来求取在该层影像金字塔上,应该对应取哪几块,然后取出来画上去就可以了。
金字塔是一种能对栅格影像按逐级降低分辨率的拷贝方式存储的方法。通过选择一个与显示区域相似的分辨率,只需进行少量的查询和少量的计算,从而减少显示时间。
构建方法目前影像金字塔的构建方法有两种:一种是多分辨率的数据源自动构建金字塔;另一种是除了金字塔最底层数据是原始影像数据之外,其他层的影像数据是从底层数据通过采样抽取出来构建的。
从原始影像数据中抽取数据构建金字塔时,通常采用重采样方法构建,形成一个多个分辨率层次。从金字塔的底层到顶层,分辨率越来越低,但是表示的范围却是一致的,可以用一个公式来表示各层的分辨率。设影像数据的原始分辨率为 r0,重采样率为 m,则第 j 层的分辨率 rj= r0×mj,其中重采样率可以是任何大于 1 的整数。
影像金字塔构建的具体方法是把原始影像作为影像金字塔的最底层,定义为 0层,通过对原始影像采用重采样方法,建立起一系列反应不同分辨率的影像,即生成影像的第 1,2,3……层,直至最终建立的影像数据层分辨率满足要求,其中第 0 层即原始影像层分辨率最高,最清晰,经重采样得到的影像分辨率随着金字塔层数的增加分辨率依次降低,数据量也依次减少,但表示的范围却是不变的。如果生成的影像金字塔最顶层的影像是由一个像素构成的话,在不考虑压缩的情况下,建立金字塔后的影像数据将近增加原始目标影像大小的 1/3。
影像金字塔原理的研究及应用概况影像金字塔是以块为单位的一系列图像序列,其实现方法是将原始图像按照一定的压缩比例,将图像抽样生成出一系列图像序列,然后将图像序列按照固定的像素大小分块。分块后的数据按照一定的方式在磁盘上组织成便于系统查找和存取的文件。因此,对构建影像金字塔一般从三个方面考虑:
(1) 图像的分层采样
对图像的分层,一般要考虑数据读取方式和图像采样方法。有学者实现分层采样时,每一层的分层采样都是以原始图像为对象的,分层和分块过程结合在一起,在抽取下一层的某块数据时,将原始图像中属于该块数据范围的数据全部导入内存,然在内存中完成采样,输出该块数据。这种方法最大的缺陷在于,如果图像过大,图像分层过多,越往上层,每一块数据对应的原始数据量以采样率的 2 次方速度增长,数据在原始图像中所占的行数以 2 的倍数增长。这就造成了大的内存占用和数据读取时磁盘磁头移动次数的增加,极有可能造成系统崩溃。
对于图像的采样方法,大部分文献资料所采用的采样比例为 4:1,即将四个像素合成一个像素,同时也不乏 2:1,3:1 等采样比例。采样比例的选择要根据系统应用的需要进行选择。一般不做图像处理,只用于显示的系统,采样比例都为 4:1,这样既可以保证采样时方便计算,也可以方便上下层之间建立父子关系。采样的计算方法,一般有线性插值法,平均值法,最近邻域法等。
(2) 层数据的分块
图像的分块一般要考虑数据读取方式、分块方式和分块大小。对于读取方式,可以每次读取图像层的一行数据,然后将属于该块的数据提取出来。这种方法增加了数据读取次数,减少了内存占用量。也可以一次读取多行数据,然后将属于该块的数据提取出来。这种方法减少了从磁盘读取次数,但是加大了内存占用量。
对于分块方式,目前主要有两种分块方式,一种是带状分块方式。这种方法是将图像数据的若干行作为一个单元形成一个带状。带状条可以顺序的编址并且可以单独地索引。这种划分方法在几种数据格式中已经使用(例如,TIFF 格式)。
一种是块状划分,块状划分的方法是影像数据按照网格划分成小块,图像块通常是方形的,有时也可以是矩形的。目前有的数据格式也支持这种划分方法(例如 TIFF 格式)。相对于带状划分,块状划分更适合图像索引和镶嵌。而且划分后的图像块具有良好的聚集特性。
对于分块大小,图像分块的大小通常取 2 的幂次方,具体的大小在选择时要考虑到操作系统数据存储格式的特点以及内存管理的最小单位。一般采用的分块大小为 128×128、256×256、512×512、124×1024。
(3) 数据的组织方式
获取了分层分块后的数据后,需要对数据按照一定的方式组织,使得数据的获取和查找变得方便容易,很多文献按照四叉树的方式组织数据,但是不能很快地完成数据的存取2。
算法研究概况影像金字塔原理虽然在众多GIS软件中都广泛应用,但是由于其具体的应用环境不同,具体实现的算法也不相同,除了处理速度相对比较慢以外,占用资源大也是一个问题。同时,用于在文件和内存中定义的结构不一样,其实现细节也会不一样。
意义为大的栅格影像建立了金字塔的话,这些影像便能快速进行显示。除了在屏幕上显示外,金字塔还包含了很多其他信息。如果没有金字塔,那么在显示时就要访问整理栅格数据集,然后进行大量计算来选择哪些栅格像元被显示。金字塔是一种能对栅格影像按逐级降低分辨率的拷贝方式存储的方法。通过选择一个与显示区域相似的分辨率,只需进行少量的查询和少量的计算,从而减少显示时间。