CN112615627A - 基于改进行程长度编码的动态压缩方法及动态压缩系统 - Google Patents

基于改进行程长度编码的动态压缩方法及动态压缩系统 Download PDF

Info

Publication number
CN112615627A
CN112615627A CN202011268631.3A CN202011268631A CN112615627A CN 112615627 A CN112615627 A CN 112615627A CN 202011268631 A CN202011268631 A CN 202011268631A CN 112615627 A CN112615627 A CN 112615627A
Authority
CN
China
Prior art keywords
array
sequence
dynamic
state transition
stores
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.)
Withdrawn
Application number
CN202011268631.3A
Other languages
English (en)
Inventor
戴亦斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Information Technology Bote Intelligent Technology Co ltd
Original Assignee
Beijing Information Technology Bote Intelligent Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Information Technology Bote Intelligent Technology Co ltd filed Critical Beijing Information Technology Bote Intelligent Technology Co ltd
Priority to CN202011268631.3A priority Critical patent/CN112615627A/zh
Publication of CN112615627A publication Critical patent/CN112615627A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开了一种基于改进行程长度编码的动态压缩方法及动态压缩系统,属于通信技术领域,其特征在于,包括如下步骤:S1、将规则集合转换为状态转移矩阵;S2、将状态转移矩阵进行压缩;用数组(T,N,R1,R2)描述的数字序列进行压缩,其中:数组T表示原始序列,N表示原始序列长度,数组R1存储压缩后首次出现的字符,数组R2存储压缩后字符出现的位置;S3,读取待检测目标文本,采用二分查找动态解压压缩序列,获取匹配结果。本发明采用一种改进的行程长度编码,对规则匹配过程中的状态转移矩阵进行压缩,同时解决存储空间大和动态解压时间复杂度高的问题,既压缩了存储空间,又保持了快速的访问速度。

Description

基于改进行程长度编码的动态压缩方法及动态压缩系统
技术领域
本发明属于通信技术领域,特别是涉及一种基于改进行程长度编码的动态压缩方法及动态压缩系统。
背景技术
众所周知,多规则匹配是内容过滤系统的核心功能,传统的多规则匹配算法一般先对规则集合进行预处理,存储成可快速访问的数据结构,然后对文本进行扫描匹配。传统方法中,一般采用状态转移矩阵作为存储的数据结构,支持随机访问,在确定的输入下,从当前状态到下一个状态具有O(1)的状态转移时间。但是,状态转移矩阵存在空间的膨胀甚至爆炸问题,单条正则表达式描述的规则就可能导致内存空间爆炸,对规则匹配引擎造成巨大压力,内存消耗极容易达到百GB以上,不仅会造成内存访问效率急剧下降,并且会频繁引发算法引擎的崩溃,甚至造成用户匹配结果的丢失。
研究发现,状态转移矩阵中每列或者每行存在很多重复的状态,减少大量冗余的一系列字符存储空间,行程长度编码(Run-length encoding,简称RLE编码)是一种有效的方法,请参阅图1,比如有原始字符串:
“WWWWAAACCCCCC”
传统采用行程长度编码方式可表示为“W4A3C6”,意思是该字串前4个字符是W,然后是3个字符A和6个字符C。原始字符串需要(4+3+6=13)个byte存储,编码后只需要6个byte存储(字符占一个byte,连续出现次数占一个byte)。
RLE编码压缩方案是一种比较成熟的压缩方案,特点是无损失压缩,既节省了磁盘空间又不损失任何数据。对于相同数据值连续出现多次的数据序列应用行程长度编码能够有效的减少数据的存储空间。传统的RLE编码表示中,采用“数据值+次数”的方式编码,这种方式可以在不完全恢复序列的情况下随机的访问序列中的元素,但是计算复杂,所需计算时间较长,最坏情况下,算法时间复杂度为O(n),n为数据序列长度。
发明内容
本发明为解决公知技术中存在的技术问题,提供一种基于改进行程长度编码的动态压缩方法及动态压缩系统,采用一种改进的行程长度编码,对规则匹配过程中的状态转移矩阵进行压缩,同时解决存储空间大和动态解压时间复杂度高的问题,既压缩了存储空间,又保持了快速的访问速度。
本发明的第一目的是提供一种基于改进行程长度编码的动态压缩方法,包括:
S1、将规则集合转换为状态转移矩阵;
S2、将状态转移矩阵进行压缩;用数组(T,N,R1,R2)描述的数字序列进行压缩,其中:数组T表示原始序列,N表示原始序列长度,数组R1存储压缩后首次出现的字符,数组R2存储压缩后字符出现的位置。
优选地,还包括S3,读取待检测目标文本,采用二分查找动态解压压缩序列,获取匹配结果。
本发明的第二目的是提供一种基于改进行程长度编码的动态压缩系统;至少包括:
转换模块、将规则集合转换为状态转移矩阵;
压缩模块、将状态转移矩阵进行压缩;用数组(T,N,R1,R2)描述的数字序列进行压缩,其中:数组T表示原始序列,N表示原始序列长度,数组R1存储压缩后首次出现的字符,数组R2存储压缩后字符出现的位置。。
优选地,还包括解码模块,读取待检测目标文本,采用二分查找动态解压压缩序列,获取匹配结果。
本发明的第三目的是提供一种实现上述基于改进行程长度编码的动态压缩方法的信息数据处理终端。
本发明的第四目的是提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述的基于改进行程长度编码的动态压缩方法。
本发明具有的优点和积极效果是:
本发明采用“数据值+出现位置”的方式进行编码,不仅可以对相同数据值连续出现多次的数据序列能够有效的减少数据的存储空间,同时实现元素的动态访问,且时间复杂度为log(n)。
附图说明
图1是传统技术存储字符串的示例;
图2是本发明优选实施例存储字符串的示例;
图3是本发明优选实施例中S2的软件逻辑代码;
图4是本发明优选实施例中S3的软件逻辑代码;
图5是本发明优选实施例的流程图。
具体实施方式
为能进一步了解本发明的发明内容、特点及功效,兹例举以下实施例,并配合附图详细说明如下:
请查阅图5:
一种基于改进行程长度编码的动态压缩方法,包括:
Process 1:将规则集合转换为状态转移矩阵。
Process 2:将状态转移矩阵采用改进RLE编码方式压缩,请查阅图2和图3,具体为:采用改进RLE状态转移表的压缩算法。算法压缩用数组描述的数字序列,其中数组T表示原始序列,N表示原始序列长度,数组R1存储压缩后首次出现的字符,数组R2存储压缩后字符出现的位置。
Process3:读取待检测目标文本,动态解压压缩序列,获取匹配结果,请查阅图4,采用动态解压缩算法,在压缩的序列中查找原始序列T[index]的值。压缩序列用数组R1和数组R2两个数组表示,其中数组R1存储压缩后首次出现的字符,数组R2存储压缩后字符出现的位置,N为数组R1的长度(数组R1的长度和数组R2长度相等)。采用二分查找动态解压缩代码实现。
本优选实施例对RLE的编码方式进行改进,采用“数据值+出现位置”的方式进行编码。通过这种改进,不仅可以对相同数据值连续出现多次的数据序列能够有效的减少数据的存储空间,同时实现元素的动态访问,且时间复杂度为log(n)。
例如对于图2所示的改进RLE编码,查找第7个元素的步骤如下:
1、对位置序列[1,6,9]做二分查找
2、查处7位于6和9之间
3、取位置6对应的元素,即为元素7的值
因为在查找过程中做二分查找,时间复杂度为O(logn),n为编码序列长度。
一种基于改进行程长度编码的动态压缩系统;包括:
转换模块:将规则集合转换为状态转移矩阵。
压缩模块:将状态转移矩阵采用改进RLE编码方式压缩,请查阅图2和图3,具体为:采用改进RLE状态转移表的压缩算法。算法压缩用数组描述的数字序列,其中数组T表示原始序列,N表示原始序列长度,数组R1存储压缩后首次出现的字符,数组R2存储压缩后字符出现的位置。
解码模块:读取待检测目标文本,动态解压压缩序列,获取匹配结果,请查阅图4,采用动态解压缩算法,在压缩的序列中查找原始序列T[index]的值。压缩序列用数组R1和数组R2两个数组表示,其中数组R1存储压缩后首次出现的字符,数组R2存储压缩后字符出现的位置,N为数组R1的长度(数组R1的长度和数组R2长度相等)。采用二分查找动态解压缩代码实现。
本优选实施例对RLE的编码方式进行改进,采用“数据值+出现位置”的方式进行编码。通过这种改进,不仅可以对相同数据值连续出现多次的数据序列能够有效的减少数据的存储空间,同时实现元素的动态访问,且时间复杂度为log(n)。
一种实现基于改进行程长度编码的动态压缩方法的信息数据处理终端,上述基于改进行程长度编码的动态压缩方法包括:
Process 1:将规则集合转换为状态转移矩阵。
Process 2:将状态转移矩阵采用改进RLE编码方式压缩,请查阅图2和图3,具体为:采用改进RLE状态转移表的压缩算法。算法压缩用数组描述的数字序列,其中数组T表示原始序列,N表示原始序列长度,数组R1存储压缩后首次出现的字符,数组R2存储压缩后字符出现的位置。
Process3:读取待检测目标文本,动态解压压缩序列,获取匹配结果,请查阅图4,采用动态解压缩算法,在压缩的序列中查找原始序列T[index]的值。压缩序列用数组R1和数组R2两个数组表示,其中数组R1存储压缩后首次出现的字符,数组R2存储压缩后字符出现的位置,N为数组R1的长度(数组R1的长度和数组R2长度相等)。采用二分查找动态解压缩代码实现。
本优选实施例对RLE的编码方式进行改进,采用“数据值+出现位置”的方式进行编码。通过这种改进,不仅可以对相同数据值连续出现多次的数据序列能够有效的减少数据的存储空间,同时实现元素的动态访问,且时间复杂度为log(n)。
一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行基于改进行程长度编码的动态压缩方法,该基于改进行程长度编码的动态压缩方法包括:
Process 1:将规则集合转换为状态转移矩阵。
Process 2:将状态转移矩阵采用改进RLE编码方式压缩,请查阅图2和图3,具体为:采用改进RLE状态转移表的压缩算法。算法压缩用数组描述的数字序列,其中数组T表示原始序列,N表示原始序列长度,数组R1存储压缩后首次出现的字符,数组R2存储压缩后字符出现的位置。
Process3:读取待检测目标文本,动态解压压缩序列,获取匹配结果,请查阅图4,采用动态解压缩算法,在压缩的序列中查找原始序列T[index]的值。压缩序列用数组R1和数组R2两个数组表示,其中数组R1存储压缩后首次出现的字符,数组R2存储压缩后字符出现的位置,N为数组R1的长度(数组R1的长度和数组R2长度相等)。采用二分查找动态解压缩代码实现。
本优选实施例对RLE的编码方式进行改进,采用“数据值+出现位置”的方式进行编码。通过这种改进,不仅可以对相同数据值连续出现多次的数据序列能够有效的减少数据的存储空间,同时实现元素的动态访问,且时间复杂度为log(n)。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
以上所述的实施例仅用于说明本发明的技术思想及特点,其目的在于使本领域内的技术人员能够理解本发明的内容并据以实施,不能仅以本实施例来限定本发明的专利范围,即凡本发明所揭示的精神所作的同等变化或修饰,仍落在本发明的专利范围内。

Claims (6)

1.一种基于改进行程长度编码的动态压缩方法;其特征在于,包括如下步骤:
S1、将规则集合转换为状态转移矩阵;
S2、将状态转移矩阵进行压缩;用数组(T,N,R1,R2)描述的数字序列进行压缩,其中:数组T表示原始序列,N表示原始序列长度,数组R1存储压缩后首次出现的字符,数组R2存储压缩后字符出现的位置。
2.根据权利要求1所述的基于改进行程长度编码的动态压缩方法,其特征在于,还包括S3,读取待检测目标文本,采用二分查找动态解压压缩序列,获取匹配结果。
3.一种基于改进行程长度编码的动态压缩系统;其特征在于,至少包括:
转换模块、将规则集合转换为状态转移矩阵;
压缩模块、将状态转移矩阵进行压缩;用数组(T,N,R1,R2)描述的数字序列进行压缩,其中:数组T表示原始序列,N表示原始序列长度,数组R1存储压缩后首次出现的字符,数组R2存储压缩后字符出现的位置。。
4.根据权利要求3所述的基于改进行程长度编码的动态压缩系统,其特征在于,还包括解码模块,读取待检测目标文本,采用二分查找动态解压压缩序列,获取匹配结果。
5.一种实现权利要求1或2所述基于改进行程长度编码的动态压缩方法的信息数据处理终端。
6.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1或2所述的基于改进行程长度编码的动态压缩方法。
CN202011268631.3A 2020-11-13 2020-11-13 基于改进行程长度编码的动态压缩方法及动态压缩系统 Withdrawn CN112615627A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011268631.3A CN112615627A (zh) 2020-11-13 2020-11-13 基于改进行程长度编码的动态压缩方法及动态压缩系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011268631.3A CN112615627A (zh) 2020-11-13 2020-11-13 基于改进行程长度编码的动态压缩方法及动态压缩系统

Publications (1)

Publication Number Publication Date
CN112615627A true CN112615627A (zh) 2021-04-06

Family

ID=75225781

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011268631.3A Withdrawn CN112615627A (zh) 2020-11-13 2020-11-13 基于改进行程长度编码的动态压缩方法及动态压缩系统

Country Status (1)

Country Link
CN (1) CN112615627A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1303176A (zh) * 2000-01-04 2001-07-11 国际商业机器公司 提供用于数据压缩的改进的行程长度编码算法的方法
US6901055B1 (en) * 1999-08-19 2005-05-31 Massachusetts Institute Of Technology Synchronous circuit synthesis using an asynchronous specification
CN101916259A (zh) * 2010-07-06 2010-12-15 中国科学院计算技术研究所 确定自动机状态转换表的空间压缩方法
CN106789895A (zh) * 2016-11-18 2017-05-31 东软集团股份有限公司 压缩文本检测方法和装置
CN109300508A (zh) * 2017-07-25 2019-02-01 南京金斯瑞生物科技有限公司 一种dna数据存储编码解码方法
CN110401451A (zh) * 2019-06-12 2019-11-01 中国科学院信息工程研究所 基于字符集变换的自动机空间压缩方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6901055B1 (en) * 1999-08-19 2005-05-31 Massachusetts Institute Of Technology Synchronous circuit synthesis using an asynchronous specification
CN1303176A (zh) * 2000-01-04 2001-07-11 国际商业机器公司 提供用于数据压缩的改进的行程长度编码算法的方法
CN101916259A (zh) * 2010-07-06 2010-12-15 中国科学院计算技术研究所 确定自动机状态转换表的空间压缩方法
CN106789895A (zh) * 2016-11-18 2017-05-31 东软集团股份有限公司 压缩文本检测方法和装置
CN109300508A (zh) * 2017-07-25 2019-02-01 南京金斯瑞生物科技有限公司 一种dna数据存储编码解码方法
CN110401451A (zh) * 2019-06-12 2019-11-01 中国科学院信息工程研究所 基于字符集变换的自动机空间压缩方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张辉: ""面向网络流识别的正则表达式匹配技术研究"", 《中国优秀硕士学位论文全文数据库(信息科技辑)》, pages 24 - 30 *
张辉: "面向网络流识别的正则表达式匹配技术研究", 《中国优秀硕士学位论文全文数据库 (基础科学辑)》, no. 08, pages 24 - 28 *

Similar Documents

Publication Publication Date Title
US7720878B2 (en) Data compression method and apparatus
US10187081B1 (en) Dictionary preload for data compression
US6385617B1 (en) Method and apparatus for creating and manipulating a compressed binary decision diagram in a data processing system
CN107682016B (zh) 一种数据压缩方法、数据解压方法及相关系统
US6831575B2 (en) Word aligned bitmap compression method, data structure, and apparatus
US9479194B2 (en) Data compression apparatus and data decompression apparatus
WO2011057680A1 (en) Indexing compressed data
JPH05233212A (ja) データを圧縮するための装置及び方法並びにデータ処理システム
US10146817B2 (en) Inverted index and inverted list process for storing and retrieving information
CN106506007A (zh) 一种无损数据压缩和解压缩装置及其方法
US6247015B1 (en) Method and system for compressing files utilizing a dictionary array
US9600578B1 (en) Inverted index and inverted list process for storing and retrieving information
US5815096A (en) Method for compressing sequential data into compression symbols using double-indirect indexing into a dictionary data structure
Anisimov et al. Variable-length prefix codes with multiple delimiters
CN115189696A (zh) 一种基于Huffman解码表的硬件压缩解压方法
CN112380196B (zh) 一种用于数据压缩传输的服务器
CN111767280A (zh) 数据处理方法、装置及存储介质
US8463759B2 (en) Method and system for compressing data
Cannane et al. General‐purpose compression for efficient retrieval
CN112615627A (zh) 基于改进行程长度编码的动态压缩方法及动态压缩系统
US10496703B2 (en) Techniques for random operations on compressed data
Cheng et al. The Key as Dictionary Compression Method of Inverted Index Table under the Hbase Database.
CN112527949B (zh) 数据存储与检索方法、装置、计算机设备及存储介质
JPH0628149A (ja) 複数種類データのデータ圧縮方法
Bassiouni et al. Enhancing arithmetic and tree-based coding

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20210406

WW01 Invention patent application withdrawn after publication