【技术实现步骤摘要】
一种依托云字典基于字节的无损压缩方法
[0001]本专利技术涉及一种压缩方法,尤其涉及一种依托云字典基于字节的无损压缩方法。
技术介绍
[0002]数据压缩分为有损压缩和无损压缩,无损压缩可分为基于统计模型和基于字典的压缩方法,基于统计模型的压缩方法每次压缩都必然要产生一个源编码和目标编码的对应表,而压缩文件的头文件要包括必要的基本信息和源编码与目标编码对应表,制约了将压缩文件反复压缩以减少文件长度的可能性。
技术实现思路
[0003]专利技术目的:针对上述现有技术的缺陷,本专利技术提供一种依托云字典基于字节的无损压缩方法,缩小头文件长度,对超大文件进行多次压缩,提升压缩效率。
[0004]技术方案:本专利技术的依托云字典基于字节的无损压缩方法包括如下步骤:
[0005]S1:建立云字典;
[0006]S2:用户提交源文件并定义最终压缩文件名称;
[0007]S3:联网获取当前云字典,计算出压缩文件或过程文件的头部字段,
[0008]S4:对源文件以字节为单位进行概率统 ...
【技术保护点】
【技术特征摘要】
1.一种依托云字典基于字节的无损压缩方法,其特征在于,所述无损压缩方法包括如下步骤:S1:建立云字典;S2:用户提交源文件并定义最终压缩文件名称;S3:联网获取当前云字典,计算出压缩文件或过程文件的头部字段,S4:对源文件以字节为单位进行概率统计,通过Huffman算法,生成压缩编码内容;S5:以压缩编码内容为索引,在云字典压缩编码内容字段中查找相同数值,获得压缩编码内容对应元组的压缩编码等级和压缩编码编号;S6:将源文件以压缩编码编号内容中的对应关系进行压缩,将源文件替换成二进制压缩文件,按字节保存,并以二进制“0”补足为整数字节,形成过程文件;S7:比较压缩文件的长度与上一次过程文件的长度,如生成的压缩文件长度大于等于上一次过程文件,将最后一次过程文件命名为最终压缩文件名称并输出;如压缩文件长度不符合要求,则重复S5和S6,直至压缩率符合要求。2.根据权利要求1所述的依托云字典基于字节的无损压缩方法,其特征在于,所述云字典是保存在云端的,用于描述压缩过程中使用的压缩编码及其等级、编号和使用次数的数据库,每个云字典中均包含4个字段:压缩编码等级VL、压缩编码编号VID、压缩编码内容VC和使用次数VN。3.根据权利要求1所述的依托云字典基于字节的无损压缩方法,其特征在于,所述步骤S1包括以下步骤:S11:以压缩编码等级、压缩编码编号、压缩编码内容和使用次数4个字段构建云字典数据库的空表;S12:构建样本数据集,以样本数据集中的样本数据作为待压缩的源文件,通过Huffman算法,以字节为单位进行概率统计,生成压缩编码内容,更新压缩编码内容字段;S13:对样本数据集中的全部样本数据重复S12步骤,充实云字典的表;S14:根据使用次数字段对云字典的表进行降序排列,根据压缩文件的压缩编码编号字段和云字典的压缩编码编号字段的对应关系,对云字典的表中压缩编码等级字段的值进行重置,完成云字典初始版本的建立,此后根据使用过程中云字典各元组使用次数字段数值的变化,建立云字典的新版本。4.根据权利要求3所述的依托云字典基于字节的无损压缩方法,其特征在于,所述步骤S12中更新压缩编码的内容字段包括:若云字典的表中,压缩编码内容字段中没有相同的值,则在表中添加一个新的元组,将生成的压缩编码内容添加到新元组的压缩编码内容字段,按序将压缩编码编号添加到新元组的压缩编码编号字段,若云字典的表中,压缩编码内容字段中有相同的值,则该元组使用次数字段的值自增1。5.根据权利要求3所述的依托云字典基于字节的无损压缩方法,其特征在于,所述步骤S12包括:将其中使用次数字段数值最大的2
39
个元组的压缩编码等级字段的值置为1,同时将这2
39
个元组的压缩编码编号字段的值根据使用次数降序排列依次置为5个字节的十六进制数“0000000000”~“7FFFFFFFFF”的值,再以此类推,根据使用次数字段降序重置压缩编码等级字段等级为2~79的元组中压缩编码等级字段和压缩编码编号字段的值。6.根据权利要求1所述的依托云字典基于字节的无损压缩方法,其特征在于,所述步骤
S3中压缩文件或过程文件的头部字段包括版本号字段V、文件名长度字段FNL、文件名字段FN、文件长度字段FL、压缩编码编号字段CID;其中版本号字段用于保存云字典的版本号,每个版本号均对应一个云字典,占1个字节,以无符号二进制数表示,其有效数值范围为1~255,当值为0时,表示错误;文件名长度字段保存压缩文件头部中源文件名的长度,占1个字节,以无符号二进制数表示,其有效数值范围为0~255,当值为0时,表示FN段中保存的是FN段所占用的字节数和过程文件的十进制编号;当FNL字段中数值为1~255时,表示FN字段中保存的是原始文件名称,此时FNL字段中数值表示FN字段所占用的字节数;FN字段保存本次压缩前的源文件名或者过程文件名,占1~255个字节,若本次压缩...
【专利技术属性】
技术研发人员:吴昊,吴笑雯,张云,张延年,易星,
申请(专利权)人:南京交通职业技术学院,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。