1. 首页 > 科技资讯

JPG格式是如何做到把图片压缩后,还能做到这么高的品质

这张是没有压缩过的图片,它有46兆大小,右边这张是压缩后的图片,压缩到4.1兆大小。是不是两张图片看上去一模一样呢?现在我们把它放大再看看,这两个图片占用空间相差10倍,但是两个画面看起来依然没什么不同,这个压缩格式就是著名的JPG格式。现在我们就来看看JPG格式是如何做到把图片压缩后,还能做到这么高的品质。简单的说就是JPG会扫描整张图片,再把人眼看不到的图片元素删除掉,人眼看到的画面和真实的画面存在一定的差距,而JPG算法就是利用这些差距来去除我们眼睛感知不到的信息。
JPG格式

在我们的眼睛里面有两种感光细胞,视感细胞和视锥细胞。视感细胞用来感知光的强度,感知明暗程度,而是锥细胞用来感知颜色。另外每个眼睛有1亿个视感细胞,感知颜色的是锥细胞只有600万个,因此人眼对图片亮度的感知能力比较强,对图像中的颜色和色度的感知能力就要差得多。就以这张郁金香的照片来对比,两张亮度相同的照片,黑白照片似乎和彩色的一样丰富饱满,但是当我们只保留颜色时,这张照片就完全看不清了,它和黑白照片相比明显少了很多细节。
JPG格式

现在来看看JPG是如何利用人眼的感知差距,来对图片进行压缩的,图片的最小单元是像素,每个像素都有红蓝绿三个颜色组成。根据颜色的深浅,每个颜色都有一个0-255的颜色值,这个颜色值就是rgb值组合起来就构成一个像素的颜色。在格式转换时,算法会根据每个像素的RGB的3个值,算出3个新的数值,就是亮度蓝色色度和红色色度。这一步格式转换没有删任何数据,图片文件也没有变小。
JPG格式

接下来第二步很关键,前面我们说过人的眼睛对颜色的感知能力比较差,JPG算法先将蓝色和红色的色度图层,按2*2像素的一个区块来划分。然后计算每个区块的色度平均值,并删掉重复的信息,在缩小图像,使这个区块只占一个像素空间。也就是说我们眼睛感知不到的色度信息被缩减到了1/4。亮度图层保持不变,按照右上角的计算公式,这时候的图片已经变成原来一半的大小了。我们在查看这张图片时,蓝色和红色色度图层会被放大到,亮度图层一样的大小。
JPG格式

三个图层堆叠起来生成一组新的RGB值,图片看起来依然丰富饱满,这是因为JPG算法,删除掉的都是人眼感知不到的信息。除此之外人眼感知不到的还有高频率的元素,JPG又将这个特点应用到了压缩算法中。这是一张树林里拍的照片,人眼往往善于辨别树的边缘或岩石的轮廓,但要人眼去区分高频率的颜色数据时,比如在数量繁多的树叶中,人眼很难甄别单片树叶的细节变化。不仅如此大多数相机在拍摄自然风景时,部分画面是失交的,因此同样可以删除,人眼难以察觉的高频率的颜色变化。
JPG格式

JPG算法会扫描图像的各个部分,并找到高频率色度或亮度的像素,然后把这些人眼很难感知的元素进行删除。删除多余信息同样也是合并的过程,然后将红色和蓝色色度的区块放大,与亮度的图层对比。根据图片中高频率范围的大小,合并的区块也可以是16*16的像素。因为这个原理被压缩10倍的图像依然具备很高的品质,至少用我们的眼睛是感知不到任何毛病的。手机的拍摄效果远超我们看到的表面,这是因为相机的镜头比人眼能捕捉到更多的细节。人类的伟大之处,就是通过聪明的大脑能够创造一切,来弥补我们身体的短板。

本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.miyuegong.com/kejizixun/64501.html

联系我们

在线咨询:点击这里给我发消息

微信号:666666