240 likes | 397 Views
对本书、视频等任何 MATLAB 问题,作者做到有问必答!. 你买的不仅仅是书,更是一种“有问必答”的服务!. 视频版权归作者所有,请勿翻录. 视 频目录. 投 稿请联系: 627173439@qq.com. 第一 步:购买该书(当当、亚马逊等均有销售) 第二 步:拿到书籍以后,封面上有卡,如下图所示: 根据封面提示,验证密码,即可享受作者“有问必答”服务! 有问必 答网址 : www.iLoveMATLAB.cn/forum-224-1.html. 刮 开即可看到密码. “有问必答”三部曲. 第 1 0 章 图像压缩编码.
E N D
对本书、视频等任何MATLAB问题,作者做到有问必答!对本书、视频等任何MATLAB问题,作者做到有问必答! 你买的不仅仅是书,更是一种“有问必答”的服务!
视频版权归作者所有,请勿翻录 视频目录 投稿请联系:627173439@qq.com
第一步:购买该书(当当、亚马逊等均有销售)第一步:购买该书(当当、亚马逊等均有销售) • 第二步:拿到书籍以后,封面上有卡,如下图所示: • 根据封面提示,验证密码,即可享受作者“有问必答”服务! • 有问必答网址: www.iLoveMATLAB.cn/forum-224-1.html 刮开即可看到密码 “有问必答”三部曲
第10章 图像压缩编码 • 图像压缩编码是专门研究图像数据压缩的技术,就是尽量减少表示数据图像所需要的数据量。随着当今信息社会的飞速发展,图像数据的存储和传输技术越来越扮演着日益重要的角色。特别是网络及通信技术的发展使得图像的存储、处理和传输问题更加突出,从而促进数据压缩技术成为数字图像处理中的一项关键技术。本章主要介绍图像压缩编码的基础知识,重点讲解常用的图像压缩编码方法,如霍夫曼编码、香农编码、算术编码、行程编码和预测编码及编码方法的MATLAB实现,最后介绍了静态图像压缩标准JPEG标准。
10.1图像压缩编码基础 • 数字图像通常需要很大的比特数,这给图像的传输和存储带来相当大的困难。例如用8bit存储一幅512512的灰度图像的比特数为256K。而一部60分钟的彩色电影,如果每秒放映24帧,数字化后每帧包含512512像素,每像素的R、G、B分量分别占8bit,则这样一部电影的总比特数为64800M,若用一张600M的CD存储则需要100多张CD光盘来存储。由此可见对图像数据进行压缩显得非常必要。减少存储空间、缩短传输时间这成为促进图像压缩编码技术发展的主导因素。图像压缩是通过编码来实现的,所以通常将压缩与编码统称为图像的压缩编码。图像压缩编码从本质上来说就是对要处理的图像数据按照一定的规则进行变换和组合,从而达到以尽可能少的数据来表示尽可能多的数据信息。
10.2霍夫曼编码及其MATLAB实现 • 霍夫曼在1952年提出了一种构造最佳码的方法,称之为霍夫曼编码(Huffman)。霍夫曼编码是一种无损的统计编码方法,利用信息符号概率分布特性的改变字长进行编码。霍夫曼编码适用于多远独立信源,对于多元独立信源来说它是最佳码。本小节主要介绍霍夫曼编码的基本原理及其MATLAB实现方法。
10.2.1基本原理 • 霍夫曼编码是一种利用信息符号概率分布特性的变字长的编码方法,即对于出现概率大的信息符号编以短字长的码,对于出现概率小的信息符号编以长字长的码。如果码字长度严格按照所对应符号出现概率大小逆序排列,则编码结果的平均码字长度一定小于任何其他排列形式。霍夫曼编码则是严格按照信源符号出现的概率大小来构造码字,因此这种编码方式形成的平均码字长度最短。
10.2.2MATLAB实现 • 霍夫曼编码系统主要分为压缩对象输入、概率统计、构造Huffman树、生成Huffman树、压缩编码环节组成,如图所示霍夫曼编解码系统构成。编程思路依据霍夫曼的编程步骤进行,实现对数据的压缩及其压缩参数的计算。
10.3香农编码及其MATLAB实现 • 香农编码也是一种常见的可变字长编码,解决了霍夫曼编码过程中需要多次排序的问题。本小节主要介绍了香农编码的基本原理及其MATLAB实现方法。
10.3.1基本原理 • 香农编码的理论基础是符号的码字长度Ni完全由该符号出现的概率来决定,即: • 其中D为编码时所用的数值。当信源符号出现的概率为2的负幂次方时,采用香农编码同样能达到100%的编码效率。 • 香农编码的具体方法如下: • 1.将信源符号按其出现的概率从大到小排序; • 2.按照上式计算出各个概率对应的码字长度; • 3.计算累加概率,其定义为: • 4.把各个累加概率由十进制转化为二进制,取该二进制数的前位作为对应信源符号的码字。
10.4算术编码及其MATLAB实现 • 算术编码是20世纪80年代提出的一种无损数据压缩编码方法,也是一种熵编码方法。该方法克服了霍夫曼编码中对自信息量所占码位为小数的信息压缩效果不理想的问题,在图像数据压缩标准,如JPEG中起到重要作用。本小节主要介绍了算术编码的基本原理及其MATLAB实现方法。
10.4.1基本原理 • 算术编码的基本思想是把整个信息源表示为实数线上的0-1之间的一个区间,其长度等于该序列的概率;然后在该区间内选择一个代表性的小数,将其转化为二进制作为实际的编码输出。消息序列中的每个元素都要缩短为一个区间。消息序列中的元素越多,所得到的区间就越小。当区间变小时,就需要更多的数位来表示这个区间,通过算术运算得到最终的编码,因而称之为算术编码。采用算术编码,每个符号的平均编码长度可以为小数。
10.4.2 MATLAB实现 • 算术编码在图象数据压缩标准(如JPEG)中扮演了重要的角色。在算术编码中,消息用0到1之间的实数进行编码,算术编码用到两个基本的参数:符号的概率和它的编码间隔。图所示算术编码系统构成。
10.5行程编码及其MATLAB实现 • 行程编码是一种无损数据压缩编码方法。该压缩编码技术直观和经济,运算也相当简单,因此解压缩速度很快。行程编码适用于计算机生成的图形图像,对减少存储容量很有效果。本小节主要介绍了行程编码的基本原理及其MATLAB实现方法。
10.5.1基本原理 • 行程编码的基本原理是用一个符号值或串长代替具有相同值的连续符号(连续符号构成了一段连续的“行程”。行程编码因此而得名),使符号长度少于原始数据的长度。只在各行或者各列数据的代码发生变化时,一次记录该代码及相同代码重复的个数,从而实现数据的压缩。
10.5.2 MATLAB实现 • 行程编码的方法与霍夫曼编码、算术编码等方法相比,算法实现相对简单,图10.8所示行程编码系统。
10.6预测编码及其MATLAB实现 • 预测编码应用了现代统计学和控制理论的时间序列分析概念,是有损压缩中的重要方法之一。该编码方法简单,易于硬件实现。本小节主要介绍预测编码中具有代表性的编码方法差分脉冲编码调制方法的基本原理及其MATLAB实现方法。
10.6.1基本原理 • 预测编码是根据某一种模型,利用以前的(已收到)一个或几个样值,对当前的(正在接收的)样本值进行预测,将样本实际值和预测值之差进行编码。如果模型足够好,图像样本时间上相关性很强,一定可以获得较高的压缩比。具体来说,从相邻像素之间有很强的相关性特点考虑,比如当前像素的灰度或颜色信号,数值上与其相邻像素总是比较接近,除非处于边界状态。那么,当前像素的灰度或颜色信号的数值,可用前面已出现的像素的值,进行预测(估计),得到一个预测值(估计值),将实际值与预测值求差,对这个差值信号进行编码、传送,这种编码方法称为预测编码方法。
10.6.2 MATLAB实现 • 对图像数据压缩来说,预测编码方法是从相邻象素之间有很强的相关性特点考虑的。
10.7静止图像压缩编码标准-JPEG • 随着计算机网络技术的发展,图像通信已越来越受到广泛的关注,这就需要对图像数据进行标准化传输,制定图像压缩编码的标准显得尤为重要。在静态图像编码标准中,常用的有JPEG、JBIG等。本小节主要介绍静态图像的JPEG标准及其算法实现。
10.7.1JPEG标准 • JPEG是由CCITT(国际电报电话咨询委员会)和ISO(国际标准化组织)两个组织联合组建的图片专家组(Joint Photographic Experts Group ) 。该组织于1991年建立并通过第一个适用于连续色调静止数字图像压缩的国际标准(ISO 10918-1),称为国际JPEG标准建议,从而统一了用于彩色传真、静止图像、可视会议、电子出版物等图像的压缩和传输格式。该标准广泛应用于计算机和通信等领域,例如电视图像压缩、多媒体通信、多媒体计算机、图像数据库等。经JPEG压缩的图像,可在不太影响图像质量的前提下,得到很高的压缩比。该标准既可以用软件实现,也可以用硬件实现。由于JPEG优良的品质,使得它在短短的几年内就获得极大的成功,随着JPEG芯片价格下降,JPEG的应用正日益普及。
10.7.2 JPEG算法实现 • JPEG压缩是有损压缩,它利用了人的视角系统的特性,使用量化和无损压缩编码相结合来去掉视角的冗余信息和数据本身的冗余信息。JPEG算法框图如图所示,压缩编码大致分成三个步骤: • 1.使用正向离散余弦变换(forward discrete cosine transform,FDCT)把空间域表示的图变换成频率域表示的图。 • 2.使用加权函数对DCT系数进行量化,这个加权函数对于人的视觉系统是最佳的。 • 3.使用霍夫曼可变字长编码器对量化系数进行编码。
10.8本章小结 • 数字图像压缩编码技术是多媒体技术的重要组成部分。本章主要介绍了数字图像压缩编码的基础,包括图像压缩编码的必要性、图像冗余信息、编码参数及基于保真度准则的评价;还介绍了霍夫曼编码及其在MATLAB中的实现方法、算术编码及其在MATLAB中的实现、行程编码及其在MATLAB中的实现、预测编码及其在MATLAB中的实现和小波编码及其在MATLAB中的实现。由于MATLAB在数字图像压缩和编码中应用十分广泛,本章均给出各种编码方法的MATLAB实现例程,为用户提供实践支持。最后本章介绍了静态图像的编码标准JPEG标准及其算法实现步骤。
习 题 • 10.1 设输入图像的灰度级出现的概率对应为。试进行霍夫曼编码,并计算编码效率、压缩比和冗余度。 • 10.2 在MATLAB中编写一个实现霍夫曼编码的程序,要求对实际图像进行压缩编码,并计算熵、平均码长和编码效率。 • 10.3设输入图像的灰度级出现的概率对应为。试进行香农编码,并计算编码效率、压缩比和冗余度。 • 10.4 假设信息源出现的概率对应为,写出对信息源进行算术编码和解码的过程。