【技术实现步骤摘要】
一种基于动态规划的无损压缩方法和装置
本专利技术涉及无损压缩
,特别涉及一种基于动态规划的无损压缩方法和装置。
技术介绍
LZ77压缩算法(一种典型的无损压缩算法)采用字典的方式进行压缩,是一个简单但十分高效的数据压缩算法。其方式就是把数据中一些可以组织成短语(最长字符)的字符加入字典,然后再有相同字符出现采用标记来代替字典中的短语,如此通过标记代替多数重复出现的方式以进行压缩。即通过发现数据中存在的重复性来缩减原始输入数据大小。LZ77算法主要可以切分为两个步骤,步骤一是重复数据的发现,步骤二是重复数据的选择。现有的LZ77算法在重复数据选择时一般采用的是贪心算法,即在按顺序压缩过程中一旦发现存在重复数据,就会选择按照发现的重复数据形式压缩,而不会去考虑是否存有更优的重复数据选择方案,来使得整体数据的压缩率更高,致使容易出现整体数据压缩率不是最优的情况。
技术实现思路
为了解决现有技术的问题,本专利技术实施例提供了一种基于动态规划的无损压缩方法和装置。所述技术方案如下:一方面,本专利技术实施例提供了一种基于动态规划的无损压缩方法,所述方法包括:根据预设的重复字符串发现算法,按照预设顺序获取待压缩字符串中每个可压缩的字符对应的重复字符串信息,所述重复字符串信息包括:重复字符串与其匹配对象之间的距离、重复字符串的最大匹配长度;根据预设动态压缩形式选择算法,按照预设顺序确认待压缩字符串中每个字符的压缩形式选择,并确定待压缩字符串的整体压缩选择,所述压缩形式包括:以 ...
【技术保护点】
1.一种基于动态规划的无损压缩方法,其特征在于,所述方法包括:/n根据预设的重复字符串发现算法,按照预设顺序获取待压缩字符串中每个可压缩的字符对应的重复字符串信息,所述重复字符串信息包括:重复字符串与其匹配对象之间的距离、重复字符串的最大匹配长度;/n根据预设动态压缩形式选择算法,按照预设顺序确认待压缩字符串中每个字符的压缩形式选择,并确定待压缩字符串的整体压缩选择,所述压缩形式包括:以单个字符的形式进行压缩、以重复字符串的形式进行压缩;/n根据每个字符的压缩形式选择,确定待压缩字符串的整体压缩选择并输出压缩结果。/n
【技术特征摘要】
1.一种基于动态规划的无损压缩方法,其特征在于,所述方法包括:
根据预设的重复字符串发现算法,按照预设顺序获取待压缩字符串中每个可压缩的字符对应的重复字符串信息,所述重复字符串信息包括:重复字符串与其匹配对象之间的距离、重复字符串的最大匹配长度;
根据预设动态压缩形式选择算法,按照预设顺序确认待压缩字符串中每个字符的压缩形式选择,并确定待压缩字符串的整体压缩选择,所述压缩形式包括:以单个字符的形式进行压缩、以重复字符串的形式进行压缩;
根据每个字符的压缩形式选择,确定待压缩字符串的整体压缩选择并输出压缩结果。
2.根据权利要求1所述的方法,其特征在于,所述根据预设动态压缩形式选择算法,按照预设顺序确认待压缩字符串中每个字符的压缩形式选择,包括:
当当前字符选择以单个字符的形式进行压缩时,根据如下判断规则进行最优压缩形式选择:
Si+1>Si+1,则判断以单个字符的形式进行压缩并非最优压缩形式选择;
Si+1≤Si+1,则判断以单个字符的形式进行压缩为最优压缩形式选择;
其中,i表示当前字符所处的索引数,Si表示按预设顺序从待压缩字符串起始字符开始到当前字符进行压缩时最小输出字符数量。
3.根据权利要求1所述的方法,其特征在于,所述根据预设动态压缩形式选择算法,按照预设顺序确认待压缩字符串中每个字符的压缩形式选择,包括:
当当前字符选择以重复字符串的形式进行压缩时,根据如下判断规则进行最优压缩形式选择:
Si+li>Si+li,则判断以重复字符串的形式进行压缩并非最优压缩形式选择;
Si+li≤Si+li,则判断以重复字符串的形式进行压缩为最优压缩形式选择;
其中,i表示当前字符所处的索引数,li为当前字符所选的重复字符串的长度,Si表示按预设顺序从待压缩字符串起始字符开始到当前字符进行压缩时最小输出字符数量。
4.根据权利要求2或3所述的方法,其特征在于,所述根据预设动态压缩形式选择算法,按照预设顺序确认待压缩字符串中每个字符的压缩形式选择,还包括:
按照预设路径信息规则为待压缩字符串中每个字符增设相应的路径信息,所述预设路径信息规则为:当当前字符以单个字符的形式进行压缩时,与当前字符对比的字符的路径信息记为1;当当前字符以重复字符串的形式进行压缩时,与当前字符对比的字符的路径信息记为li,li为当前字符所选的重复字符串的长度。
5.根据权利要求4所述的方法,其特征在于,所述根据每个字符的压缩形式选择,确定待压缩字...
【专利技术属性】
技术研发人员:朱剑文,陈迅,
申请(专利权)人:深圳捷誊技术有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。