图1 模块连接图
1.4 编码模块
如果码表模块无法对输入数据进行编码,则必须通过编码模块完成静态编码。
编码过程是由构建哈夫曼树和分配码长两个过程组成的[4],此模块中我们使用到3个存储器,一个是上文提到的seq,记录排序好的十个数据以及各自权值;另一个存储器是node,是由哈夫曼树中的非叶节点构成的;而最后一个存储器为result,保存整棵哈夫曼树。
10个叶结点组成的哈夫曼树应有19个结点,但是
d)重复a。
3)第11个周期开始编码
a)初始码长result[17]=result[16]=1
b)根据标记位
点:
i.如果有子结点
已经是树尾,则编码结束
ii.如果没有子结点哈夫曼编码树的带权路径长度
图2 哈夫曼编码工作波形图
[1]Latha Pillai, “Huffman Coding” EXILINX, Virtex Series, XAPP616 (v1.0) Apr 22, 2003. [3]Matai, Janarbek, J. Y. Kim, and R. Kastner. "Energy efficient canonical huffman encoding." IEEE, International Conference on Application-Specific Systems, Architectures and Processors
[4]李伟生,李域,王涛.一种不用建造Huffman树的高效Huffman编码算法[J].中国图像图形学报
[5]林建英,伍勇,李建华,等.一种易于硬件实现的快速自适应哈夫曼编码算法[J].大连理工大学学报
[6]张全伙,于洪斌,林榆.优化哈夫曼编码数据压缩技术及程序实现[J].华侨大学学报(自然科学版)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论