关于图片存储格式的整理(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编码或者算术编码

相关文章

  • 浏览器缓存知识小结及应用分析

    浏览器缓存知识小结及应用分析

    了解浏览器的缓存命中原理,是开发web应用的基础,本文着眼于此,学习浏览器缓存的相关知识,总结缓存避免和缓存管理的方法,结合具体的场景说明缓存的相关问题。希望能对有需要的人有所帮助
    2017-03-03
  • HTTP与HTTPS握手的那些事

    HTTP与HTTPS握手的那些事

    今天我总结了什么是HTTP三次握手,还有HTTPS握手的过程以及为什么HTTPS是安全的,需要的朋友可以参考下
    2017-05-05
  • IDEA2019.3在Plugins中搜索不到translation的解决

    IDEA2019.3在Plugins中搜索不到translation的解决

    这篇文章主要介绍了IDEA2019.3在Plugins中搜索不到translation的解决,文中通过图文的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • vscode中模糊搜索和替换案例解析

    vscode中模糊搜索和替换案例解析

    这篇文章主要介绍了vscode中模糊搜索和替换案例解析,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • VSCode 格式化缩进代码的实现

    VSCode 格式化缩进代码的实现

    这篇文章主要介绍了VSCode 格式化缩进代码的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法

    win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法

    这篇文章主要介绍了win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • 网站被等恶意镜像的解决、反制措施详细教程

    网站被等恶意镜像的解决、反制措施详细教程

    这篇文章主要介绍了网站被等恶意镜像的解决、反制措施详细教程,需要的朋友可以参考下
    2016-10-10
  • 12种最常用的网页编程语言简介(值得收藏)

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

    随着网站的越来越普及,与Web相关的开发技术持续热门,从开始简单的html到复杂的web开发语言asp、asp.net、php、jsp等等,在此,我就借助SEO马龙博客的平台跟大家简单的介绍一下常见的12种网页编程语言
    2017-01-01
  • git如何还原到某次commit并强制推送远程

    git如何还原到某次commit并强制推送远程

    这篇文章主要介绍了git如何还原到某次commit并强制推送远程的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • Git基本常用命令

    Git基本常用命令

    本文主要介绍了Git基本常用命令。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-01-01

最新评论