LZFSE

редактировать
LZFSE
Разработать r (s) Apple
Первоначальный выпуск2015
Стабильный выпуск lzfse-1.0 / 8 мая 2017 г.; 3 года назад (2017-05-08)
Репозиторий lzfse на GitHub
Написано наC
Операционной системе macOS, iOS, Linux
Доступно вC
Типе Сжатие данных
Лицензия с тремя пунктами Новая Лицензия BSD

LZFSE (Lempel – Ziv Конечная энтропия состояния ) - это алгоритм с открытым исходным кодом сжатия данных без потерь , созданный Apple Inc. Он был выпущен с более простым алгоритм называется LZVN .

Содержание
  • 1 Обзор
  • 2 Реализация
  • 3 См. также
  • 4 Ссылки
  • 5 Внешние ссылки
Обзор

Имя сокращение от Лемпель-Зив и Энтропия конечного состояния (реализация асимметричных систем счисления ). LZFSE была представлена ​​Apple на Всемирной конференции разработчиков 2015. Он поставлялся с выпусками iOS 9 и OS X 10.11 того года.

Apple утверждает, что LZFSE сжимает с коэффициентом, сравнимым с коэффициентом zlib (DEFLATE ), и распаковывает в 2–3 раза быстрее, используя меньше ресурсов, поэтому обеспечивает более высокую эффективность, чем zlib. Он был предназначен для сценариев, в которых скорость и скорость декомпрессии должны иметь одинаковый приоритет. Частично эта эффективность была достигнута за счет оптимизации алгоритма для современных микроархитектур с уделением особого внимания arm64. Сторонние тесты подтверждают, что LZFSE распаковывает быстрее, чем zlib, но также предполагает, что многие другие современные алгоритмы сжатия могут иметь более благоприятные характеристики производительности алгоритмов сжатия, такие как плотность, скорость сжатия и скорость распаковки, со значительным запасом.

Apple Реализация LZFSE использует более простой алгоритм, называемый LZVN, когда входной файл меньше LZFSE_ENCODE_LZVN_THRESHOLD(4096 байт). Это алгоритм типа LZSS без энтропийного кодирования, но с тремя ширинами пакетов REP (L, M, D). В эталонной реализации с открытым исходным кодом Apple объясняет, что LZFSE не работает так же хорошо для небольших размеров, поэтому вместо этого используется LZVN. Этот алгоритм в libfastCompression.a был обнаружен ранее как метод сжатия кэша ядра по умолчанию в Mac OS X Yosemite Developer Preview 1 (2014), заменяющий устаревшее сжатие lzssиз Харухико Окумура.

Согласно Squash Benchmark, LZFSE по скорости схож с ZSTD (уровень 6), но имеет немного худшее соотношение. LZVN аналогичен по скорости LZ4 уровня 4, но с немного худшим соотношением. Ни LZFSE, ни LZVN не настраиваются во время выполнения, хотя некоторые константы можно настроить во время компиляции для обычного компромисса между скоростью и скоростью.

Реализация

Справочная C библиотека, написанный Эриком Бейнвиллом, был предоставлен в соответствии с лицензией BSD с тремя пунктами после WWDC 2016. Он также включает исполняемый файл для сжатия и распаковки потоков LZFSE. Нет планов по предоставлению LZVN API.

AppleFSCompression.framework (AFSC), механизм квазипрозрачного сжатия в HFS Plus и Apple File System, поддерживает LZFSE и LZVN, начиная с OS X 10.9.

См. Также
  • Zstandard - еще одна комбинация LZ77 и FSE, автор Ян Колле, автор FSE
  • алгоритм сжатия LZ4 - быстрый член семейства LZ77, также доступен на платформах Apple
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-26 09:11:16
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте