CN111030702A - 一种文本压缩方法 - Google Patents

一种文本压缩方法 Download PDF

Info

Publication number
CN111030702A
CN111030702A CN201911374202.1A CN201911374202A CN111030702A CN 111030702 A CN111030702 A CN 111030702A CN 201911374202 A CN201911374202 A CN 201911374202A CN 111030702 A CN111030702 A CN 111030702A
Authority
CN
China
Prior art keywords
dictionary
compression
module
coding
file
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
Application number
CN201911374202.1A
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.)
Harbin University of Science and Technology
Original Assignee
Harbin University of Science and Technology
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 Harbin University of Science and Technology filed Critical Harbin University of Science and Technology
Priority to CN201911374202.1A priority Critical patent/CN111030702A/zh
Publication of CN111030702A publication Critical patent/CN111030702A/zh
Pending 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/3059Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression

Landscapes

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

Abstract

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

Description

一种文本压缩方法
技术领域
本发明涉及数据压缩领域,尤其涉及一种文本压缩方法。
背景技术
在数据压缩领域,针对目前在高速数据采集系统的大容量存储和无损传输过程中,存在占用空间大、传输速度慢等问题,利用海量文本数据之间信息的冗余关系和大数据处理技术生成的编码字典,以实现海量文本的高效存储和传输。要解决以上问题,则需要对文本进行压缩。现有的哈夫曼压缩算法压缩率小,需要的统计特性强,自适应性弱,因此,需要提供一种兼顾处理器的能力和内存开销的高压缩率的文本压缩方法,改变传统压缩算法的复杂程度,提高针对海量数据压缩的效率。
哈夫曼编码是一种基于统计特性的无损压缩编码,属于变长编码的一种,该编码方法根据字符出现的概率来构建哈夫曼树。但是字典编码不需要提前预测字符的概率分布,无需有关输入数据统计量的先验信息,只需扫描字符创建编码表,用编码表中的字符的编码代替源文件中相应的字符,减少原始数据的大小,在此过程中,当字典被填满是,输入一定长比特数据流,用现有字典进行压缩,然后判断被压缩数据流的压缩比(压缩比=输入流的大小/输出流的大小)是否大于所指定的阈值,进行清除匹配。应用字典压缩,例如:
字典列表:a=0,b=1,c=2。
源文本:aaabbbccccccba。
压缩后的编码为:031527810。
压缩编码后的长度显著缩小。
发明内容
本发明为解决目前文本压缩自适应弱,对处理器的能力和内存开销的要求高的问题,进而提出一种压缩率高、自适应性强,对处理器的能力和内存开销的要求低的方法。
本发明所述方法的具体步骤如下:
步骤a、转换源文件为二进制文件,采用字典压缩,利用哈希表作为词条存储结构;
步骤b、根据字典压缩输出的结果进行统一编码;
步骤c、根据编码字典对文件在硬件平台进行操作。
本发明的有益效果:本发明根据文本的冗余度和重复性,在字典压缩算法的基础上结合有限状态熵编码在硬件平台上实现的方法,对文本进行二进制文件转换并采用哈希表存储词条的字典压缩,利用有限状态熵编码,用一个数字存储压缩前后的信息,节省内存空间,利用小数个比特记录信息,使得该方法压缩率高、自适应强并对处理器的能力和内存开销的要求低,从而降低成本。
附图说明
图1为本发明文本压缩方法的流程图。
图2为硬件平台内部模块结构图。
具体实施方式
为更进一步阐述本发明所采取的技术手段及其效果,以下结合本发明的优选实例及其附图进行详细描述。
具体实施方式一:
本发明所述方法的具体步骤如下:
步骤a、转换源文件为二进制文件,采用字典压缩,利用哈希表作为词条存储结构;
步骤b、根据字典压缩输出的结果进行统一编码;
步骤c、根据编码字典对文件在硬件平台进行操作。
具体实施方式二:
与具体实施方式一不同的是,本实施方式的文本压缩方法,步骤a转换源文件为二进制文件,定义:
src用来存放源文件;
include用来存放头文件;
lib用来存放编译好的库文件;
bin用来存放编译好的可执行的二进制文件;
包括以下步骤:
步骤a11、新建一个文件夹,命名code;
步骤a12、在code目录下建立子目录,分别命名src、include、lib、bin,并且在code目录下建立一个cmake编译文件,命名CMakeLists.txt,并在其中写入,包括以下步骤:
步骤a121、设定使用的cmake版本及项目名称;
步骤a122、设定编译器及编译后生成的可执行二进制文件所在目录,将该目录设为链接目录;
步骤a123、设定头文件所在目录;
步骤a13、在src子目录下新建一个main.cpp的源文件,同时在src子目录下新建cmake编译文件,命名CMakeLists.txt;
步骤a14、进行终端输入指令操作;
步骤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;
具体实施方式三:
与具体实施方式一或二不同的是,本实施方式的文本压缩方法,步骤b所述的有限状态熵编码用一个数字存储压缩前后的信息,节省内存空间,利用小数个比特记录信息。有限状态编码只需要一个自然数,即state,即可跟踪其当前位置。通过均匀地而不是在范围内分配符号来完成,即将信息放在最不重要的位置,状态x∈N包含等于log2(x)位信息,此外,不需要乘法/除法来更新状态,当我们在处理符号s时候更改规则:
Figure BDA0002340479660000031
包括以下步骤:
步骤b1、根据字母中符号的概率分布创建编码表;
步骤b2、缩短执行时间,为每个符号生成的三个变量,即K[s]、Start[s]、Bound[s],并记录初始阶段的表格;
步骤b3、比较当前状态值和Bound[s]记录每个符号产生输出流的K[s]和K[s]-1位;
步骤b4、使用Bit函数计算nbBit并将x的nbBit最低有效位传输到输出流;
具体实施方式四:
与具体实施方式三不同的是,本实施方式的文本压缩方法,步骤c所述的硬件平台根据字典压缩编码进行仿真,内部体系结构主要划分为数据输入、数据处理、数据输出和时钟处理与控制模板四个部分,数据输入和数据输出模块完成硬件平台的所有数据传输工作,为了保证异步时钟数据同步,使用硬件平台的片内Block RAM构成一个FIFO是输入数据进行缓存,时钟处理与控制模块主要完成时钟的匹配与控制,对各个功能模块分配时钟,并且初始化各使能端信号,其中应用数据处理模块中的字典存储模块存储字符串,包括压缩起始阶段的初始化字符和压缩过程中生成的字符串,应用内嵌在字典模块的并行搜索模块执行字符串的搜索工作,应用压缩编码模块将匹配到的字符串进行编码,应用字典更新模块进行内容和编码写入地址更新。
综上所述,本发明文本压缩方法属于字典压缩算法的一种应用,是根据文本的冗余度和重复性,在字典压缩算法的基础上结合有限状态熵编码在硬件平台上实现的方法,对文本进行二进制文件转换并采用哈希表存储词条的字典压缩,利用有限状态熵编码,用一个数字存储压缩前后的信息,节省内存空间,利用小数个比特记录信息,使得该方法压缩率高、自适应强并对处理器的能力和内存开销的要求低,从而降低成本。
本领域的技术人员应理解,以上描述及附图所示的本发明的实施例仅仅为本发明的优选实施例,并不用于限制本发明,尽管以上有对本发明实施例的详细描述,本领域的技术人员依然可对上述的技术方案进行修改,或以相同用途进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换等,均应包含在本发明的保护范围之内。

Claims (4)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911374202.1A CN111030702A (zh) 2019-12-27 2019-12-27 一种文本压缩方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911374202.1A CN111030702A (zh) 2019-12-27 2019-12-27 一种文本压缩方法

Publications (1)

Publication Number Publication Date
CN111030702A true CN111030702A (zh) 2020-04-17

Family

ID=70194381

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911374202.1A Pending CN111030702A (zh) 2019-12-27 2019-12-27 一种文本压缩方法

Country Status (1)

Country Link
CN (1) CN111030702A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112003623A (zh) * 2020-08-19 2020-11-27 西藏大学 一种藏文文本压缩算法
CN112738124A (zh) * 2020-08-24 2021-04-30 英韧科技(上海)有限公司 硬件友好的数据压缩
CN112968706A (zh) * 2021-01-29 2021-06-15 上海联影医疗科技股份有限公司 数据压缩方法、fpga芯片及fpga在线升级方法
CN113553857A (zh) * 2021-06-30 2021-10-26 北京百度网讯科技有限公司 文本处理方法和文本处理装置
CN117375627A (zh) * 2023-12-08 2024-01-09 深圳市纷享互联科技有限责任公司 适用于字符串的纯文本格式数据的无损压缩方法和系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5485526A (en) * 1992-06-02 1996-01-16 Hewlett-Packard Corporation Memory circuit for lossless data compression/decompression dictionary storage
CN103023509A (zh) * 2012-11-14 2013-04-03 无锡芯响电子科技有限公司 一种硬件lz77压缩实现系统及其实现方法
CN104467868A (zh) * 2014-11-04 2015-03-25 深圳市元征科技股份有限公司 中文文本压缩方法
CN104462524A (zh) * 2014-12-24 2015-03-25 福建江夏学院 一种物联网数据压缩存储方法
US20190268017A1 (en) * 2019-05-08 2019-08-29 Vinodh Gopal Self-checking compression
CN110602498A (zh) * 2019-09-20 2019-12-20 唐驰鹏 一种自适应有限状态熵编码的方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5485526A (en) * 1992-06-02 1996-01-16 Hewlett-Packard Corporation Memory circuit for lossless data compression/decompression dictionary storage
CN103023509A (zh) * 2012-11-14 2013-04-03 无锡芯响电子科技有限公司 一种硬件lz77压缩实现系统及其实现方法
CN104467868A (zh) * 2014-11-04 2015-03-25 深圳市元征科技股份有限公司 中文文本压缩方法
CN104462524A (zh) * 2014-12-24 2015-03-25 福建江夏学院 一种物联网数据压缩存储方法
US20190268017A1 (en) * 2019-05-08 2019-08-29 Vinodh Gopal Self-checking compression
CN110602498A (zh) * 2019-09-20 2019-12-20 唐驰鹏 一种自适应有限状态熵编码的方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
SEYYED MAHDI NAJMABADI, ZHE WANG, YOUSEF BAROUD, SVEN SIMON: "High Throughput Hardware Architectures for Asymmetric Numeral Systems Entropy Coding", 9TH INTERNATIONAL SYMPOSIUM ON IMAGE AND SIGNAL PROCESSING AND ANALYSIS, 9 September 2015 (2015-09-09), pages 256 - 259, XP032798428, DOI: 10.1109/ISPA.2015.7306068 *
叶洪娜: "一种改进的LZW-FSE数据压缩算法研究", 中国优秀硕士学位论文全文数据库, no. 09, 15 September 2021 (2021-09-15) *
小飞侠-2: "LZW压缩算法", pages 1 - 6, Retrieved from the Internet <URL:http://t.csdnimg.cn/0Ufre> *
贾宏: "数字图书馆技术应用研究", 31 December 2011, 白山出版社, pages: 170 - 171 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112003623A (zh) * 2020-08-19 2020-11-27 西藏大学 一种藏文文本压缩算法
CN112003623B (zh) * 2020-08-19 2023-11-03 西藏大学 一种藏文文本压缩算法
CN112738124A (zh) * 2020-08-24 2021-04-30 英韧科技(上海)有限公司 硬件友好的数据压缩
CN112968706A (zh) * 2021-01-29 2021-06-15 上海联影医疗科技股份有限公司 数据压缩方法、fpga芯片及fpga在线升级方法
CN113553857A (zh) * 2021-06-30 2021-10-26 北京百度网讯科技有限公司 文本处理方法和文本处理装置
CN113553857B (zh) * 2021-06-30 2023-06-23 北京百度网讯科技有限公司 文本处理方法和文本处理装置
CN117375627A (zh) * 2023-12-08 2024-01-09 深圳市纷享互联科技有限责任公司 适用于字符串的纯文本格式数据的无损压缩方法和系统
CN117375627B (zh) * 2023-12-08 2024-04-05 深圳市纷享互联科技有限责任公司 适用于字符串的纯文本格式数据的无损压缩方法和系统

Similar Documents

Publication Publication Date Title
CN111030702A (zh) 一种文本压缩方法
CN105207678B (zh) 一种改进型lz4压缩算法的硬件实现系统
US8902087B1 (en) Data decompression utilizing pre-expanded dictionaries during decompression
US10224957B1 (en) Hash-based data matching enhanced with backward matching for data compression
US20060106888A1 (en) Data update system, differential data creating device and program for data update system, updated file restoring device and program
US8106799B1 (en) Data compression and decompression using parallel processing
JPS60116228A (ja) ディジタル信号ストリーム圧縮方法及び圧縮装置
CN108287877B (zh) 一种rib渲染压缩文件fpga压缩/解压缩系统及硬件解压方法
CN103236847A (zh) 基于多层哈希结构与游程编码的数据无损压缩方法
WO2014106782A1 (en) High bandwidth compression to encoded data streams
US9035809B2 (en) Optimizing compression engine throughput via run pre-processing
US20200294629A1 (en) Gene sequencing data compression method and decompression method, system and computer-readable medium
CN103248369A (zh) 基于fpga的压缩系统及其方法
US8947272B2 (en) Decoding encoded data
US20180041224A1 (en) Data value suffix bit level compression
Sirén Burrows-Wheeler transform for terabases
CN109672449B (zh) 一种基于fpga快速实现lz77压缩的装置及方法
US9696976B2 (en) Method for optimizing processing of character string during execution of a program, computer system and computer program for the same
JPH03204234A (ja) 圧縮データ復元方法
US8463759B2 (en) Method and system for compressing data
US11552652B2 (en) Systems and methods for lossless compression of tabular numeric data
US10541708B1 (en) Decompression engine for executable microcontroller code
CN103138766A (zh) 数据压缩与解压缩的方法及装置
YuanJing The combinational application of LZSS and LZW algorithms for compression based on Huffman
US7612692B2 (en) Bidirectional context model for adaptive compression

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