CN111030702A - 一种文本压缩方法 - Google Patents
一种文本压缩方法 Download PDFInfo
- 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
Links
- 238000007906 compression Methods 0.000 title claims abstract description 54
- 230000006835 compression Effects 0.000 title claims abstract description 51
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000006243 chemical reaction Methods 0.000 claims abstract description 4
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000013144 data compression Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3059—Digital 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时候更改规则:
包括以下步骤:
步骤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。
4.根据权利要求1所述文本压缩方法,其特征在于,步骤c所述的硬件平台根据字典压缩编码进行仿真,内部体系结构主要划分为数据输入、数据处理、数据输出和时钟处理与控制模板四个部分,数据输入和数据输出模块完成硬件平台的所有数据传输工作,为了保证异步时钟数据同步,使用硬件平台的片内Block RAM构成一个FIFO是输入数据进行缓存,时钟处理与控制模块主要完成时钟的匹配与控制,对各个功能模块分配时钟,并且初始化各使能端信号,其中应用数据处理模块中的字典存储模块存储字符串,包括压缩起始阶段的初始化字符和压缩过程中生成的字符串,应用内嵌在字典模块的并行搜索模块执行字符串的搜索工作,应用压缩编码模块将匹配到的字符串进行编码,应用字典模块进行内容和编码写入地址更新。
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)
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)
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 | 唐驰鹏 | 一种自适应有限状态熵编码的方法 |
-
2019
- 2019-12-27 CN CN201911374202.1A patent/CN111030702A/zh active Pending
Patent Citations (6)
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)
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)
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 |