CN107565970B - 一种基于特征识别的混合无损压缩方法及装置 - Google Patents
一种基于特征识别的混合无损压缩方法及装置 Download PDFInfo
- Publication number
- CN107565970B CN107565970B CN201710710582.6A CN201710710582A CN107565970B CN 107565970 B CN107565970 B CN 107565970B CN 201710710582 A CN201710710582 A CN 201710710582A CN 107565970 B CN107565970 B CN 107565970B
- Authority
- CN
- China
- Prior art keywords
- file
- region
- frequency
- character
- module
- 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.)
- Active
Links
- 238000007906 compression Methods 0.000 title claims abstract description 45
- 230000006835 compression Effects 0.000 title claims abstract description 45
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000004458 analytical method Methods 0.000 claims abstract description 4
- 230000006837 decompression Effects 0.000 claims description 26
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明涉及一种基于特征识别的混合无损压缩方法及装置,其特征在于,包括如下步骤:读取文件并对读取的文件预分析进行区域划分;对划分的每个非连续字符区域进行各个字符的频率计算统计;根据频率的方差值的大小选择不同的算法编码;确定压缩算法的同时,修改文件区域数据,输出压缩文件。本发明的技术方案通过对待压缩文件的预分析,根据文件区域的不同特性,针对文件的数据分布选择合适算法,可以提高压缩效率。
Description
技术领域
本发明属于无损数据压缩技术领域,具体涉及一种基于特征识别的混合无损压缩方法及装置。
背景技术
无损压缩算法的基本原理是,任意一个非随机文件内部都含有重复的数据,这些重复的数据可以使用确定字符或短语出现概率的统计建模技术来压缩。此模型可以为特定的短语或者字符生成代码,基于它们出现的频率,配置最短的代码给最常用的字符。这些压缩技术包括熵编码(entropy encoding)、游程编码(run-length encoding)以及字典压缩。运用这些压缩技术以及其它技术,一个字节长度的字符或者字符串可以用很少的位来表示,从而大量的重复数据被移除。
熵编码:典型的是哈夫曼编码是可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就称Huffman编码。
游程编码(RLE):将一扫描行中颜色值相同的相邻像素用两个字节来表示,第一个字节是一个计数值,用于指定像素重复的次数;第二个字节是具体像素的值。
字典压缩:代表算法为LZ77,算法描述如下,如果文件中有两块内容相同的话,那么只要知道前一块的位置和大小,我们就可以确定后一块的内容。所以我们可以用(两者之间的距离,相同内容的长度)这样一对信息,来替换后一块内容。由于(两者之间的距离,相同内容的长度)这一对信息的大小小于被替换内容的大小,所以文件得到了压缩。
Huffman在1952年根据香农(Shannon)在1948年和范若(Fano)在1949年阐述的这种编码思想提出了一种不定长编码的方法,也称哈夫曼(Huffman)编码。哈夫曼编码的基本方法是先对文件扫描一遍,计算出各种数据出现的概率,按概率的大小指定不同长度的唯一码字,由此得到一张该文件的霍夫曼码表。
哈夫曼编码步骤:
(1)对给定的n个权值{W1,W2,W3,...,Wi,...,Wn}构成n棵二叉树的初始集合F={T1,T2,T3,...,Ti,...,Tn},其中每棵二叉树Ti中只有一个权值为Wi的根结点,它的左右子树均为空。
(2)在F中选取两棵根结点权值最小的树作为新构造的二叉树的左右子树,新二叉树的根结点的权值为其左右子树的根结点的权值之和。
(3)从F中删除这两棵树,并把这棵新的二叉树同样以升序排列加入到集合F中。
(4)重复(2)和(3)两步,直到集合F中只有一棵二叉树为止。
目前使用的压缩算法,一般使用一种算法实现或者多种算法混合使用。例如zip压缩,第一步使用LZ压缩算法进行初步,第二步再使用哈夫曼编码压缩。现实应用中,某一特定文件,数据的分布有其特征,特定压缩软件或算法无法动态针对文件的分布选择合适的压缩算法。此为现有技术的不足之处。
发明内容
本发明的目的在于,针对上述现有技术存在的缺陷,提供设计一种基于特征识别的混合无损压缩方法及装置,以解决上述技术问题。
为了达到上述目的,本发明的技术方案是:
一种基于特征识别的混合无损压缩方法,包括如下步骤:
读取文件并对读取的文件预分析进行区域划分;
对划分的每个非连续字符区域进行各个字符的频率计算统计;
根据频率的方差值的大小选择不同的算法编码;确定压缩算法的同时,修改文件区域数据,输出压缩文件。
进一步的,步骤读取文件并对读取的文件预分析进行区域划分具体包括:
顺序读取文件,读取过程中记录每段连续超过Y个相同字节的分布区域;每个区域通过起始地址与长度标记;
读取完毕得到文件区域数据,此时文件扩展为文件区域数据与文件原始数据的组合文件;文件区域数据存放在组合文件的开始部分。
进一步的,对划分的每个非连续字符区域进行各个字符的频率计算统计,具体实现包括;
记录每个非连续字符区域总字符数为N;
频率的平均值为M=1/N;
进一步的,根据频率的方差值的大小选择不同的算法编码;确定压缩算法的同时,修改文件区域数据,具体包括:
若S的取值大于设定阈值,选择哈夫曼编码,否则选择字典压缩LZ77编码;确定压缩算法的同时在每个区域标记之后添加压缩算法标志,组成编码标识,所述编码标识使用一个字节表示。
进一步的,步骤对划分的每个非连续字符区域进行各个字符的频率计算统计还包括:对连续字符区域,不进行字符频率统计,直接选用游程编码。
进一步的,该方法还包括数据解压缩,数据解压缩过程具体包括:读取压缩文件的编码标识,根据编码标识选择对应的解压算法输出到需解压文件,完成压缩文件的解压。
一种基于特征识别的混合无损压缩装置,包括文件处理模块和判断模块;
文件处理模块读取文件并对读取的文件分析进行区域划分;
所述文件处理模块包括计算单元,计算单元对划分的每个非连续字符区域各个字符进行频率的计算统计;
判断模块根据计算单元输出的频率的方差值的大小选择不同的算法编码;同时文件处理模块修改文件区域数据,文件处理模块还包括控制单元,控制单元控制编码模块对对应的区域字符进行编码,输出压缩数据流文件到存储模块。
进一步的,该装置还包括计数模块,所述计数模块与所述文件处理模块连接;
文件处理模块顺序读取文件过程中计数模块对读取过程中每个字节进行计数并记录每段连续超过Y个相同字节的分布区域;每个区域通过起始地址与长度标记,文件处理模块根据计数模块对不同字节的计数值对文件进行区域划分。
进一步的,所述计算单元与计数模块连接,计算单元根据计数模块对每个非连续字符区域各个字符的计数值进行各个字符的频率计算统计。
进一步的,文件处理模块读取存储模块中压缩文件的编码标识,根据编码标识选择对应的解压算法输出到需解压文件,控制单元控制解压模块完成压缩文件的解压。
本发明的有益效果在于,本发明的技术方案通过对待压缩文件的预分析,根据文件区域的不同特性,针对文件的数据分布选择合适算法,可以提高压缩效率。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
图1为本实施例提供的一种基于特征识别的混合无损压缩过程流程图。
图2为本实施例提供的解压过程流程图。
图3为本实施例提供的一种基于特征识别的混合无损压缩装置结构框图。
图4为组合文件格式。
图5为修改文件区域数据后组合文件的格式。
图6为文件压缩前后的对比示图。
其中,1-文件处理模块,2-计数模块,3-判断模块,4-编码模块,5-解码模块,6-存储模块,7-计算单元,8-控制单元。
具体实施方式
下面结合附图并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。
图如1所示,本实施例提供的一种基于特征识别的混合无损压缩方法,包括如下步骤:
顺序读取文件,读取过程中记录每段连续超过32个相同字节的分布区域;每个区域通过起始地址与长度标记;最多每个区域包含相同65536个相同字节。
读取完毕得到文件区域数据,此时文件扩展为文件区域数据与文件原始数据的组合文件如图4所示;文件区域数据存放在组合文件的开始部分。
对划分的每个非连续字符区域进行各个字符的频率计算统计;一个字节为8bits,总共有256个字符。根据字符的频率特征确定压缩算法:
频率平均值:M=1/256;
如果s的取值大于1/32,选择哈夫曼编码;否则选择字典压缩LZ77编码。
针对连续字符区域,不进行频率统计,选用游程RLE编码。
确定压缩算法的同时,修改文件区域数据,在每个区域标记之后添加压缩算法标志,使用一个字节表示:
0x00:RLE;0x01:哈夫曼;0x02:LZ77;这样组合文件格式变为图5所示。
为了区分编码,每个压缩区域的开始部分使用一个字节标识编码:0x00:RLE;0x01:哈夫曼;0x02:LZ77;
此标识存在于压缩后的数据中并且与修改后的文件区域内的标识一致。顺序使用了三种压缩编码,压缩前后的文件对比如图6所示。
如图2所示,文件解压具体步骤如下:
读取带解压文件的编码标识;并根据读取到的编码标识选择对应的算法输出到解压文件,完成压缩文件的解压。
如图3所示,一种基于特征识别的混合无损压缩装置,包括文件处理模块1和判断模块3;
文件处理模块1读取文件并对读取的文件分析进行区域划分;
所述文件处理模块1包括计算单元7,计算单元7对划分的每个非连续字符区域各个字符进行频率的计算统计;
判断模块3根据计算单元7输出的频率的方差值的大小选择不同的算法编码;同时文件处理模块1修改文件区域数据,文件处理模块1还包括控制单元8,控制单元8控制编码模块4对对应的区域字符进行编码,输出压缩数据流文件到存储模块6。
该装置还包括计数模块2,所述计数模块2与所述文件处理模块1连接;
文件处理模块1顺序读取文件过程中计数模块2对读取过程中每个字节进行计数并记录每段连续超过Y个相同字节的分布区域;每个区域通过起始地址与长度标记,文件处理模块1根据计数模块2对不同字节的计数值对文件进行区域划分。
所述计算单元7与计数模块2连接,计算单元7根据计数模块2对每个非连续字符区域各个字符的计数值进行各个字符的频率计算统计。
文件处理模块1读取存储模块6中压缩文件的编码标识,根据编码标识选择对应的解压算法输出到需解压文件,控制单元8控制解压模块5完成压缩文件的解压。
以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。
Claims (8)
1.一种基于特征识别的混合无损压缩方法,其特征在于,包括如下步骤:
读取文件并对读取的文件预分析进行区域划分;具体包括:顺序读取文件,读取过程中记录每段连续超过Y个相同字节的分布区域;每个区域通过起始地址与长度标记;
读取完毕得到文件区域数据,此时文件扩展为文件区域数据与文件原始数据的组合文件;文件区域数据存放在组合文件的开始部分;
对划分的每个非连续字符区域进行各个字符的频率计算统计;
根据频率的方差值的大小选择不同的算法编码;确定压缩算法的同时,修改文件区域数据,输出压缩文件。
3.根据权利要求2所述的一种基于特征识别的混合无损压缩方法,其特征在于,根据频率的方差值的大小选择不同的算法编码;确定压缩算法的同时,修改文件区域数据,具体包括:
若S的取值大于设定阈值,选择霍夫曼编码,否则选择LZ77编码;确定压缩算法的同时在每个区域标记之后添加压缩算法标志,组成编码标识,所述编码标识使用一个字节表示。
4.根据权利要求1所述的一种基于特征识别的混合无损压缩方法,其特征在于,步骤对划分的每个非连续字符区域进行各个字符的频率计算统计还包括:对连续字符区域,不进行字符频率统计,直接选用RLE编码。
5.根据权利要求3或4所述的一种基于特征识别的混合无损压缩方法,其特征在于,该方法还包括数据解压缩,数据解压缩过程具体包括:读取压缩文件的编码标识,根据编码标识选择对应的解压算法输出到需解压文件,完成压缩文件的解压。
6.一种基于特征识别的混合无损压缩装置,其特征在于,包括文件处理模块和判断模块;
文件处理模块读取文件并对读取的文件分析进行区域划分;
所述文件处理模块包括计算单元,计算单元对划分的每个非连续字符区域各个字符进行频率的计算统计;
判断模块根据计算单元输出的频率的方差值的大小选择不同的算法编码;同时文件处理模块修改文件区域数据,文件处理模块还包括控制单元,控制单元控制编码模块对对应的区域字符进行编码,输出压缩数据流文件到存储模块;
该装置还包括计数模块,所述计数模块与所述文件处理模块连接;
文件处理模块顺序读取文件过程中计数模块对读取过程中每个字节进行计数并记录每段连续超过Y个相同字节的分布区域;每个区域通过起始地址与长度标记,文件处理模块根据计数模块对不同字节的计数值对文件进行区域划分。
7.根据权利要求6所述的一种基于特征识别的混合无损压缩装置,其特征在于,所述计算单元与计数模块连接,计算单元根据计数模块对每个非连续字符区域各个字符的计数值进行各个字符的频率计算统计。
8.根据权利要求7所述的一种基于特征识别的混合无损压缩装置,其特征在于,文件处理模块读取存储模块中压缩文件的编码标识,根据编码标识选择对应的解压算法输出到需解压文件,控制单元控制解压模块完成压缩文件的解压。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710710582.6A CN107565970B (zh) | 2017-08-17 | 2017-08-17 | 一种基于特征识别的混合无损压缩方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710710582.6A CN107565970B (zh) | 2017-08-17 | 2017-08-17 | 一种基于特征识别的混合无损压缩方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107565970A CN107565970A (zh) | 2018-01-09 |
CN107565970B true CN107565970B (zh) | 2021-01-15 |
Family
ID=60976340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710710582.6A Active CN107565970B (zh) | 2017-08-17 | 2017-08-17 | 一种基于特征识别的混合无损压缩方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107565970B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109831211B (zh) * | 2019-02-10 | 2023-04-11 | 张元囝 | 使用控制符的半动态数据压缩算法 |
CN111628778B (zh) * | 2019-02-28 | 2023-05-23 | 深圳捷誊技术有限公司 | 一种基于动态规划的无损压缩方法和装置 |
CN112101548A (zh) * | 2020-09-22 | 2020-12-18 | 珠海格力电器股份有限公司 | 数据压缩方法及装置、数据解压方法及装置、电子设备 |
CN113285720B (zh) * | 2021-05-28 | 2023-07-07 | 中科计算技术西部研究院 | 基因数据无损压缩方法、集成电路及无损压缩设备 |
CN115988569B (zh) * | 2023-03-21 | 2023-06-30 | 浙江省疾病预防控制中心 | 一种蓝牙设备数据快速传输方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217668A (zh) * | 2008-01-14 | 2008-07-09 | 浙江大学 | 基于块分类的混合图像压缩方法 |
CN101299611A (zh) * | 2008-06-30 | 2008-11-05 | 中国电子科技集团公司第二十八研究所 | 一种基于集合游程的数据压缩方法 |
CN102165486A (zh) * | 2008-09-01 | 2011-08-24 | 日本电气株式会社 | 图像特征提取设备 |
CN103067022A (zh) * | 2012-12-19 | 2013-04-24 | 中国石油天然气集团公司 | 一种整型数据无损压缩方法、解压缩方法及装置 |
CN103546160A (zh) * | 2013-09-22 | 2014-01-29 | 上海交通大学 | 基于多参考序列的基因序列分级压缩方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060256380A1 (en) * | 2005-05-10 | 2006-11-16 | Klassen Gary D | Transparent digital images and method of processing and storing same |
-
2017
- 2017-08-17 CN CN201710710582.6A patent/CN107565970B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217668A (zh) * | 2008-01-14 | 2008-07-09 | 浙江大学 | 基于块分类的混合图像压缩方法 |
CN101299611A (zh) * | 2008-06-30 | 2008-11-05 | 中国电子科技集团公司第二十八研究所 | 一种基于集合游程的数据压缩方法 |
CN102165486A (zh) * | 2008-09-01 | 2011-08-24 | 日本电气株式会社 | 图像特征提取设备 |
CN103067022A (zh) * | 2012-12-19 | 2013-04-24 | 中国石油天然气集团公司 | 一种整型数据无损压缩方法、解压缩方法及装置 |
CN103546160A (zh) * | 2013-09-22 | 2014-01-29 | 上海交通大学 | 基于多参考序列的基因序列分级压缩方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107565970A (zh) | 2018-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107565970B (zh) | 一种基于特征识别的混合无损压缩方法及装置 | |
US11044495B1 (en) | Systems and methods for variable length codeword based data encoding and decoding using dynamic memory allocation | |
CN100517979C (zh) | 一种数据压缩及解压缩方法 | |
US5374916A (en) | Automatic electronic data type identification process | |
KR100894002B1 (ko) | 선택적 압축과 복원 및 압축 데이터에 대한 데이터 포맷을위한 장치 및 방법 | |
CN101095284B (zh) | 用于有选择地压缩和解压缩数据的设备与方法 | |
WO2019153700A1 (zh) | 编解码方法、装置及编解码设备 | |
KR101049699B1 (ko) | 데이터의 압축방법 | |
CN108737976B (zh) | 一种基于北斗短报文的压缩传输方法 | |
CN109379598A (zh) | 一种基于fpga实现的图像无损压缩方法 | |
JP2022048930A (ja) | データ圧縮方法、データ圧縮装置、データ圧縮プログラム、データ伸長方法、データ伸長装置およびデータ伸長プログラム | |
US8175403B1 (en) | Iterative backward reference selection with reduced entropy for image compression | |
JP4000266B2 (ja) | データ符号化装置、データ符号化方法、及びそのプログラム | |
KR20160100496A (ko) | 바이너리 클러스터를 이용한 허프만 부호화 효율화 방법 및 그 장치 | |
Patel et al. | Survey of lossless data compression algorithms | |
CN104682966A (zh) | 列表数据的无损压缩方法 | |
KR20160106229A (ko) | 문맥기반 분포데이터의 블럭화를 이용한 허프만 부호화의 효율화 방법 및 그 장치 | |
CN108829930A (zh) | 三维数字化工艺设计mbd模型的轻量化方法 | |
CN114429200A (zh) | 规范化哈夫曼编解码方法及神经网络计算芯片 | |
Ambadekar et al. | Advanced data compression using J-bit Algorithm | |
Rajput et al. | Comparative Study of Data Compression Techniques | |
KR20160102593A (ko) | 분포데이터의 블럭화를 이용한 허프만 부호화의 효율화 방법 및 그 장치 | |
CN116505952B (zh) | 红外码压缩方法、装置、智能设备及存储介质 | |
CN112073069B (zh) | 一种适用于集成电路测试的测试向量无损压缩方法 | |
JPH06202844A (ja) | データ圧縮復元処理装置 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20201202 Address after: 215100 No. 1 Guanpu Road, Guoxiang Street, Wuzhong Economic Development Zone, Suzhou City, Jiangsu Province Applicant after: SUZHOU LANGCHAO INTELLIGENT TECHNOLOGY Co.,Ltd. Address before: 450000 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601 Applicant before: ZHENGZHOU YUNHAI INFORMATION TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |