Zstd
zstd або Zstandard — це алгоритм стиснення без втрат, який розробляється з 2015 року при підтримці Facebook. Автор Ян Коллє (фр. Yann Collet). zstd — це референсна реалізація алгоритму Zstandard написана мовою C. Реалізація використовує алгоритм стиснення типу LZ77, а також ефективне ентропійне кодування типу ANS. Особливостіzstd був розроблений для забезпечення швидкості стиснення та декомпресії, зберігаючи при цьому співвідношення стиснення, порівнянне з алгоритмом Deflate (який був розроблений у 1991 році та використовується в оригінальних програмах ZIP та gzip). zstd пропонує регульовані рівні стиснення від Консольна утиліта zstd має адаптивний режим ( Швидкість декомпресії залишається стабільною на різних рівнях стиснення, коливаючись менше ніж на 20 %. На максимальному рівні стиснення zstd досягає співвідношення стиснення близького до lzma, lzham та ppmx, і демонструє кращі результати ніж lza або bzip2. zstd досягає поточного оптимуму Парето, оскільки він декомпресується швидше, ніж будь-який інший доступний на даний час алгоритм із таким самим або кращим співвідношенням стиснення. Словники можуть значно впливати на ступінь стиснення малих файлів. Zstd може використовувати словник стиснення, наданий користувачем. Він також має режим навчання, коли генерує словник із набору зразків. Зокрема, один словник можна завантажити для обробки великих наборів файлів із надмірністю між файлами, але не обов'язково в межах кожного окремого файлу (наприклад, журнали). ДизайнZstd поєднує етап зіставлення зі словником (LZ77) з великим вікном пошуку та швидким етапом кодування ентропії. Він використовує як кодування Хаффмана (використовується для записів у розділі літералів), так і ентропію з кінцевим станом (FSE) — швидку табличну версію ANS, tANS, що використовується для записів у розділі послідовностей. Через те, як FSE переносить стан між символами, декомпресія передбачає обробку символів у розділі послідовностей кожного блоку у зворотному порядку (з останнього до першого).
ВикористанняАлгоритм zstd використовується в ядрі Linux з версії 4.14 для використання в файлових системах btrfs та squashfs. Також алгоритм тестувався в FreeBSD для інтеграції в файлову систему OpenZFS. Деякі програми зберігання або обміну даних з вбудованим стисненням, алгоритм якого можна вибрати, використовують zstd опцією компресії:
Алгоритм та MIME-тип ЛіцензіяРеференсна реалізація ліцензована під ліцензією BSD та розміщена на Github. З версії 1.0 zstd має додаткове «Надання патентних прав». Примітки |
Portal di Ensiklopedia Dunia