码迷,mamicode.com
首页 > 其他好文 > 详细

【数据压缩】JPEG标准与原理解析

时间:2017-06-19 14:19:38      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:ctr   集成   函数   size   details   解码器   频率   diff   pos   

    转载请注明出处:http://blog.csdn.net/luoshixian099/article/details/50392230

CSDN-勿在浮沙筑高台

  为了满足不同应用的需求,JPEG标准包含两种主要的压缩方法:1.基于DCT的有损压缩算法;2.基于预測方法的无损压缩算法。

基于DCT的基线系统有损压缩技术是到眼下为止应用最为广泛的一种压缩方法,本文将具体解析此算法。

1.基于DCT有损压缩原理

   以下是编码器和解码器的流程图。压缩过程:原图分成8×8的子块,分别进行正向离散余弦变换(FDCT)。对每一个8×8子块的系数採用量化表进行量化。Zig-Zag扫描,最后使用熵编码。输出比特流。解码器是完整的逆过程。本文章不再赘述!

  技术分享

  1.1离散余弦变换(DCT)

  首先把原始图像切割成8×8的子块(假设宽或高不是8的整数倍,能够用黑色边框填充),每一个子块进行独立编码处理。

在进行FDCT变换之前,把64个无符号整型灰度值[0,255]平移到[-128,+127]范围中。

通过DCT变换,8×8个灰度值被转换为8×8个频率谱值,分别相应不同频率。

DCT变换系数值均为实数。

低频谱值位于左上部分,高频谱值位于右下部分。通过下述公式可知。左上角F(0,0)相应频率为0,被称为DC系数,其它63个系数称为AC系数。

至于为什么子块大小选择8×8。因为当时制定JPEG标准时,8×8是集成电路所能支持的最大尺寸,同一时候8×8的大小效果非常好。

技术分享

下述定义的b[x,y]为DCT的基函数。以下画出了6个基函数在8×8的子块上的幅值b[x,y]。当中,x,y为空间域的坐标,u,v相应频率域的坐标。

技术分享

    技术分享

  1.2 量化

   注意:图像信息损失是在量化阶段而不是DCT阶段。经过上述FDCT,生成了64个频率系数,通过抑制高频成分,来达到压缩的目的。一个主要原因是因为人眼对高频成分不敏感,故能够移除部分高频成分。而对图像感官质量影响非常小;还有一个原因是大多数图像中的灰度值是个渐变的过程。而频率高的部分携带的信息非常少。

通过使用量化矩阵Q(u,v)对F(u,v)进行量化,大部分高频系数会被量化成0。JPEG标准没有指定量化矩阵的数值,能够依据须要自定义,以下是JPEG标准提供的两种量化矩阵作为參考。一种为低压缩,还有一个为高压缩。

技术分享

技术分享

  1.3 熵编码

   ☆ Zig-Zag扫描

  通过上述量化矩阵,大部分高频系数被量化为0。为了方便进行熵编码,把8×8的系数矩阵转化为1×64的一维数据,并且採用的方式为Zig-Zag扫描法,採用Z字型的优点是能够把低频系数和高频系数分别集中在一起。而随着频率的添加,高频系数基本上都是0,方便採用0行程编码从而压缩数据。

技术分享

   ☆Huffman编码----->Huffman具体原理

    1.DC系数-DPCM

      因为DC系数是整个8×8块的均值。所以相邻块的DC系数有非常大的相关性,同一时候DC系数通常比AC系数要大得多,JPEG标准对DC系数採用相邻DC差分(DPCM)。通常Diff具有非常小的数值,然后进行Huffman编码。

例如以下图所看到的(第一个块的DC定义为0)。

技术分享

    2.AC系数-行程编码

    採用Zig-Zag扫描后,高频成分被量化为0,并且基本集中在一起,能够对AC系数採用0行程编码。即记录此数值前的连续数值0的个数。

以下是个对AC系数压缩的样例。

技术分享

技术分享

2. An example--JPEG压缩&解压缩

以下是一个压缩算法过程,对彩色图像,採用分层处理,即对不同通道分别压缩。解压缩是一个逆向的过程:

技术分享

---------------------------------------------------------------------------------------------------------------------------------------------------技术分享

-------------------------------------------------------------------------------------------------------------------------------------------------------

參考:

      The JPEG Still Picture Compression Standard,IEEE Transactions on Consumer Electronics,1991.

      Basic Image Compression Algorithm and Introduction to JPEG Standard,Pao-Yen Lin.

【数据压缩】JPEG标准与原理解析

标签:ctr   集成   函数   size   details   解码器   频率   diff   pos   

原文地址:http://www.cnblogs.com/llguanli/p/7048163.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!