6 октября состоялся выпуск 0.1.0 фреймворка OpenZL, предназначенного для создания компрессоров данных без потерь.
В проект также входит демонстрационная консольная утилита zli
.
Ян Колле (автор Zstandard) написал на форуме encode.su:
Мы открываем исходный код OpenZL – нового подхода к сжатию данных с акцентом на структурированные данные. В большинстве центров обработки данных имеются огромные потоки данных. Однако эти данные редко бывают «случайными» – как правило, они следуют чётко определенной схеме или формату. Обычно с этими форматами знакомы несколько инженеров.
Если алгоритм сжатия может быть обучен структуре сжимаемых данных, он может достичь значительно лучших результатов сжатия.
Насколько лучше?
Улучшение существенное – часто двузначное процентное увеличение, а иногда и больше. Важно, что эти улучшения достигаются без значительного влияния на скорость, что крайне важно для высокопроизводительных конвейеров данных.
Ограничения.
Эта технология лучше всего подходит для данных, которые можно описать и структурировать. Она не предназначена для сжатия произвольных или случайных файлов из Интернета. В таких случаях компрессор по умолчанию используетzstd
, обеспечивая ту же производительность, что и традиционные методы – по крайней мере, на данный момент.
Фреймворк состоит из базовой библиотеки и инструментов для создания специализированных компрессоров, описанных на языке SDDL.
Для создания хорошего специализированного компрессора есть два этапа:
- Анализ данных для извлечения структуры.
- Использование хороших бэкенд-компрессоров, которые используют полученную структуру для достижения хорошего сжатия.
OpenZL предоставляет инструменты для обоих этапов.
Проект написан на языках C и C++ и распространяется по лицензии BSD.
В других источниках: