二进制数据压缩算法

苹果开源了一种新的无损压缩算法LZFSE,该算法在iOS9和OSX10.10中首次引入。据苹果介绍,LZFSE的压缩效果与ZLib level5相当,但压缩速度更快,能效更高。LZFSE采用了Lempel-Ziv算法并结合有限状态熵编码。相比于LZ4和LZMA,LZFSE在压缩率和速度上达到了更好的平衡。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

zlib http://blog.163.com/keren_521/blog/static/737754732013617114226530/

gzip

deflate

LZFSE

1,zlib和gzip都对deflate进行了封装,比deflate多了数据头和尾

1,苹果开源了新的无损压缩算法 LZFSE ,该算法是去年在iOS 9和OS X 10.10中 引入 的。按照苹果公司的说法,LZFE的压缩增益和ZLib level 5相同,但速度要快2~3倍,能源效率也更高。

LZFSE基于Lempel-Ziv

,并使用了 有限状态熵编码,后者基于Jarek Duda在

非对称数字系统(ANS)方面所做的熵编码工作。简单地讲,ANS旨在“终结速度和比率的平衡”,既可以用于精确编码,又可以用于快速编码,并且具有数据加密功能。使用ANS代替更为传统的

Huffman和 算术编码方法的压缩库 越来越多,LZFSE就位列其中。

显然,LZFSE的目标不是成为最好或最快的算法。事实上,苹果公司指出,

LZ4的压缩速度比LZFSE快,而 LZMA提供了更高的压缩率,但代价是比Apple

SDK提供的其他选项要慢一个数量级。当压缩率和速度几乎同等重要,而你又希望降低能源效率时,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资产和Android APK,在这些情况下,压缩率是最重要的。

原文: Apple Open-sources its New Compression Algorithm LZFSE

转载于:https://www.cnblogs.com/xulinmei/p/7442663.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值