首页> 中国专利> 一种新的单景影像瓦片数据组织方法

一种新的单景影像瓦片数据组织方法

摘要

本发明提供一种新的单景影像瓦片数据组织方式,特别是着重于将每个瓦片数据连续存储,减少瓦片数据读取时对影像数据的重采样和数据读取位置的随机性,提高瓦片数据的读取效率,从而极大地降低地图瓦片渲染的时间消耗,保证海量数据的实时动态渲染。该组织方式首先选择一种全球地理参考格网多层次划分单景影像,并构建影像瓦片数据的四叉树存储结构;然后对每个划分瓦片,读取瓦片地理范围内的影像数据(保留数据的波段数、位深度等原始属性),组成完整的连续的瓦片数据,并将其压缩存储到硬盘文件中;并采用四叉树结构组织影像的多层次瓦片数据,保证瓦片数据的高效检索和读取。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-04-12

    未缴年费专利权终止 IPC(主分类):G06F17/30 授权公告日:20170412 终止日期:20180425 申请日:20130425

    专利权的终止

  • 2017-04-12

    授权

    授权

  • 2013-11-06

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20130425

    实质审查的生效

  • 2013-10-02

    公开

    公开

说明书

技术领域

本发明属于海量遥感影像可视化技术领域,特别是涉及一种新的单景影像瓦片数据的组织方法,本发明可极大地提高单景影像瓦片数据的读取性能,适用海量遥感影像的实时动态渲染。 

背景技术

目前,基于预生成思想的地图瓦片数据组织方法是主流三维GIS软件(如Google Earth、World Wind、Skyline和GeoGlobe等)提高影像可视化响应速度的重要技术手段。其关键在于影像可视化服务器预处理要显示的海量影像数据,生成覆盖全球地表的多层次地图瓦片,并存储在四叉树结构或分层文件夹中;当可视化服务器接收到客户端地图瓦片请求时,能够快速检索并读取对应的瓦片数据,实现快速响应。但这种预生成全球地图瓦片的方法,严重降低影像数据配置和分析(如视觉增强、波段组合、数据叠合顺序等)的灵活性,难以满足专业化的应用需求。相关文献有:Google Earth与专业GIS的区别,http://www.cnblogs.com/GISmanWJ/archive/2009/03/21/1418162.html;Google Earth和World Wind比较研究,http://wenku.baidu.com/view/246b7f20dd36a32d737581d3.html;Google Earth&Google Map数据存储、管理、表现及开发机制,http://earth.google.com/intl/zh-CN/userguide/v5/ug_toc.html。 

若要满足上述灵活的专业配置分析,可视化服务需实现实时动态的地图瓦片渲染技术;当接收到客户端的地图瓦片请求时,可视化服务首先根据客户端的配置检索出瓦片范围的影像文件,然后读取各个文件中对应瓦片区域的数据,最后进行多层渲染。由于遥感影像数据多分辨率、多时相、多波段、海量和复杂的特点,上述方法中多个影像瓦片数据的检索和读取非常耗时(磁盘IO频繁),极大地降低了地图瓦片的渲染速度,难以实现可视效果的实时配置调整。分析和测试表明:在单个地图瓦片渲染过程中,多个影像瓦片数据的读取占用了大部分的瓦片渲染时间。如何提高单景影像中瓦片数据的读取效率成为实时动态地图瓦片渲染的关键。相关文献有:刘镇.遥感影像瓦片金字塔模型.科技创新导报,2008,06:199-200;贠建明,汪汇兵,唐新明.多源影像数据库金字塔结构的研究与实践.测绘科学,2011,36(4):53-55;程承旗,张恩东,万元嵬,宋树华.遥感影像剖分金字塔研究.地理与地理信息科学,2010,26(1):19-22. 

纵观单景遥感影像的渲染,主流的商用软件(如ArcMap和Erdas Image)大都采用附属金 字塔文件提高影像的读取效率,进而提高渲染效率。附属金字塔文件有效地降低了文件的大小,提高了数据读取中影像数据重采样的速度;然而当读取的数据位于两层金字塔之间时,不可避免的数据重采样依然未能有效降低数据的读取时间,不能满足实时动态的渲染需求。相关文献有:ERDAS IMAGINE.img Files,http://home.gdal.org/projects/imagine/iau_docu0.pdf。 

本文在分析海量遥感影像可视化效率瓶颈的基础上,提出了一种新的单景影像瓦片数据组织方法,极大地提高了瓦片数据的读取效率,能够满足实时动态的渲染需求。 

发明内容

针对海量遥感影像实时动态渲染中,读取单景影像瓦片数据耗时较多的问题,本发明提供一种新的单景影像瓦片数据组织方式,特别是着重于将单景影像的瓦片数据连续存储,避免读取瓦片数据时对影像的重采样并减少数据读取位置的随机跳动,提高瓦片数据的读取效率,从而极大地降低地图瓦片渲染的时间消耗,保证海量数据的实时动态渲染。 

本发明的思路为:选择一种全球地理参考格网对单景影像的地理范围进行多层次划分,形成影像瓦片数据的四叉树结构;对每一个划分瓦片,读取瓦片地理范围内的影像数据(保留影像数据的波段数、位深度等原始属性),组成完整的连续的内存数据,并将其压缩存储到硬盘文件(本发明称渲染瓦片金字塔文件)中;四叉树结构中每个瓦片均记录有其四个子节点的位置信息,便于瓦片数据的高效检索和读取。 

本发明的技术方案提供了单景影像瓦片数据的四叉树组织及瓦片数据的快速检索和读取方法,其特征在于包括以下的实现步骤: 

1)选定一种全球地理参考格网对单景影像进行多层次瓦片划分,并建立多层次瓦片的四叉树存储结构; 

2)建立单景影像瓦片集合的物理存储文件格式,包括文件头和瓦片数据块两大部分; 

3)文件头存储影像基本信息和瓦片的公共信息,包括原始影像的地理范围和分辨率、瓦片的最大深度和最小深度、瓦片的长度和宽度、原始影像的波段数和数据类型、一个或多个根节点在文件中的位置; 

4)瓦片数据块存储瓦片在地理参考格网中唯一的地理编码、四个子节点的位置、瓦片数据的原始长度和压缩长度、瓦片压缩数据和瓦片校验码; 

5)设计和实现从渲染瓦片金字塔文件中快速检索和读取瓦片数据。 

以上实现步骤的特征在于: 

在步骤1)中需要确定全球格网划分的层次范围及瓦片的长度和宽度(单位像素),并在此基础上计算各个层次所对应的像素地理长度。 

在步骤3)中需要根据原始影像的空间分辨率、影像的长度和宽度(单位像素)计算瓦片数据的最大深度和最小深度,并确定一个或多个根节点位置的存储顺序。 

在步骤4)中需要由瓦片地理编码计算瓦片的地理范围,根据头文件中的瓦片长度和宽度、波段数和数据类型、瓦片地理范围读取影像数据,并压缩存储;并确定四个子节点位置的存储顺序。 

在步骤5)中根据瓦片地理编码,计算瓦片的深度检索路径,快速检索瓦片;并解压瓦片数据。 

本发明的渲染瓦片金字塔结构同现有金字塔结构相比具有如下特点:无损压缩瓦片数据,保留原始数据属性的同时减少文件的存储空间;连续地存储完整的瓦片数据,避免读取瓦片数据时对影像的重采样并减少数据读取位置的随机跳动;采用四叉树结构组织瓦片数据,提高了瓦片的检索和读取速度。上述特点极大地提高了影像瓦片数据的读取性能,能够用于海量遥感影像的实时动态渲染。 

附图说明

图1是影像瓦片数据的组织和读取流程 

图2是全球地理参考格网对影像地理范围的划分 

图3是影像瓦片四叉树组织结构 

图4是渲染瓦片金字塔文件的存储格式 

图5是渲染瓦片金字塔文件的瓦片读取 

图6是渲染瓦片金字塔文件的瓦片读取效率同传统金字塔瓦片读取效率对比 

具体实施方式

图1示意了单景影像的瓦片数据的组织和读取流程。主要包括:(1)单景影像的多层次划分,(2)瓦片数据的四叉树组织,(3)瓦片数据的快速读取等三个部分。 

图2是全球地理参考格网对影像地理范围的划分示意图。全球地理参考格网可以采用经纬度格网和Web Mercator格网,本发明以经纬度格网为例,具体介绍实施过程。标准经纬度格网以256*256的正方形瓦片划分全球地理范围(经度[-180~180],纬度[90~-90]),形成经向4块、纬向2块的0层格网。这种划分方式,在0层生成8个瓦片根节点;理论上一景足够大的影像将有8个四叉树存储其多层次瓦片,但实际影像的地理范围有限,大多影像只有1个四叉树瓦片结构(如图2所示),其余瓦片结构为空。 

在0层全球经纬度格网上具有4*2个瓦片,表达为1024*512(单位像素)大小的图像,因此每个像素对应39135.09m*39135.09m的地理范围(WGS84地理参考系统的地球赤道长度为 40074335.7091m),依次四等分得到各层像素代表的地理长度,如下表所示: 

层级 像素长度(m) 层级 像素长度(m) 层级 像素长度(m) 层级 像素长度(m) 0 39135.09 6 611.49 12 9.55 18 0.15 1 19567.55 7 305.74 13 4.75 19 0.0746 2 9783.77 8 152.87 14 2.39 20 0.0373 3 4891.89 9 76.44 15 1.19 21 0.0187 4 2445.94 10 38.22 16 0.60 22 0.0093 5 1222.97 11 19.11 17 0.30 23 0.00466

上述划分方式能够有效地多层次地划分任一景遥感影像,并建立相应的四叉树瓦片存储结构。图2右半部分是单景影像的多层格网划分示意,其中黑色虚线外框为影像的地理范围,粗线组成地理参考的n层格网,粗线和细线共同组成地理参考的n+1层格网,虚线划分n+1层格网形成地理参考的n+2层格网... 

如上述,地理参考格网对影像的多层次划分构成了影像瓦片数据的四叉树存储结构,如图3影像瓦片四叉树组织结构所示。0层为四叉树的根节点,记录影像0层瓦片的相关信息;向下依次是1层、2层...最小层、中间层、最大层。 

最大层:当影像的空间分辨率同全球地理参考格网中某层级的像素长度相当时的格网层级数;如TM5多光谱影像的空间分辨率为30m对应像素长度为19.11m的11层级。 

最小层:当影像缩小到其大小小于显示阈值(试验取64*64)时影像将不再显示,也无需构建该层及以下各层的瓦片数据,此时影像对应的格网层次;如TM5多光谱影像的大小为7500*7500像素,在4层级达到最小层,此时大小为59*59像素。 

影像的最大层和最小层的计算公式如下: 

maxLel=n,wherePLn-1<SR<PLnminLel=maxLel-log2npixel/64

其中,PLn为n层的像素长度,npixel为影像的宽度(单位像素),maxLel和minLel分别为最大层和最小层。 

影像在0层和最小层之间的各层瓦片节点本身没有瓦片数据(瓦片数据为空),仅仅记录瓦片的地理编码和其子节点的位置(用于快速检索);在最小层和最大层之间(包括最小层和最大层),瓦片存储了自身的瓦片数据、瓦片的地理编码及其4个子节点的位置。 

对影像数据进行多层次的经纬网格划分,生成影像的一个或多个瓦片四叉树,并将其存储为瓦片数据文件(渲染瓦片金字塔文件)。图4是渲染瓦片金字塔文件的物理存储格式;文件由文件头和多个数据块构成。 

文件头存储以下文件信息: 

文件标示:保存渲染瓦片金字塔文件的标识符,固定数据为RTP; 

原始影像分辨率:保存所对应的原始影像的空间分辨率; 

原始影像地理范围:保存所对应的原始影像的空间地理范围; 

瓦片最小层:保存文件中最小的瓦片层次; 

瓦片最大层:保存文件中最大的瓦片层次; 

瓦片宽度和高度:保存文件中瓦片的宽度和高度(单位像素); 

原始影像波段数:保存所对应的原始影像的波段数目; 

原始影像数据类型:保存所对应的原始影像的数据类型(像素位深度); 

0层8个瓦片位置:保存文件中8个根节点瓦片的位置,8个根节点位置的保存顺序如图2左半部分所示,当某一个根节点缺少瓦片及其子节点瓦片时,对应的位置为0; 

文件头结构的C++代码如下: 

数据块存储如下瓦片信息: 

格网划分地理编码:保存该瓦片的唯一标识符,地理编码由经向编码X、纬向编码Y和层次深度编码D三部分组成,分别记录瓦片的经向位置、纬向位置和深度; 

瓦片数据原始长度:保存该瓦片数据的固有长度,当该瓦片缺少瓦片数据时置为0; 

瓦片数据压缩长度:保存该瓦片数据压缩后的长度,当该瓦片缺少瓦片数据时置为0; 

压缩瓦片数据:保存压缩后的瓦片数据,当该瓦片缺少瓦片数据时,略去该字段; 

四个子瓦片的位置:保存其四个子节点瓦片的位置,四个子节点位置的保存顺序如图2右半部分所示,当该瓦片的某一个子节点缺失时,对应的位置为0; 

校验码:保存上述瓦片信息的校验位,用于检测瓦片的有效性;取上述各个字段值的最小byte位相加,模256得到该校验码。 

数据块结构的C++代码如下: 

上述文件结构存储了影像的多层次瓦片数据,同时存储多层次瓦片间的所属关系用于快速检索。当要读取文件中某一瓦片数据时,执行图5渲染瓦片金字塔文件的瓦片数据读取流程,取出相应的瓦片数据。 

瓦片数据检索和读取流程如下:①计算瓦片所属根节点(n=0层节点)的位置pos[0];②读取pos[n]位置处的瓦片信息Tile,如果DD=n,跳转③;如果DD!=n,n=n+1并由Tile查找n层下一层子节点的位置pos[n],跳转②;③读取Tile瓦片的瓦片数据,并解压数据;④返回瓦片数据并结束。其中几个关键计算公式如下: 

pos[0]=Root[(YY>>DD)*4+(XX>>DD)]pos[n]=SonOff[((YY>>(DD-n))%2)*2+((XX>>(DD-n))%2)]

其中,Root[]表示8个根节点的位置数组,其记录先后顺序如图2左半边所示;SonOff[]表示节点的4个子节点的位置数组,其记录先后顺序如图2右半边所示。 

上述从渲染瓦片金字塔文件中检索瓦片数据的方法是常量时间复杂度,仅同四叉树的层深有关。在检索流程的①②步中仅仅读取了瓦片的基本信息,并没有读取和解压瓦片数据;瓦片数据的读取和解压仅发生在③步。瓦片基本信息同瓦片数据的读取解压操作间的分离, 有效地减少瓦片数据的检索时间,进一步提高渲染瓦片金字塔文件的性能。 

渲染瓦片金字塔文件保留着同原始影像文件相一致的影像波段、影像数据极其类型、影像地理范围的属性;同时渲染瓦片金字塔文件的瓦片数据连续存储、瓦片数据高效检索提供了较高的读取性能。瓦片渲染阶段,由于金字塔文件的瓦片波段数、数据位深度、瓦片长度和宽度均已知(记录在文件头),在解压的瓦片数据段中取出相应的波段数据渲染即可。同时在影像瓦片数据的构建,瓦片数据的文件写入和瓦片数据的读取中,都保留着原始影像完整的数据信息,动态调整渲染的波段组合也将是急速的。 

图6是渲染瓦片金字塔瓦片数据读取同传统金字塔瓦片数据读取时间效率的对比。对比在PC平台上实现,采用TM5遥感影像;随机选取100个影像瓦片,并测试检索并读取各个瓦片数据的时间(单位ms)。其中横轴表示选择的100个对比样本,纵轴表示读取瓦片所需要的时间,“传统”样本点指从传统金字塔文件中读取一个瓦片所需时间,“本发明”样本点指从渲染瓦片金字塔文件中读取一个瓦片所需的时间。统计分析表明:“传统”样本点的平均时间为300ms,“本发明”样本点的平均时间为3ms,读取性能提高显著。 

本发明以经纬度格网划分为例,具体实施了发明的方法。本发明所属技术领域的技术人员可以根据具体需要而采用Web Mercator格网对本发明的方法进行实施,但其并不会偏离本发明的方法或超越所附权利要求书的定义范围。本发明所提及的方法极大地提高单景遥感影像瓦片数据的读取性能,可广泛应用于海量遥感影像的实时动态渲染中。 

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号