写点什么

Apple 开源新的压缩算法 LZFSE

2016 年 7 月 06 日

苹果开源了新的无损压缩算法 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

2016 年 7 月 06 日 19:003178
用户头像

发布了 1008 篇内容, 共 313.6 次阅读, 收获喜欢 282 次。

关注

评论

发布
暂无评论
发现更多内容

滴滴DoKit-功能介绍之文件同步助手

工具 文件 DoKit

四面腾讯pcg后端开发岗,一个星期面完成功拿到20K的offer。分享面经

Java架构之路

Java 程序员 架构 面试 编程语言

港美股交易系统开发框架构造简述篇

软件开发大鱼V15724971504

国际配售 港股交易系统开发 证券交易系统 资管系统 港股打新系统

请问如何短时间突击 Java 通过面试?

Java架构师迁哥

SGY奇点交易所系统软件APP开发

开發I852946OIIO

系统开发

动态高并发时为什么推荐ReentrantLock而不是Synchronized?

moon聊技术

JVM 并发 synchronized ReentrantLock 锁升级

死皮赖脸地找一位前阿里P8得大佬请教怎么学习微服务,他随手甩给我一份内部SpringCloud笔记手册,真香!

Java成神之路

Java 程序员 架构 面试 编程语言

还有谁比阿里人更懂SpringCloud Alibaba 呢?P8大牛纯手打笔记免费分享!

Java架构之路

Java 程序员 架构 面试 编程语言

JS&Swift

ios swift

最近面试了一波Java程序员,有好几位80后的,按理说是老司机了,没想到一问三不知!

Java成神之路

Java 程序员 架构 面试 编程语言

刚拿到蚂蚁金服架构师offer!大佬教你如何成为offer收割机

比伯

Java 编程 架构 面试 计算机

DolphinDB与Elasticserach在金融数据集上的性能对比测试

DolphinDB

数据处理 金融 时序数据库 tsdb DolphinDB

我哭了!Centos6停止更新只能切换7,哪些习惯也需要切换

996小迁

Java 架构 面试 Centos6

某美女的程序员老公半夜都还不回家,原来是偷偷在公司看Redis+JVM+Spring cloud+MySQL技术文档

Java架构之路

Java 程序员 架构 面试 编程语言

服务于阿里、滴滴、华为等一线互联网公司的分布式消息中间件RocketMQ核心笔记

Java架构追梦

Java 架构 面试 RocketMQ 消息中间件

助力孩子走上学霸之路,K12学习神器现已面世!

intel001

最简单的Go Dockerfile编写姿势,没有之一!

Kevin Wan

go Docker Dockerfile

三分钟看懂新一代.Net Core3.1工作流引擎平台

Philips

敏捷开发 工作流

仅凭这份Java大纲笔记,我如愿拿到了阿里offer。

Java架构之路

Java 程序员 架构 面试 编程语言

我哭了!Centos6停止更新只能切换7,哪些习惯也需要切换

小Q

Java Linux centos 学习 面试

《迅雷链精品课》第十二课:PoW共识算法

迅雷链

区块链

让垃圾分类开发“极快致简”的好物件,零基础的开发小白也能轻松驾驭它!

华为云开发者社区

数据 分类

分享一个GitHub上最火的SpringCloud微服务商城系统项目实战,附全套教程

Java成神之路

Java 程序员 架构 面试 编程语言

话题讨论 | 程序员自己电脑中毒是甚么体验?

xcbeyond

话题讨论

推荐一个GitHub上超牛b的Java进阶学习项目《Java成神之路》!已整理成了文档版本

Java成神之路

Java 程序员 架构 面试 编程语言

区分Protobuf 3中缺失值和默认值

Gopher指北

golang protobuf

了解OAuth2.0

环信

官方活动 | 盘点2020有奖征文

InfoQ写作平台官方

活动专区 盘点2020

恕我直言!有了这份MySQL学习文档,你收藏夹里的其他MySQL学习资料都可以扔了

Java架构之路

Java 程序员 架构 面试 编程语言

训练营第八周作业

大脸猫

极客大学架构师训练营

构师训练营第八周学习笔记

李日盛

笔记

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

Apple开源新的压缩算法LZFSE-InfoQ