zoukankan      html  css  js  c++  java
  • 图像JPEG格式介绍

    1 JPG格式介绍

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

    1.1JPG图像压缩方式

          JPEG 图片以 24 位颜色存储单个光栅图像。JPEG是与平台无关的格式,支持最高级别的压缩,不过,这种压缩是有损耗的。渐近式JPEG 文件支持交错,可以提高或降低 JPEG文件压缩的级别。但是,文件大小是以图像质量为代价的,压缩比率可以高达 100:1JPEG 格式可在 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表示亮度,UV表示颜色。

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

    b.DCT变换

          DCTDiscrete 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不适用于所含颜色很少、具有大块颜色相近的区域或亮度差异十分明显的

                 较简单的图片。

  • 相关阅读:
    PyQT5速成教程-4 Qt Designer实战[上]
    使用Qt Designer进行布局
    PyCharm+QT Designer整合
    Qt Designer 的使用
    Python | 一行命令生成动态二维码
    Python 标准库、第三方库
    Python list列表的常用操作方法
    Python+Selenium 自动化测试获取测试报告内容并发送邮件
    ”Tomcat version 5.5 only supports J2EE 1.2, 1.3, and 1.4 Web modules“解决方案
    linux查找符合条件的文件并删除
  • 原文地址:https://www.cnblogs.com/qiqibaby/p/5229253.html
Copyright © 2011-2022 走看看