多媒体技术与应用之图像Huffman编解码

多媒体技术与应用之图像Huffman编解码
一、实验内容
1.了解BMP图像的格式,实现BMP图片格式的数据域及文件头的分离
2.熟悉Huffman编码原理
3.使用Huffman编码算法对给定图像文件进行编码和解码
二、Huffman编码简介
基于图像统计特征的变长编码方法概率小的符号用较长的码字表示,概率大的符号用较短的码字表示。如图2.1.1所示:
多媒体技术与应用之图像Huffman编解码_第1张图片
位图BMP文件格式,如图2.1.2所示:
多媒体技术与应用之图像Huffman编解码_第2张图片
三、算法流程图
1.主函数流程图:
多媒体技术与应用之图像Huffman编解码_第3张图片
2.编码流程图:
多媒体技术与应用之图像Huffman编解码_第4张图片
3.解码流程图:
多媒体技术与应用之图像Huffman编解码_第5张图片
四、实验结果与分析
1.实验结果
多媒体技术与应用之图像Huffman编解码_第6张图片
2.编解码结果:
平均码长 L = 7.4682 压缩比 CR = 1.0712
信息熵 H = 7.4455 编码效率 CE = 0.9970
3.结果分析:
huffman码不仅适用于图像文件,经过符号合并后也可以用于二进制文件和文本文件。但视界应用中还存在以下的不足:输入数据数受限于可实现的huffman表尺寸;译码较为复杂;需要知道输入数据的频率分布。此外,由于码长不等,还存在一个输入与输出的速率匹配问题,其解决的办法是设置一定容量的缓冲寄存器。而其算法的突出优点是压缩以后的图像没有失真,压缩后的单元像素最接近图像的实际熵值,因此相对于其他乌石镇压缩算法来说,它的压缩比应该是最高的。
从编解码结果可以看出,本次编程结果比较成功,结果符合实际情况,原图和编解码后得到的图像几乎完全相同。
本次试验的关键点有三个,第一个为编码,如何实现huffman树的构建,第二个为如何储存压缩矩阵,因为matlab中没有以字节为单位存储,因而必需提出解决办法,尽量减少压缩矩阵的存储空间,否则压缩和没有压缩相同。第三个为解码,如何从压缩矩阵中还原出原来的huffman编码,同时通过编码还原灰度图像。当完成好这三点,本次试验就会实现的比较成功了。

你可能感兴趣的:(图像处理,matlab函数)