首页 / 专利库 / 人工智能 / 文本字符串 / 一种文本压缩方法

一种文本压缩方法

阅读:295发布:2020-05-08

专利汇可以提供一种文本压缩方法专利检索,专利查询,专利分析的服务。并且本 发明 文本压缩方法属于字典压缩 算法 的一种应用,是根据文本的 冗余度 和重复性,在字典压缩算法的 基础 上结合有限状态 熵编码 在 硬件 平台上实现的方法,对文本进行二进制文件转换并采用哈希表存储词条的字典压缩,利用有限状态熵编码,用一个数字存储压缩前后的信息,节省内存空间,利用小数个比特记录信息,使得压缩率高、自适应强并对处理器的能 力 和内存开销的要求低,从而降低成本。,下面是一种文本压缩方法专利的具体信息内容。

1.一种文本压缩方法,其特征在于,包括以下步骤:
步骤a、转换源文件为二进制文件,采用字典压缩,利用哈希表作为词条存储结构;
步骤b、根据字典压缩输出的结果进行统一编码;
步骤c、根据编码字典对文件在硬件平台进行操作。
2.根据权利要求1所述文本压缩方法,其特征在于,步骤a所述的转换压缩过程包括:
步骤a1、将源文件按每个字符8位转换成二进制文件;
步骤a2、利用哈希表将关键字和字符串进行匹配,包括以下步骤:
步骤a21、初始化字典并记录初始化字典的大小,将前缀字符串P赋初值,P=NULL;
步骤a22、读入文件中的一个字符X;
步骤a23、判断所读文件是否为空,如果:
是,结束编码;
否,读入下一个字符X;
步骤a24、判断字符串P+X是否在字典中,如果:
是,则用P=P+X,返回步骤a22;
否,则将P+X添加到字典中,输出P的字典编码,更新P=X;
步骤a25、如果字典未溢出,则返回步骤a22;
步骤a26、判断压缩比是否小于指定阈值,如果:
是,则清除匹配率小的词条;
否,返回步骤a22。
3.根据权利要求1所述文本压缩方法,其特征在于,步骤b所述的有限状态熵编码用一个数字存储压缩前后的信息,节省内存空间,利用小数个比特记录信息。有限状态编码只需要一个自然数,即state,即可跟踪其当前位置。通过均匀地而不是在范围内分配符号来完成,即将信息放在最不重要的位置,状态x∈N包含等于log2(x)位信息,此外,不需要乘法/除法来更新状态,当我们在处理符号s时候更改规则:

4.根据权利要求1所述文本压缩方法,其特征在于,步骤c所述的硬件平台根据字典压缩编码进行仿真,内部体系结构主要划分为数据输入、数据处理、数据输出和时钟处理与控制模板四个部分,数据输入和数据输出模完成硬件平台的所有数据传输工作,为了保证异步时钟数据同步,使用硬件平台的片内Block RAM构成一个FIFO是输入数据进行缓存,时钟处理与控制模块主要完成时钟的匹配与控制,对各个功能模块分配时钟,并且初始化各使能端信号,其中应用数据处理模块中的字典存储模块存储字符串,包括压缩起始阶段的初始化字符和压缩过程中生成的字符串,应用内嵌在字典模块的并行搜索模块执行字符串的搜索工作,应用压缩编码模块将匹配到的字符串进行编码,应用字典模块进行内容和编码写入地址更新。

说明书全文

一种文本压缩方法

技术领域

[0001] 本发明涉及数据压缩领域,尤其涉及一种文本压缩方法。

背景技术

[0002] 在数据压缩领域,针对目前在高速数据采集系统的大容量存储和无损传输过程中,存在占用空间大、传输速度慢等问题,利用海量文本数据之间信息的冗余关系和大数据处理技术生成的编码字典,以实现海量文本的高效存储和传输。要解决以上问题,则需要对文本进行压缩。现有的哈夫曼压缩算法压缩率小,需要的统计特性强,自适应性弱,因此,需要提供一种兼顾处理器的能和内存开销的高压缩率的文本压缩方法,改变传统压缩算法的复杂程度,提高针对海量数据压缩的效率。
[0003] 哈夫曼编码是一种基于统计特性的无损压缩编码,属于变长编码的一种,该编码方法根据字符出现的概率来构建哈夫曼树。但是字典编码不需要提前预测字符的概率分布,无需有关输入数据统计量的先验信息,只需扫描字符创建编码表,用编码表中的字符的编码代替源文件中相应的字符,减少原始数据的大小,在此过程中,当字典被填满是,输入一定长比特数据流,用现有字典进行压缩,然后判断被压缩数据流的压缩比(压缩比=输入流的大小/输出流的大小)是否大于所指定阈值,进行清除匹配。应用字典压缩,例如:
[0004] 字典列表:a=0,b=1,c=2。
[0005] 源文本:aaabbbccccccba。
[0006] 压缩后的编码为:031527810。
[0007] 压缩编码后的长度显著缩小。

发明内容

[0008] 本发明为解决目前文本压缩自适应弱,对处理器的能力和内存开销的要求高的问题,进而提出一种压缩率高、自适应性强,对处理器的能力和内存开销的要求低的方法。
[0009] 本发明所述方法的具体步骤如下:
[0010] 步骤a、转换源文件为二进制文件,采用字典压缩,利用哈希表作为词条存储结构;
[0011] 步骤b、根据字典压缩输出的结果进行统一编码;
[0012] 步骤c、根据编码字典对文件在硬件平台进行操作。
[0013] 本发明的有益效果:本发明根据文本的冗余度和重复性,在字典压缩算法的基础上结合有限状态熵编码在硬件平台上实现的方法,对文本进行二进制文件转换并采用哈希表存储词条的字典压缩,利用有限状态熵编码,用一个数字存储压缩前后的信息,节省内存空间,利用小数个比特记录信息,使得该方法压缩率高、自适应强并对处理器的能力和内存开销的要求低,从而降低成本。附图说明
[0014] 图1为本发明文本压缩方法的流程图
[0015] 图2为硬件平台内部模结构图。

具体实施方式

[0016] 为更进一步阐述本发明所采取的技术手段及其效果,以下结合本发明的优选实例及其附图进行详细描述。
[0017] 具体实施方式一:
[0018] 本发明所述方法的具体步骤如下:
[0019] 步骤a、转换源文件为二进制文件,采用字典压缩,利用哈希表作为词条存储结构;
[0020] 步骤b、根据字典压缩输出的结果进行统一编码;
[0021] 步骤c、根据编码字典对文件在硬件平台进行操作。
[0022] 具体实施方式二:
[0023] 与具体实施方式一不同的是,本实施方式的文本压缩方法,步骤a转换源文件为二进制文件,定义:
[0024] src用来存放源文件;
[0025] include用来存放头文件;
[0026] lib用来存放编译好的库文件;
[0027] bin用来存放编译好的可执行的二进制文件;
[0028] 包括以下步骤:
[0029] 步骤a11、新建一个文件夹,命名code;
[0030] 步骤a12、在code目录下建立子目录,分别命名src、include、lib、bin,并且在code目录下建立一个cmake编译文件,命名CMakeLists.txt,并在其中写入,包括以下步骤:
[0031] 步骤a121、设定使用的cmake版本及项目名称;
[0032] 步骤a122、设定编译器及编译后生成的可执行二进制文件所在目录,将该目录设为链接目录;
[0033] 步骤a123、设定头文件所在目录;
[0034] 步骤a13、在src子目录下新建一个main.cpp的源文件,同时在src子目录下新建cmake编译文件,命名CMakeLists.txt;
[0035] 步骤a14、进行终端输入指令操作;
[0036] 步骤a2、利用哈希表将关键字和字符串进行匹配,包括以下步骤:
[0037] 步骤a21、初始化字典并记录初始化字典的大小,将前缀字符串P赋初值,P=NULL;
[0038] 步骤a22、读入文件中的一个字符X;
[0039] 步骤a23、判断所读文件是否为空,如果:
[0040] 是,结束编码;
[0041] 否,读入下一个字符X;
[0042] 步骤a24、判断字符串P+X是否在字典中,如果:
[0043] 是,则用P=P+X,返回步骤a22;
[0044] 否,则将P+X添加到字典中,输出P的字典编码,更新P=X;
[0045] 步骤a25、如果字典未溢出,则返回步骤a22;
[0046] 步骤a26、判断压缩比是否小于指定阈值,如果:
[0047] 是,则清除匹配率小的词条;
[0048] 否,返回步骤a22;
[0049] 具体实施方式三:
[0050] 与具体实施方式一或二不同的是,本实施方式的文本压缩方法,步骤b所述的有限状态熵编码用一个数字存储压缩前后的信息,节省内存空间,利用小数个比特记录信息。有限状态编码只需要一个自然数,即state,即可跟踪其当前位置。通过均匀地而不是在范围内分配符号来完成,即将信息放在最不重要的位置,状态x∈N包含等于log2(x)位信息,此外,不需要乘法/除法来更新状态,当我们在处理符号s时候更改规则:
[0051]
[0052] 包括以下步骤:
[0053] 步骤b1、根据字母中符号的概率分布创建编码表;
[0054] 步骤b2、缩短执行时间,为每个符号生成的三个变量,即K[s]、Start[s]、Bound[s],并记录初始阶段的表格;
[0055] 步骤b3、比较当前状态值和Bound[s]记录每个符号产生输出流的K[s]和K[s]-1位;
[0056] 步骤b4、使用Bit函数计算nbBit并将x的nbBit最低有效位传输到输出流;
[0057] 具体实施方式四:
[0058] 与具体实施方式三不同的是,本实施方式的文本压缩方法,步骤c所述的硬件平台根据字典压缩编码进行仿真,内部体系结构主要划分为数据输入、数据处理、数据输出和时钟处理与控制模板四个部分,数据输入和数据输出模块完成硬件平台的所有数据传输工作,为了保证异步时钟数据同步,使用硬件平台的片内Block RAM构成一个FIFO是输入数据进行缓存,时钟处理与控制模块主要完成时钟的匹配与控制,对各个功能模块分配时钟,并且初始化各使能端信号,其中应用数据处理模块中的字典存储模块存储字符串,包括压缩起始阶段的初始化字符和压缩过程中生成的字符串,应用内嵌在字典模块的并行搜索模块执行字符串的搜索工作,应用压缩编码模块将匹配到的字符串进行编码,应用字典更新模块进行内容和编码写入地址更新。
[0059] 综上所述,本发明文本压缩方法属于字典压缩算法的一种应用,是根据文本的冗余度和重复性,在字典压缩算法的基础上结合有限状态熵编码在硬件平台上实现的方法,对文本进行二进制文件转换并采用哈希表存储词条的字典压缩,利用有限状态熵编码,用一个数字存储压缩前后的信息,节省内存空间,利用小数个比特记录信息,使得该方法压缩率高、自适应强并对处理器的能力和内存开销的要求低,从而降低成本。
[0060] 本领域的技术人员应理解,以上描述及附图所示的本发明的实施例仅仅为本发明的优选实施例,并不用于限制本发明,尽管以上有对本发明实施例的详细描述,本领域的技术人员依然可对上述的技术方案进行修改,或以相同用途进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换等,均应包含在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈