CN111628778A - 一种基于动态规划的无损压缩方法和装置 - Google Patents

一种基于动态规划的无损压缩方法和装置 Download PDF

Info

Publication number
CN111628778A
CN111628778A CN201910151084.1A CN201910151084A CN111628778A CN 111628778 A CN111628778 A CN 111628778A CN 201910151084 A CN201910151084 A CN 201910151084A CN 111628778 A CN111628778 A CN 111628778A
Authority
CN
China
Prior art keywords
character
compression
compressed
character string
string
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.)
Granted
Application number
CN201910151084.1A
Other languages
English (en)
Other versions
CN111628778B (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.)
Shenzhen Jetio Technology Co ltd
Original Assignee
Shenzhen Jetio Technology Co ltd
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 Shenzhen Jetio Technology Co ltd filed Critical Shenzhen Jetio Technology Co ltd
Priority to CN201910151084.1A priority Critical patent/CN111628778B/zh
Publication of CN111628778A publication Critical patent/CN111628778A/zh
Application granted granted Critical
Publication of CN111628778B publication Critical patent/CN111628778B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

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

Description

一种基于动态规划的无损压缩方法和装置
技术领域
本发明涉及无损压缩技术领域,特别涉及一种基于动态规划的无损压缩方法和装置。
背景技术
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是本发明实施例一提供的一种基于动态规划的无损压缩方法流程图;
图2是本发明实施例一提供的一种重复字符串发现算法示例图;
图3是本发明实施例一提供的一种动态压缩形式选择算法示例图;
图4是本发明实施例二提供的一种基于动态规划的无损压缩装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一
本发明实施例提供了一种基于动态规划的无损压缩方法,适用于提高无损压缩算法的整体字符压缩率,参见图1,该方法可以包括:
步骤S11,根据预设的重复字符串发现算法,按照预设顺序获取待压缩字符串中每个可压缩的字符对应的重复字符串信息,该重复字符串信息可以包括:重复字符串与其匹配对象之间的距离、重复字符串的最大匹配长度。
在本实施例中,待压缩的字符串一般是按照预设顺序进行压缩的,例如在图2中的字符串“aaabcdaaaafaaaabcd”可以按照从左到右的顺序进行压缩,解压时也采用相同的顺序进行逐步解压。在压缩过程中,待压缩的字符串里,有的字符可以与前面的字符串匹配到重复字符串,对这些重复字符串可以进行压缩;当然,也有字符没有匹配的重复字符串,只能以原有的单个字符形式存储到压缩结果中,例如:图2中索引数11处的“aaaa”可以与索引数6处的“aaaa”相匹配。
在本实施例中,可压缩的字符对应的重复字符串信息包括:重复字符串与其匹配对象之间的距离,例如:图2中索引数11处的“aaaa与索引数6处的“aaaa”之间的距离为5;重复字符串的最大匹配长度,例如:图2中索引数11处的“aaaa”的最大匹配长度为4。需要说明的是,上述重复字符串信息相互配合,可用于实现无损压缩和无损解压。
下面,简要介绍一下重复字符串发现算法:
类型定义:
Figure BDA0001981489130000051
Figure BDA0001981489130000061
其中,distance为重复字符串与其匹配对象之间的距离,length为重复字符串的最大匹配长度,buffer_length为待压缩字符串的总长度(例如图2中buffer_length为18)。
步骤S12,根据预设动态压缩形式选择算法,按照预设顺序确认待压缩字符串中每个字符的压缩形式选择,压缩形式包括:以单个字符的形式进行压缩、以重复字符串的形式进行压缩。
需要说明的是,现有的贪心算法中,并不会对字符进行压缩形式的选择,当字符存在重复字符串时,就会以重复字符串的形式进行压缩,否则就以单个字符的形式进行压缩。而在本实施例中,则会允许每个字符进行压缩形式的选择。
具体地,参见图3,上述步骤S12可以通过如下方式实现:
当当前字符选择以单个字符的形式进行压缩时,根据如下判断规则进行最优压缩形式选择:
Si+1>Si+1,则判断以单个字符的形式进行压缩并非最优压缩形式选择;
Si+1≤Si+1,则判断以单个字符的形式进行压缩为最优压缩形式选择;
其中,i表示当前字符所处的索引数,Si表示按预设顺序从待压缩字符串起始字符开始到当前字符进行压缩时最小输出字符数量。
或者,
当当前字符选择以重复字符串的形式进行压缩时,根据如下判断规则进行最优压缩形式选择:
Si+li>Si+li,则判断以重复字符串的形式进行压缩并非最优压缩形式选择;
Si+li≤Si+li,则判断以重复字符串的形式进行压缩为最优压缩形式选择;
其中,i表示当前字符所处的索引数,li为当前字符所选的重复字符串的长度,Si表示按预设顺序从待压缩字符串起始字符开始到当前字符进行压缩时最小输出字符数量。
在本实施例中,Si表示按预设顺序从待压缩字符串起始字符开始到当前字符进行压缩时最小输出字符数量,例如:图2中索引数11处的“a”字符对应的为12,索引数12处的“a”字符对应的为12,索引数12之后的字符对应的都为13。需要说明的是,在图2中索引数7的“aaa”没有与索引数0的“aaa”相匹配,是因为设置有重复字符串的最大匹配长度至少需要大于或等于4,过于短小的重复字符串进行压缩会增大计算量,严重降低压缩效率,且不会提高很多数据压缩率,因此,选择合适的重复字符串的最小长度阀值,有助于平衡压缩效率和压缩率。
进一步地,在步骤S12中,还有一步重要的工作,就是按照预设路径信息规则为待压缩字符串中每个字符增设相应的路径信息,预设路径信息规则为:当当前字符以单个字符的形式进行压缩时,与当前字符对比的字符的路径信息记为1;当当前字符以重复字符串的形式进行压缩时,与当前字符对比的字符的路径信息记为li,li为当前字符所选的重复字符串的长度。
步骤S13,根据每个字符的压缩形式选择,确定待压缩字符串的整体压缩选择并输出压缩结果。
具体地,上述步骤S13可以通过如下方式实现:
按照预设顺序倒序的方式,并根据待压缩字符串中每个字符对应的路径信息,确定待压缩字符串的整体压缩选择。
在本实施例中,对于一个长度为symbol_length的输入结果缓冲区,假设缓冲区从左向右依次排序。为了求解最优的重复字符串选择方案。参见图3,对每一个输入结果增加两个计算变量,一个是symbol_min_count(即按预设顺序从待压缩字符串起始字符开始到当前字符进行压缩时最小输出字符数量),一个是back_trace(即路径信息)。其中,symbol_min_count用于存放从字符串到目前字符的最少symbol数量,换句话说,就是无论采用何种选择方式,到该字符的最小symbol数量。back_trace是用来辅助重建结果的数据,表示目前最优的选择方案是从那条路径上计算得来的。
参见图3,当前字符以单字符形式选择,这样的话,则第i+1个字符的最小符号数为min(Si+1,Si+1),如果有Si+1>Si+1则说明之前存在某种选择方式能够使得到达i+1字符的符号数目更少。如果有Si+1≤Si+1则说明以单字符形式选择当前字符的话,第i+1个字符最终的符号数最少,在这一选择下,需要将back_trace的数值bi+1修改为1,表示取得符号数最小的方案是直接输出前一个字符。
当前字符以匹配重复串的形式选择,这样的话,则第i+li个字符的最小符号数为min(Si+li,Si+li),如果有Si+li>Si+li则说明之前存在某种选择方式能够使得到达i+li字符的符号数目更少。如果有Si+li≤Si+li则说明以匹配重复串的形式选择的话,第i+li字符的符号数目更少,在这一选择下,需要将back_trace的值bi+li修改为li,表示取得符号数最小的方案是匹配重复串的形式。
上述基于动态规划的无损压缩方法,需要对输入数据进行两遍扫描,第一遍从小索引数到大索引数(索引数为图2或图3中第一排指示字符位置的标号),进行动态计算,计算出每个字符的S值并确认其相应的压缩形式,第二遍,从大索引数到小索引数,进行逆向回溯,找到每个字符对应的压缩形式(单字符形式压缩,或重复字符串的形式压缩),从而确认待压缩字符串的最优压缩方式,即整个字符串的压缩率最高的压缩方式。
下面具体介绍一下预设动态压缩形式选择算法:
Figure BDA0001981489130000081
Figure BDA0001981489130000091
Figure BDA0001981489130000101
本发明实施例通过根据预设的重复字符串发现算法,按照预设顺序获取待压缩字符串中每个可压缩的字符对应的重复字符串信息;然后根据预设动态压缩形式选择算法,按照预设顺序确认待压缩字符串中每个字符的压缩形式选择,并确定待压缩字符串的整体压缩选择。这样上述基于动态规划的无损压缩方法,在进行无损压缩的同时,能够从全局的角度出发,得出待压缩字符串中每个字符的更优的压缩形式选择,以使整个待压缩字符串的压缩率更高,压缩后输出的字符更少。
实施例二
本发明实施例提供了一种基于动态规划的无损压缩装置,执行了实施例一所述的方法,参见图4,该装置可以包括:获取模块100、路径模块200、确认模块300。
获取模块100,用于根据预设的重复字符串发现算法,按照预设顺序获取待压缩字符串中每个可压缩的字符对应的重复字符串信息,该重复字符串信息可以包括:重复字符串与其匹配对象之间的距离、重复字符串的最大匹配长度。
在本实施例中,待压缩的字符串一般是按照预设顺序进行压缩的,解压时也采用相同的顺序进行逐步解压。在压缩过程中,待压缩的字符串里,有的字符可以与前面的字符串匹配到重复字符串,对这些重复字符串可以进行压缩;当然,也有字符没有匹配的重复字符串,只能以原有的单个字符形式存储到压缩结果中。
在本实施例中,可压缩的字符对应的重复字符串信息包括:重复字符串与其匹配对象之间的距离;重复字符串的最大匹配长度,上述重复字符串信息相互配合,可用于实现无损压缩和无损解压。
路径模块200,用于根据预设动态压缩形式选择算法,按照预设顺序确认待压缩字符串中每个字符的压缩形式选择,压缩形式包括:以单个字符的形式进行压缩、以重复字符串的形式进行压缩。
需要说明的是,现有的贪心算法中,并不会给于字符进行压缩形式的选择,当字符存在重复字符串时,就会以重复字符串的形式进行压缩,否则就以单个字符的形式进行压缩。而在本实施例中,则会允许每个字符进行压缩形式的选择。
确定模块300,用于根据每个字符的压缩形式选择,确定待压缩字符串的整体压缩选择并输出压缩结果。
具体地,路径模块200,还用于当当前字符选择以单个字符的形式进行压缩时,根据如下判断规则进行最优压缩形式选择:
Si+1>Si+1,则判断以单个字符的形式进行压缩并非最优压缩形式选择;
Si+1≤Si+1,则判断以单个字符的形式进行压缩为最优压缩形式选择;
其中,i表示当前字符所处的索引数,Si表示按预设顺序从待压缩字符串起始字符开始到当前字符进行压缩时最小输出字符数量。
路径模块200,还用于当当前字符选择以重复字符串的形式进行压缩时,根据如下判断规则进行最优压缩形式选择:
Si+li>Si+li,则判断以重复字符串的形式进行压缩并非最优压缩形式选择;
Si+li≤Si+li,则判断以重复字符串的形式进行压缩为最优压缩形式选择;
其中,i表示当前字符所处的索引数,li为当前字符所选的重复字符串的长度,Si表示按预设顺序从待压缩字符串起始字符开始到当前字符进行压缩时最小输出字符数量。
进一步地,路径模块200,还可以用于按照预设路径信息规则为待压缩字符串中每个字符增设相应的路径信息,预设路径信息规则为:当当前字符以单个字符的形式进行压缩时,与当前字符对比的字符的路径信息记为1;当当前字符以重复字符串的形式进行压缩时,与当前字符对比的字符的路径信息记为li,li为当前字符所选的重复字符串的长度。
进一步地,确认模块300,还用于按照预设顺序倒序的方式,并根据待压缩字符串中每个字符对应的路径信息,确定待压缩字符串的整体压缩选择。
在本实施例中,确认模块300,其主要工作是以路径模块200在推测路径过程中所记录的路径信息后,反推确定最终所选择的路径。具体确定时,需要对输入数据进行两遍扫描,第一遍从小索引数到大索引数(索引数为图2或图3中第一排指示字符位置的标号),进行动态计算,计算出每个字符的S值并确认其相应的压缩形式(输出至临时缓存,此时输出的结果为倒序),第二遍,从大索引数到小索引数,进行逆向回溯,找到每个字符对应的压缩形式(单字符形式压缩,或重复字符串的形式压缩),从而确认待压缩字符串的最优压缩方式,即整个字符串的压缩率最高的压缩方式(将临时缓存内的输出进行倒序,得到正序输出)。
具体地算法如下:
Figure BDA0001981489130000121
本发明实施例通过根据预设的重复字符串发现算法,按照预设顺序获取待压缩字符串中每个可压缩的字符对应的重复字符串信息;然后根据预设动态压缩形式选择算法,按照预设顺序确认待压缩字符串中每个字符的压缩形式选择,并确定待压缩字符串的整体压缩选择。这样上述基于动态规划的无损压缩方法,在进行无损压缩的同时,能够从全局的角度出发,得出待压缩字符串中每个字符的更优的压缩形式选择,以使整个待压缩字符串的压缩率更高,压缩后输出的字符更少。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是:上述实施例提供的基于动态规划的无损压缩装置在实现基于动态规划的无损压缩方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的基于动态规划的无损压缩装置与基于动态规划的无损压缩方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

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所述的方法,其特征在于,所述根据每个字符的压缩形式选择,确定待压缩字符串的整体压缩选择并输出压缩结果,包括:
按照预设顺序倒序的方式,并根据待压缩字符串中每个字符对应的路径信息,确定待压缩字符串的整体压缩选择。
6.一种基于动态规划的无损压缩装置,其特征在于,包括:
获取模块,用于根据预设的重复字符串发现算法,按照预设顺序获取待压缩字符串中每个可压缩的字符对应的重复字符串信息,所述重复字符串信息包括:重复字符串与其匹配对象之间的距离、重复字符串的最大匹配长度;
路径模块,用于根据预设动态压缩形式选择算法,按照预设顺序确认待压缩字符串中每个字符的压缩形式选择,所述压缩形式包括:以单个字符的形式进行压缩、以重复字符串的形式进行压缩。
确定模块,用于根据每个字符的压缩形式选择,确定待压缩字符串的整体压缩选择并输出压缩结果。
7.根据权利要求6所述的装置,其特征在于,所述路径模块,还用于当当前字符选择以单个字符的形式进行压缩时,根据如下判断规则进行最优压缩形式选择:
Si+1>Si+1,则判断以单个字符的形式进行压缩并非最优压缩形式选择;
Si+1≤Si+1,则判断以单个字符的形式进行压缩为最优压缩形式选择;
其中,i表示当前字符所处的索引数,Si表示按预设顺序从待压缩字符串起始字符开始到当前字符进行压缩时最小输出字符数量。
8.根据权利要求6所述的装置,其特征在于,所述路径模块,还用于当当前字符选择以重复字符串的形式进行压缩时,根据如下判断规则进行最优压缩形式选择:
Si+li>Si+li,则判断以重复字符串的形式进行压缩并非最优压缩形式选择;
Si+li≤Si+li,则判断以重复字符串的形式进行压缩为最优压缩形式选择;
其中,i表示当前字符所处的索引数,li为当前字符所选的重复字符串的长度,Si表示按预设顺序从待压缩字符串起始字符开始到当前字符进行压缩时最小输出字符数量。
9.根据权利要求7或8所述的装置,其特征在于,所述路径模块,还用于按照预设路径信息规则为待压缩字符串中每个字符增设相应的路径信息,所述预设路径信息规则为:当当前字符以单个字符的形式进行压缩时,与当前字符对比的字符的路径信息记为1;当当前字符以重复字符串的形式进行压缩时,与当前字符对比的字符的路径信息记为li,li为当前字符所选的重复字符串的长度。
10.根据权利要求9所述的装置,其特征在于,所述确认模块,还用于按照预设顺序倒序的方式,并根据待压缩字符串中每个字符对应的路径信息,确定待压缩字符串的整体压缩选择。
CN201910151084.1A 2019-02-28 2019-02-28 一种基于动态规划的无损压缩方法和装置 Active CN111628778B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910151084.1A CN111628778B (zh) 2019-02-28 2019-02-28 一种基于动态规划的无损压缩方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910151084.1A CN111628778B (zh) 2019-02-28 2019-02-28 一种基于动态规划的无损压缩方法和装置

Publications (2)

Publication Number Publication Date
CN111628778A true CN111628778A (zh) 2020-09-04
CN111628778B CN111628778B (zh) 2023-05-23

Family

ID=72272472

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910151084.1A Active CN111628778B (zh) 2019-02-28 2019-02-28 一种基于动态规划的无损压缩方法和装置

Country Status (1)

Country Link
CN (1) CN111628778B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0427884A1 (de) * 1989-11-14 1991-05-22 Siemens Nixdorf Informationssysteme Aktiengesellschaft Verfahren und Anordnung zum Komprimieren und Dekomprimieren von Daten
US5512921A (en) * 1994-06-22 1996-04-30 Microsoft Corporation Visual display system having low energy data storage subsystem with date compression capabilities, and method for operating same
US5729737A (en) * 1995-07-13 1998-03-17 Armour; William M. Selective data compression system
US5955976A (en) * 1997-12-02 1999-09-21 Hughes Electronics Corporation Data compression for use with a communications channel
JP2001345710A (ja) * 2000-03-31 2001-12-14 Fujitsu Ltd データ圧縮装置および方法
RU2009104211A (ru) * 2009-02-09 2010-08-20 Сергей Борисович Муллов (RU) Способ сжатия и восстановления данных без потерь
CN102122960A (zh) * 2011-01-18 2011-07-13 西安理工大学 一种针对二进制数据的多字符组合无损数据压缩方法
CN103236847A (zh) * 2013-05-06 2013-08-07 西安电子科技大学 基于多层哈希结构与游程编码的数据无损压缩方法
US9450607B1 (en) * 2014-07-10 2016-09-20 Google Inc. Encoding or decoding characters as word in corpus
CN107565970A (zh) * 2017-08-17 2018-01-09 郑州云海信息技术有限公司 一种基于特征识别的混合无损压缩方法及装置
CN108768403A (zh) * 2018-05-30 2018-11-06 中国人民解放军战略支援部队信息工程大学 基于lzw的无损数据压缩、解压方法及lzw编码器、解码器

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0427884A1 (de) * 1989-11-14 1991-05-22 Siemens Nixdorf Informationssysteme Aktiengesellschaft Verfahren und Anordnung zum Komprimieren und Dekomprimieren von Daten
US5512921A (en) * 1994-06-22 1996-04-30 Microsoft Corporation Visual display system having low energy data storage subsystem with date compression capabilities, and method for operating same
US5729737A (en) * 1995-07-13 1998-03-17 Armour; William M. Selective data compression system
US5955976A (en) * 1997-12-02 1999-09-21 Hughes Electronics Corporation Data compression for use with a communications channel
JP2001345710A (ja) * 2000-03-31 2001-12-14 Fujitsu Ltd データ圧縮装置および方法
RU2009104211A (ru) * 2009-02-09 2010-08-20 Сергей Борисович Муллов (RU) Способ сжатия и восстановления данных без потерь
CN102122960A (zh) * 2011-01-18 2011-07-13 西安理工大学 一种针对二进制数据的多字符组合无损数据压缩方法
CN103236847A (zh) * 2013-05-06 2013-08-07 西安电子科技大学 基于多层哈希结构与游程编码的数据无损压缩方法
US9450607B1 (en) * 2014-07-10 2016-09-20 Google Inc. Encoding or decoding characters as word in corpus
CN107565970A (zh) * 2017-08-17 2018-01-09 郑州云海信息技术有限公司 一种基于特征识别的混合无损压缩方法及装置
CN108768403A (zh) * 2018-05-30 2018-11-06 中国人民解放军战略支援部队信息工程大学 基于lzw的无损数据压缩、解压方法及lzw编码器、解码器

Also Published As

Publication number Publication date
CN111628778B (zh) 2023-05-23

Similar Documents

Publication Publication Date Title
US11664013B2 (en) Speech feature reuse-based storing and calculating compression method for keyword-spotting CNN
EP3451165B1 (en) Neural network operation device and method supporting few-bit floating-point number
EP3451164A1 (en) Neural network operation device and method supporting few-bit fixed-point number
US8255701B2 (en) File encryption method
CN104579360B (zh) 一种数据处理的方法和设备
US8947272B2 (en) Decoding encoded data
CN111340207B (zh) 浮点数转换方法及装置
CN106651972B (zh) 一种二值图像编码、解码方法及装置
EP3893400A1 (en) Sorting method and apparatus, and electronic device and medium
CN111916063A (zh) 基于bpe编码的序列化方法、训练方法、系统及存储介质
CN111384972B (zh) 多进制ldpc解码算法的优化方法、装置及解码器
CN111628778A (zh) 一种基于动态规划的无损压缩方法和装置
CN107832341B (zh) Agnss用户去重统计方法
CN109446198A (zh) 一种基于双数组的trie树节点压缩方法及装置
US20100049713A1 (en) Pattern matching device and method
US20180041223A1 (en) Method and apparatus for adaptive data compression
CN115700519A (zh) 一种文本到图像的生成方法、装置、存储介质及终端
CN114050831A (zh) 一种基于lz77的解码方法、系统、设备以及介质
US6734813B2 (en) Data receiving device for receiving serial data according to over-sampling
CN113595557B (zh) 一种数据处理的方法和装置
US20220206746A1 (en) Sorting device, selecting system, sorting method, and nontransitory computer readable medium
CN112911314B (zh) 一种熵编码器的编码方法及熵编码器
CN117874314B (zh) 一种基于大数据处理的信息可视化方法及系统
CN112232347B (zh) 基于概率矩阵的字符识别方法、装置、设备及存储介质
CN117272989B (zh) 基于字符编码压缩的屏蔽词识别方法、装置、设备及介质

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
GR01 Patent grant
GR01 Patent grant