1 JPG格式介绍

JPEG (Joint PhotographicExperts GROUP)是由国际标准组织和国际电话电报咨询委员会为静态图像所建立的第一个国际数字图像压缩标准,也是至今一直在使用的、应用最广的图像压缩标准。JPEG由于可以提供有损压缩,因此压缩比可以达到其他传统压缩算法无法比拟的程度。

1.1JPG图像压缩方式

JPEG 图片以 24 位颜色存储单个光栅图像。JPEG是与平台无关的格式,支持最高级别的压缩,不过,这种压缩是有损耗的。渐近式JPEG 文件支持交错,可以提高或降低 JPEG文件压缩的级别。但是,文件大小是以图像质量为代价的,压缩比率可以高达 100:1(JPEG 格式可在 10:1 到 20:1的比率下轻松地压缩文件,而图片质量不会下降)。JPEG压缩可以很好地处理写实摄影作品,但是对于颜色较少、对比级别强烈、实心边框或纯色区域大的较简单的作品,JPEG压缩无法提供理想的结果。有时,压缩比率会低到 5:1,严重损失了图片完整性。这一损失产生的原因是,JPEG压缩方案可以很好地压缩类似的色调,但是 JPEG 压缩方案不能很好地处理亮度的强烈差异或处理纯色区域。

JPG图像压缩模式有如下几种:

> 顺序式编码(Sequential Encoding):一次将图像由左到右、由上到下顺序处理。

> 递增式编码(Progressive Encoding):当图像传输的时间较长时,可将图像分数次处

理,以从模糊到清晰的方式来传送图像(效果类似GIF在网络上的传输)。

> 无失真编码(Lossless Encoding)

> 阶梯式编码(Hierarchical Encoding):图像以数种分辨率来压缩,其目的是为了让具

有高分辨率的图像也可以在较低分辨率的设备上显示。

1.2 JPG图像有损压缩流程

由于JPEG的无损压缩方式并不比其他的压缩方法更优秀,因此我们着重来看它的有损压缩。以一幅24位彩色图像为例,JPEG的压缩步骤分为:1.颜色转换2.DCT变换 3.量化 4.编码。

a.颜色转换

由于JPEG只支持YUV颜色模式的数据结构,而不支持RGB图像数据结构,所以在将彩色图像进行压缩之前,必须先对颜色模式进行数据转换。各个值的转换可以通过下面的转换公式计算得出:

Y=0.299R+0.587G+0.114B

U=-0.169R-0.3313G+0.5B

V=0.5R-0.4187G-0.0813B

其中,Y表示亮度,U和V表示颜色。

转换完成之后还需要进行数据采样。一般采用的采样比例是2:1:1或4:2:2。由于在执行了此项工作之后,每两行数据只保留一行,因此,采样后图像数据量将压缩为原来的一半。

b.DCT变换

DCT(Discrete ConsineTransform)是将图像信号在频率域上进行变换,分离出高频和低频信息的处理过程。然后再对图像的高频部分(即图像细节)进行压缩,以达到压缩图像数据的目的。

首先将图像划分为多个8*8的矩阵。然后对每一个矩阵作DCT变换(变换公式此略)。变换后得到一个频率系数矩阵,其中的频率系数都是浮点数。

c.量化

由于在后面编码过程中使用的码本都是整数,因此需要对变换后的频率系数进行量化,将之转换为整数。

由于进行数据量化后,矩阵中的数据都是近似值,和原始图像数据之间有了差异,这一差异是造成图像压缩后失真的主要原因。

在这一过程中,质量因子的选取至为重要。值选得过大,可以大幅度提高压缩比,但是图像质量就比较差;反之,质量因子越小(最小为1),图像重建质量越好,但是压缩比越低。对此,ISO已经制定了一组供JPEG代码实现者使用的标准量化值。

d.编码

从前面过程我们可以看到,颜色转换完成到编码之前,图像并没有得到进一步的压缩,DCT变换和量化可以说是为编码阶段做准备。

编码采用两种机制:一是0值的行程长度编码;二是熵编码(EntropyCoding)。

在JPEG中,采用曲徊序列,即以矩阵对角线的法线方向作“之”字排列矩阵中的元素。这样做的优点是使得靠近矩阵左上角、值比较大的元素排列在行程的前面,而行程的后面所排列的矩阵元素基本上为0值。行程长度编码是非常简单和常用的编码方式,在此不再赘述。

编码实际上是一种基于统计特性的编码方法。在JPEG中允许采用HUFFMAN编码或者算术编码。

1.3 JPG图像优缺点

优点:(1) 摄影作品或写实作品支持高级压缩。

(2) 利用可变的压缩比可以控制文件大小。

(3) 支持交错(对于渐近式 JPEG 文件)。

(4) 广泛支持 Internet 标准。

缺点:(1) 有损耗压缩会使原始图片数据质量下降。

(2) 当您编辑和重新保存 JPEG 文件时,JPEG会混合原始图片数据的质量下降。

这种下降是累积性的。

(3) JPEG不适用于所含颜色很少、具有大块颜色相近的区域或亮度差异十分明显的

较简单的图片。

图像JPEG格式介绍的更多相关文章

  1. 图像bayer格式介绍以及bayer插值原理CFA

    1 图像bayer格式介绍 bayer格式图片是伊士曼·柯达公司科学家Bryce Bayer发明的,Bryce Bayer所发明的拜耳阵列被广泛运用数字图像. 对于彩色图像,需要采集多种最基本的颜色, ...

  2. 图像bayer格式介绍【转】

    本文转载自:http://www.cnblogs.com/whw19818/p/6223143.html 1 图像bayer格式介绍 bayer格式图片是伊士曼·柯达公司科学家Bryce Bayer发 ...

  3. 图像YUV格式介绍

    图像YUV格式介绍   1 YUV格式简介 YUV格式,与我们熟知的RGB类似,YUV也是一种颜色编码方法,主要用于电视系统以及模拟视频领域,它将亮度信息(Y)与色彩信息(UV)分离,没有UV信息一样 ...

  4. JPEG格式 介绍

    JPEG格式 jpeg是有损压缩格式, 将像素信息用jpeg保存成文件再读取出来,其中某些像素值会有少许变化.在保存时有个质量参数可在[0,100]之间选择,参数越大图片就越保真,但图片的体积也就越大 ...

  5. 图像GIF格式介绍

    1 图像GIF格式工作原理 GIF是用于压缩具有单调颜色和清晰细节的图像(如线状图.徽标或带文字的插图)的标准格式. GIF(Graphics InterchangeFormat)的原义是“图像互换格 ...

  6. 图像PNG格式介绍

    1 图像png格式简介 PNG是20世纪90年代中期开始开发的图像文件存储格式,其目的是企图替代GIF和TIFF文件格式,同时增加一些GIF文件格式所不具备的特性.流式网络图形格式(PortableN ...

  7. 图像BMP格式介绍

    1 图像BMP格式说明 BMP是一种与硬件设备无关的图像文件格式,使用非常广.它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大.BMP文件的图像深度可选 ...

  8. 图像视频编码和FFmpeg(2)-----YUV格式介绍和应用

    本文不讲FFmpeg,而是讲YUV图像格式.因为摄像头拍摄出来的原始图像一般都是YUV格式.在FFmpeg中,视频是通过多张YUV图像而得到. YUV图像格式是什么,这个可以看一下维基百科.这个超链接 ...

  9. Matlab JPEG详细介绍

    作为一个基本的图像压缩方式,JPEG 已经得到了广泛的运用,但 JPEG 相关的基本原理,却经常被忽视,或解释得很不确切.这里我们详细讨论一下 JPEG 的编码原理,并结合实例来给出一个更加感性的认识 ...

随机推荐

  1. 【jmeter】浅说 think time

    接口每天被5000个人调用,同时在线500人,每天要被调用50000次.  过了没多久测试完成写了一份报告发给项目经理: 并发 | 响应时间 | 应用服务器cpu |数据库服务器cpu |TPS | ...

  2. 51nod 1211 数独

    数独游戏规则如下:在9 * 9的盘面上有些已知的数字及未知的数字,推理出所有未知的数字,并满足每一行.每一列.每一个粗线宫内的数字均含1-9,不重复.       有些局面存在多个解或无解,这属于不标 ...

  3. 黄聪:Discuz!的SEO优化策略一:如何设置标题 & 如何去掉Powered by Discuz!尾巴

    1.如何设置标题 进入 管理中心 -- 全局 -- SEO设置 -- 论坛 -- 标题 ,设置你的网站标题和描述. PS:有人问keywords要不要设置,其实现在keywords对SEO的影响已经微 ...

  4. iphone Dev 开发实例8: Parsing an RSS Feed Using NSXMLParser

    From : http://useyourloaf.com/blog/2010/10/16/parsing-an-rss-feed-using-nsxmlparser.html Structure o ...

  5. eclipse 每次切换工作空间都要重新配置

    首先,导出T1中的配置打开T1,选择file --> Export --> 在弹出框中选择General 下的preference --> next --> 在export p ...

  6. Blockchain概述--转

    编者按:著名投资人 Fred Wilson 的同事 Joel Monegro 近日参加了纽约比特币 workshop HackBit聚会,其间他们讨论了比特币式的思维方式对未来十年世界的影响,而这种影 ...

  7. [Bug-IOS] - linker command failed with exit code 1 (use -v to see invocation)

    Ld /Users/Rubert/Library/Developer/Xcode/DerivedData/OC_Language-emftyzftyvhdpuaxipddjmpnpvox/Build/ ...

  8. CF 191C Fools and Roads lca 或者 树链剖分

    They say that Berland has exactly two problems, fools and roads. Besides, Berland has n cities, popu ...

  9. 手动编译Jsp文件

    手动模拟Tomcat编译jsp文件 Tomcat编译jsp文件的配置路径是在%tomcat_home%/conf/web.xml中,有这样一段代码 <servlet> <servle ...

  10. Android_ _开发技巧总结

    ===  1   1.对于过多的控件,功能类似,数量又多的,可以用include方法.在实现应用中,可以把控件放入List集合中. private void initView() { // TODO ...