通信工程毕业设计(论文)-数字图像压缩编码方法的研究_第1页
通信工程毕业设计(论文)-数字图像压缩编码方法的研究_第2页
通信工程毕业设计(论文)-数字图像压缩编码方法的研究_第3页
通信工程毕业设计(论文)-数字图像压缩编码方法的研究_第4页
通信工程毕业设计(论文)-数字图像压缩编码方法的研究_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本 科 生 毕 业 设 计 论 文 数字图像压缩编码方法的研究 院 系: 电子信息工程 学 系 专 业: 通信工程 班 级: 学 号: 指导教师: 职称(或学位): 讲师 2011 年 04 月 原创性声明 本人郑重声明:所呈交的论文(设计),是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文(设计)不含任何其他个人或集体已经发表或撰写过的作品成果。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 学生 签名: 年 月 日 指导声明 本人指导的 同学的毕业论文(设计)题目大小、难度适当,且符合该同学所学专业的培养目标的要求。本人在指导过程中,通过网上文献搜索及文献比对等方式,对其毕业论文(设计)内容进行了检查,未发现抄袭现象,特此声明。 指导教师签名: 年 月 日 目 录 1 绪论 . 1 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 的图像压缩编码 . 8 3.2 基于哈达玛变换( HT)的图像压缩编码 . 10 3.3 小波编码 . 13 4 JPEG 部分压缩算法的研究和实现 . 14 5 总体设计 . 15 6 结论 . 18 致 谢 . 18 参考文献 . 18 附录 . 19 1 数字图像压缩编码方法的研究 ( 电子信息工程学系 指导教师: XXX) 摘要: 随着 各种技术地 不断发展,数字图像的数据压缩在数字图像传输中发挥着关键性的作用。 将数字图像编码分为有损压缩和无损压缩 两类 。 设计以 matlab 为仿真工具, 利用图像信息源不均匀的概率分布 来去掉图像的冗余,并用变长编码来对信源进行 无损压缩 编码 。 而利用数字图像在空间和时间上的相关性,运用某种变换去掉其相关性对信源进行 有损 压缩 编码。利用 DCT 变换和 huffman 编码对图像的信源进行 JEPG 编码。 同时为 了 将 各种压缩方法运用于教学和锻炼编程能力, 设计了以 matlab 为仿真工具的 GUI 界面 。 仿真结果表明,采用以上方法可以很好的研究和比较各种压缩方法 。 关键词: 数字图像 ; 压缩编码 ; 有损压缩 ; 无损压缩 ; JPEG 压缩 Abstract: With the development of various technologies, data compression plays a key role in digital image transmission. Digital image 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 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 methods 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 Compression; wavelet image coding 1 绪论 2 1.1 引言 随着 各种 现代化 技术的 不断发展, 图像信息已变为众多领域重要的处理对象 ,怎样 充分利用信道和 具有一定 带宽的 信道下传输 有用 的图像信息的问题就出现了。对原始图像进行存储、记录和传输为其提供了可能,那么必须对数字图像的信息进行有效 的压缩。因此,对 图像 压缩 技术 的研究和实现在数字图像传输中发挥着关键性的作用。 1.2 数字图像压缩编码的分类 为了方便对各种压缩方法的研究和比较 ,根据图像的信息在编码中是否有损失将数字图像编码分为有损压缩和无损压缩 1。 分类如图 1 所示: 图像压缩有损压缩无损压缩行程编码( L E R)哈弗曼编码( u f f m a n h)线性预测编码( P C M D)基于 F T 换的图像压缩编码F变基于 C T 换的图像压缩编码D变基于 T 换的图像压缩编码H变图 1 图像压缩的分类 图 无损压缩就是主要是 利用信源概率 不相等的特性 来去掉图像的冗余 以及 用 不等长的码字 来对信源进行 编码 。 有些失真是人眼所不能察觉的, 有损压缩就是 利用人眼的这一视觉特性来进行压缩的。有损 压缩是 运用某种变换去掉数字图像在空间和时间上的相关性对信源进行 编码。 为了解决 如何从各种图像压缩算法中选择正确的算法处理实际的压缩问题,就必须对各种压缩 方法的性能进行评价。 1.3 图像压缩技术的性能指 标 这里主要用均方根误差和压缩比 的大小来比较各种压缩编码方法的性能。 也可用 编码效率、平均码字长度、冗余度 。 ( 1)均方根误差 erms 主要是通过计算原始图像数据和解码后图像数据之间的差异,来体现经压缩编码方法的 准确 性,其计算公式如( 1)如下 : 1 / 22i = 1 j = 11e r m s = ( , ) ( , )nm I i j I i jnm( 1) 其中, (, )I i j 和 (, )I i j 分别 表示原始图像 和 解码后的图像。 (i=1,2,3,4 .,N,j=1,2,3,4 .,M) ( 2)压缩比 cr: 其计算式如公式( 2)所示: 12cr n n( 2) 用其 大小来反映压缩编码方法的压缩效果 。 其中,1n(压缩后图像数据大小 )小于2n(压缩后图像数据大小 )的压缩编码方法才是有意义的,则 cr 要小于 1。 3 1.4 研究内容 这里主要是对 有损压缩和无损 压缩编码方法进行 分类 研究 。并 设计以 matlab 为仿真工具, 利用信源概率 不相等的特性 来去掉图像的冗余 以及 用 不等长的码字 来对信源进行 无损压缩 编码。而 运用某种变换去掉 数字图像在空间和时间上的相关性 对信源进行 有损 压缩 编码。利用 DCT 变换和 huffman 编码对图像进行 JEPG 编码。 在仿真软件 matlab 中 用 相应的函数 计算 均方根误差 erms、原始图像数据大小2n和压缩后数据大小1n,通过 利用公式12cr n n计算 cr 以便 衡量 压缩编码的性能。将各种数据绘制成表格加以比较 , 总结 出不同图像所适合的压缩编码 。 为了将各种压缩编码的方法应用于教学和锻炼自己对 GUI 的认识及编程能力,又创建了一个 GUI 界面将各种压缩编码的实现集合此。 2 无损压缩编码的研究和实现 2.1 行程编码 RLE( Run Length Encoding) 行程是指具有相同灰度值的像素序列,其编码思想就是去除掉像素空间冗余,即用行程的行程和灰度的长度来替换行程本身 2。例如:编码前: hhhhhbbmmmmmm 编码后: h5b2m6 行程编码如图 2 所示: 图 2 行程编码系统 图 对于行程编码的研究, 这里 选用大小为 256 256 像素、灰度级为 256 的 cameraman 图像,对其进行行程编码来实现图像压缩的目的。其中采用 RLEncode 函数对图像进行压缩,而用 RLEdecode 函数对压缩图像进行复原 。 显示 原始图像和解压后的图像、 用 size 函数计算的原始图像数据2n和压缩后数据大小1n、均方根误差 erms, 通过 利用公式12cr n n计算 cr。 对 大小为 256 256 像素、灰度级为 256 的 cameraman 图像 进行行程编 解 码 结果如图 3 所示 ,在其编码的程序中,添加 display(e)语句使其显示 cameraman 图像的压缩编码,可得部分编码如下: (1 150),(1 153),(1 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 可得:1n=112224,2n=65536,则 压缩比 cr=12nn=1.7127。 对大小为 256 256 像素、灰度级为 256 的 cameraman 图像先进行黑白二值化再行程编解码 结果如图 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 的灰度值。 图 4 黑白二值化 cameraman 图像进行行程编 码结果 图 由图 4 可得:1n=6802,2n=65536,则 压缩比 cr=12nn=0.10379。 为了方便比较两种行程编码,将以上两种结果的数据列在表 1 中,表 1 如下所示: 表 1 对灰度图像和二值化图像进行行程编码结果的数据比较表 图像 原始图像 数据 大小 压缩后 数据 大小 均方根误差 erms 压缩比 cr 灰度图 65536 112224 0 1.7124 二值化 图像 65536 6802 0 0.10379 由表 1 可以明显看出: 均方根误差 erms =0,则行程编码是一种无损压缩编码。 对灰度图像进行 5 行程编码后图像的大小与原始图像大小相比,其需要更大的存储空间, 没 不到压缩图像的目的。而对二值化图像进行行程编码后图像的大小比原始图像小将近 10 倍,这样更有利于图像的存储和传输。则说明行程编码更适合于 二值化图像和那些连续出现灰度级相同的图像。 2.2 哈弗曼编码 ( Huffman) 哈弗曼( Huffman)编码 步骤可概括为 大到小排列、相加(到只有一个信源符号为止)、 赋码字 、得 huffman 编码 ,以上均是对于信源符号概率而言的。 Huffman 编码, 这里 选用大小为 256 256 像素、灰度级为 256 的 coin 图像,对其进行 huffman编码来实现图像压缩的目的。其中采用 huffncode 函数对图像进行压缩,而用 huffdecode 函数对压缩图像进行复原,显示原始图像和解压后的图像、 用 size 函数计算的原始图像数据2n和压缩后数据大小1n、均 方根误差 erms, 通过 利用公式12cr n n计算 cr。 对大小为 256 256 像素、灰度级为 256 的 boat 图像进行 huffman 编 解 码 可得 5 个概率最大的灰度值及其概率大小: M1(145, 0.0213), M2(144, 0.0209), M3(147, 0.0208), M4(146, 0.0207), M5(149,0.0195),用其对 huffman 编码的步骤进行说明,其编码过程如图 5 所示: M 1 0 . 0 2 1 3M 2 0 . 0 2 0 9M 3 0 . 0 2 0 8M 4 0 . 0 2 0 7M 5 0 . 0 1 9 5100.06150.041510100.04020.04020.10310图 5 huffman 编码过程图 由图 5 可得: 经过 huffman 编码后信源 M1、 M2、 M3、 M4、 M5 的码字分别为: 01、 10、 00、 111、011。 由经过编码的码字可得到 huffman 编码的特点:用短的码字对概率大的信源进行编码,而用较长的码字 对概率小的信源进行编码。 其 运行结果如图 6 所示 : 图 6 对 boat 图像 进行 huffman 编 解 码结果 图 由图 6 可得:1n=58986,2n=65536,则 压缩比 cr=12nn=0.90005。 由 huffman 编 解 码的运行结果数据 可得 表 2 如下所示: 表 2 对 boat 图像 进行 huffman 编解码结果数据表 6 编码 原始图像 数据 大小 压缩后 数据 大小 均方根误差 erms= 压缩比 cr Huffman 编码 65536 58986 0 0.90005 由上表可得: 均方根误差 erms =0,则 huffman 编码为无损压缩编码。 对 boat 进行 huffman 编码后的图像大小与原始图像差不多,其压缩比接 近于 1,则 huffman 编码 对图像 没有很好的压缩效果。 如信源 M1、 M2、 M3、 M4、 M5 经过 huffman 编码 的码字分别为: 01、 10、 00、 111、 011,是由近似的整数来对其进行编码的,没有达到预期的效果 。 2.3 线性预测编码 ( DPCM,Different Pulse Code Modulation) 差值脉冲编码调制( Different Pulse Code Modulation), 即 线性预测 编码 ( DPCM) 是 对图像的预测误差进行编码的一种无损压缩编码 。 预测误差 是当前信号的 实际值和 根据 前面的信号 对 当前信号进行预测得到的 预测值的 之差。 其 编 解 码 系统如图 7 所示: 输入图像预测编码 最接近取整符号编码器压缩图像压缩图像符号解码器预测器解码图像+-+( )编码器 a( )解码器 b 图 7 线性预测编码 编 解 码系统 图 线性预测 编码, 这里 选用大小为 128 128 像素、灰度级为 256 的 yun 图像,对其进行行程编码来实现图像压缩的目的。其中采用 LPCencode 函数对图像进行压缩,而用 LPCdecode 函数对压缩图像进行复原, 用 size 函数计算的原始图像数据和压缩后数据大小、均方根误差 erms 并在静态文本框中显示出来。 由于 线性 预测编码是对图像的预测误差进行编码的一种无损压缩编码, 也 通过 显示原始图像和预测误差的直方图 , 来 反映经过预测编码 去除 图像 冗余的情况 。 对大小为 128 128 像素、灰度级为 256 的 yun 图像进行 DPCM 编码的运行结果如图 8、 9 所示 : 图 8 对 circuit 图像 进行 DPCM 编解码结果 图 7 图 9 原始图像和预测误差直方图 由图 8 可得:均方根误差 erms =0,则 线性预测编码是对图像的预测误差进行编码的一种无损压缩编码 。 由图 9 可得:预测误差的概率分布在零处的峰值很大, 则 线性预测编码通过预测 和差分 消除了大量像素间的冗余。 将以上几种无损压缩编码方法运行结果数据汇总在表 3 中进行比较,表 3 如下所示: 表 3 无损压缩编码比较表 图像 编码 原始 数据 大小 压缩后 数据 大小 均方根误差 erms 压缩比 cr 灰度图 RLE RLE Huffman DPCM 65536 112224 0 1.7124 二值化图像 灰度图 灰度图 65536 65536 16384 6802 58986 16384 0 0 0 0.10379 0.90005 由于线性预测编码是对预测误差进行编 码的, 其要与 RLE 和 huffman 编码比较 得通过 预测误差 直方图的概率分布 来进行 。 由表 3 可得: 要对 黑白 二值化图像 进行编码,最好选择 RLE 编码 。而对于灰度图,进行 RLE 编码后 图像 数据 ( 112224) 比原始 数据( 65536)大很多 ;进行 huffman 编码后的图像大小与原始图像差不多, 均 没达到好的压缩效果;进行线性预测编码其 预测误差的概率分布在零处的峰值很大,说明消去了很多的冗余。因此,灰度图像要进行无损压缩编码,最好的选择是进行 线性预测编码。 3 有损压缩编码研究和实现 有损压缩主要是对变换编码进行研究的。 变换编 码是 一种 基于 某种 变换的编码方法,其 只对变换域上有用的低频信息 进行量化、编码、传输,而丢弃那些没用的高频分量。 变换编码是先将图像分割为 nn 个子图像再分别进行变换、量化和编码处理,而非一次性对图像进行变换和编码。 其 编解码系统如图 10 所示: 压缩图 像输 入 图 像 分割 图 像 正交 变换 系 数 量化 编码熵压缩图 像 反 变换 解 压图 像反 熵编码 合 并 子 图 像 8 图 10 变换 编码 编解码系统 图 3.1 基于 DCT 的图像压缩编码 由于在 空间域里 进行 DCT 变换编码 比 在变换域里 较复杂 , 因此 DCT 变换编码 选择 在变换域里 进行 。 经过 DCT 变换后信号的能量积聚到少量的系数上,使 其 图像的相关性下降了和抗 干扰能力增加了,更利于压缩图像的传输 。 因而,被图像压缩领域广泛的运用。 关于基于 DCT 的图像压缩编码的实现,这里选用大小为 256 256 像素、灰度级为 256 的 lena 图像,对其进行 DCT 变换来实现图像压缩的目的。编写 matlab 程序时,先用 blkproc 和 dctmtx(8) 函数对图像进行分割为 22568个大小为 88 的子图像进行 DCT,则每一个子图像中均有 64 个的傅里叶系数。再量化,用 im2col 函数将 88 的图像块排列成向量,根据设置的压缩比 cr 确定要变零的系数个数 snum 并将最小的 snum 个变化系数设置为 0。接着用 col2im 函数将向量重新排列成图像块以便图像的复原,最后用 blkproc 和 dctmtx(8) 函数对新的图像块进行逆 DCT 变换来恢复图像和计算均方根误差 erms 来体现 DCT 的信息集中能力。 其 编解码系统如图 11 所示: 原始图像 D C T 换变除以量矩阵化取整 压缩图像压缩图像 D C T 变换逆 取整 解压图像( a ) 码过程编( )解码过程b 图 11 DCT 变换编解码系统图 设置压缩比 cr=0.5,即对大小为 256 256 像素、灰度级为 256 的 lena 图像进行 2:1 的 DCT 压缩,截取一子图像 8,8数据分析其编码, 截取的数据如下: 由上可得: 全部负数是当中最小的 32 个变换系数。 经过量化编码后的 数据 如下: 9 由上可得:量化编码 将 64 个变换系数中最小的 32 个变换系数变 0,而保留 32 个比较大的变换系数 。 其运行结果 如图 12 所示: 图 12 进行 压缩比为 0.5 的 DCT 变换编解码运行结果图 设置压缩比 cr=0.125,即对大小为 256 256 像素、灰度级为 256 的 lena 图像进行 8:1 的 DCT 压缩, 截取一子图像 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; 任意两行或两列对应元素相乘后相加为 0,即 正交 ; 变换核矩阵使高阶矩阵可通过低阶矩阵来获得。 关于基于哈达玛变换的图像压缩编码的实现,在 matlab7.0 中没有产生哈达玛矩阵的函数hadamard,因此就得编写一个 产生 哈达玛矩阵的函数 hadamard。 这里选用大小为 256 256 像素、灰度级为 256 的 lena 图像,对其进行哈达玛变换来实现图像压缩的目的。编写 matlab 程序时,先用 blkproc 和 hadamard 函数对图像进行分割为 22568个大小为88 的子图像进行 哈达玛变换, 则每一个子图像中均有 64 个的傅里叶系数,再用 im2col 函数将 88的图像块排列成向量,根据设置的压缩比 cr 确定要变零的系数个数 snum 并将最小的 snum 个变化系数设置为 0,接着要 col2im 函数将向量重新排列成图像块以便图像的复原,最后用 blkproc 和 hadamard 函数对新的图像块进行逆哈达玛变换来恢复图像和计算均方根误差 erms 来体现哈达玛变换的信息集中能力。 其 编解码系统如图 14 所示: 原始图像 哈达玛变换除以量矩阵化取整 压缩图像压缩图像 哈达玛逆变换 取整 解压图像( a ) 码过程编( )解码过程b 图 14 Hadamard 变换编解码系统图 11 设置压缩比 cr=0.5 对大小为 256 256 像素、灰度级为 256 的 lenan 图像进行 2:1 的哈达玛变换压 缩, 截取一子图像 8,8数据分析其编码,截取的数据如下: 经过量化编码的数据如下: 由上可得: 经过 量化编码 将 64 个变换系数中最小的 32 个变换系数变 0,而保留 32 个比较大的变换系数 。 其运行结果如图 15 示: 图 15 进行 压缩比为 0.5 的 哈达玛变换编解码运行结果图 设置压缩比 cr=0.125 对大小为 256 256 像素、灰度级为 256 的 lena 图像进行 8:1 的哈达玛变换压缩, 截取一子图像 8,8数据分析其编码,截取的数据如下: 12 经过量化编码的数据如下: 由上可得:经过量化编码 将 64 个变换系数中最小的 56 个变换系数变 0,而保留 8 个比较大的变换系数 。 其运行结果如图 16 所示: 图 16 进行 压缩比为 0.125 的 哈达玛变换编解码运行结果图 为了方便比较 以上两种 变换编码 集中能量 的 能力 , 两种 变换均是对 大小为 256 256 像素、灰度级为 256 的 lena 图像进行处理。将以上 两种 变换编码结果制作为一张表,表 4 如下所示: 表 4 三种变换编码结果汇 总表 压缩比 cr= 变换编码 原始图像 数据 大小: 压缩后 数据 大小: 均方根误差 erms= 0.5 0.5 基于 DCT 的变换编码 65536 32768 0.047319 基于 HT 的变换编码 65536 32768 0.045209 0.125 0.125 基于 DCT 的变换编码 基于 HT 的变换编码 65536 65536 8192 8192 0.055019 0.055239 由表 4 可得:在压缩比相同的情况下(即丢弃的系数个数相同), DCT 的均方根误差 erms 相对比较 小,也就是 DCT 比 HT 有更强的信 息集中能力。在压缩比为 0.5 的情况下, 两种 变换的均方根误 13 差均比压缩比为 0.125 的小,也就是压缩比越大其集中信息的能力越强。这是因为图像的有用信息低频信息大多在变换域的左上角,变换编码只对 该区域的变换进行量化、编码、传输,而丢弃那些没用的高频分量。 3.3 小波编码 小波变换利用对信号的局域的性质进行分析来提取信号的有用信息,这样可以解决一些 傅里叶( Fourier) 变换 不能解决的问题 4。例如: 傅里叶( Fourier) 变换 的 局限性 。 这里采用直接阈值的小波编码法,其是省略小于某一阈值的系数而留下那些有大 能量的系数,以达到压缩图像的效果。 有多种方法 可以 得到 阈值 , 既可以 通过直接赋值,也可以通过函数来产生。这里 用 wdcbm2 函数 来求 阈值。其编解码系统如图 17 所示: 原始图像 加噪图像 得到 a a r的滤波器 h相关计算阈值 去噪和压缩图像 重构图像进行小波分解恢复图像图 17 直接阈值编码法的编解码系统图 在这种方法中用 imnoise 函数对图像信号进行加噪,用 wfilters 函数得到 haar 滤波器的分解和重构的滤波器,用 wavedec2 函数和得到的分解滤波器对加噪信号进行 2 层二维的小波分解并得到分解结构c,s,用 wdcbm2 函数得到阈值和保留 的系数,用 wdencmp 对图像进行重构。 用 size 函数计算的原始图像数据2n和压缩后数据大小1n、均方根误差 erms, 通过 利用公式12cr n n计算 cr。 这里是用不同的阈值对各个子图像 的小波系数 进行 舍取 处理 。 对 lena 图像 ( 大小为 256 256 像素、灰度级为 256) 进行 2 层二维小波编解码结果如图 18 所示: 图 18 直接阈值的小波编码法运行结果 图 由图 18 可得:1n=218,2n=65536,则 压缩比 cr=12nn=0.00332641,由此数据可得小波编码有很大的压缩比。 将基于 DCT 的变换编码与小波编码进行比较总结出小波编码的优点,表 5 如下所示: 表 5 FFT 和小波编码运行结果比较表 编码 原始图像 数据 大小: 压缩后 数据 大小: 均方根误 erms= 压缩比 cr= 14 基于 DCT 的变换编码 65536 32768 0.047319 0.5 基于 DCT 的变换编码 65536 8192 0.055019 0.125 小波编码 65536 6 13.3131 0.00332641 由上表可得 :与 DCT 相比,小波编码有更高的压缩比, 因为小波编码去除了所有的相关性,这是DCT 所不能达到的。 虽然小波编码的均方根误差比 DCT 高很多,但是小波编码是去除那些能量比较小的系数,而将那些高能量的系数保留下来,小能量的系数对图像恢复没有多大的影响。 4 JPEG 部分 压缩算法的研究和实现 融合了 DCT, Huffman 压缩编码方法 和有高压缩比 cr 的 JPEG 是一种 有损 /无损压缩方法 5,其是联合图像专家组( Joint Photographic Expert Group) 的简称 6。 其 编解码方框图如图 19 所示: 原始图像 D C T 换变恢复图像量化 H u f f m a n 码编H u f f m a n 码解 反量化 反 C T 换D变图 19 JPEG 编解码方框图 这里从 【 open】 中选择 people 图像(大小为 256 256 像素、灰度级为 256)对其进行 JEPG 编解码 。编写 matlab 程序时,除了用到 DCT 变换和 huffman 编码所有的函数, 如: blkproc、 dct2(x)、 size、idct2(x)、 DCHuffmanEncoding、 round 等函数, 还用到了 ZigZag 函数来分别对 DC 系数和 AC 系数扫描和编码 以及矩阵系数 替换等基本 matlab 编程语句 。最后用 set 和 num2str 函数将 原始图像数据2n和压缩后数据大小1n、均方根误差 erms 在静态文本框中显示出来, 并 通过 利用公式12cr n n计算 cr。 对大小为 256 256 像素、灰度级为 256 的 people 图像进行 JEPG 编解码结果如图 20 所示: 图 20 JEPG 编解码结果图 由图 20 可得 :1n=108,2n=65536,则 压缩比 cr=12nn=0.001647,由此数据可得 JPEG 编码 和小波编码一样都 有很 高 的压缩比。 将以上 DCT 变换编码、 huffman 编码、 JEPG 编码的结果数据汇制成表 6,表 6 如下所示: 表 6 DCT、 huffman、 JEPG 编码结果表 15 编码 原始图像大小: 压缩后图像的大小: 均方根误 erms= 压缩比 cr= 基 于 DCT 的变换编码 65536 65536 0.047319 0.5 基于 DCT 的变换编码 65536 65536 0.055019 0.125 Huffman 编码 JEPG 编码 65536 65536 58986 108 0 9.6048 0.90005 0.001647 由 表 6 可得: DCT 变换编码是一种具有高信息集中能力的编码, huffman 编码是一种无损压缩,这里 采用 JEPG 编码 正是集合这两种编码的优点而 具有 较 高的压缩比。 5 总体设计 在 matlab 环境中, GUI 是一种图形窗口,其包含了许多种 的对象并提供了集成了 GUI 所有支持控件的界面设计工具集 GUIE,成就了 GUI 方便高效的开发 。 创建一个图形用户界面 GUI 将各种压缩编码方法结合在一起的具体步骤如下: 启动 GUIE: 在打开 matlab7.0 后,点击【 file】菜单下的子菜单【 new】并选择【 GUI】项目 , 打开如图 21 的界面。 图 21 GUI 模板设置界面 图 在窗口 GUIE Quick Start 中, 点击 OK 就可以选择一个空白的模板,将其保存为 GUI.fig 同时生成了 编写功能所要用到 M 文件。 在 界面设计工具集 GUIE 中 选择所需的 控件布置界面 并设置属性 , 设计好 界面 如图 22 所示: 16 图 22 最初布置图 在 该界面中,包含有 10 个静态文本和两个 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、 hadamard、 wavlet、 JEPG。 菜单栏的整体排版如图 23 所示: 图 23 菜单栏安排 图 运行界面 GUIE,可得如图 24 所示: 17 图 24 最终布置图 在 M 文件中编写 对应功能 代码。 其中 Open 实现的功能是可以打开在根目录下的任何的图片 (如图 25 所示:) , Exit 用命令close(GUI0)来关闭运行中的界面 GUI。 Operations 下的子菜单 RLE、 huffman、 DPCM、 DCT、 FFT、hadamard、 wavlet、 JEPG 对应用来实现行程编码、线性预测编码、变换编码、小波编码、 JEPG 编码。 图 25 用 Open 打开任何图片 图 在编写这些程序时要注意用 handles 来进行数据间的传递。 要将计算好的均方根误差 erms、压缩比 cr、原始图像和压缩后图像的大小在静态文本中显示出来时,除了用 set 命令,还得用命令 num2str将它们转换为字符形式才能在静态文本显示。 在 编写程序时必须得注意 这两个问题 。 运行以编写好代码的 GUI 界面, 选择【 Open】 下大小为 256 256 像素、灰度级为 256 的 coin图像和 【 Operations】 的【 huffman】选项, 进行 huffman 编码 可得如 26 图结果: 18 图 26 实现 huffman 编码功能图 按照以上步骤创建好的 GUI 界面实现的功能有: 选择 【 Open】 下 的 任何一张图像;选择 Operations下的子菜单中的任何一编码计算并显示原始图像和解码后图像的大小、均方根误差、压缩比 cr 以及解码后的图像 ;关闭运行的界面。 6 结论 随着各种 现代化 技术地不断发展,数字图像的数据压缩在数字图像传输中发挥着关键性的作用。为了方便对各种压缩方法的 进行 研究 、实现 和比较 ,根据图像的信息在编码中是否有损失将数字图像编码分为有损压缩和无损压缩 。设计以 matlab 为仿真工具 , 利用信 源概率 不相等的特性 来去掉图像的冗余 以及 用 不等长的码字 来对信源进行 无损压缩 编码。而 运用某种变换去掉数字图像在空间和时间上的相关性对信源进行 有损 压缩 编码。 利用 DCT 变换和 huffman 编码对图像的信源进行 JEPG 编码。 为了更好地研究 和实现 各种压缩方法 并 将这些方法用于教学,又设计了一个 G

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论