目前在互联网上,图片流量仍占据较大的一部分。所以,在保证图片质量不变的状况下,节省流量带宽是你们一直须要去解决的问题。传统的图片格式,如 JPEG,PNG,GIF 等格式图片已经没有太多的优化空间。所以 Google 于 2010 年提出了一种新的图片压缩格式 — WebP,给图片的优化提供了新的可能。web
WebP 就像 JPEG 的升级版。它是 Google 推出的图片文件格式,它的目的就是为 Web 上的图片资源提供卓越的有损、无损压缩。在与其余格式同等质量指数下提供更小,更丰富的图片资源,以便资源在 Web 上访问传输。算法
WebP 图片格式来源于 VP8 视频编解码器,也就是 WebM 视频容器,是 WebM 视频格式地单个压缩框架。VP8 编解码器的一个强大功能就是可以进行帧内压缩,或者更确切地说,能将视频的每一个帧都被压缩,再压缩帧与帧之间的差别。浏览器
WebP 特性框架
关于压缩性能
为何能够对图片进行有损压缩,由于使用有损压缩的一个关键原则是:人类的感知能力并无计算机那么精确。科学证实,人的眼睛只能区分 1000 万种不一样的颜色,而且人眼对亮度比色度更敏感,这意味着咱们会忽略较大的色度变化,而不影响咱们对图片的敏感度。这就是为何“黑蓝白金裙”事件能引发那么大的讨论,它必定上也是受到咱们人类的视觉敏感度所影响。优化
有损压缩动画
WebP 的压缩是使用与 VP8 相同的方式来预测帧。VP8 基于块预测与任何基于块的编解码器同样,VP8 将帧划分为称为宏块(MarcoBlocking)的小块。在每一个宏块内,编码器能够基于先前处理的块来预测冗余运动和颜色信息。图像帧是“关键”,意思是它仅使用已经在每一个宏块的直接空间邻域中解码的像素。并试图对它们的未知部分进行赋值。这就称为与预测编码。而后能够从块中减去冗余数据,进而有效压缩。网站
宏块(MarcoBlocking)编码
编码器的第一阶段是将图像分割成“宏块”。宏块包含一个 16x16 的亮度像素块,和两个 8x8 的色度像素块。这个阶段很是像 JPEG 格式里转换颜色空间,对色度通道下降采样,以及细分图片。3d
预测(Prediction)
而后,“宏块”的每一个 4x4 子块都有一个预测模型。它在一块周围定义两个像素:有一行在它上面 A(Raw A),左边是一列 L(Column L)。利用 A 和 L,编码器会将它们放在一个 4x4 的预测像素块填满,并肯定哪个生成了最接近原始块的值。这些用不通方法填充的块叫作‘预测块’。
块预测常见有四种模式:
值得注意的是, 4x4 的亮度块还有另外 6 种模式。
基本流程就是咱们找到这个最快的预测块,并导出过滤结果(剩余偏差),而后送到下个阶段。
自适应量化
为了提升图像质量,图像被分割成具备明显类似特称的区域。对于这些段中的每个,压缩质量都独立调谐。经过将位从新分配到最有用的位置,实现高效压缩。
JPGify it
为何说 WebP 是 JPEG 的升级版,由于它们有不少类似的地方,而且在一些压缩处理上又优于 JPEG。
相同点:
不一样点:
WebP 凭借优异的图片压缩性能,以及兼备无损和有损两种压缩算法,迅速在各大网站、App 普及。那么要如何在网站中开启 WebP 格式呢?
又拍云目前已经支持 WebP 图片格式转换,并且还支持 WebP 自适应功能,在后台一键开启 WebP 自适应功能,便可经过 CDN 平台智能判断客户端浏览器是否支持 WebP 解码,若是支持则返回 WebP格式图片,若是不支持则会返回原图,在客户端以及源站无需任何改动。
推荐阅读: