文本压缩方法.pdf

上传人:南*** 文档编号:10710108 上传时间:2021-08-09 格式:PDF 页数:7 大小:338.37KB
收藏 版权申诉 举报 下载
文本压缩方法.pdf_第1页
第1页 / 共7页
文本压缩方法.pdf_第2页
第2页 / 共7页
文本压缩方法.pdf_第3页
第3页 / 共7页
文档描述:

《文本压缩方法.pdf》由会员分享,可在线阅读,更多相关《文本压缩方法.pdf(7页完成版)》请在专利查询网上搜索。

1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 201911374202.1 (22)申请日 2019.12.27 (71)申请人 哈尔滨理工大学 地址 150080 黑龙江省哈尔滨市南岗区学 府路52号哈尔滨理工大学 (72)发明人 陈宝远叶洪娜 (51)Int.Cl. H03M 7/30(2006.01) (54)发明名称 一种文本压缩方法 (57)摘要 本发明文本压缩方法属于字典压缩算法的 一种应用, 是根据文本的冗余度和重复性, 在字 典压缩算法的基础上结合有限状态熵编码在硬 件平台上实现的方法, 对文本进行二进制文件。

2、转 换并采用哈希表存储词条的字典压缩, 利用有限 状态熵编码, 用一个数字存储压缩前后的信息, 节省内存空间, 利用小数个比特记录信息, 使得 压缩率高、 自适应强并对处理器的能力和内存开 销的要求低, 从而降低成本。 权利要求书1页 说明书3页 附图2页 CN 111030702 A 2020.04.17 CN 111030702 A 1.一种文本压缩方法, 其特征在于, 包括以下步骤: 步骤a、 转换源文件为二进制文件, 采用字典压缩, 利用哈希表作为词条存储结构; 步骤b、 根据字典压缩输出的结果进行统一编码; 步骤c、 根据编码字典对文件在硬件平台进行操作。 2.根据权利要求1所述文本。

3、压缩方法, 其特征在于, 步骤a所述的转换压缩过程包括: 步骤a1、 将源文件按每个字符8位转换成二进制文件; 步骤a2、 利用哈希表将关键字和字符串进行匹配, 包括以下步骤: 步骤a21、 初始化字典并记录初始化字典的大小, 将前缀字符串P赋初值, PNULL; 步骤a22、 读入文件中的一个字符X; 步骤a23、 判断所读文件是否为空, 如果: 是, 结束编码; 否, 读入下一个字符X; 步骤a24、 判断字符串P+X是否在字典中, 如果: 是, 则用PP+X, 返回步骤a22; 否, 则将P+X添加到字典中, 输出P的字典编码, 更新PX; 步骤a25、 如果字典未溢出, 则返回步骤a2。

4、2; 步骤a26、 判断压缩比是否小于指定阈值, 如果: 是, 则清除匹配率小的词条; 否, 返回步骤a22。 3.根据权利要求1所述文本压缩方法, 其特征在于, 步骤b所述的有限状态熵编码用一 个数字存储压缩前后的信息, 节省内存空间, 利用小数个比特记录信息。 有限状态编码只需 要一个自然数, 即state, 即可跟踪其当前位置。 通过均匀地而不是在范围内分配符号来完 成, 即将信息放在最不重要的位置, 状态xN包含等于log2(x)位信息, 此外, 不需要乘法/ 除法来更新状态, 当我们在处理符号s时候更改规则: 。 4.根据权利要求1所述文本压缩方法, 其特征在于, 步骤c所述的硬件平。

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

6、模块进行内容和编 码写入地址更新。 权利要求书 1/1 页 2 CN 111030702 A 2 一种文本压缩方法 技术领域 0001 本发明涉及数据压缩领域, 尤其涉及一种文本压缩方法。 背景技术 0002 在数据压缩领域, 针对目前在高速数据采集系统的大容量存储和无损传输过程 中, 存在占用空间大、 传输速度慢等问题, 利用海量文本数据之间信息的冗余关系和大数据 处理技术生成的编码字典, 以实现海量文本的高效存储和传输。 要解决以上问题, 则需要对 文本进行压缩。 现有的哈夫曼压缩算法压缩率小, 需要的统计特性强, 自适应性弱, 因此, 需 要提供一种兼顾处理器的能力和内存开销的高压缩率的。

7、文本压缩方法, 改变传统压缩算法 的复杂程度, 提高针对海量数据压缩的效率。 0003 哈夫曼编码是一种基于统计特性的无损压缩编码, 属于变长编码的一种, 该编码 方法根据字符出现的概率来构建哈夫曼树。 但是字典编码不需要提前预测字符的概率分 布, 无需有关输入数据统计量的先验信息, 只需扫描字符创建编码表, 用编码表中的字符的 编码代替源文件中相应的字符, 减少原始数据的大小, 在此过程中, 当字典被填满是, 输入 一定长比特数据流, 用现有字典进行压缩, 然后判断被压缩数据流的压缩比(压缩比输入 流的大小/输出流的大小)是否大于所指定的阈值, 进行清除匹配。 应用字典压缩, 例如: 000。

8、4 字典列表: a0, b1, c2。 0005 源文本: aaabbbccccccba。 0006 压缩后的编码为: 031527810。 0007 压缩编码后的长度显著缩小。 发明内容 0008 本发明为解决目前文本压缩自适应弱, 对处理器的能力和内存开销的要求高的问 题, 进而提出一种压缩率高、 自适应性强, 对处理器的能力和内存开销的要求低的方法。 0009 本发明所述方法的具体步骤如下: 0010 步骤a、 转换源文件为二进制文件, 采用字典压缩, 利用哈希表作为词条存储结构; 0011 步骤b、 根据字典压缩输出的结果进行统一编码; 0012 步骤c、 根据编码字典对文件在硬件平台。

9、进行操作。 0013 本发明的有益效果: 本发明根据文本的冗余度和重复性, 在字典压缩算法的基础 上结合有限状态熵编码在硬件平台上实现的方法, 对文本进行二进制文件转换并采用哈希 表存储词条的字典压缩, 利用有限状态熵编码, 用一个数字存储压缩前后的信息, 节省内存 空间, 利用小数个比特记录信息, 使得该方法压缩率高、 自适应强并对处理器的能力和内存 开销的要求低, 从而降低成本。 附图说明 0014 图1为本发明文本压缩方法的流程图。 说明书 1/3 页 3 CN 111030702 A 3 0015 图2为硬件平台内部模块结构图。 具体实施方式 0016 为更进一步阐述本发明所采取的技术。

10、手段及其效果, 以下结合本发明的优选实例 及其附图进行详细描述。 0017 具体实施方式一: 0018 本发明所述方法的具体步骤如下: 0019 步骤a、 转换源文件为二进制文件, 采用字典压缩, 利用哈希表作为词条存储结构; 0020 步骤b、 根据字典压缩输出的结果进行统一编码; 0021 步骤c、 根据编码字典对文件在硬件平台进行操作。 0022 具体实施方式二: 0023 与具体实施方式一不同的是, 本实施方式的文本压缩方法, 步骤a转换源文件为二 进制文件, 定义: 0024 src用来存放源文件; 0025 include用来存放头文件; 0026 lib用来存放编译好的库文件; 。

11、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 步骤a。

12、13、 在src子目录下新建一个main.cpp的源文件, 同时在src子目录下新建 cmake编译文件, 命名CMakeLists.txt; 0035 步骤a14、 进行终端输入指令操作; 0036 步骤a2、 利用哈希表将关键字和字符串进行匹配, 包括以下步骤: 0037 步骤a21、 初始化字典并记录初始化字典的大小, 将前缀字符串P赋初值, PNULL; 0038 步骤a22、 读入文件中的一个字符X; 0039 步骤a23、 判断所读文件是否为空, 如果: 0040 是, 结束编码; 0041 否, 读入下一个字符X; 0042 步骤a24、 判断字符串P+X是否在字典中, 如果: 。

13、0043 是, 则用PP+X, 返回步骤a22; 0044 否, 则将P+X添加到字典中, 输出P的字典编码, 更新PX; 0045 步骤a25、 如果字典未溢出, 则返回步骤a22; 0046 步骤a26、 判断压缩比是否小于指定阈值, 如果: 说明书 2/3 页 4 CN 111030702 A 4 0047 是, 则清除匹配率小的词条; 0048 否, 返回步骤a22; 0049 具体实施方式三: 0050 与具体实施方式一或二不同的是, 本实施方式的文本压缩方法, 步骤b所述的有限 状态熵编码用一个数字存储压缩前后的信息, 节省内存空间, 利用小数个比特记录信息。 有 限状态编码只需要。

14、一个自然数, 即state, 即可跟踪其当前位置。 通过均匀地而不是在范围 内分配符号来完成, 即将信息放在最不重要的位置, 状态xN包含等于log2(x)位信息, 此 外, 不需要乘法/除法来更新状态, 当我们在处理符号s时候更改规则: 0051 0052 包括以下步骤: 0053 步骤b1、 根据字母中符号的概率分布创建编码表; 0054 步骤b2、 缩短执行时间, 为每个符号生成的三个变量, 即Ks、 Starts、 Bound s, 并记录初始阶段的表格; 0055 步骤b3、 比较当前状态值和Bounds记录每个符号产生输出流的Ks和Ks-1 位; 0056 步骤b4、 使用Bit函。

15、数计算nbBit并将x的nbBit最低有效位传输到输出流; 0057 具体实施方式四: 0058 与具体实施方式三不同的是, 本实施方式的文本压缩方法, 步骤c所述的硬件平台 根据字典压缩编码进行仿真, 内部体系结构主要划分为数据输入、 数据处理、 数据输出和时 钟处理与控制模板四个部分, 数据输入和数据输出模块完成硬件平台的所有数据传输工 作, 为了保证异步时钟数据同步, 使用硬件平台的片内Block RAM构成一个FIFO是输入数据 进行缓存, 时钟处理与控制模块主要完成时钟的匹配与控制, 对各个功能模块分配时钟, 并 且初始化各使能端信号, 其中应用数据处理模块中的字典存储模块存储字符串。

16、, 包括压缩 起始阶段的初始化字符和压缩过程中生成的字符串, 应用内嵌在字典模块的并行搜索模块 执行字符串的搜索工作, 应用压缩编码模块将匹配到的字符串进行编码, 应用字典更新模 块进行内容和编码写入地址更新。 0059 综上所述, 本发明文本压缩方法属于字典压缩算法的一种应用, 是根据文本的冗 余度和重复性, 在字典压缩算法的基础上结合有限状态熵编码在硬件平台上实现的方法, 对文本进行二进制文件转换并采用哈希表存储词条的字典压缩, 利用有限状态熵编码, 用 一个数字存储压缩前后的信息, 节省内存空间, 利用小数个比特记录信息, 使得该方法压缩 率高、 自适应强并对处理器的能力和内存开销的要求低, 从而降低成本。 0060 本领域的技术人员应理解, 以上描述及附图所示的本发明的实施例仅仅为本发明 的优选实施例, 并不用于限制本发明, 尽管以上有对本发明实施例的详细描述, 本领域的技 术人员依然可对上述的技术方案进行修改, 或以相同用途进行等同替换。 凡在本发明的精 神和原则之内, 所作的任何修改、 等同替换等, 均应包含在本发明的保护范围之内。 说明书 3/3 页 5 CN 111030702 A 5 图1 说明书附图 1/2 页 6 CN 111030702 A 6 图2 说明书附图 2/2 页 7 CN 111030702 A 7 。

展开阅读全文
内容关键字: 文本 压缩 方法
关于本文
本文标题:文本压缩方法.pdf
链接地址:https://www.zhuanlichaxun.net/pdf/10710108.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1