Компания Apple открыла реализацию алгоритма сжатия без потерь LZFSE
Компания Apple перевела в разряд открытых проектов реализацию алгоритма сжатия данных без потерь LZFSE, появившегося в прошлом году в составе выпусков OS X 10.11 El Capitan и iOS 9. Код библиотеки с реализацией алгоритма LZFSE написан на языке Си и распространяется под лицензией BSD. Поддерживается сборка в OS X и Linux.
LZFSE является вариантом алгоритма Лемпеля-Зива, использующим метод кодирования конечного состояния энтропии (Finite State Entropy), основанного на идеях применения теории асимметричных численных систем (Asymmetric Numeral Systems) для кодирования энтропии. По сравнению с поставляемой в библиотеке zlib реализацией алгоритма Deflate (ZLIB level 5), LZFSE позволяет добиться в 2-3 раза более высокой скорости кодирования и декодирования, при сохранении близкой степени сжатия.
Алгоритм LZFSE позиционируется как компромиссное решение для ситуаций, в которых важна как скорость, кодирования/декодирования, так и степень сжатия. Для решений в которых первостепенное значение имеет скорость, но не важна степень сжатия, Apple продолжает рекомендовать LZ4, а для ситуаций в которых главное уровень сжатия, но не важна скорость - LZMA. В Apple SDK алгоритм LZFSE был рекомендован в качестве замены zlib для случаев, когда не требуется создания переносимых решений. Открытие реализации LZFSE создаёт условия для расширения области применения данного алгоритма.