有关霍夫曼编码的两个习题解答

来源:互联网 发布:centos 6.9 安全设置 编辑:程序博客网 时间:2024/05/19 04:27

1、利用程序huff_enc和huff_dec进行以下操作(在每种情况下,利用由被压缩图像生成的码本)。

(a)对Sena、Sensin和Omaha图像时行编码。

(b)编写一段程序,得到相邻之差,然后利用huffman对差值图像进行编码。

a)运行结果:


图像压缩情况如下:

文件名(压缩前)

大小

文件名(压缩后)

大小

压缩比

Sena.img

64kb(65536字节)

sena.en.img

55kb56623字节)

1.16:1

Sensin.img

64kb(65536字节)

sensin.img

59kb60149字节)

1.09:1

Omaha.img

64kb(65536字节)

omaha.img

56kb57094字节)

1.15:1

(b)程序运行结果如下:


差值图像编码:

文件名(压缩前)

大小

文件名(压缩后)

大小

压缩比

Sena.img

64kb(65536字节)

cha_sena.img

31kb31685字节)

2.07:1

Sensin.img

64kb(65536字节)

cha_sensin.img

37kb37262字节)

1.76:1

Omaha.img

64kb(65536字节)

cha_omaha.img

51kb51564字节)

1.27:1

从表中可以看出,

(1)采用Huffman编码对上述图像均可以进行压缩,同时说明在图像中每个亮度值的概率是不均衡的;

(2)对差分图像再用Huffman编码,可进一步减小文件大小,说明图像中相邻像素之间存在着很强的相关性。

3、利用程序huff_enc和huff­_dec,并使用Sensin图像生成的码本,对Bookshelf1和Sena图像进行编码。对比原码表和此码表压缩图像的情况。

程序运行结果如下:



 压缩情况对比如下:

文件名(压缩前)

原文件大小

本码压缩大小

文件名(压缩后)

Sensin码本压缩大小

Sena.img

64kb(65536字节)

55kb56623字节)

S_sena.img

101kb102972字节)

bookshelf1.img

64kb(65536字节)

   59kb (59667字节)

S_bookshelf.img

90kb91481字节)

从上述结果可以看出,采用不适当的码表进行编码,可能会造成编码后的文件增大,这是因为不同图像的亮度值的概率分布差别可能很大。

0 0