基于DCT的图像压缩及其MATLAB实现

合集下载

基于DCT的数字图像压缩及Matlab实现

基于DCT的数字图像压缩及Matlab实现

实验三基于DCT的数字图像压缩及Matlab实现兰州大学信息学院08级通信工程一班赵军伟一、课程设计的目的和要求等内容实验目的:掌握基于DCT变换的图像压缩的基本原理及其实现步骤;通过使用MATLAB,对同一幅原始图像进行压缩,进一步掌握DCT和图像压缩。

实验要求:1、学生在实验操作过程中自己动手独立完成,2人为1组。

2、上机过程中由指导老师检查结果后方可做其他内容。

3、完成实验报告:按照实验的每个题目的具体要求完成二、基本原理或方法(一)图像压缩基本原理图像数据压缩的目的是在满足一定图像质量的条件下,用尽可能少的比特数来表示原始图像,以提高图像传输的效率和减少图像存储的容量,在信息论中称为信源编码。

图像压缩是通过删除图像数据中冗余的或者不必要的部分来减小图像数据量的技术,压缩过程就是编码过程,解压缩过程就是解码过程。

压缩技术分为无损压缩和有损压缩两大类,前者在解码时可以精确地恢复原图像,没有任何损失;后者在解码时只能近似原图像,不能无失真地恢复原图像。

假设有一个无记忆的信源,它产生的消息为{ai},1≤i≤N,其出现的概率是已知的,记为P(ai)。

则其信息量定义为:由此可见一个消息出现的可能性越小,其信息量就越多,其出现对信息的贡献量越大,反之亦然。

信源的平均信息量称为“熵”(entropy),可以表示为:对上式取以2为底的对数时,单位为比特(bits):根据香农(Shannon)无噪声编码定理,对于熵为H的信号源,对其进行无失真编码所可能达到的最低比特数为,这里为一任意小的正数,因此可能达到的最大压缩比为:其中B是原始图像的平均比特率。

在图像压缩中,压缩比是一个重要的衡量指标。

可以定义压缩比为:(二)图像压缩的基本模型图像编码包括两个阶段,前一个阶段就是利用预测模型或正交模型对图像信号进行变换;后一个阶段是利用已变换信号的统计特性,对其分配适当的代码来进行编码传输。

编码器与解码器的结构分别如图(a)、(b)。

基于DCT的图像压缩及Matlab实现

基于DCT的图像压缩及Matlab实现

通信专业课程设计一太原科技大学课程设计(论文)设计(论文)题目:基于DCT的图像压缩及Matlab实现姓名____学号_班级_学院____指导教师____2010年12月31日太原科技大学课程设计(论文)任务书学院(直属系):时间:学生姓名指导教师设计(论文)题目基于DCT的图像压缩及Matlab实现主要研究内容掌握DCT变换实现图像压缩的基本方法,在不损害图像信源的有效信息量的情况下保证图像的质量,在MATLAB环境中进行图像压缩技术的仿真,并对仿真结果进行分析。

研究方法主要运用实验法与观察法,通过编写程序实现对图像的DCT变换,观察图像结果进而实现对DCT变换的研究。

主要技术指标(或研究目标)利用DCT变换编码方法进行图像压缩,提高信息传输的有效性及通信质量。

教研室意见教研室主任(专业负责人)签字:年月日目录摘要 (II)第1章绪论 (1)第2章DCT变换概述 (2)2.1DCT函数介绍 (2)2.2DCT变换介绍 (2)2.2.1DCT变换原理 (2)2.2.2DCT变换编码的步骤 (3)第3章程序运行及结果分析 (5)3.1程序代码 (5)3.2运行结果分析 (7)第4章结论 (11)参考文献 (12)基于DCT变换函数的图像压缩摘要图像压缩是关于用最少的数据量来表示尽可能多的原图像的信息的一个过程。

对于图像来说,如果需要进行快速或实时传输以及大量存储,就需要对图像数据进行压缩,在同等的用心容量下.如果图像数据压缩后再传输,就可以传输更多的图像信息,也就可以增加通信的能力。

变换编码是把图像中的各个像素从一种空间变换到另一种空间.然后针对变换后的信号进行量化与编码操作的一种图象压缩编码技术。

本文提出了基于DCT变换的JPEG图像压缩编码算法进行研究,并通过对比分析各种软件特性选取了MATLAB进行实验仿真,重点介绍了压缩编码的具体过程和方法,详细介绍了编码中DCT变换、量化、熵编码等模块的原理和数学推导以及各模块的功能分析,基于DCT变换的JPEG图像压缩方法简单、方便,既能保证有较高的压缩比,又能保证有较好的图像质量,应用MATLAB仿真出来的结果较好的反应了其编码算法原理。

基于DCT变换的数字图像压缩技术及其Matlab实现

基于DCT变换的数字图像压缩技术及其Matlab实现

基于DCT变换的数字图像压缩技术及其Matlab实现
崔春艳;李彩霞
【期刊名称】《现代电子技术》
【年(卷),期】2002(000)009
【摘要】介绍了Matlab的基本功能,提出了用Matlab来实现DCT变换的数字图像压缩技术,方法简单,快速,且误差小.
【总页数】3页(P7-9)
【作者】崔春艳;李彩霞
【作者单位】河北大学电子与信息工程学院,保定,071002;河北大学电子与信息工程学院,保定,071002
【正文语种】中文
【中图分类】TP3
【相关文献】
1.基于DCT变换的图像压缩编码的MATLAB实现 [J], 彭干涛;禹峰;林嘉居
2.基于DCT变换的数字水印研究及其MATLAB实现 [J], 阳鑫
3.基于JPEG图像压缩技术的研究及其Matlab实现 [J], 宫泽林
4.基于MATLAB实现数字图像边缘检测 [J], 曹洋
5.一种基于DCT变换域的数字图像水印技术的实现方法 [J], 冯岩;王晓红
因版权原因,仅展示原文概要,查看原文内容请购买。

实验三-基于DCT的数字图像压缩及Matlab实现

实验三-基于DCT的数字图像压缩及Matlab实现

实验三-基于DCT的数字图像压缩及Matlab实现实验三基于DCT的数字图像压缩及Matlab实现一、实验原理图像压缩基本原理及模型(一)图像压缩基本原理图像数据压缩的目的是在满足一定图像质量的条件下,用尽可能少的比特数来表示原始图像,以提高图像传输的效率和减少图像存储的容量,在信息论中称为信源编码。

图像压缩是通过删除图像数据中冗余的或者不必要的部分来减小图像数据量的技术,压缩过程就是编码过程,解压缩过程就是解码过程。

压缩技术分为无损压缩和有损压缩两大类,前者在解码时可以精确地恢复原图像,没有任何损失;后者在解码时只能近似原图像,不能无失真地恢复原图像。

假设有一个无记忆的信源,它产生的消息为{ai},1≤i≤N,其出现的概率是已知的,记为P(ai)。

则其信息量定义为:由此可见一个消息出现的可能性越小,其信息量就越多,其出现对信息的贡献量越大,反之亦然。

信源的平均信息量称为“熵”(entropy),可以表示为:对上式取以2为底的对数时,单位为比特(bits):根据香农(Shannon)无噪声编码定理,对于熵为H的信号源,对其进行无失真编码所可能达到的最低比特数为,这里为一任意小的正数,因此可能达到的最大压缩比为:其中B是原始图像的平均比特率。

在图像压缩中,压缩比是一个重要的衡量指标。

可以定义压缩比为:(二)图像压缩的基本模型图像编码包括两个阶段,前一个阶段就是利用预测模型或正交模型对图像信号进行变换;后一个阶段是利用已变换信号的统计特性,对其分配适当的代码来进行编码传输。

编码器与解码器的结构分别如图(a)、(b)。

在发送端,输入的原始图像首先经过DCT变换后,其低频分量都集中在左上角,高频分量分布在右下角(DCT变换实际上是空间域的低通滤波器)。

由于该低频分量包含了图像的主要信息,而高频分量与之相比就不那么重要了,所以可以忽略高频分量,从而达到压缩的目的。

将高频分量去掉就要用到量化,这是产生信息损失的根源。

基于DCT变换的数字图像压缩(实验4报告)

基于DCT变换的数字图像压缩(实验4报告)

多媒体技术实验报告学院:城南学院通信1202班姓名学号指导老师:***时间:2015/12/09实验四:数字图像压缩1.实验目的1)理解有损压缩和无损压缩的概念;2)理解图像压缩的主要原则和目的;3)了解几种常用的图像压缩编码方式;4)利用MATLAB程序进行图像压缩。

2. 实验原理1)图像压缩原理图像压缩主要目的是为了节省存储空间,增加传输速度。

图像压缩的理想标准是信息丢失最少,压缩比例最大。

不损失图像质量的压缩称为无损压缩,无损压缩不可能达到很高的压缩比;损失图像质量的压缩称为有损压缩,高的压缩比是以牺牲图像质量为代价的。

压缩的实现方法是对图像重新进行编码,希望用更少的数据表示图像。

信息的冗余量有许多种,如空间冗余,时间冗余,结构冗余,知识冗余,视觉冗余等,数据压缩实质上是减少这些冗余量。

高效编码的主要方法是尽可能去除图像中的冗余成分,从而以最小的码元包含最大的图像信息。

编码压缩方法有许多种,从不同的角度出发有不同的分类方法,从信息论角度出发可分为两大类。

①冗余度压缩方法,也称无损压缩、信息保持编码或嫡编码。

具体说就是解码图像和压缩编码前的图像严格相同,没有失真,从数学上讲是一种可逆运算。

②信息量压缩方法,也称有损压缩、失真度编码或烟压缩编码。

也就是说解码图像和原始图像是有差别的,允许有一定的失真。

本实验主要利用MA TLAB程序进行离散余弦变换(DCT)压缩和行程编码(Run Length Encoding,RLE)。

2)离散余弦变换(DCT)图像压缩原理离散余弦变换DCT在图像压缩中具有广泛的应用,它是JPEG、MPEG等数据压缩标准的重要数学基础。

用DCT压缩图像的过程为:①首先将输入图像分解为8×8或16×16的块,然后对每个子块进行二维DCT变换。

②将变换后得到的量化的DCT系数进行编码和传送,形成压缩后的图像格式。

用DCT解压的过程为:①对每个8×8或16×16块进行二维DCT反变换。

基于DCT变换的图像压缩及matlab仿真

基于DCT变换的图像压缩及matlab仿真

院(系、所)信息与机电学院专业通信与信息系统考试科目数字压缩第三学期研究生姓名张鹏学号*********摘要图像压缩是关于用最少的数据量来表示尽可能多的原图像的信息的一个过程。

对于图像来说,如果需要进行快速或实时传输以及大量存储,就需要对图像数据进行压缩,如果图像数据压缩后再传输,就可以传输更多的图像信息,也就可以增加通信的能力。

变换编码是把图像中的各个像素从一种空间变换到另一种空间.然后针对变换后的信号进行量化与编码操作的一种图象压缩编码技术。

本文提出了基于DCT变换的图像压缩编码算法进行研究,并用MATLAB进行实验仿真,重点介绍了压缩编码的具体过程和方法 ,详细介绍了编码中DCT变换、量化、熵编码等模块的原理和数学推导以及各模块的功能分析,基于DCT 变换的图像压缩方法简单、方便,既能保证有较高的压缩比,又能保证有较好的图像质量,应用MATLAB仿真出来的结果较好的反应了其编码算法原理。

关键词:图像压缩 DCT变换 MATLABAbstractˎ̥Image compression is a process about the least amount of data to show the original image information as much as possible. For images, if the requirement of high-speed and real-time transmission and a large amount of storage, we need to compress the image data, if the image data compression and transmission, can transmit more information of the image, also can increase the ability of communication. Transform coding is that each pixel in the image from a space to another space. Coding an image and then quantization and coding operation according to the transformed signal.This paper puts forward DCT transform for image compression coding algorithm based on study, and experimental simulation using MATLAB, focuses on process and compression coding method, a detailed analysis of principle and mathematical derivation of the DCT transform coding, quantization, entropy coding module and the function of each module, DCT transform for image the compression method is simple, convenient and based on, which can ensure a higher compression ratio, but also ensure a better image quality, the application of MATLAB simulation results reflect the coding algorithm.Key word:Image compression DCT transform MATLAB基于DCT变换的图像压缩及matlab仿真一.图像压缩编码的概念压缩的理论基础是信息论,从信息论的角度来看,压缩就是去掉信息中的冗余,即保留不确定的信息,去掉确定的信息(可推知的),也就是用一种更接近信息本质的描述来代替原有冗余的描述。

基于DCT的图像压缩及Matlab实现

基于DCT的图像压缩及Matlab实现
基于dct的图像压缩编码理论算法21基于dct的图像压缩编码算法表述在编码过程中首先将输入图像分解为88大小的数据块然后用正向二维dct把每个块砖变成64个dct系数值其中1个数值是直流dc稀疏即与图像子块的平均值其余的63个是交流ac稀疏接下来对dct系数进行量化最后将变换得到的量化的dct系数进行解码然后求逆量化把dct系数转化为使用二维dct反变换最后将操作完成后的块组合成一个单一的图像这样就完成了图像的压缩和解压缩过程
量化表。此外, 由于人眼对低频分量的图像比对高频右下角的量化步长
小, 量化机要使得大部分数据得以压缩, 同时又要保证通过量化和编
码之后能输出一个与信道传输速率匹配的比特流。
4.Ma tla b 程序实现
4.1Matlab 的功能与特点 Matalab 有主包和功能各异的工具箱组
反变换公式:
"=0 "=1,2,!,M- 1
M- 1 N- 1
f(x,y)=!!c(u)c(")F(u,")cos !(2x+1)u cos !(2y+1)"
x=0 "=0
2M
2N
2.2.3 二维离散余弦变换的简化 在 二 维 离 散 余 弦 变 换 中 , x,y 为
空 间 与 采 样 值 , 通 常 数 字 图 像 用 像 素 方 阵 表 示 , 即 M=N,在 这 种 情 况
用 Matlab 来实现离散余弦变换的图像压缩, 具有方 法 简 单 、速 度 快、误差小的优点, 免去了大量的矩阵计算, 大大提高了图像压缩的效 率 和 精 度 。科
● 【参 考 文 献 】 [ 1] 许波等编著, Matlab 工程数学应用, 北京, 清华大学出版社, 2000. [ 2] 陈桂明等编著, 应用 Matlab 语言处理数字信号与数字图像, 北京, 科 学 出 版 社, 2000. [ 3] 樊启斌, Matlab 语言的功能、特点及其应用, 测绘信息与工程, 2000. [ 4] 刘富强, 钱建生, 曹国清, 多媒体图像技术及应用, 北京, 人民邮电出版社, 2000, 19- 20.

实验10 图像压缩的MATLAB实现

实验10 图像压缩的MATLAB实现
B=idct2(A,M,N)
A表示要变换的二维离散余弦变换矩阵,B表示变换 后得到的图像,B和A是同样大小的矩阵,其内容是 余弦变换后的系数。
M和N是可选参数,表示对图像矩阵A的填充或截取。 函数dctmtx用于计算二维DCT矩阵,语法格式: D=dctmtx(n)
格式:
B=idct2(A)
块,计算它们的DCT系数,并且只保留64个DCT系 数中的10个,然后对每个图像块利用这10个系数进 行逆DCT变换来重构图像。 解:程序如下:
clear
I=imread('cameraman.tif');
I=im2double(I);
T=dctmtx(8);
B=blkproc(I,[8 8],'P1*x*P2',T,T'); %这里T,T'是参数 P1、P2的取值
N 1
f
(x,
y) cos
(2x
1)u
cos
(2
y
1)v
x0 y0
2N
2N
x 0,1,L , N 1 y 0,1,L , N 1
二维离散余弦反变换公式如下:
f (x, y) N1 N1c(u)c(v)F (u, v) cos (2x 1)u cos (2 y 1)v
u0 v0
2N
2N
(1)对每个8×8或16×16块进行二维DCT反变换。
(2)将反变换的矩阵的块合成一个单一的图像。
例:把输入图像cameraman.tif划分为8×8的图像 块,计算它们的DCT系数,并且只保留64个DCT系 数中的10个,然后对每个图像块利用这10个系数进 其中D是返回的n×n的DCT变换矩阵,如果矩阵A的 大小是n×n,D×A是矩阵每一列的DCT变换值, A×D’是A的每一行的DCT变换值。

基于DCT变换的图象压缩技术的Matlab实现

基于DCT变换的图象压缩技术的Matlab实现

基于DCT 变换的图象压缩技术的Matlab 实现一、背景图象的离散余弦变换具有把高度相关数据能量集中的趋势,因此广泛用于图象压缩。

下面使用二维离散余弦变换进行图象压缩。

利用离散余弦变换进行图象压缩,首先要将输入图象分解为88⨯或1616⨯的块,然后对每个块进行二维离散余弦变换,最后将变换得到的DCT 系数进行编码和传送,解码时对每个88⨯或1616⨯的图象块进行二维DCT 反变换,最后将反变换后的块组合成一幅图象。

对于通常的图象来说,大多数的DCT 系数的值非常接近于0。

如果舍弃这些接近于0的DCT 系数值,在重构图象时并不会带来画面质量的显著下降。

所以,利用DCT 进行图象压缩可以节约大量的存贮空间。

压缩应该在最合理的近似原图象的情况下使用最少的系数,使用系数的多少也决定了压缩比的大小。

源程序:Sig1=imread('qq.bmp');Sig=rgb2gray(Sig1);rat=1/4;Sig=double(Sig)/255;[a,b]=size(Sig);figure(1);imshow(Sig);T=dctmtx(8);DCTcoe=blkproc(Sig,[8 8],'P1*x*P2',T,T'); coeVar=im2col(DCTcoe,[8 8],'distinct');coe=coeVar;[Y,Ind]=sort(coeVar);[m,n]=size(coeVar);%Snum=64-64*rat;for i=1:ncoe(Ind(1:Snum),i)=0;endB2=col2im(coe,[8 8],[a b],'distinct');I2=blkproc(B2,[8 8],'P1*x*P2',T',T);% figure(4);imshow(I2);二、实验内容1、调试上述程序,将运行结果显示如下。

基于MATLAB的DCT变换及其在图像压缩中的应用

基于MATLAB的DCT变换及其在图像压缩中的应用

际上彩 色、 灰度 、 静止图像的第一个 国际标准 。 在编码过程 中, E J G算法 P 首先将 R B分量转化为亮度分量和色差分量, G 然后将图像分解为 8 8 X 的像素块, 对这个 8 8 × 块进行二维离散余弦变换 , 每个块就产生 了 6 4 个 D T系数, 中一个是直流( c系数, C 其 D) 它表示 了 8 输入矩阵全部值 8 X 的平均数 , 其余 6 个 系数为交流 (c系数 , 来对 D T系数 进行量 3 A) 接下 C 化, 最后将量化的 D T系数进行 编码, C 就形成 了压缩 后的图像格式 。在
前 言
现今, 大量的图像 与视频信息都是 以压缩数据格式进行存储和传输 的。D TDsr e o n as r C (i e s e r f m离散余 弦变换) 目 应用最 为广泛 c tC i T n o 是 前 的多媒体数据压缩技术之一。随着 多媒体 和互联 网的发展, 不仅要求大 量存储和传输图像 ,而且往往要求在保证质量 的前提下 以较小 的空间 存储 图像和 以较少的 比特率传输 图像 , 因此最好采用合适 的方法对图像 进行压缩和编码, 以便于图像 的存储 和传输 。对 图像压缩编码的研究属 于信息论中信源编码范畴 ,其主要宗 旨是利用 图像信号 的统计 特性 及 人类视觉的生理及心理学特性对 图像信号进行高效编码 , 研究数据 并 压缩技术 ,以解决数据量大的问题 。图像压缩编码 的 目的和意义就在
图像压缩 即去除多余数据。以数学 的观点来看 , 图像压缩过程实际 上就是将二维像素阵列变换为一个在统计上无关联 的数据集合 。 因此 , 图像压缩是指 以较少的比特有损或无损地表示原来 的像素矩阵的技术, 也称 图像编码 。 11图像 压 缩 的 基 本 方 法 . 图像 压 缩 可 以 是 有 损 数 据 压 缩 也 可 以是 无 损 数 据 压 缩 。对 于 如 绘 制 的技术图 、图表或者漫画优先使用无损压缩 。这是 因为有损 压缩 方 法, 尤其是在低的位速条件下将会 带来压缩失真 。 如医疗图像 或者用 于 存档 的扫描图像等这些有价值的内容的压缩也应尽量选择无损压缩 方 法。 有损方法非常适合于 自然 的图像 , 例如一些应用中图像的微小损 失 是可 以接受的( 有时是无法感知 的)这样就可 以大幅度地减小位速。 , 无损图像压缩方法有 : 程长度编码 , 编码法 ( L w 这样 的 自 行 熵 如 Z 适 应 字 典 算 法 )有损 压 缩 方 法 有 : 1将 色 彩 空 间 化 减 到 图像 中 常用 的 ; () 颜 色 。( ) 抽 样 。( ) 换 编 码 。( ) 形 压 缩 (reacmpes n 。 2 色度 3变 4分 Fat o rsi ) l o 1 . 止 图像 编 码 的 国 际标 准 JE 2静 PG

实验三基于DCT的数字图像压缩与Matlab实现

实验三基于DCT的数字图像压缩与Matlab实现

实验五基于DCT的数字图像压缩及Matlab实现实验报告一.实验目的1.了解DCT以及基于DCT的图片压缩的方法和步骤;2.学会图片压缩的方法二.实验仪器PC机(安装Windows98、Windows2000或者Windows XP或以上),Matlab软件。

三.实验原理(1)DCT的定义DCT变换利用傅立叶变换的性质,采用图像边界褶翻将图像变换为偶函数形式,然后对图像进行二维傅立叶变换,变换后仅包含余弦项,所以称之为离散余弦变换。

(2)DCT和图像压缩DCT编码属于正交变换编码方式,用于去除图像数据的空间冗余。

变换编码就是将图像光强矩阵(时域信号)变换到系数空间(频域信号)上进行处理的方法。

在空间上具有强相关的信号,反映在频域上是在某些特定的区域内能量常常被集中在一起,或者是系数矩阵的分布具有某些规律。

我们可以利用这些规律在频域上减少量化比特数,达到压缩的目的。

图像经DCT变换以后,DCT系数之间的相关性已经很小,而且大部分能量集中在少数的系数上,因此,DCT变换在图像压缩中非常有用,是有损图像压缩国际标准JPEG的核心。

从原理上讲可以对整幅图像进行DCT变换,但由于图像各部位上细节的丰富程度不同,这种整体处理的方式效果不好。

为此,发送者首先将输入图像分解为8×8或16×16的块,然后再对每个图像块进行二维DCT变换,接着再对DCT系数进行量化、编码和传输;接收者通过对量化的DCT系数进行解码,并对每个图像块进行的二维DCT反变换,最后将操作完成后所有的块拼接起来构成一幅单一的图像。

对于一般的图像而言,大多数DCT系数值都接近于0,可以去掉这些系数而不会对重建图像的质量产生重大影响。

因此,利用DCT进行图像压缩确实可以节约大量的存储空间。

DCT变换的特点是变换后图像大部分能量集中在左上角,因为左上放映原图像低频部分数据,右下反映原图像高频部分数据。

而图像的能量通常集中在低频部分。

基于MATLAB的图像压缩处理及其实现(优质参考)

基于MATLAB的图像压缩处理及其实现(优质参考)

基于MATLAB的图像压缩处理及其实现(优质参考)基于MATLAB 的图像压缩处理及其实现一.图像压缩的概念从实质上来说,图像压缩就是通过一定的规则及方法对数字图像的原始数据进行组合和变换,以达到用最少的数据传输最大的信息。

二.图像压缩的基本原理图像数据之所以能被压缩,就是因为数据中存在着大量冗余信息,另外还有相当数量的不相干信息,这为数据压缩技术提供了可能。

数据压缩技术就是利用数据固有的冗余性和不相干性,将一个大的数据文件转化成较小的文件,图像技术压缩就是要去掉数据的冗余性。

图像数据的冗余主要表现为:图像中相邻像素间的相关性引起的空间冗余;图像序列中不同帧之间存在相关性引起的时间冗余;不同彩色平面或频谱带的相关性引起的频谱冗余。

由于图像数据量的庞大,在存储、传输、处理时非常困难,因此图像数据的压缩就显得非常重要。

三.图像的编码质量评价在图像编码中,编码质量是一个非常重要的概念,怎么样以尽可能少的比特数来存储或传输一幅图像,同时又让接收者感到满意,这是图像编码的目标。

对于有失真的压缩算法,应该有一个评价准则,用来对压缩后解码图像质量进行评价。

常用的评价准则有两种:一种是客观评价准则;另一种是主观评价准则。

主观质量评价是指由一批观察者对编码图像进行观察并打分,然后综合所有人的评价结果,给出图像的质量评价。

而对于客观质量评价,传统的编码方法是基于最小均方误差(MSE)和峰值信燥比(PSNR)准则的编码方法,其定义如下MSE= (1)PSNR=101g( (2)式中:Nx,Nr图像在x方向和Y方向的像素数,f(i,j)——原图像像素的灰度值,f(i,j)--处理后图像像素的灰度值。

对于主观质量,客观质量评价能够快速有效地评价编码图像的质量,但符合客观质量评价标准的图像不一定具有较好的主观质量,原因是均方误差只是从总体上反映原始图像和压缩图像的差别,但对图像中的所有像点同等对待,因此并不能反映局部和人眼的视觉特性。

基于变换域的图像压缩及Matlab实现

基于变换域的图像压缩及Matlab实现

基于变换域的图像压缩及Matlab实现[摘要]数字图像的数据量是巨大的,需要进行有效的压缩。

为了实现图像数据的压缩,本文采用基于变换域的离散余弦变换(DCT)和小波变换的压缩方法,在Matlab环境下分别进行相关压缩实验,结果表明两种压缩方法具有简单、速度快、误差小的优点。

最后对基于变换域压缩的基本思想进行了总结。

[关键词]变换域;图像压缩;DCT;小波变换;Matlab0引言图像数字化后的数据量是巨大的,如何快速有效地存储或传输这些数据,成为当前信息社会的一个热点。

为此,必须针对图像的特点对其数据进行压缩编码,以提高存储、传输和处理速度,节省存储空间。

图像压缩的方法很多,变换域压缩属于有损压缩方法,直接对图像像素在图像变换空间进行操作。

包括基于K-L(Karhunen-Leove)变换、Haar变换、Walsh-Hadamard变换、斜(slant)变换、离散余弦变换DCT(Discrete Cosine Transform)和小波变换(Wavelet Transform)等多种方法。

这些变换算法本身并不能实现图像的编码,但是经过变换的信号具有良好的能量集中性,通过对反应信号能量分布的变换系数的取舍,再采用适当的系数量化和符号编码,就可以实现其在变换域的有效压缩。

在这些基于变换域的压缩方法中,实际中常用到的是DCT 和小波变换。

DCT是一种与傅里叶变换紧密相关的数学算法,目前国际压缩标准的JPEG算法的基本系统就是基于DCT变换编码的有损压缩算法。

小波是一种多分辨率分析方法,用小波变换对图像这种不平稳的复杂信号进行处理,能有效克服傅里叶分析和其他分析方法的不足。

因此,小波变换在图像处理方面得到了广泛的应用。

在本文中,我们主要研究DCT和小波变换对数字图像信号进行压缩的基本思想,通过Matlab软件进行图像压缩实验,对实验压缩效果进行分析。

1基于DCT的图像压缩方法及Matlab实现离散余弦变换(DcT)的图像压缩是一种有损压缩算法,它能在图像的压缩操作中获得较高的压缩比,目前国际压缩标准的JPEG格式中就用到了DCT变换。

基于DCT变换的数字图像压缩技术及其Matlab实现

基于DCT变换的数字图像压缩技术及其Matlab实现
1 离 散 余弦 变换 的概 念
1 1 一 维 离散 余 弦 正 反 变 换 的 公 式 .
N I -
)一 ( c F足 一2 fn o ( ) ∑ ) s


k 一 0, 2, , 1, … Ⅳ 一 1
( 1)
蓦 s

k 一 0, 2, , 1, … Ⅳ ~ 1
Ab t a t s r c :Th o t o e h o o y o CM ( i g ec n r l ir c mp t r s wi e y u e n h o eo h s t c n l g s t e e c n r l c n l g fS t S n l o to c o o M u e )i d l s d a d t e c r ft i e h o o y i h
维普资讯
《 现代 电子技 术 》 0 2年 第 9期 总 第1 0期 20 4
收 稿 日期 : 2 0 0 — 1 0 2— 7 1
基于 D T变 换的 数字 图像压 缩技 术及其 Malb实现 C t a
Di ia m a e Co pr s i n Te hn o y Ba e ic e e Co i e Tr ns or g t lI g m e s o c ol g s d on D s r t s n a f m
1 陈 粤初 . 片及 应用 系 统设 计 与实 践 .北 京 :北京 单
航 空航 天 大学 出版 社 ,1 9 92 2 何立 民.单 片机 应 用 系统设 计 .北 京 : 京航 空航 北
天 大 学 出 版 社 , 1 9 98
系统 的原理 构成 、软件 设计 、硬件 设 计 以及 系 统 调试 方法 的要 点 是 十分必 要 的 。根 据工 作 经验 ,前 面叙 述 的系 统调 试 方法将 会有 助 于 从事 这方 面工 作 的技 术人

基于DCT图像压缩及MATLAB实现

基于DCT图像压缩及MATLAB实现

大学本科生毕业设计(论文)基于DCT的图像压缩及MATLAB实现学院(系):专业班级:学生姓名:指导教师:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。

除了文中特别加以标注引用的内容外,本论文不包括任何其他个人或集体已经发表或撰写的成果作品。

本人完全意识到本声明的法律后果由本人承担。

作者签名:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保障、使用学位论文的规定,同意学校保留并向有关学位论文管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。

本人授权省级优秀学士论文评选机构将本学位论文的全部或部分内容编入有关数据进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

本学位论文属于1、保密囗,在年解密后适用本授权书2、不保密囗。

(请在以上相应方框内打“√”)作者签名:年月日导师签名:年月日本科生毕业设计(论文)任务书学生姓名:专业班级:指导教师:工作单位:设计(论文)题目:基于DCT的图像压缩及MATLAB实现设计(论文)主要内容:论文阐述DCT(离散余弦变换)的图像压缩基本理论,以及用MATLAB实现DCT 的图像压缩方法。

重点讨论基于DCT图像压缩的方法,并在MATLAB环境下进行仿真实验,与其他图像压缩方法进行比较,总结其优缺点以及基于DCT的图像压缩技术的现实意义。

要求完成的主要任务:1.掌握图像压缩的基本原理;2.掌握DCT基本原理;3.分析基于DCT的图像压缩编码理论;4.在MATLAB环境下,对基于DCT图像压缩进行仿真实验;5.总结基于DCT的图像压缩技术的现实意义;6.要求阅读相关的参考文献不少于15篇,其中英文文献不少于3篇,翻译与选题相关的英文参考文献不少于2万印刷符;7.按照学校的论文撰写规范,正确、按时的完成论文。

必读参考资料:1.《数字图像处理(第二版)》,冈萨雷斯著,阮秋琦译,电子工业出版社2.《数字图像处理与压缩编码技术》,黄贤武、王加俊、李宗华著,电子科技大学出版社3.《MATLAB及在电子信息课程中的应用(第3版)》,陈怀琛、吴大正、高西全著,电子工业出版社指导教师签名:系主任签名:院长签名(章)本科生毕业设计(论文)开题报告目录摘要.............................................................................................................................................................. I Abstract .......................................................................................................................................................... II 1 绪论. (1)1.1 图像压缩的必要性 (1)1.2离散傅里叶变换(DFT)与离散余弦变换(DCT)的比较 (3)2 图像压缩的基本原理 (4)2.1 图像压缩的基本思想 (4)2.2 图像压缩的基本原理模型 (4)3 DCT编码算法 (7)3.1 一维DCT (7)3.2 二维DCT (9)3.3 一维DCT快速算法 (10)4 DCT系数的量化 (16)5 MA TLAB实现 (19)5.1 MA TLAB语言的特点 (19)5.2 MA TLAB的功能 (19)5.3 离散余弦变换的MA TLAB实现 (20)6 图像压缩中DCT算法和其他算法的比较 (24)6.1 KLT和DCT两种算法的比较 (24)6.2 小波变换和DCT两种算法的比较 (25)6.3 算法比较总结 (27)7 利用DCT进行图像压缩的优缺点 (27)小结 (29)参考文献 (30)致谢 (31)摘要本文对DCT的算法原理进行了分析,利用二维DCT对图像进行压缩,并使用MATLAB软件进行压缩过程的仿真,之后将DCT和其他的压缩算法进行比较,总结其优缺点,所得结果具有重要的理论价值和现实意义。

MATLAB通过DCT对图像进行区域编码以及门限编码压缩

MATLAB通过DCT对图像进行区域编码以及门限编码压缩

实验作业7分别用区域编码和阈值编码方法实现图像压缩,用8×8DCT变换,保留50%的大系数,并对解码图像进行比较。

要求:DCT要自己实现,不能用matlab中的DCT函数区域编码程序代码:clear;I=imread('d:\3.jpg');I=double(rgb2gray(I));figure(1);imshow(uint8(I));title('原图像');Y=zeros(8,8);for i=1:8for j=1:8if i==1Y(i,j)=sqrt(1/8);elseY(i,j)=sqrt(2/8)*cos((pi*(2*(j-1)+1)*(i-1))/16);endendends=blkproc(I,[8 8],'P1*x*P2',Y,Y'); figure(2);imshow(uint8(s));for j=1:8for i=1:8if j<=8-i+1a(i,j)=1;elsea(i,j)=0;end;end;end;s=blkproc(s,[8 8],'P1.*x',a); figure(3);imshow(uint8(s));s=blkproc(s,[8 8],'P1*x*P2',Y',Y); figure(4);imshow(uint8(s));title('经过压缩处理的图像')运行结果:阈值编码程序代码clear;I=imread('d:\3.jpg'); I=rgb2gray(I); imshow(uint8(I)); title('原图像'); I=double(I); for i=1:8 for j=1:8 if (i==1)Y(i,j)=sqrt(1/8); elseY(i,j)=sqrt(2/8)*cos((i-1)*(2*j-1)*pi/(2*8)); end; end; end; s=blkproc(I,[8 8],'P1*x*P2',Y,Y'); a=ones(8,8); b=reshape(Y,1,64); midvalue=median(b); for i=1:8 for j=1:8if(abs(Y(i,j))<midvalue) a(i,j)=0; end; end; end;s=blkproc(s,[8 8],'P1.*x',a); s=blkproc(s,[8 8],'P1*x*P2',Y',Y); figure(2); imshow(uint8(s));title('被与之编码方式压缩的图像');运行结果:心得体会:由于第八章内容上课听的不是很明白,所以作业题拿到之后不知道怎么做,重新把第八章看了一遍,可是很多地方看了好久好多次还是不明白其原理,就像这次所涉及的DCT (虽然会做作业,但是实在是不理解),区域编码,门限编码,都是不明白什么意思!后来网上搜罗资料,看了颇久,请教了同学,才慢慢知道是什么一回事,做这题目的时候,遇到过不知道怎么分块的问题,后来也是同学告诉有个blkproc 的函数可以用,才使到程序精简化。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于DCT的图像压缩及其MATLAB实现覃凤清1,2(1.四川大学,四川成都610065;2.宜宾学院,四川宜宾644002)【摘要】文章在研究近年来图像压缩一般方法的基础上,介绍了基于DCT变换的图像压缩的基本原理及其实现步骤。

并使用MATLAB,针对不同量化步长对同一幅原始图像进行压缩,给出了实验仿真结果。

【关键词】图像压缩;离散余弦变换(DCT);量化;MATLAB【中图分类号】TP391.4【文献标识码】A【文章编号】1008-1151(2006)03-0091-02大众科技DAZHONGKEJI2006年第3期(总第89期)No.3,2006(CumulativelyNo.89)一、图像压缩的必要性与可能性进入21世纪,人类已步入信息社会,新信息技术革命使人类被日益增多的多媒体信息所包围,这也正好迎合了人类对要示提高视觉信息的需求。

多媒体信息主要有三种形式:文本、声音和图像。

从信息传输的发展史(电报、电话、传真、收音机、电视机直至现在的网络)可以看出,人们逐渐将信息传输的重点从声音转向图像,然而图像是三种信息形式中数据量最大的,这给图像的传输和存储带来了极大的困难。

例如,一幅640×480分辨率的24位真彩色图像的数据量约为900kb;一个100Mb的硬盘只能存储约l00幅静止图像画面。

对于如此巨大的数字图像数据量,如果不经过压缩,不仅超出了计算机的存储和处理能力,而且在现有的通信信道的传输速率下,是无法完成大量多媒体信息实时传输的,数字图像高速传输和存贮所需要的巨大容量已成为推广数字图像通信和最大障碍。

因此,为了存储、处理和传输这些数据,必须进行压缩。

图像压缩之所以能够进行压缩是因为原始图像数据是高度相关的,存在很大的数据冗余。

数字图像包含的冗余信息一般有以下几种:空间冗余、时间冗余、信息熵冗余、统计冗余、结构冗余、视觉冗余以及知识冗余等。

图像压缩算法就是要在保证图像一定的重建质量的同时,尽可能多的去除这些冗余信息,以达到对图像压缩的目的。

二、图像压缩基本原理及模型(一)图像压缩基本原理图像数据压缩的目的是在满足一定图像质量的条件下,用尽可能少的比特数来表示原始图像,以提高图像传输的效率和减少图像存储的容量,在信息论中称为信源编码。

图像压缩是通过删除图像数据中冗余的或者不必要的部分来减小图像数据量的技术,压缩过程就是编码过程,解压缩过程就是解码过程。

压缩技术分为无损压缩和有损压缩两大类,前者在解码时可以精确地恢复原图像,没有任何损失;后者在解码时只能近似原图像,不能无失真地恢复原图像。

假设有一个无记忆的信源,它产生的消息为{ai},1≤i≤N,其出现的概率是已知的,记为P(ai)。

则其信息量定义为:由此可见一个消息出现的可能性越小,其信息量就越多,其出现对信息的贡献量越大,反之亦然。

信源的平均信息量称为“熵”(entropy),可以表示为:对上式取以2为底的对数时,单位为比特(bits):根据香农(Shannon)无噪声编码定理,对于熵为H的信号源,对其进行无失真编码所可能达到的最低比特数为,这里为一任意小的正数,因此可能达到的最大压缩比为:其中B是原始图像的平均比特率。

在图像压缩中,压缩比是一个重要的衡量指标。

可以定义压缩比为:(二)图像压缩的基本模型图像编码包括两个阶段,前一个阶段就是利用预测模型或正交模型对图像信号进行变换;后一个阶段是利用已变换信号的统计特性,对其分配适当的代码来进行编码传输。

编码器与解码器的结构分别如图(a)、(b)。

在发送端,输入的原始图像首先经过DCT变换后,其低频分量都集中在左上角,高频分量分布在右下角(DCT变换实际上是空间域的低通滤波器)。

由于该低频分量包含了图像的主要信息,而高频分量与之相比就不那么重要了,所以可以忽略高频分量,从而达到压缩的目的。

将高频分量去掉就要用到量化,这是产生信息损失的根源。

“量化”的主要任务是用有限个离散电平来近似表达已抽取出的信息。

在此采用均匀量化,通过改变程序中的量化因子Q的值以得到不同压缩比的图像。

Huffman编码时,首先对经DCT变换及量化后的图像收据扫描一遍,计算出各种像素出现的概率;然后按概率的大小指定不同长度的唯一码字,由此得到一张Huffman表。

编码后的图像记录的是每个像素的码字,而码字与量化后像素值的对应关系记录在码表中。

生成的一维字符矩阵即为实际中要【收稿日期】2005-12-21【作者简介】覃凤清(1976-),女,四川南充人,四川大学通信与信息系统专业硕士研究生,宜宾学院讲师,研究方向:多媒体通信。

91--传输的序列,压缩后的图像数据在信道中进行传输。

在接收端,接收到的压缩图像数据首先经过Huffman译码,通过搜索已生成的Huffman表,根据码字与量化后像素值的对应关系,搜索出与码字对应的像素值,并转换为二维矩阵。

反量化时将以上二维矩阵中的每一个像素值乘以量化因子Q。

最后通过DCT反变换得到重建图像。

三、离散余弦变换(DCT)(一)DCT的定义DCT变换利用傅立叶变换的性质,采用图像边界褶翻将图像变换为偶函数形式,然后对图像进行二维傅立叶变换,变换后仅包含余弦项,所以称之为离散余弦变换。

二维离散余弦变换DCT(DiscreteCosineTransform)的定义为,假设矩阵A的大小为M×N,0≤p≤M-1,0≤q≤N-1其中,Bpq称为矩阵A的DCT系数。

在MATLAB中,矩阵的下标从1开始而不是从0开始的,所以MATLAB中的矩阵元素A(1,1)和B(1,1)分别对应于上面定义中的值A00和B00,依此类推。

DCT是一种可逆变换,离散反余弦变换定义如下:0≤m≤M-1,0≤n≤N-1上式的含义是任何M×N的矩阵A都可以表示为一系列具有下面形式的函数的和:0≤p≤M-1,0≤q≤N-1这些函数称为DCT变换的基函数。

这样,Bpq就可以看成是应用于每个基函数的加权。

(二)DCT和图像压缩DCT编码属于正交变换编码方式,用于去除图像数据的空间冗余。

变换编码就是将图像光强矩阵(时域信号)变换到系数空间(频域信号)上进行处理的方法。

在空间上具有强相关的信号,反映在频域上是在某些特定的区域内能量常常被集中在一起,或者是系数矩阵的分布具有某些规律。

我们可以利用这些规律在频域上减少量化比特数,达到压缩的目的。

图像经DCT变换以后,DCT系数之间的相关性已经很小,而且大部分能量集中在少数的系数上,因此,DCT变换在图像压缩中非常有用,是有损图像压缩国际标准JPEG的核心。

从原理上讲可以对整幅图像进行DCT变换,但由于图像各部位上细节的丰富程度不同,这种整体处理的方式效果不好。

为此,发送者首先将输入图像分解为8×8或16×16的块,然后再对每个图像块进行二维DCT变换,接着再对DCT系数进行量化、编码和传输;接收者通过对量化的DCT系数进行解码,并对每个图像块进行的二维DCT反变换,最后将操作完成后所有的块拼接起来构成一幅单一的图像。

对于一般的图像而言,大多数DCT系数值都接近于0,可以去掉这些系数而不会对重建图像的质量产生重大影响。

因此,利用DCT进行图像压缩确实可以节约大量的存储空间。

在实验中,先将输入的原始lena图像分为8×8的块,然后再对每个块进行二维DCT变换。

MATLAB图像处理工具箱中提供的二维DCT变换及DCT反变换函数如下。

1.dct2dct2实现图像的二维离散余弦变换,其语法格式为:(1)B=dct2(A)返回图像A的二维离散余弦变换值,其大小与A相同,且各元素为离散余弦变换的系数B(k1,k2)。

(2)B=dct2(A,m,n)或B=dct2(A,[m,n])如果m和n比图像A大,在对图像进行二维离散余弦变换之前,先将图像A补零至m×n。

如果m和n比图像A小,则进行变换之前,将图像A剪切。

2.idct2idct2可以实现图像的二维离散余弦反变换,其语法格式为:B=idct2(A);B=idct2(A,m,n)或B=idct2(A,[m,n])。

四、哈夫曼(Huffman)编码Huffman编码是一种熵编码方法,通过利用已变换信号的统计特性,给其分配高效代码来实现数据压缩,用于去除图像数据的统计冗余。

Huffman编码是一种长度不均匀的、平均码率可以接近信息源熵值的一种编码方法。

其编码基本思想是:对于出现概率大的信息采用较短的代码,对于出现概率小的信息采用较长的代码,每个数据的代码各不相同,这些代码都是二进制码,且码的长度是可变的。

编码后使得平均码长减小,以达到压缩目的。

Huffman编码的算法如下:1.首先统计出每个灰度出现的频率。

2.从左到右将上述频率按从小到大的顺序排列。

3.每一次选出频率最小的两个值,将它们相加,形成的新频率值与其它频率值形成一个新的频率集合。

4.重复步骤(3),直到最后得到频率和为1,形成一颗二叉树。

5.分配码字。

将形成的二叉树的左节点标1,右节点标0(反之亦可),把从最上面的根节点到最下面的叶子节点途中遇到的0、1序列串起来,这样就得到了符号的编码。

在计算Huffman表时需要对原始图像数据扫描两遍:第一遍要精确地统计出原始图像中每个灰度值出现的概率;第二遍是建立哈夫曼树并进行编码。

由于需要建立二叉树并遍历二叉树生成编码,因此数据压缩和还原速度都较慢。

但是该编码方法简单有效,而且编码效率相当高,因而得到了广泛应用。

五、MATLAB仿真效果原始图像重建图像1,Q=50重建图像2,Q=100图像大小256×256压缩比为6.1065压缩比为7.3944DCT具有算法简单,易于硬件实现等优点,从而广泛应用于图像压缩领域,尤其在较高比特率的传输条件下能取得令人满意的压缩效果。

然而,它在低比特率条件下的“方块效应”成了不容忽视的“瓶颈”缺陷。

原因就在于DCT处理的图像是分块进行的,块与块边界两边的像素相关性不能去掉,从而形成了明显的方块边界。

若将DCT变换与其它编码方法(如小波变换、分形等)相结合,会得到更好的效果。

【参考文献】[1]钟玉琢,冼伟铨,沈洪编著.多媒体技术基础及应用[M].清华大学出版社,2000.92--。

相关文档
最新文档