一种基于距离信息的栅格瓦块整型数据无损压缩方法与流程

文档序号:30581340发布日期:2022-06-29 12:24阅读:132来源:国知局
1.本发明涉及一种数据无损压缩方法,特别是一种基于距离信息的栅格瓦块整型数据无损压缩方法。
背景技术
::2.随着计算机技术的不断发展,地理信息系统已经广泛应用于智慧城市、测绘工程、城市规划等各类民用领域,也对指挥决策、任务规划等军事应用起到了重要的支撑作用。海量的地理数据是地理信息系统能够得到广泛应用的基础。地理数据包括栅格数据、矢量数据、模型数据等,其中卫星影像、地形高程等栅格类数据,作为较早得到应用的地理数据,有效支撑了数字化地球、仿真战场环境等技术的发展与推广、应用。3.随着卫星航空、测绘遥感、无人机航拍等技术的高速发展,目前在民用、军用领域已经积累了海量的地理栅格数据。栅格数据基本采用四叉树方式存储,其特点是以金字塔瓦片结构分层存储大范围的地理影像、高程数据,不断累积的海量栅格数据需要越来越大的存储空间,数据使用过程中的维护、传输成本也随之增长。同时,地理信息系统配套的存储设备在容量上往往存在一定的限制,如何压缩栅格数据的存储体积、充分利用存储设备以及如何从压缩数据中快速得到原始数据是目前地理信息数据应用亟待解决的问题。技术实现要素:4.发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于距离信息的栅格瓦块整型数据无损压缩方法。5.为了解决上述技术问题,本发明公开了一种基于距离信息的栅格瓦块整型数据无损压缩方法,包括以下步骤:6.步骤1,阈值设定:针对任意层和行下的原始栅格瓦块数据,根据单个数据值所占用的最大比特位数,按照2的幂次方设定数据距离阈值,并扩充距离为0和超过最大比特数可表示的距离的情况,计算得到阈值范围;7.步骤2,距离计算:通过排序算法得到该层和行下所有原始栅格瓦块数据的数据最小值,并计算得到所有瓦块到最小值的最大距离,根据最大距离所属阈值范围的上限得到其对应的比特数;8.步骤3,索引内嵌:针对该层和行下所有的原始栅格瓦块数据,用一个32位整型数据内嵌该原始栅格瓦块数据所对应的列号,结合层号和列号,保留瓦块数据的金字塔索引信息;9.步骤4,移位压缩:针对该层和行下所有的原始栅格瓦块数据,用一个原始栅格瓦块数据的最大比特个数保存压缩比特位数,随后根据原始栅格瓦块中数据的个数依次右移该个数次压缩比特位,用这些压缩比特位保存每个数据与栅格数据最小值的距离信息;所有原始栅格瓦块数据压缩后的数据拼装形成该层和行下原始栅格瓦块数据的无损压缩数据,最后在该压缩数据最前面用一个原始栅格瓦块数据的最大比特个数保存栅格数据最小值;10.步骤5,数据解压:通过压缩数据的内嵌金字塔索引信息,即该压缩数据的层号、行号和列号,在无需额外生成索引文件的情况下快速解压得到栅格瓦块数据的所有原始数据。11.本发明步骤1中,计算得到阈值范围,包括以下步骤:12.步骤1-1,标注瓦块数据最大比特位数;13.步骤1-2,设定阈值;14.步骤1-3,设定阈值的范围。15.本发明步骤1-1中,选取任意层和行下的原始栅格瓦块数据,并标注该瓦块数据最大比特位数为b。16.本发明步骤1-2中,阈值f(b)设定为:17.f(b)=2b+β18.其中,b∈{1,2,4,8,…},β=-1,b为保存栅格数据距离信息的比特位数,标记b=αn,即α的n次方,其中0≤n≤θ,θ为n可取的最大值,θ与具体的栅格瓦块数据有关,且n为整数,取α=2,αθ+1=b。19.本发明步骤1-3中,设定阈值的各个比特位数范围段f方法如下:[0020][0021]扩充距离为0和超过最大比特数可表示距离的情况下,各个阈值组合形成距离的范围,简称阈值范围f'为:[0022][0023]本发明步骤2中,层和行下栅格瓦块数据的最大距离为:[0024][0025]其中,为该栅格瓦块数据中的最大值,hmin为该层和行下所有栅格瓦块数据的最小值;该瓦块数据其余数据到最小值的距离为:[0026][0027]其中,k表示瓦块中其余任意一个整形数据的索引,且有0《k≤(etile×etile),etile为栅格瓦块边长,且[0028]根据最大距离所属阈值范围得到该瓦块用于移位压缩的压缩比特位数mtile为:[0029][0030]其中,表示栅格瓦块数据的最大距离已超出最大阈值范围,此时不进行压缩;当时,根据阈值范围的上限得到压缩比特位数得到压缩比特位数即此时mtile=b。[0031]本发明步骤3中,用一个32位整型数据标记为c,保存栅格瓦块数据所对应的列号,结合栅格瓦块所在的l层r行,形成对应瓦块的金字塔索引信息l层r行c列。[0032]本发明步骤4中,栅格瓦块压缩比特位数为mtabletλ,瓦块中每个数据与最小值的距离信息为λ表示该层和行下最后一个栅格瓦块的索引,其中0《λ《c(l,r),c(l,r)为l层r行下栅格瓦块数据的个数,0《k≤(etile×etile)。[0033]本发明步骤5中,根据l层r行快速定位到所需的压缩数据,对压缩数据顺序查找,找到满足要求的栅格瓦块的列号c,以及列号后etile×etile个距离信息,结合压缩数据最前面的hmin快速解压得到l层r行c列栅格瓦块的原始数据。[0034]有益效果:[0035]1、本方明通过减少栅格整型数据最基础的二进制比特位消耗来降低存储消耗,通过最小值、适宜的压缩比特位、与最小值的距离信息来保存栅格瓦块整型类数据的完整信息,压缩过程与结果是无损的;[0036]2、本发明在做数据压缩时,通过保留栅格瓦块的层行列金字塔瓦片信息,实现了压缩数据的索引内嵌,从而可以实现所需栅格瓦块数据的快速解压恢复,提高了数据使用的便利性,同时也降低了数据在运输、维护以及存储等多方面的成本。[0037]本发明从影像、高程等栅格瓦块整型类数据的数据特征着手,在不降低精度的情况下,通过将原始栅格内单个数据转换为用更少比特位保存的与最小值的数据距离信息,从二进制比特位消耗上实现栅格瓦块整型数据的无损压缩,同时在进行数据压缩时,保留了栅格瓦块层行列金字塔瓦片信息,在无需索引的情况下,实现了原始栅格瓦块数据的快速解压恢复。附图说明[0038]下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。[0039]图1是本发明的处理流程示意图。[0040]图2是任意层和行下原始栅格瓦块移位压缩示意图。具体实施方式[0041]如图1所示,本发明公开的一种基于距离信息的栅格瓦块整型数据无损压缩方法,具体包括以下步骤:[0042]步骤一,阈值设定:针对任意层、行下的原始栅格瓦块数据,根据单个数据值所占用的最大比特位数,按照2的幂次方设定若干数据距离的阈值,并扩充距离为0和超过最大比特数可表示的距离的情况,计算得到若干个阈值范围;[0043]步骤二,距离计算:通过排序算法得到该层、行下所有栅格瓦块数据的数据最小值,并计算得到所有瓦块到最小值的最大距离,根据最大距离所属阈值范围的上限得到其对应的比特数;[0044]步骤三,索引内嵌:针对该层、行下所有的栅格瓦块数据,用一个32位整型数据保存栅格瓦块数据所对应的列号,结合层号和列号,保留瓦块数据的金字塔索引信息;[0045]步骤四,移位压缩:针对该层、行下所有的栅格瓦块数据,用一个原始栅格瓦块数据的最大比特个数保存压缩比特位数,随后根据栅格瓦块中数据的个数依次右移若干个压缩比特位,用这些压缩比特位保存每个数据与栅格数据最小值的距离信息。所有栅格瓦块数据压缩后的数据拼装形成该层、行下原始栅格瓦块数据的无损压缩数据,最后在压缩数据最前面用一个原始栅格瓦块数据的最大比特个数保存栅格数据最小值;[0046]步骤五,数据解压:根据使用需要,可以通过压缩数据的内嵌金字塔索引信息,即该压缩数据的层号、行号和列号,在无需额外生成索引文件的情况下快速解压得到某个栅格瓦块数据的所有原始数据。[0047]下面具体为各个步骤的主要流程:[0048]1.阈值设定[0049]标注瓦块数据最大比特位数为b,由计算机中整型数据表示方法可知,b为2的幂次方,用b÷2、b÷4、b÷8甚至b÷b比特位来保存栅格数据相关信息,可从比特位上有效降低数据存储体积,据此得出阈值、阈值范围设定如下:[0050]2)阈值设定为:f(b)=2b+β,其中b∈{1,2,4,8,…},β=-1,b为保存栅格数据距离信息的比特位数,标记b=αn,其中0≤n≤θ,且n为整数,α=2,αθ+1=b;[0051]3)阈值各个比特位数范围段为:[0052][0053]扩充距离为0和超过最大比特数可表示距离的情况,各个阈值组合形成距离的范围,简称阈值范围f'为:[0054][0055]2.距离计算[0056]通过排序算法得到层、行下所有栅格瓦块数据的数据最小值位hmin,计算可得层、行下栅格瓦块数据的最大距离为:其中为该栅格瓦块数据中的最大值,该瓦块数据其余数据到最小值的距离为:其中0《k≤(etile×etile),etile为栅格瓦块边长,且根据最大距离所属阈值范围得到该瓦块用于移位压缩的压缩比特位数mtile为:[0057][0058]其中mtile=0,表示栅格瓦块所有数据都一致,即hmin;表示栅格瓦块数据的最大距离已超出最大阈值范围,此时只能用b比特位数来保存数据距离信息;当时,根据阈值范围的上限得到压缩比特位数得到压缩比特位数即此时mtile=b。[0059]3.索引内嵌[0060]用一个32位整型数据保存栅格瓦块数据所对应的列号c,结合瓦块所在的l层r行,实现了瓦块金字塔索引信息的内嵌,即索引为l层r行c列。[0061]4.移位压缩[0062]用一个b位保存压缩比特位数,后面依次移位追加(etile×etile)个该栅格瓦块数据的距离信息其中0《λ《c(l,r),c(l,r)为l层r行下栅格瓦块数据的个数,0《k≤(etile×etile),形成该栅格瓦块的压缩数据。所有栅格瓦块压缩数据拼装后形成l层r行栅格瓦块的压缩数据,最后在压缩数据最前面用一个b位保存栅格瓦块数据最小值hmin。[0063]上述移位压缩过程中未对整型数据做精度舍入操作,压缩过程是无损的。[0064]5.数据解压[0065]根据使用需要,可以通过压缩数据的内嵌金字塔索引信息,即层号l、行号r、列号c,在无需额外生成索引文件的情况下找到l层r行c列的压缩数据,即(etile×etile)个距离信息再通过栅格瓦块数据最小值hmin,可以快速解压得到指定栅格瓦块数据的所有原始数据。[0066]实施例[0067]本实施例中,输入高程、影像等栅格瓦块整型数据后,通过本发明所述的基于距离信息的栅格瓦块整型数据无损压缩方法,可以输出l层r行的非离散的栅格瓦块压缩数据;基于栅格瓦块压缩数据,输入l层r行c列后,通过本发明所述的基于距离信息的栅格瓦块整型数据无损压缩方法,可以输出l层r行c列栅格瓦块所有的原始数据。具体实施过程如下:[0068]步骤一中,根据l层r行下栅格瓦块数据单个数据值所占用的最大比特位数b,按照2b+β方法计算出若干数据距离的阈值,初步形成能够包含栅格数据距离的阈值范围,进一步扩充距离为0和超过的情况,得到能够包含各种数据距离情况的阈值范围;[0069]步骤二中,对于l层r行下所有的栅格瓦块数据,根据排序算法得出瓦块数据的最小值以及每个瓦块到最小值的最大距离最大值所属的阈值范围上限可以计算得出用于进行移位压缩的压缩比特位数mtile,压缩比特位数为0表示栅格瓦块中所有数据都一致,即hmin,为则表示最大距离已超出最大阈值范围,移位压缩只能用b比特位数来保存数据距离信息。计算出最大距离和压缩比特位数mtile后,依次计算后续参与移位压缩的其余数据的距离[0070]步骤三中,用一个32位整型数据保存栅格瓦块数据所对应的列号c,结合瓦块所在的l层r行,可得到内嵌的瓦块金字塔索引信息的,即l层r行c列;[0071]步骤四中,用一个b位保存压缩比特位数,后面依次移位追加(etile×etile)个该栅格瓦块数据的距离信息形成该栅格瓦块的压缩数据,如图2所示。所有栅格瓦块压缩数据拼装后形成l层r行栅格瓦块的压缩数据,最后在压缩数据最前面用一个b位保存栅格瓦块数据最小值hmin。[0072]步骤五中,基于压缩后的数据,输入层行列,在无需额外生成索引文件的情况下可以找到l层r行c列的压缩数据,即(etile×etile)个距离信息再通过栅格瓦块数据最小值hmin,可以快速解压得到指定栅格瓦块数据的所有原始数据。[0073]本发明提供了一种基于距离信息的栅格瓦块整型数据无损压缩方法的思路及方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1