图像压缩编码程序.docx

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
图像压缩编码实验目的了解有关数字图像压缩的基本概念,了解几种常用的图像压缩编码方式; 进一步熟悉JPEG编码与离散余弦变换(DCT)变换的原理及含义;掌握编程实现离散余弦变换(DCT)变换及JPEG编码的方法;对重建图像的质量进行评价。实验原理1、图像压缩基本概念及原理图像压缩主要目的是为了节省存储空间,增加传输速度。图像压缩的理想标准是信息丢失最少,压缩比例最大。不损失图像质量的压缩称为无损压缩,无损压缩不可能达到很高的压缩比;损失图像质量的压缩称为有损压缩,高的压缩比是以牺牲图像质量为代价的。压缩的实现方法是对图像重新进行编码,希望用更少的数据表示图像。应用在多媒体中的图像压缩编码方法,从压缩编码算法原理上可以分为以下3类:(1)无损压缩编码种类哈夫曼(Huffman)编码,算术编码,行程(RLE)编码,Lempel zev编码。(2)有损压缩编码种类预测编码,DPCM,运动补偿;频率域方法:正交变换编码(如DCT),子带编码;空间域方法:统计分块编码;模型方法:分形编码,模型基编码;基于重要性:滤波,子采样,比特分配,向量量化;(3)混合编码JBIG,H.261,JPEG,MPEG等技术标准。2、JPEG 压缩编码原理JPEG是一个应用广泛的静态图像数据压缩标准,其中包含两种压缩算法(DCT和DPCM),并考虑了人眼的视觉特性,在量化和无损压缩编码方面综合权衡,达到较大的压缩比(25:1以上)。JPEG既适用于灰度图像也适用于彩色图像。其中最常用的是基于DCT变换的顺序式模式,又称为基本系统。JPEG 的压缩编码大致分成三个步骤:使用正向离散余弦变换(forward discrete cosine transform,FDCT)把空间域表示的图变换成频率域表示的图。 使用加权函数对DCT系数进行量化,该加权函数使得压缩效果对于人的视觉系统最佳。 使用霍夫曼可变字长编码器对量化系数进行编码。3、离散余弦变换(DCT)变换原理离散余弦变换(DCT)是一种实数域变换,其变换核为实数余弦函数,图像处理运用的是二维离散余弦变换,对图像进行DCT,可以使得图像的重要可视信息都集中在DCT的一小部分系数中。?二维DCT变换是在一维的基础上再进行一次DCT变换,公式如下:(1)为原图像,经DCT 变换之后,为变换矩阵。是直流分量,其他为交流分量。上述公式可表示为矩阵形式: (2)其中是变换系数矩阵,为正交阵。逆DCT 变换:(3)这里我们只讨论两个N相等的情况,即图像为方形(行列数相等),在实际应用中对不是方阵的数据都应先补齐再进行变换的。4、图象质量评价保真度准则是压缩后图象质量评价的标准。客观保真度准则:原图象和压缩图象之间的均方根误差或压缩后图象的均方根信噪比。主观保真度准则:极好、良好、通过、勉强、低劣、不能用。客观保真度准则新旧图像的均方误差 (4)均方根误差 (5)把压缩后图像表示成原图像和噪声的叠加 (6)均方信噪比 (7)实验内容及步骤本实验主要采用MATLAB程序实现DCT变换及JPEG压缩编码(OpenCV 亦可)实验步骤:读取一张大小为512x512的灰度图像(或彩色图像,并将其灰度化)实验一:把图像分解成若干个8x8的子块;对每个子块分别作DCT变换;保留变换后的直流分量,将交流分量全部清零;使用逆DCT变换,得到新的图像,观察图片变化。实验二:直接对整张原图像做DCT变换;保留直流分量,交流分量全部清零;再用逆DCT变换,得到新的图像,观察图片变化,注意与实验一结果的区别。实验三: 直接对整张原图像做DCT变换;保留直流分量;尝试保留有限个交流分量的个数;直到逆DCT变换以后的图像可以达到可观察的效果,与实验一结果作比较。对以上三个实验中逆DCT变换后所获得的图像做质量评价。实验结果及实验代码1)实验一实验代码:clc;clear all;img = imread(实验三.jpg);X = rgb2gray(img);%转换为灰度图X = double(X);figure (1)subplot(121);imshow(uint8(X));title(原始图象)subplot(122);Y=blkproc(X,[8 8],dct21);imshow(u

您可能关注的文档

文档评论(0)

502992 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档