第三次作业
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第三次作业相关的知识,希望对你有一定的参考价值。
2、利用程序huff_enc和huff_dec进行一下操作(在每种情况下,利用由被压缩图像生成的码本。)
(a)对Sena、Sensin和Omaha图像进行编码。
解:表格如下:
图像文件名 | 压缩前 | 压缩后 | 压缩比 |
Sena | 64.0kb | 56.1kb | 87.6% |
Sensin | 64.0kb | 60.2kb | 94.1% |
Omaha | 64.0kb | 57.0kb | 89.1% |
4、一个信源从富豪级A={a1,a2,a3,a4,a5}中选择字母,概率为P(a1)=0.15,P(a2)=0.04,P(a3)=0.26,P(a4)=0.05,P(a5)=0.50。
(a)计算这个信源的熵;
(b)求这个信源的霍夫曼码;
(c)求(b)中代码的平均长度及其冗余度。
解:(a) 由题意可知:
H(A)=-0.15log20.15 -0.04log20.04 -0.26log20.26 -0.05log20.05 -0.50log20.50
=0.411+0.186+0.505+0.216+0.50
=1.818 (bit/字符)
(b) 这个信源的霍夫曼码为:
字母 a1 a2 a3 a4 a5
概率 0.15 0.04 0.26 0.05 0.50
码长 001 0000 01 0001 1
(c) 平均长度: l=0.15*3+0.04*4+0.26*2+0.05*4+0.50*1=1.83 (bits)
冗余度=l-H(A)=1.83-1.818=0.012
(附)思考题:为什么压缩领域中的编码方法总和二叉树联系在一起呢?
答:这里将结合前缀编码来说明。前缀编码,即在一个字符集中,任何一个字符的编码都不是另一个字符编码的前缀。所以,为了使用不固定的码长表示单个字符,编码必须符合“前缀编码”的要求,即较短的编码决不能是较长编码的前缀。而要构造符合这一要求的二进制编码体系,二叉树是最理想的选择。
以上是关于第三次作业的主要内容,如果未能解决你的问题,请参考以下文章