APP下载

一种影像快速加载及显示策略

2017-07-24

林业调查规划 2017年3期
关键词:数据量海量金字塔

师 静

(贵州省林业调查规划院,贵州 贵阳 550002)

一种影像快速加载及显示策略

师 静

(贵州省林业调查规划院,贵州 贵阳 550002)

目前普遍采用构建影像金字塔存储模型来解决遥感影像数据的加载及显示时存在的问题,但仅使用构建金字塔模型的策略在效率及系统鲁棒性等方面存在着诸多不足。结合影像动态提取技术和影像金字塔技术提出了一种灵活高效的影像加载及显示策略,充分利用系统内存空间,减少不必要的I/O操作,在保证系统性能的前提下大大提升影像加载与显示的用户体验。最后,利用C#语言开发程序Fload实现该策略,并与ESRI公司的ArcMap软件在执行效率、程序性能等方面进行了综合比较。结果表明,该影像加载及显示策略在性能上表现良好。

影像动态提取;影像金字塔结构;影像加载;影像显示;影像数据;ArcMap软件

海量影像数据是国家空间数据基础与数字城市建设的重要数据基础。随着数据获取的技术手段不断发展,地理产品资源也越来越丰富,影像的数据量也越来越大,从MB到GB,甚至更大。虽然影像数据的管理方法也越来越多样,但是基于文件模式的影像数据管理与共享仍然是目前主要的模式。对于大数据量的影像,直接将影像文件加载到系统内存的传统方案必然会造成系统内存溢出、程序假死等各种问题,严重影响影像处理过程与用户体验。因此,目前在显示与处理影像文件前,通常会对影像完成构建影像金字塔的预处理[1-3],以避免出现加载全图影像造成加载缓慢,内存溢出的问题。然而,对于数据量很大的影像文件来说,即使构建了影像金字塔结构,仍然会出现位于金字塔较底层的影像的数据量过大而影响影像加载效率的问题。因此,如何快速有效地加载和显示海量影像数据成为一个亟待解决的问题。本文在研究传统方案的基础上,构建影像金字塔技术,并利用影像动态提取技术获得涉及的影像文件(包含金字塔文件),实现大数据量影像文件的快速加载和显示。

1 关键技术

1.1 影像金字塔结构

影像金字塔技术对于海量影像数据的处理已是一项不可或缺的预处理技术[4],根据用户的需求将原始影像以不同比例尺进行存储,形成比例尺由大到小、数据量由小到大的金字塔结构。本文采用传统的金字塔技术为影像文件构建相应的影像金字塔结构。在进行影像加载与显示时,依据当前地图的显示比例尺确定适合的影像分辨率级别,调用相应金字塔级别的影像数据。

影像金字塔是分层数据结构的组织形式[5],是一组影像序列{T0, T1, …, Tp, …, Tm-1, Tm},其中m表示金字塔级数,Tm为分辨率最小的顶层影像,T0为原始影像本身。影像采样粒度指每一次重采样顺着行方向需要处理的像元数,应根据实际的需求确定金字塔的级数及采样粒度。典型的影像金字塔结构如图1所示,从以原始影像为基础金字塔底层(0级)开始,行列方向各4个像元(图中的采样粒度为4)经过重采样合成新像元依次进行,直到顶层金字塔数据[6]。影像金字塔从底层到顶层分辨率越来越低,数据量越来越小。

主要的影像重采样的方法有最邻近距离法、双线性插值法和三次卷积法。其中最邻近距离法的计算速度最快,但容易破坏影像边缘;双线性插值法显示效果较最邻近距离法更优,但计算速度相对较慢;三次卷积法的显示效果在三者中最好,但是计算速度是最慢的。因为本文仅利用重新采样后的影像进行加载与显示,因此对于精度要求并不高,却要求重新采样的计算速度快,因此最终选择采样速度最快的最邻近距离法对金字塔文件进行重采样。

1.2 影像动态提取技术

影像动态提取是通过从原始影像中提取相关信息,如头文件信息、影像数据信息等,并以此为基础构建新的影像的过程。本文利用影像动态提取技术,根据当前地图视图的显示地理范围和影像的地理参数确定当前显示的影像的行列号,从文件流中获取该行列相应的影像数据;结合原始影像中需形成一幅单独影像所必备的参数信息,组合成一幅新的提取后影像。利用影像动态提取技术,可以有效地保证大影像文件加载与显示过程中的准确性与稳定性。当前视图区域的影像数据的来源存在3种情况:

图1 影像金字塔结构Fig.1 Structure of image pyramids

1)影像数据位于单个数据条中,此时只需要从数据条中逐行读取数据。每行从起始列起,读取当前视图区域的宽度(以像素为单位)大小的像元数,组成待提取区域的影像数据。

2)影像数据位于多个数据条中,此时需要从多数据条中逐条读取数据。首先确定起始数据条的起始行编号,从起始行开始到该数据条止,数据加载方式与情况(1)相同;接着从第二条的第一行开始读取数据,数据加载与上一步骤相同,以此类推,完成所有相关影像数据的读取。

3)部分影像数据超出影像范围,此时就需要截取影像范围内的数据,即假设影像的起始行小于0,则从第0行开始加载影像,起始列、终止行及终止列的情况与此类似,需保证待提取的区域影像范围不超出影像的整体范围。

2 快速加载与显示策略

本文通过构建影像金字塔解决地图缩小时只读取分辨率较小的影像,避免出现加载原始全图大数据量影像造成加载缓慢,内存溢出的问题。同时结合影像动态提取技术,提取当前地图可视范围内的部分临时影像文件,实现影像的快速加载与显示,解决因原始影像数据量相当大,即使构建金字塔结构后,仍然出现位于金字塔较底层影像数据量过大的问题。

海量影像快速加载及显示策略如图2所示。

图2 海量影像加载及显示策略Fig.2 Strategy of massive image loading and display

当影像首次加载时,先构建影像金字塔结构,当显示影像时需根据不同的缩放比例尺调用相应的金字塔数据,并应用图像分割技术只从原始数据流中截取显示范围内的影像流信息,再将该流信息结合原始影像参数信息在内存中生成新的临时影像并显示在地图中。在进行加载与显示过程中,还需要着重考虑以下几个关键问题,以满足金字塔文件的计算速度以及内存控制的需要。

1) 金字塔级数确定:一般情况下,金字塔的级数越多,连续缩放的效果也相应越好,显示的影像也就越清晰,但同时数据冗余程度也越高,金字塔文件也需占用越多的空间。因此,在构建影像金字塔结构时,应综合考虑影像大小、采样粒度等多种因素,以确定合适的金字塔级数,在保证影像显示清晰度的基础上提高构建速度,力求实现二者的最佳配置。

2) 待显数据确定:在地图缩放的过程中,会涉及到如何确定当前比例尺下金字塔级别的问题。本文根据当前比例尺与全图比例尺的情况,结合金字塔的采样粒度明确需要显示的金字塔级别,以平衡影像的清晰度和显示速度。

3 算法实现与对比测试

3.1 构建影像金字塔

首先,依据影像大小确定金字塔文件的采样粒度与级数,写入一些金字塔文件的相关信息;其次,读入不大于缓存大小的影像数据流。

为了保证不会出现断行读取数据的情况,本文以行为最小单位读取多行的数据流;根据采样粒度,从缓存中读取指定行列的影像数据,采用最邻近距离法计算新的像元值;将新像元值写入缓存中;重复该步骤,完成所有级别的影像数据的写入;最后,确保缓存中剩余的数据写入文件中,结束。

3.2 影像动态显示

首先,通过当前地图的显示范围以及影像的地理信息确定显示范围内影像的行列;其次,根据当前地图显示比例尺确定是否需要使用金字塔文件,若需要使用则调用相应的金字塔文件并加载相应级别的影像数据,否则直接加载原影像的数据流;从原始数据流或金字塔数据流中读取待显示的影像行列的数据;建立内存流对象,写入该部分的数据以及相关对象信息,最后,在地图中加载该部分影像,结束。

3.3 对比测试3.3.1 测试数据

贵阳市的影像(1,886,513,752 字节, 20 000×20 000 像素,TIFF影像格式)。

3.3.2 测试过程

分别利用ArcMap和FLoad打开影像,从构建金字塔的耗时、全图显示影像耗时、放大缩小过程中是否延时、同时加载多幅影像内存占用情况与耗时4个方面进行比较。

3.3.3 对比结果

测试结果如表1所示。从表1中可以看出,二者在加载海量影像时表现相当,ArcMap略延时,同时加载多幅影像时的内存占用方面甚至稍占上风。构建金字塔ArcMap使用了更少的时间,但根据在逐级放大的过程中出现了延时的现象,原因估计是ArcMap构建的金字塔级数较少。

表1 算法性能比较Tab.1 Comparison of algorithm performance

4 结论

本文使用影像金字塔、数据缓存和动态提取技术,提出一种快速加载和显示大数据量的影像文件的策略,从而提高了影像加载的速度,缩短了等待的时间,提升用户体验感受。实验测试结果表明,该策略在效率,内存占用和可操作性上与ArcMap平台性能相当,在用户体验上更具优势。在下一步的研究中,试图将该策略应用于Web数据服务发布过程中,从Web服务的角度开始研究工作。

[1] 许自舟,孙淑艳,梁斌,等. ArcGIS中海量影像数据储存与发布技术[J].海洋环境科学, 2014(1):99-104.

[2] 向和平.基于GIS的遥感影像快速浏览系统的设计与实现[D].苏州:苏州大学,2012.

[3] 马庆华, RS-Globe系统中空间数据调度和压缩算法研究[D].开封:河南大学,2009.

[4] 高峥, 海量遥感影像快速生成金字塔算法的研究与实现[D].上海:华东师范大学,2012.

[5] 蒋红成, 赵忠明,朱海青.用分块调度置换算法快速浏览SAR带状海量影像[J].计算机工程与应用, 2004(28):50-51,194.

[6] 胡伟忠, 刘南, 刘仁义.基于内存映射文件技术的海量影像数据快速读取方法[J]. 计算机应用研究, 2005(2):111-112,107.

Strategy of Image Rapid Loading and Display

SHI Jing

(Guizhou Institute of Forestry Inventory and Planning, Guiyang 550002, China)

At present image pyramids were built widely to solve some problems emerged in the process of remote sensing image data loading and display. However, only using the strategy with pyramids model was deficient in the efficiency, system robustness, and so on. This paper proposed a flexible and efficient image loading and display strategy with image dynamic extraction technology and image pyramid technology, by which the system memory space was be used fully, unnecessary I / O operations were reduced, user experience of image loading and displaying with good system performance was improved greatly. Based on the comprehensive comparison of execution efficiency and program performance between the ESRI′s ArcMap software and FLoad, a program with C # language implementing the proposed strategy, the result was found that the proposed strategy achieved a good performance.

image dynamic extraction;structure of image pyramids; image loading; image display; image data; ArcMap software

2017-03-27.

师 静(1984-),女,河南项城人,工程师.从事林业调查规划工作.

10.3969/j.issn.1671-3168.2017.03.001

S771.8;TP751

A

1671-3168(2017)03-0001-03

猜你喜欢

数据量海量金字塔
“金字塔”
一种傅里叶域海量数据高速谱聚类方法
基于大数据量的初至层析成像算法优化
Great Vacation Places
高刷新率不容易显示器需求与接口标准带宽
宽带信号采集与大数据量传输系统设计与研究
海量快递垃圾正在“围城”——“绿色快递”势在必行
海上有座“金字塔”
金字塔是用金子造的吗
一个图形所蕴含的“海量”巧题