LINUX.ORG.RU

ZXC 0.13.0 и 0.13.1

 , , , ,


0

2

14 и 15 июля, после почти месяца разработки, состоялись выпуски 0.13.0 и 0.13.1 SIMD-оптимизированной библиотеки и кроссплатформенной консольной утилиты ZXC (github.com), реализующих высокопроизводительное многопоточное асимметричное сжатие без потерь и оптимизированное для игровых ресурсов, прошивок и пакетов приложений. Формат разработан по принципу «один раз записать, многократно читать» (WORM).

В отличие от таких кодеков, как LZ4, ZXC жертвует скоростью сжатия ради максимальной пропускной способности при распаковке.

Декларируется скорость распаковки на 9-48% выше, чем у LZ4 с уровнем компрессии по умолчанию, с равным или более высоким коэффициентом сжатия.

Главное изменение этих версий — новый уровень сжатия 7 (ультра) с использованием сравнительно недавно опубликованным SIMD-оптимизированным алгоритмом PivCo-Huffman («pivot-coded Huffman») (репозиторий), который позволяет превысить коэффициент сжатия zstd (-1), при этом скорость декодирования остаётся примерно в 2 раза выше, чем у zstd. Энтропийное декодирование было переработано, что позволило увеличить её скорость на уровне 6 на 5–13% на всех эталонных процессорах.

Формат контейнера обновлён до версии 7 и это последнее запланированное изменение формата. Версия 0.13 является последним этапом перед выпуском версии 1.0, в которой формат контейнера ZXC будет зафиксирован, что обеспечит его стабильность и обратную совместимость.

Проект написан на языке C и распространяется по лицензии BSD 3.

Другие изменения:

  • декомпрессия теперь может выполняться в одном буфере: сжатые входные данные располагаются в правой части буфера и декодируются слева направо в пределах одного выделенного блока памяти, что позволяет снизить пиковые затраты памяти в интеграциях с жесткими ограничениями по объему памяти;
  • кеширование словаря дерева Хаффмана: общая таблица литералов словаря декодируется в готовое к использованию дерево один раз — во время присоединения, а не для каждого блока, что значительно ускорило декодирование словаря с мелкими блоками;
  • повышение отказоустойчивости и усовершенствование механизмов управления памятью во всей библиотеке;
  • улучшения консольной утилиты zxc: индикатор прогресса, более надёжный анализ аргументов и усовершенствованная обработка ввода-вывода файлов;
  • значительные улучшения врапперов (Go, NodeJS, Python, Rust и WASM);
  • улучшена документация;
  • исправлены ошибки.

>>> Подробности на GitHub

★★★★★

Проверено: maxcom ()
Последнее исправление: dataman (всего исправлений: 1)

Один хороший человек добавил в lzbench поддержку OpenZL 0.1.0, так что добавил парочку к сравнению.

PivCo

Всем за счёт заведения! :)

dataman ★★★★★
() автор топика

уровень сжатия 7 (ультра) […] который позволяет превысить коэффициент сжатия zstd (-1)

Кстати, в моём тесте это не так.

dataman ★★★★★
() автор топика

@dataman ты стал прогонять тексты новостей через какую-то локальную квантованную модель? их стало невозможно читать. имхо чатгпт лучше пишет.

daminatorus ★★
()
Ответ на: комментарий от dataman

Кстати, в моём тесте это не так.

Та же мучка, да не те же ручки.

Lucky ★★
()

Знаем такое. Для игры на пс2 используется с флешки

bga_ ★★★★
()
Ответ на: комментарий от daminatorus

их стало невозможно читать.

Ну и не читай.

имхо чатгпт лучше пишет.

Вот и пользуйся. А то все твои говнокомментарии невозможно читать.

dataman ★★★★★
() автор топика

Дотеры уже код пишут, да к тому же СФ-ы. Ужас. Это компрессор или всё же адекватный контейнер?

peregrine ★★★★★
()

Приятно, когда софт пишут на православной Си-шечке и не забывают её.
Показатели не проверял, но с меня реакция «Хлопушка»

Dodik
()

Интересно, насколько он бы пригодился для сжатия бинарников, initramfs и всего такого. Оно все небольшое, жмется хорошо, распаковывается и так быстро, но мне оно интересно ещё и в контексте скорости загрузки.

a1ba ★★★★
()

использованием сравнительно недавно опубликованным SIMD-оптимизированным алгоритмом

Перечитать сложно, что написал?

lolkasosaka
()
Ответ на: комментарий от a1ba

У автора zxc есть несколько форков различных проектов, куда он уже попытался добавить поддержку своего компрессора. Видимо, будет всюду продвигать zxc после версии 1.0.0.
Но ты же можешь не ждать, скомпилировать и протестировать на бинарниках.
Ведь можешь? :)

dataman ★★★★★
() автор топика
Последнее исправление: dataman (всего исправлений: 1)
Ответ на: комментарий от dataman

Могу не значит хочу влезать в rabbit hole замеров скорости загрузки. :)

a1ba ★★★★
()
Ответ на: комментарий от FromAstana

PivCo — не алкоголь, а алгоритм. Ваш кэп.

dataman ★★★★★
() автор топика

Как-то странно они lz4 бенчмаркали :-).

ei-grad ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.