专利汇可以提供一种动态Huffman编码硬件实现系统及其实现方法专利检索,专利查询,专利分析的服务。并且本 发明 公布了一种动态Huffman编码 硬件 实现系统,该系统包括:数据打包单元, 频率 缓存单元,码字长度缓存单元,三个数据选择器单元,码字值缓存单元,主控状态机,父亲 节点 缓存单元,深度缓存单元,最小堆缓存单元,数据统计单元,加法器单元和乘法器单元。动态Huffman编码 硬件实现 方法,包括:快速的字符统计;建立Huffman树;建立Huffman表;编码输出;频率缓存单元的提前清空等步骤。本发明通过硬件实现了Huffman编码,并在Huffman编码的硬件实现过程中,采用了快速的字符统计方法、频率缓存单元提前清空等技术使得数据吞吐率有了明显的提升。,下面是一种动态Huffman编码硬件实现系统及其实现方法专利的具体信息内容。
1.一种动态Huffman编码硬件实现系统,其特征在于,所述系统包括:
一个频率缓存单元,用于存放数据流中每一个字符出现的频率;
一个最小堆缓存单元,用于维护频率缓冲单元中频率不为0的字符,使得这些字符在存储方式上呈现连续的形式,而这些字符在逻辑关系上呈现二叉树的形式,并且使得这棵二叉树满足:左节点和右节点都大于或者等于其父亲节点,为辅助构造Huffman树的过程做好准备;
一个父亲节点缓存单元,用于存放Huffman树中每一个节点的父亲节点,根节点除外;
一个深度缓存单元,用于存放整个Huffman树中每一个节点的深度,其中根节点的深度最大,叶子节点的深度是0;
一个码字值缓存单元,用于存放每一个字符对应的Huffman编码的值;
一个码字长度缓存单元,用于存放每一个字符对应的Huffman编码值所对应的码字长度;
一个乘法器单元,用于计算对待压缩数据块采用动态Huffman编码之后数据块的大小;
一个数据统计单元,用于统计待压缩数据流中每一个字符出现的频率,并将统计的结果存放在频率缓存单元中;
一个主控状态机部分,根据频率缓存单元中存放的每一个字符的频率,通过最小堆缓存单元、父亲节点缓存单元、深度缓存单元来构造Huffman树及Huffman表,分别存放在码字值缓存单元及码字长度缓存单元中;
三个多路选择器单元,分别用于控制频率缓存单元在不同的工作阶段由主控状态机或者是由数据统计单元控制,和码字值缓存单元、码字长度缓存单元在不同的工作阶段分别由主控状态机或者是由数据打包输出单元进行控制;
一个数据打包输出单元,用于查询待编码的数据块中每一个字符,查询码字值缓存单元及码字长度缓存单元得到每一个字符的Huffman编码,并打包输出查询到的数据;
一个加法器单元,用于快速的字符统计,统计结果存放在频率缓存单元中。
2.一种基于权利要求1所述动态Huffman编码硬件实现系统动态Huffman编码硬件实现方法,包括下述步骤:
(1)扫描待压缩的原始数据,并快速统计每一个字符出现的频率,依次存放在频率缓存单元;
(2)主控状态机读取频率缓存单元的数据并把出现频率不为0的字符顺序的放进最小堆缓存单元进行维护;
(3)利用最小堆缓存单元、父亲节点缓存单元、深度缓存单元构造Huffman树,其中Huffman树的信息最终也是存放在最小堆缓存单元中;
(4)遍历Huffman树,得到Huffman树中每一个叶子节点的码字长度;
(5)统计每一个非0码字长度字符的数目;
(6)根据每一个非0码字长度字符的数目去计算出每一个字符的Huffman码字值;
(7)统计数据块经过Huffman编码之后的数据块的大小;
(8)主控状态机把码字值缓存单元、码字长度缓存单元控制权交给数据打包单元;
(9)数据打包单元在得到码字值缓存单元及码字长度缓存单元的控制权之后,开始对原始的数据进行Huffman编码,并打包输出;
(10)主控状态机在进行对新的数据块进行统计之前对频率缓存单元提前清空。
3.根据权利要求2所述的动态Huffman编码硬件实现方法,其特征在于:
所述步骤(1)中字符快速统计通过加法器和频率缓存单元完成。
4.根据权利要求2所述的动态Huffman编码硬件实现方法,其特征在于:所述步骤(2)中最小堆缓存单元进行维护过程为把频率缓存单元中的字符出现频率依次顺序的读出,并加以判断,如果不为0,就把该字符放进最小堆缓存单元中,一直到频率缓存单元中所有的叶子节点都读取并判断完毕,如果为0就不放进最小堆缓存单元中,在把字符依次存进最小堆缓存单元中的同时记录最小堆的长度,即最小堆缓存单元中有效的字符的数目,这些字符在逻辑关系上呈现二叉树的形式;
从最小堆缓存单元中数据元素个数的一半开始一直到最小堆缓存单元的顶部依次调整这棵二叉树,使得这棵二叉树中的每一个节点都满足左节点和右节点都大于或者等于该节点,其中叶子节点除外。
5.根据权利要求2所述的动态Huffman编码硬件实现方法,其特征在于:
所述步骤(3)中构造Huffman树的过程中从最小堆缓存单元的顶部读取第一个元素,并把这个元素存入最小堆缓存单元底部开始的第一个未被占用的单元中,此时最小堆缓存单元的长度减1,并将最小堆缓存单元的最后一个元素放进最小堆缓存单元的第一个元素的位置上,从第一个元素位置开始调整这棵二叉树,再次使得这棵二叉树中的每一个节点都满足左节点和右节点大于或者等于该节点,其中叶子节点除外;
从最小堆缓存单元的顶部再读取第一个元素并把这个元素存入最小堆缓存单元底部开始的第一个未被占用的单元中,把最小堆缓存单元的长度减1,把从最小堆缓存单元中连续读取的元素组合成一个新的节点,这个新的节点的权值为两个连续读取的元素的权值的和,这个的新节点在整个Huffman树中的深度为两个连续读取元素中较大深度加1,并在父亲节点缓存单元中设置好两个连续读取的叶子节点的父亲节点为这个新得到的节点,即中间节点或者是根节点;
把得到的新的节点放入最小堆缓存单元的顶部,并把最小堆缓存单元的长度加1,从最小堆缓存单元的顶部开始依次调整最小堆中二叉树的节点,使得这棵二叉树满足左节点和右节点大于或者等于本节点;
判断最小堆缓存单元的长度是否为0,若不为0,表示Huffman树未建好,继续Huffman树的建立;若为0,表示Huffman树已经全部建好,把读取的最后一个节点存入最小堆缓存单元底部开始第一个未被占用的单元中。
6.根据权利要求2所述的动态Huffman编码硬件实现方法,其特征在于:所述步骤(4)遍历Huffman树,得到Huffman树中每一个叶子节点的码字长度过程中Huffman树已经建好,并存放在最小堆缓存单元中,从最小堆缓存单元中最新存入的那个单元开始,并在码字长度缓存单元中设置其对应的码字长度为0,并从Huffman树的根节点开始,依次遍历最小堆缓存单元中存放的Huffman树中剩余的每一个节点,依次设置好每一个叶子节点的码字长度,依次存放在对应的码字长度缓存单元中。
7.根据权利要求2所述的动态Huffman编码硬件实现方法,其特征在于:所述步骤(5)统计每一个非0码字长度字符的数目过程中在遍历Huffman树,得到每一个节点的码字长度时,主控状态机会同时统计出每一个码字长度的节点的个数,为计算Huffman编码的值作好准备。
8.根据权利要求2所述的动态Huffman编码硬件实现方法,其特征在于:所述步骤(6)根据每一个非0码字长度字符的数目去计算出每一个字符的Huffman码字值的过程是为了得出Huffman树中每一个节点的码字值,在统计出了每一个非0码字长度的个数,从Huffman树的最顶层依次向下进行推出Huffman树中每一个节点的码字值,并将叶子节点的码字值保存在码字值缓存单元中。
9.根据权利要求2所述的动态Huffman编码硬件实现方法,其特征在于:所述步骤(7)统计数据块经过Huffman编码之后的数据块的大小过程是为了在得到每一个叶子节点码字长度的过程中,同时读取对应的频率缓存单元中对应字符的频率信息,通过乘法器单元计算出对频率缓存单元中字符进行Huffman编码之后的长度,同时计算出累计Huffman编码的长度;在得出每一个Huffman叶子节点的码字长度之后,也就得到了固定长度的数据块经过Huffman编码之后的总大小。
10.根据权利要求2所述的动态Huffman编码硬件实现方法,其特征在于:所述步骤(10)主控状态机在进行对新的数据块进行统计之前对频率缓存单元提前清空过程为数据打包单元启动,开始编码输出,同时主控状态机开始把频率缓存单元开始清空处理,为下一个数据块的Huffman编码开始做好准备。
标题 | 发布/更新时间 | 阅读量 |
---|---|---|
一种定点分布式施肥控制装置及控制方法 | 2020-05-27 | 460 |
一种根用芥菜套种小麦的方法 | 2020-05-11 | 862 |
一种基于脉冲反馈的故障快速检测电路 | 2020-05-17 | 999 |
一种促进中华绒螯蟹幼体发育的轮虫强化方法 | 2020-05-18 | 781 |
双层电梯系统 | 2020-05-18 | 278 |
一种基于网络安全传感器的网络病毒预警方法 | 2020-05-22 | 390 |
一种提高气动阀门开关速度的方法 | 2020-05-25 | 408 |
无纸化现场招聘会管理系统 | 2020-05-21 | 828 |
一种抗双链DNA抗体快速检测方法 | 2020-05-19 | 371 |
一种带录音装置的太阳能发卡 | 2020-05-15 | 409 |
高效检索全球专利专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。
我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。
专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。