Jump to content

ЛЗФСЕ

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

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

Обзор [ править ]

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

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

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

Реализация [ править ]

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

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

Использование [ править ]

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

Apple Платформа образов дисков предлагает кодировку на основе LZFSE, называемую ULFO начиная с Mac OS X 10.11 , [9] доступен через hdiutil(1)[10] и некоторые сторонние утилиты для работы с изображениями.

Apple представила формат Apple Archive и связанный с ним API в macOS High Sierra в 2017 году. [11] Имя расширения — .aar (поскольку в macOS Big Sur раньше было .yaa ). Шифрование было введено в macOS Monterey , когда AA стало форматом утилиты архивирования по умолчанию . В macOS доступны три утилиты командной строки для обработки файлов AA. [12] [13] Что касается сторонних программ, Keka может использовать системные API для обработки файлов AA, но в других системах независимых реализаций не существует. [14]

См. также [ править ]

  • Zstandard — еще одна комбинация LZ77 и FSE, автор Янн Колле, автор FSE.
  • Алгоритм сжатия LZ4 — быстрый представитель семейства LZ77, также доступен на платформах Apple. [15]

Ссылки [ править ]

  1. ^ Перейти обратно: а б Бейнвилл, Эрик (07.06.2016). «Библиотека сжатия LZFSE и инструмент командной строки» . Гитхаб . Проверено 4 июля 2016 г.
  2. ^ Apple Inc. «Сжатие данных — Сжатие | Документация разработчика Apple» . разработчик.apple.com . Проверено 7 апреля 2017 г.
  3. ^ Перейти обратно: а б Де Симоне, Серджио. «Apple открывает исходный код своего нового алгоритма сжатия LZFSE» . информация . Проверено 7 июля 2016 г.
  4. ^ Apple Inc. (12 июня 2015 г.). «Низкое энергопотребление, высокая производительность: сжатие и ускорение – WWDC 2015 – Видео для разработчиков Apple» . разработчик.apple.com . Проверено 05 марта 2017 г. PDF
  5. ^ «Бенчмарк сжатия» . Проверено 10 августа 2018 г.
  6. ^ «Бенчмарк сжатия сквоша» . Гитхаб . Давить . Проверено 25 декабря 2019 г.
  7. ^ Перейти обратно: а б "lzfse_tunables.h" . Гитхаб . 18 декабря 2019 года . Проверено 22 декабря 2019 г.
  8. ^ Пайкер-Альфа (4 июня 2014 г.). «Ядро OS X 10.10 Yosemite DP1 (кэш)» . Универсум Пайка . Проверено 22 декабря 2019 г.
  9. ^ Цай, Майкл (07 октября 2015 г.). «Образы дисков LZFSE в Эль-Капитане» . Архивировано из оригинала 9 апреля 2017 г. Проверено 15 апреля 2022 г.
  10. ^ «Справочная страница hdiutil(1) mojave» . Проверено 15 апреля 2022 г.
  11. ^ «Яблочный архив» . Документация разработчика Apple .
  12. ^ «Внутри Apple Archive: больше, чем просто формат сжатия» . Компания «Электик Свет» . 10 мая 2022 г.
  13. ^ «AA(1): Манипулирование архивами Apple» . Кейт.github.io .
  14. ^ «Поддержка AppleArchive · Проблема № 829 · aonez/Keka» . Гитхаб .
  15. ^ «алгоритм_сжатия» . Документация разработчика Apple . Apple Inc. Проверено 11 августа 2019 г.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 2bf788e48aeea25eab199c980d000cfc__1700080200
URL1:https://arc.ask3.ru/arc/aa/2b/fc/2bf788e48aeea25eab199c980d000cfc.html
Заголовок, (Title) документа по адресу, URL1:
LZFSE - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)