适应性霍夫曼编码系统及方法技术方案

技术编号:34513816 阅读:18 留言:0更新日期:2022-08-13 21:00
本发明专利技术揭示了一种适应性霍夫曼编码系统及方法,所述适应性霍夫曼编码系统包括:待编码数据获取模块及霍夫曼二叉树编码模块;待编码数据获取模块用以获取待编码数据;霍夫曼二叉树编码模块用以根据所述待编码数据获取模块获取的待编码数据构建霍夫曼二叉树;将霍夫曼二叉树的各节点与内存建立索引,在构建霍夫曼二叉树时,根据根节点到目标节点的唯一路径计算出目标节点的内存索引数值。本发明专利技术提出的适应性霍夫曼编码系统及方法,可高效地在硬件上存取编码数据结构并最佳化编码的存储空间,同时给予可配置内存的弹性。同时给予可配置内存的弹性。同时给予可配置内存的弹性。

【技术实现步骤摘要】
适应性霍夫曼编码系统及方法


[0001]本专利技术属于人工智能及数据编码
,涉及一种编码系统,尤其涉及一种适应性霍夫曼编码系统及方法。

技术介绍

[0002]无损资料压缩是高效资料存储中的一个关键要素,而霍夫曼编码则是其中最流行的可变长度编码算法。给定一组资料符号以及它们出现的概率,霍夫曼编码将以更短的代码分配给更频繁出现的符号,这种方式生成码字来最小化平均代码长度。由于它保证了最优性,霍夫曼编码已被各种应用广泛采用。在现代多级压缩设计中,它经常用作系统的后端,来提高特定领域前端的压缩性能,如JPEG和MP3。
[0003]适应性霍夫曼编码是基于霍夫曼编码的动态编码技术。不同的是,它一开始不知道各符号出现的概率,而是随着数据流的到达,动态地收集和更新符号出现的概率,一般使用递归的方式从霍夫曼树的根到叶节点来遍历数据。在硬件上实作上适应性霍夫曼编码有三个主要缺点:(1)由于AI模型参数及特征图数据分布的特性,常导致适应性霍夫曼编码产生歪斜树的数据结构,不利于内存数据存储;(2)递归式的存取数据需要有额外空间支持,从而增加了内存使用量;(3)硬件设计上,为每个符号遍历树的计算成本是很高的。
[0004]AI模型常有数百万计个参数及特征图数据,在进行边缘端模型推论时需要使用大量的内存进行储存以及传输。尤其特征图运算时会占用到内存I/O的频宽,若在多系统共享内存的情况下将造成频宽不足。
[0005]因此,如何在硬件上进行有效的传输,降低单位时间内占用内存的频宽,同时保有一样多的数据信息成为重要议题。适应性霍夫曼编码是一种实时的无损资料压缩算法;然而,由于此算法特殊的树状数据结构,一般使用递归的方式存取子树节点的资料,很难在硬件上有效地实行。
[0006]有鉴于此,如今迫切需要设计一种新的编码方式,以便克服现有编码方式存在的上述至少部分缺陷。

技术实现思路

[0007]本专利技术提供一种适应性霍夫曼编码系统及方法,可高效地在硬件上存取编码数据结构并最佳化编码的存储空间,同时给予可配置内存的弹性。
[0008]为解决上述技术问题,根据本专利技术的一个方面,采用如下技术方案:
[0009]一种适应性霍夫曼编码系统,所述适应性霍夫曼编码系统包括:
[0010]待编码数据获取模块,用以获取待编码数据;
[0011]霍夫曼二叉树编码模块,用以根据所述待编码数据获取模块获取的待编码数据构建霍夫曼二叉树;将霍夫曼二叉树的各节点与内存建立索引,在构建霍夫曼二叉树时,根据根节点到目标节点的唯一路径计算出目标节点的内存索引数值。
[0012]作为本专利技术的一种实施方式,所述霍夫曼二叉树编码模块包括:
[0013]霍夫曼二叉树初始化单元,用以初始化霍夫曼二叉树;
[0014]霍夫曼二叉树更新单元,用以按照设定规则更新霍夫曼二叉树;
[0015]所述霍夫曼二叉树更新单元更新霍夫曼二叉树的过程须依循以下规范:
[0016](1)节点按递增顺序编号;即节点编号由上往下递增;由左往右编号递增;
[0017](2)内部节点由圆形表示;内部节点权重为子节点权重之和;
[0018](3)叶节点由正方形表示;叶节点的权重初始化为1,如果有数据重复输入,则权重增加1;
[0019](4)在树的更新过程中,如果左子树的权重大于右子树,则必须交换节点。
[0020]作为本专利技术的一种实施方式,所述霍夫曼二叉树编码模块在构建霍夫曼二叉树的过程中需要动态地更新节点权重以及交换节点;透过固定位址存取的方式,优化节点数据到硬件内存的映射;
[0021]配置一块连续的内存用于存放特定深度下的满二叉树的所有内部节点及叶节点的信息,若存放内部节点,可透过存取内存的位址进行上述动态操作,不需要透过父节点一一存取左右子树;若存放叶节点,则可直接存取该叶节点的待编码数据并更新权重;
[0022]根据根节点(root)到目标节点之唯一路径,计算出目标节点的内存索引数值:根节点之左子节点路径纪录为0;右子节点路径纪录为1;
[0023]设定满二叉树深度为k;将根节点映射至内存位址为1,其左右子节点依满二叉树定义位址分别为2、3,依此类推;获取任意目标节点所映射的内存位址透过左移运算子(<<)来达成,左移运算子会将整数或列举型别表达式位元向左移动;依上述左右子节点索引定义,对于索引为j的任意目标节点之左子节点内存位址索引表示成j<<1,右子节点之内存位址索引表示成(j<<1)+1,其中该目标节点的内存索引i藉由根节点到目标节点之唯一路径计算出来。
[0024]作为本专利技术的一种实施方式,所述霍夫曼二叉树编码模块进一步包括二叉树内存地址重映单元,用以在霍夫曼二叉树构建完成之后,利用子二叉树内存地址重映的方式给定一组连续的内存空间,将内存中的空指针指向超出内存范围的节点,使硬件上能以内存效率较高的平衡树资料结构存储节点。
[0025]作为本专利技术的一种实施方式,假设一满二叉树深度为k,构建二叉树的过程会预先计算目标节点的内存索引数值,一旦索引值超出2
k

1,则实施二叉树内存地址重映;二叉树内存地址重映的过程会将索引值超出2
k

1之目标节点的父节点与原先纪录于内存中之空节点的父节点建立地址映射关系;
[0026]二叉树内存地址重映包括:存取原先纪录于内存中之空节点的父节点、节点间地址映射关系的建构;首先,由于适应性霍夫曼二叉树本身的特性,包含待编码数据的叶节点不会有左右子树,故以深度为k的满二叉树大小所配置的二叉树空间2
k
中,有存储数据的叶节点内存索引为j,其左右子节点索引2j及(2j+1)皆为空节点;其中,以索引值最小的叶节点作为空节点的父节点进行映射;接下来,在映射关系的建构的过程,将该节点指针指向索引值超出2
k

1之目标节点的父节点,并于编码时,利用父节点映射关系将子二叉树位址信息重映回原二叉树中。
[0027]作为本专利技术的一种实施方式,所述霍夫曼二叉树编码模块进一步包括:二叉树深度获取单元,用以获取目标二叉树深度;
[0028]所述二叉树深度获取单元用以在编码过程中所述二叉树深度获取单元获取的二叉树深度超出设定目标二叉树深度时,记录当前的编码信息,并构建新的霍夫曼二叉树,进行新一轮的编码,直到设定的待编码数据完成编码;
[0029]霍夫曼二叉树会重新初始化一个NYT叶节点,待编码数据重新视为第一次出现的字符节点并构建新的适应性霍夫曼二叉树。
[0030]根据本专利技术的另一个方面,采用如下技术方案:一种适应性霍夫曼编码方法,所述适应性霍夫曼编码方法包括:
[0031]待编码数据获取步骤,获取待编码数据;
[0032]霍夫曼二叉树编码步骤,根据获取的待编码数据实时建构霍夫曼二叉树;将霍夫曼二叉树的各节点与内存建立索引,在构建霍夫曼二叉树时,根据根节点到目标节点的唯一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种适应性霍夫曼编码系统,其特征在于,所述适应性霍夫曼编码系统包括:待编码数据获取模块,用以获取待编码数据;霍夫曼二叉树编码模块,用以根据所述待编码数据获取模块获取的待编码数据构建霍夫曼二叉树;将霍夫曼二叉树的各节点与内存建立索引,在构建霍夫曼二叉树时,根据根节点到目标节点的唯一路径计算出目标节点的内存索引数值。2.根据权利要求1所述的适应性霍夫曼编码系统,其特征在于:所述霍夫曼二叉树编码模块包括:霍夫曼二叉树初始化单元,用以初始化霍夫曼二叉树;霍夫曼二叉树更新单元,用以按照设定规则更新霍夫曼二叉树;所述霍夫曼二叉树更新单元更新霍夫曼二叉树的过程须依循以下规范:(1)节点按递增顺序编号;即节点编号由上往下递增;由左往右编号递增;(2)内部节点由圆形表示;内部节点权重为子节点权重之和;(3)叶节点由正方形表示;叶节点的权重初始化为1,如果有数据重复输入,则权重增加1;(4)在树的更新过程中,如果左子树的权重大于右子树,则必须交换节点。3.根据权利要求1所述的适应性霍夫曼编码系统,其特征在于:所述霍夫曼二叉树编码模块在构建霍夫曼二叉树的过程中动态地更新节点权重以及交换节点;透过固定位址存取的方式,优化节点数据到硬件内存的映射;配置一块连续的内存用于存放特定深度下的满二叉树的所有内部节点及叶节点的信息;若存放内部节点,透过存取内存的位址进行上述动态操作,不需要透过父节点一一存取左右子树;若存放叶节点,则直接存取该叶节点的待编码数据并更新权重;根据根节点到目标节点之唯一路径,计算出目标节点的内存索引数值:根节点之左子节点路径纪录为0;右子节点路径纪录为1;设定满二叉树深度为k;将根节点映射至内存位址为1,其左、右子节点依满二叉树定义位址分别为2、3,依此类推;获取任意目标节点所映射的内存位址透过左移运算子<<来达成,左移运算子会将整数或列举型别表达式位元向左移动;依上述左右子节点索引定义,对于索引为j的任意目标节点之左子节点内存位址索引表示成j<<1,右子节点之内存位址索引表示成(j<<1)+1,其中该目标节点的内存索引i藉由根节点到目标节点之唯一路径计算出来。4.根据权利要求1所述的适应性霍夫曼编码系统,其特征在于:所述霍夫曼二叉树编码模块进一步包括二叉树内存地址重映单元,用以在霍夫曼二叉树构建完成之后,利用子二叉树内存地址重映的方式给定一组连续的内存空间,将内存中的空指针指向超出内存范围的节点,使硬件上能以内存效率较高的平衡树资料结构存储节点。5.根据权利要求4所述的适应性霍夫曼编码系统,其特征在于:设定一满二叉树深度为k,构建二叉树的过程会预先计算目标节点的内存索引数值,一旦索引值超出2
k

1,则实施二叉树内存地址重映;二叉树内存地址重映的过程将索引值超出2
k

1之目标节点的父节点与原先纪录于内存中之空节点的父节点建立地址映射关系;所述二叉树内存地址重映单元用以存取原先纪录于内存中的空节点的父节点、节点间
地址映射关系的建构;适应性霍夫曼二叉树包含待编码数据的叶节点没有左右子树,故以深度为k的满二叉树大小所配置的二叉树空间2
k
中,有存储数据的叶节点内存索引为j,其左右子节点索引2j及(2j+1)皆为空节点;其中,以索引值最小的叶节点作为空节点的父节点进行映射;在映射关系的建构过程中,将索引值最小的叶节点指针指向索引值超出2
k

1之目标节点的父节点,并于编码时,利用父节点映射关系将子二叉树位址信息重映回原二叉树中。6.根据权利要求1所述的适应性霍夫曼编码系统,其特征在于:所述霍夫曼二叉树编码模块进一步包括二叉树深度获取单元,用...

【专利技术属性】
技术研发人员:萧文远郑岚心
申请(专利权)人:博流智能科技南京有限公司
类型:发明
国别省市:

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

1