图片压缩
1 JPEG压缩
JPEG压缩算法用失真的压缩方式来处理图像,但失真的程度是肉眼无法辨认的。
压缩过程
1.颜色模式转换及采样;2.DCT变换;3.量化;4.编码
1.1 颜色模式转换及采样
RGB色彩系统是我们最常用的表示颜色的方式。JPEG采用的是YCbCr色彩系统,Y代表亮度,Cb代表色度,Cr代表饱和度,计算公式如下:
Y=0.2990R+0.5870G+0.1140B
Cb=-0.1687R-0.3313G+0.5000B+128
Cr=0.5000R-0.4187G-0.0813B+128
人类的眼睛对低频的数据比对高频的数据具有更高的敏感度,对亮度的改变也比对色彩的改变要敏感的多,因此Y成分的数据是比较重要的,而Cb和Cr成分的数据相对不重要,就可以只取部分数据来处理。JPEG通常有两种采样方式:YUV411和YUV422,它们所代表的意义是Y,Cb和Cr三个成分的数据取样比例。
1.2 DCT变换
DCT,Discrete Cosine Transform,离散余弦变换
经过DCT转换后,矩阵左上角代表低频向量,矩阵右下角代表低频向量
1.3 量化
量化过程有量化表的,JPEG压缩标准中有推荐的亮度量化表和色度量化表(饱和度不用量化吗???)
1.4 编码
huffman编码是JPEG最常用的编码方式
DC编码,DC是采用差值脉冲编码调制(DPCM)的差值编码法,也就是在同一图像分量中取得每个DC值与前一个DC值的差
AC编码,AC编码方式与DC略有不同,在AC编码之前,首先得将63个AC值按Zig-zag排
序,即按照下图箭头所指示的顺序串联起来。
视频压缩
H.264
帧间压缩,
I-frame是完全编码的图片,每个I-frame包含了显示图片的所有内容,I-frame本身是进行了压缩的,如JPEG压缩方式,
P-frame只需要存储与上一个I-frame不同的地方
B-frame是双向帧,需要的数据来自上一个P-frame和下一个I-frame
不采用帧间压缩的视频所有帧都是I-frame的