Домой Софт Релиз ZXC 0.12.0: ускоренная распаковка и обучение на словарях

Релиз ZXC 0.12.0: ускоренная распаковка и обучение на словарях

Обновление популярной утилиты для работы с игровыми ресурсами и прошивками принесло поддержку словарей и прирост производительности при распаковке.

Релиз ZXC 0.12.0: ускоренная распаковка и обучение на словарях
Релиз ZXC 0.12.0: ускоренная распаковка и обучение на словарях — иллюстрация к материалу. Источник: linux.org.ru

18 июня состоялся релиз версии 0.12.0 библиотеки и одноименной кроссплатформенной консольной утилиты ZXC, работа над которой велась более месяца. Инструмент предназначен для высокопроизводительного многопоточного асимметричного сжатия данных без потерь и оптимизирован для использования с игровыми ресурсами, прошивками и пакетами приложений. Разработчики придерживаются принципа «один раз записать, многократно читать» (WORM).

В отличие от распространенного кодека LZ4, библиотека ZXC отдает приоритет максимальной скорости распаковки в ущерб скорости сжатия. По заявлению создателей, производительность при декомпрессии утилиты на 10–47% выше, чем у LZ4 (при стандартных настройках), при этом коэффициент сжатия оказывается равным или превосходящим показатели аналога.

Ключевым нововведением релиза стала поддержка сжатия с использованием предварительно обученного словаря, построенного на основе репрезентативных образцов данных. Это решение существенно сокращает размер архивов, содержащих большое количество мелких файлов или данных небольшого размера. Формат контейнера был обновлен до версии v6, а SOVERSION библиотеки увеличена с 3 до 4. Проект реализован на языке программирования C и распространяется по лицензии BSD 3.

Ключевые изменения и улучшения

  • Внедрена поддержка компрессии с предварительно обученным словарем и общей таблицей Хаффмана.
  • Обновления консольной утилиты:
    • Добавлен параметр --train для обучения словаря на основе входных файлов (путь к результату задается через -o; по умолчанию — dictionary_.zxd). Новая опция пришла на смену --train-dict PATH.
    • Реализован флаг -D, --dict FILE для сжатия или распаковки с использованием указанного файла словаря.
    • Добавлена возможность просмотра содержимого архива или информации о словаре .zxd через параметр -l, --list.
    • Появился псевдоним unzxc: он устанавливается как символьная ссылка на zxc и по умолчанию активирует режим распаковки (аналог команды zxc -d).
  • Скорость сжатия на 6-м уровне возросла примерно на 10% по сравнению с версией 0.11.0.
  • Производительность декомпрессии на уровнях 1 и 2 увеличилась примерно на 3%.
  • Проведен ряд оптимизаций и исправлений ошибок.
Источник: https://www.linux.org.ru