Выпуск библиотеки сжатия LZHAM 1.0, нацеленной на создание более быстрой альтернативы LZMA

Материал из Викиновостей, свободного источника новостей

25 января 2015 года

Следом за анонсированным алгоритмом сжатия ZSTD, Рич Гелдрих ( Rich Geldreich), работавший в компании Valve, принимавший участие в разработке ряда известных компьютерных игр и развивающий несколько проектов по сжатию текстур ( crunch, miniz, picojpeg), представил первый стабильный релиз собственной системы сжатия LZHAM 1.0, созданной в рамках проекта по разработке эффективного кодека для сжатия ресурсов, поставляемых в составе игровых приложений. Код реализации LZHAM написан на языке С++ и поставляется под лицензией MIT.

Из особенностей LZHAM отмечается поддержка патчей (delta-изменений), позволяющих распространять изменения без перепаковки уже сжатых файлов. Для повышения эффективности сжатия в LZHAM могут использоваться таблицы сопоставления, размером до 64 Кб, а также словари, размером до 500 Мб. LZHAM также опционально предоставляет средства для сжатия с распараллеливанием вычислений в несколько потоков.

Начиная с выпуска LZHAM 1.0 формат закодированных данных не будет меняться, что гарантирует совместимость с будущими выпусками. При этом совместимость формата с ранее представленными альфа-версиями не гарантируется. Официально поддерживаются платформы x86/x64 Linux, iOS, OSX и Windows x86/x64, следующим шагом станет поддержка Android.

LZHAM предназначен для достижения как можно более высокой степени сжатия и обеспечения высокой скорости распаковки, за счёт требующей интенсивных вычислений стадии сжатия. По уровню сжатия и скорости упаковки реализация LZHAM сравнима с LZMA, но по скорости распаковки опережает LZMA в 1.5-8 раз (но медленнее zlib). Упаковка производится достаточно медленно и требует больших ресурсов, что ограничивает алгоритм применением для областей, в которых необходимо часто и очень быстро распаковывать один раз упакованные данные. Из ограничений также отмечается плохая эффективность при сжатии небольших порций данных, не превышающих 10 Кб.

Попытки сравнения LZHAM с ZSTD Рич Гелдрих прокомментировал тем, что данные методы нацелены на разные области применения и занимают разные ниши. LZHAM ориентирован на обеспечение максимально возможного уровня сжатия, в то время как ZSTD пытается найти оптимальный баланс между эффективностью и скоростью. Обе системы поддерживают совместимый с zlib API. По эффективности сжатия LZHAM опережает ZSTD, а по скорости декодирования немного отстаёт от ZSTD. По скорости кодирования LZHAM в 8 раз отстаёт от ZSTD и не может использоваться для сжатия потоков на лету, подходя лишь для offline-применения. При этом Рич Гелдрих намерен перейти на использование созданного автором ZSTD кода обработки энтропии FSE (Finite State Entropy), реализация которого значительно проще.

Источники[править]


Creative Commons
Creative Commons
Эта статья содержит материалы из статьи «Выпуск библиотеки сжатия LZHAM 1.0, нацеленной на создание более быстрой альтернативы LZMA», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии[править]

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.