LINUX.ORG.RU

OpenZL 0.1.0

 , openzl, , ,


3

3

6 октября состоялся выпуск 0.1.0 фреймворка OpenZL, предназначенного для создания компрессоров данных без потерь.

В проект также входит демонстрационная консольная утилита zli.

Ян Колле (автор Zstandard) написал на форуме encode.su:

Мы открываем исходный код OpenZL – нового подхода к сжатию данных с акцентом на структурированные данные. В большинстве центров обработки данных имеются огромные потоки данных. Однако эти данные редко бывают «случайными» – как правило, они следуют чётко определенной схеме или формату. Обычно с этими форматами знакомы несколько инженеров.

Если алгоритм сжатия может быть обучен структуре сжимаемых данных, он может достичь значительно лучших результатов сжатия.

Насколько лучше?

Улучшение существенное – часто двузначное процентное увеличение, а иногда и больше. Важно, что эти улучшения достигаются без значительного влияния на скорость, что крайне важно для высокопроизводительных конвейеров данных.

Ограничения.
Эта технология лучше всего подходит для данных, которые можно описать и структурировать. Она не предназначена для сжатия произвольных или случайных файлов из Интернета. В таких случаях компрессор по умолчанию использует zstd, обеспечивая ту же производительность, что и традиционные методы – по крайней мере, на данный момент.

Фреймворк состоит из базовой библиотеки и инструментов для создания специализированных компрессоров, описанных на языке SDDL.
Для создания хорошего специализированного компрессора есть два этапа:

  1. Анализ данных для извлечения структуры.
  2. Использование хороших бэкенд-компрессоров, которые используют полученную структуру для достижения хорошего сжатия.

OpenZL предоставляет инструменты для обоих этапов.

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


В других источниках:

>>> Исходный код на GitHub

>>> Анонс на encode.su

★★★★★

Проверено: CrX ()
Последнее исправление: CrX (всего исправлений: 3)
Ответ на: комментарий от krasnh

Профиль передавать не надо, и это всем понравилось.

А если бы даже и надо. Посмотрите на вариант использования: сервер обрабатывает потоки данных и складывает их в логи, потом логи пишутся в архив. Если надо, достаем из архива и смотрим. Профиль тоже можно записать, рядом с объемами данных это будет не много. Главное - профиль не потерять

Кто-нибудь знает, алгоритмы с отдельным профилем какую выгоду могут дать? (Да, я понимаю крайний случай - пакуем всё в 1 бит, и пристёгиваем к этому биту профиль; но предположим более реальный сценарий)

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

Как двухпроходной энкодинг в ffmpeg. Первым проходом собирается информация о данных в некий фаил-профиль, Вторым проходом кодер просто берет профиль и запускает наиболее оптимальные функции для конкретных участков, тогда как в однопроходном он просто молотит стандартным набором оптимальных функций не зная насколько хорошо они подходят к конкретному источнику.

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

Yann Collet. Menlo Park, California, United States
Что он вообще делает на форуме в домене su ? Он же француз!

Более того зарегил на nic.ru у которого переключалку на en ещё найти нужно.

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

А гигабайт фильмов в килобайт сожмет?

Ну кинцу пусть не в килобайт, но в разы пожать вполне себе можно, другой вопрос будете ли вы её смотреть? :)

anc ★★★★★
()
Ответ на: комментарий от LLM-9000

https://formats.kaitai.io/png/graphviz.html

То есть сперва описали формат в Kaitai Struct, а затем автоматически сконвертировали в схему. Я думал, наоборот — схема из официальной спецификации приведена как иллюстрация.

Спасибо.

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

давно все паттерны/словари посчитаны - rar/zip/gzip/bz2. кто объяснит почему не инфоциганство?

Где эти «давно посчитанные паттерны и словари»? :) По приведённой тобой ссылке — общеизвестная информация, что их надо каждый раз вычислять из сжимаемых данных.

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

Опять охота влезть и поумничать 🧐

Начал автор за здравие, но потом, похоже, запутался. Верно, приведённые алгоритмы называются сжатием со словарём, что лишь означает, что этот самый словарь строится из исходных данных «на лету», из уже «увиденных» данных.

Однако то, о чём он толкует, действительно в природе существует: например алгоритм brotli (вариация LZ77) содержит заранее натренированный словарь.

На каких конкретно данных Гугл его тренировал не уточняется, «на большом объёме веб контента», но можно увидеть что из Кириллицы он в себя вобрал:

занаомрарутанепоотизнодотожеонихНаеебымыВысовывоНообПолиниРФНеМытыОнимдаЗаДаНуОбтеИзейнуммТыуждлячтокакилиэтовсеегопритакещеужеКакбезбылониВсеподЭтотомчемнетлетразонагдемнеДляПринаснихтемктогодвоттамСШАмаяЧтовасвамемуТакдванамэтиэтуВамтехпротутнаддняВоттринейВаснимсамтотрубОнимирнееОООлицэтаОнанемдоммойдвеоносудгодаеслиестьбылобытьэтомЕслитогоменявсехэтойдажебылигодуденьэтотбыласебяодинсебенадосайтфотонегосвоисвойигрытожевсемсвоюлишьэтихпокаднейдомамиралиботемухотядвухсетилюдиделомиретебясвоевидечегоэтимсчеттемыценысталведьтемеводытебевышенамитипатомуправлицаоднагодызнаюмогудругвсейидеткиноодноделаделесрокиюнявесьЕстьразанашиможнобудетможетвремятакжечтобыболееоченьэтогокогдапослевсегосайтечерезмогутсайтажизнимеждубудутПоискздесьвидеосвязинужносвоейлюдейпорномногодетейсвоихправатакойместоимеетжизньоднойлучшепередчастичастьработновыхправособойпотомменеечисленовыеуслугоколоназадтакоетогдапочтиПослетакиеновыйстоиттакихсразуСанктфорумКогдакнигислованашейнайтисвоимсвязьлюбойчастосредиКромеФорумрынкесталипоисктысячмесяццентртрудасамыхрынкаНовыйчасовместафильммартастранместетекстнашихминутимениимеютномергородсамомэтомуконцесвоемкакойАрхивУкраїнськаукраїнськаРоссийскойматериаловинформацииуправлениянеобходимоинформацияИнформацияРеспубликиколичествоинформациютерриториидостаточноорганизациивозможностьобразованиярегистрациивозможностиобязательнадеятельностисоответствиипроизводствабезопасности

А zstd хоть и не содержит словарь, но позволяет натренировать его самостоятельно с помощью zstd --train, а затем использовать его при сжатии/разжатии с помощью zstd -D файл_словаря. И набор тестовых данных для этого предлагается.

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