CN103731154A - 一种基于语义分析的数据压缩算法 - Google Patents
一种基于语义分析的数据压缩算法 Download PDFInfo
- Publication number
- CN103731154A CN103731154A CN201310533958.2A CN201310533958A CN103731154A CN 103731154 A CN103731154 A CN 103731154A CN 201310533958 A CN201310533958 A CN 201310533958A CN 103731154 A CN103731154 A CN 103731154A
- Authority
- CN
- China
- Prior art keywords
- text
- semantic analysis
- data compression
- compression algorithm
- language
- 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.)
- Granted
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种基于语义分析的数据压缩算法,是一般受限语言文本文件的压缩方法,并针对C语言源文件文本压缩问题,利用C语言的语法格式的严格性,以C语言基本元素为文本压缩的基本元素,通过采用哈夫曼编码方法进行编码,给出了一种C语言文本压缩方法——基于语义分析的文本压缩方法。实验表明:该方法的压缩比比原始的哈夫曼文本压缩提高了将近1.5倍。
Description
技术领域
本发明属于计算机技术领域,涉及一种基于语义分析的数据压缩算法。
背景技术
文本数据作为传递信息的媒体和手段有着十分重要的作用,并且在许多领域都有着广泛的应用。然而用以表示这些文本文件的数据量很大,使得存储成本很高,不能最大限度的发挥存储器的作用,很好的适应现今网络环境下进行高速通信的需求。数据压缩技术是通信和计算机等学科领域中的一项关键技术之一,它通过一定的技术、方法对数据进行压缩,使大容量的文件可以存储在很小的存储空间中,对于网络资源共享、信息交换、高速通信等有着非常重要的意义,并且数据压缩技术在现阶段已经广泛运用于学习工作、生活生产之中。但是随着社会的进步,科技的发展,我们遇到的文件越来越大,从而引发一系列问题的出现,需要的存储器容量越来越大,信息交流时,需要的时间很长,因此,压缩技术的优化改进和新的压缩技术的提出将一直是研发工作的重点之一。
在文本压缩方面采用最多的方法是哈夫曼编码,哈夫曼编码是可变字长编码(VLC)的一种。哈夫曼于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫作哈夫曼编码。哈夫曼编码的具体细节,可以参考《信息论与编码》。
即使目前被广泛运用并且具有很高的压缩比的基于哈弗曼编码的数据压缩技术,也存在一些不足之处,由于此压缩技术对文本文件的所有的字符进行同等的压缩,忽略了关键字和特殊语句等的特殊性和一些语句的规律性,因而在理论上这种压缩技术的压缩比还有一定的改进余地。
发明内容
为了解决现有技术中存在的技术问题,本发明提供了一种基于语义分析的数据压缩算法,主要根据文本语义,忽略次要字符,以字符串为基本单位,采用哈夫曼编码的思想对字符串进行编码,在保证实现无损压缩的情况下,进一步提高其压缩比,并通过实验得到的实验结果,证明了这种基于语义分析的数据压缩算法具有更高的数据 压缩比。其技术方案如下:
一种基于语义分析的数据压缩算法,包括以下步骤:
1)打开要进行压缩的C语言文本文件,按照C语言对于文本的分类,依次获取各个关键元素,忽略次要元素,并保存在一个双向链表LinkSrc中;
2)遍历链表LinkSrc,统计各个元素出现的次数,以该元素的基本信息为节点,新建立成一个双向链表LinkRate;
3)以链表LinkRate中的节点做为叶子节点,组成一颗哈夫曼树,树根为LinkRoot;
4)将LinkRoot中的叶子节点复制并保存为一个数组Code,记录叶子节点对应的哈夫曼编码;
5)遍历LinkSrc,将其中的内容转换为数组Code中对应的哈夫曼编码,保存到对应的压缩文件中;
6)将哈夫曼树保存到文件中,该文件名对应于相应的源文件;
7)利用上述方法的逆运算实现解码,由于在压缩时省略了一些次要内容,所以在解压的过程中,需要将忽略掉的内容进行恢复。
进一步优选,所述文本的分类包括关键字、变量、常量、字符串、字符、注释。
进一步优选,所述基本信息包括类型、频度、内容、长度、编码。
与现有技术相比,本发明的有益效果:本发明压缩比提高了将近1.5倍。当文本中内容是具有一定意义的符号,并且格式要求严格,结构清晰,元素的重复性比较大,此时采用基于语义分析压缩算法要比哈夫曼压缩算法效果要好。
附图说明
图1是本发明基于语义分析的数据压缩算法流程图;
图2是本发明基于语义分析的数据压缩算法与哈夫曼编码对比结果图,其中图2(a)是C语言源文件。图2(b)是哈夫曼编码的结果,图2(c)是基于语义分析的数据压缩算法的结果。
具体实施方式
下面结合附图和具体实施例进一步说明本发明的技术方案。
参照图1,一种基于语义分析的数据压缩算法,包括以下步骤:
1)打开要进行压缩的C语言文本文件,按照C语言对于文本的分类(关键字、变量、常量、字符串、字符、注释等),依次获取各个关键元素,忽略次要元素,并保存在一个双向链表LinkSrc中;
2)遍历链表LinkSrc,统计各个元素出现的次数,以该元素的基本信息(类型、频度、内容、长度、编码等)为节点,新建立成一个双向链表LinkRate;
3)以链表LinkRate中的节点做为叶子节点,组成一颗哈夫曼树,树根为LinkRoot;
4)将LinkRoot中的叶子节点复制并保存为一个数组Code,记录叶子节点对应的哈夫曼编码;
5)遍历LinkSrc,将其中的内容转换为数组Code中对应的哈夫曼编码,保存到对应的压缩文件中;
6)将哈夫曼树保存到文件中,该文件名对应于相应的源文件;
7)利用上述方法的逆运算实现解码,由于在压缩时省略了一些次要内容,所以在解压的过程中,需要将忽略掉的内容进行恢复。
实验选取一个大小为0.571KB的C语言源文件(如图2(a))作文原始文件,然后分别按照基于语义分析的数据压缩算法与哈夫曼编码进行对比,得到如下图2(b)和图2(c)所示结果。
经过哈夫曼编码压缩源文件后所得到的压缩文件理论大小为0.361KB,压缩比为1.582:1,而经过基于语义分析的数据压缩算法的压缩所得到的压缩文件理论大小为0.148KB,压缩比为3.858:1。
当文本中内容是具有一定意义的符号,并且格式要求严格,结构清晰,元素的重复性比较大,此时采用基于语义分析压缩算法要比哈夫曼压缩算法效果要好。
基于上述理由,此种方法可以推广应用到一般受限语言文本压缩中,比如一般的计算机编程语言。
以上所述,仅为本发明最佳实施方式,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可显而易见地得到的技术方案的简单变化或等效替换均落入本发明的保护范围内。
Claims (3)
1.一种基于语义分析的数据压缩算法,其特征在于,包括以下步骤:
1)打开要进行压缩的C语言文本文件,按照C语言对于文本的分类,依次获取各个关键元素,忽略次要元素,并保存在一个双向链表LinkSrc中;
2)遍历链表LinkSrc,统计各个元素出现的次数,以该元素的基本信息为节点,新建立成一个双向链表LinkRate;
3)以链表LinkRate中的节点做为叶子节点,组成一颗哈夫曼树,树根为LinkRoot;
4)将LinkRoot中的叶子节点复制并保存为一个数组Code,记录叶子节点对应的哈夫曼编码;
5)遍历LinkSrc,将其中的内容转换为数组Code中对应的哈夫曼编码,保存到对应的压缩文件中;
6)将哈夫曼树保存到文件中,该文件名对应于相应的源文件;
7)利用上述方法的逆运算实现解码,在解压的过程中,将忽略掉的内容进行恢复。
2.根据权利要求1所述的基于语义分析的数据压缩算法,其特征在于,所述文本的分类包括关键字、变量、常量、字符串、字符、注释。
3.根据权利要求1所述的基于语义分析的数据压缩算法,其特征在于,所述基本信息包括类型、频度、内容、长度、编码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310533958.2A CN103731154B (zh) | 2013-11-01 | 2013-11-01 | 一种基于语义分析的数据压缩算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310533958.2A CN103731154B (zh) | 2013-11-01 | 2013-11-01 | 一种基于语义分析的数据压缩算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103731154A true CN103731154A (zh) | 2014-04-16 |
CN103731154B CN103731154B (zh) | 2017-01-11 |
Family
ID=50455103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310533958.2A Expired - Fee Related CN103731154B (zh) | 2013-11-01 | 2013-11-01 | 一种基于语义分析的数据压缩算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103731154B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107797541A (zh) * | 2016-08-29 | 2018-03-13 | 河北百亚信息科技有限公司 | 基于智能家居环境中ZigBee固件升级的镜像文件轻便解压算法 |
CN107836083A (zh) * | 2015-05-21 | 2018-03-23 | 零点科技公司 | 用于语义值数据压缩和解压缩的方法、设备和*** |
CN108829930A (zh) * | 2018-05-10 | 2018-11-16 | 广东省智能制造研究所 | 三维数字化工艺设计mbd模型的轻量化方法 |
CN109379572A (zh) * | 2018-12-04 | 2019-02-22 | 北京达佳互联信息技术有限公司 | 图像转换方法、装置、电子设备及存储介质 |
CN111737388A (zh) * | 2020-06-11 | 2020-10-02 | 中国石油天然气股份有限公司 | 一种地质图件数据存储处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1737791A (zh) * | 2005-09-08 | 2006-02-22 | 无敌科技(西安)有限公司 | 一种对数据进行有限穷举优化的压缩方法 |
US7254273B2 (en) * | 2000-12-28 | 2007-08-07 | Evolvable Systems Research Institute, Inc. | Data coding method and device, and data coding program |
CN103236847A (zh) * | 2013-05-06 | 2013-08-07 | 西安电子科技大学 | 基于多层哈希结构与游程编码的数据无损压缩方法 |
-
2013
- 2013-11-01 CN CN201310533958.2A patent/CN103731154B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7254273B2 (en) * | 2000-12-28 | 2007-08-07 | Evolvable Systems Research Institute, Inc. | Data coding method and device, and data coding program |
CN1737791A (zh) * | 2005-09-08 | 2006-02-22 | 无敌科技(西安)有限公司 | 一种对数据进行有限穷举优化的压缩方法 |
CN103236847A (zh) * | 2013-05-06 | 2013-08-07 | 西安电子科技大学 | 基于多层哈希结构与游程编码的数据无损压缩方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107836083A (zh) * | 2015-05-21 | 2018-03-23 | 零点科技公司 | 用于语义值数据压缩和解压缩的方法、设备和*** |
CN107836083B (zh) * | 2015-05-21 | 2021-09-21 | 零点科技公司 | 用于语义值数据压缩和解压缩的方法、设备和*** |
CN107797541A (zh) * | 2016-08-29 | 2018-03-13 | 河北百亚信息科技有限公司 | 基于智能家居环境中ZigBee固件升级的镜像文件轻便解压算法 |
CN107797541B (zh) * | 2016-08-29 | 2020-11-10 | 河北百亚信息科技有限公司 | 基于智能家居环境中ZigBee固件升级的镜像文件轻便解压算法 |
CN108829930A (zh) * | 2018-05-10 | 2018-11-16 | 广东省智能制造研究所 | 三维数字化工艺设计mbd模型的轻量化方法 |
CN109379572A (zh) * | 2018-12-04 | 2019-02-22 | 北京达佳互联信息技术有限公司 | 图像转换方法、装置、电子设备及存储介质 |
US11470294B2 (en) | 2018-12-04 | 2022-10-11 | Beijing Dajia Internet Information Technology Co., Ltd. | Method, device, and storage medium for converting image from raw format to RGB format |
CN111737388A (zh) * | 2020-06-11 | 2020-10-02 | 中国石油天然气股份有限公司 | 一种地质图件数据存储处理方法 |
CN111737388B (zh) * | 2020-06-11 | 2024-01-30 | 中国石油天然气股份有限公司 | 一种地质图件数据存储处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103731154B (zh) | 2017-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9223765B1 (en) | Encoding and decoding data using context model grouping | |
CN103236847B (zh) | 基于多层哈希结构与游程编码的数据无损压缩方法 | |
CN101783788B (zh) | 文件压缩、解压缩方法、装置及压缩文件搜索方法、装置 | |
CN110518917B (zh) | 基于Huffman编码的LZW数据压缩方法及*** | |
CN103731154A (zh) | 一种基于语义分析的数据压缩算法 | |
CN104753540A (zh) | 数据压缩方法、数据解压方法和装置 | |
CN104467868A (zh) | 中文文本压缩方法 | |
CN103258030A (zh) | 基于字典与游长编码的移动设备内存压缩方法 | |
US20200294629A1 (en) | Gene sequencing data compression method and decompression method, system and computer-readable medium | |
CN104125475B (zh) | 一种多维量子数据压缩、解压缩方法及装置 | |
CN101534124B (zh) | 一种用于短小自然语言的压缩算法 | |
US11669553B2 (en) | Context-dependent shared dictionaries | |
CN104410424A (zh) | 嵌入式设备内存数据的快速无损压缩方法 | |
CN115189696A (zh) | 一种基于Huffman解码表的硬件压缩解压方法 | |
Nandi et al. | Modified compression techniques based on optimality of LZW code (MOLZW) | |
CN103605730A (zh) | 一种基于不定长标识码的xml的压缩方法和装置 | |
CN103618554B (zh) | 基于字典的内存页面压缩方法 | |
CN104734722A (zh) | 数据压缩方法及数据解压缩装置 | |
Mahmood et al. | A feasible 6 bit text database compression scheme with character encoding (6BC) | |
CN104682966A (zh) | 列表数据的无损压缩方法 | |
Jacob et al. | Comparative analysis of lossless text compression techniques | |
CN102891730B (zh) | 基于bcd码卫星短报文的编码方法和装置 | |
CN106559085A (zh) | 一种范式哈夫曼解码方法及其装置 | |
CN105183750B (zh) | 紧凑式xml解析*** | |
CN114665887B (zh) | 一种基于整体压缩的json字符串数据压缩方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170111 Termination date: 20211101 |