一种基于动态规划的无损压缩方法和装置制造方法及图纸

技术编号:25528236 阅读:36 留言:0更新日期:2020-09-04 17:16
本发明专利技术公开了一种基于动态规划的无损压缩方法和装置。所述方法包括:通过根据预设的重复字符串发现算法,按照预设顺序获取待压缩字符串中每个可压缩的字符对应的重复字符串信息;然后根据预设动态压缩形式选择算法,按照预设顺序确认待压缩字符串中每个字符的压缩形式选择,并确定待压缩字符串的整体压缩选择。本发明专利技术提供的基于动态规划的无损压缩方法,在进行无损压缩的同时,能够从全局的角度出发,得出待压缩字符串中每个字符的更优的压缩形式选择,以使整个待压缩字符串的压缩率更高,压缩后输出的字符更少。

【技术实现步骤摘要】
一种基于动态规划的无损压缩方法和装置
本专利技术涉及无损压缩
,特别涉及一种基于动态规划的无损压缩方法和装置。
技术介绍
LZ77压缩算法(一种典型的无损压缩算法)采用字典的方式进行压缩,是一个简单但十分高效的数据压缩算法。其方式就是把数据中一些可以组织成短语(最长字符)的字符加入字典,然后再有相同字符出现采用标记来代替字典中的短语,如此通过标记代替多数重复出现的方式以进行压缩。即通过发现数据中存在的重复性来缩减原始输入数据大小。LZ77算法主要可以切分为两个步骤,步骤一是重复数据的发现,步骤二是重复数据的选择。现有的LZ77算法在重复数据选择时一般采用的是贪心算法,即在按顺序压缩过程中一旦发现存在重复数据,就会选择按照发现的重复数据形式压缩,而不会去考虑是否存有更优的重复数据选择方案,来使得整体数据的压缩率更高,致使容易出现整体数据压缩率不是最优的情况。
技术实现思路
为了解决现有技术的问题,本专利技术实施例提供了一种基于动态规划的无损压缩方法和装置。所述技术方案如下:一方面,本专利技术实施例提供了一种基于动态规划的无损压缩方法,所述方法包括:根据预设的重复字符串发现算法,按照预设顺序获取待压缩字符串中每个可压缩的字符对应的重复字符串信息,所述重复字符串信息包括:重复字符串与其匹配对象之间的距离、重复字符串的最大匹配长度;根据预设动态压缩形式选择算法,按照预设顺序确认待压缩字符串中每个字符的压缩形式选择,并确定待压缩字符串的整体压缩选择,所述压缩形式包括:以单个字符的形式进行压缩、以重复字符串的形式进行压缩;根据每个字符的压缩形式选择,确定待压缩字符串的整体压缩选择并输出压缩结果。在本专利技术实施例上述的基于动态规划的无损压缩方法中,所述根据预设动态压缩形式选择算法,按照预设顺序确认待压缩字符串中每个字符的压缩形式选择,包括:当当前字符选择以单个字符的形式进行压缩时,根据如下判断规则进行最优压缩形式选择:Si+1>Si+1,则判断以单个字符的形式进行压缩并非最优压缩形式选择;Si+1≤Si+1,则判断以单个字符的形式进行压缩为最优压缩形式选择;其中,i表示当前字符所处的索引数,Si表示按预设顺序从待压缩字符串起始字符开始到当前字符进行压缩时最小输出字符数量。在本专利技术实施例上述的基于动态规划的无损压缩方法中,所述根据预设动态压缩形式选择算法,按照预设顺序确认待压缩字符串中每个字符的压缩形式选择,包括:当当前字符选择以重复字符串的形式进行压缩时,根据如下判断规则进行最优压缩形式选择:Si+li>Si+li,则判断以重复字符串的形式进行压缩并非最优压缩形式选择;Si+li≤Si+li,则判断以重复字符串的形式进行压缩为最优压缩形式选择;其中,i表示当前字符所处的索引数,li为当前字符所选的重复字符串的长度,Si表示按预设顺序从待压缩字符串起始字符开始到当前字符进行压缩时最小输出字符数量。在本专利技术实施例上述的基于动态规划的无损压缩方法中,所述根据预设动态压缩形式选择算法,按照预设顺序确认待压缩字符串中每个字符的压缩形式选择,还包括:按照预设路径信息规则为待压缩字符串中每个字符增设相应的路径信息,所述预设路径信息规则为:当当前字符以单个字符的形式进行压缩时,与当前字符对比的字符的路径信息记为1;当当前字符以重复字符串的形式进行压缩时,与当前字符对比的字符的路径信息记为li,li为当前字符所选的重复字符串的长度。在本专利技术实施例上述的基于动态规划的无损压缩方法中,所述根据每个字符的压缩形式选择,确定待压缩字符串的整体压缩选择并输出压缩结果,包括:按照预设顺序倒序的方式,并根据待压缩字符串中每个字符对应的路径信息,确定待压缩字符串的整体压缩选择。另一方面,本专利技术实施例提供了一种基于动态规划的无损压缩装置,所述装置包括:获取模块,用于根据预设的重复字符串发现算法,按照预设顺序获取待压缩字符串中每个可压缩的字符对应的重复字符串信息,所述重复字符串信息包括:重复字符串与其匹配对象之间的距离、重复字符串的最大匹配长度;路径模块,用于根据预设动态压缩形式选择算法,按照预设顺序确认待压缩字符串中每个字符的压缩形式选择,所述压缩形式包括:以单个字符的形式进行压缩、以重复字符串的形式进行压缩。确定模块,用于根据每个字符的压缩形式选择,确定待压缩字符串的整体压缩选择并输出压缩结果。在本专利技术实施例上述的基于动态规划的无损压缩装置中,所述路径模块,还用于当当前字符选择以单个字符的形式进行压缩时,根据如下判断规则进行最优压缩形式选择:Si+1>Si+1,则判断以单个字符的形式进行压缩并非最优压缩形式选择;Si+1≤Si+1,则判断以单个字符的形式进行压缩为最优压缩形式选择;其中,i表示当前字符所处的索引数,Si表示按预设顺序从待压缩字符串起始字符开始到当前字符进行压缩时最小输出字符数量。在本专利技术实施例上述的基于动态规划的无损压缩装置中,所述路径模块,还用于当当前字符选择以重复字符串的形式进行压缩时,根据如下判断规则进行最优压缩形式选择:Si+li>Si+li,则判断以重复字符串的形式进行压缩并非最优压缩形式选择;Si+li≤Si+li,则判断以重复字符串的形式进行压缩为最优压缩形式选择;其中,i表示当前字符所处的索引数,li为当前字符所选的重复字符串的长度,Si表示按预设顺序从待压缩字符串起始字符开始到当前字符进行压缩时最小输出字符数量。在本专利技术实施例上述的基于动态规划的无损压缩装置中,所述路径模块,还用于按照预设路径信息规则为待压缩字符串中每个字符增设相应的路径信息,所述预设路径信息规则为:当当前字符以单个字符的形式进行压缩时,与当前字符对比的字符的路径信息记为1;当当前字符以重复字符串的形式进行压缩时,与当前字符对比的字符的路径信息记为li,li为当前字符所选的重复字符串的长度。在本专利技术实施例上述的基于动态规划的无损压缩装置中,所述确认模块,还用于按照预设顺序倒序的方式,并根据待压缩字符串中每个字符对应的路径信息,确定待压缩字符串的整体压缩选择。本专利技术实施例提供的技术方案带来的有益效果是:通过根据预设的重复字符串发现算法,按照预设顺序获取待压缩字符串中每个可压缩的字符对应的重复字符串信息;然后根据预设动态压缩形式选择算法,按照预设顺序确认待压缩字符串中每个字符的压缩形式选择,并确定待压缩字符串的整体压缩选择。这样上述基于动态规划的无损压缩方法,在进行无损压缩的同时,能够从全局的角度出发,得出待压缩字符串中每个字符的更优的压缩形式选择,以使整个待压缩字符串的压缩率更高,压缩后输出的字符更少。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术本文档来自技高网...

【技术保护点】
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

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1