《静态JPEG图像压缩标准.ppt》由会员分享,可在线阅读,更多相关《静态JPEG图像压缩标准.ppt(87页珍藏版)》请在三一办公上搜索。
1、静态图像压缩标准JPEG,任课老师:厉青,从64个数中选出某一个数。可先问“是否大于32?”消除半数的可能,这样只要6次就可选出某数。如果要选择的数是35,则过程如下:1.大于/小于 32?大2.大于/小于 32+16=48?小3.大于/小于 48-8=40?小4.大于/小于 40-4=36?小5.大于/小于 36-2=34?大6.大于/小于 34+1=35 等,如果要选择的数是63,则其过程如下:1.大于/小于 32?大2.大于/小于 32+16=48?大3.大于/小于 48+8=56?大4.大于/小于 56+4=60?大5.大于/小于 60+2=62?大6.大于/小于 62+1=63 等,
2、这是因为每提问一次都会得到1比特的信息量。因此,在64个数中选定某一数所需的信息量是 log264=6(bits),信息量:指从N个相等的可能事件中选出一个事件所需要的信息度量和含量。,数据压缩技术的发展过程,20世纪40年代,人们开始系统地研究数据压缩技术;主要表现在数据压缩算法方面:首先是Claude Shannon与R.M.Fano的Shannon-Fano编码方法;1952年,D.A.Huffman提出了Huffman编码方法;1968年,P.Elias 发展了Shannon-Fano编码,构造出更为完美的Shannon-Fano-Elias 编码。1976年,J.Rissanen 提
3、出了一种可以成功地逼近信息熵极限的编码方法算术编码。1982年,Rissanen 和G.G.Langdon 一起改进了算术编码。1977年,Jacob Ziv和Abraham Lempel提出了LZ77编码算法,78年又作了改进,被称为LZ78编码算法。1984年,Terry Welch提出了LZ78算法的变种算法LZW。LZ77、LZ78、LZW三种压缩技术就是目前无损压缩领域中最为流行的、被称为“字典式编码”的压缩技术。,数据压缩技术的发展过程(续),数据压缩标准逐渐形成,有损压缩算法快速出现。1986年开始制定静态图像压缩标准,1994 年后成为国际标准,称为JPEG标准。ITU制定的电
4、视会议系列标准(H.261、H.262、H.263、H.264等)以及由ISO制定的视频系列标准(MPEG-1、MPEG-2、MPEG-4)中,均采用了有损压缩原理作为其核心压缩算法。其中的MPEG-4标准(相当于ITU的H.263和H.263+标准)是为了适应网络视频的需求特点而制定的,具有更高的压缩比、支持并发数据流编码、基于内容的交互操作、增强的时间域随机存取、容错、基于内容的尺度可变性等新特性。,数据压缩的分类,1、按照压缩内容,分为音频数据压缩、静态图像数据压缩、视频数据压缩和其他数据文件压缩等四种类型。,2、按照压缩方式,分为对称压缩和非对称压缩两种类型。,3、按照压缩效果,分为有
5、损压缩与无损压缩两种类型。普通数据文件,一般采用无损压缩,对于冗余度较小的图像,需要采用有损压缩。,4、按照算法思想,分为信息熵编码、预测编码、变换编码、混合编码以及其他编码等五种,每种类型包含了一些具体算法,如下图。,数据压缩的主要指标,衡量不同压缩方法优劣的技术指标是相同的,主要包括以下几个方面。,1)压缩比:指压缩前后的数据量之比,它反映了施加某压缩算法之后,数据量减少的比例;2)恢复效果:指经解压缩算法对压缩数据进行处理后所得到的数据与其表示的原信息的相似程度;3)算法简单、速度快:主要指实现算法的复杂度。,看下面这两幅图片:,你能分辨哪一幅是Bmp格式,哪一幅是JPEG格式吗?,图片
6、1 图片2Bmp 格式(900K)JPEG格式(40K),为什么会有如此大的差距呢?,JPEG采用了图象压缩的技术,静态图像压缩标准JPEG,静态图像压缩标准(Joint Photographic Experts Group,JPEG)是一个由ISO和IEC两个组织机构联合组成的专家组,负责制定静态的数字图像数据压缩编码标准,这个专家组开发的算法称为JPEG算法,并且成为国际上通用的标准(ISO/IEC 10918号标准“多灰度连续色调静态图像压缩编码”),又称为JPEG标准。JPEG是一个适用范围很广的静态图像数据压缩标准,既可用于灰度图像又可用于彩色图像。,JPEG压缩算法简介,JPEG专
7、家组开发了两种基本的压缩算法,一种是采用以离散余弦变换(Discrete Cosine Transform,DCT)为基础的有损压缩算法,另一种是采用以预测技术为基础的无损压缩算法。在DCT方式中,又分为基本系统和扩展系统两类。基本系统是实现DCT编码与解码所需的最小功能集,是必须保证的功能,大多数的应用系统只要用此标准,就能基本上满足需求。扩展系统是为了满足更为广阔领域的应用要求而设置的。有损压缩利用人的视觉特性,25:1的压缩比可以得到很好的质量。,JPEG压缩算法简介,JPEG压缩是有损压缩,它利用了人的视觉系统的特性,使用量化和无损压缩编码相结合来去掉视觉的冗余信息和数据本身的冗余信息
8、。压缩编码大致分成以下3个步骤:正向离散余弦变换(Forward Discrete Cosine Transform,FDCT)把空间域表示的图像变换成频率域表示的图像。加权函数对DCT系数进行量化,这个加权函数对于人的视觉系统是最佳的。霍夫曼可变字长编码器对量化系数进行编码。译码或者叫做解压缩的过程与压缩编码过程正好相反。JPEG算法处理的彩色图像是单独的彩色分量,因此它可以压缩来自不同颜色空间的数据,如RGB、HSB和CMYK。,JPEG压缩流程,在实际的JPEG压缩过程中,具体进行了以下的运算:将图像从RGB空间变换到YUV空间。将图像矩阵分块,对每一块单独进行DCT变换。DCT变换矩阵
9、的大小为88。根据人眼对亮度信号比对色度信号更加敏感的生理特性,对Y分量划分为88块,对U、V分量划分为1616的块。U、V分量的每一块舍弃1/2的信息后形成一个88的矩阵。对变换后的DCT矩阵进行量化处理,即用JPEG标准所推荐的亮度量化表和JPEG标准所推荐的色度量化表的量化矩阵分别对Y分量和U、V分量量化。量化的原则是低频部分用小的值量化,高频部分用大的值量化,量化的结果将会在高频部分出现大量的0。,JPEG压缩流程,量化后的系数要重新编排,目的是为了增加连续的“0”系数的个数,就是“0”的游程长度,方法是按照Z字形的式样编排。这样就把一个88的矩阵变成一个164的矢量,频率较低的系数放
10、在矢量的顶部。在第4步得到的数据的一个特点就是有大量连续的零。因此对此数据采用了行程编码。对全部数据进行霍夫曼编码。,17,主要内容,JPEG背景基于DCT的顺序编码模式基于DPCM的无损编码模式基于DCT的渐进编码模式基于DCT的分层编码模式,你认识吗?,这是什么文件?,请比较数据量,高压缩率,高出20%-40%,JPEG2000的优势,在photoshop中你试过这样吗?,渐进传输,感兴趣区域压缩,为文件加上元数据,图像压缩程序实现思路,实例演示:利用JPEG2000基本算法(小波变换)实现的图像压缩与解压缩,思考:图像处理(压缩)程序实现的基本思路?,图像压缩程序实现思路,存放到数组(s
11、eek、get),处理数组(数据压缩),利用数组生成图像(seek、put),原理,22,JPEG背景,JPEG(Joint Photographic Experts Group)由 ISO和IEC两个组织机构联合组成的一个图像专家小组负责制定静态的数字图像数据 压缩编码标准JPEG 标准该专家组开发的算法称为JPEG算法 JPEG 已经成为国际上通用图像的标准JPEG 标准适用范围 灰度图像,彩色图像 静止图像的压缩,视频序列帧内图像压缩JPEG可以大范围地调节图像码率和质量,23,JPEG背景,JPEG算法与颜色空间无关对于单色图像,只有一个亮度分量对于彩色图像,JPEG对每个分量进行单独
12、编码颜色空间转换不包含在JPEG算法中对于YUV图像:对于采用不同的分辨率,对每个不同分量的可以采用不同的量化参数和熵编码表。可压缩来自不同颜色空间的图像:RGB,CMKY等,24,JPEG背景,JPEG核心算法 DCTDPCM,25,JPEG背景,对于一个图像分量,JPEG规定了4 种运行模式基于DCT的顺序编码模式(baseline CODEC)单遍扫描完成一个图像分量的编码,扫描次序从左到右,从上到下。基于DPCM(差分脉冲编码调制)无损编码模式无损编码压缩比可以达到2:1基于DCT的渐进编码模式通过多次扫描一幅图像分量的编码,提供了一个由粗到精的渐进码流结构。基于DCT的分层编码模式提
13、供多分辨率的码流结构,26,基于DCT的顺序编码模式,算法基本步骤将原图像用亮度、色差表示(分量图像采样4:1:1)分成88数据块,数据0255转换为-128127进行正向离散余弦变换(FDCT)量化(quantization)Z字形排列量化结果(zigzag scan)使用DPCM对直流系数(DC)进行编码 使用行程编码对交流系数(AC)进行编码 熵编码(entropy coding):哈夫曼或算术编码,27,基于DCT的顺序编码模式,系统框架,28,基于DCT的顺序编码模式,图像块的划分,480*640彩色图像,由亮度Y 色差 Cb,Cr 表示,可划分为 4800亮度块和 两份1200色度
14、块,29,基于DCT的顺序编码模式,离散余弦变换(DCT),残差图像,残差图像的88块 DCT系数分布,30,基于DCT的顺序编码模式,离散余弦变换(DCT)X的离散余弦变换(DCT)为Y,X,Y是N N 块正变换FDCT逆变换IDCT,31,基于DCT的顺序编码模式,离散余弦变换(DCT),32,基于DCT的顺序编码模式,缺省的量化方式,33,基于DCT的顺序编码模式,缺省的量化方式,量化表:根据心理视觉加权函数得到的量化:DCT变换系数除以量化步长,四舍五入取整,34,基于DCT的顺序编码模式,缺省的量化方式,35,基于DCT的顺序编码模式,缺省的量化方式,36,基于DCT的顺序编码模式,
15、缺省的量化方式,37,基于DCT的顺序编码模式,缺省的量化方式,38,基于DCT的顺序编码模式,DC系数和AC系数的编码方式DCT变换后,能量集中在左上角。由于两个相邻的88子块的DC系数相差很小,采用DPCM对直流(DC)系数单独编码。其它63个元素是交流(AC)系数,采用行程编码。问题:如何排列这63个系数?为了保证低频分量先出现,高频分量后出现,同时增加连续“0”的个数,采用Zig-Zag的排列方法。,39,基于DCT的顺序编码模式,DC系数和AC系数的编码方式,40,基于DCT的顺序编码模式,DC系数和AC系数的编码方式,41,基于DCT的顺序编码模式,熵编码JPEG标准规定了两种熵编
16、码算法:哈夫曼编码自适应算术编码哈夫曼编码一般采用的是固定的哈夫曼表。对亮度分量和色度分量采用了不同的哈夫曼表。,42,基于DCT的顺序编码模式,熵编码哈夫曼编码包括两部分中间格式表示:用两个字节熵编码,可变长编码VLC,可变长整数编码VLI,对于DC系数,第一个字节的高4位为0000,低4位为DC系数差值的比特数(size/category)第二个字节为DC系数差值,43,基于DCT的顺序编码模式,熵编码,任意给定一个整数,通过查此表,获得其对应的比特数,44,基于DCT的顺序编码模式,熵编码,对于DC系数差 的category 编码,45,基于DCT的顺序编码模式,熵编码,46,基于DCT
17、的顺序编码模式,熵编码,47,基于DCT的顺序编码模式,熵编码,48,基于DCT的顺序编码模式,熵编码,49,基于DCT的顺序编码模式,熵编码对于DC系数,设前一个88子块DC系数的量化值为12,则本块DC系数与它的差为3,所以DC中间格式为(2)(3)可以求得这个88子块熵编码的中间格式为(DC)(2)(3),(1/2)(-2),(0/1)(-1),(0/1)(-1),(0/1)(-1),(2/1)(-1),(EOB)(0/0),50,基于DCT的顺序编码模式,熵编码字节1和字节2分别进行编码零行程长度超过15个时,用一个符号ZRL(15/0),表示16个零 2个ZRL(15/0)表示32个
18、零,3个ZRL(15/0)表示48个零。块结束时用符号EOB(0/0)。对字节1进行Hufffman编码(亮度,色差的Huffman码表不同)。对字节2进行变长整数VLI编码,51,基于DCT的顺序编码模式,熵编码举例:Size=6时,数的范围是(-63)(-32)以及3263,对绝对值相同,符号相反的码字之间为反码关系。AC系数32的码字为100000,AC系数33的码字为100001,AC系数-32的码字为011111,AC系数-33的码字为011110。字节2的码字位于字节1的码字之后。,52,基于DCT的顺序编码模式,熵编码熵编码过程举例,(DC)(2)(3):(2):011(3):1
19、1(2)(3)011 11(1/2)(-2):(1/2):11011-2是2的反码,为01;(1/2)(-2)11011 01(0/1)(-1):(0/1):00,(-1)是1的反码,为0;(0/1)(-1)000(2/1)(-1):11100 0(EOB)(0/0):1010(DC)(2)(3),(1/2)(-2),(0/1)(-1),(0/1)(-1),(0/1)(-1),(2/1)(-1),(EOB)(0/0),53,基于DCT的顺序编码模式,熵编码熵编码过程举例01111,1101101,000,000,000,111000 1010(31bit)31bits/64pixels,码率:
20、0.5bpp一88子块亮度信息压缩后的数据流共31比特,其压缩比是648/31=16.5,大约每个象素用半个比特。,54,基于DPCM的无损编码模式,主要采用了三邻域二维预测编码和熵编码,无失真编码器,源图像数据,压缩的图像数据,预测器,熵编码器,表说明,DPCM预测编码框图,55,基于DPCM的无损编码模式,主要采用了三邻域二维预测编码和熵编码 减去预测值,得到一个差值,差值不量化,直接进行熵编码(哈夫曼或者算术编码)保证无失真地恢复原始图像,56,基于DCT的渐进的编码模式,基本思想此模式与顺序模式编码步骤基本一致,不同之处在于递增模式每个图像分量的编码要经过多次扫描才完成。第一次扫描只进
21、行一次粗糙的压缩,然后根据此数据先重建一幅质量低的图像,以后的扫描再作较细的扫描,使重建图像质量不断提高,直到满意为止,57,基于DCT的渐进的编码模式,渐进模式分为两种按频段渐进一次扫描中,只对DCT变换中的某些频段的系数进行编码传送,然后累进的方式对其他频段进行编码与传送,直至将全部系数传递完毕按位渐进对DCT系数按照其数位由高至低分成若干段,依次对各段进行压缩编码,先对最有效位的N位进行编码传送,直至将全部系数传递完毕,58,基于DCT的渐进的编码模式,59,基于DCT的渐进的编码模式,60,基于DCT的渐进的编码模式,61,基于DCT的渐进的编码模式,DC系数,62,基于DCT的渐进的
22、编码模式,63,基于DCT的分层编码模式,基本步骤(1)降低原始图像的空间分辨率。(2)对已经降低分辨率的图像按照顺序编码模式进行 压缩并存储或传输。(3)对低分辨率图像进行解码,然后用插值法提高图 像的分辨率。(4)将分辨率已经升高的图像作为原图像的预测值,并把它与原图像的差值进行基于DCT的编码。(5)重复步骤3、4直到图像达到完整的分辨率。,64,基于DCT的分层编码模式,基本步骤,JPEG2000的原理,1、小波、小波变换,2、Mallat算法,1、小波、小波变换,?,小波理论:任何一个信号都可以分解成原始小波经过平移和缩放之后的一系列小波,1、小波、小波变换,部分小波,1909年,哈
23、尔最早发现和使用了小波,20世纪70年代,Jean Morlet提出了小波变换的概念通过平移母小波可获得信号的时间信息;通过缩放小波的宽度可以获得信号的频率特性。这些平移及缩放系数就是小波变换的结果,JPEG2K采用以离散小波变换算法为主的多解析编码方式,1、小波、小波变换,2、Mallat算法,Mallat在1988年开发了一种使用滤波器执行离散小波变换的有效方法Mallat算法。,1988年,Inrid Daubechies发现了小波变换与滤波器组之间有着密切关系,分接器,Xn,子带编码,音频压缩G.722标准,利用一滤波器组通过重复卷积的方法,经取样将输入端信号分解为高频分量和低频分量,
24、然后分别对高频和低频分量用与其统计特性相匹配的编码器进行量化和编码,解码时高频分量和低频分量经过插值和共轭滤波综合成重建图像。,Mallat算法编码过程:,2、Mallat算法,2、Mallat算法,2、Mallat算法,一级分解,2、Mallat算法,图像分解与合并过程,高频分量(H)图象的细节 低频分量(L)图象的轮廓,问题1:一副图像有轮廓和细节,轮廓指图像信号的_分量,细节指图像信号的_分量。A、高频 B、低频,图像分解与合并过程,问题2:如何得到一副图像的高频分量和低频分量?,图像分解与合并过程,H代表高频分量(图象的细节)L代表低频分量(图象的轮廓),(一)基础知识:行/列分解、行
25、/列合并,图像分解与合并过程,(2)列分解过程,tu,图像分解与合并过程,(3)行合并过程,H,tuh,L,tul,HL,图像分解与合并过程,(4)列合并过程,HL,图像分解与合并过程,(二)一次分解过程,tu2(128,256),tu1(128,256),tu16(128,128),tu3(128,128),图像分解与合并过程,(二)一次合并过程,(1)tu3和tu4进行列合并,L,图像分解与合并过程,(二)一次合并过程,(2)tu15和tu16进行列合并,H,图像分解与合并过程,(二)一次合并过程,(3)hetu1和hetu2进行行合并,原图,HL,H,L,图像分解与合并过程,(三)二次分解过程你能画出二次分解的原理图吗?,提示:二次分解是在一次分解的基础上,对一次分解得到的LL子图,即tu3(128,128)进行进一步分解,同学们,请你画出二次分解的原理图。可以进行讨论。即二次分解的对象是LL子图,即tu3(128,128),图像分解与合并过程,(三)二次分解过程,这是一次分解的结果,tu16(128,128),tu3(128,128),二次分解的对象是LL子图,即tu3(128,128),