JPEG压缩原理与DCT离散余弦变换

原文网址:http://blog.****.net/newchenxf/article/details/51719597

JPEG是如何压缩的呢?靠的就是传说中的DCT(离散余弦变换)。

对原始图像进行离散余弦变换,变换后DCT系数能量主要集中在左上角,其余大部分系数接近于零。将变换后的DCT系数进行门限操作,将小于一定值得系数归零,这就是图像压缩中的量化过程,然后进行逆DCT运算,可以得到压缩后的图像。

 

JPEG压缩原理与DCT离散余弦变换

 

 

 

2 JPEG压缩流程
2.1 以8x8的图象块为基本单位进行编码

如下图所示。比如一个160x160大小的原始图像,就可以分成20x20个8x8图像块。
JPEG压缩原理与DCT离散余弦变换
每个图像块共64个像素。像素可以用RGB或YUV表示,需要3个byte。所以严格来说,上图3个箭头代表的数据,指的是RGB/YUV的某一个值,比如Y。

  JPEG采用的是YCrCb颜色空间,而BMP采用的是RGB颜色空间,要想对BMP图片进行压缩,首先需要进行颜色空间的转换。YCrCb颜色空间中,Y代表亮度,Cr,Cb则代表色度和饱和度(也有人将Cb,Cr两者统称为色度),三者通常以Y,U,V来表示,即用U代表Cb,用V代表Cr。RGB和YCrCb之间的转换关系如下所示:

Y = 0.299R+0.587G+0.114B

Cb = -0.1687R-0.3313G+0.5B+128

Cr = 0.5R=0.418G-0.0813B+128

FDCT与IDCT

一个是正变换,一个是逆变换。反正都可以称为离散余弦变换

JPEG压缩原理与DCT离散余弦变换

 

f(x,y)为原始的信号,F(u,v)是DCT变换后的系数,N为原始信号的点数,c(u),c(v)可以认为补偿系数,可以使DCT变换矩阵为正交矩阵。