基于DCT的图像压缩编码算法的MATLAB实现

摘要 随着科学技术的发展,图像压缩技术越来越引起人们的关注。为此从众多的图像压缩编码标准中选取了基于DCT变换的JPEG图像压缩编码算法进行研究,并通过对比分析各种软件特性选取了MATLAB进行实验仿真。 首先说明了图像压缩在现代通信中的必要性和可行性,然后讲述了MATLAB及其图像处理工具箱的相关知识,并对基于DCT变换的JPEG图像压缩算法进行了详细的研究,重点介绍了JPEG压缩编码的具体过程和方法 ,详细介绍了编码中DCT变换、量化、熵编码和霍夫曼编码等模块的原理和数学推导以及各模块的功能分析。最后应用MATLAB进行了实验仿真并分析结果得出结论。 实验结果表明基于DCT 变换的JPEG 图像压缩方法简单、方便,既能保证有较高的压缩比,又能保证有较好的图像质量,应用MATLAB仿真出来的结果较好的反应了其编码算法原理。 关键词 JPEG图像压缩;DCT;MATLAB;图像处理工具箱 目 录 摘要I Abstract错误!未定义书签。 第1章 绪论1 1.1 课题背景1 1.1.1 离散余弦变换2 1.1.2 预测技术3 1.2 图像压缩技术的发展和现状3 1.2.1 图像编码技术发展历史3 1.2.2 图像编码技术的现状4 1.3 MATLAB 及其图像处理工具箱4 第2章 图像压缩编码理论算法6 2.1 DCT变换的思想来源6 2.2 基于DCT的JPEG图像压缩编码步骤8 2.2.1 颜色空间的转换和采样8 2.2.2 二维离散余弦变换9 2.2.3 DCT系数的量化12 2.2.4 量化系数的编排13 2.2.5 DC系数的编码14 2.2.6 AC系数的编码15 2.2.7 组成位数据流16 2.2.8 DCT变换在图像压缩中的应用19 2.3代码实现错误!未定义书签。 第1章 绪论 1.1 课题背景 随着信息技术的发展,图像信息被广泛应用于多媒体通信和计算机系统中,但是图像数据的一个显著特点就是信息量大。具有庞大的数据量,如果不经过压缩,不仅超出了计算机的存储和处理能力,而且在现有的通信信道的传输速率下,是无法完成大量多媒体信息实时传输的,因此,为了更有效的存储、处理和传输这些图像数据,必须对其进行压缩,因此有必要对图像压缩编码进行研究。由于组成图像的各像素之间,无论是在水平方向还是在垂直方向上都存在着一定的相关性,因此只要应用某种图像压缩编码方法提取或者减少这种相关性, 就可以达到压缩数据的目的[1]。 数字图像的冗余主要表现在以下几种形式: 空间冗余:规则物体和规则背景的表面物理特性都具有相关性,数字化后表现为数字冗余。例如:某图片的画面中有一个规则物体,其表面颜色均匀,各部分的亮度、饱和度相近,把该图片作数字化处理,生成位图后,很大数量的相邻像素的数据是完全一样或十分接近的,完全一样的数据当然可以压缩,而十分接近的数据也可以压缩,因为恢复后人亦分辨不出它与原图有什么区别,这种压缩就是对空间冗余的压缩。 时间冗余:序列图像(如电视图像和运动图像)和语音数据的前后有着很强的相关性,经常包含着冗余。在播出该序列图像时,时间发生了推移,但若干幅画面的同一部位没有变化,变化的只是其中某些地方,这就形成了时间冗余。 统计冗余:空间冗余和时间冗余是把图像信号看作概率信号时所反应出的统计特性,因此,这两种冗余也被称为统计冗余。 编码冗余:同样长度的编码可以表示不同的信息。 结构冗余:相似的,对称的结构如果都加以记录就出现结构冗余。 知识冗余:由图像的记录方式与人对图像的知识差异而产生的冗余。人对许多图像的理解与某些基础知识有很大的相关性。许多规律性的结构,人可以由先验知识和背景知识得到。而计算机存储图像时还得把一个个像素信息存入,这就形成冗余。 视觉冗余:视觉系统对于图像场的注意是非均匀和非线性的,视觉系统不是对图像的任何变化都能感知。 所谓的图像压缩编码技术就是对要处理的图像数据按一定的规则进行变换和组合, 从而达到以尽可能少的数据流(代码)来表示尽可能多的数据信息。在众多的图像压缩编码标准中,JPEG(Joint Photographic Experts Group)格式是一种称为联合图像专家组的图像压缩格式,它适用于不同类型、不同分辨率的彩色和黑白静止图像[2]。 在JPEG图像压缩算法中,一种是以离散余弦变换(DCT,Discrete Cosine Trans)为基础的有损压缩算法,另一种是以预测技术为基础的无损压缩算法。 1.1.1 离散余弦变换 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反变换函数如下。 dct2实现图像的二维离散余弦变换。其语法格式为: (1)B=dct2(A) 返回图像A的二维离散余弦变换值,其大小与A相同且各元素为离散余弦变换的系数B(K1,k2)。 (2)B=dct2(A,in,n)或B=dct2(A,[m,n]) 如果m和n比图像A大,在对图像进行二维离散余弦变换之前,先将图像A补零至m*n如果m和n比图像A小。则进行变换之前,将图像A剪切。 idct2可以实现图像的二维离散余弦反变换,其语法格式为: B=idct2(A);B=idct2(A,m,n)或B=idct2(A,[m,n])。 1.1.2 预测技术 它是利用空间中相邻数据的相关性,利用过去和现在出现过的点的数据情况来预测未来点的数据。通常用的方法是差分脉冲编码调制(DPCM)和自适应差分脉冲编码调制(ADPCM)。 1.2 图像压缩技术的

matlab图像压缩像素编码,基于DCT的图像压缩编码算法的MATLAB实现相关推荐

  1. matlab基于dct的图像压缩编码解码_音频压缩编码的基本原理详解

    1.视频编码基本原理 (1) 视频信号的冗余信息 以记录数字视频的YUV分量格式为例,YUV分别代表亮度与两个色差信号.例如对于现有的PAL制电视系统,其亮度信号采样频率为13.5MHz:色度信号的频 ...

  2. 基于DCT的图像数字水印算法

    一.背景意义 信息革命使人类的社会与生活产生了深刻的变化.数字产品知识产权保护问题尤为突出,使用加密.数字签名等技术已经不能够有效的解决这一问题.本文结合隐蔽通信和数字水印两个主要的应用背景,对图像压 ...

  3. matlab基于dct的图像压缩编码解码_一篇文章搞定DCT在JPEG中的本质

    前序傅立叶变换,离散傅立叶变换,推荐这个回答的介绍 想和大家讨论一下jpeg中的dct变换,为什么有效?它有什么更深层次的本质吗?​www.zhihu.com 全篇参考下文,英文较好可以直接看. uc ...

  4. matlab基于dct的图像压缩编码解码_基于FPGA的扩频系统设计(下)

    大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分.大侠可以关注FPGA技术江湖,在"闯荡江湖"."行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢. ...

  5. 基于RFM-SCAN的图像配准算法的matlab仿真

    目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 这些匹配点通常是基于描述符相似性创建的.为了实现这一目标,现有的尝试通常涉及在几何约束下估计图像变换,其中需要预定义的变换模型 ...

  6. 基于混沌的图像置乱加密算法及matlab的实现,基于混沌的图像置乱加密算法及MATLAB的实现...

    基于混沌的图像置乱加密算法及MATLAB的实现 提出了一种基于混沌映射的图像置乱加密算法.借助MATLAB6.5软 (本文共3页) 阅读全文>> 数字水印(Digital Watermar ...

  7. 基于DCT域的数字水印算法研究与应用

    基于DCT域的数字水印算法研究与应用 目录 摘要 1 一.数字水印技术的概述 2 1.1数字水印的概述 2 二.可实现数字水印技术的实用工具--Matlab 3 2.1概述 3 2.2算法中常用的Ma ...

  8. 基于DSP的图像旋转算法数据调度策略

    基于DSP的图像旋转算法数据调度策略 [日期:2008-8-14] 来源:电子技术应用  作者:李筱琳,冯 燕,何亦征 [字体:大 中 小] <script src="http://w ...

  9. 【图像配准】基于互信息的图像配准算法:MI、EMI、ECC算法

    简介:         基于互信息的图像配准算法以其较高的配准精度和广泛的适用性而成为图像配准领域研究的热点之一,而基于互信息的医学图像配准方法被认为是最好的配准方法之一.基于此,本文将介绍简单的基于 ...

最新文章

  1. 关于服务器端控件的attributes属性的奇怪问题
  2. ps随机排列_漂亮!自然材料:人工可控微米级胶体粒子“堆积木”——粒子随心所欲的组装排列!...
  3. Vue3 --- axios 简单封装APi
  4. 618选购手机正当时,好评率高达99%的手机了解一下!
  5. Elasticsearch查询性能优化
  6. m-qam matlab,基于matlab的M_QAM通信系统仿真.doc
  7. 剑指offer——面试题59:对称的二叉树
  8. [导入]C#中WebService里的回车符\r丢失问题
  9. 《你必须知道的.NET》抽奖温暖启动
  10. 中国城市统计年鉴中地级市面板数据(2000-2019年)
  11. Flash Builder 4.7 正式版下载、破解
  12. redis 集群scan
  13. UIautomator2:APP自动化测试方法与小技巧记录(文末附实用APP测试脚本编写模板)
  14. eBPF-4-perf_map的丢失事件lost_event解读
  15. 十分钟了解耳机的种类和优缺点
  16. python如何安装spyder?
  17. 关于extern用法说明
  18. P3386 【模板】二分图最大匹配(匈牙利算法,网络流)
  19. oracle共享函数,oracle常用函数及示例分享
  20. 八道简单入门编程题详解+拓展(水花仙,二进制序列……)

热门文章

  1. excel中如何实现提取汉字的拼音首字母
  2. python 3d库_python的3d库
  3. Unity制作简陋版跑酷
  4. 软件测试的简历里面,项目介绍要怎么写好?【乐搏TestPro】
  5. Big-man与PHP的交战(一)——阅读PHP代码
  6. 人机交互是为了解决计算机的,人机交互与交互设计有什么区别
  7. IDEA导包报错cannot resolve symbol xxxx问题
  8. 问题,缺陷,任务管理系统 Cynthia
  9. 技术丨说一说微信第三方平台的初步集成
  10. i春秋网鼎杯网络安全大赛advanced题目writeup