Jpeg算法:
JPEG会分析图片的各个部分找到并删除人眼不易察觉的元素。使用jpeg算法的时候可以选一个叫’质量’的可变数值来决定压缩的程度,压缩过多的时候我们会得到有缺陷的方框,叫做膺像。
压缩算法之所以有用的原因:人的眼睛并不完美,很多细微的东西观察不到,jpeg算法利用算法来去除这些细微的差别,视杆细胞和视锥细胞。视锥细胞之占百分之6左右,我们对亮度的感知大于对色度和颜色的感知
1.色彩空间的转化:每个元素都是三原色组成,转化为亮度,蓝色色度,红色色度三个数值,这个过程可逆
2.色度缩减取样:将图片分为多块,计算每块平均值并且删除重复信息,让四个格子只占一个平均值
我们红色色度和蓝色色度通过这个四分之一的缩小,我们的图片就会变成原来的一半,因为亮度还没变
显示图片的时候执行第一步的逆操作选出rgb值就可以显示图片
3.离散余弦变化:利用人门不擅长捕捉感知图像中的高频率元素这个事实来实现的,那么算法是怎么知道图片哪里是高频率的呢??
会遍历图像的客个部分,并找到具有高频率的色度或亮度的像素频繁出现的区域,然后删除人眼难以感知的元素
将整个图像按8×8个像素划成许多区域,称为“区块”,每块有64像素代表亮度:
我们最开始都是0到255,我们都减去128,就变成了,-128,到127,其中黑色是-128
我们可以用64张基础图像的组奢来重建任何64个像素组成的区块。通过给出的个基础图像都要去乘的一个值或一个常数,来表示该基础图像的使用量是多少。这64个像素就会转化为64个常熟,代表各个基础图使用的次数
4.等量化:下一步是将常数表中的各个值除以量化表中的对应值。四舍五入取证
这一步我们扔掉了许多数据,大多数都是人眼无法感知的数据
5.哈夫曼编码:
然后用哈夫曼编码进行重构树重构
Gpeg算法缺陷:
1.在压缩矢量就是有棱角的图片的时候会得到明显的膺像,在压缩自然图片的时候效果很好,因为自然图片有许多光滑的纹理
2.对高频的影响大于低频数据