Выпуск библиотеки сжатия 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), реализация которого значительно проще.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.