您的位置:首页 > 其它

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

2017-07-25 09:21 176 查看
1、利用程序huff_enc和huff_dec进行以下操作(在每种情况下,利用由被压缩图像生成的码本)。

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

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

(a)运行结果:



图像压缩情况如下:
文件名(压缩前)
大小
文件名(压缩后)
大小
压缩比
Sena.img
64kb(65536字节)
sena.en.img
55kb(56623字节)
1.16:1
Sensin.img
64kb(65536字节)
sensin.img
59kb(60149字节)
1.09:1
Omaha.img
64kb(65536字节)
omaha.img
56kb(57094字节)
1.15:1
(b)程序运行结果如下:





差值图像编码:
文件名(压缩前)
大小
文件名(压缩后)
大小
压缩比
Sena.img
64kb(65536字节)
cha_sena.img
31kb(31685字节)
2.07:1
Sensin.img
64kb(65536字节)
cha_sensin.img
37kb(37262字节)
1.76:1
Omaha.img
64kb(65536字节)
cha_omaha.img
51kb(51564字节)
1.27:1
从表中可以看出,

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

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

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

程序运行结果如下:





 压缩情况对比如下:
文件名(压缩前)
原文件大小
本码压缩大小
文件名(压缩后)
Sensin码本压缩大小
Sena.img
64kb(65536字节)
55kb(56623字节)
S_sena.img
101kb(102972字节)
bookshelf1.img
64kb(65536字节)
   59kb (59667字节)
S_bookshelf.img
90kb(91481字节)
从上述结果可以看出,采用不适当的码表进行编码,可能会造成编码后的文件增大,这是因为不同图像的亮度值的概率分布差别可能很大。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息