CN104283568B - 一种基于部分霍夫曼树的数据压缩编码方法 - Google Patents

一种基于部分霍夫曼树的数据压缩编码方法 Download PDF

Info

Publication number
CN104283568B
CN104283568B CN201310294301.5A CN201310294301A CN104283568B CN 104283568 B CN104283568 B CN 104283568B CN 201310294301 A CN201310294301 A CN 201310294301A CN 104283568 B CN104283568 B CN 104283568B
Authority
CN
China
Prior art keywords
node
layer
probability
character
prelists
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
Application number
CN201310294301.5A
Other languages
English (en)
Other versions
CN104283568A (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.)
Institute of Acoustics CAS
Original Assignee
Institute of Acoustics CAS
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 Institute of Acoustics CAS filed Critical Institute of Acoustics CAS
Priority to CN201310294301.5A priority Critical patent/CN104283568B/zh
Publication of CN104283568A publication Critical patent/CN104283568A/zh
Application granted granted Critical
Publication of CN104283568B publication Critical patent/CN104283568B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明涉及一种基于部分霍夫曼树的数据压缩编码方法,该方法首先通过较为粗略但计算十分简便的方法为所有需编码的字符预先分配一个编码长度,从而构成一个分层的编码表称为预编码表;然后以预编码表为基础对霍夫曼树中一些特定部分进行构建;在构建部分霍夫曼树的同时,动态的调整字符的编码长度,实现对预编码表的修改,直到其满足了最优编码表的条件为止。这样不用构建一个完整的霍夫曼树,就能获得与经典霍夫曼算法同样的编码效果。采用本发明可以有效地消除经典霍夫曼算法中的冗余计算,提高了编码效率,用于对数据的编码过程,提高实时性,同时降低对能源的消耗。

Description

一种基于部分霍夫曼树的数据压缩编码方法
技术领域
本发明涉及数据压缩领域,更具体地涉及一种基于部分霍夫曼树的数据压缩编码方法,以通过构建部分霍夫曼树实现快速数据压缩编码的方法。
背景技术
随着计算机和网络技术的蓬勃发展,整个网络的数据量正呈指数型增长。虽然计算机的处理速度、硬盘容量以及网络带宽也有了巨大的进步,但仍难以适应数据增长的速度。如何将数据压缩的更小,压缩的更快一直以来都是人们积极研究的方向。
熵编码是数据压缩的一种重要方式。简单地说,熵编码的内涵就是对一段数据中出现概率高的字符用较短的码字代替,相应的较少出现的字符则用相对长的码字代替,这样就达到了对数据压缩的目的,所以熵编码可以看作是一个分配码字的过程。在由q个字符组成的字符集{a1,a2,…,aq}中,字符ai(i=1,2,…,q)发生的概率为pi,分配给它的编码长度为Li,最优编码便是指平均编码长度:
公式1
为最小的一种编码方案。
霍夫曼编码算法正是一种十分经典且有效的最优编码方法。具体来说,霍夫曼编码过程可以分为概率统计-生成编码表-编码三个步骤:即首先统计待编码数据中各个字符以及它们的出现概率;然后,依照每个字符出现概率的大小,应用霍夫曼编码算法为它们分配不同的码字,生成编码表;最后,对照编码表将原字符替换成相应的码字,即完成了对数据的编码。
在霍夫曼编码算法中,生成编码表是其算法的核心。编码表是一个待编码字符集{a1,a2,...,aq}与其码字集{s1,s2,...,sq}之间的映射关系表。在经典的霍夫曼编码方法中,主要依靠构建霍夫曼树来生成编码表。
霍夫曼树是一种典型的二叉树,在二叉树中节点由线段相互连接,这些线段叫做“枝”,处于“枝”上方的节点称为“父”,处在下方的节点称为“子”,处在整个树最上端的没有“父”的节点称为“根”,处在最下方的没有“子”的称为“叶子”。处在父节点右下方的所有子节点构成该节点的右子树,左下方的构成左子树。从根节点到达各个节点所经过的节点数称为该节点的路径长度,拥有相同路径长度的节点组成一个层。
现有的构建一棵霍夫曼树并生成编码表的主要步骤如下:
1)根据待编码字符集{a1,a2,...,aq}以及它们的概率{p1,p2,...,pq}构造二叉树集F:{T1,T2,...,Tq},其中,树Ti中仅有一个带权的根节点,且其概率等于相应字符ai的概率。
2)在树集F中找到两棵根节点概率最小的树,以它们作为左右子树构造一棵新的二叉树,新二叉树根节点的概率是其左右子树根节点概率的和。
3)在F中删除这两棵树,并将新的二叉树加入F。
4)重复步骤2)和3)直至F中仅剩一棵树为止,这棵树便是霍夫曼树。
5)自顶向下遍历整棵树,输出编码表。
这种经典的霍夫曼编码方法存在以下两个问题:
1)这种方法每次的递推过程都要进行大量的排序操作,在最终的霍夫曼树中所有节点都是按照顺序依次排列的,这种排列需要以大量的比较运算作为支撑,影响了整个算法的效率。
2)这种经典霍夫曼编码方法必须构建完整的霍夫曼树才能编码,理论研究表明,霍夫曼树中层间节点的关系以及层内节点的排序对于生成编码表并没有贡献。只要采用某种方法将待编码字符存入相应的层,即可实现最优编码。
发明内容
本发明的目的在于,提供一种部分霍夫曼树的构建方法及其快速数据压缩编码方法,该方法为仅构建霍夫曼树的一部分就能生成编码表的新方法,简言之,首先通过较为粗略但计算十分简便的方法为所有需编码的字符预先分配一个编码长度,从而构成一个分层的编码表称为预编码表;然后以预编码表为基础对霍夫曼树中一些特定部分进行构建;在构建部分霍夫曼树的同时,动态的调整字符的层序,实现对预编码表的修改,直到其满足了最优编码表的条件为止。这样不用构建一个完整的霍夫曼树,就能获得与经典霍夫曼算法同样的编码效果。
为实现上述发明目的,本申请的一种基于部分霍夫曼树的数据压缩编码方法,所述的编码方法包括步骤:
1)统计数据中各个字符的出现概率,得到字符集及与其相应的概率集。
2)对数据的字符集中的各个字符预先分配一个预编码长度,构成分层的预编码表。其中,所述的预编码表中每一层的字符拥有相同的编码长度,较低层字符的概率小于较高层字符的概率。该预编码表中相邻的两层之间有一个固定的概率边界,且相邻两个边界值为二倍关系。
3)以预编码表为基础自底向上的逐层构建部分霍夫曼树。在构建过程中,首先递推的计算各层的节点个数,如果一层中节点个数为偶数,则继续计算上一层的节点个数;如果一层中节点个数为奇数,需首先对该层节点个数偶数化,并动态调整字符的编码长度,同时更新编码表;如果调整后的编码表满足最优编码表的条件,则终止构建部分霍夫曼树,否则重复步骤3)继续计算上一层的节点个数。
其中,所述最优编码表的条件为:
公式2
式中,Li(i=1,2,…,q)为编码表中各个字符的编码长度。
4)以经过步骤3)修改后的预编码表为基础,采用范式霍夫曼的编码规范,输出最优编码表,用它对数据进行压缩编码。
步骤2)中所述的预编码表的建立方法包括步骤:
21)确定分层边界,规定第n层与第n-1层概率边界值为:Un=2-n+0.5,第n层与第n+1层概率边界值为:Un+1=2-n-0.5
22)在字符集{a1,a2,...,aq}中若字符ai的概率pi满足Un<pi≤Un+1,则将ai填入预编码表的第n层。
所述的步骤3)中计算部分霍夫曼树中各层的节点个数的公式为:
Sn=Cn+Sn+1/2(n=1,2,…,M);公式3
其中,Sn为部分霍夫曼树中第n层的节点个数,Cn为预编码表中第n层的字符个数,M为最大层序。
所述的步骤3)中Sn为奇数时,对于部分霍夫曼树的第n层节点个数进行偶数化具体包括以下步骤:
31)找到第n层概率最大的节点Cmax与第n-1层概率最小的节点Cmin以及以它们为根节点的树Tmax和Tmin
32)以这两棵树作为左右子树,构成一棵新树;
33)节点Cmax与节点Cmin的概率之和如果大于第n-1层的上界值,子树Tmax中的所有节点提升一层,否则就将子树Tmin中的节点下降一层;
34)找到被调整的子树Tmax或者Tmin中所含的叶子节点,更新预编码表中与其对应的字符层序。
所述的步骤31)中寻找Cmax、Tmax与Cmin、Tmin的具体步骤包括:
311)设定一个层序的中间变量p,初始值为p=M。
312)将第p层概率最大的2p-n个节点按概率大小顺序排列,依次作为左右子节点构建2p-n-1个新节点,新节点的概率等于其左右子节点概率的和;将这些新节点的概率逐个与编码表中第p-1层字符的概率进行比较,得到这两部分中概率最大的2p-n个节点。
313)类似于步骤312)将第p层概率最小的前2p-n+1个节点按概率大小顺序排列,依次作为左右子节点构建2p-n个新节点,新节点的概率等于其左右子节点概率的和;将这些新节点的概率逐个与编码表中第p-1层字符的概率进行比较,得到这两部分中概率最小的2p-n个节点。
314)如果p大于n,将p减1,重复执行步骤312)与步骤313);如果p等于n+1则输出第n层最大节点Cmax,并追溯该节点的构成,找出Tmax,将p减1,继续执行步骤313);如果p等于n则结束循环,输出Cmin并追溯该节点的构成,找出Tmin
本发明的优点在于采用本发明可以有效的克服经典霍夫曼算法中影响运算效率的两个问题:
1)本发明通过计算字符的概率所处的范围就可预判其层序,在整个生成编码表的过程中,不必对所有的字符进行排序,从而减少了部分比较运算,缩减了计算量。
2)本发明仅通过构建霍夫曼树的一部分就能生成最优编码表。这样就消除了经典霍夫曼算法中的冗余计算,再次的缩减了计算量。
总之,采用本发明有效地消除了经典霍夫曼算法中的冗余计算,提高了编码效率,可作为通用算法,用于对数据的压缩编码,提高实时性。同时,降低对能源的消耗,尤其适用于能源受限的应用领域,如对海洋水声数据的采集与存储。
附图说明
关于本发明的操作方法和组织,及其目标、特征和优点等,当参照附图,阅读中可参考以下详细描述有助于更好地理解,在附图中:
图1是本发明的实例中寻找第三层概率最大节点过程的第一步的示意图。
图2是本发明的实例中寻找第三层概率最大节点过程的第二步的示意图。
图3是本发明的实例中第三层概率最大的节点以及其子树的示意图。
图4是本发明的实例中第二层概率最小的节点以及其子树的示意图。
图5是本发明的图3与图4中找到的两个子树合并的过程,以及所引发的对编码表的修改。
图6是在经典霍夫曼编码方法生成的霍夫曼树中,本发明生成的部分霍夫曼树所处的位置。
具体实施方式
以下结合实际例的具体实施方式,对本发明的上述内容再做进一步详细说明但不应将此理解为本发明上述主题的范围仅限于以下实例。在不脱离本发明上述思想的情况下,根据本领域普通技术知识和惯用手段做出的各种替换或者变更,均应包括在本发明内。
1.概率统计
扫描整个待编码数据,统计其中各个字符出现频率,通常一个字符可以是任意的,例如一个字节、一个报头、一个ASCII字符等等。统计过程无需对字符概率进行排序,直接生成一个无序的字符概率表。
2.预编码表的建立
建立预编码表有以下几个原则:
1)每一层的字符拥有相同的编码长度。
2)较低层字符的概率小于较高层字符的概率。
3)预编码表中相邻的两层之间有一个固定的概率边界,且相邻两个边界值为二倍关系。
由此得出一个较为简洁高效的建立预编码表的方法:
21)确定分层边界,规定第n层与第n-1层概率边界值为:Un=2-n+0.5,第n层与
第n+1层概率边界值为:Un+1=2-n-0.5
22)在字符集{a1,a2,...,aq}中若字符ai的概率pi满足Un<pi≤Un+1则将ai填入预编码表的第n层。
23)确定预编码表总层数M与每一层的字符个数Cn(n=1,2,…,M)。
3.部分霍夫曼树的建立
生成了预编码表之后,接下来需通过建立部分霍夫曼树来将其调整为最优编码表。这个部分是本发明的关键。
建立一棵部分霍夫曼树是一个自底向上逐层递推的过程,具体可以分为以下几个步骤:
31)对中间变量进行初始化。该过程中主要涉及两个中间变量,一个是当前层的层序n,另一个是部分霍夫曼树当前层所含的节点总数Sn。设定初始层序n=M,初始的Sn=Cn,Sn+1=0。
32)检查编码表是否满足最优编码表条件。即是公式2是否成立。如果等式成立,直接转入第4步输出编码表。否则继续执行步骤33)。
33)计算部分霍夫曼树中第n层的节点数目。部分霍夫曼树中第n层所含的节点个数可根据公式Sn=Cn+Sn+1/2得出。
34)如果Sn为偶数,将层序减1,重复步骤33)继续计算上一层的节点个数。
如果Sn为奇数,需先对其字符个数偶数化并更新编码表,再将层序减1,跳转至步骤32)检查当前编码表是否满足最优编码表的条件。其中字符个数偶数化的具体方法又可分为如下几个步骤:
a)首先寻找第n层概率最大的节点Cmax与第n-1层概率最小的节点Cmin以及以它们为根节点的树Tmax和Tmin;其步骤如下:
i.设定一个层序的中间变量p,初始值为p=M。
ii.将第p层概率最大的2p-n个节点按概率大小顺序排列,依次作为左右子节点构建2p-n-1个新节点,新节点的概率等于其左右子节点概率的和;将这些新节点的概率逐个与编码表中第p-1层字符的概率进行比较,得到这两部分中概率最大的2p-n个节点。
iii.类似于步骤ii将第p层概率最小的前2p-n+1个节点按概率大小顺序排列,依次作为左右子节点构建2p-n个新节点,新节点的概率等于其左右子节点概率的和;将这些新节点的概率逐个与编码表中第p-1层字符的概率进行比较,得到这两部分中概率最小的2p-n个节点。
iv.如果p大于n,将p减1,重复执行步骤ii与步骤iii;如果p等于n+1,则输出第n层最大节点Cmax,并追溯该节点的构成,找出Tmax,将p减1,并执行步骤iii;如果p等于n则结束循环,输出Cmin并追溯该节点的构成,找出Tmin
b)找到Tmax和Tmin后,以这两棵树作为左右子树,构成一棵新的树。
c)新树的根节点的概率(节点Cmax与节点Cmin的概率和)如果大于第n-1层的上界值Un-1,将节点Cmax提升到第n-1层,同时子树Tmax中的所有其他节点也随之提升一层。否则就将节点Cmin下降到第n层,同时子树Tmin中的其他节点也随之下降一层。
d)找到被调整的子树Tmax或者Tmin中所含的叶子节点,更新编码表中与其对应的字符层序。
4.输出编码表
对于编码表的输出,主要用到了范式霍夫曼编码的编码规范,仅根据预编码表中各个字符的编码长度直接输出最优编码表。最后根据最优编码表对数据进行编码。
实施例
1.随机选取一段英文文本并对其中出现的英文字符进行统计,表1为各个字符出现次数的统计结果。
表1字符出现次数统计表
字符 出现次数
“H” 8
“M” 10
“A” 11
“Q” 3
“K” 9
“F” 10
“D” 11
“C” 5
“N” 5
“B” 7
“P” 4
“E” 11
“Y” 4
“S” 2
2.依据预编码方法,计算各层间的概率边界,将字符按照其概率所处的范围分入相应层,生成如表2所示的预编码表。
3.由表2可知,预编码表共有五个层,其中各层字符个数为,C5=4、C4=4、C3=6,其余层字符个数为0。
表2预编码表
4.接下来开始构建部分霍夫曼树。
1)首先检验预编码表是否直接满足最优编码表条件,即对于所有的字符等式是否成立,其中Li(i=1,2,…,14)为字符的编码长度。结果为该预编码表不满足,故继续构建部分霍夫曼树。
2)预编码表共有5个层,设定层序初始值n=5,节点个数初始值S6=0。编码表中第5层的字符数C5=4,故S5=C5+S6/2=4,为偶数。依照生成部分霍夫曼树的步骤,将层序n减1,继续计算第4层的节点个数。
3)更新层序后,继续带入公式S4=C4+S5/2,此时预编码表的第4层仍然有4个字符所以C4=4,得到S4=6。部分霍夫曼树第4层的节点数仍然为偶数,故将层序n再次减1,计算第3层的节点个数。
4)对于第3层,C3=6,S3=C3+S4/2=9。此时节点个数首次为奇数,需对其偶数化:
a)首先要找到第3层概率最大的节点和第2层概率最小的节点以及以它们为根的子树。
i.为找到第3层概率最大的节点要从第5层概率最大的4个节点开始比较,它们分别是节点P(0.04)、节点Y(0.03)、节点Q(0.03)、节点S(0.03),括号中是它们的概率。将这4个节点按顺序排列,两两作为左右子节点结合生成新的节点。新节点的概率分别为0.07和0.06。称它们为节点“0.07”和节点“0.06”,如图1所示,图中左部为编码表的图示,表中字符用方块表示,方块内括号中的数字为该字符的概率。右侧为部分霍夫曼树,对于与编码表中的字符相对应的叶子节点,与编码表采用相同的表示方式。对于没有字符与其对应的中间节点则直接用圆圈和其概率表示,如节点“0.07”。
ii.将步骤i生成的这两个新节点与第4层概率最大的两个节点:节点H(0.08)、节点B(0.07)的概率进行比较。找出四个节点中概率最大的两个节点,分别为节点H(0.08)和节点“0.07”,它们结合后新的父节点的概率为0.15,即节点“0.15”,如图2所示。
iii.编码表中第3层概率最大字符为“D”,其概率为0.11。故第3层中概率最大的节点为节点“0.15”。
iv.节点“0.15”由节点H(0.08)与节点“0.07”构成,而节点“0.07”又由节点P(0.04)和节点Y(0.03)构成。由此可知以节点“0.15”为根的子树的结构,如图3所示。
v.同样的方法,可以计算出第2层概率最小的节点为节点“0.19”,该节点由第3层的节点F(0.1)和节点K(0.09)构成。如图4所示。
b)接下来将两个子树合并。合并后产生的新树根节点的概率为0.34,小于第2层的概率上界U3=2-1.5=0.35,所以需将以节点“0.19”为根节点的子树中所有的节点下降一层。
c)在以节点“0.19”为根节点的子树中包含了两个叶子节点,节点K(0.10)和节点F(0.09)。需在编码表中将与它们相对应的字符也下降一层,它们在编码表中的对应字符“K”和字符“F”由第3层下降到了第4层,如图5所示,右侧为合并后的部分霍夫曼树,左侧图示了合并导致的对编码表的更改。
5)再次检验最优编码表条件。条件成立,即对于分配给每个字符的编码长度Li
停止构建部分霍夫曼树。
5.依据范式霍夫曼编码的规定,编码表中第3层的第一字符“D”编为000,第二个字符“M”编为000+1=001。以此类推,第3层的最后一个字符的编码为011,故第4层的第一个字符编为(011+1)*2=1000。全部的编码如表3所示,括号中为该字符的编码。最后,根据以上步骤得到的最优编码表,直接对数据进行压缩编码。
表3最终编码表
第3层 D(000) M(001) A(010) E(011)
第4层 H(1000) C(1001) N(1010) B(1011) K(1100) F(1101)
第5层 P(11100) Q(11101) Y(11110) S(11111)
该实例如果采用经典霍夫曼编码方法,生成的霍夫曼树,如图6所示,其中深色部分为采用本发明算法是所需构建的部分霍夫曼树。可见同样为获得最优编码表,采用本发明的方法仅需构建原有算法中霍夫曼树的一部分,所以采用本发明的方法来生成编码表能够有效地节省计算量,消除原算法中的冗余操作,提高了算法效率。
最后,根据以上步骤得到的最优编码表,直接对数据进行压缩编码。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (5)

1.一种基于部分霍夫曼树的数据压缩编码方法,所述的编码方法包括步骤:
1)统计数据中各个字符的出现概率,得到字符集及与其相对应的概率集;
2)对数据的字符集中的各个字符预先分配一个预编码长度,构成分层的预编码表;其中,所述的预编码表中每一层的字符拥有相同的编码长度,较低层字符的概率小于较高层字符的概率;该预编码表中相邻的两层之间有一个固定的概率边界,且相邻两个边界值为二倍关系;
3)以预编码表为基础自底向上的逐层构建部分霍夫曼树;在构建过程中,首先递推的计算各层的节点个数;部分霍夫曼树中各层的节点个数的公式为:Sn=Cn+Sn+1/2,其中,n=1,2,…,M;其中,Sn为部分霍夫曼树中第n层的节点个数,Cn为预编码表第n层的字符个数,M为最大层序;
如果一层中节点个数为偶数,则继续计算上一层的节点个数;如果一层中节点个数为奇数,需首先对该层节点个数偶数化,并动态调整字符的编码长度,同时更新编码表;如果调整后的编码表满足最优编码表的条件,则终止构建部分霍夫曼树,否则重复步骤3)继续计算上一层的节点个数;
其中,所述最优编码表的条件为:式中,Li为编码表中各个字符的编码长度,其中,i=1,2,……,q;
所述的步骤3)中部分霍夫曼树第n层节点个数Sn为奇数时,对于该层节点个数进行偶数化具体包括以下步骤:
31)找到第n层概率最大的节点Cmax与第n-1层概率最小的节点Cmin以及以它们为根节点的树Tmax和Tmin
32)以这两棵树作为左右子树,构成一棵新树;
33)节点Cmax与节点Cmin的概率之和如果大于第n-1层的上界值,子树Tmax中的所有节点提升一层,否则就将子树Tmin中的节点下降一层;
34)找到被调整的子树Tmax或者Tmin中所含的叶子节点,更新预编码表中与其对应的字符层序;
4)根据经过上述步骤3)修改后的预编码表输出最优编码表,对数据进行压缩编码。
2.根据权利要求1所述的数据压缩编码方法,其特征在于,所述的预编码表的层序即该层字符的编码长度。
3.根据权利要求1或2所述的数据压缩编码方法,其特征在于,所述的预编码表的建立方法包括步骤:
21)确定分层边界,规定第n层与第n-1层概率边界值为:Un=2-n+0.5,第n层与第n+1层概率边界值为:Un+1=2-n-0.5
22)在字符集{a1,a2,...,aq}中,若字符ai的概率pi满足Un<pi≤Un+1,则将ai填入预编码表的第n层。
4.根据权利要求1所述的数据压缩编码方法,其特征在于,所述的步骤31)中寻找Cmax、Tmax与Cmin、Tmin的具体步骤包括:
311)设定一个层序的中间变量p,初始值为p=M;
312)将第p层概率最大的2p-n个节点按概率大小顺序排列,依次作为左右子节点构建2p -n-1个新节点,新节点的概率等于其左右子节点概率的和;将这些新节点的概率逐个与编码表中第p-1层字符的概率进行比较,得到这两部分中概率最大的前2p-n个节点;
313)类似于步骤312)将第p层概率最小的前2p-n+1个节点按概率大小顺序排列,依次作为左右子节点构建2p-n个新节点,新节点的概率等于其左右子节点概率的和;将这些新节点的概率逐个与编码表中第p-1层字符的概率进行比较,得到这两部分中概率最小的前2p-n个节点;
314)如果p大于n,将p减1,重复执行步骤312)与步骤313);如果p等于n+1则输出第n层概率最大节点Cmax,并追溯该节点的构成,找出Tmax,将p减1,并执行步骤313);如果p等于n则结束循环,输出Cmin并追溯该节点的构成,找出Tmin
5.根据权利要求1所述的数据压缩编码方法,其特征在于,所述的步骤4)中对最优编码表的输出采用范式霍夫曼编码规范。
CN201310294301.5A 2013-07-12 2013-07-12 一种基于部分霍夫曼树的数据压缩编码方法 Active CN104283568B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310294301.5A CN104283568B (zh) 2013-07-12 2013-07-12 一种基于部分霍夫曼树的数据压缩编码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310294301.5A CN104283568B (zh) 2013-07-12 2013-07-12 一种基于部分霍夫曼树的数据压缩编码方法

Publications (2)

Publication Number Publication Date
CN104283568A CN104283568A (zh) 2015-01-14
CN104283568B true CN104283568B (zh) 2017-05-17

Family

ID=52258112

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310294301.5A Active CN104283568B (zh) 2013-07-12 2013-07-12 一种基于部分霍夫曼树的数据压缩编码方法

Country Status (1)

Country Link
CN (1) CN104283568B (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9509335B1 (en) * 2015-05-11 2016-11-29 Via Alliance Semiconductor Co., Ltd. Hardware data compressor that constructs and uses dynamic-prime huffman code tables
CN104821829B (zh) * 2015-05-20 2018-06-26 东方网力科技股份有限公司 一种哈夫曼树保存方法及系统
CN106253910A (zh) * 2016-09-22 2016-12-21 山东华旗新能源科技有限公司 一种压缩编码方法
CN107332567B (zh) * 2017-06-09 2019-06-28 西安万像电子科技有限公司 编码方法和装置
CN107592117B (zh) * 2017-08-15 2019-09-24 深圳前海信息技术有限公司 基于Deflate的压缩数据块输出方法及装置
CN108599897B (zh) * 2018-04-09 2020-08-11 珠海格力电器股份有限公司 设备的数据处理方法和装置
CN111384967B (zh) * 2018-12-28 2022-12-09 上海寒武纪信息科技有限公司 数据编码方法
CN109831544B (zh) * 2019-01-30 2021-10-08 重庆农村商业银行股份有限公司 一种应用于电子邮箱地址的编码存储方法及系统
CN109959401B (zh) * 2019-03-26 2022-01-11 中国科学院光电技术研究所 一种光电轴角编码器的快速编码方法
CN110473264B (zh) * 2019-07-26 2023-04-07 北京华捷艾米科技有限公司 基于霍夫曼编码的深度图压缩方法、解压缩方法及编码器
CN110868223B (zh) * 2019-12-06 2023-10-27 广东海洋大学 一种哈夫曼编码的数值运算实现方法及电路
CN111506781A (zh) * 2020-04-21 2020-08-07 四川创智联恒科技有限公司 一种大幅压缩数据库体积的方法、系统、终端设备和可读存储介质
CN112199922B (zh) * 2020-08-25 2023-08-22 中国物品编码中心 编码方法、装置、设备及计算机可读存储介质
CN112886967B (zh) * 2021-01-23 2023-01-10 苏州浪潮智能科技有限公司 一种数据压缩编码处理的方法和设备
CN113242264B (zh) * 2021-07-09 2021-09-24 中国人民解放军国防科技大学 一种对大容量数据进行压缩存储的方法和系统
CN113746487B (zh) * 2021-08-25 2023-11-03 山东云海国创云计算装备产业创新中心有限公司 一种数据压缩方法、装置及电子设备和存储介质
CN113965207B (zh) * 2021-12-17 2022-03-15 苏州浪潮智能科技有限公司 一种基于deflate霍夫曼编码的动态码表生成装置和方法
CN115438003A (zh) * 2022-08-25 2022-12-06 昆仑数智科技有限责任公司 多站点内容获取方法、设备及存储介质
CN115361027B (zh) * 2022-10-18 2023-03-24 江苏量超科技有限公司 一种污水处理效果识别方法
CN116318173B (zh) * 2023-05-10 2023-08-11 青岛农村商业银行股份有限公司 一种金融融资服务数字智能管理系统
CN116505954B (zh) * 2023-06-28 2024-01-23 深圳大普微电子科技有限公司 一种霍夫曼编码方法、系统、装置及介质
CN116610084B (zh) * 2023-07-20 2023-09-12 北京柏瑞安电子技术有限公司 一种pcba生产数据智能管理系统
CN116865768B (zh) * 2023-08-31 2023-11-21 临沂安迪电气有限公司 一种plc设备数据优化存储方法
CN116915262B (zh) * 2023-09-12 2023-12-08 北京路畅均安科技有限公司 一种基于物联网的智慧工地工程质量管理系统
CN117176179B (zh) * 2023-11-03 2024-01-26 苏州硒瑞恩生物科技有限公司 一种核酸合成仪数据编码处理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1478255A (zh) * 2000-09-28 2004-02-25 罗克马诺尔研究有限公司 改进的霍夫曼数据压缩方法
CN1613188A (zh) * 2001-10-19 2005-05-04 诺基亚公司 霍夫曼编码
CN101193295A (zh) * 2006-12-01 2008-06-04 致伸科技股份有限公司 霍夫曼解码方法和霍夫曼解码装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1478255A (zh) * 2000-09-28 2004-02-25 罗克马诺尔研究有限公司 改进的霍夫曼数据压缩方法
CN1613188A (zh) * 2001-10-19 2005-05-04 诺基亚公司 霍夫曼编码
CN101193295A (zh) * 2006-12-01 2008-06-04 致伸科技股份有限公司 霍夫曼解码方法和霍夫曼解码装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种自适应Huffman算法在无线传感器网络数据压缩中的应用;刘政 等;《重庆理工大学学报(自然科学) 》;20130215;第27卷(第2期);全文 *

Also Published As

Publication number Publication date
CN104283568A (zh) 2015-01-14

Similar Documents

Publication Publication Date Title
CN104283568B (zh) 一种基于部分霍夫曼树的数据压缩编码方法
CN1183683C (zh) 使用前缀预测的位自适应编码方法
CN100430943C (zh) 一种过程工业历史数据智能两级压缩方法
CN102122960A (zh) 一种针对二进制数据的多字符组合无损数据压缩方法
CN104467868A (zh) 中文文本压缩方法
CN103347047B (zh) 一种基于网络字典的无损数据压缩方法
CN107565970B (zh) 一种基于特征识别的混合无损压缩方法及装置
CN113610227B (zh) 一种用于图像分类的深度卷积神经网络剪枝方法
CN107565973A (zh) 一种结点可扩展的哈夫曼编码的实现方法及电路结构
CN104268077A (zh) 基于混沌遗传算法的测试用例集约简算法
CN116051156B (zh) 一种基于数字孪生的新能源动态电价数据管理系统
CN116910285B (zh) 基于物联网的智慧交通数据优化存储方法
CN117155407B (zh) 一种智慧镜柜消毒日志数据优化存储方法
CN110868223B (zh) 一种哈夫曼编码的数值运算实现方法及电路
CN117097906B (zh) 一种区域医疗资源高效利用的方法及系统
CN116595568B (zh) 一种基于区块链的隐私数据加密方法
CN103746701B (zh) 一种用于Rice无损数据压缩的快速编码选项选择方法
KR101023536B1 (ko) 데이터 무손실 압축 방법
CN104682966B (zh) 列表数据的无损压缩方法
CN1209925C (zh) 基于信源高阶熵的数据压缩方法
Zahir et al. A new chain coding based method for binary image compression and reconstruction
Huang et al. An improved LBG algorithm for image vector quantization
KR20160106229A (ko) 문맥기반 분포데이터의 블럭화를 이용한 허프만 부호화의 효율화 방법 및 그 장치
KR20160100496A (ko) 바이너리 클러스터를 이용한 허프만 부호화 효율화 방법 및 그 장치
RU2437148C1 (ru) Способ сжатия и восстановления сообщений в системах обработки, передачи и хранения текстовой информации

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information

Inventor after: Tai Yupeng

Inventor after: Wang Haibin

Inventor after: Wang Jun

Inventor after: Yang Xiaoxia

Inventor before: Tai Yupeng

Inventor before: Wang Haibin

Inventor before: Wang Jun

COR Change of bibliographic data
CB03 Change of inventor or designer information

Inventor after: Tai Yupeng

Inventor after: Wang Haibin

Inventor after: Wang Jun

Inventor after: Yang Xiaoxia

Inventor before: Tai Yupeng

Inventor before: Wang Haibin

Inventor before: Wang Jun

COR Change of bibliographic data
GR01 Patent grant
GR01 Patent grant