matlab用游程编码压缩图像,基于Matlab的图像压缩编码

开发与应用 计算机与信息技术 ·23· 基于 Matlab 的图像压缩编码 杨晓 李悦 (贵州大学 计算机与信息学院,贵州 贵阳 550025) 摘 要 本文描述了图像编码压缩方法的主要分类,介绍了每个分类里面的典型算法的原理、特点,并利用 Matlab 仿真给出图片对比。列举了近些年出现的新的压缩编码算法,包括分形算法、小波等压缩算法,在 Matlab 环境下运用小波算法 对图像处理。最后对各种图像压缩方法进行了比较,并对发展趋势做了预测。 关键字 图像压缩;编码原理;变换编码;小波编码 1 引言 现代社会是信息社会,我们无时无刻都在跟信息打交道,如上网查阅图文及视频资料,浏览新的股市行情及新闻,QQ 聊天及传送文件等,这些语音、文字、图像信息在网络上的呈现都需要信息传输,而在传输之前需要进行信息处理,如信息压缩。本文对信息压缩中的静态图像压缩方法做了对比,让读者了解各种典型的图像压缩方法及它们各自的优缺点。 2 概述 从实质上来说,图像编码与压缩就是通过一定的规则及方法对数字图像的原始数据进行组合和变换,以达到用少的数据传输大的信息。图像进行压缩的理论来源于信息论,压缩就是去掉冗余的信息,即去掉确定性的信息,保留不确定性的信息。在数字图像中有 3 种基本的数据冗余:像素相关冗余、编码冗余、心理视觉冗余。压缩就是能去掉这 3 种冗余中的 1 个或多个。 图像压缩编码示意图 上图为压缩编码过程,其中映射器对输入的数据进行处理,以减少像素的相关冗余;量化器根据映射器输出的精确度,进一步对数据作用减少心理视觉冗余;符号编码器将量化器输出的频率高的值赋于短的编码,从而达到减少编 码冗余的目的。 3 图像压缩编码分类 图像压缩编码主要分为像素编码、预测编码、变换编码和其它编码 4 类。 1)像素编码 像素编码是对像素进行单独编码,不考虑像素之间的相关性,如相邻像素之间的线性。像素编码主要包括香农 (Shannoon)编码、霍夫曼(Huffman)编码、游程编码(Run Length Coding)等。 香农编码和霍夫曼编码都是根据像素的概率通过不同的方法进行编码,游程编码是通过统计像素的数目,对每行的像素直接进行编码。本文以游程编码为例来介绍像素编码。 游程编码的编码原理很简单,就是将一行中颜色相同的像素值用颜色值和计数值表示。如在一幅灰度级为 256,大小为100 120× 的图像中,第一行中 55 个连续像素的灰度值为 100,20 个连续像素的灰度值为 200,25 个相邻像素的灰度值为 255,则第一行就可以表示成(100,55),(200,20), (255,25)。 下面利用Matlab对两幅图进行游程编码,并且进行比较。 对图 1 进行游程编码后的压缩比: 对图 2 进行游程编码后的压缩比: 映射器 量化器 符号编码器 图像输入 图像输出 ·24· 计算机与信息技术 开发与应用 我们可以看到对图1 利用游程压缩编码,不但没有减少传输的图像数据,反而增加了。而图2 通过该编码方法得到了较 大的压缩比。通过观察不难发现,当灰度级较少并且相同灰度较多时,通过游程编码压缩可以提高传输信息的效率。但相邻像素变化频率高时,用此方法压缩反而会增加传输数据量。 通过游程压缩编码,可以看到像素压缩编码主要是减少编码冗余达到压缩的效果。像素编码方法简单,无须对图像做过多的处理,就可以达到压缩的目的。 2)预测编码 预测编码是一种经典的数据压缩编码方法,常用的预测编码是差分脉冲编码调制编码 DCPM(Differential Pulse Code Modulat

你可能感兴趣的:(matlab用游程编码压缩图像)