Zstd / Zlib压缩是双射的吗?

时间:2019-04-02 01:51:50

标签: zlib zstd

这更多是一个概念性问题,但是如果我有文件A和文件B, 如果A!= B,是否Compressed(A)等于Compressed(B)。此外,如果A和B的压缩表示匹配,则A和B是否保证匹配?

1 个答案:

答案 0 :(得分:1)

问题似乎与双射无关。

如果对于给定的File A,只有一种Compressed(A)可能,这些算法可能是双射的。

显然不是这样:仅使用压缩级别,您就有Compressed(A)的多个不同版本,它们会解压缩回相同的File A。因此它不是bijection

但是,可以保证另一个方向:给定的Compressed(something)可以重新生成一个,并且只能重新生成一个something。而且由于压缩是无损的,因此可以保证如果Compressed(A) == Compressed(B),那么必然是A == B

但是不要将其与双射混淆。在A == B时,不会遵循该Compressed(A) == Compressed(B),因为它们的压缩方式可能有所不同(使用不同的压缩级别或其他高级参数)。