1.利用程序huff_enc和huff_dec进行以下操作(在每种情况下,利用由被压缩图像生成的码本)。
对sena、sensin和omaha图像进行编码如下:
压缩前 | 压缩后 | 压缩比
| ||
文件名称 | 文件大小 | 文件名称 | 文件大小 | |
sena.img | 64KB | sena.img | 54KB | 84.38% |
sinan.img | 64KB | sinan.img | 57 KB | 89.06% |
omaha.img | 64KB | omaha.img | 56 KB | 87.50% |
(b)编写一段程序,得到相邻像素之差,然后利用huffman对差值图像进行编码。
可以从下表的数据中看出:sena的压缩比最高,sensin次之,Omaha的最小,所以图片先计算差分图再使用Huffman编码可以不同程度的减少文件大小。
文件名(压缩前) | 大小 | 文件名(压缩后) | 大小 | 压缩比 |
Sena.img | 64kb | asena.img | 31kb | 2.07:1 |
Sensin.img | 64kb | asinan.img | 37kb | 1.76:1 |
Omaha.img | 64kb | aomaha.img | 50kb | 1.28:1 |
3、利用程序huff_enc和huff_dec,并使用由Sensin图像生成的码本,对Bookshelf1和Sena图像进行编码。将这一结果与使用被压缩图像生成码本的情况进行对比。
文件名(压缩前) | 文件大小 | 压缩大小 | 文件名(压缩后) | Sensin码本压缩大小 |
Sena.img | 64kb | 55kb | Ssena.img | 51kb |
bookshelf1.img | 64kb | 58kb | Sbookshelf.img | 53kb |