LZFSE Apple开源的压缩算法开源项目

我要开发同款
匿名用户2016年07月08日
50阅读
开发技术C/C++
所属分类程序开发、数学计算
授权协议MIT

作品详情

苹果开源了新的无损压缩算法LZFSE,该算法是去年在iOS9和OSX10.10中引入的。按照苹果公司的说法,LZFE的压缩增益和ZLiblevel5相同,但速度要快2~3倍,能源效率也更高。

LZFSE基于Lempel-Ziv,并使用了有限状态熵编码,后者基于JarekDuda在非对称数字系统(ANS)方面所做的熵编码工作。简单地讲,ANS旨在“终结速度和比率的平衡”,既可以用于精确编码,又可以用于快速编码,并且具有数据加密功能。使用ANS代替更为传统的Huffman和算术编码方法的压缩库越来越多,LZFSE就位列其中。

显然,LZFSE的目标不是成为最好或最快的算法。事实上,苹果公司指出,LZ4的压缩速度比LZFSE快,而LZMA提供了更高的压缩率,但代价是比AppleSDK提供的其他选项要慢一个数量级。当压缩率和速度几乎同等重要,而你又希望降低能源效率时,LZFSE是苹果推荐的选项。

GitHub上提供了LZFSE的参考实现。在MacOS上构建和运行一样简单:

$ xcodebuild install DSTROOT=/tmp/lzfse.dst如果希望针对当前的iOS设备构建LZFSE,可以执行:

xcodebuild -configuration "Release" -arch armv7 install DSTROOT=/tmp/lzfse.dst除了API文档之外,苹果去年还提供了一个示例项目,展示如何使用LZFSE进行块和流压缩,这是一个实用的LZFSE入门资源。

LZFSE是在谷歌brotli之后发布的,后者在去年开源。与LZFSE相比,brotli似乎是针对一个不同的应用场景进行了优化,比如压缩静态Web资产和AndroidAPK,在这些情况下,压缩率是最重要的。

via:InfoQ

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论