图像及图像压缩的研究
⼀、图⽚格式、应⽤场景
1、BMP格式
BMP是英⽂Bitmap(位图)的简写,它是Windows操作系统中的标准图像⽂件格式,能够被多种Windows应⽤程序所⽀持。随着Windows操作系统的流⾏与丰富的Windows应⽤程序的开发,BMP位图格式理所当然地被⼴泛应⽤。
这种格式的特点是包含的图像信息较丰富,⼏乎不进⾏压缩,但由此导致了它与⽣俱⽣来的缺点--占⽤磁盘空间过⼤。所以,⽬前BMP在单机上⽐较流⾏。
2、GIF格式
GIF是英⽂Graphics Interchange Format(图形交换格式)的缩写。顾名思义,这种格式是⽤来交换图⽚的。事实上也是如此,上世纪80年代,美国⼀家著名的在线信息服务机构CompuServe针对当时⽹络传输带宽的限制,开发出了这种GIF图像格式。
GIF格式的特点是压缩⽐⾼,磁盘空间占⽤较少,所以这种图像格式迅速得到了⼴泛的应⽤。
最初的GIF只是简单地⽤来存储单幅静⽌图像(称为GIF87a),后来随着技术发展,可以同时存储若⼲幅静⽌图象进⽽形成连续的动画,使之成为当时⽀持2D动画为数不多的格式之⼀(称为GIF89a),⽽在GIF89a图像中可指定透明区域,使图像具有⾮同⼀般的显⽰效果,这更使GIF风光⼗⾜。
⽬前Internet上⼤量采⽤的彩⾊动画⽂件多为这种格式的⽂件,也称为GIF89a格式⽂件。
此外,考虑到⽹络传输中的实际情况,GIF图像格式还增加了渐显⽅式,也就是说,在图像传输过程中,⽤户可以先看到图像的⼤致轮廓,然后随着传输过程的继续⽽逐步看清图像中的细节部分,从⽽适应了⽤户的"从朦胧到清楚"的观赏⼼理。
⽬前Internet上⼤量采⽤的彩⾊动画⽂件多为这种格式的⽂件。 但GIF有个⼩⼩的缺点,即不能存储超过256⾊的图像。尽管如此,这种格式仍在⽹络上⼤⾏其道应⽤,这和GIF图像⽂件短⼩、下载速度快、可⽤许多具有同样⼤⼩的图像⽂件组成动画等优势是分不开的。
GIF⽂件格式是Web页上使⽤最普通的图形⽂件格式,因此有极少数低象素的数码相机拍摄的影像⽂件可以该格式存储。
3、JPEG格式
JPEG也是常见的⼀种图像格式,它由联合照⽚专家组(Joint Photographic Experts Group)开发并以
命名为"ISO 10918-1",JPEG仅仅是⼀种俗称⽽已。JPEG⽂件的扩展名为.jpg或.jpeg,其压缩技术⼗分先进,它⽤有损压缩⽅式去除冗余的图像和彩⾊数据,获取得极⾼的压缩率的同时能展现⼗分丰富⽣动的图像,换句话说,就是可以⽤最少的磁盘空间得到较好的图像质量。同时JPEG还是⼀种很灵活的格式,具有调节图像质量的功能,允许你⽤不同的压缩⽐例对这种⽂件压缩,⽐如我们最⾼可以把1.37MB的BMP位图⽂件压缩⾄20.3KB。当然我们完全可以在图像质量和⽂件尺⼨之间到平衡点。
由于JPEG优异的品质和杰出的表现,它的应⽤也⾮常⼴泛,特别是在⽹络和光盘读物上,肯定都能到它的影⼦。⽬前各类浏览器均⽀持JPEG这种图像格式,因为JPEG格式的⽂件尺⼨较⼩,下载速度快,使得Web页有可能以较短的下载时间提供⼤量美观的图像,JPEG同时也就顺理成章地成为⽹络上最受欢迎的图像格式。
JPEG图像格式是数码相机应⽤最多的图像存储格式。JPEG属于有损压缩,压缩⽐在10:1⾄40:1之间,在数码相机选⽤压缩⽐往往在4:1⾄16:1之间。压缩⽐越⼤,越可将指定影像⽂件压缩得越⼩,但图象中的细节也就会丢失得越多,在⽤数码相机拍摄时,选择压缩⽐有时令⼈颇为为难,⼀般把握的原则是:如果景物的⾊彩⾮常丰富、明暗过渡阶调多,宜选择低压缩⽐;⽤⾼分辨率拍摄时,可选择较⾼的压缩⽐。
JPEG格式是⽬前⽹络上最流⾏的图像格式,是可以把⽂件压缩到最⼩的格式,在 Photoshop软件中以
JPEG格式储存时,提供13级压缩级别,以0—12级表⽰。其中0级压缩⽐最⾼,图像品质最差。即使采⽤细节⼏乎⽆损的10 级质量保存时,压缩⽐也可达 5:1。以BMP格式保存时得到4.28MB图像⽂件,在采⽤JPG格式保存时,其⽂件仅为178KB,压缩⽐达到24:1。经过多次⽐较,采⽤第8级压缩为存储空间与图像质量兼得的最佳⽐例。
4、JPEG2000格式
JPEG 2000同样是由JPEG 组织负责制定的,它有⼀个正式名称叫做"ISO 15444",与JPEG相⽐,它具备更⾼压缩率以及更多新功能的新⼀代静态影像压缩技术。
JPEG2000 作为JPEG的升级版,其压缩率⽐JPEG⾼约30%左右。与JPEG不同的是,JPEG2000 同时⽀持有损和⽆损压缩,⽽ JPEG
只能⽀持有损压缩。⽆损压缩对保存⼀些重要图⽚是⼗分有⽤的。JPEG2000的⼀个极其重要的特征在于它能实现渐进传输,这⼀点与GIF 的"渐显"有异曲同⼯之妙,即先传输图像的轮廓,然后逐步传输数据,不断提⾼图像质量,让图象由朦胧到清晰显⽰,⽽不必是像现在的JPEG ⼀样,由上到下慢慢显⽰。
此外,JPEG2000还⽀持所谓的"感兴趣区域"特性,你可以任意指定影像上你感兴趣区域的压缩质量,
还可以选择指定的部份先解压缩。JPEG 2000 和 JPEG 相⽐优势明显,且向下兼容,因此取代传统的JPEG格式指⽇可待。
JPEG2000可应⽤于传统的JPEG市场,如扫描仪、数码相机等,亦可应⽤于新兴领域,如⽹路传输、⽆线通讯等等。
5、TIFF格式
TIFF(Tag Image File Format)是Mac中⼴泛使⽤的图像格式,它由Aldus和微软联合开发,最初是出于跨平台存储扫描图像的需要⽽设计的。它的特点是图像格式复杂、存贮信息多。正因为它存储的图像细微层次的信息⾮常多,图像的质量也得以提⾼,故⽽⾮常有利于原稿的复制。
该格式有压缩和⾮压缩⼆种形式,其中压缩可采⽤LZW⽆损压缩⽅案存储。不过,由于TIFF格式结构较为复杂,兼容性较差,因此有时你的软件可能不能正确识别TIFF⽂件(现在绝⼤部分软件都已解决了这个问题)。⽬前在Mac和PC机上移植TIFF⽂件也⼗分便捷,因⽽TIFF现在也是微机上使⽤最⼴泛的图像⽂件格式之⼀。
TIFF(.TIF)是⼀种⽆损压缩的⽂件格式,不会破坏任何图象数据,更不会劣化图象质量,但压缩⽐⾮常⼩,只有2:1,这种压缩⽅式仅出现于较⾼档的数码相机,柯达DCS 520、DCS 560、DCS620
、DCS660、佳能EOS D2000、EOS D6000等专业数码相机拍摄存储影像⽂件,都采⽤该格式。
6、PSD格式
这是著名的Adobe公司的图像处理软件Photoshop的专⽤格式Photoshop Document(PSD)。PSD其实是Photoshop进⾏平⾯设计的⼀张"草稿图",它⾥⾯包含有各种图层、通道、遮罩等多种设计的样稿,以便于下次打开⽂件时可以修改上⼀次的设计。
在Photoshop所⽀持的各种图像格式中,PSD的存取速度⽐其它格式快很多,功能也很强⼤。由于Photoshop越来越被⼴泛地应⽤,所以我们有理由相信,这种格式也会逐步流⾏起来。
7、PNG格式
PNG(Portable Network Graphics)是⼀种新兴的⽹络图像格式。在1994年底,由于Unysis公司宣布GIF拥有专利的压缩⽅法,要求开发GIF软件的作者须缴交⼀定费⽤,由此促使免费的png图像格式的诞⽣。PNG⼀开始便结合GIF及JPG两家之长,打算⼀举取代这两种格式。1996年10⽉1⽇由PNG向国际⽹络联盟提出并得到推荐认可标准,并且⼤部分绘图软件和浏览器开始⽀持PNG图像浏览,从此PNG 图像格式⽣机焕发。
PNG是⽬前保证最不失真的格式,它汲取了GIF和JPG⼆者的优点,存贮形式丰富,兼有GIF和JPG的
⾊彩模式;它的另⼀个特点能把图像⽂件压缩到极限以利于⽹络传输,但⼜能保留所有与图像品质有关的信息,因为PNG是采⽤⽆损压缩⽅式来减少⽂件的⼤⼩,这⼀点与牺牲图像品质以换取⾼压缩率的JPG有所不同;它的第三个特点是显⽰速度很快,只需下载1/64的图像信息就可以显⽰出低分辨率的预览图像;第四,PNG同样⽀持透明图像的制作,透明图像在制作⽹页图像的时候很有⽤,我们可以把图象背景设为透明,⽤⽹页本⾝的颜⾊信息来代替设为透明的⾊彩,这样可让图像和⽹页背景很和谐地融合在⼀起。
PNG的缺点是不⽀持动画应⽤效果,如果在这⽅⾯能有所加强,简直就可以完全替代GIF和JPEG了。Macromedia公司的Fireworks软件的默认格式就是PNG。现在,越来越多的软件开始⽀持这⼀格式,⽽且在⽹络上也越来截⽌流⾏。、
8、SWF格式
利⽤Flash我们可以制作出⼀种后缀名为SWF(Shockwave Format)的动画,这种格式的动画图像能够⽤⽐较⼩的体积来表现丰富的多媒体形式。
在图像的传输⽅⾯,不必等到⽂件全部下载才能观看,⽽是可以边下载边看,因此特别适合⽹络传输,特别是在传输速率不佳的情况下,也能取得较好的效果。事实也证明了这⼀点,SWF如今已被⼤量应⽤于WEB⽹页进⾏多媒体演⽰与交互性设计。此外,SWF动画是其于⽮量技术制作的,因此不管
将画⾯放⼤多少倍,画⾯不会因此⽽有任何损害。
综上,SWF格式作品以其⾼清晰度的画质和⼩巧的体积,受到了越来越多⽹页设计者的青睐,也越来越成为⽹页动画和⽹页图⽚设计制作的主流,⽬前已成为⽹上动画的事实标准。
SVG可以算是⽬前最最⽕热的图像⽂件格式了,它的英⽂全称为Scalable Vector Graphics,意思为可缩放的⽮量图形。
它是基于XML(Extensible Markup Language),由World Wide Web Consortium(W3C)联盟进⾏开发的。严格来说应该是⼀种开放标准的⽮量图形语⾔,可让你设计激动⼈⼼的、⾼分辨率的Web图形页⾯。⽤户可以直接⽤代码来描绘图像,可以⽤任何⽂字处理⼯具打开SVG图像,通过改变部分代码来使图像具有互交功能,并可以随时插⼊到HTML中通过浏览器来观看。
它提供了⽬前⽹络流⾏格式GIF和JPEG⽆法具备了优势:可以任意放⼤图形显⽰,但绝不会以牺牲图像质量为代价;只在SVG图像中保留可编辑和可搜寻的状态;平均来讲,SVG⽂件⽐JPEG和GIF格式的⽂件要⼩很多,因⽽下载也很快。可以相信,SVG的开发将会为Web提供新的图像标准。
10、Webp格式
WebP (发⾳"weppy"),是⼀种同时提供了有损压缩与⽆损压缩的图⽚⽂件格式,派⽣⾃图像编码格式
VP8 。是由Google购买On2 Technologies后发展出来的格式,以BSD授权条款发布。
WebP是Google新推出的影像技术,它可让⽹页图档有效进⾏压缩,同时⼜不影响图⽚格式兼容与实际清晰度,进⽽让整体⽹页下载速度加快。
由于⽬前互联⽹上传输的数据有65%都是图⽚,WebP就是出于减少数据量、加速⽹络传输的⽬的⽽开发的。为了改善JPEG的图⽚压缩技术,他们使⽤了⼀种基于VP8编码(已在2010五⽉开源)的图⽚压缩器,利⽤预测编码技术,同时还采⽤了⼀种基于RIFF的⾮常轻量级的容器。这种容器只会给每张图⽚增加20字节,但能让图⽚作者保存他们想要存储的元数据。
与JPEG相同,WebP是⼀种有损压缩利⽤预测编码技术。但⾕歌表⽰,这种格式的主要优势在于⾼效率。他们发现,“在质量相同的情况下,WebP格式图像的体积要⽐JPEG格式图像⼩40%。
⽬前, Google放出了WebP⽂件解码器(libvpx)和命令⾏⼯具(webpconv),⽤于JPEG等格式图⽚与WebP格式之间的转换,不过系统⽀持暂时仅限Linux,Windows版本将在稍后推出。
WebP团队还在开发WebKit内核补丁,⽤于在Google Chrome浏览器中提供对WebP格式的原⽣⽀持。
美中不⾜的是,WebP格式图像的编码时间“⽐JPEG格式图像长8倍”。
分析⼈⼠认为,尽管WebP格式尚未像JPEG格式那样,得到各种软硬件的⼴泛⽀持,但⾕歌推⼴这⼀格式的优势在于Chrome浏览器。这款⾕歌开发的浏览器的市场份额已达10%以上。
其它⾮主流图像格式:
1、PCX格式
PCX格式是ZSOFT公司在开发图像处理软件Paintbrush时开发的⼀种格式,这是⼀种经过压缩的格式,占⽤磁盘空间较少。由于该格式出现的时间较长,并且具有压缩及全彩⾊的能⼒,所以现在仍⽐较流⾏。
2、DXF格式
DXF(Autodesk Drawing Exchange Format)是AutoCAD中的⽮量⽂件格式,它以ASCII码⽅式存储⽂件,在表现图形的⼤⼩⽅⾯⼗分精确。许多软件都⽀持DXF格式的输⼊与输出。
svg图形3、WMF格式
WMF(Windows Metafile Format)是Windows中常见的⼀种图元⽂件格式,属于⽮量⽂件格式。它具有⽂件短⼩、图案造型化的特点,整个图形常由各个独⽴的组成部分拼接⽽成,其图形往往较粗糙。
4、EMF格式
EMF(Enhanced Metafile)是微软公司为了弥补使⽤WMF的不⾜⽽开发的⼀种Windows 32位扩展图元⽂件格式,也属于⽮量⽂件格式,其⽬的是欲使图元⽂件更加容易接受 。
5、LIC(FLI/FLC)格式
Flic格式由Autodesk公司研制⽽成,FLIC是FLC和FLI的统称:FLI是最初的基于320×200分辨率的动画⽂件格式,⽽FLC则采⽤了更⾼效的数据压缩技术,所以具有⽐FLI更⾼的压缩⽐,其分辨率也有了不少提⾼。
EPS(Encapsulated PostScript)是PC机⽤户较少见的⼀种格式,⽽苹果Mac机的⽤户则⽤得较多。它是⽤PostScript语⾔描述的⼀种ASCII码⽂件格式,主要⽤于排版、打印等输出⼯作。
7、TGA格式
TGA(Tagged Graphics)⽂件是由美国Truevision公司为其显⽰卡开发的⼀种图像⽂件格式,已被国际上的图形、图像⼯业所接受。TGA的结构⽐较简单,属于⼀种图形、图像数据的通⽤格式,在多媒体领域有着很⼤影响,是计算机⽣成图像向电视转换的⼀种⾸选格式。
8、Flash Pix格式
Flash Pix是由柯达、INTEL等公司联合开发的⼀种图象存储模式(.FPX),⼴泛应⽤于柯达轻便数码相机,与其它格式相⽐,该格式的影像在⽀持Flash Pix的图象处理软件中,具有显⽰快、复制快、传输快、加⼯快的优点,该格式下还记录快门速度、曝光、⽩平衡调整等信息。在⼀些数码相机上,以Flash Pix格式存储影像时,还可以选择是否使⽤JPEG压缩。
9、MPEG格式
MPEG(Motion Picture Expert Group)是活动视频影像压缩标准,VCD、DVD分别采⽤其中的MPEG-1、MPEG-2标准,这标准也被极少数兼具摄像功能的数码相机采⽤,将数码相机处于该格式下拍摄存储,所拍摄影像可动态播出。
⼆、图像压缩算法
1、基于信息论⾓度
冗余度压缩⽅法:(⽆损压缩)在数学上可逆:哈夫曼编码、算术编码、⾏程编码、Lempel-zev 编码
信息量压缩⽅法:(有损压缩)解码图像与原始图像有差:预测编码、频率域⽅法(正交变换编码如DCT、⼦带编码)、空间域⽅法(统计分块编码)、模型⽅法(分形编码、模型编码)、基于重要性(粒⼦、⼦采样、⽐特分配、⽮量量化)
2、按照压缩技术所依据和使⽤的数学⽅法进⾏分类
预测编码:基本思想是根据数据统计特性得到预测值,然后传输图像像素与其预测值的差值信号,使传输的码率降低,达到压缩的⽬的。
统计编码:主要针对⽆记忆信源,根据信息码字出现概率的分布特征⽽进⾏压缩编码,寻概率与码字长度间的最优匹配,其编码的实质就是⽤短码来表⽰较⼤的码字,⽽⽤长码表⽰出现概率较⼩的码
字。常⽤的有:⾏程编码、哈夫曼编码和算术编码三种。
变换编码:基本思想是利⽤图像块内像素之间的相关性,把图像变换到⼀组新的基(⼀般是频率域)上,使得能量集中到少数⼏个变换系数上,通过存储这些系数达到压缩数据的⽬的。常⽤的有:DCT、整数DCT、⼩波变换。
3、具体算法
(1)统计编码之哈夫曼编码
基本原理:将使⽤次数多的代码转换为长度较短的代码,⽽是⽤次数少的可以使⽤较长的编码,并保持编码的唯⼀可解性。
基本原则:保证权值和最⼩(字符统计数字x字符编码长度之和)
基本步骤:(1) 从左到右将信源符号频率从⼩到⼤的顺序排列 (2)将将两个最⼩概率进⾏组合相加,并继续这个步骤,始终将较⾼的概率分⽀放到上部,直到概率达到1为⽌ (3)对每对组合中上边的⼀个都指定为1,下边的⼀个指定为0,或者相反。(4)画出由每个信源符号到达概率为1.0处的路径,记下沿路径遇到的各个1和0。(5)对每个信源符号都写出1和0序列,则最后便得到了哈夫曼编码。
(2)统计编码之算术编码
基本原理:算术编码的基本原理是将编码的消息表⽰成实数0和1之间的⼀个间隔,消息越长,编码表⽰它的间隔就越⼩,表⽰这⼀间隔所需的⼆进制位就越多。 算术编码⽤到两个基本的参数:符号的概率和它的编码间隔。
算术编码是⼀种⽆失真的编码⽅法,能有效地压缩信源冗余度,属于熵编码的⼀种。算术编码的⼀个重要特点就是可以按分数⽐特逼近信源熵,突破了Haffman编码每个符号只不过能按整数个⽐特逼近信源熵的限制。对信源进⾏算术编码,往往需要两个过程,第⼀个过程是建⽴信源概率表,第⼆个过程是对信源发出的符号序列进⾏扫描编码。⽽⾃适应算术编码在对符号序列进⾏扫描的过程中,可⼀次完成上述两个过程,即根据恰当的概率估计模型和当前符号序列中各符号出现的频率,⾃适应地调整各符号的概率估计值,同时完成编码。尽管从编码效率上看不如已知概率表的情况,但正是由于⾃适应算术编码具有实时性好、灵活性⾼、适应性强等特点,在图像压缩、视频图像编码等领域都得到了⼴泛的应⽤。
(3)统计编码之⾏程编码
基本原理:将⼀⾏中颜⾊值相同的相邻象素⽤⼀个计数值和该颜⾊值来代替。例如aaabccccccddeee可以表⽰为3a1b6c2d3e。如果⼀幅图象是由很多块颜⾊相同的⼤⾯积区域组成,那么采⽤⾏程编码的压缩效率是惊⼈的。然⽽,该算法也导致了⼀个致命弱点,如果图象中每两个相邻点的颜⾊都不同,⽤这种算法不但不能压缩,反⽽数据量增加⼀倍。
⾏程编码的可⾏性讨论:⾏程编码的压缩⽅法对于⾃然图⽚来说是不太可⾏的,因为⾃然图⽚像素点错综复杂,同⾊像素连续性差,如果硬要⽤⾏程编码⽅法来编码就适得其反,图像体积不但没减少,反⽽加倍。鉴于计算机桌⾯图,图像的⾊块⼤,同⾊像素点连续较多,所以⾏程编码对于计算机桌⾯图像来说是⼀种较好的编码⽅法。⾏程编码算法特点:有算法简单、⽆损压缩、运⾏速度快、消耗资源少等优点。
⼤致⽅法:遍历所有像素点,⼀⾏⼀⾏的。从第⼀个开始,如果下⼀个相同,则num++,直到下⼀个不同值开始,等等。
RLE算法
从图中我们可以看出,AAAAAABBCDDEEEEEF 的17个字符成功被压缩成A6B2C1D2E5F1的12个字符,也就是12/ 17 = 70%,压缩⽐为70%,压缩成功了。
像这样,把⽂件内容⽤数据*重复次数的形式来表⽰的压缩⽅法成为RLE(Run Length Encoding, ⾏程长度编码)算法。RLE算法是⼀种很好的压缩⽅法,经常⽤于压缩传真的图像等。因为图像⽂件的本质也是字节数据的集合体,所以可以⽤RLE算法进⾏压缩。
RLE算法的缺点
RLE的压缩机制⽐较简单,所以RLE算法的程序也⽐较容易编写,所以使⽤RLE的这种⽅式更能让你体会到压缩思想,但是RLE只针对特定序列的数据管⽤。使⽤RLE对⽂本⽂件进⾏压缩后的数据很可能不但没有减⼩反⽽增⼤了!甚⾄是压缩前的两倍!因为⽂本字符种连续的字符并不多见。RLE 算法只针对连续的字节序列压缩效果⽐较好。
(4)预测编码之差分脉冲编码调制编码(DPCM)
DPCM是differential pulse code modulation的缩写,也就是差分脉冲编码调制的意思。他的主要思想是通过已知的数据预测下⼀个数据,然后传递预测值与实际值之间的差值。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论