2.图像Sena,Sinan,Omaha编码结果如下
图像 | 压缩前 | 压缩后 | 压缩比 |
Sena | 64KB | 57KB | 0.8906 |
Sinan | 64KB | 61KB | 0.9531 |
Omaha | 64KB | 58KB | 0.9062 |
从表上可以看出,每个文件压缩之后的大小都不相同,这是因为图像之间冗余度的问题。
4.(a)信源的熵:
H=-(0.15×log20.15+0.04×log20.04+0.26×log20.26+0.05×log20.05+0.5×log20.5)
=1.82bits
(b) 信源的霍夫曼码
a1: 110
a2: 1111
a3: 10
a4: 1110
a5: 0
(c)代码的平均长度及其冗余度
L=3×0.15+4×0.04+2×0.26+1×0.5
=1.83bits
冗余度=(1.83-1.82)=0.01bits
5.
(a)
霍夫曼编码:
a1: 001
a2: 01
a3: 000
a4: 1
平均长度=0.1×3+0.3×2+0.25×3+0.35×1=2bits
(b)
a1: 11
a2: 01
a3: 10
a4: 00
代码的平均长度为2位/符号。而码字的平均长度是两码相同,那就是他们都是同样有效的速率。然而,二码的代码长度为零的方差。这意味着如果我们在通信系统中使用该代码,我们将不会有任何问题与缓冲区控制。我们不能对第一个代码作出同样的断言。
参考书《数据压缩导论(第4版)》Page 30 第6题
(a)
文件名 | 一阶熵 | 二阶熵 | 差分熵 |
EARTH.IMG | 4.770801 | 2.568358 | 3.962697 |
BERK.RAW | 7.151537 | 6.705169 | 8.976150 |
GABE.RAW | 7.116338 | 6.654578 | 8.978236 |
OMAHA.IMG | 6.942426 | 4.488626 | 6.286834 |
SENA,IMG | 6.834299 | 3.625204 | 3.856989 |
SENSIN.IMG | 7.317944 | 4.301673 | 4.541547 |
test.txt | 4.315677 | 3.122731 | 6.099982 |
(b) 以(a)中的SENA.IMG为例,二阶熵 比一阶熵明显降低,说明图像中
相邻像素之间存在着很强的相关性。
(c)差分比二阶熵略大一点,是两者都考虑相邻像素之间相关性,所以熵较小;但二阶熵是考虑相邻像素之间相关性后熵的下界,比差分熵更小一些。 计算其他图像的熵,可以得到相同的趋势。
ps:此处是部分程序运行结果(图想太多,只放部分)