JPEG正是利用了人眼的这一特性,在压缩图像时,将亮度和颜色分开处理 。

文章插图
由于人眼对亮度很敏感,所以JPEG不会对亮度做太多改变,而人眼对颜色不甚敏感(科学研究表明,人眼大概可以区分出1000万种不同的颜色,这种感知能力相比于电脑,就没那么精确了),所以在人眼开始察觉色彩不对了之前,JPEG对颜色进行压缩处理,这样就算图像损失了部分细节,人眼也不太容易捕捉得到 。
JPEG在压缩图像时所进行的色彩空间转换,指的就是将RGB转换为YCbCr 。
四、缩减取样
在YCbCr模型中,Cb通道和Cr通道中所包含的信息量远远少于Y通道中包含的信息量,同时,人眼对色彩的敏感程度有限,因此,JPEG的压缩算法主要对Cb和Cr通道中的数据进行缩减取样,取样的比例可以是4:4:4(无缩减取样)、4:2:2(在水平方向2的倍数中取样)和4:2:0(在水平方向和垂直方向的2的倍数中取样),其中,以4:2:0最为常见 。
五、离散余弦变换(DCT)
通常我们认为,在8*8像素的一块方格里,它里面的像素往往非常相似,因此,当进行到这一步时,JPEG会将图像分为一个又一个的8*8的像素块 。

文章插图
一个8*8的像素块,图片来自维基百科
每一个像素块都利用离散余弦变换来编码,法国数学家傅里叶告诉我们,几乎所有的周期函数,都可以用一系列的“弦波”来表示,也就是说,靠着带权重的一系列不同余弦值的相加,就可以重构出我们的原图 。最后,每个8*8的像素块都会通过特定的函数,来生成一个新的8*8的数字矩阵 。

文章插图
一个8*8的数字矩阵,图片来自维基百科
六、量化
事情到这里还没算完,通过离散余弦变换所得到的数字可不能被直接压缩,他们还需要再处理一下,这就是量化 。
量化的过程,实际上就是对DTC系数的一个优化过程,在一个8*8像素的区域中,每个像素点间的差异都很大时,它的弦波频率就很高,我们称之为高频区,相反地,一个8*8像素的区域中,每个像素点间的差异很小,那它的弦波频率就很低,我们称之为低频区,刚刚的DCT算法已经把哪里频率高、哪里频率低给整理出来了 。

文章插图
越接近左上,频率越低,越接近右下,频率越高 。
人眼对高频区(小范围、高复杂度)的辨识能力较差,而对低频区(大范围、低复杂度)的辨识能力较好,因此JPEG就根据人眼的这一特征将高频区进行大幅的简化和压缩,量化的过程,实际上就是把频率领域上的每个成分,除以一个特定的常数,然后将计算结果四舍五入,取一个整数,JPEG会将高频区的成分通过算法,使其接近于0,然后四舍五入,取该成分的值为0,最后,我们大概会得到这样一个矩阵:

文章插图
图片来源:维基百科
可以看到,这个矩阵中有很多连续的0,这就对压缩非常有利了 。
七、熵编码
终于到了最后一步了,那就是压缩,仔细观察刚刚得到的最终的矩阵,可以看到,从左上角到右下角,连续的0的数量急剧上升,这种情况就要用熵编码技术,对数据进行编码 。
JPEG从左上角开始,以Z字形来回穿梭,直至经历了矩阵中的所有数字,到达右下角 。

推荐阅读
- 婚前个人债务要怎么承担
- 阴阳师熊本熊第三弹复读机彩蛋 阴阳师富甲熊本密令大全
- 茅台酒是烧酒吗
- 玩艾尔登法环黑屏解决方法
- 阴阳师熊本熊第三弹频道密令 阴阳师富甲熊本世界频道密令大全
- 用什么软件可以文字转语音
- 照片处理成水墨画
- 阴阳师11月18日地域收集奖励调整了什么 阴阳师体验服地域收集奖励更新
- 素丽刘姐什么电视剧