关于图片存储格式的整理(JPEG格式介绍)

 更新时间:2016年01月16日 12:44:58   投稿:mdxy-dxy  
这篇文章主要介绍了关于图片存储格式的整理(JPEG),需要的朋友可以参考下

JPG

jpg全名是JPEG 。JPEG 图片以 24 位颜色存储单个光栅图像。JPEG 是与平台无关的格式,支持最高级别的压缩,不过,这种压缩是有损耗的。渐近式 JPEG 文件支持交错。

jpg功能  

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

jpg优缺点

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

  利用可变的压缩比可以控制文件大小。
  支持交错(对于渐近式 JPEG 文件)。
  广泛支持Internet 标准。
  由于体积小,jpg在万维网中被用来储存和传输照片的格式。

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

  当您编辑和重新保存 JPEG 文件时,JPEG 会混合原始图片数据的质量下降。这种下降是累积性的。
  JPEG 不适用于所含颜色很少、具有大块颜色相近的区域或亮度差异十分明显的较简单的图片。jpg使用范围
  jpg格式是一种图片格式,是一种比较常见的图画格式,如果你的图片是其他格式,可以通过以下方法转化:
  1、photoshop ,打开图画以后,按另存为,下面格式那里选择JPG格式就是了,这个方法比较简单,而且适合画质比较好的,要求比较高的图片转换。
  2、如果你要求不高,你直接通过windows附带的图画程序,选择JPG格式就可以,这种转换方式画质不高
  如果JPG格式转其他格式,这样的方法同样适用。

jpg压缩模式

  JPEG (Joint Photographic Experts GROUP)是由国际标准组织(ISO:International Standardization Organization)和国际电话电报咨询委员会(CCITT:Consultation Commitee of the International Telephone and Telegraph)为静态图像所建立的第一个国际数字图像压缩标准,也是至今一直在使用的、应用最广的图像压缩标准。JPEG由于可以提供有损压缩,因此压缩比可以达到其他传统压缩算法无法比拟的程度。
  JPEG的压缩模式有以下几种:
  顺序式编码(Sequential Encoding)
  一次将图像由左到右、由上到下顺序处理。
  递增式编码(Progressive Encoding)
  当图像传输的时间较长时,可将图像分数次处理,以从模糊到清晰的方式来传送图像(效果类似GIF在网络上的传输)。
  无失真编码(Lossless Encoding)
  阶梯式编码(Hierarchical Encoding)
  图像以数种分辨率来压缩,其目的是为了让具有高分辨率的图像也可以在较低分辨率的设备上显示。

jpg压缩步骤

  由于JPEG的无损压缩方式并不比其他的压缩方法更优秀,因此我们着重来看它的有损压缩。以一幅24位彩色图像为例,JPEG的压缩步骤分为:

  1.颜色转换  

  由于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表示颜色。

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

  2.DCT变换

  DCT(Discrete Consine Transform)是将图像信号在频率域上进行变换,分离出高频和低频信息的处理过程。然后再对图像的高频部分(即图像细节)进行压缩,以达到压缩图像数据的目的。
  首先将图像划分为多个8*8的矩阵。然后对每一个矩阵作DCT变换(变换公式此略)。变换后得到一个频率系数矩阵,其中的频率系数都是浮点数。

  3.量化  

  由于在后面编码过程中使用的码本都是整数,因此需要对变换后的频率系数进行量化,将之转换为整数。
  由于进行数据量化后,矩阵中的数据都是近似值,和原始图像数据之间有了差异,这一差异是造成图像压缩后失真的主要原因。
  在这一过程中,质量因子的选取至为重要。值选得过大,可以大幅度提高压缩比,但是图像质量就比较差;反之,质量因子越小(最小为1),图像重建质量越好,但是压缩比越低。对此,ISO已经制定了一组供JPEG代码实现者使用的标准量化值。

  4.编码  

  从前面过程我们可以看到,颜色转换完成到编码之前,图像并没有得到进一步的压缩,DCT变换和量化可以说是为编码阶段做准备。
  编码采用两种机制:一是0值的行程长度编码;二是熵编码(Entropy Coding)。
  在JPEG中,采用曲徊序列,即以矩阵对角线的法线方向作“之”字排列矩阵中的元素。这样做的优点是使得靠近矩阵左上角、值比较大的元素排列在行程的前面,而行程的后面所排列的矩阵元素基本上为0值。行程长度编码是非常简单和常用的编码方式,在此不再赘述。

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

相关文章

  • 12种最常用的网页编程语言简介(值得收藏)

    12种最常用的网页编程语言简介(值得收藏)

    随着网站的越来越普及,与Web相关的开发技术持续热门,从开始简单的html到复杂的web开发语言asp、asp.net、php、jsp等等,在此,我就借助SEO马龙博客的平台跟大家简单的介绍一下常见的12种网页编程语言
    2017-01-01
  • 浅谈解决360兼容模式浏览器的方法

    浅谈解决360兼容模式浏览器的方法

    这篇文章给大家分享的是关于解决360兼容模式浏览器的方法,对于大家日常开发还是很实用,有需要的可以参考借鉴,下面一起来看看。
    2016-08-08
  • 程序员开发项目是选择效率还是质量呢?

    程序员开发项目是选择效率还是质量呢?

    这篇文章主要介绍了程序员开发项目是选择效率还是质量呢?本文对这个每个程序员都会遇到的一个问题做了讲解,需要的朋友可以参考下
    2014-07-07
  • 各种编程语言中$符号的意义

    各种编程语言中$符号的意义

    这篇文章主要介绍了各种编程语言中$符号的意义,本文是给编程新看看的,$符号在多种编程语言中都在使用,需要的朋友可以参考下
    2014-09-09
  • win7/win10+vs2015+pcl1.8.0配置方案详解

    win7/win10+vs2015+pcl1.8.0配置方案详解

    这篇文章主要介绍了win7/win10+vs2015+pcl1.8.0详细配置方案,本文通过图文并茂的形式给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • 提高编程技能的11个建议

    提高编程技能的11个建议

    当你不熟悉编程的时候,你可能会觉得无从下手,并且不知道如何运用学到的知识。只要你通过了这一困难的学习阶段,你就会发现一个全新的世界
    2014-08-08
  • chatGPT使用及注册过程中常见的一些错误解决方法(所有报错汇总)

    chatGPT使用及注册过程中常见的一些错误解决方法(所有报错汇总)

    这篇文章主要介绍了chatGPT注册报错及使用过程中报错汇总及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-02-02
  • 计算机网络日常练习题,每天进步一点点

    计算机网络日常练习题,每天进步一点点

    下面小编就为大家带来一篇计算机网络的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-09-09
  • 如何让Visual Studio用上chatgpt

    如何让Visual Studio用上chatgpt

    这篇文章主要介绍了如何让Visual Studio用上chatgpt,Visual chatGPT Studio是Visual Studio的一个免费扩展,它直接在IDE中添加了chatGPT功能,它允许用户以可以根据菜单功能的方式使用chatGPT,需要的朋友可以参考下
    2023-05-05
  • 使用Postman测试需要授权的接口问题

    使用Postman测试需要授权的接口问题

    Postman是一款免费的http模拟请求工具,常用来测试开发接口。实际场景中,很多接口是需要授权才能使用,这篇文章主要介绍了用Postman测试需要授权的接口,需要的朋友可以参考下
    2022-06-06

最新评论