运行rsync时使用-z模式压缩数据,压缩是否无损?
sudo rsync -az /path_to/A /path_to/B
如何确保任何压缩都是无损的?
答案1
简短的回答是肯定的。
长话短说,所有通用数据压缩都是无损的,而几乎所有媒体编码都是有损的。我将在下面解释原因。
压缩有两种类型:无损和有损。无损压缩不会丢失任何信息,因此可以从压缩版本完美地重建原始数据。有损压缩会丢失一些信息,因此无法从压缩版本完美地重建原始数据。在这种情况下,重建的版本是原始版本的近似值,但文件大小将比无损算法所能达到的更小。
有损压缩通常用于 JPG(图像)、MP3(音频)和 MP4(视频)等媒体。使用有损压缩可以得到更小的文件,因为我们可以删除数据,以至于人眼或耳朵不会注意到它的缺失。这实际上非常有趣,通常涉及频率变换,例如离散余弦变换 (DCT),但这超出了本问题的范围。
对于一般数据压缩,当您压缩文本文件或可执行文件时,据我所知,绝不使用有损压缩。如果您以有损方式压缩文本文件,您将丢失一些信息,因此您将永远丢失一些文本。如果您以有损方式压缩可执行文件,解压后它将无法以相同的方式工作(如果有的话)。
更进一步,假设您有一个 MP3 文件。里面的音频已经经过有损压缩。但是,MP3 文件本身的组织方式非常特殊,以便音频播放器知道如何播放其数据。如果您对 MP3 文件进行有损压缩,您将丢失信息,组织将被破坏,并且很可能无法播放。