CN103731154B - 一种基于语义分析的数据压缩算法 - Google Patents

一种基于语义分析的数据压缩算法 Download PDF

Info

Publication number
CN103731154B
CN103731154B CN201310533958.2A CN201310533958A CN103731154B CN 103731154 B CN103731154 B CN 103731154B CN 201310533958 A CN201310533958 A CN 201310533958A CN 103731154 B CN103731154 B CN 103731154B
Authority
CN
China
Prior art keywords
text
semantic analysis
data compression
language
huffman
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.)
Expired - Fee Related
Application number
CN201310533958.2A
Other languages
English (en)
Other versions
CN103731154A (zh
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.)
Shaanxi University of Technology
Original Assignee
Shaanxi University of 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 Shaanxi University of Technology filed Critical Shaanxi University of Technology
Priority to CN201310533958.2A priority Critical patent/CN103731154B/zh
Publication of CN103731154A publication Critical patent/CN103731154A/zh
Application granted granted Critical
Publication of CN103731154B publication Critical patent/CN103731154B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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)利用上述步骤1)至步骤6)中的方法的逆运算实现解码,在解压的过程中,将忽略掉的内容进行恢复。
2.根据权利要求1所述的基于语义分析的数据压缩方法,其特征在于,所述文本的分类包括关键字、变量、常量、字符串、字符、注释。
3.根据权利要求1所述的基于语义分析的数据压缩方法,其特征在于,所述基本信息包括类型、频度、内容、长度、编码。
CN201310533958.2A 2013-11-01 2013-11-01 一种基于语义分析的数据压缩算法 Expired - Fee Related CN103731154B (zh)

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 CN103731154A (zh) 2014-04-16
CN103731154B true 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)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102616804B1 (ko) * 2015-05-21 2023-12-26 제로포인트 테크놀로지 에이비 시맨틱 값 데이터 압축 및 압축해제를 위한 방법, 장치 및 시스템
CN107797541B (zh) * 2016-08-29 2020-11-10 河北百亚信息科技有限公司 基于智能家居环境中ZigBee固件升级的镜像文件轻便解压算法
CN108829930B (zh) * 2018-05-10 2022-08-19 广东省智能制造研究所 三维数字化工艺设计mbd模型的轻量化方法
CN109379572B (zh) * 2018-12-04 2020-03-06 北京达佳互联信息技术有限公司 图像转换方法、装置、电子设备及存储介质
CN111737388B (zh) * 2020-06-11 2024-01-30 中国石油天然气股份有限公司 一种地质图件数据存储处理方法

Citations (3)

* Cited by examiner, † Cited by third party
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 西安电子科技大学 基于多层哈希结构与游程编码的数据无损压缩方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
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 西安电子科技大学 基于多层哈希结构与游程编码的数据无损压缩方法

Also Published As

Publication number Publication date
CN103731154A (zh) 2014-04-16

Similar Documents

Publication Publication Date Title
CN103731154B (zh) 一种基于语义分析的数据压缩算法
CN110518917B (zh) 基于Huffman编码的LZW数据压缩方法及系统
CN103236847B (zh) 基于多层哈希结构与游程编码的数据无损压缩方法
CN101783788B (zh) 文件压缩、解压缩方法、装置及压缩文件搜索方法、装置
US11178212B2 (en) Compressing and transmitting structured information
CN104753540A (zh) 数据压缩方法、数据解压方法和装置
WO2010044100A1 (en) Lossless compression
CN104467868A (zh) 中文文本压缩方法
Bedruz et al. Comparison of Huffman Algorithm and Lempel-Ziv Algorithm for audio, image and text compression
CN103701470B (zh) 一种流智能预测差异压缩算法及相应的控制装置
Nandi et al. Modified compression techniques based on optimality of LZW code (MOLZW)
CN104682966B (zh) 列表数据的无损压缩方法
Mahmood et al. A feasible 6 bit text database compression scheme with character encoding (6BC)
Jacob et al. Comparative analysis of lossless text compression techniques
Tank Implementation of Lempel-ZIV algorithm for lossless compression using VHDL
CN104867496A (zh) 一种基于mdct量化系数的小值区的aac音频隐写和提取方法
Shanmugasundaram et al. Text preprocessing using enhanced intelligent dictionary based encoding (EIDBE)
Mahmood et al. An Efficient Text Database Compression Technique using 6 Bit Character Encoding by Table Look Up
Swarnkar et al. An Implementation of Efficient Text Data Compression
Huang et al. Lossless compression algorithm for multi-source sensor data research
Rincy et al. Preprocessed text compression method for Malayalam text files
Yang et al. Universal source coding theory based on grammar transforms
Doshi et al. “Quad-Byte Transformation as a Pre-processing to Arithmetic Coding
Begum et al. An Efficient Text Compression for Massive Volume of Data
CN109698704B (zh) 比对型基因测序数据解压方法、系统及计算机可读介质

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

Granted publication date: 20170111

Termination date: 20211101

CF01 Termination of patent right due to non-payment of annual fee