作者 孟欢 包海燕 潘飞 电子科技大学 微电子与固体电子学院(四川 成都 610054)本文引用地址:http://www.eepw.com.cn/article/201710/370668.htm
*集成电路创新创业大赛三等奖
孟欢(1991-),女,硕士生,研究方向:数字系统设计。
摘要:在图像处理、文件传真、视频压缩编码中,哈夫曼编码是最常用的一种编码方式。本文设计并实现了对一段数字序列进行哈夫曼编码并将编码结果串行输出的电路模块,电路由输入数据的排序、数据的哈夫曼编码、数据序列编码的结果输出三个核心模块组成,在Xilinx平台上通过硬件描述语言实现该电路。仿真结果表明,该电路编码正确,并具有较高的工作频率和编码效率。
引言
哈夫曼编码是一种可变字长的无损编码方式。对于出现概率大的元素编以短字长的码,对于出现概率小的元素编以长字长的码,来实现平均码长最短。多媒体技术的广泛应用导致数据量的迅速增大,对哈夫曼编码在速度上有了更高的需求。利用硬件设计的大流量和并行性处理的优势,可以大大地提高编码效率和传输速度。哈夫曼编码的核心即建立最优二叉树,各元素的路径就是它所对应的编码结果。主要内容包括数据的排序和元素的编码两个方面。
本文是完全在硬件条件下实现哈夫曼编码设计的,在排序部分采用流水线结构,通过流水线实现对数据频数比较,控制数据按照频数大小由小到大排序。在编码模块创新性地采用自顶而下的查找方式,由状态机寻址得到父节点的哈夫曼编码,进而得到左右子节点的哈夫曼编码结果。在输出模块中通过4个寄存器对编码结果进行缓存,控制寄存器读写指针进行编码结果的缓存与输出,保证数据输出的连续性。