[实用新型]一种用于VLSI设计的Huffman编码系统有效
申请号: | 201720439745.7 | 申请日: | 2017-04-25 |
公开(公告)号: | CN206712982U | 公开(公告)日: | 2017-12-05 |
发明(设计)人: | 魏榕山;张鑫刚;张晟;马智愚;胡志杰 | 申请(专利权)人: | 福州大学 |
主分类号: | H04N19/91 | 分类号: | H04N19/91;H04N19/96 |
代理公司: | 福州元创专利商标代理有限公司35100 | 代理人: | 蔡学俊 |
地址: | 350002 福*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 vlsi 设计 huffman 编码 系统 | ||
技术领域
本实用新型涉及编码系统领域,特别是涉及一种用于VLSI设计的Huffman编码实现系统。
背景技术
目前,在对芯片面积、编码速率和压缩效率要求较高的数据无损压缩系统如视频和图像编码系统等一些领域,基于动态Huffman编码或者传统静态Huffman编码芯片已经很难满足要求。Huffman编码属于最佳熵编码法的同时也是一种前缀码,其数据压缩效率最高。为了提高编码压缩效率的需要通常可采用动态Huffman编码或者静态Huffman编码二种方案。
动态Huffman编码对输入字符的统计是动态进行的,随着待压缩数据的输入,逐步构造Huffman树,因此随着编码的进行,同一个字符的编码可能发生改变(变得更长或更短)。动态Huffman编码算法中每输入一个字符就要更新一次Huffman树,这也导致动态Huffman编码算法非常复杂,需要更多的寄存器和逻辑运算电路。在待压缩数据量不大时,由于不用预先统计待压缩数据中每种字符的频数,相对静态Huffman编码可以节约时钟周期,但随着待压缩数据量的增加,消耗在更新Huffman树上的时钟周期数急剧增加,降低了系统编码速率,不适合对编码速率要求较高且数据量巨大的编码系统。
此外,编码系统通常应该具有与之对应的同样优秀的解码系统才更具有实用价值,然而动态Huffman编码系统每编码完一个字符,解码系统都必须使用和编码系统相同的算法更新Huffman树后才能解压缩一个字符,解压缩效率的低下也导致动态Huffman编码实际应用并不广泛。
静态Huffman编码系统通过对待压缩数据的一次扫描,统计每种字符的出现频数后构造Huffman树并得到每个字符对应的的编码,再对一次扫描中存储的待压缩数据进行遍历得到输出码流。在具备高速率编码功能的同时无需额外的存储器或复杂逻辑运算电路结构,节约芯片面积的同时也保证了整体编码系统的稳定性,这些特点使得其在对编码速率要求较高且数据量巨大的编码系统应用中成为一个很好的选择方案。
然而传统静态Huffman编码系统一般是利用高级编程语言如C/C++语言中丰富的数据结构(如结构体变量和枚举变量)来描述构造Huffman树过程中每一个节点的数据特性(如频数、节点位置关系、在Huffman树中所处层数)并在软件开发平台上完成。在VHDL/Verilog HDL硬件描述语言中并没有高级编程语言中类似结构体或枚举的数据结构,无法将传统静态Huffman编码直接移植到VLSI设计中。
因此,若想要实现适用于VLSI设计的Huffman编码系统,首先必须要在兼顾编码速率、芯片面积和系统功能稳定性的前提下,结合静态Huffman树的构造过程提出了一种新的适合Huffman编码器电路实现的数据格式
另一个问题是传统静态Huffman编码系统中采用先构造Huffman树后编码的算法不适合硬件电路实现且效率很低,因此必须改进静态Huffman编码系统中构造Huffman树的算法。新算法必须要在构造Huffman树的过程中完成每次从队列里递归找到最小的两个节点,并且前一次的递归运算结果作为后一次的输入的同时完成对节点的编码,即在构造Huffman树的过程中完成所有节点的编码。最后根据新的数据格式特点,在Huffman树所有节点中快速匹配找到叶子节点及其对应的编码。
发明内容
有鉴于此,本实用新型的目的是提供一种用于VLSI设计的Huffman编码系统,提高了编码的可读性和可维护性,节约了电路面积。
本实用新型采用以下方案实现:一种用于VLSI设计的Huffman编码系统,包括:
一复位信号检测单元,用以在系统运行时检测到复位信号使能后,使系统异步复位,并重新初始化编码系统;
一开始信号检测单元,用以当复位信号未使能且开始信号有效时启动编码系统,编码系统开始运行;
一输入数据扫描单元,用以对输入的待压缩数据进行扫描;
一输入数据缓存单元,用于保存扫描后的待压缩数据;
一码字频数缓存单元,用以保存待压缩数据中每种字符和它出现的频数;
一数据拼接单元,用以将频数、识别、字符、编码这四种寄存器变量按顺序拼接成与输入字符种类数目相同的寄存器变量;
一拼接数据缓存单元,用以保存拼接后的数据;
一Huffman树节点生成单元,用以按静态Huffman树生成节点的构造方法生成所有节点;
一Huffman树节点缓存单元,用以存放生成的Huffman树的所有节点数据;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福州大学,未经福州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201720439745.7/2.html,转载请声明来源钻瓜专利网。