一种基于动态霍夫曼树的多路数据编解码方法及装置制造方法及图纸

技术编号:16821997 阅读:112 留言:0更新日期:2017-12-16 16:34
本发明专利技术公开了一种基于动态霍夫曼树的多路数据编解码方法及装置,编解码方法包括根据多组先验知识进行初始化处理,得到多棵初始霍夫曼树;动态获取多组待编解码数据,根据初始化处理结果和多棵初始霍夫曼树,采用交错编解码的算法对待编解码数据进行动态编解码。装置包括存储器和处理器。本发明专利技术通过霍夫曼树对实时动态数据进行编解码,提高了编解码的实时性和通用性;另外,本发明专利技术在第一步就构建了完整的霍夫曼树,提高了编解码的效率。本发明专利技术可广泛应用于数据处理领域。

A method and device for multichannel data codec based on dynamic Hoffman tree

The invention discloses a decoding method and apparatus for multi-channel dynamic data based on Hoffman tree, coding and decoding method includes initialization processing a plurality of groups according to prior knowledge, obtained initial tree Hoffman tree; dynamic access to multiple groups to be decoding data, according to the results of many trees and initialize the initial Hoffman tree, using interleaving encoding and decoding the algorithm treats the encoding and decoding data for dynamic codec. The device includes memory and processor. The invention compiles and decodes real-time dynamic data through the Hoffman tree, improves the real-time and versatility of the encoding and decoding. In addition, the invention constructs the complete Hoffman tree in the first step, and improves the efficiency of encoding and decoding. The invention can be widely used in the field of data processing.

【技术实现步骤摘要】
一种基于动态霍夫曼树的多路数据编解码方法及装置
本专利技术涉及数据处理领域,尤其是一种基于动态霍夫曼树的多路数据编解码方法及装置。
技术介绍
随着当今信息社会的发展,以视频、音频、文本等形式存在的数据正海量增长,迫切需要一种高效的压缩和解压的方法用于数据的保存和传输。数据压缩是指用尽可能少的码位来表示原始数据,数据压缩在很多领域应用十分广泛,例如:通过压缩以较低的带宽传输和处理图像、语音、文本等数据。压缩后的数据占用较少的存储容量,通过压缩数据可以降低硬件存储费用,降低信号传输的发射功率等。数据压缩在现在数据量爆发的大数据时代下有着重大的作用和意义。目前数据压缩技术有许多种,按照压缩后对数据的失真度,可分为无损压缩和有损压缩。在许多应用背景下,由于对数据的完整性有较高要求,因此一种高效的无损压缩方法是非常重要的。无损压缩可以通过建立霍夫曼树来降低压缩数据的失真度。但是,现有的编解码方法是在压缩数据过程中逐步构建霍夫曼树的,构建速度慢且效率低;再者,目前的数据压缩方法是针对内容和长度已知的数据进行压缩,不能处理实时产生的流式数据,更不能处理多路实时数据,实时性低且通用性较差,无法满足当今时代的需求;此外,目前的通过建立霍夫曼树进行数据压缩的方法,其编码过程中的霍夫曼树是恒定不变的,导致部分数据压缩失败,降低了数据压缩率。
技术实现思路
为解决上述技术问题,本专利技术的目的在于:提供一种无损、高效而且实时性高的基于霍夫曼树的多路动态数据编码方法。本专利技术的第二个目的在于:提供一种无损、高效而且实时性高基于霍夫曼树的多路动态数据解码方法。本专利技术的第三个目的在于:提供一种无损、高效而且实时性高基于霍夫曼树的多路动态数据编解码装置。本专利技术的第一个技术方案是:一种基于动态霍夫曼树的多路数据编码方法,包括以下步骤:根据多组先验知识进行初始化处理,得到多棵初始霍夫曼树;动态获取多组待编码数据,根据初始化处理结果和多棵初始霍夫曼树,采用交错编码的算法对待编码数据进行动态编码。进一步,所述根据多组先验知识进行初始化处理,得到多棵初始霍夫曼树这一步骤,包括以下步骤:获取多组先验知识,确定先验知识中原始数据的种类及各类原始数据的取值个数;根据先验知识,得到各类原始数据概率分布情况;根据先验知识对编码端进行初始化处理,生成多棵初始霍夫曼树。进一步,所述根据先验知识,得到各类原始数据概率分布情况这一步骤,包括以下步骤:设定缓冲区大小,并根据原始数据的种类设定各类原始数据在缓冲区中的排列顺序;根据先验知识中各类数据的统计情况,得到各类数据的先验概率分布。进一步,所述根据先验知识对编码端进行初始化处理,生成多棵初始霍夫曼树这一步骤,具体为:根据先验知识对编码端进行第一初始化处理,生成多棵初始霍夫曼树或者根据先验知识对编码端进行第二初始化处理,生成多棵初始霍夫曼树;其中,所述根据先验知识对编码端进行第一初始化处理,生成多棵初始霍夫曼树这一步骤,包括以下步骤:根据先验知识建立每类原始数据的原始霍夫曼树和每类原始数据的循环队列;根据先验概率分布生成各类原始数据的原始序列;根据各类符合先验知识的原始序列生成各类原始数据的伪随机序列;将各类原始数据的伪随机序列输入其对应的循环队列中。所述根据先验知识对编码端进行第二初始化处理,生成多棵初始霍夫曼树这一步骤,包括以下步骤:根据先验知识建立每类原始数据的原始霍夫曼树和每类原始数据的循环队列;将原始霍夫曼树作为初始霍夫曼树用于后续动态编码;对于每一类数据,在相应的循环队列第一次满时,将当前霍夫曼树结点权值减去相应原始霍夫曼树结点权值得到最新结点权值,并根据最新结点权值重新生成霍夫曼树用于后续动态编码。进一步,所述动态获取多组待编码数据,根据初始化处理结果和多棵初始霍夫曼树,采用交错编码的算法对待编码数据进行动态编码这一步骤,包括以下步骤:根据设定的各类原始数据在缓冲区中的排列顺序,编码端依次获取各类待编码数据;根据各类待编码数据对应的初始霍夫曼树,对各类待编码数据进行交错编码;根据待编码数据,更新各类原始数据对应的初始霍夫曼树。进一步,所述根据待编码数据,更新各类原始数据对应的初始霍夫曼树这一步骤,包括以下步骤:获取待编码数据并选择相应的编码队列;判断选择的编码队列是否已满,若是,则将选择的编码队列的队尾数据移出编码队列,对初始霍夫曼树进行更新减操作并执行下一步骤;反之则执行下一步骤;将待编码数据加入移出队尾数据后的编码队列,并对初始霍夫曼树进行更新加操作。进一步,所述对初始霍夫曼树进行更新减操作这一步骤,包括以下步骤:根据初始霍夫曼树,获取并将权值已发生改变的始结点、始结点的兄弟结点、始结点兄弟结点的孩子结点以及始结点的父亲结点作为待处理的子树;将待处理子树中的每一层结点按照设定规则进行排序;判断始结点的权值是否小于始结点兄弟结点的孩子结点的权值,若是,则在对始结点与始结点兄弟结点所在的待处理子树进行旋转处理后执行下一步骤;反之,则直接执行下一步骤;根据待处理子树的叶子结点,更新待处理子树的所有结点;判断当前始结点是否为初始霍夫曼树的根结点,若是,则已将当前霍夫曼树作为最终霍夫曼树,结束更新减操作;反之,则获取当前始结点的父结点,并且返回根据初始霍夫曼树,获取并将权值已发生改变的始结点、始结点的兄弟结点、始结点兄弟结点的孩子结点以及始结点的父亲结点作为待处理的子树这一步骤,直至当前始结点为初始霍夫曼树的根节点。进一步,所述对初始霍夫曼树进行更新加操作这一步骤,包括以下步骤:根据初始霍夫曼树,获取并将权值已发生改变的始结点、始结点的兄弟结点、始结点兄弟结点的孩子结点以及始结点的父亲结点作为待处理的子树;将待处理子树中的每一层结点按照特定规则进行排序;判断始结点的权值是否小于始结点父亲结点的兄弟结点的权值,若是,则在对始结点与父亲结点所在的待处理子树进行旋转处理后执行下一步骤;反之,则直接执行下一步骤;根据待处理子树的叶子结点,更新该子树的所有结点;判断当前始结点是否为初始霍夫曼树的根结点,若是,则已将当前霍夫曼树作为最终霍夫曼树,结束更新减操作;反之,则获取当前始结点的父结点,并且返回根据初始霍夫曼树,获取并将权值已发生改变的始结点、始结点的兄弟结点、始结点兄弟结点的孩子结点以及始结点的父亲结点作为待处理的子树这一步骤,直至当前始结点为初始霍夫曼树的根节点。本专利技术的第二个技术方案是:一种基于动态霍夫曼树的多路数据解码方法,包括以下步骤:根据多组先验知识进行初始化处理,得到多棵初始霍夫曼树;动态获取多组待解码数据,根据初始化处理结果和多棵初始霍夫曼树,采用交错解码的算法对待解码数据进行动态解码。本专利技术的第三个技术方案是:一种基于动态霍夫曼树的多路数据编解码装置,包括:存储器,用于存放程序;处理器,执行所述程序,以用于:根据多组先验知识进行初始化处理,得到多棵初始霍夫曼树;动态获取多组待编解码数据,根据初始化处理结果和多棵初始霍夫曼树,采用交错编解码的算法对待编解码数据进行动态编解码。本专利技术的编码方法的有益效果是:本专利技术的编码方法采用了交错编码的算法对待编码数据进行动态编码,克服了现有数据编码方法只能针对已知数据进行编码而不能处理实时产生的多路流式数据的缺点,提高了编码的实时性和通用性;再者,本专利技术的编本文档来自技高网...
一种基于动态霍夫曼树的多路数据编解码方法及装置

【技术保护点】
一种基于动态霍夫曼树的多路数据编码方法,其特征在于:包括以下步骤:根据多组先验知识进行初始化处理,得到多棵初始霍夫曼树;动态获取多组待编码数据,根据初始化处理结果和多棵初始霍夫曼树,采用交错编码的算法对待编码数据进行动态编码。

【技术特征摘要】
1.一种基于动态霍夫曼树的多路数据编码方法,其特征在于:包括以下步骤:根据多组先验知识进行初始化处理,得到多棵初始霍夫曼树;动态获取多组待编码数据,根据初始化处理结果和多棵初始霍夫曼树,采用交错编码的算法对待编码数据进行动态编码。2.根据权利要求1所述的一种基于动态霍夫曼树的多路数据编码方法,其特征在于:所述根据多组先验知识进行初始化处理,得到多棵初始霍夫曼树这一步骤,包括以下步骤:获取多组先验知识,确定先验知识中原始数据的种类及各类原始数据的取值个数;根据先验知识,得到各类原始数据概率分布情况;根据先验知识对编码端进行初始化处理,生成多棵初始霍夫曼树。3.根据权利要求2所述的一种基于动态霍夫曼树的多路数据编码方法,其特征在于:所述根据先验知识,得到各类原始数据概率分布情况这一步骤,包括以下步骤:设定缓冲区大小,并根据原始数据的种类设定各类原始数据在缓冲区中的排列顺序;根据先验知识中各类原始数据的统计情况,得到各类原始数据的先验概率分布。4.根据权利要求2所述的一种基于动态霍夫曼树的多路数据编码方法,其特征在于:所述根据先验知识对编码端进行初始化处理,生成多棵初始霍夫曼树这一步骤,具体为:根据先验知识对编码端进行第一初始化处理,生成多棵初始霍夫曼树或者根据先验知识对编码端进行第二初始化处理,生成多棵初始霍夫曼树;其中,所述根据先验知识对编码端进行第一初始化处理,生成多棵初始霍夫曼树这一步骤,包括以下步骤:根据先验知识建立每类原始数据的原始霍夫曼树和每类原始数据的循环队列;根据先验概率分布生成各类原始数据的原始序列;根据各类符合先验知识的原始序列生成各类原始数据的伪随机序列;将各类原始数据的伪随机序列输入其对应的循环队列中。所述根据先验知识对编码端进行第二初始化处理,生成多棵初始霍夫曼树这一步骤,包括以下步骤:根据先验知识建立每类原始数据的原始霍夫曼树和每类原始数据的循环队列;将原始霍夫曼树作为初始霍夫曼树用于后续动态编码;对于每一类数据,在相应的循环队列第一次满时,将当前霍夫曼树结点权值减去相应原始霍夫曼树结点权值得到最新结点权值,并根据最新结点权值重新生成霍夫曼树用于后续动态编码。5.根据权利要求3所述的一种基于动态霍夫曼树的多路数据编码方法,其特征在于:所述动态获取多组待编码数据,根据初始化处理结果和多棵初始霍夫曼树,采用交错编码的算法对待编码数据进行动态编码这一步骤,包括以下步骤:根据设定的各类原始数据在缓冲区中的排列顺序,编码端依次获取各类待编码数据;根据各类待编码数据对应的初始霍夫曼树,对各类待编码数据进行交错编码;根据待编码数据,更新各类原始数据对应的初始霍夫曼树。6.根据权利要求5所述的一种基于动态霍夫曼树的多路数据编码方法,其特征在于:所述根据待编码数据,更新各类原始数据对应的初始霍夫曼树这一步骤,包括以下步骤:获取待编码数据并选择相应的编码...

【专利技术属性】
技术研发人员:冯镇业滕少华霍颖翔张巍房小兆张振华
申请(专利权)人:广东工业大学
类型:发明
国别省市:广东,44

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

1