数字压缩技术在改善空间数据网络传输的研究
2013-09-22王刚
王刚
(1.天津市测绘院,天津 300381; 2.天津金宇信息技术有限公司,天津 300384)
1 引言
随着网络软硬件技术的不断发展与应用,互联网的传输效率得到了很大的提高,人们日常的学习、生活和工作也与之紧密联系在一起,通过它全世界范围内各个计算机就可以完成信息的通讯与交换,网络信息的交换实质上就是数据的网络传输,虽然现在网络速度有了很大的改善,但仍无法满足现在应用的需要,GIS应用方面也不例外,在当前WebGIS应用领域,同样也面临着空间数据高效率传输的问题。一般而言,网络数据传输所耗费时间取决于两个方面,一方面网络带宽大小;另外一方面就是数据量的大小。对于前者主要取决于网络通讯基础设施建设方面的内容,在此不作具体深入的探讨。
当前,金字塔模型下的地图瓦片技术的应用较好地减少了地图数据网络传输冗余性问题,这种技术通过将地图按照一定规则输出成固定大小的图片,服务器端根据客户端用户地图窗口的大小,将该区域包含的地图图片块传输到客户端并显示出来。这种按需传输的思想减少了传输地图数据量,大大地缩短了地图传输与等待的时间,这也使得WebGIS在各个行业和部门中的应用越来越广泛。但随着应用的不断深入,我们也面临着传输的数据量问题,具体而言就是如何通过压缩来减少传输中地图图片块和矢量数据的数据量。
本文主要探讨的是在WebGIS应用中,基于一定的网络环境下如何对空间数据进行合理的组织与压缩,从而大大提高空间数据的传输效率,改善GIS应用的用户体验。
2 WebGIS应用系统结构
当前,WebGIS应用系统从应用角度上可以由客户端层、服务器端层(WebGIS服务器层和GIS应用服务器层)以及数据存储层(空间数据存储)等多层结构组成。其中客户端层主要有两种方式,一种是浏览器,另外一种就是GIS软件开发商提供的客户端软件。服务器端层则主要是指WebGIS功能模块的服务接口,既可以根据用户需求开发,也可以借助专业的GIS例如ArcGIS Server来部署相关的服务。数据存储层顾名思义就是地图瓦片数据和矢量数据集存储的数据库,其结构图如图1所示。
图1 WebGIS应用系统结构图
3 地图瓦片的压缩策略
众所周知,传统的GIS系统在地图图形表现方面远不如采用地图制图技术所表达的效果,尽管制图和GIS研究者共同致力于解决这一问题,但由于空间数据的多样性、复杂性以及动态性,使得很多问题无法通过现有的技术去解决,同时GIS在网络应用中也面临着传输效率差的问题,随着图像分块网络传输技的成熟和多级影像金字塔模型[3]应用,地图瓦片技术逐步成为当前实现WebGIS应用的主流技术。
图2 多级影像金字塔模型图
如图2中,地图瓦片技术其实就是依照一定比例尺间隔将地图按照一定大小(一般256×256)输出成地图图片,例如上图中第0层输出成4张256×256大小图片,第1层则为16张……,这样形成了不同比例尺下数目众多的地图图片。尽管相比原始数据而言,单个地图图片尺寸较小,一般都在50 K以内,但对于客户端以多个地图图片下载并拼接而成的WebGIS应用,同时调用的图片数过多也增加了传输的数据量,因此我们有必要对单个地图图片数据进行压缩处理,减少其文件大小。地图图片文件的尺寸主要与图片的格式、冗余信息以及压缩比等因素有关,本人在论文[5]中从图片效果、大小等通过实验分析了GIF、JPG、PNG三种文件格式,总结出对于矢量地图图片应该选用PNG格式,而对于影像等色彩丰富的采用JPG文件格式,从而保证一定图片显示效果下使得文件尺寸较小。在此基础上我们还需对PNG、JPG文件再进行压缩处理。
3.1 无损压缩剔除冗余数据
对于PNG文件采取的压缩策略就是剔除冗余信息数据,分析PNG文件格式我们知道PNG数据块(Chunk)由关键数据块(critical chunk)和辅助数据块(ancillary chunks)两部分组成,其中关键数据块定义了 4个标准数据块(IHDR,PLTE,IDAT,IEND),这是每个PNG文件所必须包含的。辅助块主要由bKGD、cHRM、gAMA、hIST、iCCP、iTXt、pHYs、sBIT、sPLT、sRGB、tEXt、tIME、tRNS、zTXt块组成,这些块是可选的,但是一般PNG文件生成软件中都会生成这些可选块数据,因此我们需要通过对单个PNG文件进行剔除可选块处理,通过无损压缩的方式来减少文件尺寸。
3.2 图像数据有损压缩
对于以JPG格式存储的影像地图瓦片,由于JPG本身就是一种有损压缩的图片文件格式,文件本身也不像PNG文件那样存在可选块数据,因此我们只能采用算法对其进行有损压缩,在图片表现效果和文件大小方面找出一个最佳的压缩比平衡点。
4 矢量数据压缩策略
在网络地理信息系统应用中,矢量数据的传输不再采取传统上将整个矢量文件全部传输到客户端后显示,而是采取按照地图显示的范围,向服务器发送区域内数据请求,服务器端通过计算后将相应的数据传输到客户端,传输的内容主要是坐标和属性信息,数据的格式也不在采取二进制格式,而是采用数字或者加密后的字符串格式,其原因在于减少数据结构的复杂性,缩短客户端数据处理时间,提高应用的效率。
对于采用数字或加密后字符串格式,结合当前互联网上搭建的WebGIS系统,我们可以归纳为两类,一类是自定义的字符串格式,另外一类是采用JSON或者GeoJSON格式。其中后面提到JSON是JavaScript对象表示法,GeoJSON是从JSON发展起来的,是一种地理数据的描述格式,可以描述的对象包括:几何体,要素和要素集,这两个已逐步成为数据传输、交换、共享的规范。为了减少矢量数据的数据量,我们主要采用数据文件压缩和传输中数据压缩。
4.1 相对坐标的数据文件压缩法[1]
为将空间对象的坐标转换为整数,需要将空间数据小数点后部分变为整数,同时为减少存储量,采用取一个数据密集区中心为原点,进行偏移转换,再在此基础上进行压缩。如图3所示:
图3 坐标数据转换与压缩过程图
文中采用整数压缩转换算法,所运用的全部都是移位或比较运算,这两种处理是计算机运算速度最快的,因此完全可以保证压缩的速度。采用这种方法的优点是只需记录一个原点的原始坐标,其余点都可用相对坐标表示,节省了存储空间,缺点是由于几何数据点、线、多边形的存储方式不同,进行偏移量转换时中心点的选取原则不明确。
4.2 GZip网络压缩传输法
GZip 源于 Jean-loup Gailly和 Mark Adler创建[6],最初主要针对UNIX系统中的文件进行压缩,后来逐步推广到其他应用领域,这种编码是建立在HTTP协议上的一种用以改进Web应用性能的网络压缩传输技术,它实际是LZ77编码和Huffman编码的一个组合体,其压缩思想为:针对要压缩的文件,先运用LZ77算法的一个变种来对文件进行压缩处理,对于处理后的结果再用Huffman编码处理,实际上在进行Humffman编码时,GZip压缩机制会根据文件实际情况,动态地选择静态Huffman编码或者动态Huffman编码。
针对网页内容是由大量重复字符组成的这一特点,研究者通过建立GZip编码压缩机制[7]来压缩网页中相关内容,避免重复数据的传输,减少数据的传输。基于HTTP协议上的GZip编码可以分为压缩过程和解压过程两部分,这两个过程分别是由服务器端软件和客户端软件来完成,其中前者可以通过服务器GZip压缩模块配置来实现,至于后者,诸如浏览器IE系列6及以上、Firefox等都内置GZip自动解压功能,也就是说,在服务器上的网页,传输之前先使用Gzip压缩,再传输给客户端,客户端接收之后,由浏览器解压显示,虽然这样稍微占用了一些服务器和客户端的CPU,但是换来的是更高的带宽利用率。其压缩传输流程图如图4所示:
5 实验与分析
结合天地图天津节点实际建设需要,我们从地图瓦片和矢量数据压缩两方面展开了相关的试验。
图4 GZIP压缩传输流程图
5.1 地图瓦片压缩实验
在地图瓦片压缩实验中,我们对于PNG格式的地图瓦片采用上述的压缩策略进行,对于JPG格式的图片,考虑到是有损压缩,压缩前后图像效果主要通过人视觉观察打分统计从而获取采用的压缩比,在这里对于影像图片,推荐采用60%~75%的压缩比进行压缩。
PNG文件压缩,对于天地图天津节点输出的矢量地图图片,采取统计不同大小范围内图片块压缩前后的文件的平均大小,进而求的该范围内的平均压缩比。
实验统计的结果如表1所示。
PNG文件压缩实验结果统计表 表1
根据上面统计表生成的PNG压缩比走向曲线图如图5所示。
从图5压缩比走势图中,我们可以看出,采取本文提到的方法对于 10 KB以下的PNG文件,可以达到50%的压缩比,对于30 KB以内的文件可以减少至少三分之一的尺寸,从而将使压缩后的PNG文件大小控制在20 KB以内。
图5 PNG压缩比走向曲线图
5.2 矢量数据GZip压缩实验
在GZip实验中,我们建立了基于Apache2.11和PHP5.2.9环境下的GZip服务器环境,网络传输的矢量数据采用分块形式组织,实验中按照不同大小范围内的矢量数据通过GZip网络压缩传输后大小的变化,每个范围测试1000次,并计算出该范围的平均压缩比。
实验统计的结果表如表2所示:
矢量数据GZip网络压缩实验结果统计表 表2
根据上面统计表生成的GZip网络压缩比走向曲 线图如图6所示:
从表2和图6中我们可以发现GZip对文本格式的基于数字组成的矢量坐标系统具有较大的压缩比,尽管实时压缩需要占用少量服务器的CPU进行运算,实际上这种影响是相当小的,因此,我们可以将这种网络压缩传输与WebGIS实际应用结合起来。
图6 GZip网络压缩比走向曲线图
6 结论
在天地图天津节点建设中,围绕着如何减少网络传输的数据量,加快网络传输速度这一问题我们开展了大量的实验,并在实际应用中得出如下结论:①剔除PNG地图图片冗余信息,在0 kB~30 kB以内的文件,可以减少约30%~80%的文件尺寸,大大提高服务器的网络传输效率。②在服务器端和客户端,借助于GZip网络压缩技术能在网络传输前,动态地大幅度压缩以字符串存储的矢量数据,可以提高网路传输的效率。
最后,本文需要指出的是,在当前的互联网环境中,我们需要从服务器端和客户端两方面考虑如何提高数据传输效率,需要结合WebGIS实际应用中数据的特点,将并行运算、数据压缩、网络分布式技术等融入在一起,才能大大地改善用户的体验效果。
[1]李青元,刘晓东,曹代勇.WebGIS矢量空间数据压缩方法探讨[J].中国图像图形学报,2001,6(12):1225~1229.
[2]王净,江刚武.无拓扑矢量数据快速压缩算法的研究与实现[J].测绘学报,2003,32(2):173~177.
[3]朱欣焰.面向网络的海量影像空间数据在线分发技术[J].武汉大学学报·信息科学版,2003,28(3):288~293.
[4]李罗文,单甘霖.地图图像数据压缩的设计与实现[J].系统工程与电子技术,1997,(3):62~64.
[5]王刚.顾及要素特征的层次增量分块矢量数据组织与高效网络传输研究[D].武汉:武汉大学博士学位论文,2011.
[6]王平,朱雪梅.计算机互联网络中的数据压缩技术应用[J].计算机工程.2002,28(12):153~154.
[7]宋刚,蒋孟奇,张云泉等.基于共享存储和GZip的并行压缩算法研究[J].计算机工程与设计.2009,4.