「手机储存空间已满,请及时清理」,每次清理手机内存时我们都会发现,占了 256G 空间半壁江山的不是什么大型游戏或者电影,而是平时冲浪时的图片缓存。
数百 KB 的图片看似不多,但积累起来时大小还是非常可观的。
其中 JPEG 是最常见的图片格式,但是从压缩效率和质量来说它已显得过时,如果能换用更高效率的图片格式,也许会是释放储存空间的好办法。
而 Android 12 最新支持的 AVIF 格式,会是能取代 JPEG 的新标准吗?
这张有着浓浓「古早」味的乐队海报图片,也许就是第一张被上传到互联网的图片,其在 1992 年,由「互联网之父」蒂姆·伯纳斯·李上传到互联网上,图片的格式为 Gif。
从此开始,互联网的世界才开始变得多彩起来,网络图片的出现丰富了互联网世界的色彩,也带给了网络更多的意义。
人们借由图片可以在网络创造和分享更多文字所不能传达的内容,例如用表情包聊天宣泄情感等。
也是自此开始,各式各样的图片格式成为了每个网民互联网冲浪的基石,你也许不知道它,但是离不开它。
目前常见的图片格式常分为有损压缩格式(JPEG)和无损压缩格式(PNG),无论损不损,压缩都是每种格式(RAW 等格式以外)的重要职责。
图片为什么要压缩?每张照片都是由一个个像素点组成,根据计算,一张 2000 万像素、8 Bit 色深的照片大小约为 60 MB,如此庞大的体积不要说分享,即便是自己存在储存卡里,再大的空间也显得捉襟见肘。
这时候,对于像素点进行分类整合,压缩数据大小便显得尤为重要。压缩的过程就像是我们在做数学题时用到的「化简」技巧,将重复相似的像素点数据通过「合并同类项」简化(压缩原理非常复杂,在此不展开),最终得到画质基本一致、数据大小却大幅瘦身的压缩图片。
既然有无损压缩格式呢,为什么最流行的还是 JPEG 这样的有损压缩格式?
、
从使用和浏览的角度来看,压缩图片的损失率似乎很重要,但是在互联网早期,由于流量资费高昂、传输速率缓慢,图片的数据大小决定了用户的加载速度,直接影响了用户的网上冲浪体验。
同样是在 1992 年,联合图像小组(Joint Photographic Experts Group)提出的一种针对照片影像的有损压缩标准,可以在小幅度不损失图片分辨率的情况下尽可能将图片大小压缩。
尽管这会导致细节色彩信息丢失,但 JPEG 的高度压缩契合了当时网络环境的需求,得到了广大的支持与推广。
时至今日,网络建设的飞速发展让传输不再是束缚色彩的枷锁,更加清晰的图片成为了网民更为迫切的需求,因此推广一种压缩效率更高效、图片损失率更小的图片格式变得更加重要。
2018 年 12 月 14 日,Netflix 发布了第一个 AVIF 图像,与已经诞生了 26 年的 JPEG 相比,AVIF 像是巨人脚边的一株小芽,但是在互联网巨头眼里,这颗萌芽也许能长到超过巨人的高度。
在 Netflix 发布的一篇技术播客中,它将 AVIF 定义为「下一代图像编码算法」,并称 AVIF 对于这家世界上最大的流媒体网站而言,是取代 JPEG 格式的最佳选择。
图像对于 Netflix 而言与视频一样重要,因为在用户点播一部影片之前,封面海报的精美与否会在很大程度上影响他们的选择。
因此,Netflix 需要一个色彩更丰富、压缩效率更高、细节保留更完整、多设备兼容性更强的图片编码格式来取代 JPEG。
▲ JPEG 格式,81 KB
▲ AVIF 格式,76 KB
在这篇博客中,Netflix 用了多张 JPEG 格式与 AVIF 格式的海报进行对比,可以看到,在文件大小相近的情况下,AVIF 格式能保留更多的细节,而 JPEG 格式已经出现肉眼可见的条带、噪点,文字的四周也出现了锯齿。
▲ JPEG 格式,20.7 KB
▲ AVIF 格式,18.2 KB
在 Jake Archibald 的博客中,他将 JPEG 与 AVIF 图片都压缩到相近的水平,来对比两种图形编码方式的优劣。留意画面的细节你会发现,20 KB 的 JPEG F1 赛车已经基本无细节可言,画面充斥着大色块的涂抹、变色和锯齿。
而当看到 18 KB 的 AVIF F1 赛车时,就像是近视眼带上了眼镜:平滑的赛道、色彩过渡自然的赛车、保留细节的头盔,更令人难以置信的是,这张清晰得多的 AVIF 图片,体积甚至要比 JPEG 还小。
JPEG 除了压缩会导致画面细节丢失以外,色彩失真也是它被人诟病的一个点。例如早期表情包出现的「电子包浆」现象,就是因为表情包在用户之间传输时,不断被压缩产生的色彩失真(变绿包浆是因为 Android 7 之前压缩图片产生了 Bug)。
这种「电子包浆」对于表情包来说也许是一种荣耀(意味热门而被广泛传播),但是对商品展示图来说,颜色的失真则会引起许多不必要的麻烦。
视频博主 Jon Sneyers 将一张 JPEG 图片与 AVIF 图片对比测试压缩 1000 次后的前后变化,从结果上看,JPEG 已经面目全非,而 AVIF 依然崭新,这又是 AVIF 的一次胜利。
那么 AVIF 到底是什么格式呢?在此之前,我们必须首先了解什么是 AV1。 AV1 是一个开源视频编解码器,由开发媒体联盟提出,其目的是压缩视频和图像,以减少占用的空间,但质量始终如一。
尽管视频编解码器主要是为了视频而开发的,但是视频编解码器中的帧内编码工具与图像压缩工具并没有太大的不同,鉴于视频编解码器的巨大压缩进步,将它们作为图像编码格式也能得到卓越的效果。
▲ JPEG 格式海报,69 KB
▲ AVIF 格式海报,40 KB
而 AVIF 便代表了 AV1 图像文件格式 。 换句话说它是 AV1 的图像格式。通过借鉴了下一代的视频压缩技术,AVIF 格式的各项指标全面超越了 JPEG,压缩效率更高、支持无损压缩、支持动画、最高支持 12 bit 色深。
经过对比可以发现,JPEG 在压缩效率方面与 AVIF 的确存在比较大的差距,但 JPEG 有一个 AVIF 难以匹敌的优势——JPEG 有着惊人的兼容性,你几乎找不到一个打不开 JPEG 格式的设备。
▲ High Efficiency Image File Format, HEIF;也称高效图像文件格式
想要让用户和厂商接受并推广一个全新的图片格式,并不是一件容易的事,在 AVIF 之前,JPEG 就面对过不少挑战者,其中 HEIF 格式也许会是你印象最深刻的一个。
自从 2017 年苹果在 iOS 11 上加入了对 HEIF 的支持,它就开启了「爆火模式」。
苹果宣布 iPhone 拍摄的图片将以 HEIF 格式储存取代过去的 JPEG 格式,一时间手机圈都以「支持 HEIF 格式拍照储存」功能为时髦,纷纷跟进。
HEIF 之所以能被苹果相中,自然是因为其优异的性能:它相比 JPEG 压缩效率更高、支持无损压缩、支持动画、最高支持 16 bit 色深(JPEG 只有 8 bit)。听起来是不是很熟悉,AVIF 的特性与 HEIF 基本一致,因为 AVIF 就是对标 HEIF 开发的开源版本,两者之间有着一段「爱恨情仇」。
除了苹果以外,一些相机厂商也宣布支持 HEIF 格式拍摄,例如佳能推出的 1D X Mark iii 也宣布支持 HEIF 格式输出,DCW 的 James Artaius 评价道:「优异的 HEIF 使得 JPG 变得相当多余,实际使用它几乎没有什么实际意义。」
▲ 红色代表不支持,绿色代表支持,HEIF 全红
然而现在将 HEIF 捧上神坛显然为时过早,就浏览器格式兼容性来说,HEIF 目前连苹果自家的 Safari 都不支持,距离普及还有非常遥远的一段距离。
如此高效的图片格式却得不到广泛的支持,其中重要的一个原因就是 HEIF 本身的专利授权问题。HEIF 是基于新一代视频编码格式 HEVC (H.265) 的图像文件标准,后者是 MPEG 为了更新主流的 H.264 编码标准所推出的全新版本。
采用了新算法的 HEVC 一切都好,同样体积大小的视频 HEVC 标准比 H.264 要清晰得多,但同时也要收取一笔相当不菲的授权费。想要在新设备上用 HEVC 的编码技术,厂商推出的每一台设备都要给 MPEG 抽一笔授权费,如同雁过留毛。
▲ 你可以在这张名单上看到不少熟悉的身影,包括 BAT
这种无形的成本显然给新标准的推广造成了不小的阻碍,这也促使了开发媒体联盟的诞生——由 Netflix、Google、Facebook、微软、三星、华为、腾讯等科技巨头联合组成了「复仇者联盟」,推出了指标看齐 HEIF 的 AV1 编码技术,并且不收任何授权费,开源给开发者们使用。
而 AVIF 则是这个「复仇者联盟」向 MPEG 发出的另一个挑战信号。
有趣的是,苹果作为 HEIF 坚定的拥护者,同时也是开发媒体联盟的重要成员,共同合作开发 AV1 编码技术和 AVIF 标准。苹果对此没有任何回应,同时也未宣布对 AV1 和 AVIF 标准的支持,模糊不清的态度值得玩味。
开源的标准似乎更容易得到网站和设备的支持,在 Google 和其他巨头的推动下,目前 AVIF 已经得到了 Chrome、Opera、Firfox 等浏览器的支持,而得到了 Android 12 的原生支持,也意味着 AVIF 在未来将有可能普及到数以亿计的设备中。
这么看来,既开源又高效的 AVIF 能颠覆 JPEG 的统治地位了吗?很遗憾的是,在得到内容与设备端的全面普及之前,在接下来的几年甚至更长的一段时间里,低效的 JPEG 依然会是最常见的图片格式。
不过 HEIF 未能完成的豪情壮志,AVIF 很有可能会先一步实现,毕竟在互联网世界中,免费的才是最好的。