CPNG:PNG 的向后兼容分支
一个提出的 PNG 图像格式“兼容”分支 CPNG,旨在在保持现有 PNG 解码器都能正常查看的同时,加入更快的编码/解码和 HDR 支持等功能。评论者赞赏这种向后兼容的做法,因为它能立刻获得生态支持,但也质疑把一个 30 年历史的格式继续扩展是否会带来碎片化、细微渲染差异和新的安全问题。许多人将 CPNG 与 WebP、AVIF 和 JPEG XL 等现代格式比较,争论对 PNG 做增量改进是否值得,还是应该投资于更现代、更高效的标准。
CPNG 的动机与概念
- 许多评论者喜欢以完全向后兼容的方式扩展 PNG 的想法,这样现有浏览器和操作系统至少可以显示一个基线图像。
- CPNG 被描述为在满足某些条件时重新解释 PNG,利用 PNG 基于 chunk、可扩展的设计。
- 一些人认为,这是一种聪明、务实的创新方式,避免了全新格式带来的部署问题。
向后兼容性与碎片化
- 争论的一个焦点是“100% 向后兼容”到底意味着什么:
- 支持者:旧解码器仍然会看到一个有效的 PNG;新解码器可以使用额外数据添加 HDR 或其他功能。
- 怀疑者:不同解码器输出的图像可能不同(例如 HDR 与 SDR),他们认为这更像是“回退”而不是真正的兼容性。
- 担忧在于,随着时间推移,这可能会形成一个“家族”的 PNG 变体,使图像在不同工具和平台上看起来不同,类似早期 PNG alpha 问题、APNG、PSD/SVG 的不一致。
- 也有人反驳说,PNG 本来就有可选 chunk(gamma、ICC 配置文件等),解码器可以选择忽略,而格式演进不可避免。
性能与压缩
- 几条评论指出,PNG 的编码/解码(尤其是 zlib/DEFLATE)在游戏和服务器中确实可能成为 CPU 瓶颈。
- CPNG 受限的 DEFLATE 和多线程解码被视为有价值的优化;但文件大小影响以及旧解码器上的读取性能仍有疑问(大多未得到解答)。
- 相关讨论还提到了替代方案和优化:fpng、QOI、zlib 分支(Cloudflare、chromium)以及面向 GPU 的纹理格式。
与其他图像格式的比较
- 有人问,为什么不直接使用更新的格式,比如 WebP、AVIF,或者尤其是 JPEG XL,多个评论者都对其无损压缩和/或效率评价很高。
- 一份总结排名:
- 效率:WebP(B)、AVIF(A)、JXL(S)。
- 编码速度:WebP(B)、AVIF(D)、JXL(A)。
- 兼容性:WebP(A)、AVIF(B)、JXL(D)。
- 评论还强调了 WebP/AVIF/HEIC 在色彩管理和元数据方面的问题;PNG 仍因可靠性而具有吸引力。
其他“向后兼容”想法与安全性
- 有人提出为简单或嵌入式系统设计一个受限或未压缩的 PNG 子集,只使用未压缩的 DEFLATE block;也有人建议 BMP 或 NetPBM 作为更简单的基线。
- 有一条简短警告称,PNG 类格式的复杂性增加可能引入新的安全漏洞(例如启动 logo 问题,如“LogoFAIL”)。
采用前景
- 观点分裂:一些人怀疑如果 APNG 都没能流行起来,CPNG 也难以获得牵引力;另一些人指出,尽管使用不多,APNG 其实如今已经获得了广泛支持。
- 总体而言,这个讨论串既有对这种“hack”的强烈热情,也有对长期生态复杂性的重大担忧。