Является ли сжатие 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), поскольку они могут быть сжаты по-разному (с использованием разных уровней сжатия или других расширенных параметров).

Другие вопросы по тегам