PNG:使用多个IDAT-Chunk有什么好处? [英] PNG: What is the benefit of using multiple IDAT-Chunks?

查看:11
本文介绍了PNG:使用多个IDAT-Chunk有什么好处?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道在PNG映像中使用多个IDAT-Chunk有什么好处。

PNG文档称

可能有多个IDAT块;如果是这样,它们应该连续出现,没有其他中间的块。然后,压缩数据流是所有IDAT区块的数据字段内容的串联。

我无法想象这是因为区块中的数据-挡路的最大大小(2^32字节)。

PNG

回想一下,所有推荐答案块(包括IDAT块)都有一个带有块长度的前缀。将所有压缩流放在单个巨大的IDAT块中会造成以下两个不便:

  • 在编码器端:压缩器在完成压缩之前不知道压缩数据的总大小。然后,在写入区块前缀之前,它需要在内存中缓冲完整的压缩数据。

  • 在解码器端:这取决于块解码是如何实现的;如果它在内存中缓冲每个块(分配由块长度前缀提供的空间),并且在填充它并检查CRC之后,它将内容传递到解压缩器,那么,同样,拥有单个巨大的IDAT块将是内存占用。

考虑到这一点,我认为应该推荐使用较小的IDAT块(比如,16KB或64KB)。开销(每个区块12个字节,如果len=64KB,则小于1/5000)可以忽略不计。

这篇关于PNG:使用多个IDAT-Chunk有什么好处?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆