已涵盖有损压缩现在是时候了解无损压缩了,这是一种重要的压缩模式,用于在不损失质量或数据的情况下减小文件大小。这意味着,一旦以无损格式保存,原始文件就可以逐字节地重建。多年来,已经开发了几种无损压缩算法,其中最流行的两种是哈夫曼编码和算术编码。
有许多文件格式可以实现无损压缩;两种更流行的格式包括图像文件格式PNG和通用压缩容器格式ZIP 。这些都是众所周知的格式,可以在保持原始文件相同内容的同时实现出色的压缩效果。
某些压缩方法依赖于被压缩的数据为某种类型;例如,如果您有一个使用 256 种或更少的唯一颜色的图像,则将其保存为 PNG 格式可以通过创建正在使用的颜色的调色板并将像素打包到字节大小的索引中来利用这一点。单个计算机字节可以存储 0-255 范围内的数字,这就是前面提到的 256 色限制的来源。 PNG 还支持放气压缩算法,进一步减小文件大小。这是因为索引图像的数据结构是与 deflate 算法结合使用的完美候选者。
坦克视频游戏的屏幕截图
来自旧 Acorn Archimedes 计算机的光栅文件
保存为 PNG 的视频游戏光栅图像
无损压缩算法并不适用于所有数据类型;例如,尝试使用 ZIP 格式压缩某些文件可能不会节省任何文件大小,甚至可能导致压缩的 ZIP 文件比原始文件大。
压缩效果非常好的文件包括人类可读的文本文件、源代码和包含可预测和重复数据模式的二进制文件。有关无损压缩的更多信息,请参阅文章。