首页 > 代码库 > 140705010032 张少威 第3次作业
140705010032 张少威 第3次作业
一、 参考书《数据压缩导论(第4版)》 Page 66
2、 利用程序huff_enc和huff_dec进行以下操作(在每种情况下,利用由被压缩图像生成的码本)。
(a) 对Sena、Sensin和Omaha图像进行编码。
答:表格如下:
文件名 | 源文件 | 压缩后文件 | 压缩比 |
SENA | 64.0KB | 56.1KB | 87.66% |
SINAN | 64.0KB | 60.2KB | 94.06% |
OMAHA | 64.0KB | 57.0KB | 89.06% |
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.计算这个信源的熵;
答:由题目可知:P(a1)=0.15,P(a2)=0.04,P(a3)=0.26,P(a4)=0.05,P(a5)=0.50
所以:H = -( 0.15 * log2 0.15 ) - ( 0.04 * log2 0.04 ) - ( 0.26 * log2 0.26 ) - ( 0.05 * log2 0.05 ) - ( 0.50 * log2 0.50 )
= 0.15 * 2.737 + 0.04 * 4.644 + 0.26 * 1.943 + 0.05 * 4.322 + 0.50 * 1
= 0.411 + 0.186 + 0.505 + 0.216 + 0.5
= 1.82 (bits)
b.求这个信源的霍夫曼码;
答:表格如下:
字母 | 概率 | 码字 |
a1 | 0.15 | 001 |
a2 | 0.04 | 0000 |
a3 | 0.26 | 01 |
a4 | 0.05 | 0001 |
a5 | 0.5 | 1 |
c.求(b)中代码的平均长度及其冗余度。
答:平均码长 l = 1 * 0.5 + 2 * 0.26 + 3 * 0.15 + 4 * 0.05 + 4 * 0.04
= 1.83(bits)
冗余度 l - H = 1.83 - 1.818
= 0.012
二、思考:为什么压缩领域中的编码方法总和二叉树联系在一起呢?
为了使用不固定的码长表示单个字符,编码必须符合“前缀编码”的要求,即较短的编码决不能是较长编码的前缀。要构造符合这一要求的二进制编码体系,二叉树是最理想的选择。
三、选做:试将“Shannon-Fano”编程实现。
140705010032 张少威 第3次作业