写点什么

PNG 文件解读 (1):PNG/APNG 格式的前世今生

用户头像
zhoulujun
关注
发布于: 12 小时前

PNG 格式的前世今生

png 是一种无损压缩的位图片形格式,其设计目的是试图替代 GIF 和 TIFF 文件格式,同时增加一些 GIF 文件格式所不具备的特性。PNG 使用从 LZ77 派生的无损数据压缩算法——LZW 专利(Lempel-Ziv-Welch)压缩算法专利由 Unisys 持有,Unisys 限制了 GIF 用在自由软件上的使用,也因此才有 PNG 格式的诞生。

GIF 专利所人厂商 Unisys 是在 1994 年 12 月宣布开始课征 GIF 专利的版权税,在 94 年宣布之前,此一专利从 1985 年通过后并没有真正强制实施过。 对于 Adobe 这类软件大厂而言,缴交授权金来使用 GIF 专利并没有任何问题,但对于提供免费软件的开发人员而言,此一收费条件却形成了限制。 

原本设计 PNG 格式的动机就是因应市场的急迫性,W3C 组织的 Liley 表示。原本大家都使用 GIF 的,但突然间我们不能继续使用了,于是市场就希望推出其它替代格式。 

PNG 格式有 8 位、24 位、32 位三种形式,其中 8 位 PNG 支持两种不同的透明形式(索引透明和 alpha 透明),24 位 PNG 不支持透明,32 位 PNG 在 24 位基础上增加了 8 位透明通道,因此可展现 256 级透明程度。

PNG8 和 PNG24 后面的数字则是代表这种 PNG 格式最多可以索引和存储的颜色值。8 代表 2 的 8 次方也就是 256 色,而 24 则代表 2 的 24 次方大概有 1600 多万色。PNG 32 在 24 位基础上增加了 8 位透明通道,因此可展现 256 级透明程度

PNG 的优势

对于 PNG 这种图像存储格式,它有两个特点:无损压缩和支持透明效果。

  • 由于 PNG 文件采用 LZ77 算法的派生算法进行压缩,其结果是获得高的压缩比,不损失数据。它利用特殊的编码方法标记重复出现的数据,因而对图像的颜色没有影响,也不可能产生颜色的损失,这样就可以重复保存而不降低图像质量。

  • PNG 可以为原图像定义 256 个透明层次,使得彩色图像的边缘能与任何背景平滑地融合,从而彻底地消除锯齿边缘。这种功能是 GIF 和 JPEG 没有的。

PNG 发展历史

1995 年早期,Unisys 公司根据它在 GIF 格式中使用的 LZW 数据压缩算法的软件专利开始商业收费,为避免专利影响,用于表现单张图像的 PNG、用于表现动画的 MNG(Multiple-image Network Graphics/多图像网络图形)图形文件格式被同时创建出来。

1996 年 6 月提出 PNF(Portable Network Frame)草案,当年 8 月改名为 MNG(Multiple-image Network Graphics)。

1996 年 7 月 1 日,PNG 的 1.0 版本规范发布,后来被称为 RFC 2083 标准,并在 1996 年 10 月 1 日成为 W3C 建议。

1999 年 8 月,Unisys 公司进一步中止了对自由软件和非商用软件开发者的 GIF 专利免费许可,从而使 PNG 格式获得了更多的关注——各个都不想出这个专利费,如同 MP3 与 OGG

1998 年 12 月 31 日发布 PNG 的 1.1 版本,小幅修改并增加了三个新的数据块定义

1999 年 8 月 11 日发布 PNG 的 1.2 版本,增加了另外一个数据块

2001 年 1 月 31 日发布 MNG 规范 1.0 版本,MNG 是出自 PNG 开发组之手,但由于结构复杂的 MNG 程序库,使用过程会占用大量的资源,早期只有较少的浏览器支持,Chrome、IE、Opera、Safari 则从未支持过。Chrome 和 Opera 都在推广自家的 WebP

2003 年 11 月 10,PNG 现行版本的国际标准(ISO/IEC 15948:2003)发布,并作为作为 W3C 建议发布,与 PNG1.2 版仅有细微差别。

2004 年末,PNG 的动画扩展——APNG,被提出来——由 Mozilla 公司两位 Mozilla 程序员 Stuart Parmenter 和 Vladimir Vukićević 共同设计出 APNG。这是一个相对于 MNG 更简单的动画实现方案,不识别 APNG 格式的 PNG 解码器至少能够正常回放第一幅普通 PNG 画面。但是 APNG,始终是个悲剧,即使 Mozilla 社区,在 2007 年前也是拒绝认这个苦命娃。

2007 年 3 月 23 日,Mozilla 后知后觉,在 Mozilla Firefox 3.0 中 首次支持 APNG 格式。

2007 年 4 月 20 日,Mozilla 希望 APNG 能成为官方标准,因此 PNG 组织发起投票,最终以 8:10 的票数否决了 APNG 进了官方标准,因为 PNG 组织决心继续推广 MNG,但这不并影响 Mozilla 继续支持 APNG。

PNG vsJPEG2000 vsGIF

早期网络图片格式选择不多,GIF 几乎是唯一选择(GIF - 1987、JPEG - 1992、PNG - 1996、APNG - 2004、WebP - 2010)

PNG 个人觉得就是 GIF 的免专利费的加强版。有人曾预言,2003 年 6 月 20 日,网络上最受欢迎的图档格式之一 GIF 专利将过期,PNG 格式正寝时将寿终正寝—— 那是因为万恶的 IE 对 PNG 的半吊子支持。IE6、7 死去后,PNG 不是越来越好?

——想使用 PNG 的半透明功能,但 2003 年 IE 浏览器占了 90%市场,多数人从 IE 上看到的结果是相当丑陋的。

JPEG2002 作为 JPEG 的升级版,同时支持有损压缩和无损压缩。但是透明格式还是 PNG 占据主流。

其实早期的浏览器不支持 PNG 图像;JPEG 和 GIF 是主流图像格式。由于 GIF 的颜色深度限制,网页中的有颜色过渡的图像都是使用 JPEG。不管怎样,JPEG 压缩都会导致图像的轻微模糊。而 PNG 可以做到在相应颜色深度下的尽可能精确,同时保持图像文件不大。PNG 已经渐渐成为一种对于小的梯度图像的较好的选择,众多浏览器都已经对 PNG 有了很好的支持

PNG 规范中不包含嵌入式 EXIF(可交换图像文件格式)图像数据的标准,比如数码像机拍得的图像。而 TIFF,JPEG 2000, DNG 都支持 EXIF。

之前写过《JPEG/Exif/TIFF格式解读(1):JEPG图片压缩与存储原理分析》,感兴趣可以点点。


参考文章:

GIF 专利失效时 PNG 格式正寝时? www.blueidea.com/news/other/2003/1112.asp

APNG 那些事 https://aotu.io/notes/2016/11/07/apng/


转载本站文章《PNG文件解读(1):PNG/APNG格式的前世今生》,请注明出处:https://www.zhoulujun.cn/html/theory/multimedia/CG-CV-IP/8409.html

发布于: 12 小时前阅读数: 4
用户头像

zhoulujun

关注

还未添加个人签名 2021.06.25 加入

还未添加个人简介

评论

发布
暂无评论
PNG文件解读(1):PNG/APNG格式的前世今生