JPEG图像压缩算法及其实现

合集下载

JPEG静图像压缩实验

JPEG静图像压缩实验

JPEG静图像压缩实验
一.实验目的
1.了解数字图像压缩的一类方法
2.掌握2D快速DCT变换的算法
二.实验原理
JPEG标准是面向连续色调静止图像的图像压缩标准。

它定义了多种类型的工作模式,其中最基本的是基于8*8块的DCT变换的顺序编码。

就是将一帧图像分为8*8的数据块单元,按照从左到右,自上到下的顺序对”块流”编码,其编码解码框图如下:
三.实验内容
按照如上框图实现一帧图像的压缩编码和解码
四.代码理解
1.编码主程序
五、实验结果
六.思考题
1.计算图像压缩比,并比较原图像的效果
使用lady.dat做实验的图像压缩比为:63/5.436=11.8:1
左图为压缩前的lady.bmp,右图为压缩后的lady.jpg
两图没有明显的区别,但比较细节,右图稍微模糊,并且局部区域有一些块化现象。

2.改变g-scale和量化矩阵的元素,比较压缩比和恢复图像的效果
Gscale141625
压缩比 3.197.5418.122.91
G_scale=1G_scale=4
G_scale=16G_scale=25
量化矩阵Q1Q2
压缩比7.3418.44
Q1=0.5*Q0,Q2=2*Q0,Q0为原始的量化矩阵
Q1Q2
3.对于8bit的像素值,在经过DCT变换后,值域为[-2048,2047],有可能超过码表范围。

JPEG2000图像压缩算法标准

JPEG2000图像压缩算法标准

JPEG2000图像压缩算法标准摘要:JPEG2000是为适应不断发展的图像压缩应用而出现的新的静止图像压缩标准。

本文介绍了JPEG2000图像编码系统的实现过程, 对其中采用的基本算法和关键技术进行了描述,介绍了这一新标准的特点及应用场合,并对其性能进行了分析。

关键词:JPEG2000;图像压缩;基本原理;感兴趣区域引言随着多媒体技术的不断运用,图像压缩要求更高的性能和新的特征。

为了满足静止图像在特殊领域编码的需求,JPEG2000作为一个新的标准处于不断的发展中。

它不仅希望提供优于现行标准的失真率和个人图像压缩性能,而且还可以提供一些现行标准不能有效地实现甚至在很多情况下完全无法实现的功能和特性。

这种新的标准更加注重图像的可伸缩表述。

所以就可以在任意给定的分辨率级别上来提供一个低质量的图像恢复,或者在要求的分辨率和信噪比的情况下提取图像的部分区域。

1.JPEG2000的基本介绍及优势相信大家对JPEG这种图像格式都非常熟悉,在我们日常所接触的图像中,绝大多数都是JPEG格式的。

JPEG的全称为Joint Photographic Experts Group,它是一个在国际标准组织(ISO)下从事静态图像压缩标准制定的委员会,它制定出了第一套国际静态图像压缩标准:ISO 10918-1,俗称JPEG。

由于相对于BMP等格式而言,品质相差无己的JPEG格式能让图像文件“苗条”很多,无论是传送还是保存都非常方便,因此JPEG格式在推出后大受欢迎。

随着网络的发展,JPEG的应用更加广泛,目前网站上80%的图像都采用JPEG格式。

但是,随着多媒体应用领域的快速增长,传统JPEG压缩技术已无法满足人们对数字化多媒体图像资料的要求:网上JPEG图像只能一行一行地下载,直到全部下载完毕,才可以看到整个图像,如果只对图像的局部感兴趣也只能将整个图片载下来再处理;JPEG格式的图像文件体积仍然嫌大;JPEG格式属于有损压缩,当被压缩的图像上有大片近似颜色时,会出现马赛克现象;同样由于有损压缩的原因,许多对图像质量要求较高的应用JPEG无法胜任。

浅析静止图像JPEG压缩技术

浅析静止图像JPEG压缩技术

等混合成一个整体数据流 , 即形成 J E P G文 件。 解码过程和编码的时候刚好相反, E J G P 解码器先从数据流中获取解码所必须的信息 ( 色彩分量信息 , 量化表和编码表等) , 然后将
各 个 色彩 分 量分 别 解码 。 J E P G标 准 的压缩 编码与解码是有失真的 , 变换后 系数的量化 是 引起失 真 的主 要原 因。 缩 的效 果 与 图像 压 内容本身有较大的关系 , 高频成份少的图像 比高 频成 份 多 的 图像可 获 得 更高 的 压缩 比 , 而 图像仍 有较 好的 质 量 。 JE P G压缩算法对于 中等复杂程度的彩 色 图像, 其压缩比与恢复图像的质量大致如 下所示( 图像每像素 8 原始 比特) : 压 缩效 果( 比特 /像素 ) 质量 02- 05 中好, . - .0 5 满足一 些特殊的应用
JE ( itpcueep r go p 是 P G jn i r x et ru ) o t 对静止灰度或彩色图像的压缩标准。 96 18 年 由国际电报电话咨询委员会 ( C T )和 国 C II 际标准化协会 ( O)两个国际组织联合成 I S 立了一个联合专家小组 ( it h t rp i Jn oo ahc o P g E pr ru ) E G是联合图像专家小 x t G op ,J E e s 组的英文缩 写。联合图像专家小组 , 多年来 直致力于标准化工作, 他们开发研制出连 续色调 、 多级灰度、 静止图像的数字图像压 缩编码方法 。这个压缩编码方法称为 J E PG 算法。J E P G算法被确定为 J E P G国际标准 , 它是国际上彩色、 灰度、 静止图像的第一个 国际标准。J E P G标准是一个适用范围广泛 的通用标准 。 它不仅适于静图像的压缩 , 电 视图像序列的帧内图像的压缩编码也常采用 JE P G压缩标准, 9 2 19 年正式成为国际标准 。 JE P G专家组开发了两种基本的压缩算 法 一种 是采 用 以预 测技 术 为基 础 的无 损压 缩算法 ,另一种是采用以 DC T为基础的有 损压缩算法。使用有损压缩算法时 , 在压缩 比为2 :的情况下 , 5l 压缩后还原得到的图像 与原始图像相比较, 很难于找出它们之间的 存在的细微区别 , 正因为如此这种压缩算法 得到了广泛的应用。在失真方式中, 又分 只 处理 取样 比 例为 8 的基 本模 式 和可 以处 理 位 取样比例 1 位的扩展模式。 2 /E P G标准有三个范畴 : ()基于 DC 的扩 展过 程 (xe dd 1 T E tn e DC ae rcs) 用 累进 工 作方 式 , T B sd Poes使 采 用自适应算术编码过程。 () 2 基本顺序过程 ( aen e uni B sl eSq e t l i a poes )实现 有 损 图像压 缩 ,重建 图像 质 rcs s e 量达到人眼难以观察出来的要求。 采用的是 88 x 像素 自适应DC T算法、 量化及 H f n u ma 型的熵编码器。 () 3 无失真过程 (os s r . s 采 L sl s P ce ) e s vs 用预测编码及Hu ma 编码 ( f n 或算术编码 ) ,

JPEG压缩 原理 LZW算法

JPEG压缩 原理 LZW算法

1 LZW算法的大体思想LZW是一种比较复杂的压缩算法,其压缩效率也比较高。

我们在这里只介绍一下它的基本原理:LZW把每一个第一次出现的字符串用一个数值来编码,在还原程序中再将这个数值还成原来的字符串。

例如:用数值0x100代替字符串“abccddeee”,每当出现该字符串时,都用0x100代替,这样就起到了压缩的作用。

至于0x100与字符串的对应关系则是在压缩过程中动态生成的,而且这种对应关系隐含在压缩数据中,随着解压缩的进行这张编码表会从压缩数据中逐步得到恢复,后面的压缩数据再根据前面数据产生的对应关系产生更多的对应关系,直到压缩文件结束为止。

LZW是无损的。

GIF文件采用了这种压缩算法。

要注意的是,LZW算法由Unisys公司在美国申请了专利,要使用它首先要获得该公司的认可。

2JPEG压缩编码标准JPEG是联合图象专家组(Joint Picture Expert Group)的英文缩写,是国际标准化组织(ISO)和CCITT联合制定的静态图象的压缩编码标准。

和相同图象质量的其它常用文件格式(如GIF,TIFF,PCX)相比,JPEG是目前静态图象中压缩比最高的。

我们给出具体的数据来对比一下。

例图采用Windows95目录下的Clouds.bmp,原图大小为640*480,256色。

用工具SEA(version1.3)将其分别转成24位色BMP、24位色JPEG、GIF(只能转成256色)压缩格式、24位色TIFF压缩格式、24位色TGA压缩格式。

得到的文件大小(以字节为单位)分别为:921,654,17,707,177,152,923,044,768,136。

可见JPEG比其它几种压缩比要高得多,而图象质量都差不多(JPEG处理的颜色只有真彩和灰度图)。

正是由于JPEG的高压缩比,使得它广泛地应用于多媒体和网络程序中,例如HTML语法中选用的图象格式之一就是JPEG(另一种是GIF)。

这是显然的,因为网络的带宽非常宝贵,选用一种高压缩比的文件格式是十分必要的。

图像压缩算法原理:JPEG、PNG等压缩方式

图像压缩算法原理:JPEG、PNG等压缩方式

图像压缩算法原理:JPEG、PNG等压缩方式图像压缩算法旨在减小图像文件的大小,同时保持尽可能多的图像质量。

JPEG(Joint Photographic Experts Group)和PNG(Portable Network Graphics)是两种常见的图像压缩方式,它们有不同的原理和适用场景。

JPEG 压缩算法原理:离散余弦变换(DCT): JPEG 使用离散余弦变换将图像从空间域变换到频域。

DCT将图像分解为一系列频率分量,允许更多的信息被聚焦在低频分量上,这些低频分量对人眼更敏感。

量化:在DCT之后,通过量化将每个频率分量的数值映射为一个较低的精度。

高频分量被更多地量化为零,从而进一步减小数据。

哈夫曼编码:使用哈夫曼编码对量化后的数据进行熵编码。

哈夫曼编码对常见的值使用较短的编码,对不常见的值使用较长的编码,以进一步减小文件大小。

色彩空间转换: JPEG通常将RGB颜色空间转换为YCbCr颜色空间,其中Y表示亮度(灰度),Cb和Cr表示色度(颜色信息)。

这样可以将图像的亮度和色度分离,使得在色度上的降采样更容易。

PNG 压缩算法原理:无损压缩:与JPEG不同,PNG是一种无损压缩算法,它保留了原始图像的每一个像素的精确信息。

这使得PNG适用于需要完整性的图像,如图标、图形等。

差分预测: PNG使用差分预测(Delta Predictive Coding)来减小冗余。

通过预测每个像素值与其周围像素值之间的差异,PNG可以用较小的数据表示图像。

LZ77压缩: PNG使用LZ77算法进行数据压缩。

该算法通过查找并用指向先前出现的相似数据的指针替换当前数据,从而减小文件大小。

无调色板和透明度支持: PNG支持真彩色图像,并且可以存储图像的透明度信息。

这使得PNG在需要保留图像质量的同时支持透明背景。

总体而言,JPEG适用于需要较小文件大小,且可以容忍一些信息损失的场景,而PNG适用于需要无损压缩和透明度支持的场景。

JPEG图像压缩算法基本介绍

JPEG图像压缩算法基本介绍

JPEG图像压缩算法基本介绍JPEG压缩算法可以用失真的压缩方式来处理图像,但失真的程度却是肉眼所无法辩认的。

这也就是为什么JPEG会有如此满意的压缩比例的原因。

下面主要讨论,JPEG基本压缩法。

一、图像压缩算法之JPEG压缩过程JPEG压缩分四个步骤实现:1.颜色模式转换及采样;2.DCT变换;3.量化;4.编码。

二、图像压缩算法具体操作1、图像压缩算法之颜色模式转换及采样RGB色彩系统是我们最常用的表示颜色的方式。

JPEG采用的是YCbCr色彩系统。

想要用JPEG基本压缩法处理全彩色图像,得先把RGB颜色模式图像数据,转换为YCbCr颜色模式的数据。

Y代表亮度,Cb和Cr则代表色度、饱和度。

通过下列计算公式可完成数据转换。

Y=0.2990R+0.5870G+0.1140BCb=-0.1687R-0.3313G+0.5000B+128Cr=0.5000R-0.4187G-0.0813B+128人类的眼晴对低频的数据比对高频的数据具有更高的敏感度,事实上,人类的眼睛对亮度的改变也比对色彩的改变要敏感得多,也就是说Y成份的数据是比较重要的。

既然Cb成份和Cr成份的数据比较相对不重要,就可以只取部分数据来处理。

以增加压缩的比例。

JPEG 通常有两种采样方式:YUV411和YUV422,它们所代表的意义是Y、Cb和Cr三个成份的数据取样比例。

2、图像压缩算法之DCT变换DCT变换的全称是离散余弦变换(Discrete Cosine Transform),是指将一组光强数据转换成频率数据,以便得知强度变化的情形。

若对高频的数据做些修饰,再转回原来形式的数据时,显然与原始数据有些差异,但是人类的眼睛却是不容易辨认出来。

压缩时,将原始图像数据分成8*8数据单元矩阵,例如亮度值的第一个矩阵内容如下:JPEG将整个亮度矩阵与色度Cb矩阵,饱和度Cr矩阵,视为一个基本单元称作MCU。

每个MCU所包含的矩阵数量不得超过10个。

JPEG图像压缩技术的实现与优化

JPEG图像压缩技术的实现与优化
1 4 1 8 2 4 49 72
1 2 1 3
1 7 22 3 5 6 4 9 2
1 4 1 6
2 2 3 7 5 5 7 8 9 5
1 9 2 4
2 9 5 6 6 4 8 7 9 8
2 6 4 0
5 1 68 8 1 13 o l2 1
JE P G推 荐 的高低 频亮 度量 化表 如 表 1 所示 。
表 1 亮 度 量化 表
、~ 型 、 、


1 6

1 1

1 0

1 6

2 4

4 0

51

61
1 2
3 4 5 6 7
1 2 1 4
h s a e ,a d i e l a i pi ai o n F G w sgv n i d ti ti p p r n srai t na d o t z t n f w o P A a ie eal .T e ts r s l i dc td ta ok d t z o n mi o l n s h e t e ut n i e t t r e a h iw
vr ห้องสมุดไป่ตู้l. ey we1
Ke o d I g o rsi J E Wa ee a s r yW r s maec mpes n P G o vltt f m r o n
1 引言
有损静态图像压缩当前有两种 比较流行 的标准 JE P G和 JE 20 。它们都是 由联合 图像专家组(o t P G 00 Ji n Po g piE prGop 开发的, ht r h xe r ) oa c t u 前者是基于离散余弦变换( i re o n T nfm,C ) Ds e s e r s r D T 变换 , c tC i a o 后者是基于 小波 变换 。二 者采用 的 编码方 式不 同… 但都 在数 字 图像 处理 领域 得 到 了广 泛 的应 用 。 由于 JE 20 1, P G 00编码

图像JPEG压缩的matlab实现

图像JPEG压缩的matlab实现

图像JPEG压缩的matlab实现图像JPEG压缩的matlab实现图像JPEG压缩的matlab实现作者姓名:专业名称:信息⼯程指导教师:讲师摘要随着现代经济的发展,影像风暴已经席卷了我们的⽇常⽣活,图像对于⼈们已经息息相关。

⼈们对计算机实时处理图像的要求就相对有所提⾼。

现在我们就⾯对⼀个问题,如何在保证图像质量的前提下,同时能够考虑到实时性和⾼效性就成了⼀个⼤家关注的问题。

那么对图像数据信息进⾏必要的压缩,以便能够保证图像的快速存储和传输。

但是,我们通常看到的图像是⼀种重要的⼆维信号,所以它本⾝就包含⾮常庞⼤的数据量,为了快速存储和实时传输,就必须对图像信息进⾏相应的压缩处理。

新兴的数学⼯具是局域DCT变换是⼀种新兴的数学⼯具,在现在社会中,图像压缩技术现在正受到⼤量的关注与研究。

本次课题设计在分析近年来,在图像处理领域,对图像压缩普遍⽅法的基础之上,充分学习和分析了基于DCT变换的图像压缩的相关编码及其基本原理和实现步骤。

简单概述了图像压缩的基本原理以及发展现状和⽅向,全⾯分析了DCT变换算法以及思路,提出了采⽤DCT变换压缩的依据和优势。

本⽂同时也介绍了图像压缩过程的重要步骤——编码量的⽅法和原理。

为了⽅便简单,将使⽤MATLAB2010实现JPEG图像压缩的仿真。

在论⽂最后,将介绍仿真的过程以及仿真结果说明,阐述⽤MATLAB来实现离散余弦变换的图像压缩的基本过程,并总结相关⽅法的优缺点。

同时也将充分展⽰压缩前后的图像,并做相应的⽐较。

关键词:图像压缩DCT matlab仿真AbstractWith the development of modern economy, the storm has swept through the image of our daily life, people have been closely related to the image for the. People's requirements on image real-time processing is relatively improved. Now we face a problem, how to guarantee the quality of the image, at the same time can be old enough considering the real-time and efficiency has become an issue of concern. This information is certain to image compression and processing has become a very important link. However, the image is an important signal, due to the large amount of data, while the storage and transmission of the compressed. New mathematical tools are discrete cosine transform is a new mathematical tool, based on the discrete cosine transform image compression technology is now being a lot of attention and research.In this paper, based on the analysis of the general methods of image compression in recent years, the basic principles and implementation steps of image compression based on DCT transform are also discussed. In this paper, the principle and development of image compression are introduced briefly, and the DCT transform algorithm is analyzed and compared with other compression methods. The basis of DCT transform compression is proposed. The final step of the image compression process is to encode the quantized image. This. We use MATLAB6.5 to realize the simulation of JPEG image compression. The simulation results show that using MATLAB to achieve the image discrete cosine transform compression method is simple, fast, small error advantages, greatly improves the efficiency and accuracy of image compression.Keywords: DCT ,matlab,simulation image, compression⽬录图像JPEG压缩的matlab实现........................................................ I 摘要. (I)Abstract.......................................................................................... II ⽬录. (III)前⾔ (1)1 绪论 (3)1.1论⽂研究背景及意义 (3)1.2 JPEG图像的发展历史及简介 (4)1.3 JPEG图像在DCT中压缩的作⽤ (5)1.4 本⽂研究的主要内容 (6)2 图像压缩编码原理 (7)2.1 DCT变换的来源 (7)2.2基于DCT的JPEG图像压缩编码步骤 (8)2.3图像压缩处理技术基本理论 (9)3 图像压缩的MATLAB实现 (12)3.1离散余弦变换的定义及原理 (12)3.2离散余弦变换的算法实现 (13)3.3图形⽤户界⾯介绍 (14)3.3.1图像⽂件读取 (15)3.3.2图像⽂件输出 (16)4 运⾏结果及分析 (18)4.1 程序流程图 (18)4.2 MATLAB仿真结果 (19)4.3 实验结果及分析 (20)总结 (23)参考⽂献 (25)致谢 (26)附件1 图像JPEG压缩的matlab程序 (27)前⾔在当今,⼈们⼤多都都已经迈⼊了信息化的社会,信息交换技术已经发展出不同的形式,主要的信息分为三种形式:1.⽂字2.⾳频3.图像。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

多媒体技术及应用JPEG图像压缩算法及其实现罗群书0411102班2011211684一、JEPG压缩算法(标准)(一)JPEG压缩标准JPEG(Joint Photographic Experts Group)是一个由ISO/IEC JTC1/SC2/WG8和CCITT VIII/NIC于1986年底联合组成的一个专家组,负责制定静态的数字图像数据压缩编码标准。

迄今为止,该组织已经指定了3个静止图像编码标准,分别为JPEG、JPEG-LS和JPEG2000。

这个专家组于1991年前后指定完毕第一个静止图像压缩标准JPEG标准,并且成为国际上通用的标准。

JPEG标准是一个适用范围很广的静态图像数据压缩标准,既可用于灰度图像又可用于彩色图像。

JPEG专家组开发了两种基本的静止图像压缩算法,一种是采用以离散余弦变换(Discrete Cosine Transform, DCT)为基础的有损压缩算法,另一种是采用以预测技术为基础的无损压缩算法。

使用无损压缩算法时,其压缩比比较低,但可保证图像不失真。

使用有损压缩算法时,其算法实现较为复杂,但其压缩比大,按25:1压缩后还原得到的图像与原始图像相比较,非图像专家难于找出它们之间的区别,因此得到了广泛的应用。

JPEG有4种工作模式,分别为顺序编码,渐近编码,无失真编码和分层编码,他们有各自的应用场合,其中基于顺序编码工作模式的JPEG压缩系统也称为基本系统,该系统采用单遍扫描完成一个图像分量的编码,扫描次序从左到右、从上到下,基本系统要求图像像素的各个色彩分量都是8bit,并可通过量化线性地改变DCT系统的量化结果来调整图像质量和压缩比。

下面介绍图像压缩采用基于DCT的顺序模式有损压缩算法,该算法下的JPEG压缩为基本系统。

(二)JPEG压缩基本系统编码器JPEG压缩是有损压缩,它利用了人的视觉系统的特性,将量化和无损压缩编码相结合来去掉视觉的冗余信息和数据本身的冗余信息。

基于基本系统的JPEG压缩编码器框图如图1所示,该编码器是对单个图像分量的处理,对于多个分量的图像,则首先应将图像多分量按照一定顺序和比例组成若干个最小压缩单元(MCU),然后同样按该编码器对每个MCU各个分量进行独立编码处理,最终图像压缩数据将由多个MCU压缩数据组成。

图1 JPEG压缩编码器结构框图JPEG压缩主要步骤如下:(1)图像压缩预处理;(2)正向离散余弦变换(FDCT);(3)DCT系数量化;(4)编码。

(三)图像压缩预处理图像压缩前进行预处理,主要包括对原图像颜色空间转换、大小的调整和采样、整理MCU 单元。

JPEG压缩的对象是基于YUV颜色空间,对于其他颜色空间的图像数据要先应用相应的转换公式转换到YUV颜色空间。

由于后续图像分块及整理MCU单元的需要,对于原图像宽度和长度应当扩展为8的整数倍,针对YUV411、YUV420等需要降采样处理的图像则要求扩展为16的整数倍,JPEG标准建议通过复制每有一个分量最右边的列和最下面的行来进行扩展。

通过对原图像的降采样,将可以减少部分图像数据,增加压缩比,由于人眼对亮度信号Y比较敏感,而对色差信号UV不敏感,因此可以对原图像色度信号进行降采样处理,而人眼却基本感觉不到图像的变化,JPEG压缩常用可处理降采样处理格式为YUV422、YUV411和YUV420,本文采用YUV411格式,该格式为每个像素都提取Y分量,而UV分量在水平方向上每4个像素采样一次。

JPEG压缩的最小单元为MCU,对于未降采样的图像数据(非交织数据),一个MCU就是一个数据单元,而对于降采样的图像数据(交织数据),一个MCU就是一系列在该扫描中由分量的采样因子定义的数据单元。

本文采用YUV411格式,则一个MCU将由Y分量水平4个8×8图像块、水平一个U分量和一个V分量8×8图像块组成。

基本系统将按照从上到下、从左到右的顺序将原图像整理为若干个MCU,后续JPEG压缩就是对每个MCU中各分量的图像块分别进行压缩,所有MCU的排列顺序就是最终图像压缩数据的排列顺序。

(四)正向离散余弦变换(FDCT)对每个8×8图像块进行FDCT之前,采样值应该先进行幅度值的位移,使之成为一个有符号的数,方法是将采样值减去,其中P为采样的精度,本文P取8位,幅度位移为128,即将每个采样点像素值减去128后再进行FDCT,FDCT的数学表达式为:8×8图像块经过FDCT变换后得到8×8的频率系数数组,该数组位置系数称为直流系数(DC),其他63个系数称为交流系数(AC)。

直接应用公式(3-1)进行计算其计算量较大,许多文献提出了该公式的优化计算方法,以提高运算效率,比较常见的是将该公式分解为两个一维的FDCT进行计算,分解后的公式为:(五)DCT系数的量化经过FDCT变换后的频率系数是一些浮点数,需进行均匀量化为JPEG可编码的整数系数,每一个FDCT变换后的频率系统使用一个量化器,每个量化器的步长Q(u,v)可由指定量化表给定,本文使用的量化表采用JPEG标准推荐的两个量化表,分别用于亮度和色差信号。

通过线性地改变量化表各元素数值可以控制图像压缩后的质量和压缩比。

可通过对量化表各元素乘一个调整因子fa来进行量化表元素数值调整,设所需图像质量系数为Q,则调整因子fa的计算表达式为:查看图片量化表各元素的新数值为:查看图片由于量化表为8位存储,计算的新数值应限制在1~255范围内。

量化后的DCT系数为:查看图片量化取整造成一定的数据精度损失,与原图像数据产生差异,这是造成JPEG图像压缩存在一定失真的主要原因。

通过改变Q的数值可以控制图像压缩比,一般而言,对中等复杂程度的彩色图像,对基本系统每8bit像素压缩到0.75~2bit时,解码恢复后的图像质量较好,可以满足大部分场合的应用。

(六)霍夫曼(Huffman)编码JPEG压缩最后一个步骤就是对量化后的频率系数进行编码处理,该编码的熵编码过程采用了Huffman编码,Huffman编码是一种基于概率统计的无损压缩技术,该算法首先统计信源出现的概率,再根据统计结果,出现概率高的符号使用短即时码表示,出现概率低的用长即时码表示,以达到压缩数据的目的。

应用标准霍夫曼编码对图像进行编码时效率很高,但需要对原始图像扫描两遍来统计每个像素值出现的概率和建立霍夫曼树并编码,数据压缩速度很慢。

实际应用中,为了提高处理速度,信源编码值通常根据信源查找相应的编码表得出。

Huffman码表以一个16字节的列表(BITS)规定,它包括长度从1到16的每一种码长的码字的数目,在列表后面紧跟着另外一个由8bit符号值组成的列表(HUFFVAL),该列表每一项被赋予一个Huffman码字,应用这两个列表可以获取可供信源查找Huffman编码值的码表。

在基本系统中,编码器最多在每个扫描中分别使用两个DC系数的Huffman码表和两个AC系数的Huffman码表(亮度分量和色度分量使用不同的Huffman码表),本文使用JPEG 推荐的4个Huffman码表,这4个表都来自对大量视频图像的统计平均,如果没有特别的要求,采用这4个码表就可以获得满意的压缩效果。

(七)DC编码在对量化后的系数进行熵编码之前,量化的直流系数被取出单独进行处理,对其进行差分预测编码(DPCM)。

DC系数为图像数据块的样本均值,包含了图像大部分的能量,数值也较大,通过差分预测编码可进一步去除数据块间平均值之间的相关性。

DPCM以同一个分量的前一个子块的量化直流系数DCi-1作为当前直流分量的预测值,然后再对预测误差DIFF 进行Huffman编码。

计算DIFF的表达式为:查看图片对DIFF的Huffman编码过程为:(1)根据DIFF值查幅度值分类表3-1取得差值幅度类别号SSSS和DIFF值实际保存的二进制码流CODE(DIFF);查看图片(2)根据标准DC系数Huffman码表计算得到的Huffman编码表查出SSSS值的Huffman 编码值HCODE(SSSS);(3)将SSSS的Huffman编码值和DIFF的实际保存值合并得到DC系数编码值HCODE(SSSS)CODE(DIFF),完成DC系数的编码。

(八)AC编码对量化后的63个AC系数可以观察到有许多系数值为零,首先通过对AC系数的之字形(Zig-Zag)扫描和0-RLE行程编码压缩掉这些0系数。

按照如图3-2所示的扫描次序将二维的AC系数按一维次序读出可将AC系数转换成Zig-Zag序列,该转换可以增加行程中连续的0系数值个数。

查看图片图2 Zig-Zag扫描次序0-RLE行程编码依次遍历Zig-Zag序列,当遍历到不为零的系数VAL(AC)时,计算该系数前面零的个数NUM(ZERO),然后用(NUM(ZERO),VAL(AC))进行表示,两部分刚好占用一个byte(分别占用4bit),对整个序列应用该方式进行表示。

如果最后一个非零的AC 系数不是序列的最后一个则在最后应加上结束标记EOB,EOB通常为(0,0)。

当序列中包含16个连续的零时则用(15,0)进行表示,可用多个(15,0)来表示多个16个连续的零。

最后再对0-RLE行程编码后的序列以(NUM(ZERO),VAL(AC))为单元进行Huffman编码,编码过程如下:(1)按序列顺序先后取出一个(NUM(ZERO),VAL(AC))单元,对VAL(AC)查幅度值分类表取得幅度类别号SSSS和VAL(AC)值实际保存的二进制码流CODE(VAL(AC));(2)再根据标准AC系数Huffman码表计算得到的Huffman编码表查出(NUM(ZERO),SSSS)的Huffman编码值HCODE((NUM(ZERO),SSSS));(3)组合HCODE((NUM(ZERO),SSSS))和CODE(VAL(AC))得到(NUM(ZERO),VAL (AC))单元的最后编码;(4)重复步骤(1)、(2)、(3)对其他(NUM(ZERO),VAL(AC))单元进行编码完成AC 系数的编码。

(九)压缩数据BIT码流整理将DC编码和AC编码的码流组合后便得到8×8图像块的JPEG压缩Bit码流,按照同样的步骤对每个MCU图像块进行编码,最后对压缩数据Bit码流以8位为单元进行存储,同时为了区别压缩数据与标记段(首字节为0xFF的段),当8位二进制码流值为0xFF时则在其后填充一个0x00字节。

此外,为了得到整数字节的熵编码字段,编码结束区域不完整字节通过填充“1”比特来实现完整化,如果这种填充中产生0xFF字节,则也在其后填充一个0x00字节。

整理完毕后将得到图像最终的JPEG压缩数据。

相关文档
最新文档