jpeg图像压缩原理

来源:互联网 发布:吉林大学南岭校区 网络 编辑:程序博客网 时间:2024/05/17 05:16

jpeg格式的图片具有很高压缩比,是十分常见的一种图片储存和传输格式。通常由无损的RGB图像数据到最终的jpeg格式需要经过以下的步骤:

step1.颜色模式转换

JPEG只支持YUV颜色模式(准确说是YCbCr颜色模式)的数据结构,而不支持RGB图像数据结构,所以在将彩色图像进行压缩之前,必须先对颜色模式进行数据转换。YUV色彩模型来源于RGB模型,Y表示明度信息,U、V表示色度信息。RGB和YUV之间的转换可以通过相应的转换公式计算得出(不必详细知道公式,只需知道Y、U、V都是R、G、B的线性组合)。

转换完成之后还需要进行数据采样。一般采用的采样比例是4:1:1或422。关于数据采样格式表示的意义,见下图:


step2.DCT变换

DCTDiscrete Cosine Transform是将图像信号在频率域上进行变换,分离出高频和低频信息的处理过程(另见博文:傅里叶变换在图像处理中的应用)。然后再对图像的高频部分(即图像细节)进行压缩,以达到压缩图像数据的目的。

DCT变换前首先将图像划分为多个8*8的矩阵,为什么是8*8呢?这与计算机的进制规律有关,一个字节等于8个二进制位,这样后面的编码过程就可以对每个像素用2个字节的码字来表示。然后对每一个8*8矩阵作DCT变换(变换公式略)。变换后得到一个频率系数矩阵,其中的频率系数都是浮点数。

step3.量化频率系数

由于在后面编码过程中使用的码本都是整数,因此需要对变换后的浮点型频率系数进行量化,将之转换为整数。进行数据量化后,矩阵中的数据都是近似值,和原始图像数据之间有了差异,这一差异是造成图像压缩后失真的主要原因。

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

step4.编码

编码才是对图像真正进行压缩的步骤,直流分量(DC)具有特殊的性质,因此要对每个8*8字块中的1个直流分量和63个交流分量(AC)分别进行编码。相邻的DC采用简单易用的差分编码(DCPM);DA采用‘之’字型的行程编码以保证低频分量先出现,高频分量后出现,他们的码字用两个字节即可表示。如下图:


经过以上四个步骤,原始图像信息便被压缩处理成了jpeg格式。

Reference:

https://www.baidu.com/s?wd=jpeg&rsv_spt=1&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&inputT=1770

0 0
原创粉丝点击