通信工程毕业设计(论文)-数字图像压缩编码方法的研究.doc

上传人:小小飞 文档编号:3293554 上传时间:2019-08-08 格式:DOC 页数:23 大小:1.64MB
返回 下载 相关 举报
通信工程毕业设计(论文)-数字图像压缩编码方法的研究.doc_第1页
第1页 / 共23页
通信工程毕业设计(论文)-数字图像压缩编码方法的研究.doc_第2页
第2页 / 共23页
通信工程毕业设计(论文)-数字图像压缩编码方法的研究.doc_第3页
第3页 / 共23页
通信工程毕业设计(论文)-数字图像压缩编码方法的研究.doc_第4页
第4页 / 共23页
通信工程毕业设计(论文)-数字图像压缩编码方法的研究.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《通信工程毕业设计(论文)-数字图像压缩编码方法的研究.doc》由会员分享,可在线阅读,更多相关《通信工程毕业设计(论文)-数字图像压缩编码方法的研究.doc(23页珍藏版)》请在三一文库上搜索。

1、本本 科科 生生 毕毕 业业 设设 计计 论论 文文 数字数字图图像像压缩编码压缩编码方法的研究方法的研究 院院 系:系: 电电子信息工程学系子信息工程学系 专专 业业: : 通信工程通信工程 班班 级级: : 学学 号:号: 指指导导教教师师: : 职职称(或学位):称(或学位): 讲师讲师 2011 年年 04 月月 原创性声明 本人郑重声明:所呈交的论文(设计),是本人在导师的指导下,独立 进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文(设 计)不含任何其他个人或集体已经发表或撰写过的作品成果。对本论文 (设计)的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。 本

2、人完全意识到本声明的法律结果由本人承担。 学生签名: 年 月 日 指导声明 本人指导的 同学的毕业论文(设计)题目大小、难度 适当,且符合该同学所学专业的培养目标的要求。本人在指导过程 中,通过网上文献搜索及文献比对等方式,对其毕业论文(设计)内 容进行了检查,未发现抄袭现象,特此声明。 指导教师签名: 年 月 日 目 录 1 绪论.2 1.1 引言2 1.2 数字图像压缩编码的分类2 1.3 图像压缩技术的性能指标2 1.4 研究内容3 2 无损压缩编码的研究和实现.3 2.1 行程编码3 2.2 哈弗曼编码5 2.3 线性预测编码6 3 有损压缩编码研究和实现.7 3.1 基于 DCT 的

3、图像压缩编码8 3.2 基于哈达玛变换(HT)的图像压缩编码.10 3.3 小波编码12 4 JPEG 部分压缩算法的研究和实现14 5 总体设计.15 6 结论.17 致 谢.18 参考文献.18 附录.19 1 数字图像压缩编码方法的研究 (电子信息工程学系 指导教师:XXX) 摘要:随着各种技术地不断发展,数字图像的数据压缩在数字图像传输中发挥着关键性的作 用。将数字图像编码分为有损压缩和无损压缩两类。设计以 matlab 为仿真工具,利用图像信息 源不均匀的概率分布来去掉图像的冗余,并用变长编码来对信源进行无损压缩编码。而利用数 字图像在空间和时间上的相关性,运用某种变换去掉其相关性对

4、信源进行有损压缩编码。利 用 DCT 变换和 huffman 编码对图像的信源进行 JEPG 编码。同时为了将各种压缩方法运用于 教学和锻炼编程能力,设计了以 matlab 为仿真工具的 GUI 界面。仿真结果表明,采用以上方法 可以很好的研究和比较各种压缩方法。 关键词:数字图像; 压缩编码; 有损压缩; 无损压缩; JPEG 压缩 Abstract: With the development of various technologies, data compression plays a key role in digital image transmission. Digital im

5、age coding has two types: lossy compression and lossless compression. MATLAB is used as simulation tool, next image sources uneven probability distribution is used to remove the image redundancy and variable length coding is used to make the source achieve a lossless compression coding. According to

6、 the correlation between space and time of digital image, A certain transformation is used to remove the relevance of signal source thus the lossy coding is carried on. DCT transformation and Huffman coding is used to have JEPG coding with image source. Also, to apply all sorts of compression method

7、s to teaching and exercise programming ability, matlab simulation tool is used to design a GUI. Simulation results show that using the methods above can help study and compare various compression methods very well. Keywords: digital image; compression coding; lossy image compression; JPEG Compressio

8、n; wavelet image coding 1 绪论 2 1.1 引言 随着各种现代化技术的不断发展,图像信息已变为众多领域重要的处理对象,怎样充分利用信道 和具有一定带宽的信道下传输有用的图像信息的问题就出现了。对原始图像进行存储、记录和传输为 其提供了可能,那么必须对数字图像的信息进行有效的压缩。因此,对图像压缩技术的研究和实现在 数字图像传输中发挥着关键性的作用。 1.2 数字图像压缩编码的分类 为了方便对各种压缩方法的研究和比较,根据图像的信息在编码中是否有损失将数字图像编码分 为有损压缩和无损压缩1。分类如图 1 所示: 图像压缩 有损压缩 无损压缩 行程编码( LER) 哈弗曼

9、编码( uffmanh) 线性预测编码( PCMD) 基于 FT换的图像压缩编码F变 基于 CT换的图像压缩编码D变 基于 T换的图像压缩编码H 变 图 1 图像压缩的分类图 无损压缩就是主要是利用信源概率不相等的特性来去掉图像的冗余以及用不等长的码字来对信源 进行编码。 有些失真是人眼所不能察觉的,有损压缩就是利用人眼的这一视觉特性来进行压缩的。有损压缩 是运用某种变换去掉数字图像在空间和时间上的相关性对信源进行编码。 为了解决如何从各种图像压缩算法中选择正确的算法处理实际的压缩问题,就必须对各种压缩方 法的性能进行评价。 1.3 图像压缩技术的性能指标 这里主要用均方根误差和压缩比的大小来

10、比较各种压缩编码方法的性能。也可用编码效率、平均 码字长度、冗余度。 (1)均方根误差 erms 主要是通过计算原始图像数据和解码后图像数据之间的差异,来体现经压 缩编码方法的准确性,其计算公式如(1)如下: (1) 1/2 2 i=1 j=1 1 erms=( , )( , ) nm I i jI i j nm 其中,和分别表示原始图像和解码后的图像。(i=1,2,3,4,N,j=1,2,3,4,M)( , )I i j( , )I i j (2)压缩比 cr:其计算式如公式(2)所示: (2) 12 crn n 用其大小来反映压缩编码方法的压缩效果。其中,(压缩后图像数据大小)小于(压缩后

11、图像数 1 n 2 n 据大小)的压缩编码方法才是有意义的,则 cr 要小于 1。 3 1.4 研究内容 这里主要是对有损压缩和无损压缩编码方法进行分类研究。并设计以 matlab 为仿真工具,利用信 源概率不相等的特性来去掉图像的冗余以及用不等长的码字来对信源进行无损压缩编码。而运用某种 变换去掉数字图像在空间和时间上的相关性对信源进行有损压缩编码。利用 DCT 变换和 huffman 编码 对图像进行 JEPG 编码。在仿真软件 matlab 中用相应的函数计算均方根误差 erms、原始图像数据大小 和压缩后数据大小,通过利用公式计算 cr 以便衡量压缩编码的性能。将各种数据绘 2 n 1

12、 n 12 crn n 制成表格加以比较,总结出不同图像所适合的压缩编码。为了将各种压缩编码的方法应用于教学和锻 炼自己对 GUI 的认识及编程能力,又创建了一个 GUI 界面将各种压缩编码的实现集合此。 2 无损压缩编码的研究和实现 2.1 行程编码 RLE(Run Length Encoding) 行程是指具有相同灰度值的像素序列,其编码思想就是去除掉像素空间冗余,即用行程的行程和 灰度的长度来替换行程本身2。例如:编码前:hhhhhbbmmmmmm 编码后:h5b2m6 行程编码如图 2 所示: 图 2 行程编码系统图 对于行程编码的研究,这里选用大小为像素、灰度级为 256 的 cam

13、eraman 图像,对其256 256 进行行程编码来实现图像压缩的目的。其中采用 RLEncode 函数对图像进行压缩,而用 RLEdecode 函 数对压缩图像进行复原。显示原始图像和解压后的图像、用 size 函数计算的原始图像数据和压缩后 2 n 数据大小、均方根误差 erms,通过利用公式计算 cr。 1 n 12 crn n 对大小为像素、灰度级为 256 的 cameraman 图像进行行程编解码结果如图 3 所示,在256 256 其编码的程序中,添加 display(e)语句使其显示 cameraman 图像的压缩编码,可得部分编码如下: (1 150),(1 153),(1

14、 152),(1 151),(1 150),(1 151),(1 156),(1 154),(2 151),(1 149),(1 154),(1 152),(1 153),(1 152),(3 149),(2 151) 此处是对灰度图进行行程编码的,由于灰度图的灰度值不像二值化图像只有 0 和 1,而 cameraman 图像没有白色的部分就没有灰度值为 0,则其编码中含除了 1 以外的灰度值。 其编解码结果如图 3 所示 4 图 3 cameraman 图像进行行程编码结果图 由图 3 可得:=112224,=65536,则压缩比 cr=1.7127。 1 n 2 n 12 n n 对大小为

15、像素、灰度级为 256 的 cameraman 图像先进行黑白二值化再行程编解码结果256 256 如图 4 所示,在其编码的程序中,添加 display(e)语句使其显示二值化 cameraman 的压缩编码,可得部 分编码如下: (1 158),( 0 8),( 1 2),( 0 1),(1 1),( 0 3),(1 1),(0 1),( 1 2),( 0 1),( 1 40),( 0 1),( 1 14),( 0 1),( 1 12),( 0 1) 此处是将灰度图转换为黑白二值化图像再进行行程编码的,由于黑白二值化的灰度值只有 0 和 1, ,则其编码只含有 0 和 1 的灰度值。 图

16、4 黑白二值化 cameraman 图像进行行程编码结果图 由图 4 可得:=6802,=65536,则压缩比 cr=0.10379。 1 n 2 n 12 n n 为了方便比较两种行程编码,将以上两种结果的数据列在表 1 中,表 1 如下所示: 表 1 对灰度图像和二值化图像进行行程编码结果的数据比较表 图像原始图像数据大小压缩后数据大小均方根误差 erms压缩比 cr 灰度图6553611222401.7124 二值化图像65536680200.10379 由表 1 可以明显看出:均方根误差 erms =0,则行程编码是一种无损压缩编码。对灰度图像进行行 5 程编码后图像的大小与原始图像大

17、小相比,其需要更大的存储空间,没不到压缩图像的目的。而对二 值化图像进行行程编码后图像的大小比原始图像小将近 10 倍,这样更有利于图像的存储和传输。则说 明行程编码更适合于二值化图像和那些连续出现灰度级相同的图像。 2.2 哈弗曼编码(Huffman) 哈弗曼(Huffman)编码步骤可概括为大到小排列、相加(到只有一个信源符号为止) 、赋码字、 得 huffman 编码,以上均是对于信源符号概率而言的。 Huffman 编码,这里选用大小为像素、灰度级为 256 的 coin 图像,对其进行 huffman256 256 编码来实现图像压缩的目的。其中采用 huffncode 函数对图像进

18、行压缩,而用 huffdecode 函数对压缩 图像进行复原,显示原始图像和解压后的图像、用 size 函数计算的原始图像数据和压缩后数据大小 2 n 、均方根误差 erms,通过利用公式计算 cr。 1 n 12 crn n 对大小为像素、灰度级为 256 的 boat 图像进行 huffman 编解码可得 5 个概率最大的灰256 256 度值及其概率大小:M1(145,0.0213), M2(144,0.0209), M3(147,0.0208), M4(146,0.0207), M5(149,0.0195),用其对 huffman 编码的步骤进行说明,其编码过程如图 5 所示: M1

19、0.0213 M2 0.0209 M3 0.0208 M4 0.0207 M5 0.0195 1 0 0.0615 0.0415 1 0 1 0 0.0402 0.0402 0.103 1 0 图 5 huffman 编码过程图 由图 5 可得:经过 huffman 编码后信源 M1、M2、M3、M4、M5 的码字分别为: 01、10、00、111、011。由经过编码的码字可得到 huffman 编码的特点:用短的码字对概率大的信源 进行编码,而用较长的码字对概率小的信源进行编码。 其运行结果如图 6 所示: 图 6 对 boat 图像进行 huffman 编解码结果图 由图 6 可得:=58

20、986,=65536,则压缩比 cr=0.90005。 1 n 2 n 12 n n 由 huffman 编解码的运行结果数据可得表 2 如下所示: 表 2 对 boat 图像进行 huffman 编解码结果数据表 6 编码原始图像数据大小压缩后数据大小均方根误差 erms=压缩比 cr Huffman 编码655365898600.90005 由上表可得:均方根误差 erms =0,则 huffman 编码为无损压缩编码。对 boat 进行 huffman 编码后 的图像大小与原始图像差不多,其压缩比接近于 1,则 huffman 编码对图像没有很好的压缩效果。如 信源 M1、M2、M3、M

21、4、M5 经过 huffman 编码的码字分别为:01、10、00、111、011,是由近似的 整数来对其进行编码的,没有达到预期的效果。 2.3 线性预测编码(DPCM,Different Pulse Code Modulation) 差值脉冲编码调制(Different Pulse Code Modulation) ,即线性预测编码(DPCM)是对图像的预 测误差进行编码的一种无损压缩编码。预测误差是当前信号的实际值和根据前面的信号对当前信号进 行预测得到的预测值的之差。其编解码系统如图 7 所示: 输入图像 预测编码最接近取整 符号编码器 压缩图像 压缩图像 符号解码器 预测器 解码图像

22、 + - + + ( )编码器a ( )解码器b 图 7 线性预测编码编解码系统图 线性预测编码,这里选用大小为像素、灰度级为 256 的 yun 图像,对其进行行程编码来128 128 实现图像压缩的目的。其中采用 LPCencode 函数对图像进行压缩,而用 LPCdecode 函数对压缩图像进 行复原,用 size 函数计算的原始图像数据和压缩后数据大小、均方根误差 erms 并在静态文本框中显示 出来。由于线性预测编码是对图像的预测误差进行编码的一种无损压缩编码,也通过显示原始图像和 预测误差的直方图,来反映经过预测编码去除图像冗余的情况。 对大小为像素、灰度级为 256 的 yun

23、图像进行 DPCM 编码的运行结果如图 8、9 所示:128 128 图 8 对 circuit 图像进行 DPCM 编解码结果图 7 图 9 原始图像和预测误差直方图 由图 8 可得:均方根误差 erms =0,则线性预测编码是对图像的预测误差进行编码的一种无损压缩 编码。由图 9 可得:预测误差的概率分布在零处的峰值很大,则线性预测编码通过预测和差分消除了 大量像素间的冗余。 将以上几种无损压缩编码方法运行结果数据汇总在表 3 中进行比较,表 3 如下所示: 表 3 无损压缩编码比较表 图像编码原始数据大小压缩后数据大小均方根误差 erms压缩比 cr 灰度图6553611222401.7

24、124 二值化图像 灰度图 灰度图 RLE RLE Huffma n DPCM 65536 65536 16384 6802 58986 16384 0 0 0 0.10379 0.90005 由于线性预测编码是对预测误差进行编码的,其要与 RLE 和 huffman 编码比较得通过预测误差直 方图的概率分布来进行。由表 3 可得:要对黑白二值化图像进行编码,最好选择 RLE 编码。而对于灰 度图,进行 RLE 编码后图像数据(112224)比原始数据(65536)大很多;进行 huffman 编码后的图 像大小与原始图像差不多,均没达到好的压缩效果;进行线性预测编码其预测误差的概率分布在零处

25、 的峰值很大,说明消去了很多的冗余。因此,灰度图像要进行无损压缩编码,最好的选择是进行线性 预测编码。 3 有损压缩编码研究和实现 有损压缩主要是对变换编码进行研究的。变换编码是一种基于某种变换的编码方法,其只对变换 域上有用的低频信息进行量化、编码、传输,而丢弃那些没用的高频分量。 变换编码是先将图像分割为个子图像再分别进行变换、量化和编码处理,而非一次性对图像n n 进行变换和编码。其编解码系统如图 10 所示: 交 交 交 交 交 交 交 交交 交 交 交交 交 交 交交 交 交 交 交 交交 交 交 交 交交 交 交交 交 交 交 交 交 交 交 交 交 交 交 交 图 10 变换编码

26、编解码系统图 8 3.1 基于 DCT 的图像压缩编码 由于在空间域里进行 DCT 变换编码比在变换域里较复杂,因此 DCT 变换编码选择在变换域里进 行。经过 DCT 变换后信号的能量积聚到少量的系数上,使其图像的相关性下降了和抗干扰能力增加了, 更利于压缩图像的传输。因而,被图像压缩领域广泛的运用。 关于基于 DCT 的图像压缩编码的实现,这里选用大小为像素、灰度级为 256 的 lena 图256 256 像,对其进行 DCT 变换来实现图像压缩的目的。编写 matlab 程序时,先用 blkproc 和 dctmtx(8) 函数 对图像进行分割为 个大小为的子图像进行 DCT,则每一个

27、子图像中均有 64 个的傅里 2 256 8 8 8 叶系数。再量化,用 im2col 函数将的图像块排列成向量,根据设置的压缩比 cr 确定要变零的系8 8 数个数 snum 并将最小的 snum 个变化系数设置为 0。接着用 col2im 函数将向量重新排列成图像块以便 图像的复原,最后用 blkproc 和 dctmtx(8) 函数对新的图像块进行逆 DCT 变换来恢复图像和计算均方 根误差 erms 来体现 DCT 的信息集中能力。其编解码系统如图 11 所示: 原始图像DCT换变 除以量 矩阵化 取整 压缩图像 压缩图像 DCT变换逆 取整解压图像 (a) 码过程编 ( )解码过程b

28、 图 11 DCT 变换编解码系统图 设置压缩比 cr=0.5,即对大小为像素、灰度级为 256 的 lena 图像进行 2:1 的 DCT 压缩,256 256 截取一子图像8,8数据分析其编码,截取的数据如下: 由上可得:全部负数是当中最小的 32 个变换系数。 经过量化编码后的数据如下: 由上可得:量化编码将 64 个变换系数中最小的 32 个变换系数变 0,而保留 32 个比较大的变换系 数。 9 其运行结果如图 12 所示: 图 12 进行压缩比为 0.5 的 DCT 变换编解码运行结果图 设置压缩比 cr=0.125,即对大小为像素、灰度级为 256 的 lena 图像进行 8:1

29、 的 DCT 压256 256 缩,截取一子图像8,8数据分析其编码,截取的数据如下: 由上可得:5.0838,0.0230,0.0018,0.0453,0.0222,0.0019,0.0015,0.0019 是 8 个比较大的变换系数。 经过量化编码的数据如下: 由上可得:量化编码将 64 个变换系数中最小的 56 个变换系数变 0,而保留 8 个比较大的变换系 数。 10 其运行结果如图 13 所示: 图 13 进行压缩比为 0.125 的 DCT 变换编解码运行结果图 3.2 基于哈达玛变换(HT)的图像压缩编码 哈达玛变换矩阵有三个优点3: 只含+1 和-1; 任意两行或两列对应元素相

30、乘后相加为 0,即正交; 变换核矩阵使高阶矩阵可通过低阶矩阵来获得。 关于基于哈达玛变换的图像压缩编码的实现,在 matlab7.0 中没有产生哈达玛矩阵的函数 hadamard,因此就得编写一个产生哈达玛矩阵的函数 hadamard。 这里选用大小为像素、灰度级为 256 的 lena 图像,对其进行哈达玛变换来实现图像压256 256 缩的目的。编写 matlab 程序时,先用 blkproc 和 hadamard 函数对图像进行分割为 个大小为 2 256 8 的子图像进行哈达玛变换,则每一个子图像中均有 64 个的傅里叶系数,再用 im2col 函数将8 8 的图像块排列成向量,根据设

31、置的压缩比 cr 确定要变零的系数个数 snum 并将最小的 snum 个变8 8 化系数设置为 0,接着要 col2im 函数将向量重新排列成图像块以便图像的复原,最后用 blkproc 和 hadamard 函数对新的图像块进行逆哈达玛变换来恢复图像和计算均方根误差 erms 来体现哈达玛变换 的信息集中能力。其编解码系统如图 14 所示: 原始图像 哈达玛变换 除以量 矩阵化 取整 压缩图像 压缩图像 哈达玛逆变换 取整解压图像 (a) 码过程编 ( )解码过程b 图 14 Hadamard 变换编解码系统图 设置压缩比 cr=0.5 对大小为像素、灰度级为 256 的 lenan 图像

32、进行 2:1 的哈达玛变换压256 256 11 缩,截取一子图像8,8数据分析其编码,截取的数据如下: 经过量化编码的数据如下: 由上可得:经过量化编码将 64 个变换系数中最小的 32 个变换系数变 0,而保留 32 个比较大的变 换系数。其运行结果如图 15 示: 图 15 进行压缩比为 0.5 的哈达玛变换编解码运行结果图 设置压缩比 cr=0.125 对大小为像素、灰度级为 256 的 lena 图像进行 8:1 的哈达玛变换256 256 压缩,截取一子图像8,8数据分析其编码,截取的数据如下: 12 经过量化编码的数据如下: 由上可得:经过量化编码将 64 个变换系数中最小的 5

33、6 个变换系数变 0,而保留 8 个比较大的变 换系数。其运行结果如图 16 所示: 图 16 进行压缩比为 0.125 的哈达玛变换编解码运行结果图 为了方便比较以上两种变换编码集中能量的能力,两种变换均是对大小为像素、灰度256 256 级为 256 的 lena 图像进行处理。将以上两种变换编码结果制作为一张表,表 4 如下所示: 表 4 三种变换编码结果汇总表 压缩比 cr=变换编码原始图像数据大小:压缩后数据大小:均方根误差 erms= 基于 DCT 的变换编码65536327680.0473190.5 0.5基于 HT 的变换编码65536327680.045209 0.125 0

34、.125 基于 DCT 的变换编码 基于 HT 的变换编码 65536 65536 8192 8192 0.055019 0.055239 由表 4 可得:在压缩比相同的情况下(即丢弃的系数个数相同),DCT 的均方根误差 erms 相对 比较小,也就是 DCT 比 HT 有更强的信息集中能力。在压缩比为 0.5 的情况下,两种变换的均方根误 差均比压缩比为 0.125 的小,也就是压缩比越大其集中信息的能力越强。这是因为图像的有用信息低 频信息大多在变换域的左上角,变换编码只对该区域的变换进行量化、编码、传输,而丢弃那些没用 的高频分量。 3.3 小波编码 小波变换利用对信号的局域的性质进行

35、分析来提取信号的有用信息,这样可以解决一些傅里叶 (Fourier)变换不能解决的问题4。例如:傅里叶(Fourier)变换的局限性。 13 这里采用直接阈值的小波编码法,其是省略小于某一阈值的系数而留下那些有大能量的系数,以 达到压缩图像的效果。有多种方法可以得到阈值,既可以通过直接赋值,也可以通过函数来产生。这 里用 wdcbm2 函数来求阈值。其编解码系统如图 17 所示: 原始图像加噪图像 得到 aar 的滤波器 h相 关 计算阈值 去噪和压缩图像 重构图像 进行小波分解 恢复图像 图 17 直接阈值编码法的编解码系统图 在这种方法中用 imnoise 函数对图像信号进行加噪,用 wf

36、ilters 函数得到 haar 滤波器的分解和重构 的滤波器,用 wavedec2 函数和得到的分解滤波器对加噪信号进行 2 层二维的小波分解并得到分解结构 c,s,用 wdcbm2 函数得到阈值和保留的系数,用 wdencmp 对图像进行重构。用 size 函数计算的原始 图像数据和压缩后数据大小、均方根误差 erms,通过利用公式计算 cr。这里是用不 2 n 1 n 12 crn n 同的阈值对各个子图像的小波系数进行舍取处理。 对 lena 图像(大小为像素、灰度级为 256)进行 2 层二维小波编解码结果如图 18 所示:256 256 图 18 直接阈值的小波编码法运行结果图 由

37、图 18 可得:=218,=65536,则压缩比 cr=0.00332641,由此数据可得小波编码有 1 n 2 n 12 n n 很大的压缩比。 将基于 DCT 的变换编码与小波编码进行比较总结出小波编码的优点,表 5 如下所示: 表 5 FFT 和小波编码运行结果比较表 编码原始图像数据大小: 压缩后数据大小: 均方根误 erms=压缩比 cr= 基于 DCT 的变换编码65536327680.0473190.5 基于 DCT 的变换编码6553681920.0550190.125 小波编码65536613.31310.00332641 由上表可得:与 DCT 相比,小波编码有更高的压缩比

38、,因为小波编码去除了所有的相关性,这是 14 DCT 所不能达到的。虽然小波编码的均方根误差比 DCT 高很多,但是小波编码是去除那些能量比较 小的系数,而将那些高能量的系数保留下来,小能量的系数对图像恢复没有多大的影响。 4 JPEG 部分压缩算法的研究和实现 融合了 DCT,Huffman 压缩编码方法和有高压缩比 cr 的 JPEG 是一种有损/无损压缩方法5,其是 联合图像专家组(Joint Photographic Expert Group)的简称6。其编解码方框图如图 19 所示: 原始图像 DCT换变 恢复图像 量化 Huffman码编 Huffman码解 反量化反 CT换D变

39、图 19 JPEG 编解码方框图 这里从【open】中选择 people 图像(大小为像素、灰度级为 256)对其进行 JEPG 编解256 256 码。编写 matlab 程序时,除了用到 DCT 变换和 huffman 编码所有的函数,如:blkproc、dct2(x)、 size、idct2(x)、DCHuffmanEncoding、round 等函数,还用到了 ZigZag 函数来分别对 DC 系数和 AC 系 数扫描和编码以及矩阵系数替换等基本 matlab 编程语句。最后用 set 和 num2str 函数将原始图像数据 和压缩后数据大小、均方根误差 erms 在静态文本框中显示出

40、来,并通过利用公式计 2 n 1 n 12 crn n 算 cr。 对大小为像素、灰度级为 256 的 people 图像进行 JEPG 编解码结果如图 20 所示:256 256 图 20 JEPG 编解码结果图 由图 20 可得:=108,=65536,则压缩比 cr=0.001647,由此数据可得 JPEG 编码和小 1 n 2 n 12 n n 波编码一样都有很高的压缩比。 将以上 DCT 变换编码、huffman 编码、JEPG 编码的结果数据汇制成表 6,表 6 如下所示: 表 6 DCT、huffman、JEPG 编码结果表 编码 原始图像大小: 压缩后图像的大小:均方根误 er

41、ms=压缩比 cr= 基于 DCT 的变换编码65536655360.0473190.5 基于 DCT 的变换编码65536655360.0550190.125 Huffman 编码655365898600.90005 15 JEPG 编码655361089.60480.001647 由表 6 可得:DCT 变换编码是一种具有高信息集中能力的编码,huffman 编码是一种无损压缩, 这里采用 JEPG 编码正是集合这两种编码的优点而具有较高的压缩比。 5 总体设计 在 matlab 环境中,GUI 是一种图形窗口,其包含了许多种的对象并提供了集成了 GUI 所有支持控 件的界面设计工具集GU

42、IE,成就了 GUI 方便高效的开发。 创建一个图形用户界面 GUI 将各种压缩编码方法结合在一起的具体步骤如下: 启动 GUIE:在打开 matlab7.0 后,点击【file】菜单下的子菜单 【new】并选择【GUI】 项目,打开如图 21 的界面。 图 21 GUI 模板设置界面 图 在窗口 GUIE Quick Start 中,点击 OK 就可以选择一个空白的模板,将其保存为 GUI.fig 同时生成 了编写功能所要用到 M 文件。 在界面设计工具集 GUIE 中选择所需的控件布置界面并设置属性,设计好界面如图 22 所示: 16 图 22 最初布置图 在该界面中,包含有 10 个静态

43、文本和两个 axes 窗口。 将各种编码方法均设置在菜单栏上,可以使界面不会那么的凌乱,则打开 Menu Editer 窗口设 计两个菜单项 File、Operations,其中 File 包含的子菜单有 Open 和 Exit,Operations 包含的子菜单有 RLE、huffman、DPCM、DCT、FFT、hadamard、wavlet、JEPG。菜单项的 Callback 均设为 GUI0(File_Callback,gcbo,guidata(gcbo),菜单项的 label 和 Tag 均分别设为 File、Operations、RLE、huffman、DPCM、DCT、FFT、

44、hadamard、wavlet、JEPG。菜单栏的整体排 版如图 23 所示: 图 23 菜单栏安排图 运行界面 GUIE,可得如图 24 所示: 图 24 最终布置图 在 M 文件中编写对应功能代码。 其中 Open 实现的功能是可以打开在根目录下的任何的图片(如图 25 所示:) ,Exit 用命令 close(GUI0)来关闭运行中的界面 GUI。Operations 下的子菜单 17 RLE、huffman、DPCM、DCT、FFT、hadamard、wavlet、JEPG 对应用来实现行程编码、线性预测编 码、变换编码、小波编码、JEPG 编码。 图 25 用 Open 打开任何图片

45、图 在编写这些程序时要注意用 handles 来进行数据间的传递。要将计算好的均方根误差 erms、压缩 比 cr、原始图像和压缩后图像的大小在静态文本中显示出来时,除了用 set 命令,还得用命令 num2str 将它们转换为字符形式才能在静态文本显示。在编写程序时必须得注意这两个问题。 运行以编写好代码的 GUI 界面,选择【Open】下大小为像素、灰度级为 256 的256 256 coin 图像和【Operations】的【huffman】选项,进行 huffman 编码可得如 26 图结果: 图 26 实现 huffman 编码功能图 按照以上步骤创建好的 GUI 界面实现的功能有:

46、选择【Open】下的任何一张图像;选择 Operations 下的子菜单中的任何一编码计算并显示原始图像和解码后图像的大小、均方根误差、压缩 比 cr 以及解码后的图像;关闭运行的界面。 6 结论 随着各种现代化技术地不断发展,数字图像的数据压缩在数字图像传输中发挥着关键性的作用。 为了方便对各种压缩方法的进行研究、实现和比较,根据图像的信息在编码中是否有损失将数字图像 18 编码分为有损压缩和无损压缩。设计以 matlab 为仿真工具,利用信源概率不相等的特性来去掉图像的 冗余以及用不等长的码字来对信源进行无损压缩编码。而运用某种变换去掉数字图像在空间和时间上 的相关性对信源进行有损压缩编码

47、。利用 DCT 变换和 huffman 编码对图像的信源进行 JEPG 编码。 为了更好地研究和实现各种压缩方法并将这些方法用于教学,又设计了一个 GUI 界面,将全部的 压缩编码的方法结合在一起。在设计 GUI 时,要特别注意用 handles 来进行数据间的传递和静态文本 显示的细节。 致 谢: 非常感谢黄剑航老师对我的悉心指导,使我能够顺利地完成毕业设计。从论文的选题、指导到 程序的讲解以及最后设计的完成, 黄剑航老师都非常有耐心地对我们进行指导。 这次毕业设计是理 论与实践并行的,在黄剑航老师悉心指导之下让我深深体会到把书本上的理论应用到实践中去的重 要性。只有待理论和实践相结合时,所

48、学来的知识才不是纸上谈兵。 同时,我也要感谢那些跟我一起走过风雨的同学们,因为有你们的相伴,我才有多彩的大学生活。 参考文献: 1 何东健数字图像处理M北京:西安电子科技出版社,2008 2 姚敏数字图像处理M北京:机械工业出版社,2008 3 张德丰详解 MATLAB 数字图像处理M北京:电子工业出版社,2010 4 贾永红数字图像处理M武汉:武汉大学出版社,2010 5 王成优JPEG 图像压缩编码及其 MATLAB 仿真实现J电子测量技术,2007,30(1):135-137 6 孙学岩,叶海建,韩玉坤数字图像压缩原理及常用压缩编码方法J农机化研究,2005,3(5):130-132 1

49、9 附录 用 GUI 界面来实现 DCT 变换编码的程序: function DCT_Callback(hObject, eventdata, handles) % hObject handle to DCT (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) clc I=handles.current_data; I1=double(I)/255;%图像为 256 级灰度图像,对图像进行归一化操作 T=dctmtx(8);%产生 8*8 的 DCT 矩阵 dctcoe=bl

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

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1