使用 rsync 进行无损压缩

使用 rsync 进行无损压缩

运行rsync时使用-z模式压缩数据,压缩是否无损?

sudo rsync -az /path_to/A /path_to/B

如何确保任何压缩都是无损的?

答案1

简短的回答是肯定的。

长话短说,所有通用数据压缩都是无损的,而几乎所有媒体编码都是有损的。我将在下面解释原因。

压缩有两种类型:无损和有损。无损压缩不会丢失任何信息,因此可以从压缩版本完美地重建原始数据。有损压缩会丢失一些信息,因此无法从压缩版本完美地重建原始数据。在这种情况下,重建的版本是原始版本的近似值,但文件大小将比无损算法所能达到的更小。

有损压缩通常用于 JPG(图像)、MP3(音频)和 MP4(视频)等媒体。使用有损压缩可以得到更小的文件,因为我们可以删除数据,以至于人眼或耳朵不会注意到它的缺失。这实际上非常有趣,通常涉及频率变换,例如离散余弦变换 (DCT),但这超出了本问题的范围。

对于一般数据压缩,当您压缩文本文件或可执行文件时,据我所知,绝不使用有损压缩。如果您以有损方式压缩文本文件,您将丢失一些信息,因此您将永远丢失一些文本。如果您以有损方式压缩可执行文件,解压后它将无法以相同的方式工作(如果有的话)。

更进一步,假设您有一个 MP3 文件。里面的音频已经经过有损压缩。但是,MP3 文件本身的组织方式非常特殊,以便音频播放器知道如何播放其数据。如果您对 MP3 文件进行有损压缩,您将丢失信息,组织将被破坏,并且很可能无法播放。

答案2

man rsync

CREDITS
       ...
       This program uses the excellent zlib compression library written 
       by Jean-loup Gailly and Mark Adler.

来自zlib主页

zlib 被设计为一个免费的、通用的、不受法律约束的——也就是说,不受任何专利保护的——无损数据压缩库……

超越验证zlib,这是一个非常著名、广泛使用压缩库,你无能为力。

相关内容