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或4:2:2。关于数据采样格式表示的意义,见下图:
step2.DCT变换
DCT(Discrete 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
- jpeg图像压缩原理
- JPEG 图像压缩
- JPEG图像压缩
- libjpeg-turbo解压与压缩JPEG图像原理
- JPEG压缩原理
- 【转】JPEG压缩原理
- JPEG压缩原理
- JPEG压缩原理
- JPEG压缩技术原理
- 【转】JPEG压缩原理
- JPEG压缩原理
- JPEG 压缩原理
- JPEG压缩原理
- JPEG压缩原理
- JPEG压缩原理
- JPEG压缩技术原理
- JPEG系列三 JPEG图像压缩
- JPEG系列四 JPEG图像压缩优化
- eclipse/myeclipse整合svn插件
- EL JSTL OGNL
- eclipse中git分支创建与合并(-)
- Android中自定义view出错NoSuchMethodException
- Android jni 高斯模糊效果
- jpeg图像压缩原理
- 外贸行销网站建设的重点体现在哪里
- 浅尝Unity 3D的Asset Bundle知识(一)
- zedgraph绘制工程类图形(大坐标同像素宽度)
- 树莓派系统启动:PANIC: VFS Unable to mount root fs on unknown-block(179,2)
- java web 开发Session超时设置
- 九鼎创展s5p4418开发板Android4.4-如何配置内核
- 天声人語 20150624
- MFC 子对话框之间互相发送消息的方案