当前位置:网站首页>图片格式-webp
图片格式-webp
2022-06-29 08:24:00 【CamilleZJ】
目前在互联网上,图片流量仍占据较大的一部分。因此,在保证图片质量不变的情况下,节省流量带宽是大家一直需要去解决的问题。传统的图片格式,如 JPEG,PNG,GIF 等格式图片已经没有太多的优化空间。因此 Google 于 2010 年提出了一种新的图片压缩格式 — WebP,给图片的优化提供了新的可能。
WebP 在各大互联网公司已经使用得很多了,国外的有 Google(自家的东西肯定要用啦,Chrome Store 甚至已全站使用 WebP)、Facebook 和 ebay,国内的有淘宝、腾讯和美团等。

WebP 的优势体现在它具有更优的图像数据压缩算法,能带来更小的图片体积,而且拥有肉眼识别无差异的图像质量;同时具备了无损和有损的压缩模式、Alpha 透明以及动画的特性,在 JPEG 和 PNG 上的转化效果都相当优秀、稳定和统一。
WebP 就像 JPEG 的升级版。WebP 图片格式来源于 VP8 视频编解码器,也就是 WebM 视频容器,是 WebM 视频格式地单个压缩框架。VP8 编解码器的一个强大功能就是能够进行帧内压缩,或者更确切地说,能将视频的每个帧都被压缩,再压缩帧与帧之间的差异。
WebP 特性
- 有损压缩:有损压缩基于 VP8 关键编码。VP8 是 On2 Technologies 创建的视频格式,是 VP6 和 VP7 格式的后续版本。
- 无损压缩:采用预测变换,颜色变换,减去绿色,LZ77 反响参考等技术进行压缩。
- 透明度:8位 Alpha 通道对图形图像很有用。Alpha 通道可以于有损 RGB 一起使用。与其它格式图片所不支持的 WebP 特有的功能。
- 动画:它支持真彩色动画图像,即可以支持动态图( 类Gif 图)
- 元数据:它可能具有 EXIF 和 XMP 元数据
- 颜色配置文件:它可能具有嵌入式 ICC 配置文件。
WebP 兼容性
在国内,WebP 已经得到半数用户的支持了 Can I use... Support tables for HTML5, CSS3, etc

压缩对比:


格式转化:
google浏览器可以直接打开,还有一些其他工具,还有很多格式转化工具即网站,可自行百度。
关于压缩
为什么可以对图片进行有损压缩,因为使用有损压缩的一个关键原则是:人类的感知能力并没有计算机那么精确。科学证明,人的眼睛只能区分 1000 万种不同的颜色,并且人眼对亮度比色度更敏感,这意味着我们会忽略较大的色度变化,而不影响我们对图片的敏感度。
有损压缩
WebP 的压缩是使用与 VP8 相同的方式来预测帧。VP8 基于块预测与任何基于块的编解码器一样,VP8 将帧划分为称为宏块(MarcoBlocking)的小块。在每个宏块内,编码器可以基于先前处理的块来预测冗余运动和颜色信息。图像帧是“关键”,意思是它仅使用已经在每个宏块的直接空间邻域中解码的像素。并试图对它们的未知部分进行赋值。这就称为与预测编码。然后可以从块中减去冗余数据,进而有效压缩。
宏块(MarcoBlocking)
编码器的第一阶段是将图像分割成“宏块”。宏块包含一个 16x16 的亮度像素块,和两个 8x8 的色度像素块。这个阶段非常像 JPEG 格式里转换颜色空间,对色度通道降低采样,以及细分图片。

预测(Prediction)
然后,“宏块”的每个 4x4 子块都有一个预测模型。它在一块周围定义两个像素:有一行在它上面 A(Raw A),左边是一列 L(Column L)。利用 A 和 L,编码器会将它们放在一个 4x4 的预测像素块填满,并确定哪一个生成了最接近原始块的值。这些用不通方法填充的块叫做‘预测块’。
块预测常见有四种模式:
- 水平预测:块的每一列都带有前一列的副本
- 垂直预测:使用前一行的副本填充块的每一行。
- T M 预测:一种模式,On2 Technologies 开发压缩技术,下次另将。
- D G 预测:使用 A 上方和 L 左侧列中的像素平均值,使用单个值填充快。
值得注意的是, 4x4 的亮度块还有另外 6 种模式。

基本流程就是我们找到这个最快的预测块,并导出过滤结果(剩余误差),然后送到下个阶段。
自适应量化
为了提高图像质量,图像被分割成具有明显相似特称的区域。对于这些段中的每一个,压缩质量都独立调谐。通过将位重新分配到最有用的位置,实现高效压缩。
JPGify it
为什么说 WebP 是 JPEG 的升级版,因为它们有很多相似的地方,并且在一些压缩处理上又优于 JPEG。
相同点:
- 对块里剩余的值执行 DCT 过滤
- DCT 矩阵后量化
- 转成量化矩阵后重新排序,然后送到一个静态压缩器里。

不同点:
- 在 DCT 阶段输入的数据不是原始的数据块本身,而是预测后的数据。
- WebP 用的静态压缩器是算术压缩器(Arithmetic Compressor),它和 JPEG 用的霍夫曼编码器(Huffman encoder) 类似。对比性能,算术压缩器提升了 5%~10% 的压缩性能。
边栏推荐
- Backpack Lecture 9 - detailed understanding and code implementation
- Actual combat memoir starts from webshell to break through the border
- 在 RedisTemplate 中使用 scan
- Wechat applet development, how to add multiple spaces
- 开发小技巧-图片资源管理
- MYSQL行转列例子
- Some "non-technical" Thoughts on distributed digital identity
- 2022 spring summer collection koreano essential reshapes the vitality of fashion
- The difference and usage of JS for in loop and for of loop
- Intelligent hardware EVT DVT PVT mp
猜你喜欢

2022 spring summer collection koreano essential reshapes the vitality of fashion

Oracle-子查询

闭关修炼(二十一)Servlet生命周期、service方法源码分析、线程安全问题

ThinkPHP 6 使用 mongoDB

对话| 数字时代,隐私计算的发展前景与挑战

Résumé des différentes séries (harmoniques, géométriques)

闭关修炼(二十五)基础web安全
工作好多年,回忆人生--高中三年
![[microservices openfeign] timeout of openfeign](/img/b1/9bc92250b4d544c704d2af5c08d059.png)
[microservices openfeign] timeout of openfeign

MQTT第二话 -- emqx高可用集群实现
随机推荐
人民链鲍大伟:打破壁垒,建立全域数据治理共享及应用平台
Open3D 隐藏点移除
闭关修炼(二十五)基础web安全
Batch processing of experimental contact angle data matlab analysis
晋升或汇报,你真的把事情讲清楚了吗?
积分商城运营要如何做才能获取到利润
P6772 [noi2020] gourmet (matrix fast power)
ThreadLocal线程变量
Open3D 最远点采样(FPS)
闭关修炼(二十一)Servlet生命周期、service方法源码分析、线程安全问题
抽象类、接口
二手交易平台碳减排,有了评估标准
“国防七校”之一西工大遭境外网络攻击
对话| 数字时代,隐私计算的发展前景与挑战
通过ELO机制衡量各类对弈活动水平
2022 spring summer collection koreano essential reshapes the vitality of fashion
观察者模式怎么实现
(pytorch进阶之路三)encoder self attention mask
First electric shock, so you are such a dragon lizard community | dragon lizard developer said that issue 8
Self attention mechanism