数字图像压缩与解压实验
- 实验目的
- 掌握图像信息熵的计算方法。
- 理解霍夫曼编码和解码的基本步骤。
- 掌握霍夫曼编码和解码的操作,编程实现。
- 实验原理
- 霍夫曼编码
- 霍夫曼在1952年提出了一种构造最佳码的方法,称之为霍夫曼编码(Huffman)。霍夫曼编码是一种无损的统计编码方法,利用信息符号概率分布特性的改变字长进行编码。霍夫曼编码适用于多远独立信源,对于多元独立信源来说它是最佳码。
- 霍夫曼编码系统主要分为压缩对象输入、概率统计、构造Huffman树、生成Huffman树、压缩编码环节组成,如下图所示霍夫曼编解码系统构成。
- 霍夫曼编码的步骤如下:
- 将信源符号按出现概率从大到小排成一列,然后把最末两个符号的概率相加,合成一个概率。
- 把这个符号的概率与其余符号的概率按从大到小排列,然后再把最末两个符号的概率加起来,合成一个概率。
- 重复上述做法,直到最后剩下两个概率为止。
- 从最后一步剩下的两个概率开始逐步反向进行编码。每步只需对两个分支各赋予一个二进制码,如对概率大的赋予码1,对概率小的赋予码O。
- 实验内容与要求
- 读入一幅图像,计算图像的熵值(自己完成代码,不使用entropy函数);
图一 Q1 计算图片熵值
- 读入一幅灰度图像,编写huffman函数,实现霍夫曼编码,并计算压缩比;
图二 Q2 计算压缩比
- 根据huffman编码原理,创建完成M函数:mat2huff,huff2mat,实现huffman编码和解码。
图三 Q3 实现huffman编码和解码
- 利用离散余弦变换进行JPEG 图像压缩。
图四 Q4 用离散余弦变换进行JPEG 图像压缩
- 编写一个从灰度图像分解出8幅位平面图像的程序。
图五 Q5 从灰度图像分解出8幅位平面图像
四、思考题
请在实验报告最后进行简答:
(1) 一个典型的图像压缩系统包含哪些部分?
(2) 霍夫曼编码的特点是什么?
(3) 何谓变换编码?变换编码是有损编码还是无损编码。
五、实验报告要求
请同学们完成上述实验:描述实验的基本步骤,用数据和图片给出各个步骤中取得的实验结果和源代码,并进行必要的讨论,必须包括原始图像及其计算/处理后的图像以及相应的解释。