通信专业课程设计(论文)信源编码中压缩算法DCT变换函数的应用.doc

上传人:laozhun 文档编号:3994326 上传时间:2023-03-30 格式:DOC 页数:16 大小:621KB
返回 下载 相关 举报
通信专业课程设计(论文)信源编码中压缩算法DCT变换函数的应用.doc_第1页
第1页 / 共16页
通信专业课程设计(论文)信源编码中压缩算法DCT变换函数的应用.doc_第2页
第2页 / 共16页
通信专业课程设计(论文)信源编码中压缩算法DCT变换函数的应用.doc_第3页
第3页 / 共16页
通信专业课程设计(论文)信源编码中压缩算法DCT变换函数的应用.doc_第4页
第4页 / 共16页
通信专业课程设计(论文)信源编码中压缩算法DCT变换函数的应用.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《通信专业课程设计(论文)信源编码中压缩算法DCT变换函数的应用.doc》由会员分享,可在线阅读,更多相关《通信专业课程设计(论文)信源编码中压缩算法DCT变换函数的应用.doc(16页珍藏版)》请在三一办公上搜索。

1、通信专业课程设计一课 程 设 计(论 文)设计(论文)题目:信源编码中压缩算法DCT变换函数的研究姓 名_ _ 学 号_ _班 级_ _ 学 院_ _指导教师_ _ 年 月 日太原科技大学课程设计(论文)任务书学院(直属系): 时间: 年 月 日学 生 姓 名 指 导 教 师 设计(论文)题目信源编码中压缩算法DCT变换函数的研究主要研究内容用DCT变换实现图像压缩,先根据理论部分设计程序代码,然后再在Matlab软件中运行程序,并进行性能分析。研究方法主要运用实验法与观察法,通过编写程序实现对图像的DCT变换,观察图像结果进而实现对DCT变换的研究。主要技术指标(或研究目标)利用DCT变换编

2、码方法进行图像压缩,提高信息传输的有效性及通信质量。教研室意见教研室主任(专业负责人)签字: 年 月 日 目 录摘 要II第1章 绪论- 1 -第2章 DCT变换概述- 2 -2.1 DCT函数介绍- 2 -2.2 DCT变换介绍- 2 -2.2.1 DCT变换原理- 2 -2.2.2 DCT变换编码的步骤- 3 -2.2.3 实验部分- 4 -第3章 程序运行及结果分析.- 5 -3.1 程序代码- 5 -3.2 运行结果分析- 7 -第4章 结论- 11 -参考文献- 12 -信源编码中压缩算法DCT变换函数的应用摘 要图像压缩是关于用最少的数据量来表示尽可能多的原图像的信息的一个过程。对

3、于图像来说,如果需要进行快速或实时传输以及大量存储,就需要对图像数据进行压缩,在同等的用心容量下如果图像数据压缩后再传输,就可以传输更多的图像信息,也就可以增加通信的能力。变换编码是把图像中的各个像素从一种空间变换到另一种空间然后针对变换后的信号进行量化与编码操作的一种图象压缩编码技术。本实验实现的是用DCT变换实现图像压缩,先根据理论部分设计程序代码,然后再在Matlab软件中运行程序,然后进行相关的性能分析。在离散变换中,最佳变换也是K-L变换。其正交矢量系和变换矩阵可根据输入矢量各分量间的相关系数来求。最后,对设计结论进行了简单的总结。关键词:图象压缩 变换编码 DCT JPEG第1章

4、绪论离散余弦变换(DCT for Discrete Cosine Transform)是与傅里叶变换相关的一种变换,它类似于离散傅里叶变换(DFT for Discrete Fourier Transform),但是只使用实数。离散余弦变换相当于一个长度大概是它两倍的离散傅里叶变换,这个离散傅里叶变换是对一个实偶函数进行的(因为一个实偶函数的傅里叶变换仍然是一个实偶函数),在有些变形里面需要将输入或者输出的位置移动半个单位(DCT有8种标准类型,其中4种是常见的)。最常用的一种离散余弦变换的类型是下面给出的第二种类型,通常我们所说的离散余弦变换指的就是这种。它的逆,也就是下面给出的第三种类型,

5、通常相应的被称为反离散余弦变换,逆离散余弦变换或者IDCT。 有两个相关的变换,一个是离散正弦变换(DST for Discrete Sine Transform),它相当于一个长度大概是它两倍的实奇函数的离散傅里叶变换;另一个是改进的离散余弦变换(MDCT for Modified Discrete Cosine Transform),它相当于对交叠的数据进行离散余弦变换。改进的离散余弦变换(Modified Discrete Cosine Transform, MDCT)是一种与傅立叶变换相关的变换,以第四型离散余弦变换(DCT-IV)为基础,重叠性质如下:它是应用于处理较大的资料集合,当

6、连续的资料区块中,当前的资料区块跟后续的资料区块有重叠到的情形;即当前资料区块的后半段与下一个资料区块的前半段为重叠的状态。这样的重叠情形,除了具有离散余弦变换(Discrete Cosine Transform, DCT)的能量压缩特性外,也使这种变换在应用于信号压缩时更引人注目。因为它有助于避免由于资料区块边界所产生的多余资料。因此,这种变换可应用于MP3,AC-3, ogg vorbis,和AAC的音频压缩等方面。第2章 DCT变换概述2.1 DCT函数介绍常用的信源编码方法有算术编码、矢量量化、预测编码和变换编码等多种方法,变换编码就是经变换后的信号的样值能更有效地编码,也就是通过变换

7、来解除或减弱信源符号间的相关性,再将变换后的样值进行标量量化,或采用对于独立信源符号的编码方法,以达到压缩码率的目的。在实用中常用离散余弦变换(DCT),尤其是对视频图像信号,其统计特性接近一阶马尔可夫链,离散余弦变换的正交矢量近似于相应的K-L变换的正交矢量。余弦变换的完备正交归一函数是 (2-1) ,t (2-2)对这些函数在(0,T)内取N个样值,即得离散余弦变换矩阵的元为 (2-3) (2-4)分别可得变换和反变换的矩阵形式。2.2 DCT变换介绍2.2.1 DCT变换原理基于DCT(离散余弦变换)压缩编码算法是有失真的压缩编码,图2.1为DCT变换编码原理图。RGB/YUV编码量化D

8、CT原图像YVU/RGBIDCT解量化解码压缩图像图2.1 DCT变换编码原理图2.2.2 DCT变换编码的步骤DCT变换编码的主要步骤是:颜色空间转换,正向离散余弦变换(FDCT),量化,熵编码(哈达码编码和算术编码)。1) 颜色空间转换和采样JPEG压缩只支持Y颜色模式,其中Y代表亮度,代表色度,所以在将彩色图像进行数据压缩之前必须对颜色模式进行转换,将RGB模式转为Y模式。转换可通过计算下述公式完成:Y=0.299R+0.587G+0.114B (2-5)=-0.169R-0.331G+0.5B (2-6)=0.5R-0.4187G-0.0813B (2-7)对转换后的数据进行采样,采样

9、比例一般是4:2:2或4:1:1。经过采样后的图像数据的色度数据比原来减少了一半。选择这样的采样方式是因为人的视觉对亮度要比对色度更敏感,而重建后的图像与原图的差异是人的视觉所不易察觉到的。2)DCT变换在进行DCT变换之前,先把图像分成88的子块。将用P位表示的图像数据(一般用8位表示一个像素的颜色分量),即在0,范围内表示的无符号整数,变成范围内表示的有符号数,作为DCT变换的输入量。经过DCT变换,将空域中表示的图像数据转换到频域中进行表示,并获得N个变换系数。变换公式为 (2-8)逆DCT变换公式为 (2-9)其中, 其他输出系数排列按Zig-zag排序,其中直流量为DC系数,交流量为

10、AC系数。排列中越往后0越多。3)量化为了达到进一步压缩数据的目的,需要对DCT系数进行量化。在JPEG中采用了线性均匀量化器,为减少比较数,增加零值,JPEG分别对Y,U,V的不同系统有不同量化间隔Q(u,v),并提供了亮度与色度两张量化表。4)熵编码根据信息论的原理,可以找到最佳数据压缩编码的方法,数据压缩的理论极限是信息熵。如果要求编码过程中不丢失信息量,即要求保存信息熵,这种信息保持编码叫熵编码,是根据消息出现概率的分布特性而进行的,是无损数据压缩编码。根据输入熵编码器表格的符号节点的加权值和与其相邻的其它节点的加权值对哈夫曼树进行有效的变换,从而提高压缩效率;利用八字形树旋转和准旋转

11、对哈夫曼树进行有效的变换,从而使输入符号的加权值具有与现在输入的视频数据最合适的值,缩短变换表格的时间。可以查看相关的码表进行熵编码。2.4 实验部分本实验实现的是用DCT变换实现图像压缩,先根据理论部分设计程序代码,然后再在Matlab软件中运行程序,在离散变换中,最佳变换也是K-L变换。其正交矢量系和变换矩阵可根据输入矢量各分量间的相关系数来求,而不用解积分方程,即只需要相关矩阵的特征值和特征矢量。容易验证经过K-L变换后的输出矢量的相关系数为零,即能完全解除输出矢量间的线性相关性,且各分量的方差就是各特征值,它们各不相等,下降很快。这样在实际编码时,就可以根据压缩编码的要求,不传送方差很

12、小的那些分量,提高传输速率。还有很多离散变换,如正反变换矩阵都相同的离散哈尔变换和离散沃尔什变换;广泛用于电视信号编码的斜变换和多重变换;小波变换等。在实际应用中,需要根据信源特性来选择变换方法以达到解除相关性、压缩码率的目的。当信源的统计特性很难确知时,可用各种变换分别对信源进行变换编码,然后用实验或计算机仿真来计算这些参数。第3章 程序调试及运行结果分析3.1 程序代码I=imread(cameraman.tif)I=im2double(I) %转换图像矩阵为双精度型。J=dct2(I);T=dctmtx(8) %产生二维DCT变换矩阵a1=16 11 10 16 24 40 51 61;

13、 12 12 14 19 26 58 60 55; 14 13 16 24 40 57 69 56; 14 17 22 29 51 87 80 62; 18 22 37 56 68 109 103 77; 24 35 55 64 81 104 113 92; 49 64 78 87 103 121 120 101; 72 92 95 98 112 100 103 99 ;for i=1:8:200 for j=1:8:200 P=I(i:i+7,j:j+7); K=T*P*T; I2(i:i+7,j:j+7)=K; K=K./a1; %量化 K(abs(K)0.03)=0; I3(i:i+7,

14、j:j+7)=K; endendfigure;imshow(I2);title(DCT变换后的频域图像); %显示DCT变换后的频域图像for i=1:8:200 for j=1:8:200 P=I3(i:i+7,j:j+7).*a1; %反量化 K=T*P*T; I4(i:i+7,j:j+7)=K; endendfigure;imshow(I4);title(复原图像);B=blkproc(I,8,8,P1*x*P2,T,T) %计算二维DCT,矩阵T及其转置是DCT函数P1*X*P2的参数 mask=1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0

15、 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 %二值掩模,用来压缩DCT系数,只留下DCT系数中左上角的10个B2=blkproc(B,8 8,P1.*x,mask) %只保留DCT变换的10个系数I2=blkproc(B2,8 8,P1*x*P2,T,T) %重构图像figureimshow(I)title(原始图像);figureimshow(I2);title(压缩图像);figureimshow(J);figuremesh(J) %画出J的立体网状图colorbar(

16、horiz) %在水平条方向用不同的颜色表示曲面的高度3.2 运行结果分析执行程序产生的二维DCT变换矩阵T如下:T = 0.3536 0.3536 0.3536 0.3536 0.3536 0.3536 0.3536 0.3536 0.4904 0.4157 0.2778 0.0975 -0.0975 -0.2778 -0.4157 -0.4904 0.4619 0.1913 -0.1913 -0.4619 -0.4619 -0.1913 0.1913 0.4619 0.4157 -0.0975 -0.4904 -0.2778 0.2778 0.4904 0.0975 -0.4157 0.3

17、536 -0.3536 -0.3536 0.3536 0.3536 -0.3536 -0.3536 0.3536 0.2778 -0.4904 0.0975 0.4157 -0.4157 -0.0975 0.4904 -0.2778 0.1913 -0.4619 0.4619 -0.1913 -0.1913 0.4619 -0.4619 0.19130.0975 -0.2778 0.4157 -0.4904 0.4904 -0.4157 0.2778 -0.0975图3.1 cameraman的原始图像图3.2 DCT变换后的频域图像分析:通过矩阵a1只对图像左上角的一部分进行了DCT变换后的

18、频域处理。图3.3 复原图像分析:对图3.2左上角变换后的频域图像进行反量化得到复原图像,因此复原图像就只有原图像的左上角一部分。图3.4 压缩图像分析:只保留DCT变换的10个系数,运用逆DCT变换,对图像进行重构,从而得到原图像的压缩图像。图3.5 二维离散余弦变换图像分析:直接运用函数dct2对原图像进行二维离散余弦变换。图3.6 二维离散余弦变换的立体网状图分析:在图中的最下面一行表示在水平条方向用不同的颜色表示曲面的高度,根据图3.5显示的二维离散余弦变换图像知在图像的左上角曲面的高度有所不同,因此在图像左上角部分的立体网状图呈现出图3.6的情况。第4章 结论本次的课程设计是Matl

19、ab语言的实现,目的是掌握Matlab语言在工程设计中的基本应用。Matlab语言的应用是非常广泛的,就本次学习过程中,首先从基本的语言语法入手,然后再逐渐深入。在本次课程设计中,我选择的比较接近自己专业应用范围,也是大学学过的信息论与编码中信源编码压缩算法DCT函数变换应用的设计。好能让自己更好的掌握专业知识和Matlab语言在通信专业中的应用。就语言本身而言,在老师的指导下,很快入了门。和学过的其它像C语言一样,Matlab语言相对简单,但是应用程度上,此语言非常广泛,在学习时主要研究某一方面会很快喜欢上这个语言。在这次实验设计中,滤波器的设计方法选择上,要根据实际的心电图高频干扰去分析所

20、要设计的数字滤波器的指标,在慢慢去设计做。在具体的设计过程中,也遇到了很多问题。虽然此次课程设计是一个人完成,但从以前做了许多设计中,感受到集体的力量是很大的。所以就去请教了很多同学,在加上自己的勤奋查阅相关资料,就得到了实验所要达到的预期结果。从这次设计中,我感觉现在有许多专业基础课的知识需要很好的掌握才能彻底理解了此方法的含义,认真对待才能很顺利的去完成这次设计。在实验设计中,要不断的去看课本,查阅资料,才能运用。总之感觉到只有认真的去学习每一门专业课,才能在做出综合较强的设计。总体感觉,要想做好一次设计,首先有一个认真对待的心态,然后去勤奋的查阅,虚心的请教别人,最后在总结自己的专业知识收获和心得收获。参考文献1 曹雪虹,张宗橙.信息论与编码.第2版.北京:清华大学出版社.2009 :18-252 郭文强,侯勇严.数字图像处理.西安:西安电子科技大学出版社,2009:6-123 关可,王建新.信息论与编码技术.北京: 清华大学出版社,2009:35-38

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号