基于MATLAB的JPEG基本系统编码_第1页
基于MATLAB的JPEG基本系统编码_第2页
基于MATLAB的JPEG基本系统编码_第3页
基于MATLAB的JPEG基本系统编码_第4页
基于MATLAB的JPEG基本系统编码_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

1、摘摘 要要本文介绍了基于 MATLAB 的 JPEG 基本系统编码。在图像传送过程中,经常采用 JPEG格式对静止图像进行压缩编码。JPEG 基本系统编码首先把灰度图像分成 88 的像素块,然后对各个像素块进行离散余弦变换得到变换系数后再进行量化。其次,对量化后的变换系数采用 Z 形扫描,得到直流系数和交流系数。接着,对直流系数采用预测编码,对交流系数采用可变长编码。最后,根据标准的 Huffman 编码进行熵编码,输出压缩图像的比特序列,从而实现图像压缩。在接收端,经过 Huffman 解码、直流系数和交流系数可变长解码以与反量化后,再进行离散余弦逆变换后得到重建图像。MATLAB 仿真结果

2、表明:重建图像与原始图像几乎没有任何差异,能够满足人们的视觉需求。另外,数据压缩比在 10 倍左右且峰值信噪比均在 30dB 以上。因此,采用MATLAB 实现 JPEG 基本系统编码具有方法简单、速度快、误差小等优点,能够大大提高图像压缩的效率和精度。关键词:关键词:JPEG;离散余弦变换; MATLAB;图形用户界面A ABSTRACTBSTRACTThe JPEG basic system coding based on MATLAB is introduced in this paper. The JPEG format is usually used to compress stat

3、ic image during the process of image transmission.The JPEG basic system coding divides the gray image into several sub-images of size 88 firstly. Discrete cosine transform is used to get the transform coefficient of sub-image and then the transform coefficient is quantized. Secondly, Z type scan is

4、adopted to get direct current (DC) coefficient and alternate current (AC) coefficient of the quantized transform coefficient. Thirdly, predictive coding and variable-length coding is used for DC and AC coefficient respectively. Finally, bit sequences of the compressed image are outputted by using en

5、tropy coding according to standard Huffman coding. Then image compression is realized. The user gets the reconstructed image by Huffman decoding, variable-length decoding of DC and AC coefficient, dequantization and reverse discrete cosine transform sequentially.MATLAB results of simulation demonstr

6、ate that there is no difference between reconstructed image and original image and reconstructed image can satisfy human visual requirements. Additionally, compression ratio is about 10 and peak signal-to-noise ratio is all over than 30dB. Therefore, the realization of JPEG basic system coding using

7、 MATLAB is of such advantages as simple method, fast speed, small error and it can enhance the efficiency and accuracy of image compression greatly. KeyKey words:words: JPEG; discrete cosine transform; MATLAB; graphical user interfaceIII / 49i / 49目目 录录第 1 章 绪 论 11.1 图像变换编码概述与目前状况 11.2 论文结构 2第 2 章 M

8、ATLAB 简介 32.1 MATLAB 的发展简史 32.2 MATLAB 的特点 32.2.1 MATLAB 的功能 32.2.2 MATLAB 的技术特点 42.3 MATLAB 图像类型 52.4 GUI5第 3 章 变换编码 73.1 变换编码的一般形式与意义 73.2 基本原理 73.2.1 正交变换的去相关性 83.2.2 变换编码性能判断 93.2.3 变换编码的特点 113.3 最佳正交变换K-L 变换 11第 4 章 JPEG 图像压缩 134.1 JPEG 概述 134.2 JPEG 图像编码算法的实现 144.2.1 离散余弦编码 144.2.2 量化 154.2.3

9、编码 164.2.4 JPEG 图像数据压缩发展 19第 5 章 MATLAB 仿真 215.1 系统模块图 215.2 JPEG 压缩编码的设计流程 215.2.1 扫描顺序变换 225.2.2 量化部分程序流程图 225.2.3 霍夫曼编码部分程序流程图 225.3 图形用户界面设计 25第 6 章 结论与展望 296.1 结论 296.2 不足之处与未来展望 29参考文献 31致 32附 录 331 / 49第第1 1章章 绪绪 论论1.11.1 图像变换编码概述与目前状况图像变换编码概述与目前状况现实世界中的图像多为模拟图像,但是计算机只能处理数字信息,因此,必须将其数字化,转换成适合

10、计算机存储和表示的形式,才能由计算机进行处理。为了便于信息交换和方便使用,数字图像必须以一定的格式存储,如常用的 BMP、JPEG、GIF 等图像文件格式。从颜色来看,数字图像又有线画稿、灰度图像、彩色图像、真彩色图像等种类。随着信息技术的发展,对静止图像和视频序列图像的压缩编码技术的应用越来越广泛,从家庭娱乐到专业的通信设备、从廉价的消费电子产品到昂贵的专业级专用设备,应用的例子举不胜举,如 VCD、DVD、可视、视频会议、IP 上的视频服务、数字图书馆、数字电视、高清晰电视、数码照相机、数字图像监控等因此工业界对图像压缩专业人员的需求在不断地增长。长期以来,人们在自然界感受到的最主要的信息

11、是视觉信息,但与此不同,在早期计算机和通信领域,能够处理和传输的主要是文字和声音。因此,早期的计算机和通信设备的处理能力跟人类的需求有相当大的差距。随着通信信道与计算机容量和速度的提高,图像信息已经成为通信和计算机系统的一种重要的处理对象。与文字信息不同,图像信息需要大的存储容量和宽的传输信道,尤其是在需要实现大规模图像数据库或传输高分辨率实时图像序列的场合,即使以现在的技术,仍然难以满足原始数字图像存储和传输的需要(表 1.1 是几种常见视频图像源未经压缩的原始数据率)。正由于这种需求,使得图像压缩(编码)算法和技术成为近 30 年来非常活跃的一个研究领域。图像压缩的基本理论起源于 20 世

12、纪 40 年代末香农(Shannon)的信息理论。香农的编码定理告诉我们,在不产生任何失真的前提下,通过合理的编码,对每一个信源符合分配不等长的码字,平均码长可以任意接近于信源的熵。在这个理论框架下,出现了几种不同的无失真信源编码方法,如 Huffman 编码、算术编码、字典编码等,这些方法可以应用于一幅数字图像,能获得一定的码率压缩。但无失真编码的压缩率是很有限的,对较复杂的自然图像,压缩率一般不超过 2。由于无失真信源编码压缩率的限制,使其难以满足大多数图像存储和传输的需要。根据应用的需求,人们对有失真压缩进行了广泛的研究。有失真压缩的目的是去除图像数据中的冗余信息和对视觉不重要的细节分量

13、,以尽可能少的码字来表示所处理的图像。给定一幅数字图像,它的原始表示一般是空间像素阵列,这是它的空间域表示。在空间域表示中,相邻的像素之间存在很强的相关性,冗余信息分布在较大围的空间像素集中,直接处理比较困难。最常用的处理方法是通过一种变换,将图像从空间域映射到变换域中,在变换域可以进行简捷和有效的处理。对于变换的第一种要:将强相关的空间像素阵映射成完全不相关的、能量分布紧凑的变换系数阵,占少数的大的变换系数代表了图像中最主要的能量成分,占多数的小的变换系数表示了一些不重要的细节分量,通过量化去除小系数所代表的细节分量,用很少的码字来描述大系数所代表的主要能量成分,从而达到高的压缩比。这是用变

14、换技术进行有失真编码能够达到高压缩比的主要原因。对于变换的第二种要:变换系数阵的物理含义要明确,使其容易与人们关于 HVS(人类视觉系统)的知识相结合,以便有效地去除视觉冗余,尽可能地保留重要的视觉信息。具备最理想的去相关和最强的能量紧致特性的变换是 KL(Karhunen Loeve)变换,KL变换使得变换系数之间是统计不相关的。但 KL 变换的基是不固定的,由像素的相关系数矩阵的特征向量构成,特征分析的复杂性和需要额外存储变换基,使得 KL 变换的应用不现实。幸运的是,人们找到了 KL 变换的一个很好的逼近。对于强相关空间像素阵,人们发现 DCT(discrete cosine trans

15、form,离散余弦变换)是 KL 变换的很好的逼近。DCT 有固定的基和明确的物理含义,使得 DCT 广泛应用于图像压缩,成了变换编码的主要工具。20 世纪 80 年代中期开始制定的静止图像压缩编码的国际标准 JPEG 采用了 DCT 变换编码为其核心算法,并被广泛地接受和应用。但是 DCT 变换编码也有难以克服的缺点。在实际应用中,为了便于实现和后处理,图像被划分成 88 或 1616 的小块,对每一个块进行单独的变换和后处理。这种块之间的单独处理带来了压缩效率上的限制和块效应问题,尤其是当压缩倍数较高时,块效应成为限制 DCT 变换编码质量的主要因素。20 世纪 80 年代后期,小波变换的

16、发展提供了一种新的有效的多分辨信号处理工具,也为各种可分级图像编码算法的实现奠定了基础。小波变换应用在很多领域,最成功的应用领域之一就是图像压缩。小波变换的理论和算法明确地提出了一些有启发意义的思想,一个关键的思想是多分辨率分解,这个思想很好地利用在小波图像编码的研究中。小波图像压缩的研究表明,现代应用所需求的许多特征如多分辨、多层质量控制、嵌入式码流等与小波图像编码结构非常自然地融合在一起,在较大压缩比下,小波图像压缩的重构质量也明显好于 DCT 变换方法1。1.21.2 论文结构论文结构第1章主要介绍了图像变换编码与其目前状况;第2章简单阐述了MATLAB的相关容,其中包括它的发展史、特点

17、、功能、图像类型、图像用户界面等方面;第3章则讨论了静止图像的变换编码,这是传统变换方法的主要容,也是构成目前多数图像编码标准的基础算法;第4章主要给出了一些JPEG图像压缩的标准,以与具体的JPEG图像编码算法的实现过程;第5章则用MATLAB对图像编码进行仿真,并用图形用户界面的形式呈现处理结果;第6章对基于MATLAB的JPEG基本系统编码进行总结,并对其应用进行展望。实验仿真结果表明,用MATLAB 来实现离散余弦变换的图像压缩,具有方法简单、速度快、误差小的优3 / 49点,免去了大量矩阵计算,大大提高了图像压缩的效率和精度。第第2 2章章 MATLABMATLAB简介简介 MATL

18、AB 语言是由美国 Math Works 公司推出的计算机软件,经过多年的逐步发展与不断完善,现已成为国际公认的最优秀的科学计算与数学应用软件之一。其容涉与矩阵代数、微积分、应用数学、有限元法、科学技术、信号与系统、神经网络、小波分析与其应用、数字图像处理、计算机图形学、电子线路、电机学、自动控制与通信技术、物理、力学和机械振动等方面。MATLAB 的特点是语法结构简单,数值计算高效,图形功能完备,特别受以完成数据处理与图像生成为目的的科研人员的青睐。在高等院校,MATLAB 已经成为学生必须掌握的基本技能。在设计研究单位和工业部门,MATLAB 已经走出实验室,并被广泛应用于研究和解决各种具

19、体的工程问题2。2.12.1 MATLABMATLAB的发展简史的发展简史 MATLAB 是 Matrix Laboratory(矩阵实验室的缩写),最初由美国 Cleve Moler 博士在 70 年代末讲授矩阵理论和数据分析等课程时编写的软件包 Linpack 与 Eispack 组成,旨在使应用人员免去大量经常重复的矩阵运算和基本数学运算等繁琐的编程工作。1984年成立的 Math Works 公司正式把 MATLAB 推向市场,并从事 MATLAB 的研究和开发。1990年,该公司推出了以框图为基础的控制系统仿真工具 Simulink,它方便了系统的研究与开发,使控制工程师可以直接构造

20、系统框图进行仿真,并提供了控制系统中常用的各种环节的模块库。1993 年,Math Works 公司推出的 MATLAB4.0 版在原来的基础上又作了较大改进,并推出了 Windows 版,使命令执行和图形绘制可以在不同窗口进行。1994 年推出了 MATLAB4.2 版本,并得到广泛的重视和应用。1999 年,推出了 MATLAB5.3 版本,真正实现了 32 位运算,其速度更快、功能更完善、界面更友好,并提供了 Internet 搜索引擎,可以协助用户寻求在线帮助。版本 6.0、6.1 又作了更精细的改进,增加了许多新的功能。版本 7.0、7.1 包括拥有数百个部函数的主包和三十几种工具包

21、。工具包又可以分为功能性工具包和学科工具包。功能工具包用来扩充 MATLAB 的符号计算,可视化建模仿真,文字处理与实时控制等功能。学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。2.22.2 MATLABMATLAB的特点的特点2.2.12.2.1 MATLABMATLAB 的功能的功能 MATLAB 之所以成为世界流行的科学计算与数学应用软件,是因为它有着强大的功能。(1) 高质量、强大的数值计算功能。为满足复杂科学计算任务的需要,MATLAB 汇集了大量常用的科学和工程计算算法,如矩阵求逆、矩阵特征值以与快速傅立叶变换等。5 / 49(2) 数据分析

22、和科学计算可视化功能。MATLAB 不但科学计算功能强大,而且在数值计算结果的分析和数据可视化方面也远远优于其他同类软件。在科学计算和工程应用中,经常需要分析大量的原始数据和数值计算结果,MATLAB 能将这些数据以图形的方式显示出来,使数据间的关系清晰明了。(3) 强大的符号计算功能。在 MATLAB 的发展过程中,Math Works 公司以 Maple 的核心部分作为其符号计算功能的引擎,依靠 Maple 已有的库函数,实现了 MATLAB 环境下符号的计算功能。(4) 强大的非线性动态系统建模和仿真功能。MATLAB 提供了一个模拟动态系统的交互式程序 Simulink,允许用户通过绘

23、制框图来模拟一个系统,并动态地控制该系统。(5) 灵活的程序接口功能。应用程序接口(API)是一个允许用户编写的与 MATLAB 互相配合的 C.或 Fortran 程序的文件库。用户可以在 MATLAB 环境下直接调用已经编译过的C 和 Fortran 子程序,同样,在 C 和 Fortran 程序中也可以调用 MATLAB 的函数或命令,使得这些语言可以充分利用 MATLAB 的矩阵运算功能和方便的绘图功能。(6) 文字处理功能。MATLAB 记事本成功地将 MATLAB 与文字处理系统 Microsoft Word 集成为一个整体,为用户进行文字处理、科学计算、工程设计创造了一个统一的工

24、作环境。2.2.22.2.2 MATLABMATLAB 的技术特点的技术特点 MATLAB 还具有支持科学计算标准的开放式可扩充结构和跨平台兼容的特点,能够很好地解决科学和工程领域的复杂问题。(1) 界面友好,编程效率高。MATLAB 不仅免去了大量的经常重复的基本数学运算,而且其编译和执行速度都远远超过了采用 C 和 Fortran 语言设计的程序。(2) 功能强大,可扩展性强。MATLAB 语言不但提供了科学计算、数据分析与可视化、系统仿真等强大的功能,而且还具有可扩展性特征。MATLAB 支持用户对其函数进行二次开发,用户的应用程序可以作为新的函数添加到相应的工具箱中。(3) 图形功能灵

25、活方便。MATLAB 具有灵活的二维与三维绘图功能,在程序的运行过程中,可方便迅速地用图形、图像、声音、动画等多媒体技术直接表述数值计算结果,可以选择不同的坐标系,可以设置颜色、线型等,还可以将图形嵌入到用户的 Word 文件中。 (4) 在线帮助,有利于自学。用户可借助 MATLAB 环境下的“在线帮助”学习各种函数的用法。 总之,MATLAB 语言已经成为科学计算、系统仿真、信号与图像处理的主流软件。2.32.3 MATLABMATLAB图像类型图像类型图像类型是指数组数值与像素颜色之间定义的关系。MATLAB 图像处理工具箱支持五种类型的图像:(1) 二进制图像。在一幅二进制图像中,每一

26、个像素将取两个离散数值(0 或 1)中的一个,从本质上说,这两个数值分别代表状态“开”(on)或“关”(off)。(2) 索引图像。索引图像是一种把像素值直接作为 RGB 调色板下标的图像。(3) 灰度图像。灰度图像是包含灰度级(亮度)的图像。在 MATLAB 中,灰度图像由一个 uint8、uint16 或一个双精度类型的数组来描述。(4) 多帧图像。多帧图像也称为多页图像,是一种包含多幅图像或帧的图像文件。在 MATLAB 存中,多帧图像是一个四维数组,第四维用来指定帧的序号。多帧图像主要用于需要对时间或场景上相关图像集合进行操作的场合,例如,磁谐振图像切片或电影帧等。(5) RGB 图像

27、。RGB 图像也称为真彩图像,其每一个像素由三个数值来指定红、绿和蓝色分量。2.42.4 GUIGUI 传统的用户界面是指用户与计算机之间进行交互通信联系的平台。但在近几年,这种概念发生了巨大的变化,出现了多种形式的人机交互方式,从命令的交互方式转变到以图形界面为主的交互形式。现在,图形界面已在人机交互方式中占主导地位。图形用户界面(GUI)是包含图形对象(如窗口、图标、菜单和文本)的用户界面。以某种方式选择或激活这些对象,通常会引起动作或发生变化,最常见的激活方法是用鼠标或其他动作。MATLAB 也提供了在 MATLAB 应用程序中加入 GUI 的功能。GUI 的目前现状为:(1) 就用户界

28、面的具体形式而言,过去经历了批处理、联机终端(命令接口)、(文本)菜单等多通道多媒体用户界面和虚拟现实系统。(2) 就用户界面息载体类型而言,经历了以文本为主的字符用户界面(GUI)、以二维图形为主的用户界面(GUI)和多媒体用户界面,计算机与用户之间的通信带宽不断提高。(3) 就计算机输出信息的形式而言,经历了以符号为主的字符命令语言、以视觉感知为主的图形用户界面、兼顾听觉感知的多媒体用户界面和综合运用多种感观(包括触觉等)的虚拟现实系统。(4) 就人机界面中的信息维度而言,经历了一维信息(主要指文本流,如早期电传式终端)、二维信息(主要是二维图形技术,利用了色彩、形状、纹理等维度信息)、三

29、维信息(主要是三维图形技术,但显示技术仍利用二维平面为主)和多维信息(多通道的多维信息)空间。7 / 49不论从何种角度看,人机交互发展的趋势体现了对人的因素的不断重现,使人机交互更接近于大自然的形式,使用户能利用日常的自然技能,不需经过特别的努力和学习,认知负荷降低,工作效率提高。MATLAB 的用户,在指令窗中打开图形界面后,只要用鼠标进行选择和点击,就可浏览那丰富多彩的容。由此可见, 使用 GUI 给大家带来了许多方便。第第3 3章章 变换编码变换编码变换编码是目前应用最广泛的图像压缩编码方法,几乎所有的图像(除 2 值图像外)和视频压缩标准均以变换编码为工具。近年所发展的一些技术,如区

30、域或物体编码方法也以变换编码为基础。变换编码在压缩比、重构图像质量、适应围和算法复杂性等方面能获得好的折衷,在实际中得到了广泛应用3。3.13.1 变换编码的一般形式与意义变换编码的一般形式与意义信源编码实质是一种变换,变换就是将像素信息重组为更紧凑的形式,并产生一系列表示像素值的数字信号,并能在信道中更有效地传送。在变换编码中,用一组代表空间频率分布的变换系数表示一组空间几何位置像素值,通过这种映射能够巧妙地解除或减弱图像信号的相关性(原始图像的帧与帧、场与场、行与行之间存在很强的相关性)。显然,如果变换系数选择得恰当,所得变换系数之间的相关性要明显小于原始像素之间的相关性,从而达到降低冗余

31、度的目的。再根据人眼对图像高频成分不如对低频成分敏感的特点,对各个变换系数进行符合主观视觉特性的加权处理,而后量化,就可以获得大幅度的数据压缩。事实上变换编码都能实现信源编码的解相关性即压缩,换言之,变换并非一定要正交变换。正交变换在硬件技术中较为容易实现,这是由(矩阵)电路对称性决定的。变换编码不是直接对空间图像信号编码,而是首先将空间域图像信号映射变换到另一个正交矢量空间即变换域,将图像像素转变成一组非相关系数,然后对这些系数进行量化和编码。可以证明,基于块的变换编码对静止图像和视频帧是一种非常有效的压缩编码方法。为了充分利用像素之间的空间相关性,理想的变换块尺寸应该是整幅图像或视频帧大小

32、,但其计算量却是十分惊人的。为减少计算复杂度,在实际应用上一般都采用基于一定尺寸块的变换编码,即把整幅图像分成许多不重叠的块,对每个块进行变换编码。在静止图像和视频编码的许多国际标准采样基于 1616、88、44 的 DCT 变换编码方法。变换编码技术上比较成熟,理论也比较完整,广泛应用到各种静止图像数据压缩,以与运动图像的帧压缩,帧间预测误差信号的压缩编码。正交变换的种类很多,如傅里叶变换(Fourier Transform)、离散余弦变换(DCT)、沃尔什变换(Walsh Transform)、哈尔变换(Haar Transform)、斜变换(Slant Transform)、离散正弦变换

33、(DST)、K-L 变换(Karhunen Transform)、小波变换(Wavelet Transform)等。3.23.2 基本原理基本原理变换编码的通用模型如图 3.1 所示。其中映射变换是把原始信号中的各个样值从一9 / 49个域变换到另一个域,然后针对变换后的数据再进行量化(二次量化)与编码操作。接收端首先对接收到的进行解码和反量化(Dequantization),然后再进行反变换以恢复原来信号(在一定的保真度下)。映射变换的关键在于能产生一系列更有效的系数,对这些系数进行编码所需的总比特数,要比对原始数据进行编码所需的总比特数少得多,使数据率得以降低。映射变换量化编码反量化反映射

34、变换解码信道原始数据恢复数据图 3.1 变换编码的通用模型3.2.13.2.1 正交变换的去相关性正交变换的去相关性映射变换的方法很多,一般是指函数变换法,而常用的又是正交变换法。比如,我们所熟知的傅里叶变换就是利用复数域正交变换,将一个函数从时域描写变为频域的频谱展开。这样有可能使函数的某些特性变得明显,使问题的处理得到简化。现在用最简单的连续信号为例来说明图像经过正交变换如何能够去)2sin()(ftAty除空间相关性达到压缩图像数据量。当变量 t 从-到变换是,f(t)的取值有无穷多个,即使按照奈奎斯特采样定理进行采样,要描述该信号也需要限制采样间距保证有足够的采样点。如果将其变换到频域

35、表示,只需要用一个幅值参数 A 和一个频率参数 f 值就能完全描述信号了,可见在时域上采样值之间存在非常强的相关性,数据冗余度大。而变换域上的两个参数,相互独立,没有相关性,描述信号的数据量大大减少。对于图像信号也是如此,图像信号转换到变换域后,其相关性下降,数据冗余度减小,压缩数据有显著效果。从一个简单的图像实例来说明正交变换的去相关性。假设把一个 nn 像素的图像子块看成为维坐标空间上的一个坐标点,也就是说,在这个坐标空间上的不同坐标点对2n应于不同灰度分布的维图像子块(不同图像子块其区别在于不同的灰度分布,一样之处2n是其尺寸都是 nn)。而这个坐标空间的每一个坐标轴上坐标值对应的是图像

36、子块像素所有可能的灰度级。以 12 像素构成的子图像(即相邻两个像素组成的子图像)为例,设每个像素取 8 个灰度级(3bit 量化)。则图 3.2(a)中二维坐标的轴表示第一个像素可能取1x的 8 个灰度级,轴表示第二个像素可能取的 8 个灰度级。由、组成的二维坐标空2x1x2x间中不同坐标点对应于不同的 12 子图像,该点数值由两个像素的灰度所组成。所有两个像素点(,)图像子块的灰度分布为,共1x2x)77()71 () 11 ()01 ()70() 10()00(,有 64 种不同灰度分布的图像子块,用图 3.2(a)中的 64 个坐标点表示。对于一般图像而言,因相邻像素之间存在很强的相关

37、性,绝大多数的子图像中相邻两像素其灰度级相等或很接近,也就是说在直线=附近出现的概率大。或者说,绝大1x2x多数图像子块落在图 3.2(a)中的弧度。现在将坐标系逆时针转,如图 3.2(b)所示。在新的坐标系、中,即绝大多451y2y数图像子块落在轴附近,在这些区域上的图像子块,其与相差较大。由此表明变1y1y2y量、之间的联系比变量、之间的联系,在统计上更加独立,而且方差也重新分1y2y1x2x布。在原来坐标系中,图像子块的两个像素具有较大的相关性,能量的分布比较分散,两者具有大致一样的方差;而在变换后的坐标系中,图像子块的两个像素之间2221xx的相关性大大减弱,能量的分布向轴集中,其的方

38、差也远大于,即。从1y1y2y2221xx这个简单的例子可以看出,这种变换后坐标轴上方差不均匀分布正是正交变换编码能够实现图像数据压缩的理论根据。若按照人的视觉特性,只保留方差较大的那些变换系数分量,就可以获得更大的数据压缩比,这就是所谓视觉心理编码的方法之一。将上述简单的实例推广到一般的维图像的变换,图像在维变换域中,相关性nn2n大大下降。因此用变换后的系数进行编码,将比直接使用原图像数据编码获得更大的数据压缩4。0 1 23 4 5 6 72134567(a) 变换前1x2x0 1 23 4 5 6 72134567(b) 变换后1x2x1y2y图 3.2 正交变换的物理概念综上所述,图

39、像正交变换实现数据压缩的物理本质在于:把在原来坐标轴上彼此密切相关的像素所构成的矩阵经过多维坐标轴适当的坐标轴旋转和变换,变成统计上彼此较为相互独立、甚至达到完全独立的变换系数所构成的矩阵。或者说把接近均匀散布在各个坐标轴上的原始图像数据,变换在新的坐标系中,图像数据只集中在少数坐标上,实现高效率的压缩编码。3.2.23.2.2 变换编码性能判断变换编码性能判断从上面的例子看成,图像正交变换可以看成是选用新坐标系的过程。如将新坐标系用一组基矢量或变换基函数来表示,那么正交变换过程便可描述为图像如何用一组所选定的基矢量进行线性组合的过程。每个基矢量对图像的贡献就是相应基矢量的变换系数。求出图像块

40、在给定一组基矢量的变换系数的过程称为正变换,从变换系数恢复重建图像块的过程称为反变换。设一维离散信号有 N 个采样点组成,在变换前用矢量来表示,TNxxxX)(21,11 / 49其变换后的系数采用矢量来表示,用表示正交变换核矩阵,由变TNyyyY)(21,V换基矢量构成,即,则离散信号的正交变换式可以写成Nvvv,21)(21NvvvV, (3.1)VXY 当图像变换核矩阵是酉矩阵,或者说上式的正交变换基矢量满足正交归一化时,变换核矩阵存在逆矩阵,而且,是变换核矩阵的转置矩阵,此时根据变换1VTVV1TV后系数利用反变换重建原来图像: (3.2)YVYVXT1变换核矩阵满足: (3.3)IV

41、VVVTT表示 NN 的单位矩阵。I对于变换编码,除了对输入信号如何变换以与如何从变换系数反变换恢复图像之外,我们还关心变换前原始信号和变换后系数的统计特性,以便进一步明确变换编码性能。变换编码的性能依赖于所选定的基矢量,采用不同的就矢量,变换编码的去相关性能、计算复杂度、变换系数值以与变换系数分布也不一样。因此,一个正交变换应该关心以下几个主要容:(1) 去相关性。去相关性越强,变换之后的系数越独立,冗余数据越少。(2) 变换后数据的分布性。一个好的变换编码应该使图像能量尽可能地集中在少数几个位置上,也就是用幅值较大的很少几个系数便可以描述原来图像块。(3) 计算复杂度。所选用的基矢量简单,

42、能够很方便地求出变换后系数,同时也能很容易、无失真地从变换系数反变换得到原来图像值。信息论的研究表明,图像正交变换不改变信源的熵值,变换前后图像的信息量并无损失,完全可以通过反变换得到原来的图像值。但是在实际上,不是直接对变换的系数进行发送,而是对变换系数进行标量量化,对量化后的数据进行熵编码,生成二进制码流发送。接收端对二进制码流解码后进行反量化,然后再进行反变换来恢复图像,因此,实际应用的变换编码因为量化/反量化过程引入的变换系数前后不一致而存在变换图像编码失真。为了进一步描述正交变换编码的性能,用均方差 MSE 来描述正交变换编码器的失真,讨论变换前原始数据和变换后系数的一些统计特性和相

43、互关系。(1)均值矢量和协方差矩阵设变换前平均值向量为,协方差矩阵为,变换后系数的平均值向量为,协方xxCy差矩阵为,则有:yC 或者 (3.4)yTTTxVYEVYVEXExyVVCVVYVVYVEXXECyTTyTTyTTTxxx)()(或者 (3.5)TxyVVCC (2)总方差和总能量设变换前任一样值的方差,变换后系数的方差为ix)(22iixixxEiy,于是总方差和总能量存在关系式:)(22iiyiyyE (3.6)NiyNixii1212 (3.7)NiiNiiyx1212 (3)均方误差如果只采用变换系数的前面 m 个值来恢复原来图像,其重建值为,mTmmYVX则重建图像与原来

44、图像近似误差为,其均方误差为mkXXe (3.8)NmiyNmixiiXXE12122由于变换前后总能量保持不变,按照能量从大到小选择较大的 m 个系数重建时,其重建图像接近原来图像。或者说,通过选择 m 个具有较大方差的系数重建图像使得近似误差最小。3.2.33.2.3 变换编码的特点变换编码的特点在视频压缩中,最常用的变换方法是 DCT,DCT 被认为是性能接近 K-L 变换的准最佳变换,变换编码的主要特点有:(1) 在变换域里视频图像要比空间域里简单。(2) 视频图像的相关性明显下降,信号的能量主要集中在少数几个变换系数上,采用量化和熵编码可有效地压缩其数据。(3) 具有较强的抗干扰能力

45、,传输过程中的误码对图像质量的影响远小于预测编码5。3.33.3 最佳正交变换最佳正交变换K-LK-L变换变换 K-L 变换是遥感图像增强和信息提取中用得最多的线性变换,是对原波段图像进行波谱信息的线性投影变换,在尽可能不减少信息量的前提下,将原图像的高维多光谱空间的像素亮度投影到新的低维空间,减少特征空间维数,达到数据压缩、提高信噪比、提取相关信息、降维处理和提取原图像特征信息的目的,并能有效地提取影像信息。它可以使原来多波段图像经变换后提供出一组不相关的图像变量,最前面的主分量具有较大的方差,包含了原始影像的主要信息,所以要集中表达信息,突出图像的某些细部特征,可采用主分量变换来完成。离散

46、 K-L 变换是以图像的统计特征为基础的一种正交变换,也称为特征向量变换。由于其变换基矢量或者说变换矩阵是根据输入图像的统计性质得出的,也就是说其变换13 / 49矩阵是针对输入图像“量身定做”的,因此具有最佳的去相关性。K-L 变换的基本原理如下所述:任意时刻一个 NN 抽样图像,可用维矢量来表示),(yxfi2NiXNixxxxXTiNijiii, 2 , 1,221式中为第 次实现的矢量的第个分量。鉴于图像信号是随机变量,度量随机变量之ijxiiXj间的相关程度可用协方差(任意两个时刻上获得的随机变量的统计相关特性)矩阵表示,协方差矩阵是图像统计特性的重要反映。矢量 X 的协方差矩阵为:

47、xC (3.9)(TxxxMXMXEC式中,代表数学期望,此时根据的特征值所求的特征所求的特征矢量构)(XEMxExC成的矩阵,用对实施以下变换,由矩阵理论知,上式变换的结果是典AAxCTxYAACC型的对角矩阵,对角矩阵的非零数可以按递减大小排列,显然是正交矩阵,有,ATAA1因此实施下列变换必是正交矩阵,即,满足此条件的变换即为 K-L 变换。)(xMXAY容易从 K-L 变换的过程和结果得到 KL 变换具有以下性质:(1) KL 变换使矢量信号的各个分量互不相关,即变换域信号的协方差矩阵为对角线型。(2) 在所有正交变换中,KL 变换能力最集中于部分变换系数中。(3) 对于所有正交变换,

48、在同样失真条件下,KL 变换达到最小的码率。(4) KL 变换是在均方误差准则下,失真最小的一种变换,故又称最佳变换6。15 / 49第第4 4章章 JPEGJPEG图像压缩图像压缩4.14.1 JPEGJPEG概述概述 JPEG 是联合图像专家小组的英文缩写。是一个由 ISO 和 IEC 两个组织机构联合组成的一个专家组,该专家小组多年来一直致力于标准化工作。他们开发研制出连续色调、多级灰度以与负责制定静态的数字图像数据压缩编码标准,这个专家组开发的算法称为JPEG 算法,并且成为,因此又称为 JPEG 标准。JPEG 是一个适用围很广的静态图像数据压缩标准,既可用于灰度图像又可用于彩色图像

49、。图像压缩的目的在于以较少的数据来表示图像以节约存储费用,或者传输时间和费用。JPEG 压缩算法可以用失真的压缩方式来处理图像,但失真的程度却是肉眼所无法辨认的。这也就是为什么 JPEG 会有如此满意的压缩比例的原因。它不仅适用于静态图像的压缩;电视图像序列的帧图像的压缩编码,也常采用 JPEG 压缩标准7。JPEG 标准委员会完成了详尽的技术评估、测试、选择、有效化和文档编制工作,形成了完整的国际标准。这个国际标准经的起质量和时间的检验。随着各种各样的图像应用在开放网络化计算机系统中,JPEG 数字图像压缩文件,作为一种数据类型,如同文本和图形文件一样地存储和传输。JPEG 的目的是为了给出

50、一个适用于连续色调图像的压缩方法,使之满足如下要求:(1) 达到或接近当前压缩比与图像保真度的技术水平,能覆盖一个较宽的图像质量等级围,能达到“很好”或“极好”的评估,与原始图像相比,人的视觉难以辨别。(2) 能适用于任何连续色调的图像,长宽比不受限制,同时也不受限于景物容、图像的复杂程度和统计特性等。(3)计算的复杂性是可控的,其软件可在各种 CPU 上完成,算法也可用硬件实现。(4)JPEG 算法具有四种工作模式: 顺序编码:每图像分量按从左到右,从上到下扫描,一次扫描完成编码。 累进编码:图像编码在多次扫描中完成。 无失真编码:该方法保证解码后完全精确地恢复采用值。 分层编码:图像在多个

51、空间分辨率进行编码。当信道传输速率慢时,接收端显示器分辨率也不高的情况下,只需做低分辨率图像解码,不必进行高分辨率解码。4.24.2 JPEGJPEG图像图像编码算法的实现编码算法的实现JPEG 压缩编码算法的主要计算步骤如下:图像颜色模式转换,分块采样,离散余弦变换(DCT),量化(quantization),Z 字形编码(zigzag scan),使用差分脉冲编码调制(differential pulse code modulation,DPCM)对直流系数(DC)进行编码,使用行程长度编码(run-length encoding,RLE)对交流系数(AC)进行编码,熵编码(entropy

52、 coding)。4.2.14.2.1 离散余弦编码离散余弦编码DCT 变换的全称是离散余弦变换,是指将一组光强数据转换成频率数据,以便得知强度变化的情形。若对高频的数据做些修饰,再转回原来形式的数据时,显然与原始数据有些差异,但是人类的眼睛却是不容易辨认出来。当图像数据分成一个 88 矩阵后,还必须将每个数值减去 128,然后一一代入 DCT变换公式中,即可达到 DCT 变换的目的。图像数据值必须减去 128,是因为 DCT 转换公式所接受的数字围是在-128 到+127 之间。DCT 变换编码其变换前后的信号熵和能量不变,在时域(或空域)中的 n 维信号 x 其变换核可分离的正、逆 DCT

53、 变换分别定义如下 (4.1)1102) 12(cos)()(2)(10NkNknnxkCNkXNn, (4.2)1-N102) 12(cos)()(2)(10,nNknkXkCNnxNn其中121102/1)(NkkkC,DCT 的各行(列)基矢量均是归一正交的(为了保证变换前后熵和数相等)。由于图像信号的统计特性接近一阶马氏链,因此 DCT 基矢量与之非常匹配,且不仅 DCT 基矢量的设计在多数情况下符合 HVS 特性,而且编码电路简单。综合 DCT 编码特性与相关性等方面因素,它仅次于理想的 K-L 变换,所以 DCT 在众多变换(DCT、斜变换、Haar 变换、KLT和沃尔什变换等)中

54、脱颖而出。经过 DCT 变换后的系数主要值集中在左上角低频区域,其中直流值最大。由于变换后系数矩阵右下角大多数高频系数趋向于零,这样就为结合 HVS特性,采用(有死区)量化、Zigzag 扫描、截断 DCT 变字长压缩编码创造了条件,更重要的是为数字图像/视音频信号的压缩找到了切实可行的方法。尽管带限的频率域模型存在频谱的截断误差,但由于其求解精度和抗噪声能力较好,该方法同样有助于问题更加准确地描述和求解,这也正是频率方法研究的意义所在8。数字图像可以看成是一个 MN 的矩阵,借助于二维 DCT,可以将图像从空间),(nmx17 / 49域(即平面)变换到 DCT 域(即平面)。以求和形式定义

55、的二维 DCT 为mnkl (4.3)10102) 12(cos2) 12(cos),()()(2),(MmNnNlnMkmnmXlCkCMNlkX其中 k=0,1,M-1;l=0,1,N-1.4.2.24.2.2 量化量化88 图像子块通过 DCT 变换后,其低频分量主要集中在左上角,高频分量分布在右下角。由于人眼对高频分量远没有低频分量敏感,大量的图像信息(如亮度)主要包含在低频中,所以编码时,可以忽略图像的高频分量,从而在视觉损失很小的情况下达到压缩的目的。要将高频分量去掉,就要用到量化,它是产生信息损失的根源。量化过程就是每个 DCT 系数除以各自的量化步长并取整,得到量化系数: (4

56、.4)5 . 0)()()(vuSvuFINTvuF,这里的取整采用四舍五入的方式。反量化则是在解码器中由量化系数恢复 DCT 系数的过程: (4.5)()()(vuSvuFvuF,对于 DCT 变换后的 64 个系数,利用量化表中相对应的 64 个数值(量化步长)进行均匀量化(线性量化),实现图像数据的实际压缩。应用程序可以根据图像的性质、显示设备和观察条件等因素设定量化表的值。JPEG 标准没有规定缺省的量化表,但它给出了一些指导性的量化表。如图 4.1、图 4.2 所示,分别用于对亮度和色差信号。之所以用两量化表,是因为亮度分量比色差分量更重要,因而对亮度采用细量化,对色差采用粗量化。量

57、化表左上角的值较小,右下角的值较大,这样就达到了保持低频分量、抑制高频分量的目的。这两个量化表均基于两个因素:一是人的视觉心理阈值;二是对于大量图像的观测,适应于 8bit 精度、水平方向进行 2:1 抽样的图像。目前在许多一般应用的 JPEG 基本系统中均使用这两个量化表,并且取得了良好的效果。9910310011298959272101120121103877864499211310481645535247710310968563722186280875129221714566957402416131455605826191412126151402416101116图 4.1 亮度信号的量

58、化表99999999999999999999999999999999999999999999999999999999999999999999999999996647999999999956262499999999662621189999999947241817图 4.2 色差信号的量化表4.2.34.2.3 编码编码Huffman 编码无专利权问题,成为 JPEG 最常用的编码方式,Huffman 编码通常是以完整的 MCU 来进行的。编码时,每个矩阵数据的 DC 值与 63 个 AC 值,将分别使用不同的Huffman 编码表,而亮度与色度也需要不同的 Huffman 编码表,所以一共需要

59、4 个编码表,才能顺利地完成 JPEG 编码工作。DC 编码是采用差值脉冲编码调制的差值编码法,也就是在同一个图像分量中取得每个 DC 值与前一个 DC 值的差值来编码,同时,由于其后的附加位用以唯一的规定该类中一个具体的差值幅度。亮度分量和灰度分量的统计特性不同,其码字结构为:C=(SSSS,附加位),其中 4bits 二进制码“SSSS”用来将 DC 差值的幅度围分为 255。DC 采用差值脉冲编码的主要原因是由于在连续色调的图像中,其差值多半比原值小,对差值进行编码所需的位数,会比对原值进行编码所需的位数少许多,具体可看表 4.1差值 Bits数与差值容对照表。表 4.1 差值 Bits

60、 数与差值容对照表差值 BitsDC 差值容001-1,12-3,-2,2,33-7,-4,4,74-15,-8,8,155-31,-16,16,316-61,-32,32,637-127,-64,64,1278-255,-128,128,25518-511,-256,256,51110-1023,-512,512, ,102319 / 4911-2047,-1024,1024,2047在差值前端另外加入一些差值的 Huffman 码值,例如亮度差值为 5(101)的位数为3,在 Huffman 码值应该是 100,两者连接在一起即为 100101。表 4.2 和表 4.3 分别是亮度和色度

温馨提示

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

评论

0/150

提交评论