保存范式哈夫曼树的方法及装置的制造方法

文档序号:9729831阅读:269来源:国知局
保存范式哈夫曼树的方法及装置的制造方法
【技术领域】
[0001] 本发明设及编码存储技术,尤其设及保存范式哈夫曼树的方法及装置。
【背景技术】
[0002] 在进行数据压缩时常用到范式哈夫曼树,如:GZIB、化IB、PNG、JPEG、MPEG。实际压 缩中,除了保存压缩编码,还需要保存范式哈夫曼树及原始数据总量等,运样才能够解压 缩。本发明方案针对的是如何保存范式哈夫曼树。
[0003] 首先介绍范式哈夫曼编码的原理,范式哈夫曼编码过程大概分为4步:
[0004] 1)对压缩单元进行计数或概率统计,并按照从大到小进行排序,假定对字节数据 统计结果如下述表1所示:
[0005]
[0006] 表1对压缩单元进行计数或概率统计后的排序
[0007] 其中,符号用于对压缩单元进行标识,计数表示相应压缩单元的个数,概率表示相 应压缩单元占总压缩单元的比例。
[0008] 2)按照统计结果创建范式哈夫曼树,具体地:总是找到两个出现概率或次数最少 的合并二叉树,直到合并到一个根节点为止。假定按照上述结果分a,b,. .e共5步(e为结 果),创建流程如图1所示。
[0009] 3)按照左节点编码为0,右节点为1对数据单元进行编码,产生范式哈夫曼编码表, 如表2所示。
[0010] _
[0011] 表2范式哈夫曼编码表
[0012] 4)按照编码进行数据替换即压缩,也就是原来需要8位存储的数据A,B,. .E,最后 可W用1,3,3,3,3位数据代替,顺序存储,最终实现了压缩的目的。若要解压缩还需要记录 编码表,也即{A,0},{B,100},{C,101},{D,110},巧,111}。由于主要讨论如何存储编码表, 编码压缩的详细过程及解码过程就不再详细介绍了。
[0013] 目前存储范式哈夫曼编码表多采用如下方案:
[0014] 1)记录码长方式:
[0015]
[0016] 表3记录哈夫曼编码的码长表格
[0017] 如上表所示,码表需要保存的是1,3,3,3,3,因为范式哈夫曼树的特点,由运几个 数字就可W还原出原来的树。用码长代替编码的好处是存储位数的宽度是比较有限的,就 拿全部的单字节码表来看,最长也不会超过255位,也就是最长为1个字节。
[0018] 2)记录码长基础上对码表进行二次压缩的方式:
[0019] 将上述码表的数据1,3,3,3,3再次进行压缩,如使用化E压缩,则压缩后变为:1,0, 3,3(代表0+1 = 1个1和3+1 = 4个3),也有别的方式的压缩的,当有大量重复数据时,例如长 度全为別寸,可能记录的就是8,255。
[0020] 现有保存范式哈夫曼树的方案存在W下缺陷:
[0021] 不压缩情况下:最大码长较长时每个码长保存位数需要加大,极端情况下字符 (8bit)压缩,码表长度将达到256字节。
[0022] 压缩情况下:多数压缩算法,面对重复字节压缩率都会提高,但面对几乎每个码长 都很少时(也即重复性较少时)就较难W发挥作用了。
[0023] 综上,现有保存范式哈夫曼树的方案都存在码表过大的问题,极端情况下达到甚 至超过直接存码表。

【发明内容】

[0024] 本发明提供了一种保存范式哈夫曼树的方法,该方法能够采用尽量少的数据来保 存范式哈夫曼树,提高存储效率。
[0025] 本发明提供了一种保存范式哈夫曼树的装置,该装置能够采用尽量少的数据来保 存范式哈夫曼树,提高存储效率。
[0026] 本发明提供了另一种保存范式哈夫曼树的方法,该方法能够采用尽量少的数据来 保存范式哈夫曼树,提高存储效率。
[0027] 本发明提供了另一种保存范式哈夫曼树的装置,该装置能够采用尽量少的数据来 保存范式哈夫曼树,提高存储效率。
[0028] -种保存范式哈夫曼树的方法,该方法包括:
[0029] 对范式哈夫曼树的节点进行标记,用Μ标记节点有子树,用饰示记节点无子树;
[0030] 由上至下对范式哈夫曼树每层节点的标记依次进行记录,具体地:采用从左至右 的顺序,从第一个节点开始记录,只记录到第一个不为Ν的节点;
[0031] 将记录的节点标记作为最终记录结果,保存最终记录结果。
[0032] -种保存范式哈夫曼树的装置,该装置包括节点标记记录模块和保存模块;
[0033] 所述节点标记记录模块,对范式哈夫曼树的节点进行标记,用Μ标记节点有子树, 用Ν标记节点无子树;由上至下对范式哈夫曼树每层节点的标记依次进行记录,具体地:采 用从左至右的顺序,从第一个节点开始记录,只记录到第一个不为Ν的节点;将记录的节点 标记发送给所述保存模块;
[0034] 所述保存模块,将记录的节点标记作为最终记录结果,保存最终记录结果。
[0035] -种保存范式哈夫曼树的方法,该方法包括:
[0036] 对范式哈夫曼树的节点进行标记,用Μ标记节点有子树,用饰示记节点无子树;
[0037] 由上至下对范式哈夫曼树每层节点的标记依次进行记录,具体地:采用从右至左 的顺序,从第一个节点开始记录,只记录到第一个不为Μ的节点;
[003引将记录的节点标记作为最终记录结果,保存最终记录结果。
[0039] -种保存范式哈夫曼树的装置,该装置包括节点标记记录模块和保存模块;
[0040] 所述节点标记记录模块,对范式哈夫曼树的节点进行标记,用Μ标记节点有子树, 用Ν标记节点无子树;由上至下对范式哈夫曼树每层节点的标记依次进行记录,具体地:采 用从右至左的顺序,从第一个节点开始记录,只记录到第一个不为Μ的节点;将记录的节点 标记发送给所述保存模块;
[0041] 所述保存模块,将记录的节点标记作为最终记录结果,保存最终记录结果。
[0042] 从上述方案可W看出,本发明中,对范式哈夫曼树的节点进行标记,再对每层节点 的标记进行记录,而后,将记录的节点标记作为最终记录结果,保存最终记录结果。本发明 采用从左至右或从右至左的顺序对每层节点的标记进行记录,从第一个节点开始记录,记 录到第一个不为Ν或不为Μ的节点。具体地,采用从左至右对每层节点的标记进行记录时,从 第一个节点开始记录,只记录到第一个不为Ν的节点,后续节点不再进行记录;类似地,采用 从右至左对每层节点的标记进行记录时,从第一个节点开始记录,只记录到第一个不为Μ的 节点,后续节点不再记录;另外,在此基础上不对每层最右侧节点和最后一层的所有节点进 行记录。本申请一改惯有的记录码长方式和二次压缩方式,提供了更加简便的记录方式,也 减少了存储数据,从而提高了存储效率。
【附图说明】
[0043] 图1为现有范式哈夫曼树的创建流程图;
[0044] 图2为本发明保存范式哈夫曼树的方法示意性流程图;
[0045] 图3为本发明对范式哈夫曼树各层进行记录的示意图实例;
[0046] 图4为本发明保存范式哈夫曼树的装置结构示意图。
【具体实施方式】
[0047] 为使本发明的目的、技术方案和优点更
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1