发明名称 一种高性能GML流压缩方法
摘要 本发明属于信息技术中的空间信息获取与处理技术领域,具体是一种GML流压缩方法—GSPress。它在只扫描GML文档一次且不利用GML文件的模式或DTD的情况下,将GML文档的结构和数据分离后分别进行压缩。对于GML文档中的结构部分采用自适应LZ77方法进行压缩;对于文档中的坐标数据则利用增量压缩的方法进行处理。实验结果表明,GSPress可以在压缩性能和压缩效率两个方面上取得较好的权衡,是一种高效的GML流压缩算法。
申请公布号 CN101847998A 申请公布日期 2010.09.29
申请号 CN201010148380.5 申请日期 2010.04.15
申请人 同济大学;复旦大学 发明人 关佶红;于一男;周水庚;朱付保
分类号 H03M7/40(2006.01)I;G06F17/30(2006.01)I 主分类号 H03M7/40(2006.01)I
代理机构 上海正旦专利代理有限公司 31200 代理人 陆飞;盛志范
主权项 本发明为一种GML流压缩方法,其特征在于具体步骤如下:(1)对于给定的GML文件,首先利用SAX解析GML文档,解析结果是一系列事件标记,根据不同的解析结果得到4个不同的数据流:结构数据流、属性数据流、坐标数据流和文本数据流;(2)针对不同的数据流采用不同的压缩算法:对于结构数据流,采用自适应的基于词的LZ77算法进行压缩,即在压缩算法中对结构数据利用自适应方法建立压缩字典,压缩字典初始化为空,遇到新的标签则放入字典,在输出流中输出原值;遇到出现过的标签则先缓存它,继续读取下一个标签,如果此标签和缓存组成的集合不在字典中或者此标签为新出现的话,则输出缓存中标签集合在字典中的索引,将此标签放入缓存;对于属性数据流,尝试寻找相邻属性间的最大的公共子字符串;如果此字符串存在,也将其放入字典,利用相应的索引值代替这个最大公共子字符串;如果不存在,保留原值;此方法利用相同标签下相同属性值之间的相关性,取得属性和第一次遇到的属性间的最大公共子字符串,将其存入字典,利用其在字典中的索引代替此字符串达到压缩的目的;对于坐标数据流我们采用增量压缩的方法进行压缩,该方法对于GML文档中的坐标数据,利用存储相邻坐标之间的差值而不是存储原坐标值,向压缩数据流中输出相邻坐标整数之间的差值,输出坐标小数部分的原值;对于文本数据流,将原始值输入到压缩数据流中。(3)利用上述不同的压缩算法进行压缩后得到不同的压缩流,最后合并成统一的压缩流后利用Gzip压缩;此压缩流在网络上进行传输,在解压缩方得到压缩的数据流后同时进行解压缩,根据数据流中的不同部分利用相对应的解压缩方法,最后组合成原始GML文件。
地址 200433 上海市四平路1239号