CN104699821A - 地理信息数据压缩处理算法 - Google Patents
地理信息数据压缩处理算法 Download PDFInfo
- Publication number
- CN104699821A CN104699821A CN201510143642.1A CN201510143642A CN104699821A CN 104699821 A CN104699821 A CN 104699821A CN 201510143642 A CN201510143642 A CN 201510143642A CN 104699821 A CN104699821 A CN 104699821A
- Authority
- CN
- China
- Prior art keywords
- string
- window
- processing algorithm
- information data
- geographic information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Remote Sensing (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
地理信息数据压缩处理算法,包括定义历史窗口和待编码窗口,所述压缩处理算法中包括对目标字符串和模式字符串逐位比较的比较过程,所述压缩处理算法还包括定义失效函数fail(j)=k;当在一次比较过程中,模式字符串P的第j+1个位置与目标字符串T的相应位置失配时,且j>0,则下一次比较时模式字符串P的比较起始位置是p(j+1),由该起始位置继续与目标字符串T中上一次比较中失配的字符进行比较。本发明以最小代价实现了在字典里快速查找最长匹配串,有效地缓解了窗口长度的性能瓶颈,不同于现在的通用压缩程序的方案。
Description
技术领域
本发明属于软件通信领域,涉及数据处理和压缩技术,具体涉及一种地理信息数据压缩处理算法。
背景技术
在地理信息数据处理中,数据压缩已经成为数据传输和储存中必不可少的技术手段,例如一颗卫星每半小时即可发回一次全波段数据(5个波段),每天的数据量可达1.1GB;采样率较低的数字电话,按每一取样用8位压扩量化,通常其数码率也需要8×8=64kbps,一张A4(210mm×297mm)大小幅面的图片,即使采用中等分辨率(300dpi)的扫描仪按真彩色扫描,共有(300×210/25.4) ×(300×297/25.4)个象素,每个象素占3个字节,其数据量为26M字节。
由此可见,面对当今如此大量的数据,存储器的存储,通信干线信道的带宽,以及计算机的处理速度都受到了极大的压力。尽管计算机的存储能力越来越大,但存储空间仍然不能满足海量地理信息数据的处理需求,另一方面,大量的数据传输和使有限的网络带宽变得不堪重负。
1977年,以色列人 Jacob Ziv 和 Abraham Lempel 发表了论文“顺序数据压缩的一个通用算法”(A Universal Alogrithem for Sequential Data Compression)以及“通过可变比率编码的独立序列的压缩”(Compression of Individual Sequences via Variable-Rate Coding),在这两篇论文中提出的压缩算法被称为 LZ77压缩算法。
LZ77压缩可以称为滑动窗口压缩,因为它用到的主要数据结构是一个可以滑动的窗口。窗口分成两部分:第一部分是历史窗口(history window),存放最近被编码的一段正文;另一部分是向前看窗口(lookahead window),存放从输入文件中读入,还没编码但正准备编码的一段正文。历史窗口和向前看窗口都跟随压缩进程滑动,历史窗口作为术语字典,向前看窗口中待压缩的字符串如果在该历史窗口中出现,则输出其出现位置和长度。
LZ77算法中,需要遍历滑动窗口,查找待编码文本的最长匹配串。当进行编码时,lookahead窗口中的内容要与history窗口中的每个位置进行逐一比较,LZ77算法中的时间消耗主要集中在对最长匹配串的查找上,假设窗口大小是n,平均匹配长度是m,则每次查找的时间复杂度将达到(m*n),而每次滑动窗口之后,都要进行下一个匹配串的查找。
LZ77算法的速度性能瓶颈还间接限制了压缩比的提高。如果窗口越大,字典就越大,平均匹配长度也越长,从这个角度看,压缩效果当然就越好。但另一方面,算法的这个速度性能瓶颈就会更加严重,当窗口增大到一定程度,会令匹配速度下降到无法接受的程度。所以,查找最长匹配串这个速度性能瓶颈间接限制了压缩比的提高。
发明内容
为克服现有压缩算法受到窗口大小限制,查找时间长,压缩比低的技术缺陷,本发明公开了一种地理信息数据压缩处理算法。
本发明所述地理信息数据压缩处理算法,包括定义历史窗口和待编码窗口,所述历史窗口中包括目标字符串T,所述待编码窗口中包括模式字符串P,所述压缩处理算法中包括对目标字符串和模式字符串逐位比较的比较过程,其特征在于,所述压缩处理算法还包括定义失效函数fail ( j )=k,其中k是使得模式字符串P中的连续位字符p(0)、p(1)、… p(k) 分别等于 p(j-k)、 p(j-k+1)、… p(j)的最大整数,且k < j;
当在一次比较过程中,模式字符串P的第j+1个位置与目标字符串T的相应位置失配时,且j > 0,则下一次比较时模式字符串P的比较起始位置是p(j +1),由该起始位置继续与目标字符串T中上一次比较中失配的字符进行比较。
优选的,当在一次比较过程中,模式字符串P的第j+1个位置与目标字符串T的相应位置失配时,且j = 0,则下一次比较时模式字符串P的比较起始位置是p(0),由该起始位置继续与目标字符串T中上一次比较中失配的字符前进一位进行比较。
优选的,所述待编码窗口的窗口长度采用变长编码定义。
优选的,在模式字符串的被比较字符串起始位置移动时,定义一个指向起始位置的指针,通过指针移动实现模式字符串的起始位置移动。
优选的,所述压缩处理算法利用C语言编程实现。
采用本发明所述的地理信息数据压缩处理算法,以最小代价实现了在字典里快速查找最长匹配串,有效地缓解了窗口长度的性能瓶颈。不同于现在的通用压缩程序的方案,本发明不需要建立任何特殊的数据结构,不必牺牲硬件空间和时间的耗费去维护这些数据结构,实现简单。
具体实施方式
下面对本发明的具体实施方式作进一步的详细说明。
本发明所述地理信息数据压缩处理算法,包括定义历史窗口和待编码窗口,所述历史窗口中包括目标字符串T,所述待编码窗口中包括模式字符串P,所述压缩处理算法中包括对目标字符串和模式字符串逐位比较的比较过程,其特征在于,所述压缩处理算法还包括定义失效函数fail ( j )=k,其中k是使得模式字符串P中的连续位字符p(0)、p(1)、… p(k) 分别等于 p(j-k)、 p(j-k+1)、… p(j)的最大整数,且k < j;
当在一次比较过程中,模式字符串P的第j+1个位置与目标字符串T的相应位置失配时,且j > 0,则下一次比较时模式字符串P的比较起始位置是p(j +1),由该起始位置继续与目标字符串T中上一次比较中失配的字符进行比较。
优选的,当在一次比较过程中,模式字符串P的第j+1个位置与目标字符串T的相应位置失配时,且j = 0,则下一次比较时模式字符串P的比较起始位置是p(0),由该起始位置继续与目标字符串T中上一次比较中失配的字符前进一位进行比较。
例如设目标字符串T=“t(0) t(1) … t(n-1)”,模式字符串P=“p(0) p(1) … p(n-1)”,假设在某次比较中,P的第0位p(0)与T的第m位t(m)开始进行比较,在第j+1位失配,即p(j+1)与t(m+j+1)失配,这时有:
t(m-1)、t(m)、t(m+1) … t(m+j-1)、 t(m+j) 分别等于 p(0)、p(1)、p(2) … p(j-1)、p(j)。
若要继续寻找匹配位置,对于某一值k,必须有:
p(0)、p(1)…p(k) 分别等于 t(m+j-k)、 t(m+j-k+1) … t(m+j)
根据前一次的比较,已经有:
t(m+j-k)、t(m+j-k+1)… t(m+j) 分别等于 p(j-k)、p(j-k+1)、… p(j)
所以,必须有:
p(0)、p(1) … p(k)分别等于 p(j-k)、p(j-k+1) … p(j)
因此,可以把上一次失配的模式字符串P从当前位置直接向后移动j-k位,因为目标T中t(m+j)之前已经于P中p(j)之前的字符匹配了,所以可以直接从上一趟失配的位置T中的t(m+j+1)与P中的p(j+1)开始,继续进行匹配比较。
这样,当某次比较失配后,目标T中的扫描指针不需要回溯,下一趟比较继续从当前位置开始比较。而模式P中,扫描指针回退到p(k)位置,再进行下一次比较。
对于不同的失配位置j,相应的k值是不同的。但是,从上面的分析可以看出,k的取值只依赖于模式字符串p本身前就j个字符的构成,与目标T无关。可以定义一个失效函数fail ( j ),它的意义是,当模式字符串P的第j+1个位置于目标T的相应位置失配时,模式字符串P应当由fail ( j )所确定的位置继续与T中刚失配的字符进行比较。定义fail ( j )=k,其中k是使得p(0)、p(1)、… p(k) 分别等于 p(j-k)、 p(j-k+1)、… p(j)的最大整数,且k < j;若这样的k不存在,则fail ( j )=-1。
根据上面失效函数的定义,设若某一次匹配比较时在p的第j位失配,且j > 0,则下一趟比较时P的起始位置是p ( j+1),而t的指针不回溯。若j=0,则T的指针前进一位,模式的起始比较位置仍然是p(0)。
采用本发明所述的地理信息数据压缩处理算法,以最小代价实现了在字典里快速查找最长匹配串,有效地缓解了窗口长度的性能瓶颈。不同于现在的通用压缩程序的方案,本发明不需要建立任何特殊的数据结构,不必牺牲硬件空间和时间的耗费去维护这些数据结构,实现简单。
所述待编码窗口的窗口长度优选的采用变长编码定义。因为匹配串的长度的变化幅度很大,可以从1~MaxMatchLen,MaxMatchLen为最大匹配长度,假如MaxMatchLen取1k,则需要用10位二进制位来表示,但是,匹配串大多数情况下都比较小,如果用定长编码来表示它,会造成很大浪费。
可以使用变长编码来表示匹配串的长度值。根据变长编码的理论,要输出变长的编码,该编码必须是唯一可译码,即对码字序列能做出唯一正确的分割。其中前缀编码就是一种满足条件的编码。前缀编码是任何一个码字都不是另一个码字的字头,即都不是由另外一个码字加上若干码元所构成的编码。满足条件的编码方案很多,例如使用γ编码(Gamma编码)。
在模式字符串的被比较字符串起始位置移动时,可以定义一个指向起始位置的指针,通过指针移动实现模式字符串的起始位置移动。在滑动窗口的管理的方法上,本文所实现的程序作了改进。窗口是否需要真正的滑动呢?如果每次输出匹配短语之后,都把整个窗口的内容向前移若干位,这时间复杂度是O(n),其中n是窗口大小。通常窗口都有1k~10k的大小,本文实现的程序就选取了4k,这个时间开销是很大的。所以,使用一个指向窗口起始位置的指针,每次输入匹配短语后,就把指针向后移动相应位置,而不是把整个窗口的内容向前移动,这样,操作所花的时间是1,大大节省了时间开销。
优选的,所述压缩处理算法利用C语言编程实现。压缩程序往往不能对数据的整个字节进行处理,而是要按照二进制位来读写和处理数据,二进制位操作是压缩程序很重要的组成部分。而C语言被认为是高级汇编语言,它提供了左移位、右移位等操作符,可以方便地进行深入字节内部的二进制位操作。所以,C语言对实现压缩程序是一个很好的选择。
本发明中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
前文所述的为本发明的各个优选实施例,各个优选实施例中的优选实施方式如果不是明显自相矛盾或以某一优选实施方式为前提,各个优选实施方式都可以任意叠加组合使用,所述实施例以及实施例中的具体参数仅是为了清楚表述发明人的发明验证过程,并非用以限制本发明的专利保护范围,本发明的专利保护范围仍然以其权利要求书为准,凡是运用本发明的说明书内容所作的等同结构变化,同理均应包含在本发明的保护范围内。
Claims (5)
1.地理信息数据压缩处理算法,包括定义历史窗口和待编码窗口,所述历史窗口中包括目标字符串T,所述待编码窗口中包括模式字符串P,所述压缩处理算法中包括对目标字符串和模式字符串逐位比较的比较过程,其特征在于,所述压缩处理算法还包括定义失效函数fail ( j )=k,其中k是使得模式字符串P中的连续位字符p(0)、p(1)、… p(k) 分别等于 p(j-k)、 p(j-k+1)、… p(j)的最大整数,且k < j;
当在一次比较过程中,模式字符串P的第j+1个位置与目标字符串T的相应位置失配时,且j > 0,则下一次比较时模式字符串P的比较起始位置是p(j +1),由该起始位置继续与目标字符串T中上一次比较中失配的字符进行比较。
2. 如权利要求1所述的地理信息数据压缩处理算法,其特征在于,当在一次比较过程中,模式字符串P的第j+1个位置与目标字符串T的相应位置失配时,且j = 0,则下一次比较时模式字符串P的比较起始位置是p(0),由该起始位置继续与目标字符串T中上一次比较中失配的字符前进一位进行比较。
3.如权利要求1所述的地理信息数据压缩处理算法,其特征在于,所述待编码窗口的窗口长度采用变长编码定义。
4.如权利要求1所述的地理信息数据压缩处理算法,其特征在于,在模式字符串的被比较字符串起始位置移动时,定义一个指向起始位置的指针,通过指针移动实现模式字符串的起始位置移动。
5.如权利要求1所述的地理信息数据压缩处理算法,其特征在于,所述压缩处理算法利用C语言编程实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510143642.1A CN104699821A (zh) | 2015-03-30 | 2015-03-30 | 地理信息数据压缩处理算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510143642.1A CN104699821A (zh) | 2015-03-30 | 2015-03-30 | 地理信息数据压缩处理算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104699821A true CN104699821A (zh) | 2015-06-10 |
Family
ID=53346941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510143642.1A Pending CN104699821A (zh) | 2015-03-30 | 2015-03-30 | 地理信息数据压缩处理算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104699821A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109063158A (zh) * | 2018-08-10 | 2018-12-21 | 赛尔网络有限公司 | 一种网站访问排名信息查询的方法、设备、系统及介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102497546A (zh) * | 2011-11-28 | 2012-06-13 | 同济大学 | 一种屏幕图像压缩装置及压缩方法 |
-
2015
- 2015-03-30 CN CN201510143642.1A patent/CN104699821A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102497546A (zh) * | 2011-11-28 | 2012-06-13 | 同济大学 | 一种屏幕图像压缩装置及压缩方法 |
Non-Patent Citations (3)
Title |
---|
杨长生等: "HLZ一种采用混合字典的自适应无损编码算法", 《浙江大学学报》 * |
王振海: "基于DSP的高速数据流无损压缩方法的研究", 《第十二届全国青年通信学术会议》 * |
董世博: "入侵检测系统中多模式匹配算法的研究", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109063158A (zh) * | 2018-08-10 | 2018-12-21 | 赛尔网络有限公司 | 一种网站访问排名信息查询的方法、设备、系统及介质 |
CN109063158B (zh) * | 2018-08-10 | 2021-04-27 | 赛尔网络有限公司 | 一种网站访问排名信息查询的方法、设备、系统及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100385437C (zh) | 实时数据压缩方法 | |
US10268380B2 (en) | Methods, devices and systems for semantic-value data compression and decompression | |
US6611213B1 (en) | Method and apparatus for data compression using fingerprinting | |
US9847791B2 (en) | System and method for compressing data using asymmetric numeral systems with probability distributions | |
CN107682016B (zh) | 一种数据压缩方法、数据解压方法及相关系统 | |
EP2455853A2 (en) | Data compression method | |
CN110021369B (zh) | 基因测序数据压缩解压方法、系统及计算机可读介质 | |
JP5913748B2 (ja) | セキュアで損失のないデータ圧縮 | |
CN104699821A (zh) | 地理信息数据压缩处理算法 | |
KR101023536B1 (ko) | 데이터 무손실 압축 방법 | |
US7447263B2 (en) | Processing digital data prior to compression | |
Song et al. | Dictionary based compression type classification using a CNN architecture | |
Qin et al. | Reversible data embedding for vector quantization compressed images using search‐order coding and index parity matching | |
US20080001790A1 (en) | Method and system for enhancing data compression | |
Shanmugasundaram et al. | Text preprocessing using enhanced intelligent dictionary based encoding (EIDBE) | |
Baruah et al. | Enhancing dictionary based preprocessing for better text compression | |
CN117200805B (zh) | 一种mcu的低内存占用的压缩和解压方法及装置 | |
Lee et al. | Lossless text steganography in compression coding | |
Huang et al. | Lossless compression algorithm for multi-source sensor data research | |
JPH0527943A (ja) | データ圧縮方式 | |
Senthil et al. | RIDBE: A lossless, reversible text transformation scheme for better compression | |
JPH0644038A (ja) | データ圧縮方法、データ復元方法、データ圧縮/復元方法 | |
Adiego et al. | Mapping words into codewords on PPM | |
Yuanfu et al. | The methods of improving the compression ratio of LZ77 family data compression algorithms | |
KR101906036B1 (ko) | Lz78 압축 데이터의 오류 검출 방법 및 이를 이용한 인코더 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150610 |