CN102122960B - 一种针对二进制数据的多字符组合无损数据压缩方法 - Google Patents

一种针对二进制数据的多字符组合无损数据压缩方法 Download PDF

Info

Publication number
CN102122960B
CN102122960B CN 201110009620 CN201110009620A CN102122960B CN 102122960 B CN102122960 B CN 102122960B CN 201110009620 CN201110009620 CN 201110009620 CN 201110009620 A CN201110009620 A CN 201110009620A CN 102122960 B CN102122960 B CN 102122960B
Authority
CN
China
Prior art keywords
character
dictionary
compression
data
compressed
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
CN 201110009620
Other languages
English (en)
Other versions
CN102122960A (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.)
Xian University of Technology
Original Assignee
Xian 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 Xian University of Technology filed Critical Xian University of Technology
Priority to CN 201110009620 priority Critical patent/CN102122960B/zh
Publication of CN102122960A publication Critical patent/CN102122960A/zh
Application granted granted Critical
Publication of CN102122960B publication Critical patent/CN102122960B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

一种针对二进制数据的多字符组合无损数据压缩方法,数据的压缩包括对待压缩的原始二进制数据运用多字符组合式字典压缩算法的初次压缩,以及对初次压缩得到的字符串运用Huffmnan算法进行的二次压缩;数据的解压缩:包括依次完成Huffmnan算法的解压缩,以及字典构建方式的无损压缩模型的解压缩。本发明解决了数据完整性还原的问题,不仅压缩比高,而且算法复杂度低,压缩速度较快,为数据的无损压缩提供了新的思路。

Description

一种针对二进制数据的多字符组合无损数据压缩方法
技术领域
本发明属于数据处理技术领域,涉及一种针对二进制数据的多字符组合无损数据压缩方法。
背景技术
信息技术的飞速发展,不断影响着人类的日常生活和工作,改变着人们的活动方式。目前,人类社会已经进入了信息时代。人们每天都可以通过各种渠道(如PDA、网络、电视、广播等)获得大量的信息,这些信息给我们的生活增加了很多色彩。
然而,庞大的信息数据量一方面带来数据存储和传输的困难,另一方面出于通信带宽和通信传输速度的限制,使得数据不经过压缩处理而直接传输所付出的代价极大。虽然存储器硬件容量在不断增加,在一定程度上缓解了数据存储的需求,但现阶段解决海量数据存储和传输问题的根本途径还是要研究更为有效的压缩方法。
数据压缩技术分类一般是分为无损压缩和有损压缩。对于不是很注重细节的数据如图像、视频等,当今流行的压缩技术大都采用有损压缩技术,如MPEG,H.263,H.264等。而对于程序、电子档案、指纹识别以及医学图像等重要信息,则必须采用无损压缩技术,以使数据恢复时不会破坏其完整性。
目前现有无损压缩算法中,有压缩速度较慢,但是压缩比高的算法;也有压缩速度较快,但压缩比较低的算法;但是压缩比高,压缩速度快的算法还不多见。
发明内容
本发明的目的是提供了一种针对二进制数据的多字符组合无损数据压缩方法,解决了数据完整性压缩和还原的问题,不仅压缩比高,而且算法复杂度低,压缩速度较快,为数据的无损压缩提供了新的思路。
本发明所采用的技术方案是,一种针对二进制数据的多字符组合无损数据压缩方法,包括以下步骤:
A、数据的压缩:包括对待压缩的原始二进制数据运用多字符组合捆绑式字典压缩算法进行的初次压缩,以及对初次压缩得到的字符串运用Huffman算法进行的二次压缩;
其中,初次压缩包括:
1)、选定组合因子个数m,m的选值满足:2≤m≤8;
2)、初始化字典:将组合因子个数为m的二进制字符排列组合得到的不同字符串,以及特殊字符和自定义字符作为字典条目构建字典,并依次赋予字典序号,其中,所述二进制字符排列组合得到的字符串的个数n满足:n=2m
3)、初次压缩数据:依次读入待压缩的原始二进制数据,先读入待压缩字符串的前m个字符作为前缀,再读入接下来的m个字符作为后缀,将前缀和后缀组成的2m个字符作为整体,在字典中查找是否有相同条目;若有相同条目,则将前2m个字符在字典中的序号作为前缀,再读入m个字符作为后缀,将其作为整体再在字典中查找是否有相同条目,若有相同条目,按照此做法继续进行;若无相同条目,则先将这2m个字符添加到字典中,作为新的字典条目,并赋予字典序号,再将前缀m个字符对应的字典条目的序号输出,舍去前缀的m个字符,将后缀作为前缀,再读入待压缩原始数据的m个字符,作为后缀,把现有的2m个字符作为整体再在字典中查找是否有相同条目,依次循环直至读入全部待压缩的原始二进制数据,最终得到初次压缩后的字符串;
二次压缩包括:
4)、对上述步骤3)得到的字符串中的每个字符进行概率统计,使用的公式为:
P ( X ) = Σ x i ∈ S P ( x i )
其中,P(X)表示整个字符串中某一字符X出现的总概率,S表示整个字符串,P(xi)表示每一个X出现的概率;
5)、根据步骤4)得到的概率统计结果,运用Huffman算法对步骤3)得到的字符串进行进行编码储存,最终实现数据的无损压缩;
B、数据的解压缩:包括依次完成Huffman算法的解压缩,以及多字符组合捆绑式字典压缩算法的解压缩。
其中,数据压缩的过程中,步骤3)里,字典查找采用哈希算法。
本发明的针对二进制数据的多字符组合无损数据压缩方法主要优点是压缩速度快,压缩比高。其基于多字符组合捆绑构建字典思想的无损压缩方法,该方法突出的特点是打破了LZ系列字典算法单个处理源字符流的方式,将多个待处理字符组合捆绑起来一起处理,并计算出它们的每种不同排列的组合方式,随后把按照不同排列组合构成的字符串存入字典,这样构建无损压缩模型的好处是可以大大降低压缩后的数据量,进而提高信道的传输和存储器的存储能力,对无损压缩算法的创新开发,尤其是对LZ系列压缩算法的发展具有重要意义。
具体实施方式
下面结合附图对本发明进行详细说明。
本发明多字符组合无损数据压缩方法,包括以下步骤:
A、数据的压缩:包括对待压缩的原始二进制数据运用多字符组合式字典压缩算法进行的初次压缩,以及对初次压缩得到的字符串运用Huffman算法进行的二次压缩;
其中,初次压缩包括:
1)、选定组合因子个数m,m的选值满足:2≤m≤8,组合因子即每次读入字符的个数;
本发明初次压缩中字典压缩算法采用多字符组合捆绑式字典算法,其改变了传统字典算法逐个处理字符的方式,取而代之,每次读入m个字符,作为一个字符单元,即所谓“捆绑”,而后进行后续处理。
2)、初始化字典:将组合因子个数为m的二进制字符排列组合得到的不同字符串,以及特殊字符和自定义字符作为字典条目构建字典,并依次赋予字典序号,其中,所述二进制字符排列组合得到的字符串的个数n满足:n=2m
二进制数据只包含“1”和“0”两种字符。例如,若选取组合因子m=2,则二进制字符排列组合后有四种不同字符串,即“00”、“01”、“10”以及“11”。若选取m=3,则二进制字符排列组合后有八种不同字符串,即“000”、“001”、“010”、“011”、“100”、“101”、“110”以及“111”。不难发现,组合因子选取越大,组合后出现的“捆绑”字符的形式越多。
用L表示待压缩原始二进制数据的长度,那么采用上述字符组合捆绑方法的待压缩二进制数据的长度仅为L/m。可以看出,组合因子m选值越大,L/m的值就会相对减少,但初始化字典中所含的条目数量会以2m的数量级增加。要求m的取值不超过8,否则,初始化时字典中条目数过多,会引起字典的快速膨胀,导致压缩速度的降低。
现有技术中,基于字典的无损压缩算法初始化字典时是将0-255项共256个ASCII码逐个初始化进字典中,这会加入许多无用字符,一定程度上增加了查找字典的时间。很多特定领域的数据仅包含特定的字符,本发明中,仅将需要的这些特征字符初始化到字典中,可以相对降低查找字典的时间。
对于二进制数据,若组合因子个数m的选值为2,则把“00”、“01”、“10”以及“11”四项先初始化到字典中,并给每一组字符编号;若组合因子选取为3,则把“000”、“001”、“010”、“011”、“100”、“101”、“110”以及“111”八项先初始化到字典中,再给这八项内容编号。由于原始数据往往都存在某些特殊字符,如清空符“Clear”,结束符“End”,以及一些自定义字符,将这些字符也初始化到字典中,并赋予编号即可。
3)、初次压缩数据:依次读入待压缩的原始二进制数据,先读入待压缩字符串的前m个字符作为前缀,再读入接下来的m个字符作为后缀,将前缀和后缀组成的2m个字符作为整体,在字典中查找是否有相同条目;若有相同条目,则将前2m个字符在字典中的序号作为前缀,再读入m个字符作为后缀,将其作为整体再在字典中查找是否有相同条目,若有相同条目,按照此做法继续进行;若无相同条目,则先将这2m个字符添加到字典中,作为新的字典条目,并赋予字典序号,再将前缀m个字符对应的字典条目的序号输出,舍去前缀的m个字符,将后缀作为新的前缀,再读入待压缩原始数据的m个字符,作为新的后缀,把现有的2m个字符作为整体再在字典中查找是否有相同条目,依次循环直至读入全部待压缩的原始二进制数据,最终得到初次压缩后的字符串;其中,字典查找采用哈希算法。
由于哈希算法将所要查找内容和其存储位置之间建立对应关系,在查找时根据此关系直接找到所需要内容,时间复杂度为O(1),能够快速定位到查找内容的地址编号上面,节省字典查找时间。
上述过程表明,初次压缩的速度可以随着组合因子m的变大而增加,但是,不同对象的二进制数据变化规律不尽相同,压缩比不一定随之增加。
二次压缩包括:
4)、对上述步骤3)得到的字符串中的每个字符进行概率统计,使用的公式为:
P ( X ) = Σ x i ∈ S P ( x i )
其中,P(X)表示整个字符串中某一字符X出现的总概率,S表示整个字符串,P(xi)表示每一个X出现的概率;
在经过初次压缩后,由于多字符组合捆绑式压缩算法本身的编码特点,其输出是字典的序号,即输出是由0-9这十个数字组成的字符串,所以压缩后的数据里面将存在大量不连续重复字符。此时数据量会大大减少,仅需统计0-9这十个数字出现的概率即可。
5)、根据步骤4)得到的概率统计结果,运用Huffman算法对步骤3)得到的字符串进行进行编码储存,以实现数据的无损压缩;
B、数据的解压缩:包括依次完成Huffman算法的解压缩,以及多字符组合捆绑式字典压缩算法的解压缩,解压缩时可完全恢复原始数据,进而满足准确、实时无损的要求。
实施例:
设待压缩的原输入数据为:101010011001100011......。
A、数据的压缩:包括该对待压缩的原始二进制数据运用多字符组合捆绑式字典压缩算法的初次压缩,以及对初次压缩得到的字符串运用Huffman算法进行的二次压缩;
其中,所述初次压缩包括:
1)、选定组合因子个数m的选值为2;
2)、将组合因子个数为m为2的二进制字符排列组合得到字符串为:“00”、“01”、“10”以及“11”,特殊字符和自定义字符选取“Clear”与“End”两项,构建字典如表1所示:
表1
0 1 2 3 4 5
00 01 10 11 Clear End
表1中,第一行为字符的编码,即字典序号,第二行是每个编号对应存储的内容。不难发现,这样简化后的字典条目数量不是256,仅含有需要的组合捆绑后的字符串项和特殊字符相等,共6项,字典大大简化,起到了减少初始化字典容量的作用。
3)先读入待压缩字符串的前2个字符“10”作为前缀,再读入接下来的2个字符“10”作为后缀,将“1010”作为整体,在如表1所示的字典中的条目进行匹配,即查找是否有相同条目。查找结果为无相同条目,即“不认识”,则先将“1010”添加到字典中,作为新的字典条目,并赋予字典序号6,此时,生成字典如表2所示:
表2
0 1 2 3 4 5 6
00 01 10 11 Clear End 1010
接着,将后缀“10”作为新的前缀,再读入待压缩原始数据的2个字符“10”,作为新的后缀,将“1010”作为整体,在如表2所示的字典中的条目进行匹配,即查找是否有相同条目。此时,字典中已经存在“1010”,且字典编号为6,则定义为“认识”,字典结构不变,不添加字典新条目,并将“1010”的编号“6”作为前缀,再读入下2个字符“01”,把“601”作为整体再与字典的条目内容进行匹配。可以发现,用“6”代替了两个“10”的编号“2”,即起到了提高压缩比的效果。如此重复,直到待压缩字符串全部处理完毕。其中,字典查找采用哈希算法。
如表3所示为上述初次压缩中步骤3的过程,
表3
第几步 前缀 后缀 读入 认识(Y/N) 输出 编号
1 10 (10)
2 10 10 (10 10) N 2 6
3 10 10 (10 10) Y
4 6 01 (6 10) N 6 7
5 01 10 (01 10) N 1 8
6 10 01 (10 01) N 2 9
7 01 10 (01 10) Y
8 8 00 (8 00) N 8 10
9 00 11 (00 11) N 0 11
……… ……… ……… ……… ……… ……… ………
初次压缩后的输出是字符串对应的字典序号,即261280......,与原始数据流101010011001100011......相比,字符数减少很多,起到了压缩效果。
二次压缩包括:
4)、对上述步骤3)得到的字符串中的0-9的每个字符进行概率统计,使用的公式为:
P ( X ) = Σ x i ∈ S P ( x i )
其中,P(X)表示整个字符串中某一字符X出现的总概率,S表示整个字符串,P(xi)表示每一个X出现的概率;
5)、根据步骤4)得到的概率统计结果,运用Huffman算法对步骤3)得到的字符串进行进行编码储存,即将出现概率大的字符赋予短码,出现概率小的字符赋予长码,以实现数据的无损压缩;
B、数据的解压缩:根据压缩时采用压缩算法的反向顺序依次解压数据流,即包括依次完成Huffman算法的解压缩,以及多字符组合捆绑式字典构建方式的无损压缩模型的解压缩,从而达到完整地复原原始数据的目的。

Claims (2)

1.一种针对二进制数据的多字符组合无损数据压缩方法,其特征在于,包括以下步骤:
A、数据的压缩:包括对待压缩的原始二进制数据运用多字符组合捆绑式字典压缩算法进行的初次压缩,以及对初次压缩得到的字符串运用Huffman算法进行的二次压缩;
其中,所述初次压缩包括:
1)、选定组合因子个数m,m的选值满足:2≤m≤8;
2)、初始化字典:将组合因子个数为m的二进制字符排列组合得到的不同字符串,以及特殊字符和自定义字符作为字典条目构建字典,并依次赋予字典序号,其中,所述二进制字符排列组合得到的字符串的个数n满足:n=2m
3)、初次压缩数据:依次读入待压缩的原始二进制数据,先读入待压缩字符串的前m个字符作为前缀,再读入接下来的m个字符作为后缀,将前缀和后缀组成的2m个字符作为整体,在字典中查找是否有相同条目;若有相同条目,则将前2m个字符在字典中的序号作为前缀,再读入m个字符作为后缀,将其作为整体再在字典中查找是否有相同条目,若有相同条目,按照此做法继续进行;若无相同条目,则先将这2m个字符添加到字典中,作为新的字典条目,并赋予字典序号,再将前缀m个字符对应的字典条目的序号输出,舍去前缀的m个字符,将后缀作为前缀,再读入待压缩原始数据的m个字符,作为后缀,把现有的2m个字符作为整体再在字典中查找是否有相同条目,依次循环直至读入全部待压缩的原始二进制数据,最终得到初次压缩后的字符串;
所述二次压缩包括:
4)、对上述步骤3)得到的字符串中的每个字符进行概率统计,使用的公式为:
P ( X ) = Σ x i ∈ S P ( x i )
其中,P(X)表示整个字符串中某一字符X出现的总概率,S表示整个字符串,P(xi)表示每一个X出现的概率;
5)、根据步骤4)得到的概率统计结果,运用Huffman算法对步骤3)得到的字符串进行编码储存,最终实现数据的无损压缩;
B、数据的解压缩:包括依次完成Huffman算法的解压缩,以及多字符组合捆绑式字典压缩算法的解压缩。
2.按照权利要求1所述的针对二进制数据的多字符组合无损数据压缩方法,其特征在于,所述数据压缩的过程中,步骤3)里,字典查找采用哈希算法。
CN 201110009620 2011-01-18 2011-01-18 一种针对二进制数据的多字符组合无损数据压缩方法 Expired - Fee Related CN102122960B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110009620 CN102122960B (zh) 2011-01-18 2011-01-18 一种针对二进制数据的多字符组合无损数据压缩方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110009620 CN102122960B (zh) 2011-01-18 2011-01-18 一种针对二进制数据的多字符组合无损数据压缩方法

Publications (2)

Publication Number Publication Date
CN102122960A CN102122960A (zh) 2011-07-13
CN102122960B true CN102122960B (zh) 2013-11-06

Family

ID=44251430

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110009620 Expired - Fee Related CN102122960B (zh) 2011-01-18 2011-01-18 一种针对二进制数据的多字符组合无损数据压缩方法

Country Status (1)

Country Link
CN (1) CN102122960B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102857230B (zh) * 2012-09-21 2015-05-20 中国科学院武汉物理与数学研究所 一种基于无损压缩数据传输技术的高速程序控制器
CN103701470B (zh) * 2013-12-27 2017-02-01 上海新浩艺软件有限公司 一种流智能预测差异压缩算法及相应的控制装置
CN107204776A (zh) * 2016-03-18 2017-09-26 余海箭 一种基于浮点数情况的Web3D数据压缩算法
CN106549674B (zh) * 2016-10-28 2019-07-23 银江股份有限公司 一种面向电子病历的数据压缩及解压方法
CN108513146A (zh) * 2017-02-27 2018-09-07 晨星半导体股份有限公司 收视记录处理电路与相关方法
CN110799959B (zh) * 2017-05-26 2024-02-27 深圳配天智能技术研究院有限公司 一种数据压缩方法与解压方法以及相关设备
CN109039343A (zh) * 2017-06-12 2018-12-18 吕志强 计算式二进制数据可逆性压缩法
CN109698704B (zh) * 2017-10-20 2022-12-02 人和未来生物科技(长沙)有限公司 比对型基因测序数据解压方法、系统及计算机可读介质
CN108092667B (zh) * 2017-11-23 2021-05-14 北京百度网讯科技有限公司 压缩时序数据以及查询时序数据的方法、装置
CN108233942B (zh) * 2018-01-08 2022-02-22 武汉斗鱼网络科技有限公司 一种用于数据存储的方法、装置及计算机设备
CN109412604A (zh) * 2018-12-05 2019-03-01 云孚科技(北京)有限公司 一种基于语言模型的数据压缩方法
CN111510419B (zh) * 2019-01-31 2021-03-30 华为技术有限公司 一种数据压缩的方法及基站
CN111628778B (zh) * 2019-02-28 2023-05-23 深圳捷誊技术有限公司 一种基于动态规划的无损压缩方法和装置
CN111865557B (zh) * 2019-04-24 2023-12-05 杭州萤石软件有限公司 一种校验码生成方法及装置
CN110719105B (zh) * 2019-09-16 2023-03-28 上海御渡半导体科技有限公司 一种测试向量的无损压缩和解压缩方法
CN113163198B (zh) * 2021-03-19 2022-12-06 北京百度网讯科技有限公司 图像压缩方法、解压方法、装置、设备及存储介质
CN113329442B (zh) * 2021-04-20 2022-02-11 北京连山科技股份有限公司 一种通用的多链路载荷压缩与解压缩方法和系统
CN115276666B (zh) * 2022-09-28 2022-12-20 汉达科技发展集团有限公司 一种装备训练模拟器数据高效传输方法
CN116318173B (zh) * 2023-05-10 2023-08-11 青岛农村商业银行股份有限公司 一种金融融资服务数字智能管理系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5703581A (en) * 1996-06-14 1997-12-30 Lucent Technologies Inc. Method and apparatus for data compression and decompression
CN1593011A (zh) * 2001-02-13 2005-03-09 莫塞德技术股份有限公司 适合数据压缩的方法和设置
WO2010133763A1 (en) * 2009-05-19 2010-11-25 Nokia Corporation Method for variable length coding and apparatus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5703581A (en) * 1996-06-14 1997-12-30 Lucent Technologies Inc. Method and apparatus for data compression and decompression
CN1593011A (zh) * 2001-02-13 2005-03-09 莫塞德技术股份有限公司 适合数据压缩的方法和设置
WO2010133763A1 (en) * 2009-05-19 2010-11-25 Nokia Corporation Method for variable length coding and apparatus

Also Published As

Publication number Publication date
CN102122960A (zh) 2011-07-13

Similar Documents

Publication Publication Date Title
CN102122960B (zh) 一种针对二进制数据的多字符组合无损数据压缩方法
US7827187B2 (en) Frequency partitioning: entropy compression with fixed size fields
CN106407285A (zh) 一种基于rle和lzw的优化比特文件压缩与解压缩方法
CN103858433A (zh) 分层熵编码及解码
CN103067022A (zh) 一种整型数据无损压缩方法、解压缩方法及装置
CN103236847A (zh) 基于多层哈希结构与游程编码的数据无损压缩方法
CN106506007A (zh) 一种无损数据压缩和解压缩装置及其方法
CN115866287B (zh) 一种智慧校园管理平台的数据高效传输方法
CN112953550A (zh) 数据压缩的方法、电子设备及存储介质
CN104869425A (zh) 一种基于纹理图像相似性的压缩和解压缩方法
CN110569967A (zh) 一种基于算术编码的神经网络模型压缩加密方法及系统
CN116016606B (zh) 一种基于智慧云的污水处理运维数据高效管理系统
CN100546201C (zh) 基于对霍夫曼编码树分段的霍夫曼编码和解码方法和设备
CN103546161A (zh) 基于二进制位处理的无损压缩方法
JPH05241777A (ja) データ圧縮方式
CN104682966B (zh) 列表数据的无损压缩方法
Mahmood et al. A feasible 6 bit text database compression scheme with character encoding (6BC)
CN116471337A (zh) 一种基于bwt和lzw的报文压缩与解压缩方法及设备
RU2437148C1 (ru) Способ сжатия и восстановления сообщений в системах обработки, передачи и хранения текстовой информации
CN206712982U (zh) 一种用于VLSI设计的Huffman编码系统
CN109255090A (zh) 一种web图的索引数据压缩方法
JPH0628149A (ja) 複数種類データのデータ圧縮方法
CN111275184B (zh) 一种实现神经网络压缩的方法、系统、装置和存储介质
Thakur et al. An improved symbol reduction technique based Huffman coder for efficient entropy coding in the transform coders
CN112200301B (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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20131106

Termination date: 20200118

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