Является ли сжатие Zstd/Zlib биективным?
Это скорее концептуальный вопрос, но если у меня есть Файл A и Файл B, возможно ли для Compressed(A) равным Compressed(B), если A!= B. Дополнительно, если сжатые представления A и B совпадают, A и B гарантированно совпадают?
1 ответ
Вопрос, кажется, не о биекции.
Эти алгоритмы могут быть биективными, если для данного File A
, будет один и только один Compressed(A)
возможный.
Это явно не так: просто поиграйте с уровнями сжатия, у вас есть несколько разных версий Compressed(A)
которые распаковывают обратно к тому же File A
, Так что это не биекция.
Тем не менее, другое направление гарантировано: данное Compressed(something)
может восстановить один и только один something
, А так как сжатие без потерь, это гарантирует, что если Compressed(A) == Compressed(B)
тогда обязательно A == B
,
Но не путайте это с биекцией. когда A == B
не следует Compressed(A) == Compressed(B)
, поскольку они могут быть сжаты по-разному (с использованием разных уровней сжатия или других расширенных параметров).