LZFSE - LZFSE

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

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

Обзор

Название является аббревиатурой от Лемпель-Зив и Конечная энтропия состояния[3] (реализация асимметричные системы счисления LZFSE был представлен Apple на своем Всемирная конференция разработчиков 2015. Поставляется с iOS 9 и OS X 10.11 выпускает.

Apple утверждает, что LZFSE сжимает с коэффициентом, сопоставимым с коэффициентом сжатия zlib (ВЫПУСКАТЬ ) и распаковывает в два-три раза быстрее при использовании меньшего количества ресурсов, поэтому обеспечивает более высокую эффективность, чем zlib. Он был предназначен для сценариев, в которых скорость и скорость декомпрессии должны иметь одинаковый приоритет.[3] Частично эта эффективность была достигнута за счет оптимизации алгоритма для современных микроархитектур с особым упором на рука64.[4] Сторонние тесты подтверждают, что LZFSE распаковывает быстрее, чем zlib, но также предполагает, что многие другие современные алгоритмы сжатия могут иметь более благоприятные характеристики производительности алгоритмов сжатия, такие как плотность, скорость сжатия и скорость распаковки, со значительным запасом.[5]

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

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

Выполнение

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

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

Смотрите также

Рекомендации

  1. ^ а б Бейнвилл, Эрик (2016-06-07). «Библиотека сжатия LZFSE и инструмент командной строки». GitHub. Получено 2016-07-04.
  2. ^ Apple Inc. «Сжатие данных - Сжатие | Документация для разработчиков Apple». developer.apple.com. Получено 2017-04-07.
  3. ^ а б Де Симоне, Серхио. «Apple открывает исходный код своего нового алгоритма сжатия LZFSE». infoq. Получено 2016-07-07.
  4. ^ Apple Inc. (12 июня 2015 г.). «Низкое энергопотребление, высокая производительность: сжатие и ускорение - WWDC 2015 - видеоролики разработчиков Apple». developer.apple.com. Получено 2017-03-05. pdf
  5. ^ «Тест сжатия». Получено 2018-08-10.
  6. ^ а б "lzfse_tunables.h". GitHub. 18 декабря 2019 г.. Получено 22 декабря 2019.
  7. ^ Пикер-Альфа (4 июня 2014 г.). "Ядро OS X 10.10 Yosemite DP1 (кэш)". Pike's Universum. Получено 22 декабря 2019.
  8. ^ «Тест сжатия сжатого воздуха». GitHub. Давить. Получено 25 декабря 2019.
  9. ^ "алгоритм_сжатия". Документация для разработчиков Apple. Apple Inc.. Получено 2019-08-11.

внешняя ссылка